APP下载

基于正向时延的卫星网络拥塞控制算法研究

2018-06-06关世杰姜月秋关启学郭秦超

兵工学报 2018年5期
关键词:吞吐量链路时延

关世杰, 姜月秋, 关启学, 郭秦超

(沈阳理工大学 信息科学与工程学院, 辽宁 沈阳 110159)

0 引言

空间网络是在不同轨道上多种类型卫星系统、空间站等,按照空间信息资源的最大有效利用原则,互通互连、有机构成的智能化体系,同时又与陆、海、空共同构成天地一体化网络系统[1]。随着通信技术和航天技术的飞速发展,空间网络研究与应用的重要性日益提高,空间网络的建设势在必行。

空间数据系统咨询委员会(CCSDS)在TCP协议的基础上进行了相应的研究和扩展,提出了空间通信协议规范传输协议(SCPS-TP)[2],SCPS-TP把Vegas算法做为传输控制协议的拥塞控制算法[3],Vegas算法通过计算数据分组的往返时间(RTT)来判断网络带宽占用情况,提前对发送窗口进行调整,避免拥塞的发生。据统计,采用Vegas算法的网络比采用Reno算法[4]的网络吞吐量要提高37%~71%,丢包率要减小20%~50%[5]. 但是,由于Vegas算法是为地面网络而设计的,虽然它比其他协议更适合卫星网络,但是它没有充分考虑卫星网络独有的特点,如变化的往返时延、较长的传播时延、高误码率、带宽不对称等特点,造成不能准确地预测网络拥塞状态或不能对当前网络拥塞情况做出快速的响应,从而浪费了信道宝贵的通信资源。如何在卫星网络中提高Vegas算法的通信效率,成为人们研究的热点问题[6-8]。

文献[9]结合RTT的历史变化,在测算RTT值时综合考虑了最大的排队延迟差值、当前的排队延迟变化量和最近的排队延迟变化量影响,从而提高RTT的测算精度。文献[10]利用RTT变化量和时延增长量的关系来判别是否发生通信链路的切换,进而决定是否对基准往返时延(BaseRTT)进行重新设定,以克服传统Vegas算法机制在通信链路切换后可能出现的吞吐量下降问题。文献[11]在通信链路发生切换时,除了考虑RTT变化量和时延增长量的关系外,还增加了对窗口增长量的考察,使判定结果更加准确,从而提升了BaseRTT值设置的准确程度。文献[12]提出了Vegas-A算法,该算法在发送端增加了对实际吞吐量变化的分析,将链路状态进行了进一步细分,并针对不同的链路状态采用与之相适应的拥塞窗口cwnd调整策略。文献[13]在Vegas-A算法的基础上,考虑了α和β取值(α、β取值一般分别为1和3,代表网络中沿途路由器缓存中排队的数据分组数量)对拥塞窗口cwnd调整策略的影响,并将α和β的调整与拥塞窗口cwnd的调整结合起来,提高了拥塞窗口cwnd的调整效率。文献[14]对TCP Vegas-A算法进行了改进,通过加入相对队列时延变化的分析,对Vegas-A算法的链路状态进行了更细致的划分,并给出了对应的拥塞窗口cwnd调整策略。文献[15]提出了TCP New Vegas算法,该算法根据相邻两次RTT和拥塞窗口cwnd的变化,预测带宽占用情况并通过调整α和β来避免拥塞。上述方案从RTT、α和β等不同方面对TCP Vegas算法进行了改进,在一定程度上能够提高链路的拥塞控制效果,但这些算法归根到底都需要通过RTT的测算值来估算链路状态,而由于空间通信链路的传输时延较大,使得RTT值很难被精确测出,从而使上述方法的拥塞控制效果并不十分理想。文献[16]提出了Westwood算法,该算法通过应答ACK到达发送端的速率,计算网络的当前可用带宽,对拥塞窗口cwnd和慢启动的阈值进行调整,在一定程度上提高了通信效率。

本文对以上算法进行研究,提出了更适合卫星网络的TCP Vegas正向拥塞控制(Vegas_FD)算法。该算法把Vegas算法控制发送窗口的参数RTT分为两部分:发送时间(RTT_forword)和返回时间(RTT_backward),通过测量RTT_forword和BaseRTT_forword,来控制源端的发送窗口大小,确保在反向链路拥塞时不影响正向链路发送速率。仿真实验证明,改进算法可以提高网络的带宽利用率。

