Thursday, July 3, 2025

BBR是什么?要怎么检测?

 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,分为几个阶段运行:

  1. Startup – 尽快探测瓶颈带宽

  2. Drain – 降低过高的缓冲数据量

  3. ProbeBW – 周期性测试更高带宽是否可用

  4. ProbeRTT – 定期探测最小 RTT 以更新估值

它不是靠是否丢包来判断是否拥塞,而是通过精确测量网络的“呼吸频率”来掌控流速。


如何使用 BBR?

一般只要满足两个条件:

  1. 内核版本 ≥ 4.9(BBR1) 或 ≥ 5.4(BBR2)

  2. 启用拥塞算法和队列规则(如 fq

示例配置:

bash
# 启用 BBR echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p # 查看是否生效 sysctl net.ipv4.tcp_congestion_control lsmod | grep bbr

我应该用 BBR 吗?

如果你用 VPS 架站、跑博客、反代、CDN、境外流量、建站测速 —— BBR 几乎是必选项,性能比默认 CUBIC 好非常多

你也可以考虑使用更高级的:

  • BBR2:最新的 Google 拥塞控制算法,比 BBR 更平稳、低延迟,适合网页、API 等应用场景。

  • BBRplus:适合高丢包或CN2不稳线路

  • Lotserver(锐速):适合国内宽带访问海外服务器(如教育网/移动)




No comments:

Post a Comment

机场是 vpn 吗?

  ✅ 一、 “机场”是指什么? 在网络圈子中,“机场”是一个 非正式术语 ,专指提供 V2Ray / Shadowsocks / Trojan 等代理协议服务的平台 ,这些平台通常用于 科学上网(俗称翻墙) 。 机场 ≈ 非官方的第三方“VPN”服务平台。 用户通...