拥塞控制
概述
拥塞控制是 TCP 协议的重要机制,防止过多数据注入网络导致性能崩溃。原始 Cerf-Kahn 论文中缺失,1988年由 Van Jacobson 引入。
关键内容
问题背景
- 原始 TCP 只有流量控制(防止接收方过载),没有拥塞控制(防止网络过载)
- 1986年10月拥塞崩溃:ARPANET 吞吐量从 32 Kbps 降至 40 bps,几乎完全停滞
Van Jacobson 的解决方案(1988)
- 慢启动(Slow Start):逐步增加发送速率,探测网络容量
- 拥塞避免(Congestion Avoidance):接近容量时谨慎增加
- 快速重传(Fast Retransmit):收到3个重复 ACK 立即重传
- 快速恢复(Fast Recovery):重传后快速回到稳定状态
设计哲学
拥塞控制完美体现了端到端原则:路由器通过丢包"暗示"拥塞,端系统负责解读这些信号并调整发送速率。网络本身不需要维护任何拥塞状态。
来源
- raw/books/计算机科学/10-cerf-kahn-tcp-ip.md