TCP、UDP 和 HTTP 的区别

news/2024/5/18 13:16:50 标签: tcp/ip, udp, http, html
htmledit_views">
TCP/IP 协议栈主要分为四层 : 应⽤层、传输层、⽹络层、数据链路层 , 每层都有相应的协
  • IP :⽹络层协议;(类似于⾼速公路)
  • TCP UDP :传输层协议;(类似于卡⻋)
  • HTTP:应⽤层协议;(类似于货物)。HTTP(超⽂本传输协议)是利⽤ TCP 在两台
    电脑 ( 通常是 Web 服务器和客户端 ) 之间传输信息的协议。客户端使⽤ Web 浏览器
    发起 HTTP 请求给 Web 服务器, Web 服务器发送被请求的信息给客户端。
    其实重要的在 TCP 和 UDP,那它们有什么区别呢?
    TCP (传输控制协议, Transmission Control Protocol ): ( 类似打电话 )
    ⾯向连接、传输可靠(保证数据正确性)、有序(保证数据顺序)、传输⼤量数据(流模
    式)、速度慢、对系统资源的要求多,程序结构较复杂,每⼀条 TCP 连接只能是点到点
    的, TCP ⾸部开销 20 字节。
    UDP( ⽤户数据报协议, User Data Protocol) :(类似发短信)
    ⾯向⾮连接 、传输不可靠(可能丢包)、⽆序、传输少量数据(数据报模式)、速度
    快,对系统资源的要求少,程序结构较简单 , UDP ⽀持⼀对⼀,⼀对多,多对⼀和多对
    多的交互通信, UDP 的⾸部开销⼩,只有 8 个字节。
    TCP 建⽴连接需要三次握⼿:
    • 第⼀次握⼿:客户端发送 syn (seq=x) 到服务器,并进⼊ SYN_SEND 状态,等待
      服务器确认;
    • 第⼆次握⼿:服务器收到 syn 包,必须确认客户的 SYN ack=x+1 ),同时⾃⼰也
      发送⼀个 SYN 包( seq=y ),即 SYN+ACK 包,此时服务器进⼊ SYN_RECV
      态;
    • 第三次握⼿:客户端收到服务器的 SYN ACK 包,向服务器发送确认包
      ACK(ack=y+1) ,此包发送完毕,客户端和服务器进⼊ ESTABLISHED 状态,完成三
      次握⼿
    握⼿过程中传送的包⾥不包含数据,三次握⼿完毕后,客户端与服务器才正式开始传送数
    据。理想状态下, TCP 连接⼀旦建⽴,在通信双⽅中的任何⼀⽅主动关闭连接之前,
    TCP 连接都将被⼀直保持下去。
    结论:
    HTTP 协议是建⽴在请求 / 响应模型上的。⾸先由客户建⽴⼀条与服务器的 TCP 链接,
    并发送⼀个请求到服务器,请求中包含请求⽅法、 URI 、协议版本以及相关的 MIME 样式
    的消息。服务器响应⼀个状态⾏,包含消息的协议版本、⼀个成功和失败码以及相关的
    MIME 式样的消息
    虽然 HTTP 本⾝是⼀个协议,但其最终还是基于 TCP

http://www.niftyadmin.cn/n/5288940.html

相关文章

R语言【base】——readline() 从终端读取一行(交互式使用时)。

Package base version 4.3.2 Parameter readline(prompt "") 参数【prompt】:提示用户输入时打印的字符串。通常以空格" "结束。 提示字符串将被截断到允许的最大长度,通常为 256 个字符(但可在源代码中修改&#xf…

Kubernetes(k8s)部署DolphinScheduler

1.环境准备 1.1 集群规划 本次安装环境为:3台k8s现有的mysql数据库nfs 1.2 下载及介绍 DolphinScheduler-3.2.0官网:https://dolphinscheduler.apache.org/zh-cn/download/3.2.0 官网安装文档:https://dolphinscheduler.apache.org/zh-cn…

docker 将本地镜像推送到私有库

文章目录 下载镜像Docker Registry运行私有库Registry,相当于本地有个私有Docker hub打开个ubantu进行网络配置提交形成一个新的镜像curl 查看私服镜像修改符合私服规范的Tag修改配置文件使之支持httppush 到私服库pull 在拉到本地 下载镜像Docker Registry docker…

Android studio 花式按键

一、activity_main.xml代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.a…

鸿蒙系列--组件介绍之其他基础组件(下)

​​​​​​鸿蒙系列--组件介绍之其他基础组件&#xff08;上&#xff09; 一、 ScrollBar 描述&#xff1a; 滚动条组件 功能&#xff1a; 用于配合可滚动组件使用&#xff0c;如List、Grid、Scroll 子组件&#xff1a;可以包含单个子组件 ScrollBar(value: { scroller…

CentOS系统环境搭建(二十六)——使用nginx在无域名情况下使用免费证书设置https

centos系统环境搭建专栏&#x1f517;点击跳转 文章目录 使用nginx在无域名情况下使用免费证书设置https1.获取SSL证书1.1 生成SSL密钥1.2 生成SSL证书1.3 重命名密钥文件 2.nginx配置https2.1 放证书2.2 修改nginx.conf文件2.2.1 将80端口重定向到4432.2.2 端口443配置ssl证书…

拿去不谢:远程调试APP,发布网站到公网演示,远程访问内网服务

下载地址 Windows 64位 (切勿直接在压缩文件中操作,全部解压到一处后再操作,请关闭某60(会胡乱拦截),可用其他任意安全软件)Mac OS X 64位Linux 64位Linux/ARM 32位 64位Docker docker pull yjsh14z/fastnat_linux_x64:lastest docker run -itd --networkhost --cap-a…

Sqlserver数据库触发器sql案例

前言 需求&#xff1a;当主数据状态更新为无效时&#xff0c;同时将关系表中的关联记录修改成无效状态。 为什么要From inserted去查询主键和状态&#xff1f; 在 SQL Server 中&#xff0c;触发器使用 inserted 和 deleted 临时表来引用发生 INSERT、UPDATE 或 DELETE 操作…