因此,在长时延的卫星网络中,TCP的发送窗口必然增长缓慢。由此可见,传统的TCP难以适应卫星链路频繁中断的环境。......
2023-07-02
2.3.3.1 TCP增强技术概要
由前面分析可以看出,在卫星网络中使用TCP增强技术是必要的,需对TCP进行优化设计和适应性改进才能适应卫星网络。近年来,TCP在卫星网络中传输性能的问题和解决方案研究一度成为国内外通信领域的研究热点,相关技术人员做了大量的研究工作。因特网工程部(IETF)的卫星工作组和网络工作组专门制定了多个请求注解等文档(RFC),世界各地的学者也针对卫星网络提出了多种改进策略。卫星网络的TCP增强技术归纳起来可分为两类:一类是针对卫星链路特性的适应性改进;另一类是针对典型卫星应用场景的优化设计。
针对卫星链路特性的适应性改进主要围绕协议流程、流量控制、拥塞控制和差错控制机制展开。针对协议流程的改进,主要包括TCP欺骗、TCP分段、事务型传输控制协议(T/TCP)以及TCP连接状态共享等技术。针对流量控制机制的改进,需要设计相应的突发控制和流量整形策略。针对拥塞控制机制的改进,需要对其中的拥塞判决和拥塞避免机制进行优化,有针对性地设计相应的窗口策略和快速恢复机制。针对差错控制机制的改进,需要根据网络环境优化设计定时器,探索能快速上报更多错误信息的机制,并研究相应的重传策略。上述所有的针对卫星链路特性的解决方案可归纳为TCP算法改进、TCP变种协议和性能增强代理技术。其中,TCP算法改进主要针对TCP的具体算法和机制进行局部改进,使其适应卫星网络的传输。TCP变种协议是在不改变原有TCP基本语义和流程的基础上,提出能完全兼容TCP的优化协议。性能增强代理技术则本着不修改终端TCP协议栈的原则,通过增加硬件设备,将TCP端到端语义连接断开以实现TCP性能的增强。
针对典型卫星应用场景的优化设计主要包括针对动中通场景设计的“零窗口”停发机制、针对不对称信道场景设计的反向ACK过滤机制和针对不同体制而设计的误码容忍控制策略。如图2-32所示,“零窗口”停发机制主要针对卫星网络动中通环境而提出,具体基于遮挡检测机制来判断是否发生遮挡,并通过“零窗口”来保持源端主机的TCP持久模式。反向ACK过滤机制主要针对卫星网络不对称应用场景而提出,具体通过接收端定时确认机制的设计来减少应答包对反向信道的占用。误码容忍控制策略主要用于应对误码引起的丢包,通过设计一种区分误码和拥塞的机制来相对准确地定位丢包原因。
图2-32 卫星TCP增强技术
2.3.3.2 针对卫星链路特性的TCP增强技术解决方案
1)TCP算法改进
TCP算法改进主要侧重于对TCP参数进行调整,该方法只能局部改善卫星网络中TCP的传输性能,并不能从根本上消除卫星链路对TCP性能恶化的影响。TCP算法的改进主要集中在下面几个方面:
(1)事务型传输控制协议。通常,TCP使用三次握手机制在两台主机之间建立连接,连接的建立需要1~1.5个往返时延(RTT)。RFC 1644试验文档提出了一种T/TCP机制,即当两台主机之间的第一个TCP连接建立之后。T/TCP将允许后续新建的其他连接跳过三次握手阶段,从第一个报文段就开始传输数据。该机制能大大节省连接建立的时间,对于频繁的数据量小的短连接通信十分有用。
(2)初始发送窗口扩大。增加发送端初始发送窗口的尺寸能有效缩短TCP连接慢启动的时间。RFC 2581试验文档提出了一种扩大初始发送窗口的算法,确定初始发送窗口的算式如下:
初始窗口=min[4×MSS,max(2×MSS,4 380 B)]
式中,MSS(maximum segment size)代表收发双方允许的最大报文段长度,以B计量。
增加初始发送窗口的尺寸后,在数据传输的第一个RTT时间内更多的包将被发出,这将促使接收端在这段时间内发送更多的ACK应答包,发送窗口也会增长得更快。
(3)窗口缩放。RFC 1323建议文档中提出的窗口缩放技术,建议通信双方在初始的TCP数据头的一个字段中通知对方自己的窗口缩放因子,双方可以在这个因子的控制下将窗口域进行扩大,也就是可以允许滑动窗口有更大的上限值,从而提高传输效率。经过窗口缩放机制,最大窗口尺寸可达l GB。
(4)选择性确认。RFC 2018建议文档提出的选择性确认(SACK)允许接收端发送接收队列中已经被正常接收的数据包的相关序列号信息,从而使发送端只重发那些确实丢失的数据包。在没有SACK机制的情况下接收端只能利用ACK来通告发送端一个缺失数据包的信息,但是SACK选项可以对接收端缓存空间中缺失的多个数据包进行标识,通过快速向发送端提供有关丢失数据包的信息,加快数据传输恢复正常的速度。SACK技术能大大改善TCP在高误码环境下的传输性能,提高链路利用率。
(5)显示拥塞通告。地面网络中,TCP认为所有的丢包都是由网络拥塞造成的,一旦丢包就会迅速降低发送速率。但在卫星网络中,丢包绝大部分由信道误码造成,如果像标准TCP那样降低发送速率则会严重浪费卫星带宽资源。因此,区分由网络拥塞还是信道误码而造成的丢包,对TCP性能提升非常有意义。RFC 2481试验文档提出的显示拥塞通告(ECN)技术主要是依靠中间路由器向TCP发送端发送通告信息,用于帮助发送端判断丢包的原因。ECN分为反向ECN和前向ECN两种类型。在反向ECN方案中,中间路由器直接向数据源发送通告信息,这种信息一般通过网间控制报文协议(ICMP)承载。TCP数据源可以根据收到的通告信息判断丢包是由拥塞还是误码造成的,从而采取相应的应对措施。在前向ECN方案中,路由器对TCP数据包标记后再进行转发,数据接收端在收到这种带标记的数据包后,会通过ACK将拥塞信息反馈给数据发送端。
(6)慢启动门限估计。TCP慢启动阶段的目的是寻找合适的发送窗口尺寸。在大部分的TCP实现中,慢启动门限值都被设为接收端通告窗口的大小,这会带来一个问题:慢启动阶段中,在正常收到ACK确认包的情况下,TCP发送窗口每经过一个往返时延就会增加一倍,这样,发送窗口的值就有可能在慢启动的最后阶段一下跃变成慢启动门限的两倍,大大增加了网络发生拥塞的可能。可以通过将慢启动门限设置为一个较小的值来解决这个问题。日前相关文献提出了一种将“packet-pair”算法与RTT估计相结合的方案,以此来确定更为合理的慢启动门限值。该方案通过观测ACK之间的间隔估计可用带宽,并通过测量得到RTT值,以此来计算时延带宽积,并将慢启动的门限值设为估计出的时延带宽积。这种方法可以减轻慢启动阶段后期的丢包情况,进而提高传输性能。
(7)TCP连接状态共享。TCP使用了很多参数,它们的初始值往往不适用于卫星信道,但在连接建立后经过一段时间的调整,它们的值会变得比较合理。然而,对于任何一个参数都很难找到一个适用于各种信道环境的标准初始值,TCP连接状态共享正是解决这一问题的有效手段。其基本思想是:已经传输过一段时间的连接,其各个参数都比较适应当前的传输环境,新建的其他连接可以直接使用这些参数,而不用从初始值开始对这些参数进行自适应探测。
2)TCP变种协议
为了提高卫星网络中TCP的传输性能,除了进行上述改进算法的研究之外,国外已经提出并实现了一些TCP变种协议。这些变种协议或者对标准TCP流程和参数进行了修改,或者对标准TCP的算法进行替换和增加。
(1)TCP Peach。主要为优化传统TCP在卫星网络中的传输性能,提出了新的拥塞控制机制。它在继承传统TCP拥塞控制机制的4个核心算法(拥塞避免、快速重传、慢启动和快速恢复)的基础上,对其进行修改并形成了自己的控制算法(拥塞避免、快速重传、突然启动和迅速恢复)。其中,突然启动和迅速恢复算法分别代替了传统TCP的慢启动和快速恢复算法。这两种新算法主要基于伪报文段这个新概念,伪报文段是发送端生成的不携带任何新信息的低优先级报文段,是已经发送的上一个报文段的复制,发送端利用伪报文段来探测网络资源的可用性。如果在连接路径上的某台路由器发生了拥塞,那么,该路由器就会首先丢弃携带伪报文段的IP包,因此,伪报文段的发送不会造成有用数据吞吐量的下降。如果路由器没有拥塞,伪报文段就会顺利到达接收端,发送端通过分析接收到的与伪报文段对应的ACK信息,就能知道网络还有可用带宽,以此为依据,发送端就会加大发送速率。突然启动算法就是利用伪报文段在连接的初始阶段快速增加拥塞窗口,而不必每经过一个RTT才增加一次。迅速恢复算法则利用这种机制来抵抗噪声信道中的随机误码。需要注意的是,如果想使用TCP Peach,需要在网络中各个路由器上都启用基于类的加权公平队列(CBQ)策略,以区分高优先级的正常报文段和低优先级的伪报文段。
在连接的初始阶段,处于突然启动阶段的TCP Peach通过发送伪数据包来探测可用的网络资源,保证其在卫星信道上可以达到最大速率。当收到3个重复ACK时,TCP Peach就进入到了快速重传阶段。一旦重传结束,TCP Peach就进入了迅速恢复阶段,在此阶段发送端每收到一个ACK就发送两个伪报文段以探测网络的实际带宽,这是TCP Peach相对于标准TCP性能之所以能提高的关键所在。当TCP Peach进入拥塞避免阶段后,发送端会根据收到的与在迅速恢复阶段中发出的伪报文段相对应的ACK的信息来快速增加拥塞窗口,因而TCP Peach与标准TCP相比能更快地利用网络的剩余带宽。
(2)TCP Westwood。主要为克服卫星网络中的高误码率而设计。TCP Westwood对快速恢复算法进行了修改,提出了更快的恢复算法。在标准TCP中,发送端在收到3个重复ACK后将拥塞窗口降为原来的一半,并将慢启动门限设定为该拥塞窗口值。而TCP Westwood则与此不同,它把慢启动门限作为信道可用带宽估计值的函数,在收到3个重复ACK后,可以通过该函数算出慢启动门限的合理值。这样,当发生丢包时,发送速率一般就不会大幅度减小。信道带宽的估计值是通过测量和平均返回ACK的速率而得到的。
(3)TCP Hyhla。主要针对卫星网络中的长时延特性而设计,它包括以下几方面的改进:对标准拥塞控制算法中的慢启动和拥塞避免的改进,强制采用SACK选项,采用信道带宽估计算法,时间戳和包间隔技术。
TCP Hyhla改进拥塞控制算法的主要目标是使长时延信道中的TCP报文段瞬时传输速率达到短时延信道中的水平。因为TCP Hyhla的拥塞控制算法保证了在长时延信道中仍能保持较高的传输速率,所以,其拥塞窗口的平均尺寸必然会比标准TCP大,随之而来,同一个窗口内的多包丢失现象也会比较频繁,因此,必须采用SACK策略。大拥塞窗口还会影响指数回退重传超时(RTO)策略的性能,可以通过采用时间戳来解决。大拥塞窗口还可能引起中间路由器队列的大规模丢包,可以通过采用包间隔技术来解决。
3)性能增强代理
在大多数情况下,尤其是在商用操作系统中,用户不能对终端的协议枝随意进行修改以引入TCP优化算法或TCP变种协议,因此,必须把对TCP的优化工作放在网络中的卫星段来做。而不是放在终端上。从1990年代后期开始,人们就在这方面做了大量的工作,提出了性能增强代理(PEP)的解决方案,即通过增加硬件设备(带欺骗功能的网关)将TCP端到端的语义连接断开以实现协议性能增强的目的。其优势在于终端系统感觉不到PEP的存在,无须针对终端系统作任何修改就能达到良好的用户体验。根据PEP实现方式的不同大致可分为TCP欺骗(TCP Spoofing)和TCP分段(TCP Splitting)两种技术路线。
(1)TCP欺骗。是一种提高长时延信道中TCP性能的方法,主要通过“掩盖”卫星信道的长时延来提升TCP发送窗口增加的速度。具体由PEP向发送端发送欺骗ACK,让发送端认为数据包在收发端之间的传播时延很短,从而实现滑动窗口的稳定增长,最终达到提高发送速率的目的。有、无TCP欺骗协议流程对比如图2-33所示。
图2-33 有、无TCP欺骗协议流程对比
在实际卫星网络应用中,该技术主要通过单端部署带欺骗功能的网关(PEP)来实现。带欺骗功能的网关对于终端主机来说是透明的,它负责为收到的TCP报文段产生相应的欺骗ACK,并将该ACK回复给发送端。这样,终端再次发送报文段的等待时间就仅取决于接入链路的时延,而与骨干段无关,如图2-34所示。
(2)TCP分段。基本原理是通过性能增强代理将发送端和接收端之间的TCP连接分为3段。其中,段1、段3为接入段,段2为骨干段,如图2-35所示。接入段使用标准TCP,骨干段使用适合卫星链路特性的卫星增强TCP协议。卫星增强TCP协议既可以是TCP改进协议、TCP变种协议,也可以是新的传输层协议。目前,针对空间网络特性而设计的空间通信协议标准——传输层协议(SCPS-TP)是广泛被认可和应用的新的传输层协议。
图2-34 卫星网络中TCP欺骗的应用示意
图2-35 卫星网络中TCP分段的应用示意
空间通信协议标准(SCPS)主要用于空间多颗卫星、空间实验室及地面射频终端等组成的空间互联网中星星或星地之间的通信,目前已经成为美国军用标准(MIL-STD-2045-44000)和国际标准化组织的标准(ISO15893:2000)。SCPS协议包括网络协议、安全协议、传输协议及文件协议。其中,空间通信协议标准-传输协议最为典型。SCPS-TP是在TCP的基础上,针对空间链路长时延且往返时延可变、高误码、带宽不对称和间歇性连接等特点,作出的相应修改和扩展,从而为空间网络提供端到端的可靠数据传输,以适应当前和未来的空间任务的需求。
SCPS-TP和TCP的基本数据处理流程是一致的,它重点针对TCP在空间通信中存在的问题进行了一系列的改进,主要包括增大初始窗口与慢启动门限、强制启用窗口扩展和时间戳、选择性否定确认、包头压缩以及对拥塞控制方法的修改,如图2-36所示。
图2-36 SCPS-TP TCP分段方案中的应用示意
(A)增大初始窗口与慢启动门限。较大的拥塞窗口初始值可提高TCP连接启动初期的吞吐量,缩短提升速度所需的时间,有利于克服长时延和大带宽时延积对TCP带来的不利影响。普通TCP的初始窗口一般为1个最长报文段,慢启动门限一般为64 kB;SCPSTP则依据RFC 2581按以下公式计算初始窗口:
初始窗口=min[4×MSS,max(2×MSS,4 380 B)]
并将慢启动门限设为1 GB。
(B)强制启用窗口扩展和时间戳。标准TCP窗口最大值为64 kB,在高带宽时延积的网络中,这个最大值使得TCP不能充分利用链路带宽。SCPS-TP依据RFC1323将窗口最大值扩展为4 GB,为充分利用链路带宽创造了条件。在高带宽时延积网络中,引入窗口扩展后序号有可能环回重复,SCPS-TP强制启用时间戳来区分数据包发送的时间,避免发生混淆。一般情况下,普通TCP并不启动这两项功能,因而无法保证传输性能,SCPS-TP则将窗口扩展,和时间戳作为强制功能,避免了窗口尺寸成为制约吞吐量的瓶颈。
(C)选择性否定确认(SNACK)。该技术是SCPS-TP对TCP的重要改进之一。标准TCP在没有SNACK的情况下,接收端只能利用ACK来通告发送端至多一个缺失数据段的信息。SNACK则允许接收端发送接收端队列中多个缺失报文段的信息,SNACK选项可以对接收端缓存空间中的多个缺失数据段进行标识,通过快速提供更多的有关丢失数据段的信息,加快数据传输恢复正常的速度。SNACK技术能在一定程度上提高卫星链路的利用率及吞吐量。
(D)包头压缩。它是SCPS-TP适应卫星网络不对称环境的重要手段,标准TCP没有提供该功能。在卫星网络中,一般情况下前向信道带宽较宽,此时包头压缩的好处并不明显,但在用于传输确认信息的窄带反向信道中,头压缩的优势就能得到充分体现。SCPSTP综合采用提取会话过程中不变的元素、以连接ID代替端口号、去掉与传输分组无关信息等手段实现包主头压缩,包头数据能压缩50%左右。
(E)拥塞控制。SCPS-TP提供了3种拥塞控制算法,分别为基于速率的控制、VJ拥塞控制和Vegas拥塞控制。
基于速率的控制将丢包的原因归结于链路误码,而不是链路拥塞。当发送丢包时,发送端的SCPS-TP在经历短暂的重传之后,并不降低发送速率,而是继续以原来的速率发送后续数据。该方法存在片面性,能在误码引起数据包丢失的情况下实现信道带宽的充分利用,无法应对拥塞引起丢包的场景。
VJ拥塞控制与标准TCP的拥塞控制机制大致相同,可以较快地重传丢失的数据包,但是由于窗口增长策略较为保守,一旦发生拥塞并降低发送速率后,速率恢复增长较为缓慢,信道带宽利用率一般不高。
Vegas拥塞控制可以估计网络的剩余带宽,减少盲目的“试探性”升速,该算法不是一味连续地增大拥塞窗口,而是在时延和信道利用率之间建立映射关系,通过比较测量利用率和期望利用率来检测拥塞程度,尽力保证传输速率在最佳值附近小幅变化。避免由传输速率盲目升高而造成链路拥塞是该算法的最大优点。
2.3.3.3 “零窗口”停发
卫星“动中通”应用场景中,车载站常受到障碍物的遮挡,导致链路出现暂时性中断,严重影响TCP的运行效率和系统性能。为此,提出一种基于“零窗口”停发的遮挡检测机制,可有效解决该问题。如图2-37所示。是否发生遮挡主要由IP增强设备的“零窗口”停发处理单元进行判断,其判断依据为在一定时间内某一TCP连接缓存的数据包是否超过一个门限值(α)。如果超过,则判定链路发生遮挡,此时“零窗口”停发处理单元向源端主机发送窗口为零的确认数据包,使源端主机进入TCP持久模式,数据暂停发送,待链路恢复后,“零窗口”停发单元向源端主机发送窗口不为零的确认ACK,使源端主机重新开始传输数据。
图2-37 “零窗口”停发技术在动中通场景中的应用
工程实践证明,不使用“零窗口”停发处理机制,动中通车载站即使经过一棵小树都会造成TCP连接的中断和数据包的丢失。使用该技术后,即使经过几十分钟的隧道,TCP都能正常运行。
2.3.3.4 反向ACK过滤
在前反向信道不对称的卫星网络中,反向回传信道速率很低,频繁的确认会导致ACK的拥塞,进而影响发送端数据的正常发送。为此提出了一种反向ACK过滤解决方案,如图2-38所示。中心站TCP增强单元真正的确认(ACK)并不会直接通过反向卫星信道传给远端站TCP客户端,中心站TCP增强单元会定时向远端站TCP增强单元发送自己构造的ACK报文,用于通知远端站TCP增强单元清除已确认的报文,并释放缓存。采用该机制能够大大降低对反向卫星信道的占用。
图2-38 反向ACK过滤技术的应用场景及流程
2.3.3.5 误码容忍的拥塞控制
尽管目前一些TCP增强方案中针对网络丢包采取了诸多拥塞控制解决方案,但都只是针对某种特定场景,存在一定的局限性。比如,SCPS-TP中基于速率的控制方案主要将丢包的原因完全归结于链路误码,当网络丢包时,发送端不降低发生速率,继续维持原来的速率进行数据的传输。很显然,如果此时是因为信道拥塞引起的丢包,采用该机制肯定是不适合的。因此针对卫星网络这种链路误码与链路拥塞同时存在,且都有可能影响业务传输性能的应用场景,需要设计判断误码和拥塞的机制。目前,其设计思路大致分为两类:一是采用跨层技术将对端无线链路的接收质量告知发送端的传输层,以此判断丢包是由拥塞还是误码引起的。二是通过采用具有误码容忍的拥塞控制算法来解决该问题,基本思路是设置一定的丢包门限,只有丢包达到一定的门限值后才认为链路发生了拥塞,执行快速重传机制,否则认为丢包是由卫星链路的误码造成的,采用SNACK技术仅重传丢失数据包即可。
在这两类设计思路中,跨层技术通用性较差,而且由于卫星链路的长时延特性,收发两端通知不及时,在实际工程中较少采用。相对于跨层技术,误码容忍的解决方案通用性好且易实现,在链路误码率不是很高的情况下,TCP业务能达到较好的传输性能。
有关空间激光微波混合信息网络技术的文章
1)流量控制机制该机制主要用于确保发送端发送的数据量不超过接收端的最大处理能力。TCP的流量控制具体通过滑动窗口算法来实现。地面网络常用TCP的拥塞控制机制主要包括TCP-Tahoe,TCP-Reno,TCP-SACT等。......
2023-07-02
图2-50HTTP增强技术单端部署示意图2-51HTTP增强技术双端部署示意在结合卫星广播特性的卫星HTTP增强技术优化设计中,可充分利用卫星广播特性,通过信关站的HTTP增强模块向同一组播组内的远端站HTTP增强模块发送组播应答消息,可达到“一人访问,全网共享”的效果。......
2023-07-02
实践证明,实现拥塞控制并不容易,它属于动态控制问题。下面介绍TCP 采用的一些拥塞控制方法。引入拥塞窗口cwnd 后,TCP 发送方的最大发送窗口修改为“允许发送方发送的最大数据量为当前拥塞窗口和通告窗口的极小值”。TCP 拥塞控制主要根据网络拥塞状况调节拥塞窗口的大小。拥塞控制可以使这四个机制共同作用,以达到更好的效果。......
2023-10-19
TCP报文段的格式如图8-17所示。图8-17 TCP报文段的格式1.TCP源端口号TCP源端口号长度为16位,用于标识发送方通信进程的端口。目的端在收到TCP报文段后,可以用源端口号和源IP地址标识报文的返回地址。通过TCP报文段首部的窗口刻度选项,它的值可以按比例变化,以提供更大的窗口。校验和覆盖了整个的TCP报文段的首部和数据区。图8-18 TCP选项格式12.填充填充字段的长度不定,用于填充以保证TCP头部的长度为32位的整数倍,值全为0。......
2023-11-20
图2-20FDMA/DAMA卫星网络中自适应路由建立/删除流程图2-21PIM-DM协议在FDMA/DAMA卫星系统中应用2.2.4.2MF-TDMA卫星网络路由方案在MF-TDMA卫星网络中,路由方案的选择与设计应重点考虑网状网络拓扑结构和广播型链路对路由协议的影响。......
2023-07-02
模线样板技术包括模线和样板两部分内容。模线是由模线设计员根据设计所发出的图纸而绘制的图样;样板则是按照模线或数据而加工成的专用量具。由此可知,模线样板是传统飞机制造技术中尺寸传递的主要方法。模线样板的质量直接影响飞机制造的质量和新机试制工作的顺利进行。因此,提高模线样板的质量和生产效率有很重要的意义。......
2023-07-18
由于这些原因,可以说TCP/IP互联网层和OSI网络层在功能上非常相似。图2-21 TCP/IP模型中的协议与网络3.应用层TCP/IP模型没有会话层和表示层。......
2023-11-22
相关推荐