TCP BBR (Bottleneck Bandwidth and Round-trip propagation time) is designed by Google, congestion algorithm published in 2016. Most of the conventional algorithm is based on a congestion signal loss as reduce the transmission rate, and the BBR model based on active probing. The algorithm uses the nearest outbound network data packets at the time of maximum bandwidth and round-trip time to create an explicit model of the network. Each data packet transmission or selective cumulative acknowledgment for generating a recording data amount in the sample rate and the transmission packet returns an acknowledgment transmitted during time.
Google in YouTube application on the algorithm, the global average of YouTube network throughput increased by 4% in some countries more than 14%. According to the field test, the deployment of the latest version of the kernel and turn on the TCP BBR machine speed can even upgrade several orders of magnitude.
4.9 from the start, Linux kernel already making use of the algorithm, and is available for QUIC. If you want to use BBR in Linux, then the first is to determine the kernel version is greater than 4.9, if they meet the standard version, the BBR started directly on it, if less than 4.9, after upgrading the kernel starts on the line.
To introduce the following methods for installing TCP BBR on CentOS 7.3.
First Centos system update, the update to version 7.3.
yum update
Check system version, release 7.3 is greater than the value of the output can be.
cat /etc/redhat-release
For some machines, install what wget
yum install wget
Method 1: Automatic installation using an installation script key
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
Method 2: Manual Installation
Use the following command to install and upgrade the kernel elrepo
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml -y
Updated grub file and restart (after reboot, ssh will disconnect, wait a minute reconnect)
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0
reboot
After the boot to see if the kernel has been replaced with a 4.9
uname -r
Start BBR. In turn execute the following command on it.
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
sysctl -p
Verify bbr has been opened
A, the current command to verify TCP control algorithm:
sysctl net.ipv4.tcp_available_congestion_control
The return value typically: net.ipv4.tcp_available_congestion_control = bbr cubic reno or a: net.ipv4.tcp_available_congestion_control = reno cubic bbr
B, verify that BBR has started.
sysctl net.ipv4.tcp_congestion_control
The return value typically: net.ipv4.tcp_congestion_control = bbr
lsmod | grep bbr
Return value tcp_bbr module that is explained bbr started.
From: Moonlight blog