改进BBR算法在卫星网TCP加速网关中的应用研究

2023-02-17 01:54王云飞孟祥宇高二东王占伟郝晓强
计算机应用与软件 2023年1期
关键词:包率吞吐量网关

王云飞 黄 勇 朱 珊 孟祥宇 高二东 王占伟 郝晓强

(航天恒星科技有限公司 北京 100095)

0 引 言

随着通信技术的快速发展,4G网络已普遍应用,5G网络也在加快建设。相比4G网络,5G网络有着高速度、低功耗和低时延的特点[1]。网络速度提升,用户体验与感受会有较大提高,对于5G基站峰值要求不低于20 Gbit/s,这样一个速度,意味着用户可以每秒钟下载一部高清电影,也能支持VR视频。但在大延时和高丢包的卫星通信系统中,网络传输速度很低[2],用户体验不好,在时延550 ms、时延抖动比较小的情况下,TCP连接不做加速时传输速率为空口带宽(卫星口最大传输能力)的30%~40%。例:10 Mbit/s的带宽最大只能利用3 Mbit/s~4 Mbit/s,其余资源被浪费。为解决上述问题,需要采用TCP加速方式,TCP加速一般采用透明代理的方式[3]。透明代理分别与TCP连接的两端进行交互,这样两端的数据包都被缓存在两端的TCP加速器上,TCP加速器之间的数据发送由TCP加速器进行控制。这样就把端到端的TCP连接分割成几部分,就可以根据这几部分的丢包、延时情况进行不同的优化,从而提高TCP的传输性能。而TCP加速器核心的部分就是拥塞控制算法优化,TCP拥塞控制算法主要分为以下几种思路:1) 基于丢包的拥塞控制:将丢包视为拥塞,采取缓慢探测的方式,逐渐增大拥塞窗口,当出现丢包时,拥塞窗口减小,如Reno、CUBIC[4]等。这类算法的缺点是把丢包作为拥塞信号,但是丢包不一定拥塞,比如无线/移动/中间节点缓存小的环境中,经常性丢包,导致拥塞窗口频繁减小,带宽利用率很低。2) 基于时延的拥塞控制:将时延增加视为拥塞,时延增加时减小拥塞窗口,时延减小时增大拥塞窗口,如Vegas[5]等。这类拥塞算法的缺点是网络中Vegas与其他算法共存时,基于丢包的拥塞算法会尝试填满网络中的缓存区,导致Vegas计算的RTT比较大,进而降低拥塞窗口,使得传输速度越来越慢,因此Vegas未能在Internet上普遍采用[6]。3) 基于链路容量的拥塞控制:实时测量网络带宽和时延,认为网络上数据包总量大于估算的链路带宽和最小时延的乘积时才出现拥塞,如BBR[7]。由于BBR算法不将丢包视为拥塞,所以在丢包率较高的网络中,BBR依然有极高的吞吐量。如图1所示。在1%丢包率的网络环境下,CUBIC的吞吐量已经降低90%以上,而BBR的吞吐量几乎没有受到影响,当丢包率大于5%时,BBR的吞吐量才出现明显的下降,但是当丢包率小于10-5时,BBR吞吐量不如CUBIC。

图1 BBR与CUBIC在不同丢包率情况下吞吐量

卫星链路比地面有线链路具有更高的丢包率,卫星链路典型的丢包率大约为10-6数量级,如果受到雨衰、射线等自然条件的影响而造成突发错误,使得丢包率会增加到10-4数量级[8]。本文针对卫星网络丢包率小于10-5的场景,分析BBR速率降低的原因,研究改进BBR在卫星网TCP加速网关中的应用。

1 问题分析

大传播延时是卫星网络传输的特点之一,地球静止轨道卫星的RTT为550 ms左右,链路较差是在600 ms~800 ms之间波动。图2为所测试的卫星网络带加速网关示意图。

图2 卫星网络带加速网关示意图

加速网关在小站和中心站部署,提供双边加速功能,通过在加速网关代理TCP连接,并且配置较大的发送缓存和接收缓存,既能实现前向加速,又能实现回传加速。

在加速网关中引入BBR之后,当卫星链路丢包率小于10-5时,发现BBR吞吐量不如CUBIC,甚至还存在很大差距。图3是小站回传带宽500 kbit/s、卫星链路丢包率小于10-5的情况下,测试回传不同大小的文件,BBR与CUBIC的平均速率对比。

图3 BBR与CUBIC的平均速率对比

可以看出,随着文件的增大,平均速率都在逐渐增加,但随着文件的继续增大,平均速率不再增加,而是趋于固定值。BBR最大平均速率在350 kbit/s左右,只有满带宽的70%,而CUBIC最大平均速率在480 kbit/s左右,已达到满带宽的96%。

BBR是基于接收端反馈ACK和发送端调节速率的拥塞算法。发送端每收到一个ACK,都会计算即时带宽BW和RTT,然后反馈给BBR的状态机,在不同状态不断地调节增益系数,最后计算出拥塞窗口CWND和即时速率Pacing Rate,即时速率规定拥塞窗口内的数据包之间,以多大的时间间隔发送出去。BBR的状态机如图4所示。具体解释如下:

图4 BBR的状态转换图

