换上 BBR 之后,长肥管道的变化
BBR 不把丢包当拥塞信号,而是估带宽和 RTT。在高延迟、有随机丢包的链路上,这个区别非常大:CUBIC 看到丢包就退让,BBR 只在真实拥塞时降速。
实测一条 RTT 180 ms、丢包 1% 的线路:CUBIC 稳定在 12 Mbps 左右,BBR 能到 38–42 Mbps,抖动也小。这是模型差异带来的,不是调参。
代价是对 bufferbloat 更敏感。没有 AQM 的路由器上,BBR 会把队列填满,同链路其他流受影响。所以它是「对自己好、对别人一般」的算法。
启用很简单:写 tcp_congestion_control=bbr 到 sysctl,确认模块加载。但要注意内核版本——4.9 之前的实现差异较大,新版才有稳定的 BBRv1 行为。