概述
BBR(Bottleneck Bandwidth and Round-trip propagation time,瓶颈带宽和往返时延)
是 Google 开发的一种 TCP 拥塞控制算法,旨在优化网络传输性能。它于 2016 年发布,并在 Linux 内核 4.9 及以上版本中集成。与传统的拥塞控制算法(如 Cubic 或 Reno)相比,BBR 有显著的改进,尤其在高延迟、高丢包的网络环境中表现优异。
BBR 的核心思想
传统 TCP 算法(如 Cubic)主要依赖丢包作为拥塞信号,当检测到丢包时会大幅减小发送速率。
这种方法在现代网络中效率较低,因为丢包可能是由于随机干扰而非实际拥塞导致。
BBR 则不同,它通过实时测量网络的瓶颈带宽(最大可用带宽)和往返时延(RTT)来动态调整发送速率,目标是充分利用网络容量,同时避免过多的队列延迟。
如何操作?
查看是否支持BBR
1 | sysctl net.ipv4.tcp_available_congestion_control |
1 | [root@localhost ~]# sysctl net.ipv4.tcp_available_congestion_control |
如果输出中没有BBR选项,则可能需要升级内核,一般BBR 需要 Linux 内核 4.9 或更高版本。
你可以尝试执行uname -a
看看你的内核版本,如果比4.9高但是没有BBR,可能就是没有加载BBR模块.
直接执行下面的命令可以加载BBR模块,如果没有报错,那BBR模块应该就加载成功了.
1 | modprobe tcp_bbr |
临时启用
很简单,对吧.
1 | sysctl -w net.ipv4.tcp_congestion_control=bbr |
永久启用
编辑/etc/sysctl.conf
文件写入配置.
1 | net.ipv4.tcp_congestion_control = bbr |
别忘记应用更改.
1 | sysctl -p |