在 Windows 11 下启用 BBR v2

BBR 是 Google 开发的 TCP 拥塞控制算法。它改善了传统拥塞控制算法(如 CUBIC)一丢包就降速的缺点,让带宽利用率在高丢包环境下大幅提升。

需要注意,拥塞控制算法控制的是发包速度。如 Google 服务器开启了 BBR,其上传速度将尽可能占满用户带宽;在用户的角度看来,则体验到了更快的下载速度。

众所周知…

许多朋友会在自己的 Linux 服务器上,用几句命令轻松开启 BBR:

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

于是,当他们从服务器下载文件时,服务器就会尽可能用满带宽。可当他们上传文件时,速度却依旧很慢。这是因为他们上传所用的系统,仍在使用传统的拥塞控制算法。

如果用户使用的是 Linux 系统,用同样的步骤开启 BBR 即可。而对于 Windows 系统,如果是 Windows 11 22H2 以上版本,Microsoft 也添加了 BBRv2 的支持。

在 Windows 11 下启用 BBR / BBR v2

2024-04 更新:在新版 Windows 11 下,启用 BBR2 可能会造成本地 TCP 连接无法使用(如导致 adb 卡住等),此时可以用以下命令还原拥塞控制算法:

netsh int tcp set supplemental template=Internet congestionprovider=CUBIC
netsh int tcp set supplemental template=InternetCustom congestionprovider=CUBIC
netsh int tcp set supplemental template=Datacenter congestionprovider=CUBIC
netsh int tcp set supplemental template=DatacenterCustom congestionprovider=CUBIC
netsh int tcp set supplemental template=Compat congestionprovider=NewReno

打开 PowerShell(管理员),先查看一下当前的拥塞控制算法:

NetTCPSetting | Select SettingName, CongestionProvider

然后开启 BBRv2:

netsh int tcp set supplemental template=Internet congestionprovider=BBR2
netsh int tcp set supplemental template=InternetCustom congestionprovider=BBR2
netsh int tcp set supplemental template=Datacenter congestionprovider=BBR2
netsh int tcp set supplemental template=DatacenterCustom congestionprovider=BBR2
netsh int tcp set supplemental template=Compat congestionprovider=BBR2

此处也可以将 BBR2 替换为 BBR(BBR v1),有兴趣的朋友可以测试比较一下效果。

再次输入命令,确认已成功开启。

启用后…

无需重启系统,单线程上传速度从 10Mbps 提升到了 30Mbps。推流及访问网页等场景的体验也获得了提升。

Coxxs

在 Windows 11 下启用 BBR v2》有5个想法

  1. win11(22621.1778)下开启BBRv2会导致hyper-v不能连接,需要将template=Internet的算法恢复为CUBIC

    1. 这个问题我找了接近半年了,终于找到了问题所在,感谢您!

    2. 这个问题同样困扰了大半年,一直不想重装系统,现在终于解决了
      我把命令贴出来
      netsh int tcp set supplemental template=Internet congestionprovider=CUBIC

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注