作者:张毅
1引言
随着空间技术的迅猛发展,火星探测等深空任务成为现实。未来的空间探测任务需要在行星、卫星、空间站、登陆车等之间进行通信,这种通信需要安全及时地传输数据。
深空通信网络存在重大挑战。深空通信链路一个重要的特点是往返时延相当长且变化较大,长时延会对以数据确认和超时重传为基础的拥塞控制带来很大的影响。数据确认返回的时间越长,信源端对拥塞的发生就越不敏感,拥塞发生的持续时间增长,数据分组丢失也就越多。另外,由于空间环境的影响,深空通信链路极易出现突发性错误而且链路误码率极高,这些都会大大降低信道利用率。
本文提出一种基于分组丢失率判定(packet loss ratemeasurement,PLRM)的差错容忍式拥塞控制算法。首先将数据发送形式定义为数据块,并根据返回数据块中的分组丢失数计算分组丢失率,根据不同的分组丢失率进行链路拥塞状况的分段判断,从而进行不同处理,实现数据块的大小和窗口增长规律的合理控制。算法的核心是差错容
忍,根据深空通信的高误码率的特点,将一定的分组丢失率作为正常情况处理,此时发送数据块仍以一定的比例进行增大。若拥塞状态正在加剧,则发送数据块将以一定的比例减小,为了对PLRM算法进行进一步的理论分析,利用数学建模方法,简化并模拟实际的网络通信,对算法进行了理论分析和仿真对比。
2相关工作
网络拥塞是影响网络性能的重要因素之一,近年来空间网络中的拥塞控制问题引起了广泛的关注。相比传统网络,由于链路环境复杂、突发错误率高以及网络的时延不确定,传输控制协议(transmission control protocol,TCP)中基于端到端反馈的拥塞控制策略无法应用于深空通信网络环境。在已有的研究工作中,研究人员从不同的角度出发,寻求卫星网络环境下的拥塞问题的解决方案,并相应地提出了许多拥塞控制策略。
TCP-Westwood算法的关键思想是一直在发送端对TCP链接的可用带宽进行估计,估计的方法是观察返回ACK的速度,估计得出的数据传输速率用于计算拥塞窗口和慢启动门限值。
TCP Vegas机制改变了以往根据分组丢失来改变拥塞窗口大小的处理模式,而是通过对一段时间内端到端传输速率的变化进行判断来实现拥塞控制。Vegas机制不断测量RTT值的变化来比较实际吞吐量与预期吞吐量,可以灵活调整拥塞窗口大小,并不一味地将窗口增大。
TCP-Peach算法的思想如下:针对长时延对传输效率的影响,通过快速发送较多的虚报文段,更快地获得确认ACK,从而加快TCP启动和重传后的恢复速率。在这里,虚报文段指的是由发送端产生的优先级较低的数据分组。对接收端来说,虚报文段不包含任何新的信息。TCP发送端使用虚报文段来探测可用网络资源。TCP-Swift是在TCP-Peach的基础上改进的,使用未确认的数据分组代替TCP-Peach中的虚报文段。虚报文段仅仅是最后一个发送分组的备份,而未确认的数据分组是从已经发送但还没有收到确认的数据分组中随机选择出来的,因此,它可以作为已经发送的数据分组的备份,有利于在已发送的数据分组出现丢失时减少重传次数,进而增强网络性能。
TCP-Planet协议用于在星际互联网内传输数据。TCP-Planet使用了一种新颖的初始状态启动算法代替了原来效率低下的慢启动算法,使其能够更快地占用带宽。在经过初始状态启动算法后,TCP-Planet协议就进入所谓稳定算法状态,算法中,协议采用了新的拥塞检测和控制机制,该机制可以区分单个数据分组的丢失和拥塞导致的数据分组丢失,可以将由于链路错误而导致的错误拥塞决策率降低到最小。
TCP Jersey协议在发送端采用了可变带宽估计(available bandwidth estimation,ABE)算法和一种类ECN的拥塞通告(congestion waming,CW)。发送端采用ABE算法可以通过接收到的ACK速率更精确地估计网络可用带宽,从而可以优化ownd(拥塞窗口)的大小,并且可以用较差的网络负载对发送数据速率进行调节。带宽计算方法如式(1)所示。
其中,Rn是n-1时刻的估计带宽,RTT是往返时延,Ln是第n时刻数据分段的大小。通过带宽估计,优化的ownd由式(2)计算。
CW是类似于ECN的拥塞通告,在数据分组头包含拥塞信息,从而能够通知终端数据分组丢失的原因,进而将拥塞和链路错误区分开来。
Split-TCP算法通过将跨越多跳的过长TCP连接分割为短一些的本地连接段来解决跨越多跳的过长TCP连接的性能恶化问题。这样,原来完整的、端到端的差错控制,流量控制和拥塞控制,都被分裂成多个局部的、较短的差错控制、流量控制和拥塞控制,因此TCP性能得到了提高。在卫星网络中,该方法一般是将上行链路和下行链路分别处理。当然,分割TCP连接的解决方法也存在一些缺点,网关站需要大量的缓存和处理资源,而且会随着所支持的TCP连接数量的增加而增长,容易成为新的瓶颈而降低网络性能,为网络引入了单点失效危险,这是因为一个TCP连接的所有数据分组都必须经过特定网关站的路由而没有其他可替代的路由选择。如果使用IP安全机制(IPSec),将会制约分割TCP连接方法的使用,网关站可能无法获知经过加密的TCP分组头中的有关信息,如端口号和序列号等,或者需要具备相应的解密和认证能力,但这也会降低网关站对数据处理和协议转换的效率。
上述6种方法大体上分为3类:通过链路层差错控制来减小无线网络链路错误对TCP的影响、分割TCP连接以及端到端的增强和改进。这些类别的划分并非绝对的,在实际应用中也不是孤立存在的.通常多种方法同时使用,相互配合补充。虽然对于传统的TCP有较大改动,但都要求对RTT进行较为精确的测量,这在深空通信中难以实现。另外,上述方案并没有针对卫星链路高突发错误率的特点进行优化,链路的利用率较低。
3 PLRM算法
3.1 算法基本原理
该算法针对深空通信的高误码环境实施差错容忍的处理方式,即在一定的分组丢失率范围内,仍然执行正常的窗口增长策略,并对不同的分组丢失率进行链路拥塞状况的划分,从而合理控制数据块的大小和窗口的增长规律。另外,将发送单位重新定义为数据块,数据块由发送数据段和重传数据段组成,而每个数据段又由1个或多个数据分组组成,从而简化卫星通信链路资源分配的复杂性,使发送窗口和拥塞窗口的大小转化为数据块中数据分组的个数,保证链路的通信量。
3 .1.1数据传输单位重新定义
(1)发送数据块
定义发送数据块的结构为发送数据段长度为Mi、编号为1到M,的发数据段、编号为1到Ni的重传数据段,如图1所示。其中,初始发送数据块中M,为发送端缓存中的最大窗口值M,且不包含重传数据段。
(2)确认数据块
确认数据块的格式如图2所示,包括分组丢失起始序号S、数据接收指示队列(长度为Mi)及分组丢失数Nio其中,数据段接收指示队列是由接收端进行差错判断所形成的长度为Mi的01序列(正确接收的数据分组置为0.未正确接收的数据分组置为1)。假设重传数据段中的数据重传后不会再出现错误,故该01序列均只进行1到Mi的排列。
3.1.2基于分组丢失率判定的差错容忍拥塞控制
算法根据深空通信环境进行一定的差错容忍,根据分组丢失率对网络环境进行情况划分,分别进行不同的数据段长度调整,从而实现链路利用率较高的拥塞控制。
首先根据确认数据块中的分组丢失数Ni和发送窗口Mi得到分组丢失率Xi,如式(3)所示。记下一次发送数据段的长度Mi+l,如式(4)所示,根据Xi的不同范围对Mi+1进行不同程度的调整。
其中,a、β、ε为预设的固定值,O<a<ε<1,1<β<2。其具体取值是根据长期的历史数据训练得到,取值范围如式(5)所示,“为正常通信时的分组丢失率,ε为通信状况较差时的分组丢失率,口为链路状况参考值。当Xi≤a时,进行差错容忍处理,发送数据段的长度增大p倍,并不进行普通拥塞情况下的缩小窗口处理;当a<Xi≤ε时,链路恶化但程度较轻,发生轻微拥塞状况,从而使发送数据段的长度减小;当Xi>ε时,链路状况极度恶化,拥塞严重,发送数据段长度与分组丢失率成反比进行调整,分组丢失率越大,发送数据段长度越短,窗口越小。
PLRM算法的流程如图3所示。终端A为发送端,终端B为接收端。
3.2算法实现与测试
Vegas算法是基于时延进行拥塞处理,而PLRM算法是基于分组丢失进行拥塞处理,在仿真中,采用同是分组丢失处理的TCP经典算法进行对比更具有一致性和说服力。故分别对TCP Tahoe算法、TCP Reno算法和PLRM算法进行数学建模仿真对比。
3.2.1 经典算法与PLRM算法的数学模型测试
TCP Tahoe算法简化成数学模型为数列1,2,4,8,16(16为原门限窗口),17,18,19,20,21,22,23,24(发生超时,即网络发生拥塞,更新的门限窗口为12),1,2,4,8,12,13,14,15…
TCP Reno算法简化成数学模型为数列1,2,4,8,16(16为原门限窗口),17,18,19,20,21,22,23,24(发生超时,即网络发生拥塞,更新的门限窗口为12),12,13,14,15…假设初始参数M=16,a=0.1,β=i.s,ε=0.5。PLRM算法可简化为数学模型为数列16(16为原门限窗口),24 (16x1.5=24),15(分组丢失3个得到分组丢失率为12.5%,故24x(1.5-1)+3=15),18 (12x1.5=18),28(分组丢失1个得到分组丢失率为5.6%,故18x1.5+1=28),27(分组丢失15个得到分组丢失率为55.6%,故27x(l-0.556)+15≈27),18 (12x1.5=18) ,27 (18x1.5=27) ,24(分组丢失10个得到分组丢失率为37010,故27x(1.5-1)+10≈24) ,21( 14x1.5=21),32 (21x1.5≈32) ,26 (32x(1.5-1) +10=26) ,24 (16 x1.5 =24),32,26,24,20…3种算法模型测试结果对比如图4所示。
从图4中可以明显看出,PLRM算法在吞吐量上远远高于其他两种算法。
3.2.2性能分析
通过建立数学模型来简化模拟实际的网络,比较各算法稳定循环阶段内的期望和方差。期望体现信道利用率水平,方差体现通信流量的稳定性。
TCP Tahoe算法稳定循环阶段等同于1~13阶段,循环阶段整体期望为15、方差为7.937。
TCP Reno算法稳定循环阶段等同于5~18阶段,循环阶段整体期望为18、方差为3.742。
PLRM算法稳定循环阶段等同于1~13阶段,循环阶段整体期望为23、方差为4.899。
计算可得,PLRM算法的期望相比TCP Tahoe算法提高34%,相比TCPReno算法提高22%。直观的性能对比如图5所示。
TCP Reno算法在网络出现拥塞时,所有通信拥塞窗口都置为更新的门限窗口的一半,在信道利用率上有较大提高。但PLRM算法在信道利用率方面具有较大优势,比TCP Tahoe算法约提高34%,比TCP Reno算法提高22%。
由于深空通信中时延及分组丢失的可变性.PLRM算法也相应呈现出容许范围内的波动,这极大抑制了通信状况的恶化,保证了极高的吞吐量和较为稳定的环境。
4结束语
本文首先介绍了多种应用于空间通信的TCP拥塞控制算法,然后提出了PLRM算法,最后对PLRM算法与传统算法进行了性能对比,仿真结果证明了新算法的传输效率比TCP Tahoe算法约提高34%,比TCP Reno算法提高22%。
综合全文分析,PLRM算法采用数据块为发送单位,直接采用历史最大窗口值启动,并且将每次需要重传的数据加入下次发送数据块中,再通过算法的反馈特性,使窗口快速逼近临界值,大大加快了算法的启动速度。同时,通过对分组丢失率的计算进行差错容忍式的拥塞情况判断,按不同比例对发送窗口进行调整,大大提高了深空通信的传输效率,确认数据块的结构体现了分组丢失的位置和顺序,发送端易于对下次需要重传的数据分组进行识别和重组,降低了算法的复杂度。
5摘要:
空间通信的TCP大多数是基于Vegas算法,该算法需要对往返时延进行较为精确的测量,这在具有极长且可变时延的信道特征的深空通信环境中很难实现。提出一种基于分组丢失率测量的差错容忍式拥塞控制算法,该算法采用数据块的形式发送数据,依据历史数据设定差错容忍度,利用分组丢失率测量值进行拥塞状态判断及发送窗口大小调整,从而使用较小的开销达到较高的传输效率。最后,利用数学建模方法,证明基于分组丢失率测量的差错容忍式拥塞控制算法的吞吐量比传统TCP的Tahoe算法提高34%,比Reno算法提高22%。