加载中...

TCP 拥塞控制是 TCP 协议根据网络负载动态调节发送速率、避免网络拥塞崩溃的机制。1986 年互联网曾因缺乏拥塞控制发生大范围吞吐骤降,Van Jacobson 于 1988 年提出的算法奠定了现代方案的基础。它与流量控制不同:后者防止压垮接收方,前者防止压垮网络本身。
核心由四部分组成:慢启动(拥塞窗口从小值起步、每 RTT 翻倍)、拥塞避免(超过阈值后线性增长)、快速重传(收到三个重复 ACK 立即重传)与快速恢复。这类基于丢包的算法遵循 AIMD 原则,代表实现从 Tahoe、Reno 演进到 Linux 默认的 CUBIC。
基于丢包的算法在深缓冲区场景会造成缓冲区膨胀(Bufferbloat)。Google 2016 年提出的 BBR 改为直接估计瓶颈带宽与最小 RTT,按带宽时延积控制发送量,已用于 google.com、YouTube;BBRv2/v3 进一步改善了与 CUBIC 共存的公平性。QUIC 将拥塞控制移到用户态,使算法迭代不再受制于操作系统内核。

登录 后参与讨论
暂无讨论,来发表第一条评论吧