吴海涛 梁迎春
肇庆学院,广东 526061
作为维系深空探测活动的纽带,深空通信与地面通信及卫星通信相比[1],不但要忍受极长且可变的时延,还要遭受各种干扰、损耗及衰减等交叠影响,更要面对由星体及探测器运动导致的频繁链路断续等问题,复杂多变的环境严重制约着数据传输效率。当前,通过增加发射功率、增大天线口径等技术手段提升点对点链路的传输能力,已难以支撑未来空间科学活动的全面展开[2]。随着探测任务深入开展、探测距离持续加大及载荷性能不断提升,空间通信迫切需要一个互连、互操作且能提供容忍中断、容忍延时服务的传输网络。
如今,美国已建立了性能强大的深空测控网与火星中继网络,“洞察”号火星探测器成功着陆并回传图片,彰显了其强大的测控能力。我国深空探测起步较晚,现阶段已解决了深空点对点通信问题,“天链”系列数据中继卫星组网、“鹊桥”月球中继卫星及嫦娥四号的成功发射标志着我国正朝着网络化传输发展。为了有效支撑未来更复杂、更遥远的深空探测任务,满足对数据传输效率的需求,人们正努力将CCSDS(Consultative Committee for Space Data Systems)空间通信协议簇,不断移植到延时/中断容忍网络(Delay /Disruption-Tolerant Network,DTN)体系下,期望在极其艰难的星际环境中,DTN能提供如地面因特网般的服务。
眼下,DTN协议体系仅包含CCSDS正式颁布的BP(Bundle Protocol)、LTP(Licklider Transmission Protocol)等少数协议[3-4]。BP协议是核心覆盖层协议,采用保管传输及存储转发机制,改善了端到端的可靠性。作为BP协议的一种汇聚层协议,LTP协议秉承了CFDP(CCSDS File Delivery Protocol)的设计思路,是专为深空长距离链路设计的点对点协议。LTP协议通过会话(Session)将应用数据以块(Block)形式传输,既能提供类似TCP的可靠传输,也可提供如同UDP的尽力而为服务。
目前,空间TCP/IP协议体系已被证实无法适用于深空环境,CCSDS协议体系虽得到成功应用,但需针对不同场景人工选择相应协议,DTN协议体系被视为解决深空通信面临的长距离、大衰减及链路断续等困难的有效手段[5-6]。
近几年,在LTP协议方面出现了不少代表性的研究成果:1)根据LTP协议传输机理,利用实验平台在特定场景中对比验证其传输性能。文献[7-8]在上下行非对称地月场景中,对比分析了LTP与TCP、UDP作为汇聚层协议的性能;2)通过数学建模,仿真估算会话传输时延。文献[9-10]对LTP协议传输过程建模,在地火场景中仿真验证了会话传输时延;3)将LTP协议与编码结合设计传输协议,提升有效吞吐量。文献[11-12]分别将Reed-Solomon码、喷泉码与LTP协议结合设计了新的传输协议,并分析了特定场景下的吞吐量;4)通过跨层联合优化设计,以最小化文件传递时延等条件为约束,给出了在特定任务和环境下的数据单元大小优化方案[13-14]。
但研究工作大都集中在LTP协议的单会话性能比较、传输过程建模、提高吞吐量及数据单元优化等方面,对多会话传输及Bundle聚合研究较少。LTP单会话传输的延迟应答机制,在以长距离、断续为显著特征的深空链路中,会导致信道资源的利用率不足。因此,提高深空信道利用率就显得尤为重要。
目前,作者对CFDP协议性能进行了深入研究,提出了一种改进方案并做了仿真对比验证[15-17];并在此基础上建模分析了LTP会话传输过程,提出了异步加速重传策略[18]。本文基于前期研究成果,采用多会话传输机制及Bundle聚合方法,提出一种多会话数据聚合策略,仿真分析其传输性能。
首先,根据链路层的最大传输单元(Maximum Transmission Unit, MTU)大小,将要传输的整个文件数据块分割为数据段(Segments)。逻辑上,既包含需基于重传保障可靠传输的红数据段,也包含无需可靠传输的绿数据段。按照实际传输需求,会话数据块也可全为红数据段或绿数据段。然后,按照红数据段先发,绿数据段后发的原则依次发送。数据发送时,数据块中的最后一个红数据段被标记为红数据结束(End of Red-Part, EORP),用于指示数据块中的红数据传输完毕,并将其作为检查点(CheckPoint, CP),要求接收端一旦收到EORP后必须马上回复接收报告(Report Segment, RS)。当发出EROP后,发送端立刻启动一个定时器,以备EORP在定时器超时后的自动重传。整个数据块中的最后一个数据段也被标记为块结束(End of Block, EOB),表示整个会话数据块传输完毕。
接收端在收到第一个数据段后,立刻启动会话接收过程。如果在接收过程中未发生数据错误或丢失的话,接收端一旦收到EORP立刻回复一个RS,并启动一个定时器以便发送端无回应时自动重传RS。发送端在成功收到RS后,马上关闭对应的EORP定时器,即刻产生并发送一个回复报告(Report-Acknowledgment segment, RA)。接收端在收到RA后,立刻关闭RS定时器,会话结束。如果在数据传输过程中有红数据段丢失,就会启动重传过程。接收端返回一个(或多个)详细描述丢失数据的接收报告,并分别为每个RS开启一个定时器。发送端在收到RS后,回复RA并重传丢失的数据段,将重传数据中的最后一个数据段标记为CP。接收端在收到RA后,关闭相应的RS定时器。当接收端收到CP后,再次统计收到的数据,如果仍有数据丢失,需不断重复上述重传过程,如果此时所有数据均被成功接收,会话结束。
深空通信节点稀少、链路断续及存储转发等特点要求必须高效地利用链路资源。如果LTP直至收到前一数据块的回复信息,才继续传输后面数据块,就会造成可用传输时机的极大浪费。因此,须考虑开启多个会话提高信道利用率。
设想的一种LTP多会话传输机制如图1所示。为方便阐述多会话传输机制,假设各会话中数据块长度相同,都包含3个红数据段和1个绿数据段。
由图1可见,在会话1中,当数据块Block1中标记为EOB的绿数据段传输完后,发送端需等待一段时间才收到回复的接收报告RS。如果需要等待的往返时间(Round Trip Time, RTT)很长,势必导致珍贵链路资源的极大浪费。
图1 LTP多会话传输机制
为此,在发送端的处理能力、存储空间等条件允许的情况下,可在会话1中的绿数据段发出后准备开启会话2。同样地,在会话2的数据块Block2发送完后开启会话3,并以此方式依次开启多个会话并发传输,充分利用等待接收报告RS的空闲期,可大大提高深空信道的利用率。理论上来说,虽然可通过不断开启新的会话获得更大的吞吐量,但是实际深空通信节点的存储及处理能力都是严重受限的。因此,只能开启有限的并发会话数。
目前,深空通信的业务类型日趋多样,载荷性能不断增强,遥测数据日益增多,这为深空环境下的数据传输带来了新的挑战。在实际任务中,采用何种协议体系传输,以及将数据分割为多大的协议数据单元(Protocol Data Unit, PDU)来匹配信道特性,是一个需要考虑的问题。
通常在DTN协议体系中,应用数据首先在BP层被分割为具有一定长度的“Bundle”,并经由DTN节点不断向LTP汇聚层转发;其次,LTP汇聚层通过服务数据聚合(Service Data Aggregation, SDA)的方式,按照传输需求将一个或多个Bundle打包成一个数据块Block;最后,LTP再根据数据链路层规定的MTU,将Block分割成多个一定长度的数据段(Segment),并将其作为基本的数据传输单元。
深空通信的一个突出特点就是上下行传输速率非对称,速率比可达1:1000,上行链路难免会对回复RS带来较大的时延。有时,应用数据在BP层被分割为很多个小的Bundle,并要求为每个Bundle单独回复,如果一个数据块Block仅封装一个如此小的Bundle的话,接收端产生的回复RS数就会增多,容易导致回复的接收报告RS得不到及时传输,并不断累积继而产生拥塞,严重影响到数据传输效率。在这种情况下,为了保证RS的及时传输,必须减少产生的RS数目,需要将BP层产生的多个小Bundle聚合为一个大的数据Block,以此降低回复的RS数目,减轻上行信道的压力。
基于以上分析,提出了一种面向深空通信的LTP数据聚合方法,如图2所示。首先,要传输的源数据在BP层被分成多个小Bundle;然后,LTP通过SDA将多个Bundle聚合为一个Block;最后,按照数据链路层的MTU将Block 分割为多个Segment。究竟将多少个小Bundle聚合为一个Block,以此提高深空环境下的数据传输效率,是接下来要讨论的问题。
图2 数据聚合方法
下面结合多会话传输机制及数据聚合方法,对LTP多会话数据聚合过程进行数学分析,并仿真验证。
为了分析方便,做出如下假设:
1)不考虑收发节点的存储能力;
2)EORP、CP、RS及RA错误概率为0;
3)数据块大小相同,会话间无等待时延;
4)接收端每次只产生一个回复报告RS;
5)无前向纠错机制。
文中分析用到的记号规定见表1。
表1 符号定义
LTP多会话数据聚合过程如图3所示。可见,在整个数据传输过程中,当会话S1中的EORP/CP发送完毕后,发送端无需等待回复的信息,可立即开启会话S2,并依次开启S3等多个会话,且每个会话数据块Block长度一样,都由一定数目的小Bundle聚合而成,且满足LBlock=N·LBundle。当会话数据块中的EORP/CP到达接收端后,就会触发接收端回复RS,发送端在收到RS后就会启动重传过程,重传的数据如图3中的黑块所示,所需的重传回合数可视具体情况设定。每个会话皆按前述LTP单会话的过程将数据可靠传输,直至全部会话结束。
如前所述,聚合而成的数据块Block依据链路层的MTU大小,被分割为多个一定长度的数据段Segment,并以此为单位进行传输。假设会话中每个数据段的错误概率恒定,在整个多会话数据传输过程中,接收报告RS均以会话“数据块”的粒度产生,其大小由数据块所含红数据量的多少决定。在重传阶段中,由于是以“数据段”的粒度实现可靠传输的,重传数据量的多少由数据段的长度及数量决定。
下面以会话S1和S2为例,简要分析多会话数据聚合过程。在会话S1中,接收端在收到EORP后,需要产生回复用的接收报告RS,其长度由错误数据的多少及范围决定。为了分析方便,将数据段发生错误或丢失的错误概率大小,以及数据块的长度集中映射到RS的报告长度内,即用RS数据段的长短来表征错误数据量的多少。记会话S1中RS初次产生的时刻为初始0时刻。根据假设,会话S1与S2间无等待时延,会话S2中初次产生RS的时刻即为TBlock。若忽略收发两端的排队处理时延,为了避免RS的累积导致拥塞,接收端须做到在会话S2的RS产生前,将会话S1产生的RS传输完毕,即满足:
图3 多会话数据聚合过程
TRS≤TBlock
(1)
易知,RS的发送时间为:
(2)
会话Block的发送时间为:
(3)
将公式(2)、(3)代入公式(1),可得:
(4)
又可表示为:
(5)
定义上下行信道速率比为:
(6)
公式(5)可表示为:
(7)
可得,
(8)
综上可见,采用多会话传输时,需要聚合的Bundle数目N与上下行信道速率比、RS长度及Bundle长度有着密切的关系。
下面通过仿真对影响Bundle聚合数目的因素进行分析,讨论Bundle聚合数的下界,仿真场景参数如表2所示,仿真结果如图4所示。
表2 仿真场景参数设置
由图4(a)可以看出,在地火场景中Bundle的聚合数与接收报告RS长度为线性变化,且随CR的增大而不断减小;在地月场景中,Bundle聚合数目因CR较大变化不太明显。从图4(b)可见,不管是地月还是地火场景中,在RS长度为30B的情况下,Bundle聚合数都随Bundle长度的增大而减少,并逐渐趋于1。当Bundle长度为4KB时,不同CR(1∶50,1∶100,1∶200和1∶400)下的Bundle聚合数分别为1、1、2和3个。图4(c)及(d)分别描述了地月、地火场景中,在不同Bundle长度情况下,Bundle聚合数与RS长度的变化关系。当Bundle长度为2KB时,Bundle聚合数随RS长度成阶梯上升变化。然而,当Bundle长度增大到16KB时,Bundle聚合数为1,这意味着Bundle较长时无需聚合。
综上可得,当Bundle长度及CR较大时,需要聚合的Bundle数目较小甚至无需聚合;反之,当Bundle长度及CR较小时,才需采用聚合手段。既不能简单地认为每个会话Block中仅含一个Bundle,也不能一味地通过聚合来减轻上行信道压力,需要根据实际传输需求采取合适的聚合策略。
图4 影响Bundle聚合的因素
深空通信正朝着业务多样化、数据海量化及传输网络化的趋势发展,这对提高数据传输效率提出了更高的要求,需要一个能容忍延时/中断且能提供互连、互操作服务的网络架构及协议体系。DTN网络架构及传输协议为深空通信面临的诸多挑战提供了解决方案。本文提出了一种面向未来深空通信的LTP多会话数据聚合策略,可为我国航天测控中的深空通信传输协议设计提供参考。下一步将结合节点存储空间受限的实际情况,分析数据传输过程中存储空间的动态变化,确定能开启的并发会话数,对深空环境下的LTP多会话数据聚合策略进行更深入的研究。