前言

你知道吗?下载 / 上传速度慢除了宽带带宽小(只能氪金解决)外还受到丢包、设备转发延迟以及网卡带宽等的影响。这篇文章主要是有一定幅度解决有关丢包等因素对下载 / 上传速度的影响。

BBR 是什么? BarBaRa(芭芭拉),闪耀登场! 其实是一种由 Google 开发的 TCP 阻塞控制算法。传统的 TCP 阻塞控制算法 Cubic 是不受当前网络情况控制的,只会无脑发包,包丢了就重发的。这极大程度影响了收发包速度。而 BBR 从无脑发包变成主动感知网络环境,随机应变地发包。它会根据当前的丢包率以及带宽使用情况自动调整发包速率,还会大幅度提高数据包吞吐量。这可以有一定幅度减少丢包率并跑满带宽。

BBR 已经嵌入到 Linux 4.9+,所以只要 Linux 内核版本大于 4.9 的,都可以开启。貌似 Windows 也有(?)但是我不管。

注意:BBR 只对 TCP 协议 有效,对 UDP 协议 完全无效。打游戏(大部分)/ 看视频(部分是视频流以 UDP 发包)等使用 UDP 协议的情况无效。

查看BBR开启情况

终端输入命令:

sysctl -n net.ipv4.tcp_congestion_control

返回 cubic的是没有开启

返回 bbr的是已经开启了

启用BBR

终端打命令:

sudo vim /etc/sysctl.d/20-BBR.conf
# 按i然后打入:
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
# 随后:wq保存退出
sudo reboot

注意:对于 sysctl 相关的设置都是重启后生效

完成这一步后可以看看上面那一步,看看 BBR 是否开启了。

实际效果

作者物理机的BBR是开启的

看看开启 BBR 后的测速结果(作者当时 300Mbps 宽带)

结果只供参考,请以实际情况为准

作者实感:访问网页速度(毕竟是要极短时间内发送大量 GET 请求以请求网站资源)有些提升,下载 / 上传的时候基本上宽带带宽都被跑满的那种,TCP 连接时丢包率有所降低。

最后

在 VPS 等服务器上开启 BBR 会有奇效(大部分),这对挂网站等疯狂建立 TCP 连接的情况非常有利。