这篇文章上次修改于 2404 天前,可能其部分内容已经发生变化,如有疑问可询问作者。 谷歌为我们带来了干货 新的 [TCP 拥塞控制算法 BBR (Bottleneck Bandwidth and RTT)](https://research.google.com/pubs/pub45646.html "TCP 拥塞控制算法 BBR (Bottleneck Bandwidth and RTT)")。 目前在 Linux Kernel 4.9 中加入了该算法,所以我们只要确保内核大于4.9即可。 注: 更新内核有一定风险,请注意备份。 **TCP BBR 致力于解决两个问题:** - 降低网络链路上的 buffer 占用率,从而降低延迟。 - 在有一定丢包率的网络链路上充分利用带宽。 **TCP BBR 是怎样解决以上两个问题的呢?** - 既然不容易区分拥塞丢包和错误丢包,TCP BBR 就干脆不考虑丢包。 - 既然灌满水管的方式容易造成缓冲区膨胀,TCP BBR 就分别估计带宽和延迟,而不是直接估计水管的容积。 启用bbr ``` echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p ``` 验证: ``` renothing@desktop:~[master]$ sysctl net.ipv4.tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = bbr cubic reno renothing@desktop:~[master]$ lsmod | grep bbr tcp_bbr 20480 84 ``` ok,可以浪了。测试看看效果如何。 参考: - https://www.zhihu.com/question/53559433 - https://cloudplatform.googleblog.com/2017/07/TCP-BBR-congestion-control-comes-to-GCP-your-Internet-just-got-faster.html
没有评论