APP下载

一种空间环境下的TCP传输技术研究

2011-07-31崔弘珂

无线电通信技术 2011年4期
关键词:链路层重传数据包

崔弘珂

(中国电子科技集团公司第五十四研究所,河北石家庄050081)

0 引言

在航天通信领域,采用IP协议传输测控业务和科学数据业务的研究早在20世纪90年代中期就开始了,Internet网络技术的飞速发展推动着航天通信技术的革新,如何利用IP TCP协议可靠传输数据也成为测控通信研究的一个热点。

1 空间信道特点

航天通信网的空间链路与地面链路相比,在带宽、时延以及丢包率等许多方面存在差异。因此采用TCP传输技术用于航天通信网的空间数据传输协议,需要充分考虑空间信道特点的影响:

①高误码率:在高误码率的卫星环境中,链路差错带来的丢包非常严重,如果不能区分是丢失还是拥塞,就会造成系统吞吐量下降,造成了网络带宽的浪费;

②长时延:空间信道传播延时长,以地球静止轨道(GEO)卫星为例,往返时间(RTT)在550 ms左右,长延时特性进一步加重了空间信道高误码率对传输协议的影响;

③差异性:航天数据的各个接收者可能经历不同的信道条件(误码率和传播时延),这导致了接收差异性问题,瓶颈接收者将严重制约着整个系统的性能;

④带宽不对称性:航天系统在前向和反向数据信道间往往有较大的带宽不对称性,反向信道一般带宽比较低,会降低吞吐量,且吞吐量随非对称性呈指数减小。

2 TCP传输技术分析

TCP协议是在Internet环境下可靠、有序地传送协议,当TCP协议应用于空间链路上时,空间链路的传播时延和误码特性会对TCP性能产生负面影响,且降低了网络资源的利用率。

2.1 长传播时延

当TCP协议用于长传播时延卫星信道时,将面临3个主要的问题:拥塞窗口增长较慢、丢失数据包的恢复时间较长和接收窗口受限。

2.1.1 拥塞窗口增长较慢

往返时间是拥塞窗口增长的重要参数,在拥塞避免期间,每个往返时间,拥塞窗口增加1。由于往返时间和拥塞窗口增长之间存在着一定的相关性,因此,往返时间越长,拥塞窗口增长得越慢。如果往返时间长,连接就要在慢启动期间滞留很长一段时间,短连接将无法充分利用可用的信道带宽。

2.1.2 检测和恢复丢失的时间较长

由于丢失检测是以确认的交换为基础的,因此,发送端总是至少花费一个往返时间去检测数据包的丢失并进行重传。重传超时值也是以往返时间和往返时间采样的偏量为基础的,所以,这些值中的任何一个值较大的话,重传超时都将很高。较高的重传超时值意味着可能有较长的闲置时间,在这段时间内,连接等待重传定时器超时,重新开始传输数据。

2.1.3 接收窗口受限

连接的带宽时延确定了连接在填满整个网络管道之前需要传送数据包的数量,对于长传播时延(或大带宽)链路来说,这个值相当大,TCP不可能充分利用可用的链路带宽,这主要是由于接收窗口受限造成的。以GEO卫星系统为例,即使卫星信道的发送速率大于1.024 Mbps,它实际最大吞吐量也只能被限制在1.024Mbps,而不考虑实际可得到的带宽有多大。

2.2 高误码率

当TCP协议运行于高误码率(BER)的卫星信道时,存在的问题有:

①无法区分拥塞丢失和受损丢失:TCP协议面向较低BER(大约为10-9)的可靠地面信道环境应用,由于数据包受损的概率低,因此所有TCP拥塞控制策略都将丢失的数据包看作是拥塞的指示。对于每个丢失的数据包,TCP发送端至少将其传输速率减少一半。在丢失非常严重出现超时时,数据传输返回到每个RTT只传送一个数据包。对于数据包因受损而丢失的情况,很显然这是一个错误的响应,因为网络并没有真正的发生拥塞,根本不应该减小发送端的传送速率;

