突发奇想测试了一下Hybla算法,发现在高延迟的线路下可能会比BBR有更好的速度。以联通->MassiveGrid英国鸡做测试,ICMP Ping延迟大约250ms。以下测试时间点是6点50左右,晚高峰之前。
BBR+FQ_PIE
Connecting to host 185.44.x.x, port 5201
Reverse mode, remote host 185.44.x.x is sending
[ 5] local 192.168.1.2 port 46476 connected to 185.44.x.x port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 128 KBytes 1.05 Mbits/sec
[ 5] 1.00-2.00 sec 1.38 MBytes 11.5 Mbits/sec
[ 5] 2.00-3.00 sec 8.25 MBytes 69.2 Mbits/sec
[ 5] 3.00-4.00 sec 8.75 MBytes 73.4 Mbits/sec
[ 5] 4.00-5.00 sec 8.25 MBytes 69.2 Mbits/sec
[ 5] 5.00-6.00 sec 9.12 MBytes 76.6 Mbits/sec
[ 5] 6.00-7.00 sec 8.75 MBytes 73.4 Mbits/sec
[ 5] 7.00-8.00 sec 9.00 MBytes 75.5 Mbits/sec
[ 5] 8.00-9.00 sec 7.88 MBytes 66.1 Mbits/sec
[ 5] 9.00-10.00 sec 6.62 MBytes 55.6 Mbits/sec
[ 5] 10.00-11.00 sec 8.75 MBytes 73.4 Mbits/sec
[ 5] 11.00-12.00 sec 9.12 MBytes 76.5 Mbits/sec
[ 5] 12.00-13.00 sec 4.12 MBytes 34.6 Mbits/sec
[ 5] 13.00-14.00 sec 9.00 MBytes 75.5 Mbits/sec
[ 5] 14.00-15.00 sec 9.00 MBytes 75.5 Mbits/sec
[ 5] 15.00-16.00 sec 9.00 MBytes 75.5 Mbits/sec
[ 5] 16.00-17.00 sec 9.00 MBytes 75.5 Mbits/sec
[ 5] 17.00-18.00 sec 9.00 MBytes 75.6 Mbits/sec
[ 5] 18.00-19.00 sec 9.12 MBytes 76.5 Mbits/sec
[ 5] 19.00-20.00 sec 8.88 MBytes 74.4 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-20.30 sec 169 MBytes 69.7 Mbits/sec 1 sender
[ 5] 0.00-20.00 sec 153 MBytes 64.2 Mbits/sec receiver
Hybla+FQ_PIE
Connecting to host 185.44.x.x, port 5201
Reverse mode, remote host 185.44.x.x is sending
[ 5] local 192.168.1.2 port 60390 connected to 185.44.x.x port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 384 KBytes 3.14 Mbits/sec
[ 5] 1.00-2.00 sec 5.00 MBytes 41.9 Mbits/sec
[ 5] 2.00-3.00 sec 7.50 MBytes 62.9 Mbits/sec
[ 5] 3.00-4.00 sec 8.75 MBytes 73.4 Mbits/sec
[ 5] 4.00-5.00 sec 9.00 MBytes 75.5 Mbits/sec
[ 5] 5.00-6.00 sec 8.75 MBytes 73.4 Mbits/sec
[ 5] 6.00-7.00 sec 9.25 MBytes 77.6 Mbits/sec
[ 5] 7.00-8.00 sec 9.50 MBytes 79.7 Mbits/sec
[ 5] 8.00-9.00 sec 9.75 MBytes 81.8 Mbits/sec
[ 5] 9.00-10.00 sec 8.88 MBytes 74.4 Mbits/sec
[ 5] 10.00-11.00 sec 9.75 MBytes 81.8 Mbits/sec
[ 5] 11.00-12.00 sec 10.2 MBytes 86.0 Mbits/sec
[ 5] 12.00-13.00 sec 10.4 MBytes 87.0 Mbits/sec
[ 5] 13.00-14.00 sec 10.4 MBytes 87.0 Mbits/sec
[ 5] 14.00-15.00 sec 10.6 MBytes 89.1 Mbits/sec
[ 5] 15.00-16.00 sec 11.2 MBytes 94.3 Mbits/sec
[ 5] 16.00-17.00 sec 11.4 MBytes 95.5 Mbits/sec
[ 5] 17.00-18.00 sec 11.6 MBytes 97.5 Mbits/sec
[ 5] 18.00-19.00 sec 11.5 MBytes 96.5 Mbits/sec
[ 5] 19.00-20.00 sec 12.0 MBytes 101 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-20.24 sec 201 MBytes 83.4 Mbits/sec 360 sender
[ 5] 0.00-20.00 sec 186 MBytes 78.0 Mbits/sec receiver
速度提升大约20%,算是个客观的提升,并且速率上升相比BBR更迅速。当然,不同环境有不同结果,更改前可以自行测试。
开启方法,以Debian12为例。
加载Hybla模块
modprobe tcp_hybla
设置拥塞算法为Hybla
sysctl net.ipv4.tcp_congestion_control=hybla
这样就开启好了,可以检测一下。
lsmod | grep hybla
sysctl net.ipv4.tcp_available_congestion_control
如果出现Hybla模块,并且Hybla在拥塞控制算法里面,就算开启成功了。
开机自启动。
把tcp_hybla添加到/etc/modules-load.d/modules.conf
然后把net.ipv4.tcp_congestion_control=hybla添加到/etc/sysctl.conf
如果开启了bbr,请把bbr相关的net.ipv4.tcp_congestion_control删除。