06传输层

Lingfeng2025-05-15

06传输层

1. 无连接传输 UDP

Definition (UDP User Datagram Protocol)

UDP 是一种“轻量级、无连接、不可靠”的网络通信协议,提供进程到进程之间的报文交付,适用于对速度要求高、但可以容忍部分丢包的应用。

报文格式,首部固定为 8 字节。

适用应用:

  • 容忍丢包但对延迟敏感的应用,如流媒体
  • 以单次请求/响应为主的应用: 如 DNS

2. 面向连接传输 TCP

Definition (TCP(Transmission Control Protocol))

TCP 是一种面向连接、可靠、按序、基于字节流的传输层协议。

2.1 TCP 报文段结构

TCP 首部最小 20 字节,最大 60 字节。固定字段 20 字节,可选字段最多 40 字节,通过首部长度字段标记。

2.2 TCP 可靠数据传输

  • 接收方
    • 确认方式:采用累积确认,仅在正确、按序收到报文段后,更新确认序号;其余情况,重复前一次的确认序号(与 GBN 类似)
    • 失序报文段处理:缓存失序的报文段(与 SR 类似)
  • 发送方
    • 发送策略:流水线式发送报文段
    • 定时器的使用:仅对最早未确认的报文段使用一个重传定时器(与 GBN 类似)
    • 重发策略:仅在超时后重发最早未确认的报文段(与 SR 类似,因为接收端缓存了失序的报文段)

2.3 TCP 流量控制

Definition (零窗口通告)

发送端收到零窗口通告时,启动一个定时器。定时器超时后,发送端发送一个零窗口探测报文段(序号为上一个段中最后一个字节的序号)。接收端在响应的报文段中通告当前接收窗口的大小。若发送端仍收到零窗口通告,重新启动定时器。

Definition (糊涂窗口综合症)

当数据的发送速度很快、而消费速度很慢时,零窗口探测的简单实现带来以下问题:

  • 接收方不断发送微小窗口通告
  • 发送方不断发送很小的数据分组
  • 小包问题,大量带宽被浪费(报文头开销),传输效率低下

2.4 TCP 连接管理

Definition (三次握手)

  1. 客户 TCP 发送 SYN 报文段(SYN=1,ACK=0)
  • 给出客户选择的起始序号 ( Initial Sequence Number, ISN )
  • 不包含数据
  1. 服务器 TCP 发送 SYNACK 报文段(SYN=ACK=1)(服务器端分配缓存和变量)
  • 给出服务器选择的起始序号
  • 确认客户的起始序号
  • 不包含数据
  1. 客户发送 ACK 报文段(SYN=0,ACK=1)(客户端分配缓存和变量)
  • 确认服务器的起始序号
  • 可能包含数据
Last Updated 12/13/2025, 12:57:16 PM