一种面向卫星网络的TCP改进算法研究

2015-03-13 00:51沈丽娜
关键词:卫星网络误码率吞吐量

沈丽娜,白 勇,宗 亮

(海南大学 信息科学技术学院,海南 海口,570228)

一种面向卫星网络的TCP改进算法研究

沈丽娜,白 勇,宗 亮

(海南大学 信息科学技术学院,海南 海口,570228)

提出了一种改进的ADaLR 算法(TCP ADaLR+),将Veno区分随机丢包和拥塞丢包的思想引入来改变拥塞窗口的值,并且将ADaLR慢启动不同的子阶段中拥塞窗口进行区别增加,使TCP更好的适应卫星链路的高丢包率和长时延的特点.仿真结果表明改进算法可提升卫星网络中的TCP传输性能.

卫星网络; TCP; ADaLR; 拥塞控制

随着Internet和移动互联网的高速发展,无线网络在通信网络中的地位越来越重要.在难以架构地面网络设施的地域,如远航的海上船只、军事战场和边远农村地区等,卫星网络成为与外界联系的唯一的选择.卫星网络是一种非常特殊的无线网络,具有传播时延长,误码率高和上下行链路不对称等特点.这些特点使得传统的TCP协议不再适合卫星网络中运行,因此对适用于卫星网络的TCP协议的研究具有重要的意义,已成为研究的一个热点[1-6].

目前国内外针对卫星网络TCP 的改进方案主要包括3类:端到端方案、链路层解决方案和TCP 分段连接方案.端到端协议改进方案[7-8]仅仅需要修改端节点,简单易行,能很好的兼顾原有的网络协议,对其他层协议影响小;链路层设计方案包括Snoop技术和可靠链路层协议方案[9-10];分段连接方案分为TCP-Spoofing[11]和TCP-Splitting[12-14], TCP-Spoofing 保持了TCP端到端连接的完整性;TCP-Splitting 把一个TCP连接分割成2个或2个以上的独立TCP连接.

1 相关工作

传统的TCP协议(TCP Tahoe, Reno, NewReno)设计主要考虑是在有线信道的状况,误码率低,网络拥塞是引起数据包丢失的主要原因.当出现丢包时,TCP 会通过调整cwnd(拥塞窗口)来降低数据发送速率,从而减轻网络载荷保持网络的稳定性.在无线网络的环境下,由于无线信道特殊性,无线链路可靠性不够稳定,会造成较高的误比特率,导致数据包的随机丢失,特别在长时延的卫星链路上,误码率(BER)甚至能高达10-4.传统的TCP协议会将高误码率引起的随机丢包误认为是网络拥塞,盲目启动拥塞控制,导致TCP性能下降.

1.1 TCP ADaLRTCP ADaLR(Adaptive Delay and Loss Response)[15]是针对地球同步轨道GEO卫星网络的一种端到端TCP算法.ADaLR通过测量RTT来计算得到变化因子 ,并通过ρ来控制拥塞窗口的大小,仅需要在TCP发送方的TCP做出修改.具体而言,修改了自适应拥塞窗口cwnd的增加过程和自适应的接收窗口rwnd增加过程.

首先根据测量的RTT计算变化因子ρ,

ρ=(sampleRTT s/1 s)× 60,

(1)

规定ρ上下限分别为60和1,ρ的默认阈值为15.sampleRTT为实际测量数据包的RTT,根据数据包的丢失与否及ρ的值,在慢启动和拥塞避免阶段来自适应调整拥塞窗口cwnd增加的大小.

慢启动阶段 如果数据没有发生丢失,ρ≥ 15时,SMSS是发送方的最大数据报文段,

(2)

拥塞避免阶段 1)如果数据没有发生丢失,ρ≥ 15时,未确认字节大小小于(rwnd / 2),

(3)

2)如果数据发生丢失,ρ≥ 15时,未确认字节大小大于(rwnd / 2),

cwnd = cwnd + SMSS × SMSS /cwnd.

(4)

自适应的接收窗口rwnd增加过程中,TCP发送方发送的字节数是cwnd和rwnd的最小值.为了提高长时延卫星链路上的利用效率,TCP ADaLR除了对cwnd采用自适应增加外,也对rwnd进行了自适应增加.当无丢包时,可以适当增加rwnd,从而更好地利用卫星链路的带宽,减少长时延的影响.

1.2 TCP VenoTCP Veno[16]在TCP Reno 基础上进行改进.TCP Veno主要是根据往返时间RTT和拥塞窗口cwnd区分拥塞丢包和随机丢包,定义了

