Skip to content

概念卡片:TCP 可靠传输与拥塞控制

一句话机制:TCP 的可靠传输靠 「序号 + 确认 + 超时重传 + 校验和 + 去重」 五件套保证;在此基础上,滑动窗口做流量控制(别把接收方撑爆),拥塞控制做全局调控(别把网络撑爆)。流量控制是端到端「点对点」,拥塞控制是「全局性」过程。

可靠传输的八大手段

  1. 应用数据被分割成 TCP 认为最适合发送的数据块。
  2. 每个包编号,接收方排序后交给应用层。
  3. 校验和:端到端校验,检测传输中的任何变化,有差错即丢弃。
  4. 接收端丢弃重复数据。
  5. 流量控制:接收端只允许发送端发它缓冲区能装下的数据,用可变大小滑动窗口实现。
  6. 拥塞控制:网络拥塞时减少发送。
  7. ARQ 协议:每发完一个分组就停、等确认,再发下一个。
  8. 超时重传:发段后启动定时器,未及时收到确认则重发。

ARQ(自动重传请求)

类型机制优点缺点
停止等待 ARQ发一个停一个等 ACK简单信道利用率低、等待长
连续 ARQ(Go-Back-N)发窗口内分组连续发,累积确认信道利用率高中间丢一个(如 3 号)→ 后面全部回退重传

确认丢失:A 重传,B 丢弃重复并再次确认;确认迟到:双方各自丢弃重复。

流量控制 vs 拥塞控制

流量控制拥塞控制
范围点对点、端到端全局(所有主机、路由器)
目标抑制发送端速率,让接收端来得及防止过多数据注入网络,避免过载
手段滑动窗口(接收窗口字段)拥塞窗口 cwnd(慢开始/拥塞避免/快重传/快恢复)

发送窗口 = min(拥塞窗口 cwnd, 接收窗口)。

拥塞控制的四种算法

算法思路规则
慢开始由小到大探测网络cwnd 初始 1,每经一个传播轮次加倍
拥塞避免缓慢增大每经一个 RTT 才 +1
快重传快速恢复丢包收到 3 个重复 ACK 立即重传(不等定时器)
快恢复配合快重传不降到慢开始,直接拥塞避免阶段

不变量(必须成立的约束)

  • 可靠性 = 序号 + 确认 + 重传 + 校验 + 去重,缺一不可。
  • 拥塞窗口动态变化,发送窗口取 cwnd 与接收窗口较小者
  • 快重传的触发条件是三个重复确认(说明某个段丢了但后续段到了)。

常见误解

  • 把「流量控制」和「拥塞控制」混为一谈 → 前者管接收方,后者管网。
  • 以为「慢开始一直慢」→ 慢开始是指数增长探测,并不慢。
  • 以为「ARQ 是 TCP 独有」→ ARQ 是数据链路层和传输层的错误纠正协议。

关联

最近更新