TCP BBR 由谷歌开发,即 TCP 拥塞控制算法,其目的在于最大化利用网络链路。知乎上的解释非常贴切:一条网络链路就像一根水管,最大化利用这根水管的办法则是用水将其充满。

BBR 要解决的问题

  1. 充分利用存在一定丢包率的网络链路;
  2. 降低网络延迟;

检查内核

Linux kernel 4.9+ 已经集成 TCP BBR 算法,启用前检查内核:

~$ uname -r
4.9.103-0409103-generic

Ubuntu 16.04 upgrade kernel

启用 BBR

执行以下两条命令:

~# echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
~# echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

使设置生效:

~# sysctl -p
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

检查 BBR 是否开启

下方命令有 bbr 字样即代表开启成功

~# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno

也可以使用查看启用状态:

~ # lsmod | grep bbr
tcp_bbr                20480  0

禁用 BBR

逆执行以上操作即可。