Generally, when we use the Linux series operating system, we will install Google's BBR network congestion control software. BBR v2 version can now be enabled on Windows 11.
BBRv2 is a model-based congestion control algorithm designed for reduced queuing, low loss, and (bounded) Reno/CUBIC coexistence. Maintains a model network path using measurements of bandwidth and RTT, and (if occurring) packet loss and/or DCTCP/L4S style ECN signaling.
BBR2 is more "fair" than BBR. In the case of delay and packet loss, its speed will be much slower than BBR, and sometimes slower than the default CUBIC, so you have to test it according to your own link. It can only be regarded as something that is better than nothing.
Windows Server now uses the CUBIC congestion control algorithm by default, which is currently the most commonly used congestion control algorithm.
This article directory
- 1. Related Links
- 2. Operation steps
- 2.1. Windows 11
- 2.2. Linux
- 3. Restore settings
Related Links
Google BBR GitHub: https://github.com/google/bbr
Introduction to TCP BBR v2 Alpha/Preview
Steps
Windows 11
The requirement Windows 11
is 22h2
version and above.
1. Open powershell and right-click to run with administrator privileges
netsh int tcp set supplemental Template=Internet CongestionProvider=bbr2 netsh int tcp set supplemental Template=Datacenter CongestionProvider=bbr2 netsh int tcp set supplemental Template=Compat CongestionProvider=bbr2 netsh int tcp set supplemental Template=DatacenterCustom CongestionProvider=bbr2 netsh int tcp set supplemental Template=InternetCustom CongestionProvider=bbr2
2. Verify whether it is successfully opened
Get-NetTCPSetting | Select SettingName, CongestionProvider
Linux
View the current congestion control algorithm
sysctl net.ipv4.tcp_congestion_control
If the output is sysctl net.ipv4.tcp_congestion_control
something like that, it means our current algorithm is CUBIC and we edited /etc/sysctl.conf
to change it to BBR.
net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr
save and apply
sysctl -p
Checking again we will see
net.ipv4.tcp_congestion_control = bbr
The above shows that net.ipv4.tcp
it can actually be used in IPv6.
restore settings
Sometimes unexpected problems may occur after opening.
We can enter the following command in powershell to restore.
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