How to Introduce and Install the BBR Congestion Algorithm on Windows 11
Windows 11 22H2 now supports TCP BBR v2 congestion control. This article shows how to easily switch from the default Cubic congestion control to BBR v2, without restarting your computer, for a faster network experience on Windows 11.
1. What is the BBR Algorithm?
BBR (Bottleneck Bandwidth and Round-trip propagation time) is a congestion control algorithm designed to optimize TCP performance in high bandwidth, high packet loss network environments. It adapts the sending rate based on the current network congestion and latency to achieve maximum throughput and minimal delay. BBR algorithm dynamically measures and estimates parameters such as network bandwidth and latency to determine the optimal congestion window size, ensuring better transmission performance. BBR is widely used in Google’s network services, including YouTube and Google Cloud.
2. What is the Default Algorithm in Windows?
CUBIC (Cubic TCP) is a congestion control algorithm similar to the BB-Reno algorithm, but it differs by using a nonlinear congestion window growth approach, better suited for high bandwidth, high-latency network environments.
CUBIC’s congestion control window grows like a cubic curve. It uses a curve fitting mechanism based on the congestion window size, adjusting it by monitoring packet loss events to manage congestion avoidance and recovery.
CUBIC is widely used in Linux TCP modules and various wide-area network (WAN) and Internet environments, making it a very practical congestion control algorithm.
3. What Are the Differences Between BBR and CUBIC?
BBR and CUBIC differ in several key aspects:
- Algorithm Philosophy: BBR focuses on maintaining the bandwidth and latency of the network’s bottleneck link, adjusting congestion based on the minimum bandwidth and maximum latency in the network. CUBIC, on the other hand, uses a fitting curve to calculate the congestion window size.
- Algorithm Parameters: BBR requires dynamic measurement and estimation of network parameters such as bandwidth and latency, while CUBIC adjusts based on changes in the congestion window size.
- Suitable Environments: BBR is better suited for high bandwidth, high latency, small packet networks, such as Google’s services, while CUBIC is more suitable for high bandwidth, long-distance WAN environments.
4. Which Algorithm Should Be Used in Different Environments?
In short, the choice of congestion control algorithm should depend on the network environment. BBR performs better in networks with large bandwidth and low packet loss, as it can quickly detect and fully utilize the available bandwidth. CUBIC is better for networks with smaller bandwidth and higher packet loss, as it can adapt better to network conditions, reducing packet loss and congestion. When selecting an algorithm, it is important to consider the actual network situation and requirements.
5. Switching to BBR Algorithm on Windows 11
5.1 Check the Current Algorithm
Open PowerShell as Administrator
Enter the following command to check the current algorithm:
NetTCPSetting | Select SettingName, CongestionProvider

5.2 Switch to BBR Algorithm
Enter the following commands one by one:
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
After confirming each command, use the following command again to check if the switch was successful:
SettingName CongestionProvider ----------- ------------------ Automatic InternetCustom BBR2 DatacenterCustom BBR2 Compat BBR2 Datacenter BBR2 Internet BBR2
6. Remarks
No need to restart the computer; the switch takes effect immediately.
If the network slows down after enabling BBR, you can follow the steps above to switch back to
CUBIC
.
Restoring from BBR v2 to the Original CUBIC
To revert to CUBIC, enter the following commands in PowerShell:
netsh int tcp set supplemental Template=Internet CongestionProvider=cubic
netsh int tcp set supplemental Template=Datacenter CongestionProvider=cubic
netsh int tcp set supplemental Template=Compat CongestionProvider=newreno
netsh int tcp set supplemental Template=DatacenterCustom CongestionProvider=cubic
netsh int tcp set supplemental Template=InternetCustom CongestionProvider=cubic
Then use the Get-NetTCPSetting | Select SettingName, CongestionProvider
command to verify the current TCP congestion control algorithm.