CN102420676B - 一种适用于深空星际卫星网络的高效交互传输方法 - Google Patents

一种适用于深空星际卫星网络的高效交互传输方法 Download PDF

Info

Publication number
CN102420676B
CN102420676B CN201110390561.3A CN201110390561A CN102420676B CN 102420676 B CN102420676 B CN 102420676B CN 201110390561 A CN201110390561 A CN 201110390561A CN 102420676 B CN102420676 B CN 102420676B
Authority
CN
China
Prior art keywords
data
cwnd
priority
congestion
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110390561.3A
Other languages
English (en)
Other versions
CN102420676A (zh
Inventor
刘炯
谢小平
徐辉
底翔
马军骥
战文杰
陈麒
宋宇
罗凯
罗国栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XI'AN COMMUNICATION COLLEGE
Original Assignee
XI'AN COMMUNICATION COLLEGE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by XI'AN COMMUNICATION COLLEGE filed Critical XI'AN COMMUNICATION COLLEGE
Priority to CN201110390561.3A priority Critical patent/CN102420676B/zh
Publication of CN102420676A publication Critical patent/CN102420676A/zh
Application granted granted Critical
Publication of CN102420676B publication Critical patent/CN102420676B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于深空星际卫星网络传输技术领域,其特征在于:在连接建立阶段就开始发送信息数据;采用三级优先级分组数据等间隔交错发送的传输策略;采用初始发送Initialization Sending策略;根据不同优先级分组数据的丢失情况,判断数据丢失原因,分析网络的拥塞程度,并采用相应的信息流量控制算法;采用主动周期选择的接收应答策略。在随机误码极高、突发误码严重、传播时延极长、信道带宽非常不对称的深空星际卫星网络中,此方法能够避免连接等待的时间消耗,迅速提升信息流量,有效区分链路误码和拥塞情况,并根据网络的拥塞程度采用相应的信息流量控制,极大地降低了反向链路的传输带宽要求。

Description

一种适用于深空星际卫星网络的高效交互传输方法
技术领域
本发明属于深空星际卫星网络传输技术领域。
背景技术
目前,在国际互联网上得到广泛应用的TCP协议提出于上世纪80年代,在几十年的发展演变过程中,先后出现了TCP-Tahoe、TCP-Reno、TCP-NewReno以及TCP-SACK等协议版本,TCP-Reno的应用最普遍。这些不同版本的TCP协议都是针对误码率极低和传播延时非常小的有线网络设计的,即数据在传输过程中由于误码导致差错的可能非常小,以及等待数据接收应答的时间非常短。所以,一旦出现数据的丢失或损坏以及长时间的无应答,TCP协议就会认为网络出现了拥塞,并采取拥塞回避等流量控制算法。这些假设不仅简化了TCP协议的处理流程,而且很好地利用了有线网络的传输特性,满足了地面互联网的发展需要。
然而,这些基于高速和可靠的信道传输假设却在深空星际卫星网络环境中无法成立,因此也就对TCP协议的传输性能造成了非常不利的影响。深空星际卫星网络的特点主要包括如下几点:
1)极长的传播时延
地面网络的数据传输往返时间(RTT,发送端从发送数据到收到应答所需的时间)为几到几十个毫秒,典型的RTT为80毫秒。在深空星际卫星网络中的传播时延则比地面网络大得多,地球与月球之间的RTT在2.6秒左右,是地面网络的30多倍;地球与火星之间距离更远、RTT更长,是地面网络的几千倍;地球与太阳系内其它行星之间的传播时延最长可达几小时。
深空星际卫星网络中极长的传播时延对TCP协议造成了非常不利的影响,突出表现在如下两方面:a)连接建立等待时间过长,超过了连接等待超时时间,使得TCP协议在数据传输之前就终止了连接;b)拥塞窗口增长速度非常缓慢,使得协议的慢启动阶段耗时过长,严重影响了星际网络的链路资源利用。
2)极高的信道随机误码率
深空星际卫星网络的电磁环境非常恶劣,不仅包括传播距离非常远造成的信号能量大量衰减,而且还包括空间环境中强烈的电磁干扰。这些都造成了星际卫星网络极高的链路随机误码,误码率可以高达10-1
深空星际卫星网络中极高的链路随机误码率严重影响了TCP协议的传输性能,使得协议在不断重传丢失信息的同时,重复启动慢启动算法,严重限制了TCP连接信息流量的高速传输,有时甚至导致信息的无法传输。
3)严重的信道突发误码
由于深空环境中的带电粒子冲击、运动天体传输链路的遮蔽以及行星大气层的剧烈变化,经常会有持续数分钟的突发误码情况发生。
深空星际卫星网络中严重的信道突发误码,使得TCP协议的性能更加不稳定,有时甚至还会导致超时重传,使得TCP的性能达到最差。
4)严重的信道带宽不对称
由于受到卫星、飞船等等航天器的功率限制,深空星际网络的传输链路带宽呈现出非常严重的不对称现象,即从地球向深空的前向传输链路带宽比由深空返回的反向传输链路带宽大的多,往往相差百余倍,有时甚至高达上千倍。
深空星际卫星网络中严重的链路带宽不对称,使得TCP协议在信息传输过程中,往往会因为反向传输链路的信息拥塞造成前向链路吞吐量的急剧下降。
5)周期性的链路中断
由于受到地球、其它行星的自转和卫星运动轨道相互之间的影响,深空星际卫星网络中的信息传输链路呈现周期性中断的特点。在传输链路周期中断期间,TCP协议的信息传输显然无法实现。
研究和分析表明,TCP协议中的连接建立、慢启动、拥塞控制、接收应答以及超时等待等算法和关键参数的设置是导致TCP协议在深空星际卫星网络中性能差的主要原因。
为了改善TCP协议在误码率高、长传播延时等各种网络环境中的传输性能,目前已经提出了很多改进方案,可以归纳为如下几类。
一、基本改进方案
这些方案提出较早,对TCP协议的改动也很小,有些已经成为TCP协议中的扩展选项。
1)增大初始拥塞窗口值:就是初始拥塞窗口cwnd值IW从1个数据段按照以下公式增加:IW=min[4·MSS,max(2·MSS,4380bytes)],MSS为最大TCP数据段长度。
2)扩大最大TCP发送窗口:就是把发送窗口从16位比特扩展到30位比特,这样最大发送窗口值从64k字节扩展到了1G字节。
3)T/TCP:在收发两端的第一次连接之后,其后的TCP连接跳过连接建立的三次握手过程,直接进入到信息传输阶段。
4)多TCP连接:将一个TCP连接拆分成多个TCP连接,从收发两端的信息传输效果上看,无疑是增加了数倍的信息传输流量。
5)明确拥塞指示:通过在IP数据报头中设置网络拥塞指示信息位来告知发送端网络的信息传输状态。
6)TCP头压缩:压缩TCP头的信息量从而提高传输效率。
这些基本改进方案虽然具有协议改动小、实施方便的优点,但对协议性能的改进非常有限。
二、数据报优先级方案
1)Fast Start协议:为了解决连接开始阶段数据流量低的问题,在数据传输初始阶段采用最近一次TCP连接的发送窗口来控制数据流量。为了避免突发的数据流量造成网络拥塞,设置初始阶段的IP分组优先级为低优先级。
2)TCP Peach:采用了Sudden Start和Rapid Recovery等新的算法,其核心思想是发送大量低优先级的重复数据段,根据返回的应答情况探测网络中的可用带宽和控制信息流量。
3)TCP PBS:沿用了TCP-Peach协议低优先级数据段发送的思路,并改进了Sudden Start和Rapid Recovery,提出了Accelerative Start和Expeditious Recovery两个新的算法。
4)TP-Planet:对TCP协议改动非常大,包括“INITIAL STATE”和“STEDY STATE”两个状态集,两个状态集又包含多个子状态。在两个状态集,协议均会发送大量低优先级的无效数据段来探测网络状态。
5)TP-Satellite:采用了超起始Super Start算法以取代慢启动算法,增加了数据丢失判断算法,并采用了主动周期选择的应答算法。协议的突出特点就是间隔发送高低优先级数据段,根据不同优先级数据的接收情况判断网络状态,并采取相应的信息流量控制算法。
三、可用带宽估计方案
1)TCP Westwood:通过不断监测接收到的应答数据段实现端到端的可用带宽估计,并当出现数据丢失时,利用可用带宽的估计计算拥塞窗口和慢启动门限等重要参数。
2)TCP-STAR:除了通过监测应答数据段来估计可用带宽,还增加了发送查询数据段来判断数据接收情况。
3)Faster Recovery:是对TCP Westwood协议的改进,提出了一个基于带宽估计的数据丢失恢复机制。
四、拥塞窗口指示方案
此类方案的典型代表是XCP协议以及其改进协议P-XCP。XCP协议中,ECN不再仅仅采用单比特信息来表示网络拥塞与否,而是在TCP头部分增加拥塞字段,传输过程中路由器参与拥塞字段参数值的调整和修改,以此达到信息流量的精确控制和传输带宽的公平分配。
五、信道不对称改进方案
1)SACK:接收端通知发送端哪些数据段已经正确接收,发送端可以根据SACK信息判断出没有成功接收的数据段,并一次重传多个丢失的TCP数据段,减少重传等待时间,提高重传效率。
2)NACK:当接收端发现有数据丢失时,直接向发送端发送未正确接收的数据段的信息。
3)ACK拥塞控制:为了减少瓶颈链路TCP应答数据段的数量,接收端动态调整应答数据段的发送周期因子。当网络出现应答信息拥塞时,则延长ACK的发送间隔;反之,则减小应答间隔。
六、其它协议层修改方案
在其它协议层的修改主要集中在网络层下的数据链路层。链路层的协议修改则大多是增加重传机制,即在发送端的链路层对接收到的ACK信息进行判断,若发现有数据丢失,则直接重传该数据,而不向传输层传送重传请求信息。目前,链路层的典型修改方案是Snoop协议。
七、代理方案
1)TCP-Splitting代理:就是在网络物理环境发生变化的交界处设置网关代理以切断TCP连接。这样一个端到端的TCP连接就会被切分成多段TCP连接。每一段连接都可以采用特殊的传输控制协议,如STP、突发误码重传协议、AeroTCP等。
2)TCP-Spoofing代理:与TCP-Splitting代理方案的不同是保持了TCP协议端到端连接的完整性,在数据链路层实现虚假ACK应答的发送以及差错数据段的重传。
八、跨层联合设计
为了达到数据传输的最优,各层内部的信息相互共享,层次之间相互协作、联合设计逐渐成为研究热点。应用层中的数据传输状态信息(长数据流传输的开始、中间、结束,或者一个单独的数据传输),物理层的链路可用带宽和误码率信息,都可以成为各个层设计时考虑的参数。跨层联合设计是把原本各层中的“私有”信息“共享”,使得每个层的设计不再独立、单一,有利于整体性能提高。
上述这些不同类型的改进方案大多是针对网络的某种特点而提出的,有的是针对误码率高的信道特点,有的是针对特殊网络拓扑结构的情况,有的则是针对传输延时不断变化的特点,综合考虑深空星际网络环境特点提出的改进方案则非常少。因此,这些TCP改进方案在深空星际网络中的性能表现就很差,现在就分析深空星际网络的网络特点对改进方案的性能影响。
1、极长的传播时延,使得Fast Start、STP、TCP-Peach、TCP Westwood、TCP-STAR、XCP和TP-Satellite等各类改进方案中的典型协议消耗非常长的时间来等待连接建立的确认,同时也使得拥塞窗口增长非常缓慢,限制了信息流量;
2、极高的信道随机误码率,导致Fast Start、STP、TCP Westwood、TCP-STAR等改进协议错误地认为网络拥塞情况严重,使得协议不断启动慢启动算法,协议前向吞吐量受到极大限制;
3、严重的信道突发误码,使得Fast Start、STP、TCP Westwood、XCP和TCP-STAR协议已经无法正常传输数据,也使得TCP-Peach协议通过发送大量无效数据段探测网络链路状态的方法失去作用,同时也降低了利用高低优先级交替发送数据的TP-Satellite协议对链路状态判断的准确性;
4、严重的信道带宽不对称,使得反向链路数据传输严重拥塞,导致很多改进方案的前向链路吞吐量极低,甚至无法传输数据;
目前提出的改进方案除了存在上述的问题外,对于深空星际网络的拥塞状况也不能作出判断,即无法针对网络不同程度的拥塞作出相应的数据流量控制。
发明内容
本发明的目的在于提供一种可靠的为深空星际卫星网络设计的TP-DSN深空星际卫星网络高效交互传输方法。此方法能够避免连接等待的时间消耗,迅速提升信息流量,有效区分链路误码和拥塞情况,并根据网络的拥塞程度采用相应的信息流量控制,极大地降低了反向链路的传输带宽要求。
本发明的技术方案是:一种适用于深空星际卫星网络的高效交互传输方法,特征在于,它是在源代码公开的Linux操作系统上实现。该方法包含以下步骤:
步骤(1),连接监听
客户端进入“监听”状态,等待服务器连接;
步骤(2),建立连接
步骤(2.1),从服务器发送连接请求,并按照拥塞窗口最大值cwndmax的1/6开始发送数据信息,设置数据信息IP包头中TOS字段中的两比特“pri”分别为2、1、0,即高、中、低优先级分组数据交错发送,每间隔一个时间τ就发送一个分组数据。其中,
Figure GDA0000437580860000051
RTTmin为服务器与客户端的星际网络中两行星之间最短的传播时延;
步骤(2.2),从服务器来的连接请求,经过深空星际网络传输到达客户端;
步骤(2.3),客户端收到连接请求后,判断是否建立连接:
步骤(2.3.1)若拒绝连接,则返回拒绝连接应答信息,丢弃之后接收到的分组数据,结束连接;
步骤(2.3.2)若接受连接,则开始估计数据发送返回RTTi时间,返回连接应答信息,并接收到达的分组数据;
步骤(2.4),客户端在接收了cwndmax/6的分组数据后,返回数据接收应答信息,应答信息采用M-NACK格式,即包括:20个字节的标准TCP头、期待服务器发送的下一个TCP数据段的序列值、期待服务器发送的下一个连续TCP数据段的序列值,以及所有没有正确接受的TCP数据段的序列值。计算出数据发送返回RTTi时间,并按照RTTi时间定时发送M-NACK应答信息;
步骤(2.5),服务器接收到连接应答信息后,返回应答确认信息,估计数据发送返回RTTi时间,并转入到步骤(3)。
步骤(3),数据的丢失判断:
步骤(3.1),服务器接收到M-NACK应答信息后,根据M-NACK的信息内容判断是否有数据丢失:若没有数据丢失,则进入到步骤(4);
步骤(3.1.1),若存在数据丢失,则根据丢失数据的优先级和数量判断是否网络出现拥塞:
步骤(3.1.1.1),若丢失数据高、中、低优先级都存在,而且成功接收数据中各种优先级的数据都有,则判断为网络中出现误码,则转入到(3.1.2);
步骤(3.1.1.2),其他情况则判断为网络拥塞,根据具体的数据丢失情况分析网络拥塞的情况:
步骤(3.1.1.2.1),若丢失的分组数据都是低优先级分组数据,即lost_num=low_pri,lost_num为整个丢失分组数据的数量,low_pri为丢失的低优先级分组数据数量,则判断网络的拥塞情况较轻,则将拥塞窗口cwnd值设置为当前值的1/2,并转入到步骤(3.1.1.2.4);
步骤(3.1.1.2.2),若丢失分组数据为低优先级的全部分组数据和部分中等优先级分组数据,即lost_num=low_num+mid_num,mid_num为丢失的中等优先级分组数据数量,则判断网络的拥塞情况比较严重,不仅路由器队列中的低优先级分组数据全部被丢弃,而且中等优先级的分组数据开始被丢弃,则将拥塞窗口cwnd值设置为当前值的1/3,并转入到步骤(3.1.1.2.4);其中low_num为低优先级分组数据总数,mid_pri为丢失的中等优先级分组数据数量;
步骤(3.1.1.2.3),若丢失分组数据为中、低优先级的全部分组数据和部分或者全部高优先级分组数据,则判断网络的拥塞情况非常严重,不仅中、低优先级分组数据全部丢弃,而且还会有高优先级分组数据的丢弃,则将拥塞窗口cwnd值设置为当前值的1/4,并转入到步骤(3.1.1.2.4);
步骤(3.1.1.2.4),转入步骤(5);
步骤(3.1.2),若判断为网络出现误码,则开始重传丢失的分组数据。丢失分组数据的重传仍然按照等间隔三级优先级交错发送的方式进行,发送间隔τ按照如下公式计算得出:
Figure GDA0000437580860000071
在发送完丢失数据后,并转入到步骤(4);
步骤(4),拥塞回避阶段的判断:
判断收发两端是否已经执行过拥塞回避Congestion Avoidance策略:
步骤(4.1)若没有,则并转入到步骤(6);
步骤(4.2)若已经执行过拥塞回避Congestion Avoidance策略,则转入到步骤(7);步骤(5),拥塞恢复:
步骤(5.1),重新计算数据发送间隔时间τ,即τ=RTTi/cwnd;
步骤(5.2),三级优先级间隔重传丢失数据,发送完丢失数据后,转入到步骤(7);步骤(6),初始发送数据:
步骤(6.1),将cwnd值增加1倍,即cwnd=2·cwnd,若cwnd≥cwndmax,则令cwnd=cwndmax。重新计算数据发送间隔τ,即
Figure GDA0000437580860000072
并按照三级优先级等间隔交错发送的方式发送分组数据;
步骤(6.2),当cwnd的分组数据发送完后,将cwnd减半,即cwnd=cwnd/2,重新计算数据发送间隔τ,即
Figure GDA0000437580860000073
按照三级优先级等间隔交错发送的方式发送分组数据;
步骤(6.3),在发送完数据后,将cwnd增加1倍,即cwnd=2·cwnd,比较cwnd值:
步骤(6.3.1)若cwnd<cwndmax,则转入到步骤(3);
步骤(6.3.2)若cwnd≥cwndmax,则令cwnd=cwndmax,并转入到步骤(7);
步骤(7),拥塞回避:
每接收到一个M-NACK信息,判断是否有数据包丢失:
步骤(7.1)若无分组数据丢失,则判断当前拥塞窗口cwnd值是否等于cwndmax值:若小于cwndmax,则按照成功接收的分组数据数量增加cwnd;若等于cwndmax,则不变。重新计算τ,即τ=RTTi/cwnd,并根据τ值间隔交错发送三级优先级的分组数据;
步骤(7.2)若发现分组数据丢失,则转入到步骤(3);
步骤(8),连接拆除:
步骤(8.1),若服务器发起连接拆除请求:
步骤(8.1.1),服务器发送连接结束分组信息,等待客户端的应答;
步骤(8.1.2),客户端收到连接结束分组信息后,返回确认应答信息,拆除此次连接,进入监听状态;
步骤(8.1.3),服务器接收到确认应答信息后,拆除此次连接,进入监听状态;
步骤(8.2),若客户端发起连接拆除请求:
步骤(8.2.1),客户端发送连接结束分组信息,等待服务器的应答;
步骤(8.2.2),服务器收到连接结束分组信息后,返回确认应答信息,拆除此次连接,进入到监听状态;
步骤(8.2.3),客户端接收到确认应答信息后,拆除此次连接,进入到监听状态。
本发明在图5的环境中进行了仿真实验。实验中,深空星际卫星网络中从地球到月球的前向链路带宽为1Mbits/s,从月球到地球的反向链路带宽分别设为10kbits/s、5kbits/s、1kbits/s等,RTTmin设为2.4s,RTT设为3s,cwndmax设为60。随机误码的情况下,分组数据的丢包率为10-2,突发误码情况下,链路平均突发误码长度为40个分组数据。实验结果如下:
表1文件传输时间(s)
Figure GDA0000437580860000081
表2单个连接情况下的前向链路吞吐量(kbits/s)
Figure GDA0000437580860000082
表3单个连接情况下的反向链路带宽占用(kbits/s)
Figure GDA0000437580860000091
表4不同反向链路带宽情况下的前向链路吞吐量(kbits/s)
Figure GDA0000437580860000092
表5不同反向链路情况下的反向链路带宽占用(kbits/s)
从表1可以看出,TP-DNS协议在不同大小文件的传输方面比其他协议占用的时间少,特别在传输几十k字节的小文件优势更明显。对于网页浏览方式的访问来说,TCP连接的文件传输一般也只有10~20k字节。表2和表3可以看出,单个连接时,无论是在随机误码还是在突发误码的情况下,TP-DNS均能够保持很高的前向链路吞吐量。并且反向链路的带宽占用受到前向链路误码的影响非常小,并且保持在非常低的水平。然而,其他协议的前向链路吞吐量则受到了误码的严重影响,而变得非常低。虽然TP-Peach协议在随机误码情况时前向链路吞吐量也较高,但其传输了大量用于探测网络的无效分组数据,实际的信息传输量很小。从表4和表5可以看出,由于TP-DNS协议的反向链路带宽使用很少,所以当深空星际卫星网络中的反向链路带宽从10kbits/s减少到1kbits/s时,前向链路的带宽并没有受到影响。然而其他协议在反向链路带宽小于5kbits/s后,前向链路的吞吐量就受到了影响,当反向链路接近1kbits/s时,前向链路的吞吐量则非常低。
由于TP-DSN需要修改系统的堆栈协议,所以只能在源代码公开的Linux和FreeBSD等操作系统上实现。
实验证明,不论在单连接的情况下,还是在多个连接的情况下,不论是否出现随机误码或者突发误码,TP-DSN能够节省连接过程消耗的等待时间,迅速提升信息流量,其前向链路吞吐量为最高,反向链路的带宽占用也最小。
附图说明
图1是TP-DSN协议框架。
图2是三级优先级数据交错发送策略。
图3是数据丢失原因判断Loss Distinguish策略。
图4是初始发送Initialization Sending策略。
图5是深空星际卫星网络框图。
具体实施方式
TP-DSN的协议框架如图1所示,主要包含连接建立Connection阶段、数据丢失原因判断Loss Distinguish阶段、初始发送Initialization Sending阶段、拥塞回避Congestion Avoidance阶段、拥塞恢复Congestion Recovery阶段。与TCP协议及改进方案相比,创新点主要体现在以下几方面。
一、三级优先级数据交错发送
在整个信息传输过程中,TP-DSN将分组数据分为三级优先级,优先级的设置是在IP包头中的TOS字段中的二位优先级比特(“pri”)实现。高、中、低三级优先级分组数据采用交错发送的方法,具体发送方法如图2所示,即首先发送一个高优先级分组数据,之后连续发送两个中等优先级分组数据,紧接着发送一个高优先级分组数据,而后连续发送两个低优先级分组数据。后面的分组数据按照上述方法循环执行。
二、连接建立阶段数据发送
在连接建立阶段,即收发两端在TCP连接握手过程中就开始传送信息数据。这样,收发两端能够节省过长的连接等待时间,在地球和月球之间的信息传输就可以节省2~3s,地球与其他行星之间的信息传输则能够节省更多的时间。在三次往返的连接建立交互过程中,分组数据等间隔发送。每次连接建立交互过程中的信息流量为发送拥塞窗口最大值的1/6,即发送的分组数据为cwndmax/6。为了避免协议过于复杂,发送时间间隔τ设定为地球与行星之间RTT的最小值RTTmin与拥塞窗口之间的比值,即若在地球与月球之间的TCP连接,则RTTmin为2.4s;若在地球与火星之间的连接,则RTTmin为200s。
三、数据丢失原因判断Loss Distinguish策略
为了实现对数据丢失原因的区分和判断,借鉴了TP-Satellite协议的设计思路,增加了数据丢失原因判断Loss Distinguish策略。
数据丢失原因判断Loss Distinguish策略的具体内容是:发送端根据接收到的M-NACK信息判断是否有数据丢失。当发送端发现有数据丢失时,如图3所示,在重传丢失数据的同时,发送端根据高、中、低三级优先级分组数据的丢失情况分析数据丢失原因,并采用相应的流量控制算法。
当星际卫星网络出现拥塞并且网络拥塞情况较轻时,网络中的路由器首先将队列中的低优先级数据包丢弃。这样的情况下,整个丢失分组数据的数量(lost_num)就是丢失的低优先级分组数据数量(low_pri),如公式(1)所示:
lost_num=low_pri(1)
这种情况下,数据丢失原因判断Loss Distinguish策略则减小拥塞窗口cwnd值,将其设置为当前值的1/2,并启动拥塞恢复Congestion Recovery策略。
当网络拥塞情况比较严重时,不仅路由器队列中的低优先级分组数据全部被丢弃,而且中等优先级的分组数据开始被丢弃。这种情况下,丢失的分组数据数量为低优先级分组数量(low_num)和丢失的中等优先级分组数据数量(mid_num)之和,如公式(2)所示:
lost_num=low_num+mid_num(2)
这种情况下,数据丢失原因判断Loss Distinguish策略则将拥塞窗口cwnd值设置为当前值的1/3,并启动拥塞恢复Congestion Recovery策略。
网络拥塞情况非常严重时,路由器队列中已没有低优先级和中等优先级的分组数据,此时开始丢弃高优先级的分组数据。因此,应答信息中表示的丢失分组数据表明,不仅中、低优先级分组数据全部丢弃,而且还会有高优先级分组数据的丢弃。所以,丢弃的分组数据量大于发送的低优先级和中等优先级两种分组数据量的总和,如公式(3)所示:
low_pri==low_num
mid_pri=mid_num(3)
lost_num>low_pri+mid_pri
这种情况下,数据丢失原因判断Loss Distinguish策略则将cwnd值设置为当前值的1/4,并启动拥塞恢复Congestion Recovery策略。
除了上述三种情况外,TP-DSN协议都认为数据的丢失是因为随机误码或者是突发误码造成的,所以不减小cwnd值,信息流量不发生变化。
四、初始发送Initialization Sending策略
TP-DSN协议中的初始发送Initialization Sending策略的具体执行如图4所示,在连接建立之后,将发送端的拥塞窗口设置为连接建立阶段拥塞窗口值的两倍,即cwnd=cwndmax/3。数据按照三级优先级交错发送的算法等间隔发送,时间间隔τ按照公式(4)计算得出:
τ = RTT i 2 · cwnd - - - ( 4 )
其中,发送返回时间RTTi是在连接建立过程中估计得出。
当按照上述方式完成分组数据的发送后,TP-DNS协议将cwnd值减少一半,按照公式(4)重新计算数据发送时间间隔τ,并按照优先级等间隔交错发送的方法发送数据。
在完成数据发送后,协议将cwnd值恢复为最大拥塞窗口值的1/3,并启动拥塞回避Congestion Avoidance策略。
可以看出,协议在初始发送Initialization Sending阶段的维持时间为一个RTTi。在此阶段协议所发送的分组数据量为最大拥塞窗口值的一半。
本实施例是在源码公开的Linux操作系统中实现。
具体的工作流程如下:
1、连接监听
客户端,客户端进入“监听”状态,等待服务器端的连接。
2、连接建立Connection阶段
(1)服务器发送连接请求,请求与客户端的连接,并按照拥塞窗口最大值cwndmax的1/6开始发送数据信息,设置数据信息IP包头中的两比特“pri”分别为2、1、0,即高、中、低优先级分组数据交错发送,每间隔一个时间τ就发送一个分组数据。其中,
Figure GDA0000437580860000122
RTTmin为服务器与客户端的星际网络中两行星之间最短的传播时延;
(2)从服务器来的连接请求,经过深空星际网络传输到达客户端;
(3)客户端收到连接请求后,判断是否建立连接:
(3.1)若拒绝连接,则返回拒绝连接应答信息,结束连接,并丢弃之后接收到的分组数据;
(3.2)若接受连接,则开始估计RTTi时间,返回连接应答信息,并接收到达的分组数据;
(4)客户端在接收了cwndmax/6的分组数据后,返回数据接收应答信息,应答信息采用M-NACK格式,即包括:20个字节的标准TCP头、期待服务器发送的下一个TCP数据段的序列值、期待服务器发送的下一个连续TCP数据段的序列值,以及所有没有正确接受的TCP数据段的序列值。计算出数据发送返回RTTi时间,在等待RTTi/2时间之后按照RTTi时间定时发送M-NACK应答信息;有关M-NACK格式,本申请人在专利号为ZL200610114087.0发明名称为一种适用于卫星网络的高效交互传输方法的专利中有详细说明。
(5)服务器接收到连接应答信息后,返回应答确认信息,估计数据发送返回RTTi时间,并进入到数据丢失判断阶段。
3、数据丢失判断Loss Distinguish阶段
(1)服务器接收到M-NACK应答信息后,根据M-NACK的信息内容判断是否有数据丢失:
(1.1)若存在数据丢失,则根据丢失数据的优先级和数量判断是否网络出现拥塞:
(1.1.1)若丢失数据高、中、低优先级都存在,而且成功接收数据中各种优先级的数据都有,则判断为网络中出现链路误码,则转入到(1.2);
(1.1.2)其他情况则判断为网络拥塞,根据具体的数据丢失情况分析网络拥塞的情况:
(1.1.2.1)若丢失的分组数据都是低优先级分组数据,如公式(1)所示,则判断网络的拥塞情况较轻,则将拥塞窗口cwnd值设置为当前值的1/2,并进入到拥塞恢复Congestion Recovery阶段;
(1.1.2.2)若丢失分组数据为低优先级的全部分组数据和部分中等优先级分组数据,如公式(2)所示,则判断网络的拥塞情况比较严重,不仅路由器队列中的低优先级分组数据全部被丢弃,而且中等优先级的分组数据开始被丢弃,则将拥塞窗口cwnd值设置为当前值的1/3,并进入到拥塞恢复Congestion Recovery阶段;
(1.1.2.3)若丢失分组数据为中、低优先级的全部分组数据和部分或者全部高优先级分组数据,如公式(3)所示,则判断网络的拥塞情况非常严重,不仅中、低优先级分组数据全部丢弃,而且还会有高优先级分组数据的丢弃,则将拥塞窗口cwnd值设置为当前值的1/4,并进入到拥塞恢复Congestion Recovery阶段。
(1.2)没有分组丢失,则直接进入到拥塞回避阶段的判断状态。若判断为网络出现误码,则开始重传丢失的分组数据。丢失分组数据的重传仍然按照等间隔三级优先级交错发送的方式进行,发送间隔τ按照如下公式计算得出:
Figure GDA0000437580860000131
在发送完丢失数据后,进入到拥塞回避阶段的判断阶段。
4、拥塞回避阶段的判断
判断收发两端是否已经进入到拥塞回避Congestion Avoidance阶段:
(1)若没有,则进入到初始发送Initialization Sending阶段;
(2)若已经进入过拥塞回避阶段,则进入到拥塞回避Congestion Avoidance阶段。
5、拥塞恢复Congestion Recovery阶段
重新计算数据发送间隔时间τ,即τ=RTTi/cwnd,三级优先级间隔重传丢失数据,当发送完丢失数据后,转入到拥塞回避Congestion Avoidance阶段。
6、初始发送Initialization Sending阶段
(1)将cwnd值增加1倍,即cwnd=2·cwnd。若cwnd≥cwndmax,则令cwnd=cwndmax。重新计算数据发送间隔τ,即
Figure GDA0000437580860000141
并按照三级优先级等间隔交错发送的方式发送分组数据;
(2)当cwnd的分组数据发送完后,将cwnd减半,即cwnd=cwnd/2,按照上述的公式重新计算数据发送间隔τ,按照三级优先级等间隔交错发送的方式发送分组数据;
(3)在发送完数据后,将cwnd值增加1倍,即cwnd=2·cwnd,比较cwnd值:
(3.1)若cwnd<cwndmax,则转入数据丢失判断Loss Distinguish阶段;
(3.2)若cwnd≥cwndmax,则结束初始发送Initialization Sending阶段,转入到拥塞回避Congestion Avoidance阶段。
7、拥塞回避Congestion Avoidance阶段
(1)每接收到一个M-NACK信息,判断是否有数据包丢失:
(1.1)若无分组数据丢失,则判断当前拥塞窗口cwnd值是否等于cwndmax值:若小于cwndmax,则每接收到一个M-NACK应答信息cwnd增加1;若等于cwndmax,则不变。重新计算τ,即τ=RTTi/cwnd,并根据τ值间隔交错发送三级优先级的分组数据;
(2.1.2)若发现分组数据丢失,则转入到数据丢失原因判断Loss Distinguish阶段。
8、连接拆除
服务器端发起连接拆除请求:
(1)服务器发送连接结束分组信息,等待客户端的应答;
(2)客户端收到连接结束分组信息后,返回确认应答信息,拆除此次连接,进入监听状态;
(3)服务器接收到确认应答信息后,拆除此次连接,进入监听状态;
客户端发起连接拆除请求:
(1)客户端发送连接结束分组信息,等待服务器的应答;
(2)服务器收到连接结束分组信息后,返回确认应答信息,拆除此次连接,进入到监听状态;
(3)客户端接收到确认应答信息后,拆除此次连接,进入到监听状态。