期望速率

EXPECTED=cwnd/BASERTT ,

实际速率

ACTUAL=cwnd/RTT,

其中,RTT 为平滑的往返时间,而BASERTT为实际观测到的最小的RTT,2个速率的差为DIFF=EXPECTED-ACTUAL.设置参数N=ACTUAL×(RTT-BASERTT)=DIFF×BASERTT.假设BASERTT=1/2×RTT,则N=1/2×cwnd;假设BASERTT=1/3×RTT,则N=2/3×cwnd.可见,如果N越大,表示BASERTT与RTT 差距越大,即网络越拥塞.因此,可以用N值的大小来代表拥塞的程度.

在检测到数据包丢失时,如果N<β,N值较小,TCP Veno认为本次数据包丢失是随机丢失;如果N≥β,则认为是拥塞丢失.其中β的默认值为3.

在Veno中,修改了Reno 快速重传

ifN<βthen ssthresh=cwnd×4/5 ∥可能发生了随机丢失

else ifN≥βthen ssthresh=cwnd/2 ∥拥塞丢失

TCP Veno在拥塞避免阶段区分了不拥塞和拥塞的情况,减少了TCP的振荡,增加了发送的数据量.在快速重传时区分了随机丢失和拥塞丢失的情况,使得数据随机丢失时,TCP会在一个较高的阈值开始拥塞避免,提高数据发送量.通过对拥塞状态的区分,改善了网络中随机丢失的问题.卫星网络中存在大量随机丢失,TCP Veno应用于卫星网络环境中将有效改善TCP的传输性能.

2 改进算法TCP ADaLR+

改进算法TCP ADaLR+主要从丢包的检测,慢启动阶段改善和阈值增加3个方面进行改进,使其更好地适用卫星链路的特点,从而改善TCP的性能.

丢包的检测 ADaLR算法从窗口和相关序号的角度考虑,对慢启动和拥塞避免的拥塞窗口值进行了不同的增加.由于没有考虑无线环境下的随机丢包,TCP会认为所有的丢包均是拥塞导致,频繁的慢启动,造成TCP性能的下降.ADaLR+在慢启动、拥塞避免和快速恢复阶段均进行丢包的检查,从而有效区分了随机丢包和拥塞丢包,最大限度降低随机丢包对TCP性能的影响.对于随机丢包的检测,可以采用TCP Veno的思想,具体如下

图1 慢启动分为4个子阶段流程图

ADaLR中对拥塞窗口的处理没有区分拥塞丢包和随机丢包,另外对阈值的设置采用传统的设为拥塞窗口一半,会极大的降低TCP的性能.ADaLR+ 采用TCP Veno的处理方法,首先对拥塞进行区分,其次当随机丢包造成的拥塞时,设阈值为[cwnd×4/5],具体为

ifN<βthen ssthresh=cwnd×4/5 ∥可能发生了随机丢失

else ifN≥βthen ssthresh=cwnd/2 ∥拥塞丢失

3 实验仿真结果

图2 仿真模型结构图

实验仿真在仿真软件OPNET 14.5中完成,仿真的基本结构如图2所示.服务器Server是地面发送方,连接到网关Gateway,Gateway连接到卫星,卫星连接到客户端Client.Server到Gateway链路速率设置为10 Mb·s-1. Gateway 到 Client 的下行链路速率设置为2 Mb·s-1,Client 到 Gateway的上行链路速率设置为256 kb·s-1.由于卫星链路的双向传播延迟,卫星连接的单向传播时间设置为250 ms(GEO卫星链路),实验中卫星链路的误码率(BER)设置为10-9~10-5.Server发送一个50 M的文件到Client,实验中主要统计Client文件下载完成时间以及卫星链路的吞吐量的结果.实验分为2个场景:地面网关存在拥塞丢失和地面网关不存在拥塞丢失.在OPNET中将网关的属性中的IP模块中的IP进程信息(IP processing Information)的缓存(Memory size)设置为37 500 byte来实现网络拥塞的场景.通过仿真比较了TCP NewReno,Veno,ADaLR和 ADaLR+的传输性能.

图3 下载响应时间 图4 吞吐量