②不能很好地处理每个拥塞窗口中多个丢失的数据包:当每个拥塞窗口有多个数据包丢失时,TCP协议(特别是TCP Reno)不能很好地处理这些丢失的数据包。连续丢失导致拥塞窗口的连续减半。

3 改善TCP性能的技术措施

TCP协议在卫星环境中的传输性能问题已经成为国内外研究人员的研究热点,这里的设计思想有2点:一是如何削弱卫星链路对TCP协议不利的特点,或者使协议看不到空间信道的特点;二是如何修改TCP协议使其不容易被卫星链路的特点所影响。本着这2项原则可将方案大致分为2种:链路层解决方案、端到端的解决方案。

3.1 链路层解决方案

3.1.1 可靠链路层协议

隐藏链路层损坏的方法是执行可靠链路层协议,采用这种方法是必须对链路层协议进行非常精细的设计才能与TCP一起很好的工作。当TCP的重复确认传送到TCP发送端时,错误很可能触发链路层重传,并使TCP将其拥塞窗口减为原来的一半,同时重传同一个数据包。因此使用UDP不需要可靠的数据传输。

3.1.2 自适应前向纠错

自适应前向纠错(AFEC)的基本思想是找到一个(K,N)码,使得有效吞吐量等于可获得的吞吐量(实际上是TCP连接的最大吞吐量)。

3.2 端到端的解决方案

3.2.1 TCP协议增强方法

(1)增大初始窗口

采用一个较大的拥塞窗口(cwnd)初始值,在发生超时重传时才将cwnd设置为一个数据包大小,这样就能提高慢启动开始时的网络带宽利用率。TCP协议允许cwnd的初始值可以从一个数据包大小增加到下式所给出的值:

式中,WI为初始窗口大小,MSS是网络能够传输的最大数据单元的字节数。通过增大cwnd的初始值,可以在数据传输的第1个RTT内发送更多的数据包,触发更多的ACK,使cwnd打开得更迅速一些,从而缩减了达到接收端通告窗口尺寸所需的时间。采用大的初始窗口后,慢启动所需的时间将变为:

(不采用时延确认,每个数据包给出一个确认)

(采用时延确认,每2个数据包给出一个确认)

由于增大初始窗口以后,慢启动开始时至少要发送2个数据包,因此,接收端就不需要等待时延确认超时以后才发送一个ACK,这样就节省了3RTT和一个时延确认时间。

(2)字节计数

在慢启动阶段,若使用标准的ACK计数,对于每个接收到的ACK,cwnd都要增加一个数据包;若使用字节计数,cwnd的增加数量则是由每个ACK所涵盖的数据字节数来决定的,而不是由ACK的数量决定的,这样就能加快cwnd增加的速度,减少慢启动所需的时间。采用2种类型的字节计数算法:第1种是无限字节计数(Unlimited Byte Counting,UBC),该机制在每次ACK到达时,仅使用以前未确认的字节来增大cwnd;第2种类型是受限字节计数(Limited Byte Counting,LBC),LBC把cwnd增加的数量限制在2个数据包,试验证明LBC可以避免了较大的线速率突发,提供了较好的性能,但也稍微增加了一些数据丢失率。

(3)慢启动后时延确认

在慢启动阶段后才使用慢启动后时延确认(Delayed Acknowledgement After Slow Start,DAASS),而在慢启动过程中仍使用普通确认方式,这样加快了慢启动过程。而在TCP连接稳定后,减少确认的数目,以节约网络资源。使用DAASS比一直使用时延确认在传输时间上有所改善,但是也稍微提高了一点丢失率,这是因为cwnd的快速增长造成的。

(4)选择性确认

使用选择性确认(Selective Acknowledgement,SACK)接收端可以通知发送端所有接收成功的数据包序列号,从而使发送端只重发那些确实丢失的数据包,并在一个RTT内重发多个丢失的数据包,提高了TCP传输的性能。