Claims (1)

1.一种适用于深空星际卫星网络的高效交互传输方法,其特征在于它是在源代码公开的Linux操作系统上实现,该方法包含以下步骤:
步骤(1),连接监听
客户端进入“监听”状态,等待服务器连接;
步骤(2),建立连接
步骤(2.1),从服务器发送连接请求,并按照拥塞窗口最大值cwndmax的1/6开始发送数据信息,设置数据信息IP包头中TOS字段中的两比特“pri”分别为2、1、0,即高、中、低优先级分组数据交错发送,每间隔一个时间τ就发送一个分组数据,其中,
Figure FDA0000458234530000011
RTTmin为服务器与客户端的星际网络中两行星之间最短的传播时延;
步骤(2.2),从服务器来的连接请求,经过深空星际网络传输到达客户端;
步骤(2.3),客户端收到连接请求后,判断是否建立连接:
步骤(2.3.1)若拒绝连接,则返回拒绝连接应答信息,丢弃之后接收到的分组数据,结束连接;
步骤(2.3.2)若接受连接,则开始估计数据发送返回时间RTTi,返回连接应答信息,并接收到达的分组数据;
步骤(2.4),客户端在接收了cwndmax/6的分组数据后,返回数据接收应答信息,应答信息采用M-NACK格式,计算出数据发送返回时间RTTi,并按照数据发送返回时间RTTi定时发送M-NACK应答信息,其中M-NACK格式是:20个字节的标准TCP头、期待服务器发送的下一个TCP数据段的序列值、期待服务器发送的下一个连续TCP数据段的序列值,以及所有没有正确接受的TCP数据段的序列值;
步骤(2.5),服务器接收到连接应答信息后,返回应答确认信息,估计数据发送返回时间RTTi,并转入到步骤(3);
步骤(3),数据的丢失判断:
步骤(3.1),服务器接收到M-NACK应答信息后,根据M-NACK的信息内容判断是否有数据丢失:
步骤(3.1.1),若存在数据丢失,则根据丢失数据的优先级和数量判断是否网络出现拥塞;
步骤(3.1.1.1),若丢失数据高、中、低优先级都存在,而且成功接收数据中各种优先级的数据都有,则判断为网络中出现误码,则转入到(3.1.2);
步骤(3.1.1.2),其他情况则判断为网络拥塞,根据具体的数据丢失情况分析网络拥塞的情况:
步骤(3.1.1.2.1),若丢失的分组数据都是低优先级分组数据,即lost_num=low_pri,lost_num为整个丢失分组数据的数量,low_pri为丢失的低优先级分组数据数量,则判断网络的拥塞情况较轻,则将拥塞窗口cwnd值设置为当前值的1/2,并转入到步骤(3.1.1.2.4);
步骤(3.1.1.2.2),若丢失分组数据为低优先级的全部分组数据和部分中等优先级分组数据,即lost_num=low_num+mid_num,mid_num为丢失的中等优先级分组数据数量,则判断网络的拥塞情况比较严重,不仅路由器队列中的低优先级分组数据全部被丢弃,而且中等优先级的分组数据开始被丢弃,则将拥塞窗口cwnd值设置为当前值的1/3,并转入到步骤(3.1.1.2.4);
步骤(3.1.1.2.3),若丢失分组数据为中、低优先级的全部分组数据和部分或者全部高优先级分组数据,则判断网络的拥塞情况非常严重,不仅中、低优先级分组数据全部丢弃,而且还会有高优先级分组数据的丢弃,则将拥塞窗口cwnd值设置为当前值的1/4,并转入到步骤(3.1.1.2.4);其中low_num为低优先级分组数据总数,mid_pri为丢失的中等优先级分组数据数量;
步骤(3.1.1.2.4),转入步骤(5);
步骤(3.1.2),若没有数据丢失,则直接进入到步骤(4);若判断为网络出现误码,则开始重传丢失的分组数据,丢失分组数据的重传仍然按照等间隔三级优先级交错发送的方式进行,发送间隔τ按照如下公式计算得出:
Figure FDA0000458234530000021
在发送完丢失数据后,并转入到步骤(4);
步骤(4),拥塞回避阶段的判断:
判断收发两端是否已经执行过拥塞回避Congestion Avoidance策略:
步骤(4.1)若没有,则并转入到步骤(6);
步骤(4.2)若已经执行过拥塞回避Congestion Avoidance策略,则转入到步骤(7);
步骤(5),拥塞恢复:
步骤(5.1),重新计算数据发送间隔时间τ,即τ=RTTi/cwnd;
步骤(5.2),三级优先级间隔重传丢失数据,发送完丢失数据后,转入到步骤(7);
步骤(6),初始发送数据:
步骤(6.1),将cwnd值增加1倍,即cwnd=2·cwnd,若cwnd≥cwndmax,则令cwnd=cwndmax,重新计算数据发送间隔τ,
Figure FDA0000458234530000031
并按照三级优先级等间隔交错发送的方式发送分组数据;
步骤(6.2),当cwnd的分组数据发送完后,将cwnd减半,即cwnd=cwnd/2,重新计算数据发送间隔τ,即
Figure FDA0000458234530000032
按照三级优先级等间隔交错发送的方式发送分组数据;
步骤(6.3),在发送完数据后,将cwnd增加1倍,即cwnd=2·cwnd,比较cwnd值:
步骤(6.3.1)若cwnd<cwndmax,则转入到步骤(3);
步骤(6.3.2)若cwnd≥cwndmax,则令cwnd=cwndmax,并转入到步骤(7);
步骤(7),拥塞回避:
每接收到一个M-NACK信息,判断是否有数据包丢失:
步骤(7.1)若无分组数据丢失,则判断当前拥塞窗口cwnd值是否等于cwndmax值:若小于cwndmax,则按照成功接收的分组数据数量增加cwnd;若等于cwndmax,则不变,重新计算τ,即τ=RTTi/cwnd,并根据τ值间隔交错发送三级优先级的分组数据;
步骤(7.2)若发现分组数据丢失,则转入到步骤(3);
步骤(8),连接拆除:
步骤(8.1),若服务器发起连接拆除请求:
步骤(8.1.1),服务器发送连接结束分组信息,等待客户端的应答;
步骤(8.1.2),客户端收到连接结束分组信息后,返回确认应答信息,拆除此次连接,进入监听状态;
步骤(8.1.3),服务器接收到确认应答信息后,拆除此次连接,进入监听状态;
步骤(8.2),若客户端发起连接拆除请求:
步骤(8.2.1),客户端发送连接结束分组信息,等待服务器的应答;
步骤(8.2.2),服务器收到连接结束分组信息后,返回确认应答信息,拆除此次连接,进入到监听状态;
步骤(8.2.3),客户端接收到确认应答信息后,拆除此次连接,进入到监听状态。
CN201110390561.3A 2011-11-30 2011-11-30 一种适用于深空星际卫星网络的高效交互传输方法 Expired - Fee Related CN102420676B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110390561.3A CN102420676B (zh) 2011-11-30 2011-11-30 一种适用于深空星际卫星网络的高效交互传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110390561.3A CN102420676B (zh) 2011-11-30 2011-11-30 一种适用于深空星际卫星网络的高效交互传输方法