在只有BER,没有拥塞的情况,从图3可以看出响应时间随着BER的逐渐增大,不同的TCP版本完成下载响应时间逐渐增大.在BER从10-9变化到10-6的过程中,4种不同的TCP版本完成下载的响应时间维持在0.5×103s~2×103s区间,差别不大.但是在信道误码率BER从10-6变化到10-5的过程中,完成下载响应时间急剧增加,TCP New Reno,Veno的响应时间明显高于ADaLR和ADaLR+.在BER为10-5时Veno的完成下载响应的时间略微低于New Reno,ADaLR+同样比ADaLR略微好一些.

在只有BER,没有拥塞的情况,从图4可以看出来卫星链路的吞吐量随着BER的逐渐增大,不同的TCP版本卫星链路的吞吐量逐渐减小.ADaLR+性能更好,NewReno的性能最差.ADaLR+与ADaLR的对比可知,性能均超过后者.

ADaLR+卫星下行链路的利用率从76%(BER为10-9)变化到16%(BER为10-6),ADaLR卫星下行链路的利用率从70%(BER为10-9)变化到13%(BER为10-6).在高BER(为10-5)时,Veno的卫星链路的吞吐量和New Reno相当,ADaLR+的卫星链路吞吐量最高,比ADaLR提高了近20%.整体上在只有BER,没有拥塞的情况下,卫星链路的吞吐量ADaLR+比ADaLR更高.

图5 下载响应时间 图6 吞吐量

在既有BER也有拥塞的情况,从图5可以看出来完成下载响应时间,随着BER的逐渐增大,不同的TCP版本完成下载响应时间逐渐增大.在BER从10-6变化到10-5的过程中,完成下载响应时间急剧增加.BER从10-9变化到10-6的过程中,4种不同的TCP版本完成下载的响应时间维持在1.2×103s~2.3×103s区间,区别不是很大.从10-6变化到10-5的过程中,从图示可以看到,完成下载响应的时间快速增加.在BER为10-5时,New Reno完成下载响应的时间最长,Veno其次,ADaLR+在4种TCP中性能最好(7.542 ×103s),比ADaLR(8.936 ×103s)提高了大约18%.

在既有BER也有拥塞的情况下,从图6可以看出卫星链路的吞吐量随着BER的逐渐增大,不同的TCP版本卫星链路的吞吐量逐渐减小.BER 从10-9到10-7时,4种不同TCP版本性能大体上近似,ADaLR+与Veno性能相当,比其他2种TCP性能略好.BER 从10-7到10-5时,4种TCP版本的吞吐量急剧下降,ADaLR的吞吐量比其他3种TCP版本都好.

ADaLR+卫星下行链路的利用率从55%(BER为10-9)变化到15%(BER为10-6),ADaLR卫星下行链路的利用率从48%(BER为10-9)变化到12%(BER为10-6).在高BER(为10-5)时,Veno的卫星链路的吞吐量和New Reno高,ADaLR+的卫星链路吞吐量最高,比ADaLR提高了近13%.整体上在既有BER也有拥塞的情况下,卫星链路的吞吐量ADaLR+比ADaLR更高.

4 结束语

在TCP ADaLR的基础上,提出了一种改进的算法TCP ADaLR+.该算法从丢包的检测,慢启动阶段改善和阈值增加3个方面进行改进,使之更好地适应卫星链路高丢包率和长时延的特点,提高TCP的性能.将ADaLR+与ADaLR,New Reno和Veno进行了仿真对比,实验结果表明相对其他3种TCP版本,ADaLR+明显减少了完成下载的响应时间,在卫星下行链路的吞吐量上ADaLR+也有较大的提升,整体上ADaLR+能有效地改善TCP在卫星网络的传输效率,提高TCP的性能.与ADaLR一样,ADaLR+同样采用端到端的设计,只需修改发送方的TCP,避免了中间节点和接收方的修改.

[1] Allman M, Glover D, Sanchez L. Enhancing TCP over satellite channels links using standard mechanisms[R]. [S.l.]: RFC, 1999.

[2] Luglio M, Roseti C, Zampognaro F. Transport layer enhancements on a satellite-based mobile broadband system for high-speed trains[J]. International Journal of Satellite Communications and Networking, 2012, 30(6): 235-249.

[3] Allman M, Dawkins S, Glover D, et al. Ongoing TCP research related to satellites[R]. [S.l.]: RFC 2760, 2000.

[4] Peng F, Cardona A S, Shafiee K, et al. TCP performance evaluation over GEO and LEO satellite links between performance enhancement proxies: proceedings of Vehicular Technology Conference 2012(VTC Fall), Québec City, September 3-6, 2012[C]. [S.l.]: IEEE, 2012.

