BBR(Bottleneck Bandwidth and RTT)是Google發布的一種新的TCP擁塞控制算法。 它從4.9開始被添加到Linux內核中。 BBR不是將數據包丟失視為擁塞信號,而是依次探測瓶頸帶寬和RTT。

實行環境

  • Debian 9 Stretch

首先確認kernel版本是否支持BBR:

1
uname -r # kernel >= 4.9

然後使用lsmod | grep bbr,來檢測是否已經開啟bbr。如果沒有的話:

1
2
3
# 加載bbr模塊
modprobe tcp_bbr
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf

並且執行以下命令來開啟:

1
2
3
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

最後來測試一下是否成功開啟:

1
2
sysctl net.ipv4.tcp_available_congestion_control
# net.ipv4.tcp_available_congestion_control = bbr cubic reno
1
2
sysctl net.ipv4.tcp_congestion_control
# net.ipv4.tcp_congestion_control = cubic bbr

再次使用lsmod | grep bbr看看已加載的模塊