笔记:腾讯TCP单边加速:TCPA安装教程 替代BBR和锐速

TCPA简介

01
01

这个是TCPA,发送数据包和接收应答包后的处理逻辑图。一共包括9个模块。应用程序通过sendfile,write等发送的后,交由内核的数据包构建模块来处理,最终生成一个个SKB并放入发送队列中。平缓发送模块,根据拥塞控制模块所产生的发送速度/发送窗口值来平缓地将这些数据(无论是新数据,还是重传数据)发送到网络中,本身并不会决策发送的速率,只会按照给定的速度/发送窗口来执行。超时模块用来决策哪些数据包超时,并重传,最终会交给平缓发送模块来发送。Probe探测模块,是依据网络的特定需要,构造一些数据包来探测网络的质量情况。发送是交给平缓发送模块来发送,接收到的应答包,会将Probe应答包交给Probe模块来处理。收到应答包后,如果有SACK则单独处理SACK,SACK的处理逻辑比较复杂,需要知道哪些数据包被应答,哪些未被应答,需要对重传队列进行标记。并且也会根据sack中的应答来判断哪些报文丢包了,当前网络中的RTT值变化等。这里会给丢包检测模块,拥塞控制模块提供判断信息。

丢包检测模块,用来判断哪些数据包已经丢弃,比如快速重传,RACK 等算法。这里只去标记丢弃的报文,具体的重传由重传包处理模块来执行。

拥塞控制算法,用来判断当前网络链接情况,并据此来决定当前发送的速度和发送窗口值。不同的拥塞算法所依赖的判断信息不同。 窗口的增减均由这里来判断。这里会依赖 SACK 模块,丢包检测模块,RTO 超时模块,probe 模块等给予关键信息。

重传数据包模块和新数据发送模块相对比较简单,将数据整理好后,交给平缓发送模块来发送。

所以,总的来说,TCPA 的修改不仅仅是对拥塞算法的修改,也对收发包的整个逻辑进行了重构。对于系统已有的功能,我们额外还提供了可调整的参数接口,供使用。比如小表中列举了部分调整的参数:

net.core.wmem_max = 3276800net.ipv4.tcp_fack = 0net.ipv4.tcp_init_cwnd = 10net.ipv4.tcp_loss_init_cwnd = 1net.ipv4.tcp_mem = 379479 505972 758958net.ipv4.tcp_metrics_minrtt = 0net.ipv4.tcp_rto_max = 120net.ipv4.tcp_rto_min = 200net.ipv4.tcp_timestamps = 1net.ipv4.tcp_wmem = 4096 16384 4194304

TCPA测试结果

测试任务第一次测试第二次测试2次测试平均值纵向性能对比
TCPA-电信2047.4012183.0342115.218
640KB任务TCP-电信1450.6361383.6741417.15549.26%
BBR-电信1448.1551536.5171492.33641.74%
TCPA-电信2570.4222552.9812561.702
8MB任务TCP电信1768.4581626.9091697.68450.89%
BBR-电信2295.642358.6462327.14310.08%
TCPA-电信2769.4122713.6322741.522
25MB任务TCP电信1876.6741915.5491896.11244.59%
BBR-电信2585.82590.2052588.0035.93%

测试结论:
1.BBR 算法相比标准的 TCP 的 cubic 算法,性能提升明显。小文件差异不大;大文件的下载性能明显,约 35% 左右。
2.TCPA 的启用,外加系统参数优化后, 大小文件均比标准的 TCP 提升 40% 以上。
3.TCPA 的启用,外加系统参数优化后,小文件比 BBR 能提升 40% 以上,大文件比 BBR 能提升 5%~10%


博睿测试结果

同机房的 2 台 OC 机器,博睿上 640KB 小文件的测试结果

02
02
03
03

海外机房数据传输

从美国弗吉尼亚拷贝 30MB 的数据到中国天津,网络延时高(平均 330ms), 带宽上限是 10Mb/s。传输多次求平均的平均传输速度对比 (单位:KB/s)。

4.png
4.png

一键脚本

wget https://addmoe.com/usr/shell/tcpa/tcpa.sh
sh tcpa.sh

一键包会自动安装依赖 (仅 epel-release、net-tools) 和内核并重启,重启后安装自动完成无需人工干预。


手动安装

安装要求:系统 Centos7

安装依赖

yum -y install net-tools

更换系统内核

wget http://down.08mb.com/tcp_opz/tcpa/kernel-3.10.0-693.5.2.tcpa06.tl2.x86_64.rpmrpm -ivh kernel-3.10.0-693.5.2.tcpa06.tl2.x86_64.rpm --force

重启

reboot

下载主程序

wget http://down.08mb.com/tcp_opz/tcpa/tcpa_packets_180619_1151.tar.gz

安装

tar xf tcpa_packets_180619_1151.tar.gzcd tcpa_packetssh install.sh

默认加速 80 443 8080 如需新增加速端口

vim /usr/local/storage/tcpav2/start.sh
//第46行后添加:
$BINDIR/$CTLAPP access add tip $ip tport 自定义端口

启动TCPA

cd /usr/local/storage/tcpav2
sh start.sh

查看是否开启成功

lsmod|grep tcpa
#tcpa_engine           224249  0

卸载

cd /usr/local/storage/tcpav2
sh uninstall.sh

未经允许不得转载:91天空-科技 生活 快乐 » 笔记:腾讯TCP单边加速:TCPA安装教程 替代BBR和锐速

赞 (6) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