Publications (2)

Publication Number Publication Date
CN102420676A CN102420676A (zh) 2012-04-18
CN102420676B true CN102420676B (zh) 2014-03-26

Family

ID=45944924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110390561.3A Expired - Fee Related CN102420676B (zh) 2011-11-30 2011-11-30 一种适用于深空星际卫星网络的高效交互传输方法

Country Status (1)

Country Link
CN (1) CN102420676B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103986548B (zh) * 2013-02-07 2018-02-23 华为技术有限公司 一种确定丢包原因的方法和终端
CN112383962B (zh) * 2014-03-03 2023-12-19 柏思科技有限公司 用于通过隧道组传输和接收数据的方法和系统
CN103973416A (zh) * 2014-05-15 2014-08-06 无锡信捷电气股份有限公司 一种基于改进型LwIP的多嵌入式视觉系统以太网防拥塞方法
CN104821843B (zh) * 2015-04-13 2018-02-23 杭州电子科技大学 一种基于丢包率的卫星通信分段式拥塞控制方法
CN104796235B (zh) * 2015-04-13 2018-02-23 杭州电子科技大学 基于丢包率的卫星通信自适应拥塞控制方法
CN106210059B (zh) * 2016-07-14 2019-11-12 芯海科技(深圳)股份有限公司 一种基于tcp的ftp下载方法
CN107948085B (zh) * 2017-12-28 2021-02-02 中国电子科技集团公司第二十研究所 一种基于业务和卫星信道特征的消息发送控制方法
CN113839840B (zh) * 2021-11-24 2022-02-18 北京航空航天大学 一种卫星网络瓶颈链路的带宽自适应估计方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1946078A (zh) * 2006-10-27 2007-04-11 清华大学 一种适用于卫星网络的高效交互传输方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101085677B1 (ko) * 2005-04-26 2011-11-22 삼성전자주식회사 레지덴셜 이더넷에서 수퍼 프레임의 시작에 대한 주기적동기 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1946078A (zh) * 2006-10-27 2007-04-11 清华大学 一种适用于卫星网络的高效交互传输方法

