How to Enable TCP BBR on Debian 11 Bullseye

For years, the primary congestion control algorithms used on the internet were Reno and CUBIC. Both of these had their strengths and weaknesses, but they shared one major issue: they were not very effective at dealing with network bottlenecks. This led to a lot of wasted bandwidth and high latency, which was a major problem for Google and other companies that rely on the internet for their operations. However, Google has now found a way to overcome these issues with the new TCP Bottleneck Bandwidth and RRT (BBR) algorithm.

This updated congestion control algorithm achieves significant bandwidth improvements, lowers latency, and is deployed by, Google Cloud Platform, Youtube, and others. Thanks to BBR, we can finally say goodbye to the old network bottleneck problems that have plagued us for so long.

In the following tutorial, you will learn to enable TCP BBR on Debian 11 Bullseye using the command line terminal with some configurations and screenshots.

Update Debian

Before you proceed, update your system packages to ensure no conflicts occur.

sudo apt update && sudo apt upgrade -y

Check Existing Congestion Controls

First, before you begin, it is highly advised to check what existing TCP congestion controls are in place. Typically, Linux uses reno and cubic algorithms.

Run the following command in your terminal to determine what is in use by default. BBR should not be featured since you have not added or enabled it yet unless you have done so previously.

sudo sysctl net.ipv4.tcp_congestion_control

Example output:

As the above output states, cubic is employed on your system, but your output may show different results.

Next, what available TCP congestion control algorithms are available as follows.

sudo sysctl net.ipv4.tcp_available_congestion_control

Example output:

From the output, reno and cubic are available, and once BBR has been added/enabled, this should feature BBR.

Enable TCP BBR Congestion Control

Now that you have checked the basics to confirm the available algorithms, open your sysctl.conf file.

sudo nano /etc/sysctl.conf

Next, copy and paste the following.



Save the sysctl.conf changes using CTRL+O, then exit CTRL+X.

Reload the configuration file using the following command.

sudo sysctl -p

Example output:

Confirm that BBR is enabled and active as the new TCP congestion control by re-using the following command.

sudo sysctl net.ipv4.tcp_congestion_control

Example output:

Alternatively, use the lsmod | grep BBR command to verify as follows.

lsmod | grep bbr

Example output:

Lastly, re-confirm available TCP congestion controls available using the following command.

sudo sysctl net.ipv4.tcp_available_congestion_control

Example output:

Congratulations, you have enabled TCP BBR.

See also
How to Install Google Chrome on openSUSE Leap or Tumbleweed

Comments and Conclusion

What implications will this have on the future of congestion control algorithms? Will Reno and CUBIC soon become obsolete? Only time will tell. In the meantime, it’s important to stay up-to-date on the latest changes in Google’s TCP algorithm so you can ensure your website is performing at its best.

Leave a Comment

Share to...