BBR : A new way to increase Internet speed
- Category: Internet
- Author: Admin
- Publisher:
Psychz Networks
- July 31,2017
A Congestion Control Algorithm developed by Google, the BBR (Bottleneck Bandwidth and Round-trip propagation time) is a solution to increase the transmission speed of packets over the Internet. But what is a Congestion Control Algorithm? The Congestion Control Algorithms are the different ways in which the packets can be sent over the Internet. These are inbuilt in every network device and decide the speed of data transmission on the basis of congestion, packet loss etc.
The Internet most often used loss-based congestion control, which decided to send the packets on the basis of packet loss. If the said algorithm sense packet loss, it would assume the state of congestion and stop sending packets or limit its speed. A major limitation of such congestion control algorithm is that congestion is not the only factor for packet loss. Packet loss can occur due to numerous reasons like faulty transmission media and shallow buffers. in such cases, the algorithm assumes congestion and limits the transmission rate.
The BBR algorithm, however, was written taking all these factors into consideration. BBR evaluates the network and the speed at which it is capable of transmitting data by monitoring the network speed and round-trip time. Through this, the maximum bandwidth available and minimum round trip time is evaluated which guides the BBR to send the maximum possible amount of data at a given time.
TCP BBR congestion control on Ubuntu/Debian
The TCP BBR patch needs to be applied to the Linux Kernel.
Prerequisites
1. The version of Linux Kernel should be 4.9 or higher.
2. The following features should be available in the Linux Kernel.
#CONFIG_TCP_CONG_BBR
#CONFIG_NET_SCH_FQ
(Note: You can check if these are available by running the commands mentioned below.)
grep 'CONFIG_TCP_CONG_BBR' /boot/config-$(uname -r)
grep 'CONFIG_NET_SCH_FQ' /boot/config-$(uname -r)
egrep 'CONFIG_TCP_CONG_BBR|CONFIG_NET_SCH_FQ' /boot/config-$(uname -r)
Configuration
1. Please edit either of the following files with the help of any text editor of your choice. We have used vi editor.
sudo vi /etc/sysctl.conf
sudo vi /etc/sysctl.d/10-custom-kernel-bbr.conf
2. The following lines should be added to the above files.
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
3. Save the file and restart the system to bring the changes into effect.
sudo reboot
4. You can try to test the network with the help of network tools.
Once the changes take effect, you will notice a change in your data speed.