超详细讲解 TCP、UDP、HTTP 协议
不握手、不确认、不重传、不排序只管发,不管对方收没收到UDP:快、不保证可靠,直播游戏用TCP:稳、可靠、有连接,网页文件传输底层都用它HTTP:基于 TCP 的应用层协议,规定浏览器和服务器怎么对话、怎么传数据。
·
目录
先给层级定位,一眼分清关系:
- TCP/UDP:传输层协议(负责端到端传输,端口通信)
- HTTP:应用层协议(基于 TCP,负责业务数据格式、请求响应规则)
从下到上:
- 网络层:IP 协议(负责找主机 IP 地址)
- 传输层:TCP / UDP(负责主机上进程间通信,靠端口区分)
- 应用层:HTTP/HTTPS、DNS、FTP 等(业务数据交互)
一句话:IP 找机器,TCP/UDP 找程序,HTTP 传业务数据。
一、UDP 协议(用户数据报协议)
核心特点
- 无连接:不用先建立连接,直接发数据包,发完就不管
- 不可靠:不保证送达、不保证不乱序、不保证不丢包
- 面向数据报:一次发一个完整数据包,不拆分、不合并
- 开销小、速度快:头部仅 8 字节,极简
- 无流量控制、无拥塞控制
关键特性总结
- 不握手、不确认、不重传、不排序
- 只管发,不管对方收没收到
适用场景
适合能容忍少量丢包、要求实时性的场景:
- 直播、短视频、语音通话、游戏联机
- DNS 域名解析
- 广播、组播业务
比喻
发短信:你直接编辑发送,不用跟对方先 “接通”,对方可能收不到、延迟收到,你也不知道。
二、TCP 协议(传输控制协议)
核心特点
- 面向连接:通信前必须先建立连接(三次握手)
- 可靠传输:保证不丢包、不乱序、不重复
- 面向字节流:把数据当成流式字节,无边界,可拆分合并
- 有确认、重传、排序、校验
- 有流量控制、拥塞控制
- 开销比 UDP 大,速度稍慢
1. 三次握手(建立连接)
目的:双方确认收发能力都正常
- 客户端 → 服务端:SYN(我想建立连接)
- 服务端 → 客户端:SYN+ACK(我收到了,我也能发,你准备好)
- 客户端 → 服务端:ACK(我收到你的确认,连接正式建立)
2. 四次挥手(断开连接)
TCP 是全双工,双方都要单独关闭读写通道,所以要四次:
- 客户端发 FIN:我不发数据了
- 服务端回 ACK:收到,我知道了你不发了
- 服务端发 FIN:我也发完了,我也不发了
- 客户端回 ACK:收到,连接彻底断开
3. TCP 可靠传输靠什么?
- 序列号 + 确认应答:每个包编号,对方收到回确认
- 超时重传:超时没收到确认,自动重发
- 滑动窗口:流量控制,防止对方接收不过来
- 拥塞控制:防止网络堵车,慢启动、拥塞避免等
适用场景
要求数据必须完整、不能丢、不能错,可以接受稍慢:
- 网页浏览、文件传输、邮件
- HTTP、HTTPS、FTP、SSH 底层都是 TCP
比喻
打电话:先拨号接通(三次握手),通话稳稳当当不丢话,说完互相挂电话(四次挥手)。
三、HTTP 协议(超文本传输协议)
基础定位
- 应用层协议,默认基于 TCP
- 默认端口:80
- 明文传输,不安全(所以有 HTTPS=HTTP+SSL/TLS,端口 443)
核心工作模式
请求 - 响应模型:一问一答
- 客户端发起HTTP 请求
- 服务端处理后返回HTTP 响应
- 无状态:服务器不记住上一次请求的信息(靠 Cookie/Session 补状态)
1. HTTP 请求组成
- 请求行:请求方法 + URL + 协议版本(GET /index HTTP/1.1)
- 请求头:浏览器信息、Cookie、内容格式等
- 请求体:POST 等放参数、JSON 数据
2. 常见请求方法
- GET:查数据,参数放 URL,不安全、有长度限制
- POST:提交数据,参数放请求体,更安全、无长度限制
- PUT:全量更新资源
- PATCH:局部更新
- DELETE:删除资源
- HEAD:只拿响应头,不拿内容
3. HTTP 响应组成
- 状态行:协议版本 + 状态码 + 描述
- 响应头:服务器信息、数据格式、缓存规则
- 响应体:返回的 HTML/JSON/ 图片等数据
4. 常见状态码
- 2xx 成功:200 正常
- 3xx 重定向:301 永久重定向、302 临时重定向
- 4xx 客户端错:404 找不到、403 禁止访问
- 5xx 服务端错:500 服务器异常、502 网关错误
5. HTTP/1.1、HTTP/2、HTTP/3 区别
- HTTP/1.1:串行请求,队头阻塞,文本明文
- HTTP/2:多路复用、二进制帧、头部压缩,基于 TCP
- HTTP/3:基于UDP,解决 TCP 握手延迟,更快更稳(现在大厂全站慢慢切)
HTTP 适用场景
所有网页、接口调用、前后端交互、小程序、APP 接口都是 HTTP/HTTPS。
四、TCP vs UDP 核心对比表
| 特性 | TCP | UDP |
|---|---|---|
| 连接方式 | 面向连接(三次握手) | 无连接 |
| 可靠性 | 可靠,不丢包不乱序 | 不可靠,可能丢包乱序 |
| 传输方式 | 字节流 | 数据报 |
| 速度 | 较慢,开销大 | 极快,开销小 |
| 控制机制 | 重传、流量控制、拥塞控制 | 无 |
| 典型应用 | HTTP、HTTPS、文件传输 | 直播、游戏、DNS、语音 |
五、三者完整链路举例(打开一个网页)
- 浏览器输入网址
- DNS(UDP)解析域名得到服务器 IP
- 浏览器通过 TCP 和服务器建立三次握手
- 浏览器发送 HTTP 请求(基于 TCP)
- 服务器返回 HTTP 响应
- 页面渲染完成
- 浏览结束,TCP 四次挥手断开连接
六、一句话极简总结
- UDP:快、不保证可靠,直播游戏用
- TCP:稳、可靠、有连接,网页文件传输底层都用它
- HTTP:基于 TCP 的应用层协议,规定浏览器和服务器怎么对话、怎么传数据。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)