1. 基础概念与工作原理
- 传统算法的局限:传统的 TCP 拥塞控制算法(如 Reno、Cubic)主要基于丢包来被动降低传输速度,在现代高带宽网络中容易造成资源浪费和反应滞后。
- BBR 的创新机制:采用主动测量机制。它会实时计算链路的带宽(BW)和往返延迟时间(RTT),智能寻找网络管道能容纳的最大数据量,从源头上避免排队堵塞。
- 核心优势:
- 强悍的抗丢包性:在网络出现一定丢包(如高达 15%)的情况下,依然能维持较高的吞吐量。
- 极低的延迟:有效减少了路由器缓冲区溢出带来的排队延迟(Bufferbloat)。
- 最佳适用场景:长距离传输、高延迟链路以及跨境网络环境。
2. 系统前置要求与检查
BBR 需要 Linux 内核版本在 4.9 或以上。在进行任何配置前,务必先确认系统支持。
-
检查命令:
uname -r(注:如果输出的版本号大于 4.9,即可进行后续配置;若低于此版本,则需要先升级系统内核。)
3. 纯手动单步配置指南
以下操作需在 root 权限或使用 sudo 的情况下进行,每执行一步即可清晰掌控系统状态。
第一步:设置队列算法为 fq
将默认的队列调度算法修改为 fq(Fair Queueing),这是 BBR 发挥最佳性能的基础。
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
第二步:指定拥塞控制算法为 bbr
将 BBR 写入系统的 TCP 拥塞控制参数中。
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
第三步:使配置立即生效
让系统重新加载 /etc/sysctl.conf 配置文件,无需重启服务器即可生效。
sudo sysctl -p
(注:执行后终端会输出刚才添加的两行代码,代表加载成功。)
4. 状态验证与确认
配置完成后,通过以下两条命令进行双重确认,确保 BBR 已接管网络流量。
-
验证参数是否生效:
sysctl net.ipv4.tcp_congestion_control期望输出:
net.ipv4.tcp_congestion_control = bbr -
验证内核模块是否加载:
lsmod | grep bbr期望输出:包含
tcp_bbr字样即代表模块正在运行。(若无输出但上一步已确认为 bbr,通常说明该算法已直接编译进系统内核,同样代表开启成功)。