TCP/IP 传输层详解

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. 「慢启动」:窗口从1 MSS开始指数增长
    2. 「拥塞避免」:窗口线性增长(加法增大)
    3. 「快速重传」:收到3个重复ACK立即重传
    4. 「快速恢复」:窗口减半后直接进入拥塞避免

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 端到端通信全流程

💡 「传输层核心价值」

  1. 为应用层屏蔽网络复杂性(丢包、乱序、拥塞)
  2. 通过端口机制实现多路复用
  3. TCP/UDP 互补满足不同场景需求
    “TCP提供可靠传输的管道,UDP提供高效的传输通道”

https://mp.weixin.qq.com/s/MVQ36RMXLjFjk76SCgse5g