1 Vegas拥塞控制算法

Vegas算法监测发送端发送数据分组的RTT,对网络拥塞提前做出预测,达到在网络拥塞前减小发送速率,避免了由于网络拥塞引起网络吞吐量急剧减小的问题。算法描述如下:

expected=cwnd/BaseRTT,

(1)

actual=cwnd/ActualRTT,

(2)

Δ=(expected-actual)×BaseRTT,

(3)

式中:基准往返时延BaseRTT通常为第1个数据分组的往返时延;ActualRTT为当前数据分组的往返时延,根据(1)式对拥塞窗口cwnd做出动态调整。

(4)

2 Vegas算法的改进:Vegas_FD算法

2.1 算法描述

Vegas算法通过监控数据分组的RTT进行拥塞控制,能比较准确地预测网络的拥塞状态,当网络发生拥塞时,Vegas算法测量到网络发生拥塞,通过减小发送窗口来降低发送数据量,通常情况下,可以减轻拥塞程度,达到正常网络流通状态。对以上机制进行研究,由于空间卫星链路存在着正反向带宽不对称性问题,反向链路带宽通常较小,当反向链路发生拥塞时,正向链路很有可能没有达到满负荷状态,此时,降低发送窗口大小就会浪费可用的正向带宽,从而影响网络通信速度。因此,有必要对Vegas算法进行改进,改进后的Vegas_FD算法描述如图1所示。

2.2 算法分析

首先,通信双方需开启TCP时间戳,TCP时间戳位于TCP选项中,时间戳选项格式如图2所示。

在图2中,类型值为8,长度值为10,时间戳为发送当前数据分组的时间,时间戳 Echo为发送时间回显,是收到数据分组的源端发送时间。然后利用PTP时钟同步算法[17]计算通信两端节点时钟偏移量Offset.

Vegas_FD算法进行拥塞控制参数的获取与计算:

第1步,计算数据分组i的正向链路时延Tforward(i),令

Tforward(i)=tarrive(i)-tsend(i),i=1,2,3,…,

(5)

式中:tarrive(i)为经过时钟偏移量Offset修正的数据分组i到达接收端的时间,到达时间通过应答数据分组的时间戳返回;tsend(i)为实测得到的数据分组i从发送端发送出去的时刻。接着利用(5)式计算数据分组i之前最近一个成功接收的数据分组j的正向链路时延Tforward(j),如果数据分组i之前没有成功接收的数据分组,则Tforward(j)=0.

第2步,计算数据分组i和数据分组j的正向链路的当前时延差ΔT(i),令

ΔT(i)=Tforward(i)-Tforward(j).

(6)

第3步,得出观察期间的正向链路的最小时延baseTforward,即

baseTforward=min(Tforward(i)),i=1,2,3,….

(7)

第4步,计算当前的正向链路期望吞吐量Expected(t)forward,令

Expected(t)forward=cwnd(t)/baseTforward,

(8)

式中:cwnd(t)为时刻t的拥塞窗口大小。

第5步,计算并保存当前正向链路的实际吞吐量Actual(t)forward,令

Actual(t)forward=cwnd(t)/Tforward(i),

(9)

读取之前计算并记录的t时刻前一个RTT的实际吞吐量Actual(t-RTT)forward.

第6步,计算

Δ=(Expected(t)forward-Actual(t)forward)×baseTforward,

(10)

根据Δ与α、β关系的不同而采用不同cwnd、α和β的调整策略,其具体调整策略可分为3种:

1)当Δ<α时,表明当前实际吞吐量与当前期望吞吐量相差不大,正向链路中排队的数据分组较少,正向链路处于未饱和状态。此时应进一步比较当前的实际吞吐量和其前一个RTT的实际吞吐量大小。如果当前实际吞吐量大于其前一个RTT的实际吞吐量,则表明正向链路处于未饱和状态且远离饱和,此时可较大幅度地增大cwnd值,可令cwnd=cwnd+2;同时,为了加快下一轮调整过程中的cwnd增长趋势,以提高正向链路的带宽利用率,应增加α和β值,令α=α+ 1,β=β+1. 反之,如果当前实际吞吐量小于等于前一个RTT的实际吞吐量,则此时可进一步分析相邻数据分组的时延变化趋势,并按不同的变化趋势调整cwnd的增长幅度。若ΔT(i)≤0,则说明数据分组i传输时的正向链路时延有减小趋势,即正向链路中排队的数据分组减少,正向链路处于临近饱和状态但正在远离饱和,可较大幅度地增大cwnd值。令cwnd=cwnd+2,同时为了加快下一轮调整过程中的cwnd增长趋势,以提高正向链路的带宽利用率,应增加α和β值,令α=α+ 1,β=β+1. 若ΔT(i)>0,则说明数据分组i传输时的正向链路时延有增长趋势,即正向链路中排队的数据分组增多,正向链路处于临近饱和状态且正在进一步接近饱和,可适当地增大cwnd值。令cwnd=cwnd+1,并为了保持下一轮调整过程中的cwnd增长趋势,应保持α和β值不变。

