0 引言
深空通信是深空探测的基础,未来的深空探测任务需要先进的数据传输策略保证大量数据的可靠传输。由于深空通信传输距离遥远、信噪比低、链路环境恶劣[1],导致深空数据传输时延长、误码率高、信道非对称等缺点,从而传统的数据传输策略在深空中不再适用[2-4]。基于传输控制协议改进的深空数据传输策略[5-8],采用新型的初始状态算法、改进的拥塞控制机制以及丢包处理策略等方式,虽然可以有效提高吞吐量和链路利用率,但无法应对时延长和误码率高等情况。空间数据系统咨询委员会(Consultative Committee for Space Data Systems, CCSDS) 提出的文件传输协议(CCSDS File Delivery Protocol, CFDP)能够很好地适应深空环境[9],减少交互过程;但其未对多个数据包进行处理,并且仍需要反馈重传,导致时延太大。
近年来,喷泉码作为一种无需反馈链路,能够以任意概率逼近香农限的前向纠错分组技术被应用到深空数据传输策略中[10-13],以减少重传次数和时延。LT码是一种具有实用性能的喷泉编码方案[14],但其在短码长时冗余较大,编译码复杂度较高,且常用的置信传播(Belief Propagation, BP) 算法效率不高,而高斯消元(Gaussian Elimination, GE)算法复杂度过高。文献[15]采用相关列补偿编码算法和渐增高斯消元算法对短码长LT码进行改进,一定程度上提高了LT码的译码成功率,但编译码复杂度较高,并且没有给出具体的数据传输策略。
针对上述问题,本文首先分析LT码的编译码算法,并讨论LT码在深空通信中的应用性能。然后对短码长的LT码进行优化得到优化LT(Optimized LT, OLT)码:在保持LT码无码率特性的前提下,提出一种新型的数据包选择策略,并对度分布函数进行调整,充分保证对原始数据的全选覆盖;之后分析现有译码算法的缺陷,采用BP算法和GE算法联合译码,以获得更高的译码性能。最后,提出基于OLT码的深空数据传输策略并进行仿真分析。
1 LT码及其深空应用性能分析
1.1 LT码的编译码算法
LT码的编码方法为:1)假定源文件大小为k*L,将其分为k个数据包,每个数据包的大小为L;2)从给定的度分布函数中选择一个度值d,然后从k个数据包中随机选择d个数据包进行异或,得到一个编码包;3)重复上一步骤,得到一定数量的编码包。
LT码常用的BP算法是一种迭代算法。如图1所示,在译码的每一步,译码器都在编码包集合中寻找度为1的编码包,度为1的编码包组成的集合称为译码波动集,显然译码波动集中编码包连接的数据包都能直接译出。之后在迭代的每一步,译码器将一个译出的数据包与跟它相连的所有编码包进行异或,计算结果取代对应编码包的值,完成之后删除相应的连接关系。如果生成度为1的编码包,则加入译码波动集。重复上述过程直至不存在度为1的编码包为止。如果所有数据包都被恢复则译码成功,否则译码失败。
1.2 LT码的深空应用性能分析
由以上分析可知,LT码具有简单的编译码方法和较小的译码开销,当数据包的个数达到104以上时,仅需要5%的冗余信息就能够保证较高的译码成功率。但是深空通信中,时延长、误码率高,大码长会增加编译码时延,并需要更大的存储空间。因此短码长LT码在深空通信中更具有应用前景。但对于短码长LT码,需要至少50%的编码冗余才能达到深空通信要求的10-4的译码失败率。增加编码冗余又会消耗额外的发送功率,因此限制了其在深空通信中的发展。
LT码随机选择数据包的方式需要较大的度数保证译码成功率,这样将会增大编译码复杂度。同时, LT码译码所用的BP算法实际上是一种次优算法,在不存在度为1的编码包时即停止译码,浪费了部分编码信息,等价于文件传输需要较大的缓存和译码时延,不适合功率和存储空间受限的深空通信系统。因此,本文将基于深空通信环境,从编码和译码两个方面优化短码长的LT码,得到OLT码,进而提出适合深空通信环境的数据传输策略。
2 OLT码
2.1 OLT码的编码过程
假设数据包的个数为k,将前k个度数设置为1,同时将度数1的选择概率分配给其他度数。为简便起见,本文将度数1的概率分配给度数2,然后依次循环选择数据包进行编码。在第一轮编码时,设置前k个度数为1,相当于将k个数据包直接依次复制给编码包。在第二轮编码时,继续根据度分布函数选择度数,同样按顺序依次选择数据包。编码示意图如图2所示,假设有10个数据包,编码包数量为15,度数依次为1,1,1,1,1,1,1,1,1,1,3,5,3,2,2,则前10个编码包分别由10个数据包复制而成,第11个编码包由1,2,3号数据包异或得到,第12个编码包由4,5,6,7,8号数据包异或而成,其余以此类推。
OLT码具体编码过程如下:
1)将源数据分成k个数据包,每个数据包的大小为L,并依次编号为1~k;
2)前k个编码包的度数设为1,从第1个数据包开始,依次选择数据包,复制给相应的编码包;
3)根据给定的度分布,确定度数d;
4)依次循环选择d个数据包进行异或运算,生成一个编码包;
5)重复3)~4),得到一定数量的编码包。
2.2 OLT码的译码过程
GE算法是喷泉码通用的译码方式,适用于各种码字。假设接收端收到n个编码包,每个编码包代表有k个未知输入的线性方程,则整个译码过程可看为n个方程联合求解k个未知数的方程组,如式(4)所示:
H×X=N(4)
其中:H是经过删除信道后的生成矩阵,大小为n×k;X为待求解的输入信息向量,即源数据包向量,大小为k×1;N是接收信息向量,即正确接收到的编码包向量。
GE算法的步骤如下:
1)将H矩阵扩展为含接收信息向量N的增广矩阵H′,H′=[H/N]。
2)利用矩阵初等行变换将此增广矩阵H′中的H矩阵转换成单位矩阵I,此时H′=[I/N′]。
3)若此单位矩阵I满秩,则译码成功,译码输出X即为N′;若此单位矩阵不满秩,说明接收信息不足,译码失败,接收端继续接收信息,进入下一轮译码。
GE算法能够充分利用接收端正确接收到的编码包,译码成功率高于BP算法,其运算量O(nk2)随着数
据包数量的增长而快速增长,因此不适合中长码的运算。
综上所述,本文提出联合译码算法,将BP算法和GE算法联合使用,结合两者的优点,在充分利用编码信息、提高译码成功率的同时尽可能降低运算复杂度。
译码算法流程如图3所示,具体步骤如下:
1)接收端接收到一定数量的编码包后,生成编码矩阵,采用BP算法进行译码,如果成功译出所有源数据,则转到3);否则转到2)。
2) 对未译出的编码包进行整理,得到未译出数据包和相应的编码包之间的编码矩阵。采用GE算法进行译码,如果译码成功则转到3);否则继续接收编码包。
3)译码成功,本次数据传输过程结束。
3 基于OLT码的深空数据传输策略
本文提出一种基于OLT码的深空数据传输策略,发送端对数据文件进行OLT码编码得到OLT码数据包。OLT码数据包的格式定义如图3所示。
OLT码数据包由帧头和数据域组成。在帧头中,当OLT码标识为0时,为普通传输模式;当OLT码标识为1时,为OLT码传输模式。在数据域中,当传输模式为OLT码传输模式时,“偏移”字段将改为“度”字段,指示该包由几个原始数据包编码而成,其后跟随构成该包的数据包序列号,然后是编码包。
基于OLT码的深空数据传输策略如图4所示,主要步骤如下:
1)发送端发送元协议数据单元(Metadata Protocol Data Unit, MPDU)告知接收端将要传送的文件大小等各种传输参数。
2)发送端设定文件最大发送冗余,开始对文件进行分割并进行OLT码编码,生成编码包。将编码包作为数据信息封装为OLT码数据包并发送到接收端,之后等待接收端的反馈信息。
3)接收端收到MPDU和一定数量的OLT码数据包后,根据帧头信息使用联合译码算法对编码包进行译码。如果译码失败,则反馈失败信息,继续接收编码信息并译码;如果译码成功,则发送Finished PDU,通知发送端接收成功。
4)发送端收到译码失败信息后,根据信息进行编码继续发送OLT码数据包并转到3);接收到Finished PDU后,停止编码发送,释放资源,并发送ACK确认,释放资源,整个传输过程结束。
4 性能仿真与分析
本文基于Matlab搭建仿真平台,分别对OLT码和深空数据传输策略的性能进行仿真验证,并将深空数据传输策略与CFDP进行对比分析。
4.1 OLT码的性能仿真分析
首先仿真在不同的丢包率下,LT码和OLT码在编码冗余一定时的译码成功率。仿真所使用的度分布函数为鲁棒孤波分布,设置参数c=0.1,δ=0.005,数据包个数为1000,编码冗余为30%,仿真次数为1000,仿真结果如图5所示。由图5可知,在不同的丢包率下,OLT码的译码成功率均高于LT码;随着丢包率的增大,OLT码和LT码的译码成功概率均有所下降,但是OLT码的译码成功率下降趋势较为缓慢。联合译码算法在同样的条件下能够有效提高译码成功率。
图6为编码冗余为20%,丢包率为0.01的情况下,OLT码和LT码的译码成功率和平均编码度数随数据包个数的变化情况。
从图6(a)可看出:随着数据包个数的变化,OLT码译码成功率均在0.99以上;而对于LT码,随着数据包个数的增多,译码成功率不断提高。从图6(b)可看出:OLT码的编码平均度数远小于LT码的编码度数,主要原因是随着数据包个数的增加,LT码需要较多较大的度数以达到数据包的全选覆盖;而OLT码有大量度为1的编码包,大大降低了OLT码的平均编码度数。
由以上分析得知,与LT码相比,OLT码具有较低的平均编码度数和较高的译码成功率。在相同的条件下,OLT码需要较少的冗余即可达到较高的译码成功率。联合译码算法相对BP算法具有更高的译码成功率。由于首先采用BP算法,所以相对于GE算法,联合译码算法具有较低的译码复杂度。
4.2 数据传输策略的性能仿真分析
首先仿真CFDP的平均传输次数和丢包率之间的关系,数据包个数设为1000。CFDP采用延迟否定确认模式,仿真次数设置为1000,仿真结果如表1所示。
由表1可看出:当丢包率达到0.2时,成功传输数据大约需要5.11次;当丢包率为0.001时,平均仍然需要传输1.62次。深空通信传播时延长,反馈重传会带来更大的时延。因此即使在数据包个数较少和丢包率较低的情况下,CFDP的时延也非常大。
仿真对月通信和对火星通信,取单向传播时延分别为1.35s和280s,定义时延为发送端开始发送MPDU到释放链路资源所用的时间,设置文件大小为1MB,信道速率为1Mb/s,分组长度为1KB,数据包的个数为1000。帧头平均开销为160b,每个分组的平均长度为8160b。链路丢包率为0.001,0.005,0.01,0.05,0.1,0.15,0.2。根据公式ε=(ε′+P)/(1-P)计算编码冗余。P为链路丢包率,ε′为丢包率为0.001、译码成功率为0.99999时的冗余,取30%。CFDP采用延迟否定确认模式,仿真次数为1000。接下来对CFDP和基于OLT码的数据传输策略进行仿真比较,仿真结果如图7所示。
图7(a)是地球对月通信的平均传输时延和丢包率之间的关系。当丢包率小于0.01时,基于OLT码的数据传输策略和CFDP的平均传输时延相差不大;随着丢包率的增大,二者的平均传输时延都有所增加,但CFDP的平均传输时延增加较快。图7(b)是地球对火星通信的平均传输时延和丢包率之间的关系,当丢包率为0.001时,CFDP的平均时延大约为900s,而基于LT码的数据传输策略的平均时延仅为600s左右。随着丢包率的增大,CFDP的平均时延迅速增加。当丢包率达到0.2时,CFDP的平均传输时延大约为2900s,而此时基于OLT码的数据传输策略的平均传输时延仅为660s左右。
基于OLT码的数据传输策略几乎不需要重传,通过后续冗余数据包即可完成数据的成功传输,因此降低了平均传输时延。当丢包率增大时,基于OLT码的数据传输策略时延缓慢增加。这是因为发送数据包个数随着丢包率的增大而增加,所以发送时延和处理时延都相应地增加。
5 结语
本文对LT码在深空通信中的应用前景进行分析,针对短码长LT码进行优化得到OLT码,并提出基于OLT码的深空数据传输策略。在短码长时,相对于LT码,OLT码能够利用较低的冗余达到较高的译码成功率。相对于CFDP,基于OLT码的深空传输策略能有效地降低平均传输时延。在丢包率大于0.1时,CFDP的平均传输时
延开始显著增加,而基于OLT码的深空数据传输策略仍能有效完成数据的可靠传输。当传播时延较大时,基于OLT码的深空数据传输策略的优势更加明显。需要说明的是本文提出的深空数据传输策略并没有考虑中断等情况,未来的工作将在这方面作进一步的研究。
参考文献:
[1]ZHANG N, LI H, ZHANG Q. Thought and developing trend in deep space exploration and communication[J]. Journal of Astronautics, 2007, 28(4): 786-793.(张乃通,李晖, 张钦宇. 深空探测通信技术发展趋势及思考[J]. 宇航学报, 2007, 28(4): 786-793.)
. Journal of Systems Engineering and Electronics, 2012, 23(6): 815-823.