TCP/IP 传输层详解
TCP/IP 传输层详解
传输层(Transport Layer)是 「TCP/IP 模型的第四层」(对应 OSI 模型的传输层),核心功能是实现 「端到端(进程到进程)的可靠通信」。主要协议包括:
- 「TCP」(传输控制协议):面向连接、可靠传输
- 「UDP」(用户数据报协议):无连接、高效传输
核心功能
| 功能 |
TCP |
UDP |
| 「连接管理」 |
三次握手建立连接,四次挥手断开 |
无连接 |
| 「可靠性」 |
确认应答、重传、排序 |
无可靠性保证 |
| 「流量控制」 |
滑动窗口机制 |
无 |
| 「拥塞控制」 |
慢启动、拥塞避免等算法 |
无 |
| 「数据单元」 |
段(Segment) |
数据报(Datagram) |
| 「头部开销」 |
20~60 字节 |
8 字节 |
TCP 协议深度解析
1. TCP 段结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options (if any) | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
- 「关键字段」:
- 序列号(Seq):数据字节流的编号
- 确认号(Ack):期望接收的下一个字节编号
- 标志位:SYN(建立连接)、ACK(确认)、FIN(断开连接)、RST(重置连接)
- 窗口大小(Window):流量控制参数
2. TCP 连接管理(三次握手与四次挥手)

❝
「为什么需要三次握手?」
防止失效的连接请求突然传到服务器(网络延迟导致的历史连接问题)
❞
3. TCP 可靠性机制

- 「关键机制」:
- 序列号/确认号:确保数据有序到达
- 超时重传:RTT动态计算超时时间
- 滑动窗口:动态调整发送速率(流量控制)
- 选择性确认(SACK):高效重传丢失片段
4. TCP 拥塞控制

- 「阶段说明」:
- 「慢启动」:窗口从1 MSS开始指数增长
- 「拥塞避免」:窗口线性增长(加法增大)
- 「快速重传」:收到3个重复ACK立即重传
- 「快速恢复」:窗口减半后直接进入拥塞避免
UDP 协议解析
1. UDP 数据报结构
1 2 3 4 5 6 7 8 9
| 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
- 「特点」:
- 无连接:直接发送数据
- 无可靠性机制:不保证顺序和到达
- 低延迟:头部仅8字节
- 支持广播/多播
2. UDP 通信流程

端口(Port)机制
「核心作用」:区分同一主机上的不同应用程序

- 「常见端口」:
- HTTP: 80, HTTPS: 443
- FTP: 21, SSH: 22
- DNS: 53, DHCP: 67/68
TCP/UDP 应用场景对比
| 场景 |
推荐协议 |
原因 |
| 网页浏览 |
TCP |
需要可靠传输HTML/CSS/JS |
| 视频直播 |
UDP |
容忍丢包,追求低延迟 |
| 文件传输 |
TCP |
数据完整性要求高 |
| DNS查询 |
UDP |
短报文,快速响应 |
| 在线游戏 |
UDP |
实时性优先于可靠性 |
| 电子邮件 |
TCP |
保证邮件内容完整到达 |
Mermaid 综合原理图

TCP 端到端通信全流程
❝
💡 「传输层核心价值」:
- 为应用层屏蔽网络复杂性(丢包、乱序、拥塞)
- 通过端口机制实现多路复用
- TCP/UDP 互补满足不同场景需求
“TCP提供可靠传输的管道,UDP提供高效的传输通道”
❞
https://mp.weixin.qq.com/s/MVQ36RMXLjFjk76SCgse5g