2)当α≤Δ≤β时,表明当前实际吞吐量与当前期望吞吐量有一定差距,正向链路中排队的数据分组较多,正向链路处于临近饱和状态。此时应进一步比较当前实际吞吐量和其前一个RTT的实际吞吐量大小。如果当前实际吞吐量大于其前一个RTT的实际吞吐量,则表明正向链路处于临近饱和状态且尚未饱和,此时可适当地增大cwnd值,令cwnd=cwnd+1. 同时,为了保持cwnd的增长趋势,以提高正向链路的带宽利用率,应增加α和β的值,令α=α+1,β=β+1. 反之,如果当前实际吞吐量小于等于前一个RTT的实际吞吐量,则此时可进一步分析相邻数据分组的时延变化趋势,并按不同变化趋势调整cwnd的增长幅度。若ΔT(i)≤0,则说明数据分组i传输时的正向链路时延有减小趋势,即正向链路中排队的数据分组减少,正向链路处于临近饱和状态但正在远离饱和,可较适当地增大cwnd值。令cwnd=cwnd+1,并为了保持下一轮调整过程中的cwnd增长趋势,应保持α和β值不变。若ΔT(i)>0,则说明数据分组i传输时的正向链路时延有增长趋势,即正向链路中排队的数据分组增多,正向链路处于临近饱和状态且正在进一步接近饱和,为充分利用正向链路带宽且不发生拥塞,应保持cwnd、α和β值不变。

3)当Δ>β时,表明当前实际吞吐量与当前期望吞吐量相差较大,正向链路中排队的数据分组很多,正向链路已经处于饱和状态(但未发生拥塞)。此时应进一步比较当前实际吞吐量和其前一个RTT的实际吞吐量大小。如果当前实际吞吐量大于其前一个RTT的实际吞吐量,则表明正向链路处于饱和状态但还能容纳一些数据分组,此时还可小幅度地增大cwnd值,令cwnd=cwnd+1/cwnd,但不应加快cwnd的增长趋势,即保持α和β值不变。反之,如果当前实际吞吐量小于等于前一个RTT的实际吞吐量,则此时可进一步分析相邻数据分组的时延变化趋势,并按不同变化趋势调整cwnd的增长幅度。若ΔT(i)≤0,则说明数据分组i传输时的正向链路时延有减小趋势,即正向链路中排队的数据分组减少,正向链路处于饱和状态但正在远离饱和,可较小幅度地增大cwnd值,令cwnd=cwnd+1/cwnd,并为了保持下一轮调整过程中的cwnd增长趋势,应保持α和β值不变。若ΔT(i)>0,则说明数据分组i传输时的正向链路时延有增长趋势,即正向链路中排队的数据分组增多,正向链路处于饱和状态且正在接近拥塞。如果此时cwnd≥3,则应立即减小cwnd值,令cwnd=cwnd-1;如果此时α≥2,则为了避免在下一轮调整过程中发生拥塞,还应减小α和β值,可令α=α-1,β=β-1.

该算法的优势在于,当正返向链路正常或反向链路发生拥塞但不严重时,以正向链路时延的变化来衡量正向链路的拥塞程度,在拥塞窗口调整过程中,根据前后两个相邻RTT内吞吐量的变化和两个相邻成功接收数据分组的正向链路时延差,对链路状态进一步细分,使得链路状态的判断更加精准,以提高拥塞窗口的调整效率,并进一步提高拥塞控制时正向链路的带宽利用率。如果正向或反向链路发生拥塞比较严重使数据分组传输超时,则重传该数据分组。另一方面,该算法不需要修改TCP数据包格式,只需通信双方开启TCP数据包时间戳选项,与上层协议与应用完全兼容。