Also Published As

Publication number Publication date
CN102420676A (zh) 2012-04-18

Similar Documents

Publication Publication Date Title
CN102420676B (zh) 一种适用于深空星际卫星网络的高效交互传输方法
EP1694010B1 (en) Method for preventing retransmissions due to delay in a wireless network
EP1698087B1 (en) Transparent optimization for tcp flow control
Chen et al. TCP performance over mobile ad hoc networks
US8509080B2 (en) Network traffic accelerator
CN103986548B (zh) 一种确定丢包原因的方法和终端
CN102413503B (zh) 一种用于准TCP,即Semi-TCP的自适应确认分组延迟发送的方法
CN101854738A (zh) 一种用于卫星网络的传输控制协议方法
CN102468941A (zh) 网络丢包处理方法及装置
CN1946078B (zh) 一种适用于卫星网络的高效交互传输方法
KR100912178B1 (ko) 무선 환경에서의 혼잡제어방법 및 기록매체
CN101969432B (zh) 基于随机回退的tcp拥塞窗口的控制方法
Goswami et al. A Study on Cross-Layer TCP Performance in Wireless Ad Hoc Network
CN112689268A (zh) 编队无人机、组网提高多路由数据传输效率的方法及系统
CN112039955A (zh) 一种文件数据传输方法及系统
Bathla et al. Relative inspection of TCP variants reno, new reno, sack, vegas in AODV
CN104580171B (zh) Tcp协议的传输方法、装置和系统
Nada Service time distribution of selective repeat ARQ protocol used in transmitting short messages over noisy channels
Jiong et al. TP-satellite: A new transport protocol for satellite IP networks
Obata et al. TCP-STAR: TCP congestion control method for satellite Internet
Paul et al. Comparative analysis of different TCP variants in mobile ad-hoc network
Molia et al. A comprehensive study of cross-layer approaches for improving TCP performance in wireless networks
Sharma et al. Performance evaluation of TCP variants under different node speeds using OPNET simulator
Ghaleb-Seddik et al. Coupling Loss and Delay Differentiation to Enhance TCP Performance within Wireless Multi-hop Ad-hoc Networks
Dunaytsev et al. An analytical comparison of the slow-but-steady and impatient variants of TCP New Reno

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140326

Termination date: 20141130

EXPY Termination of patent right or utility model