(5)前向确认

前向确认(Forward Acknowledgement,FACK)算法是一种更高效的算法,能够获得传输过程中“前进最多”的数据信息,所谓“前进最多”指的是接收端成功接收的序列号最大的数据包,FACK从TCP SACK选项中获取有关链路拥塞情况的附加信息,对于差错恢复期间输入到网络的数据进行更精确的控制。FACK削弱了标准差错恢复算法中的拥塞控制算法,提供了一个简单、直接地利用SACK来改善拥塞控制的方法。

3.2.2 TCP-Peach方案

TCP-Peach包括2种新算法:突然启动和迅速恢复,分别代替了TCP Reno中的慢启动和快速恢复算法。

TCP-Peach有2个信道,一个用于数据传输,另一个用于网络带宽探测。TCP-Peach使用低优先级的伪段来探测网络的带宽,伪段是最后被传送的数据段,而且不传送任何新信息,沿路径的所有路由器都应该执行某种优先级机制。在连接建立时的突然启动期间,发送端发送一个数据包和(rwnd-1)个伪段,发送这些段的时间安排被均匀地分布在一个RTT内。如果沿路径没有拥塞,伪段的确认将返回到发送端,用来增加cwnd,这样cwnd能在一个RTT以后达到cwnd。如果发生拥塞,那么就丢弃低优先级的伪段,这样就不会影响数据信道的带宽。迅速恢复采用同样的思想能够把链路错误损坏从拥塞丢失中区分开来。在快速重传之后,发送端发送伪段去探测信道带宽。如果丢失是由链路层造成的,那么大部分伪段都应该到达目的地,并且使用它们的ACKs来增加cwnd。如果丢失是由拥塞造成的,那么将丢弃所有伪段,同时迅速恢复像快速恢复一样运行。

4 仿真实验

仿真场景是模拟一种航天通信网络,目的是验证采用的改进TCP协议后的传输性能评估,卫星轨道高度为343 km的卫星子网通过具有非对称性的卫星中继转发连接到地面网关,为了协议性能,仿真时仅考虑卫星与地面局域网BeijingLAN 的服务器之间建立的多次FTP业务传输情况。

仿真结果如图1、图2和图3所示,证明采用改进TCP协议网络性能是原来的8~25倍,能够明显提高空间链路条件下的TCP传输性能,保证整个网络通信质量。

图1 窗口尺寸与吞吐量的关系

图2 链路往返时间与吞吐量的关系(ber=0,BW=10 Mbps)

图3 误码率与吞吐量的关系(DBW =10Mbps,ntt=560 ms)

5 结束语

该文研究了空间链路条件下的TCP传输控制协议,显著提高了数据链路传输协议的吞吐率,提高了卫星网络链路带宽利用率,预计随着航天工程的大力推进,这一研究成果也会得以广泛应用。

[1]郝岩.航天测控网[M].北京:国防工业出版社,2004.

[2]赵军,术雷鸣.中国航天测控网的发展[J].现代军事,2003,23(2):24-25.

[3]XA Hui-zhong.Discussion on the Networking Technology for TT&C Information Networks[J].Telecommunication Engineering,2007,47(3):4-9.

[4]吴祖民,胡卓宇.卫星通信中Internet业务接入[J].通信与广播电视,2005(4):21-27.

[5]卢洁,张淑清,应启戛.几种网络拥塞控制算法比较分析[J].自动化仪表,2006(27):23-26.

猜你喜欢

链路层重传数据包
适应于WSN 的具有差错重传的轮询服务性能研究
二维隐蔽时间信道构建的研究*
基于多空间内存共享的数据链路层网络包捕获方法
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
卫星网络中的TCP 跨层技术研究
一种基于PCI接口的1394B总线的设计与实现
无线网络中基于网络编码与Hash查找的广播重传研究
SmartSniff
面向异构网络的多路径数据重传研究∗
一种基于散列邻域搜索网络编码的机会中继重传方法