TCP拥塞控制算法是TCP协议的核心机制,旨在动态调整发送速率以避免网络过载并优化带宽利用率。TCP拥塞控制算法通过动态调整发送窗口,平衡网络负载与传输效率。从早期的AIMD到现代基于带宽和时延的BBR,算法不断演进以适应复杂网络环境。未来,结合跨层优化和智能学习的方法将进一步增强拥塞控制的适应性与公平性。其核心原理和主要算法可归纳如下:
一、基本机制与阶段
-
慢启动(Slow Start)
- 初始阶段拥塞窗口(cwnd)设为1 MSS(最大报文段长度),每收到一个ACK确认,cwnd指数增长(每RTT翻倍)。
- 当cwnd达到慢启动阈值(ssthresh)时,进入拥塞避免阶段。若发生丢包(如超时或重复ACK),ssthresh降为当前cwnd的一半,cwnd重置为1 MSS(如TCP Tahoe)或减半(如TCP New Reno)。
-
拥塞避免(Congestion Avoidance)
- cwnd线性增长(每RTT增加1 MSS),通过“加法增加”逐步探测可用带宽。
- 若检测到丢包(如三次重复ACK),触发快速重传和快速恢复机制,而非直接重置cwnd。
-
快速恢复(Fast Recovery)
- 在连续收到重复ACK时,cwnd减