3 Vegas_FD仿真与分析

3.1 仿真环境

本文使用网络仿真软件Opnet进行网络建模,在前期研究工作中已经成功地开发了CCSDS空间通讯协议,为了算法的设计与测试建立了开发平台。通过Opnet软件对Vegas算法、Vegas_FD算法和Westwood算法3种算法进行仿真,由于3种算法是在卫星网络环境下进行的比较,本文设计了2个节点,分别是地面工作站和卫星,具体仿真参数如表1所示。

3.2 仿真方案设计与结果分析

1)在拥塞窗口方面进行对比,仿真结果如图3所示。

图3中3个算法拥塞窗口值明显分为3个层次,Vegas算法拥塞窗口平均值为1 985 bytes,Vegas_FD算法拥塞窗口平均值为5 012 bytes,Westwood算法拥塞窗口平均值为2 761 bytes. 通过分析得出:由于Vegas_FD算法在反向链路发生拥塞而正向链路未拥塞时仍保持较高的拥塞窗口,其拥塞窗口均值较大;Westwood算法由于对传输网络带宽进行了更加精确的预测和参数调整,其拥塞窗口均值居中;Vegas算法在非对称带宽的卫星网络中带宽预测不够准确,其拥塞窗口参数调整过于保守,拥塞窗口均值最低。

2)在吞吐率方面进行对比,仿真结果如图4所示。

由图4可以看出:在150 s时Vegas_FD算法与Vegas算法、Westwood算法吞吐率差距开始变大,随着时间的增加,吞吐率差距越来越大;在600 s时Vegas_FD算法比Vegas提高94.93%,比Westwood算法提高30.29%. 由于Vegas_FD算法在反向链路发生拥塞时并没有降低发送端发送数据的速度,因而接收端能够保持较高的数据接收率。

Vegas_FD算法相比Vegas算法、Westwood算法在拥塞窗口、吞吐率两方面都有明显的提高,下面通过仿真测试Vegas_FD算法在提高吞吐率的前提下是否对网络时延造成影响,仿真结果如图5所示。

由图5可以看出,在200 s后与Vegas算法相比,Vegas_FD算法的网络时延开始减小,400 s后二者间的差距变大,在600 s时Vegas-FD算法降低20.51%,而Vegas_FD算法与Westwood算法网络时延基本一致。由此可以证明Vegas_FD算法在网络时延方面比Vegas算法有比较大的改进,从另一方面验证了改进算法的效率与正确性。

4 结论

本文针对SCPS-TP协议中传统Vegas算法在带宽不对称的卫星网络中通信效率不足,提出了一种改进的Vegas_FD算法,新算法通过测量数据分组的正向时延而不是数据分组的往返时延来控制发送端的拥塞窗口大小,避免了由于反向链路发生拥塞造成正向链路传输速度减小的问题,提高了正向带宽利用率和减小了网络时延。通过Opnet软件进行仿真和分析,与Vegas算法和Westwood算法进行对比,验证了在带宽不对称的卫星网络中Vegas_FD算法在整体性能方面优于Vegas算法和Westwood算法。

参考文献(References)

[1] 沈荣骏. 我国天地一体化航天互联网构想[J]. 中国工程科学, 2006, 8(10): 19-30.

SHEN Rong-jun. The idea of integration of heaven and earth in China[J].Engineering Science, 2006, 8(10): 19-30.(in Chinese)

[2] Nguyen T A N, Sterbenz J P G. An implementation and analysis of SCPS-TP in ns-3[C]∥Proceedings of the Workshop on ns-3.New York, NY,US: ACM, 2017: 17-23.

[3] Brakmo L S, Peterson L L. TCP Vegas: end to end congestion avoidance on a global Internet[J]. IEEE Journal on Selected Areas in Communications, 1995, 13(8): 1465-1480.

[4] Padhye J, Firoiu V, Towsley D F, et al. Modeling TCP Reno performance: a simple model and its empirical validation[J]. IEEE/ACM Transactions on Networking, 2000, 8(2): 133-145.

[5] Mo J, La R J, Anantharam V, et al. Analysis and comparison of TCP Reno and Vegas[C]∥Proceedings of the 18th Annual Joint Conference of the IEEE Computer and Communications Societies. New York, NY,US: IEEE, 1999: 1556-1563.

