拥塞控制算法BBR原理及其部署安装,加速网络传输速度
传统 TCP 拥塞控制算法,是基于 丢包反馈 的协议,是一种 被动式 的拥塞控制机制,其依据网络中的 丢包事件 来做网络拥塞判断。即便网络中的负载很高时,只要没有产生拥塞丢包,协议就不会主动降低自己的发送速度。这种协议可以 最大程度的利用网络剩余带宽,提高吞吐量。 然而,由于基于丢包反馈协议在网络近饱和状态下所表现出来的侵略性,一方面大大提高了网络的带宽利用率;但另一方面,对于基于丢包反馈的拥塞控制协议来说,大大提高网络利用率同时意味着下一次拥塞丢包事件为期不远了,所以这些协议 在提高网络带宽利用率的同时也间接加大了网络的丢包率 ,造成整个网络的抖动性加剧。
所谓BBR(BBR(Bottleneck Bandwidth and RTT)),是 Google 提出的一种全新的 拥塞控制算法,其不以丢包作为拥塞控制信号,可以使 Linux 服务器显著地提高吞吐量和减少 TCP 连接的延迟。有了 BBR 算法,Linux 服务器可以显著提高吞吐量并减少连接延迟,简单来说 BBR 能加速网络传输速度。
CentOS 部署方式:
wget https://d.kxxzz.com/sh/tcp.sh
chmod +x tcp.sh
./tcp.sh
如果上述网址失效,可以下载后上传服务器:
- 链接:https://pan.baidu.com/s/1rvYM_HmWH5k7FbRoEtcoCg
- 提取码:ff5x
chmod +x bbr.sh
./bbr.sh
先安装BBR内核(1),再使用BBR加速(4)。
Debian 7+,Ubuntu 12+ 部署方式:
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
./bbr.sh
安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。
重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令:
uname -r # 查看内核版本,含有 4.10 就表示 OK 了
lsmod | grep bbr # 返回值有 tcp_bbr 模块即说明bbr已启动
内核升级方法:
CentOS:
yum --enablerepo=elrepo-kernel -y install kernel-ml kernel-ml-devel
CentOS 6:
sed -i 's/^default=.*/default=0/g' /boot/grub/grub.conf
CentOS 7:
grub2-set-default 0
如果是 Debian/Ubuntu 系统,则需要手动下载最新版内核来安装升级。 去这里下载最新版的内核 deb 安装包。 如果系统是 64 位,则下载 amd64 的 linux-image 中含有 generic 这个 deb 包;
如果系统是 32 位,则下载 i386 的 linux-image 中含有 generic 这个 deb 包;
安装的命令如下(以最新版的 64 位 5.3.0 举例,替换为下载好的 deb 包):
dpkg -i linux-image-unsigned-5.3.0-050300rc1-generic_5.3.0-050300rc1.201907212232_amd64.deb
#安装完成后,再执行命令
/usr/sbin/update-grub
参考:
1: https://www.kxxzz.com/xx/367.html
2: http://www.aeink.com/1167.html