GEO卫星网络中基于带宽估计的Vegas算法研究

2014-06-27 08:08曹西京朱本辉
陕西科技大学学报 2014年4期
关键词:卫星网络吞吐量数据包

曹西京, 王 轩, 朱本辉

(陕西科技大学 机电工程学院, 陕西 西安 710021)

0 引言

卫星网络具有链路误码率高、往返时延长等特点,而地面网络TCP协议无法适应卫星通信的特点,因此,国际空间数据系统咨询委员会(Consultative Committee for Space Data Systems,CCSDS)针对TCP协议的问题,提出了一种空间通信协议标准SCPS(Space Communications Protocol Specification ).其中,SCPS-TP是针对TCP协议在空间网络中的问题进行改进而来的.然而,SCPS-TP协议在空间网络中应用时,仍然还存在带宽利用率低,慢启动时间长等问题[1].本文针对这些问题提出了改进方法.

1 Vegas算法慢启动问题分析

在BDP较大的卫星网络中,Vegas慢启动阶段存在以下两方面的问题:(1)每经过两个RTT拥塞窗口增长一倍.这种增长方式在BDP较大的GEO卫星网络中过于保守;(2)发送端在短时间内密集发送的数据包会造成时延短暂性突然增大,使得慢启动阶段过早结束.这些均严重制约了Vegas算法在GEO网络中的应用性能.

在BDP较大的网络中,发送端在短时间内密集发送的数据包会造成时延短暂性突然增大,尤其在慢启动阶段后期,窗口的成倍增长,将导致链路时延的陡然增大,导致发送端过早地满足慢启动结束的条件,从而进入拥塞避免阶段.这将导致带宽资源的极大浪费[2].

图1为单个数据包的往返时延.从图1中可以看出,在慢启动状态,数据包的往返时延RTT剧烈变化.在没有其它链路干扰的情况下,当进入拥塞避免状态时,往返时延RTT趋于稳定.因此,在BDP较大的网络中,存在慢启动过早结束和拥塞窗口过小的问题.

图1 单个数据包的往返时延

在链路时延为250 ms情况下,不同带宽链路慢启动结束时,拥塞窗口大小对比如图2所示.从图2中可以得出,随着BDP的增大,慢启动结束时拥塞窗口也随之增大.

图2 不同带宽下慢启动结束时拥塞窗口

在链路时延为250 ms情况下,不同带宽链路慢启动结束时,拥塞窗口的大小值与链路BDP的比值如图3所示.从图3可知,随着链路带宽时延积增大,慢启动结束时拥塞窗口大小与链路BDP的比值越来越小.

图3 慢启动结束时拥塞窗口与BDP的比值

通过以上仿真分析可知,在慢启动结束时,随着链路带宽增大,系统的带宽利用率急剧减小,因此,Vegas算法在具有大带宽时延积的卫星通信网络中,存在慢启动结束过早的问题,使得网络不能够充分地利用系统资源,造成了带宽资源的浪费.

2 SCPS-TP中Vegas机制改进策略研究

本节针对拥塞窗口增长方式过于保守和慢启动过早结束的问题,在慢启动阶段借鉴Hybla协议,按比例因子ρ的窗口增长方式增加拥塞窗口;针对慢启动过早结束的问题,通过设定修正因子来修正期望吞吐量与实际吞吐量的差值D,从而消除由于窗口成倍增长造成的暂时性时延对网络的影响[3].

2.1 慢启动策略

在实际网络中,拥塞窗口的大小与RTT之间的关系可以用函数RTT=f(cwnd)来表示.将函数RTT=f(cwnd)结合公式运算,则D是关于cwnd的方程.

(1)

可知,D值大小与cwnd和RTTBase的取值有关,而与具体的RTT无关.在一个连接建立时,如果路由无变化,则RTTBase将会是一个常量.因此,只要我们能够确定RTT与cwnd之间的定量关系,就能确定cwnd与D的变化曲线.因此,D的取值与cwnd的大小直接相关.

文献[4]认为,在理想情况下,cwnd与RTT之间是线性关系.因此,将两者之间的函数关系可以进一步简化为RTT=a×cwnd+b,则两次RTT之间的差值ΔRTT可以表示为:

RTTi+1-RTTi=ai+1×cwndi+1-ai×cwndi

(2)

发送端每次接收到一个应答就会记录一次RTT,因此,从第二个RTT开始,发送端每收到一个应答就计算一次a.在没有其它链路接入的理想情况下,慢启动阶段a的取值应为常量.但是在实际情况中,a的值是波动的.因此,我们采用与计算平均往返时延相似的自适应加权平均算法来计算a值.

当第一次发送端计算出a的样本值a1时,a的值就取样本值a1,以后发送端每计算出一次样本值,就通过式(3)对a的值进行更新:

anew=λ×aold+(1-λ)×ai

(3)

式(3)中,λ的取值为0≤λ≤1,λ越小,则aold对anew的影响越小,ai对anew的影响越大.在理想情况下,λ=1,anew=a1,则链路带宽足够大,并且不受其它连接的影响.在实际中,λ的取值与链路的具体状况有关[4].

发送端每收到一个RTT就对a进行一次计算,当观测期结束时,发送端通过式(4)对差值D进行修正,从而减小由于数据包激增造成排队时延陡然增大引起往返时延增大对网络的影响.

(4)

采用带宽估计的方法,估算当前网络带宽资源,判断慢启动的结束时机,从而确定是否结束慢启动阶段,进入拥塞避免阶段.本文借鉴TCP Westwood算法的带宽估计方法,通过对其改进来改善SCPS-TP协议的性能[5].当发送端在th时刻收到来自接收端的ACK应答包时,表示有ln长度的数据包已被正确传输.这时网络中的带宽可通过式(5)估计.

(5)

其中,ti-1为发送端收到上一个ACK的时刻,ttrans为链路传播时延.

发送端每收到一个应答包就会对链路带宽进行估计,得到一个带宽样本值.这些样本值具有一定的随机性,并不能准确反映当前网络的带宽状况.因此,本文利用数字信号处理中的指数加权平均滤波器(EWMA)对采样带宽样本进行滤波,得到一个平稳的带宽估计值.滤波器增益随着瓶颈链路容量的变化而变化,其增益适应网络负载,通过以上分析可得:

Pi=(1-γi-1)pi-1+|(δ+ΔRTT)/δ|

(6)

Ri=RTTmin/δ

(7)

γi=pi/(pi+Ri)

(8)

(9)

2.2 拥塞窗口增长方式

在慢启动阶段,借鉴Hybla协议拥塞窗口增长方式,按比例因子ρ改变拥塞窗口的大小.比例因子ρ为实际RTT与基准值RTT0的比值,ρ=RTT/RTT0.

cwndn+1=cwndn+ρ2-1

(10)

图4 改进后的算法流程图

改进后的Vegas算法具体描述如下:

(1)在慢启动阶段,发送端每收到一个应答包,就计算一次往返时延,并对当前网络可用带宽和a值进行计算;(2)判断当前慢启动阶段处于观测期或增长期;(3)当网络处于观测期时,拥塞窗口不改变,发送窗口的大小与上一次窗口的大小相同;(4)当网络处于增长期时,则计算期望吞吐量与实际吞吐量之间的差值;(5)判断D≥γ+0.5是否成立;(6)如条件(5)成立,则需要判断当前的网络带宽值≤拥塞窗口的大小是否成立;(7)如果条件(5)不成立,则拥塞窗口按照式(10)的方式增大;(8)如果条件(6)成立,则拥塞窗口按照式(10)的方式增大;(9)如果条件(6)不成立,则结束慢启动阶段,进入拥塞避免阶段[8].

算法的伪代码如下:

for(发送端收到ACK)

anew=λ×aold+(1-λ)×ai

if (cwndn=!cwndn-1)

cwndn+1=cwndn

else

if (D≤γ+0.5)

cwndn+1=cwndn+ρ2-1

else

cwndn+1=cwndn+ρ2-1

else

结束慢启动

3 仿真实验及性能分析

3.1 场景建立与参数配置

本节对改进后的SCPS-TP在GEO卫星网络中的性能进行仿真验证.仿真网络由1个地面源端点、1个目的端点及1颗作为转发路由的GEO同步轨道通信3个节点组成.GEO卫星链路的传播时延大约为480 ms,加上数据包的处理延时和队列缓存的排队延时等,共约540 ms[9].网络拓扑结构如图5所示.

图5 仿真拓扑结构图

选取西安(34 °N,109 °S)与乌鲁木齐(47 °N,88 °S)为地面通信终端.在仿真时,假设卫星是透明转发的.设置数据包的大小为1 000字节,缓冲器大小为2 000.网络仿真参数具体配置如表1所示.

表1 仿真参数的具体配置

3.2 结果与分析

使用上述仿真拓扑图和参数设置,分别对改进前后的Vegas算法行仿真.仿真前,假设上下行链路带宽相等.在不同带宽时延积下,改进后与改进前Vegas算法在慢启动结束时拥塞窗口的对比如表2所示.

从表2中可以看出,改进后的Vegas算法在慢启动结束时,拥塞窗口的大小更接近链路的带宽时延积.在带宽为较小时,改进后的算法对系统的性能并没有很大地提升[10].但随着带宽的增大,在慢启动结束时拥塞窗口越来越接近系统的最大带宽时延积.即随着带宽时延积的增大,改进后的Vegas算法的优势越明显[11].

