BBR 是一种现代 TCP 拥塞控制算法。它在 Google 的数据中心网络和一些面向公众的 Web 服务器(例如 Google.com 和 YouTube)上进行了测试。通过估计瓶颈带宽和 RTT 来计算起搏率,它旨在优化吞吐量和延迟/RTT。将其与大多数传统 TCP 版本区分开来的一个目标是防止瓶颈缓冲区溢出,这可能导致 Bufferbloat。
为了修复 BBR 原始版本的一些不足,BBR 团队创建了 BBRv2。由于瓶颈处的队列很小,BBRv2 不能再使共享相同瓶颈的其他 TCP 实现(例如 Reno 或 CUBIC)的实例挨饿,或导致高丢失率。不是“经典”版本,其中每个“遇到拥塞”位都应该被解释为用于拥塞控制的丢失数据包,但 BBRv2 支持更新的“DCTCP 风格”ECN 版本,例如布拉格 TCP/L4S。与 BBRv1 不同,BBRv2 将损耗视为一个信号,并试图保持在(可配置的)损耗率上限内。
提高 Linux 服务器互联网速度的要求
您应该安装了 Linux 内核版本 4.9 或更高版本,并编译了以下选项:
- CONFIG_TCP_CONG_BBR
- CONFIG_NET_SCH_FQ
运行以下命令以查看上述选项是否已在您的内核中编译:
$ sudo cat /boot/config-$(uname -r) | grep 'CONFIG_TCP_CONG_BBR'
$ sudo cat /boot/config-$(uname -r) | grep 'CONFIG_NET_SCH_FQ'
在 Linux 中启用 TCP BBR 拥塞控制
编辑 /etc/sysctl.conf 文件:
$ sudo nano /etc/sysctl.conf
配置文件应如下所示:
现在将这两个添加到配置文件的底部:
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
现在保存文件并退出,然后重新启动 Linux 机器或使用 sysctl 命令重新加载更改:
$ sudo reboot
OR
$ sudo sysctl --system
现在如您所见,已添加选项