BBR(Bottleneck Bandwidth and RTT)是 Google 开发的一种 TCP 拥塞控制算法,旨在替代传统的算法(如 CUBIC、Reno、BBRplus、Lotserver 等),以实现 更高带宽利用率、更低延迟 和 更少丢包。
它的名字来源于两个关键测量指标:
-
Bottleneck Bandwidth(瓶颈带宽)
-
RTT(Round Trip Time)(往返时延)
与旧式算法依赖丢包信号不同,BBR 通过 测量实际链路带宽和延迟 来动态调整传输速率。
BBR 有什么优势?
特性 | 优势说明 |
---|---|
📶 更高的带宽利用率 | 通过实时探测带宽,不靠丢包判断拥塞 |
📉 更低的延迟 | 减少队列积压,避免 Bufferbloat |
💡 智能调整发送速率 | 根据实时网络状况动态调整窗口和速率 |
📡 更适合现代网络环境 | 尤其适用于 4G/5G、WiFi、VPS 国际链路、CDN 等复杂场景 |
BBR 和其他算法对比
算法 | 是否主动拥塞避免 | 拥塞信号 | 延迟表现 | 适合场景 |
---|---|---|---|---|
CUBIC(默认) | 否 | 丢包 | 中 | 泛用 |
BBR | 是 ✅ | 带宽 + RTT | 低 ✅ | VPS/Web/视频/游戏 |
BBRplus | 是(改良 BBR) | 丢包+延迟 | 中 | 高丢包、较差链路 |
BBR2 | 是(BBR升级) | 多维探测 | 更稳定 ✅ | 多路径/国际优化 |
Lotserver(锐速) | 是 | 专有算法 | 非常低 ✅ | 中国联通/移动等国内线路 |
BBR 是怎么工作的?
BBR 每秒都会估算网络带宽和 RTT,分为几个阶段运行:
-
Startup – 尽快探测瓶颈带宽
-
Drain – 降低过高的缓冲数据量
-
ProbeBW – 周期性测试更高带宽是否可用
-
ProbeRTT – 定期探测最小 RTT 以更新估值
它不是靠是否丢包来判断是否拥塞,而是通过精确测量网络的“呼吸频率”来掌控流速。
如何使用 BBR?
一般只要满足两个条件:
-
内核版本 ≥ 4.9(BBR1) 或 ≥ 5.4(BBR2)
-
启用拥塞算法和队列规则(如
fq
)
示例配置:
我应该用 BBR 吗?
如果你用 VPS 架站、跑博客、反代、CDN、境外流量、建站测速 —— BBR 几乎是必选项,性能比默认 CUBIC 好非常多。
你也可以考虑使用更高级的:
-
BBR2:最新的 Google 拥塞控制算法,比 BBR 更平稳、低延迟,适合网页、API 等应用场景。
-
BBRplus:适合高丢包或CN2不稳线路
-
Lotserver(锐速):适合国内宽带访问海外服务器(如教育网/移动)
No comments:
Post a Comment