Google has long been a leader in Congestion Control research, and they have finally found a way to overcome many previously present issues in both Reno & CUBIC. The new TCP Bottleneck Bandwidth and RRT (BBR) algorithm achieves significant bandwidth improvements, lowers latency, and is deployed by Google.com, Google Cloud Platform, Youtube, and others. This updated congestion control algorithm uses an estimated bottleneck bandwidth measurement combined with a packet-conservation policy to regulate sending rate. This allows for eliminating queueing delays while also providing high link utilization. In the future, BBR may become the de-facto congestion control algorithm for the Internet.
Begin updating your Ubuntu to ensure all existing packages are up to date.
sudo apt update && sudo apt upgrade
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.
As the above output states, cubic is employed in your system, but your output may show different results.
Next, what available TCP congestion control algorithms are available as follows.
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
Confirm that BBR is enabled and active as the new TCP congestion control by re-using the following command.
Alternatively, use the lsmod | grep BBR command to verify as follows.
lsmod | grep bbr
Lastly, re-confirm available TCP congestion controls available using the following command.
Congratulations, you have enabled TCP BBR.