王占伟 孟祥宇 杜倩倩 王云飞 高二东 朱珊
【摘 要】目前,我国高通量卫星系统进入快速发展期,TCP业务作为主要承载业务,在高延迟/高丢包率传输环境下的传输性能成为瓶颈,而新型拥塞控制算法能够有效解决该问题。本文在加速网关中引入BBR拥塞控制算法,做相应改进,并与传统CUBIC拥塞控制算法进行测试对比,验证BBR拥塞控制算法在高通量卫星通信系统中的适用性。
【关键词】BBR;拥塞控制;宽带卫星通信;TCP加速网关
中图分类号: TN927.2文献标识码: A文章编号: 2095-2457(2019)21-0227-002
DOI:10.19694/j.cnki.issn2095-2457.2019.21.105
Application Research of BBR Congestion Control Algorithm in Acceleration Gateway of High-throughput Satellite Communication System
WANG Zhan-wei MENG Xiang-yu DU Qian-qian WANG Yun-fei GAO Er-dong ZHU Shan
(Space star technology co.,ltd., Beijing 100095, China)
【Abstract】At present, China's high-throughput satellite system has entered a period of rapid development. TCP service is the main service of the system. The transmission performance becomes the bottleneck in the transmission environment of high delay/high packet loss rate, and the new congestion control algorithm can effectively solve this problem. In this paper, the modified BBR congestion control algorithm is introduced in the acceleration gateway. And BBR is compared with the traditional CUBIC congestion control algorithm to verify the applicability of BBR congestion control algorithm in high-throughput satellite communication system.
【Key words】BBR; Congestion control; Broadband satellite communications;TCP gateway
0 引言
2017年4月,中星16衛星成功入轨。这是中国航天科技集团第五研究院研制的我国首颗高通量卫星,通信容量超过20Gbps,超过我国此前研制的所有通信卫星容量综合。中国卫星通信正式迈入高通量时代[1]。
目前网络中的数据90%以上都是TCP业务,而TCP业务在高延时、髙误码的环境中传输效率较低。特别地在高通量通信系统中,长肥轨道效应(高延时/高带宽)愈加明显,从而造成带宽利用率低,用户体验差的问题。在高通量卫星通信系统中通过引入加速网关解决上述问题,而加速网关上运行的拥塞控制算法是解决这些问题的核心所在。
1 传统协议栈工作原理
TCP协议作为一个面向连接的可靠传输协议,通过应答方式维持数据传输可靠性的同时利用其滑动窗口机制,一次发送一组数据,来提高数据传输的吞吐量。发送方在特定的时间RTO内未收到某数据段的应答或重复收到对端对该报文段的请求时会立即对此报文段进行重传来保证数据传输的完整和正确。传统地面网络中,由于传输媒介多为光纤或双绞线等误码率低于10e-6的媒介,丢包更多是由于链路容量达到饱和,链路媒介的缓冲区无法承载更多的数据包而主动丢弃。这种丢弃行为被称为拥塞丢包。当发生拥塞丢包时,不顾一切地重传这些被丢弃的数据包只会进一步加剧网络环境的恶化。传统TCP协议栈通过添加拥塞控制算法,在发生拥塞丢包时主动降低发送窗口,来控制网络中的数据流量,并指导发送窗口按照一定的方法在拥塞恢复后继续进行增长,以不断探测可能空闲的带宽资源,实现带宽资源的最大化利用。
2 卫星网络环境特点
相比于传统地面网络,高延迟是卫星网络显著特点之一,一组数据传输后要经过相当长的延迟后才能得到确认,之后才能进行新的数据包的传输。图1为加速网关典型应用场景。为保障高延迟特性下的传输带宽,加速网关将进入到卫星网络中TCP连接进行代理式拆分,在下行网关中提供较大的发送缓存,而在上行网关中提供大的接收缓存。无丢包的情况下,较大的接收和发送缓存可以提供较大的滑动窗口,使在卫星链路中一次发送可以发出地面小延迟网络中多轮传输才能传送完的数据量,从而达到带宽守恒,保障数据的快速传输。而高误码却是卫星通信网络的另外一个特点,当丢包以误码形式出现,传统TCP协议栈由于不能判别丢包是由于误码还是拥塞引起,只能进行保守的按比例降窗。在加速网关的拓扑结构中,为维持带宽而保持较大的发送窗口被按比例降窗的影响是巨大的。因此传统TCP协议的拥塞控制算法在高延时高误码率的环境下的带宽利用率很低。
3 BBR拥塞控制处理流程
BBR[2]通过主动探测链路带宽来最大化地利用卫星网络带宽资源。当网络中数据包不多,还没有填满瓶颈链路的管道时,随着投递率的增加,往返时延不发生变化。当数据包数量超出链路传输能力,还没有被收端接收的数据包会慢慢填满链路媒介缓存区直到缓存区溢出而发生拥塞丢包。在数据填满缓存区的这一过程中,RTT时间会随着数据包在缓存区中等待排队处理的时间变长而变长。BBR根据这种现象,设计了自己的拥塞控制流程[3]。
(1)当连接建立时,BBR采用类似传统TCP协议栈慢启动方式,呈指数形式增加拥塞窗口,经过三次发现计算出的带宽相对恒定(窗口加大的同时rtt周期也变长),说明此时媒介缓冲区正在被填满,链路带宽已经探测到当前环境的最大带宽的边缘,之后进入排空阶段。
(2)在排空阶段,通过降低发送窗口,在维持计算的带宽不变的情况下,缓慢降低RTT值,之后进入带宽探测阶段。
(3)在探测阶段,BBR以8个RTT周期为一组进行带宽探测:先在首个RTT时间内按比例增加发送窗口,如果RTT没有变化,则在第二个rtt内维持当前拥塞窗口;若RTT上升,则在第二个RTT周期内减去上轮rtt中额外增加的发送窗口,以达到排干前一个RTT多发出的数据包,后面6个周期维持更新的窗口发包。图2给出了探测阶段窗口增长示意图。
(4)最小RTT更新阶段:BBR每过10秒,为了确保链路环境不发生大的改动,进入延迟探测阶段,为了探测最小延迟,BBR在这段时间内发送窗口固定为4个包,即几乎不发包,占整个过程2%的时间(无误码情况下2%的带宽流失)。
根据BBR的拥塞控制流程,只要网络拓扑环境不发生剧烈变化,几乎不会引起拥塞丢包而发起数据重传,卫星加速网关中的拓扑结构中很好地做到了这一点,在卫星链路的两侧是采用BBR拥塞控制算法的代理网关。而网关与服务器或客户端之间的复杂而多变的环境则由他们之间短延迟的TCP传统协议栈来处理。
虽然丢失数据包产生的数据重传和ACK丢失带来的探测RTT时间的细微增加在一定程度上会降低BBR在丢包环境中的吞吐量,但由于数据包和ACK的丢失不会显著影响RTT的探测,也就不会显著的影响当前探测带宽的计算。
4 测试环境及测试结果
CUBIC算法和BBR算法对比测试拓扑结构如图3所示。
在延迟设备下增设600ms延迟,设置不同丟包率加速网关采用不同拥塞控制算法,100M测试文件传输时间比对图如图4所示。
在丢包率低于1e-5时,由于BBR在探测最小RTT周期的开销,此时使用CUBIC拥塞算法[4]链路吞吐量会更大一些。当丢包率逐渐上升时,CUBIC拥塞控制算法的吞吐量呈指数型下降,BBR则对丢包率不是特别敏感,在百分之一丢包环境下,依然可以维持一半的吞吐量。
5 总结
BBR拥塞控制算法可以有效地区分拥塞丢包和误码丢包,在高延迟高丢包的卫星网络中可以显著的提升吞吐量。证明BBR拥塞控制算法在高通量卫星通信系统中有较好的适用性,后续会继续改进BBR算法,进一步提高高延时髙误码条件下的卫星带宽利用率,形成系列文章。
【参考文献】
[1]邓恒.高通量卫星的发展与应用前景 空间通信技术与未来网络发展高峰论坛 2018.7.
[2]Neal Cardwell, Yuchung Cheng, C. Stephen Gunn, Soheil Hassas Yeganeh, Van Jacobson BBR: Congestion-based Congestion Control (Measuring bottleneck bandwidth and round-trip propagation time). ACM Queue vol. 14 2016.10.
[3]TCP BBR Quic-Start: Building and Running TCP BBR https://github.com/google/bbr 2017.6.
[4]Sangtae Ha; Injong Rhee; Lisong Xu; Lars Eggert; Richard Scheffenegger CUBIC for Long-Distance Networks. Doi:10.17487/RFC8321 2018.2.