[6] Wang J Y, Wen J T, Li C, et al. DC-Vegas: a delay-based TCP congestion control algorithm for datacenter applications[J]. Journal of Network and Computer Applications, 2015, 53(7): 103-114.

[7] Cheng R S, Deng D J. Congestion control with dynamic threshold adaptation and cross-layer response for TCP Vegas over IEEE 802.11 wireless networks[J]. International Journal of Communication Systems, 2014, 27(11): 2918-2930.

[8] 杨力,孙晶,潘成胜,等. 基于多目标决策的LEO卫星网络多业务路由算法[J]. 通信学报,2016,37(10):25-32.

YANG Li,SUN Jing, PAN Cheng-sheng, et al. LEO multi-service routing algorithm based on multi-objective decision making[J]. Journal on Communications, 2016,37(10):25-32.(in Chinese)

[9] 易发胜, 赵继东. 利用时延特性的模糊TCP拥塞控制算法[J].电子科技大学学报, 2010, 39(2): 261-265.

YI Fa-sheng,ZHAO Ji-dong. Fuzzy TCP congestion control algorithm using delay[J].Journal of University of Electronic Science and Technology of China, 2010, 39(2): 261-265.(in Chinese)

[10] 岳鹏, 张冰, 刘增基,等.TCP Vegas重选路问题及其解决方法[J].计算机科学, 2006, 33(8): 39-41.

YUE Peng, ZHANG Bing, LIU Zeng-ji,et al. A rerouting issue with TCP Vegas and its solution[J].Computer Science, 2006, 33(8): 39-41. (in Chinese)

[11] 王宇亮,郑昌文,章洋. MANET中TCP Vegas拥塞控制的端到端改进方法[J].计算机工程与应用, 2007, 43(15):105-107.

WANG Yu-liang, ZHENG Chang-wen, ZHANG Yang. End to end improvement of TCP Vegas over mobile Ad Hoc networks[J].Computer Engineering and Applications, 2007, 43(15): 105-107.(in Chinese)

[12] Srijith K N, Jacob L, Anand A L. TCP Vegas-A: improving the performance of TCP Vegas[J].Computer Communications,2005,28(4):429-440.

[13] 拱长青,赵志刚,王光兴. LEO卫星网络TCP拥塞控制算法改进研究[J].计算机工程,2006,32(18):90-92.

GONG Chang-qing,ZHAO Zhi-gang,WANG Guang-xing. Research of TCP congestion control algorithm over LEO satellite networks[J].Computer Engineering,2006,32(18):90-92.(in Chinese)

[14] 王建峰,黄国策,陈才强,等.GEO卫星网中基于拥塞状态区分的TCP Vegas改进算法[J]. 计算机科学, 2008, 35(11): 70-73.

WANG Jian-feng, HUANG Guo-ce, CHEN Cai-qiang,et al. Enhanced TCP Vegas congestion control algorithm based on congestion status differentiation over GEO satellite networks[J].Computer Science, 2008, 35(11): 70-73.(in Chinese)

[15] Sing J, Soh B. TCP New Vegas: improving the performance of TCP Vegas over high latency links[C]∥Proceedings of the 4th IEEE International Symposium on Network Computing and Applications.Cambridge, MA, US:IEEE, 2005: 73-82.

[16] Mascolo S, Casetti C, Gerla M, et al. TCP Westwood: bandwidth estimation for enhanced transport over wireless links[C]∥Proceedings of the 7th Annual International Conference on Mobile Computing and Networking. Rome, Italy: ACM, 2001: 287-297.

[17] IEC.61588 Precision clock synchronization protocol for networked measurement and control system[S]. New York, N Y, US: International Electrotechnical Commission, 2009.

猜你喜欢

吞吐量链路时延
一种移动感知的混合FSO/RF 下行链路方案*
基于凸优化的FSO/RF 自动请求重传协议方案
天空地一体化网络多中继链路自适应调度技术
计算机网络总时延公式的探讨
《舍不得星星》特辑:摘颗星星给你呀
基于GCC-nearest时延估计的室内声源定位
基于移动站的转发式地面站设备时延标校方法
2017年3月长三角地区主要港口吞吐量
2016年10月长三角地区主要港口吞吐量
2016年11月长三角地区主要港口吞吐量