[5] Pirovano A, Garcia F. A new survey on improving TCP performances over geostationary satellite link [J]. Network & Communication Technologies, 2013, 2(1):1-18.

[6] Park J, Park D, Hong S, et al. Preventing TCP performance interference on asymmetric links using ACKs-first variable-size queuing[J]. Computer Communications, 2011, 34(6): 730-742.

[7] Caini C, Firrincieli R. End-to-end TCP enhancements performance on satellite links: proceedings of the 11th IEEE Symposium on Computers and Communications 2006 (ISCC), Cagliari, June 26-29, 2006[C]. [S.l.]: IEEE, 2012.

[8] Trivedi S, Jaiswal S, Kumar R, et al. Comparative performance evaluation of TCP Hybla and TCP Cubic for satellite communication under low error conditions: proceedings of Internet Multimedia Services Architecture and Application 2010(IMSAA), Bangalore, December 17, 2010[C]. [S.l.]: IEEE, 2010: 1-5.

[9] Sing J, Soh B. On the use of snoop with geostationary satellite links: proceedings of Information Technology and Applications 2005(ICITA), Sydney, July 4-7, 2005[C]. [S.l.]: IEEE, 2005: 689-694.

[10] Rendon J, Casadevall F, Serarols D. Snoop TCP performance over GPRS: proceedings of Vehicular Technology Conference 2001(VTC Spring), Atlantic City, October 7-11, 2001[C]. [S.l.]: IEEE, 2001: 2 103-2 107.

[11] Ishac J, Allman M. On the performance of TCP spoofing in satellite networks: proceedings of Military Communications for Network-Centric Operations Conference 2001(MILCOM), Washington D.C., October 28-31, 2001[C]. [S.l.]: IEEE, 2001: 700-704.

[12] Border J, Griner J, Montenegro G, et al. Performance enhancing proxies intended to mitigate link-related degradations[J]. [S.l.]:RFC 3135, 2001.

[13] Bisio I, Marchese M, Mongelli M. Performance enhanced proxy solutions for satellite networks: State of the Art, Protocol Stack and Possible Interfaces [J]. Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, 2009(15):61-67.

[14] Caini C, Cruickshank H, Farrell S, et al. Delay and disruption-tolerant networking (DTN): an alternative solution for future satellite networking applications [J]. Proceedings of the IEEE, 2011, 99(11): 1 980-1 997.

[15] Omueti M, Trajkovi'c L. OPNET Model of TCP with adaptive delay and loss response for broadband GEO satellite networks [EB/OL]. [2015-03-10]. http://www2.ensc.sfu.ca/~ljilja/papers/opnetwork2007_omueti_trajkovic_final.pdf.

[16] Fu C P, Liew S C. TCP Veno: TCP enhancement for transmission over wireless access networks[J]. Selected Areas in Communications, 2003, 21(2): 216-228.

One Enhanced TCP Algorithm for Satellite Network

Shen Lina, Bai Yong, Zong Liang

(College of Information Science and Technology, Hainan University, Haikou 570228, China)

In our report, an improved TCP ADaLR algorithm (TCP ADaLR+) was proposed, which introduced the idea of Veno to distinguish the random packet loss and congestion loss for adjusting the value of the congestion window, and increased the congestion window to make it adapted to the different growth in the sub-phases of slow start. The TCP ADaLR+ also enables TCP to better adapt to the characteristics of long propagation delay and high bit error rate. The simulation results demonstrated that the proposed algorithm can enhance the transmission performance of TCP over satellite network.

Satellite Networks; TCP; ADaLR; congestion control

2015-05-11

国家自然科技基金(61261024,61162010)

沈丽娜(1990-),女,湖南永州人, 2012级硕士研究生,研究方向:移动通信, E-mail: xtshen@163.com

白勇(1970-),男,河南商丘人,博士,教授,研究方向:移动通信, E-mail: bai@hainu.edu.cn

1004-1729(2015)04-0327-06

TN 927

A DOl:10.15886/j.cnki.hdxbzkb.2015.0057

猜你喜欢
卫星网络误码率吞吐量
面向通信系统的误码率计算方法
全球低轨卫星网络最新态势研判
一种快速同步统计高阶调制下PN 码误码率的方法∗
浅谈数字通信系统中误码率的估计方法
卫星网络HTTP加速技术研究
2017年3月长三角地区主要港口吞吐量
2016年10月长三角地区主要港口吞吐量
2016年11月长三角地区主要港口吞吐量
基于NS2的多层卫星网络路由协议开发方案
卫星网络环境下TFRC与窗口协议的比较