表2 改进前与改进后慢启动

在链路带宽为40 Mb条件下,对改进前后算法在慢启动阶段拥塞窗口的变化情况进行仿真.测得改进前后Vegas算法在慢启动阶段的拥塞窗口变化曲线如图6所示.

图6 慢启动阶段窗口变化的对比

由图6可知,慢启动阶段改进前的Vegas算法由于发送窗口的倍增,导致数据包的排队时延增大,进而使得慢启动阶段提前结束;改进后Vegas算法克服了数据包排队时延对慢启动阶段的影响,减小了排队时延在RTT中所占比重,更加准确地反映了当前网络状态,在慢启动结束时更加接近网络当前状况,提高了系统效率.

该算法窗口增长过程采用按比例因子ρ的方式,同时为了防止慢启动阶段过早结束,对期望吞吐值与实际吞吐值之间的差值用因子进行了修正.因此,窗口增长更加迅速,且进入拥塞避免阶段时拥塞窗口更加接近链路的BDP[12].

在不同带宽时延积下,改进前与改进后Vegas算法在慢启动结束时拥塞窗口与BDP的比值如图7所示.

图7 慢启动结束时拥塞窗口与BDP的比值

通过仿真可知,从总体上来看,改进后的Vegas算法在带宽利用率上有了很大地提高,尤其是在大带宽时延积的情况下,慢启动结束时拥塞窗口大小更接近系统的带宽时延积.相对于改进前的Vegas算法,系统的性能已有了很大地改善.在链路带宽100 Mb情况下,改进前后Vegas算法在慢启动阶段的吞吐量对比如图8所示.

图8 慢启动阶段的吞吐量对比

从图8可以看出,改进前Vegas算法在慢启动结束时其吞吐量只有17.8 Mb,而改进后Vegas算法在慢启动结束时的吞吐量已达到59 Mb.在慢启动结束时,系统吞吐量更加接近网络的最大吞吐量.因此,改进后算法较改进前算法,在性能上有了较大地提升.

4 结论

本文对SCPS-TP在卫星通信中的应用进行了介绍,分析了SCPS-TP中Vegas拥塞控制机制在带宽时延积较大的卫星网络中存在窗口增长过于缓慢和慢启动阶段过早结束等问题,并提出了相应的改进措施.

仿真结果表明,改进后的Vegas机制克服了窗口增长过于缓慢和慢启动阶段结束早等问题,更加适合在BDP较大的GEO卫星网络进行数据传输,提高了系统链路利用率。

[1] 王秉钧,王少勇.卫星通信系统[M].北京:机械工业出版社,2004.

[2] 何 俊,易先清.基于GEO/LEO两层星座的卫星组网结构分析[J].火力与指挥控制,2009,34(3):47-49.

[3] 王 恒,续 欣,刘爱军.SCPS协议在卫星通信中的应用[J].科技信息,2009(34):224-226.

[4] 黄 展,李 陆,弥宪梅,等.空间通信协议(SCPS)及其应用:现状、问题与展望[J].电讯技术,2007,47(6):7-11.

[5] 于 斌,孙 斌,温 暖,等.NS2与网络模拟[M].北京:人民邮电出版社,2007.

[6] Mohanchur Sarkar,K.K.Shukla,K.S.Dasgupta.A two state proactive transport protocol for satellite based networks[J].Wseas Transactions on Communications,2012,11(5):182-196.

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

[8] T.Yoshihisa,M.Kanazawa.A scheduling method for bandwidth reduction on selective contents broadcasting[C]//International Conference on Mobile Computing and Ubiquitous Networking.Osaka Prefecture:Osaka University press,2006:60-67.

[9] 戴 帅,肖 楠,梁 俊.SCPS-TP在卫星网络中的传输控制算法研究[J].现代防御技术,2013,41(6):83-87.

[10] 周铁军,寇小文,李 阳.TCP Vegas和TCP Reno的兼容性问题及其解决办法[J].湘潭大学自然科学学报,2008,30(4):130-134.

[11] 陈 静,刘立祥,胡晓惠.SaclTCP:基于跨层设计的卫星网络传输协议[J].宇航学报,2011,32(3):627-633.

[12] 彭长艳.空间网络安全关键技术研究[D].长沙:国防科学技术大学,2010.

猜你喜欢
卫星网络吞吐量数据包
基于Jpcap的网络数据包的监听与分析
全球低轨卫星网络最新态势研判
SmartSniff
卫星网络HTTP加速技术研究
2017年3月长三角地区主要港口吞吐量
2016年10月长三角地区主要港口吞吐量
2016年11月长三角地区主要港口吞吐量
基于NS2的多层卫星网络路由协议开发方案
卫星网络环境下TFRC与窗口协议的比较
2014年1月长三角地区主要港口吞吐量