状态机分为4种状态:Startup、Drain、Probe_BW、Probe_RTT。Startup类似于传统拥塞算法的慢启动,CWND和Pacing Rate的增益系数都是2ln2,每次收到ACK都以这个系数增大发包速率,连续三次测的最大带宽增长在25%以内,就算带宽满了,然后进入Drain状态。进入Drain状态后,CWND的增益系数不变,Pacing Rate的增益系数小于1,目的是把Startup产生多余的数据包排空,检查Inflight如果小于BDP,说明多余的数据包已排出,进入到Probe_BW状态,否则还在Drain状态。Probe_BW是稳定状态,这时已经测出来一个最大瓶颈带宽,而且尽量不产生排队现象,在Probe_BW状态Pacing Rate按照[5/4,3/4,1,1,1,1,1,1]增益系数进行轮询发送。Probe_RTT是探测最小RTT状态,超过10 s没有探测到最小RTT,就会进入到Probe_RTT状态,CWND降到4个MSS,至少等200 ms才会退出这个状态。此时,如果带宽不满,进入到Startup状态,否则,进入到Probe_BW状态。前面三种状态,都会进入到Probe_RTT状态,把CWND降到4个MSS,这样会使发送速率突然下降。尤其是在卫星链路延迟抖动大的情况下,每隔固定时间,速率都会降很多,导致占不满带宽[9]。TCP加速追求的是尽量占满带宽,又不导致链路拥塞,这显然需要在原来的基础上进行改进。

2 设计思想及方法

考虑到Probe_RTT状态带来的速率损失,设计了把Probe_RTT状态去掉,这样能保持满带宽发送;为了保持速率的稳定,设计了把建立连接的RTT作为最小RTT;为了保持多连接的公平性,在加速网关中设计了公平队列调度机制。具体设计思想如下:

(1) BBR的不足就是Probe_RTT状态下会减小窗口,容易出现速率急速下滑。根据对BBR状态机的分析,TCP连接在探测到最大带宽后,进行排空,然后进入到稳定状态,这时候RTT比较稳定,估算的带宽就是链路最大带宽,以此计算的速率进行发送,就能达到最大吞吐量,而不用每隔10 s检测不到最小RTT,就进入到Probe_RTT状态,这样避免进入到Probe_RTT状态造成的带宽浪费。

(2) 考虑到卫星链路RTT抖动大的问题,以每次建立连接的RTT作为最小RTT,这样避免了传输过程中RTT抖动大造成的速率剧烈波动。

(3) 考虑到把Probe_RTT状态去掉后,造成的多连接不公平性,在TCP加速网关中设计了公平队列调度机制,如图5所示。TCP根据ACK反馈以及其他信息计算出Pacing Rate,并反馈到公平队列调度器,调度器根据Pacing Rate计算出每个包发送的时间间隔,然后加入到TCP的发送队列中。这样做能保证每个连接的RTT相对公平,进而速率也相对均衡。

图5 公平队列调度机制示意图

3 实验分析

实验测试环境如图6所示。所用的卫星为地球同步轨道卫星,运行在离地比较高的轨道上,卫星链路往返延时RTT在600 ms以上,丢包率小于10-5,配置小站回传带宽为500 kbit/s,小站和中心站各部署有加速网关。PC1首先通过低延迟地面网络连接小站,小站通过高延迟的卫星网络连接中心站,中心站通过低延迟的地面网络连接PC2,这样,PC1通过卫星网络就能访问到PC2。测试PC1给PC2发回传TCP业务,在加速网关中对比测试改进BBR和BBR的性能,测试改进BBR多连接的公平性。

图6 卫星网络拓扑结构图

测试PC1向PC2上传不同大小的文件,改进BBR和BBR平均速率对比如图7所示。

图7 改进BBR与BBR的平均速率对比

随着文件不断增大,平均速率也逐渐增加,当文件超过150 MB时,改进BBR平均速率达到480 kbit/s,接近回传带宽500 kbit/s,而BBR平均速率只有340 kbit/s。

测试PC1向PC2上传不同大小的文件,改进BBR和BBR传输时间对比如图8所示。

图8 改进BBR与BBR的传输时间对比

随着文件不断增大,传输时间差距越来越大,在下载200 MB文件时,改进BBR比BBR用时缩短了171 s,这是因为改进BBR避免了探测最小RTT的开销,文件越大,探测最小RTT所占的时间越长,改进BBR的用时越短,加速效果越明显。

测试PC1向PC2上传文件,并有4个并发连接,改进BBR速率随时间变化如图9所示。开始的时候,只有连接1上传,进行慢启动,直到占满带宽,速率稳定下来;然后连接2开始上传,导致连接1的RTT突然变大,瞬时速率减小,给连接2让出来带宽,连接2的速率涨了上去,连接1的RTT逐渐减小,连接2的RTT逐渐增加,连接1和连接2的RTT维持一个相对均衡的值,2个连接平分带宽;稳定一段时间后,连接3开始上传,3个连接平分带宽;稳定一段时间后,连接4开始上传,4个连接平分带宽,持续不断地传输。

图9 改进BBR的 4个连接速率变化

4 结 语

通过在卫星链路较低丢包率情况下,改进BBR和BBR传输速率的对比,说明改进BBR的传输速率有明显的提高,而且不影响多连接的公平性,比较适合卫星链路的传输。下一步重点研究地面无线网络环境下改进BBR的适用性以及更为高效的TCP加速方法。

猜你喜欢
包率吞吐量网关
支持向量机的船舶网络丢包率预测数学模型
一种基于喷泉码的异构网络发包算法*
电磁线叠包率控制工艺研究
信号系统网关设备的优化
2017年3月长三角地区主要港口吞吐量
2016年10月长三角地区主要港口吞吐量
2016年11月长三角地区主要港口吞吐量
TCN 协议分析装置丢包率研究
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”