一种基于喷泉码的深空多文件传输方法
【专利摘要】本发明公开了一种基于喷泉码的深空多文件传输方法,充分利用喷泉码的无码率特性,充分利用前向信道,减少反向信道上的数据量,提高链路利用率,降低时延。本发明根据最新的丢包率信息,计算所需的编码冗余,提高一次传输的成功率并有效控制冗余;在接收方采用联合译码算法,充分利用编码信息,降低计算复杂度并提高译码成功率;在重传时,根据不同的丢包情况,采取不同的保护策略,减少重传次数;采用多文件联合传输策略,不等待接收方反馈信息,直接对待传输文件进行处理,充分利用链路资源以及降低时延;在CFDP的基础上,将编码包作为数据域的内容发送,保证了良好的兼容性和实用性。本发明针对性的解决了传输时延巨大、链路时变以及信道非对称的问题,并有效控制冗余,减少传输次数,基本实现了深空文件高效可靠传输的目标。
【专利说明】一种基于喷泉码的深空多文件传输方法
【技术领域】
[0001] 本发明属于深空通信【技术领域】,涉及一种基于喷泉码的深空多文件传输方法。
【背景技术】
[0002] 深空通信是深空探测的基础,承载着深空探测中大量数据的可靠传输。深空通信 环境具有完全不同于地球通信环境的特点,传统的数据传输策略不再适用于深空通信。针 对深空通信中传输距离遥远、时延大、高误码率、功率受限、链路间歇中断以及信道非对称 等特点,基于星际互联网提出高效可靠的文件传输策略成为研究热点。
[0003] 深空文件传输策略主要有2个研究方向:(1)改进TCP协议使之适应深空通信环 境,如TP-Planet等;(2)针对深空环境的特点专门制定的深空文件传输策略,诸如空间数 据系统咨询委员会(Consultative Committee for Space Data Systems, CCSDS)提出文 件传输协议(CCSDS File Delivery Protocol, CFDP)和延时容忍网络(Delay Tolerant Networks,DTN)中的文件传输策略等。基于TCP协议的改进包括压缩头部降低开销、增大发 送窗口提高链路利用率、修改定时器减少不必要的重传、采用NACK或SNACK减少重传、采用 新的初始状态算法尽快占用链路资源以及采用新的拥塞控制机制提高有效吞吐量等。针对 深空环境专门制定的文件传输策略采用不依赖反馈的发送机制,并减少发送双方之间的信 令交互,以充分利用宝贵的链路资源。
[0004] 基于TCP协议的改进协议在深空网络中的性能明显好于TCP协议,但必须保证中 间节点的路由功能,并且对链路间断连接的解决仍存在问题。随着时延和误码率的进一步 增加,这些改进协议的性能迅速下降。DTN中的传输策略对时延不敏感,多采用存储一携 带一转发机制。深空通信节点要处理大量的数据,且存储空间有限,这样一来不但增大时 延,还有可能因为存储空间有限而丢失一些重要数据。目前,应用较多的是CCSDS提出的 CFDP协议。它不仅提供一般的文件传输功能,还具有文件管理功能。CFDP协议采用四种否 定确认方式来保证文件传输的可靠性:延迟否定确认、立即否定确认、提示否定确认和异步 否定确认。下面以延迟否定确认方式为例,简述CFDP协议的工作方式。步骤如下:
[0005] (1)发送方首先将包含文件信息和发送方标识的元协议数据单元(Metadata Protocol Data Unit, MPDU)发送给接收方,紧接着发送协议数据单元(Protocol Data Unit,PDU),直到发送完文件结束标识(End of File,EOF)后,发送方进入等待状态。
[0006] (2)接收方接收rou,接收到EOF后回复发送方ACK EOF确认信息,随后接收方统 计丢失的PDU信息,并将此信息包含在NAK信息中反馈给接收方并启动NAK定时器。发送 方收到NAK信息后释放已经确认的PDU所占的缓存,同时发送丢失的H)U。当NAK定时器到 时后,接收方再次对缓存中的PDU进行检测,如果仍未成功接收,那就重复上一过程,直到 包括MPDU在内的全部PDU都被成功接收为止。
[0007] (3)接收方发送结束符FIN以通知文件传输成功,发送方在接收到FIN后回复确 认信息ACK FIN,同时关闭链路连接并释放其缓存,接收方在收到ACK FIN后也关闭链路连 接,整个文件传输结束。
[0008] CFDP协议针对深空通信环境专门进行了优化,其不依赖反馈的发送机制、确认反 馈与否定确认反馈结合的反馈重传机制一方面为深空文件传输提供了可靠服务,另一方面 提高了链路利用率,缩短了文件传输时间。
[0009] 实际上,深空通信环境恶劣,传输距离遥远、时延大、误码率高。深空通信环境中经 常会达到1〇_ 7至1〇_4级别的误码率,这将导致一个文件可能需要多次重传才能成功接收。 对于CFDP协议延迟否定确认模式,在不同的丢包率下,传输1000个数据包,平均需要的重 传次数如下表所示:
[0010] 表1 CFDP的传输次数
[0011]
【权利要求】
1. 一种基于喷泉码的深空多文件传输方法,其特征在于,包括以下步骤: 101、 在发送端,发送方将待发送的文件进行分割,分割形成k个原始数据包,每个数据 包大小为L字节; 102、 发送方实时接收信道状态信息,并根据接收到的最新信道状态信息和数据包个 数,确定编码包个数K,对数据包进行喷泉编码,然后加上帧头信息,形成喷泉编码数据包, 跳转至步骤103 ;如果收到反馈信息,则更新当前的信道丢包率;如果需要重传丢失的数 据,则根据需要重传的数据包个数确定重传策略; 103、 发送方形成喷泉编码数据包后通过深空信道发送至接收方,每个文件发送结束后 发送文件结束标志EOF。跳转至步骤104,如果发送方还有文件需要传输,则转到步骤101 ; 104、 接收方接收到文件结束标志EOF后,反馈确认信息ACKEOF给发送方,然后接收方 对收到的喷泉编码数据包进行统计,计算丢包率,之后使用联合译码算法对收到的喷泉编 码数据包进行译码,统计丢失的数据包; 105、 如果步骤104中对收到的喷泉编码数据包译码成功,则反馈成功接收确认信息以 及信道丢包率给发送方;如果译码失败,则反馈丢失的数据包信息以及信道丢包率给发送 方并开启定时器,当定时器到时后,再次对文件进行译码并统计,如果还有丢包,则重复步 骤105,直至文件成功接收; 106、 如果所有文件均成功发送,则传输过程结束。
2. 根据权利要求1所述的基于喷泉码的深空多文件传输方法,其特征在于:步骤101 中对待发送的文件进行文件分割主要包括以下步骤: 步骤I. 1),首先确定待发送的文件数据分组中的最大长度Lmax和最小长度Lmin ; 步骤1. 2),根据公式
求得数据包个数的取值范围,Sfile表示待传输文件 的字节数; 步骤1. 3),选择满足步骤1. 2)中取值范围的最大整数并赋值给k,则数据包的长度
,当Sfile;〈k*L时,在最后一个数据分组中添加冗余数据,使Sfilej =k*L; 步骤1. 4),从第一个数据包起将k个数据包编号为1,2, 3、、、k,完成文件分割。
3. 根据权利要求1所述的基于喷泉码的深空多文件传输方法,其特征在于:步骤102 中确定编码包个数K的具体步骤如下: 步骤2. 1),根据公式
确定链路此时的丢包率,其中,P1为最近一次 的丢包率,P2为上次反馈的丢包率,:V为可调节参数,取值范围是[〇,1]; 步骤2. 2),根据公式_
计算出需要的编码冗余,其中e '为在系统允许的喷泉码 译码失败概率下,接收端译码所需要达到的编码冗余度值; 步骤2. 3),根据公式
计算出所需要的编码包数量; 当收到接收方反馈的信道丢包率后,在接下来的文件发送或重传过程中可以直接使用 最新的丢包率,不必经过步骤2.1)的计算过程。
4. 根据权利要求1所述的基于喷泉码的深空多文件传输方法,其特征在于:步骤102 中,当有重传数据时,采用如下方法确定重传策略: 步骤2. 1),当重传数据包的个数N小于200时,将每个数据包传输M次,同时确保每个 数据包丢失的概率小于1〇_3,利用公式
求得每个数据包需要重传的次数; 步骤2. 1 ),当重传数据包的个数N大于2000时,采用喷泉码编码保护,设置喷泉码译码 失败概率为1(T5,并依此算出所需重传的编码包数; 步骤2. 3),其余情况,按照如下方法编码发送需要重发的数据包: 步骤2. 3. 1),首先发送需要重传的数据包; 步骤2. 3. 2),采用喷泉码编码,根据度分布函数选择度数,并按顺序依次循环选择数据 包,当每个数据包均被选择3次后,停止编码并发送至接收方。
5. 根据权利要求1所述的基于喷泉码的深空多文件传输方法,其特征在于:步骤102 中的喷泉数据包包括源ID、目的ID、d个原始数据包序号、度数、文件序号及编码包。
6. 根据权利要求1所述的基于喷泉码的深空多文件传输方法,其特征在于:步骤103 的数据发送过程如下: 步骤3. 1),首先发送包含源文件名称、本次文件信息、本次需要传输的文件个数信息的 元协议数据单元MPDU给接收方,其中本次文件信息包括文件大小、数据包个数、编码包个 数; 步骤3. 2),依次发送K个喷泉数据包,发送成功之后,发送文件结束标志EOF; 步骤3. 3),如果还有待传输文件,则不必等待反馈确认,直接转到步骤101,对下一个 待传输文件进行处理;如果收到反馈信息,则更新丢包率,并且释放已经正确接收的数据 包,同时转到步骤102 ; 在上述步骤中,当同时出现有文件需要发送和重传丢失的数据时,首先重传丢失的数 据;但是在待传输文件的喷泉数据包的发送过程中收到反馈信息时,则当本次传输文件的 文件结束标志EOF发送之后,再处理反馈信息。
7. 根据权利要求6所述的基于喷泉码的深空多文件传输方法,其特征在于:在步骤104 中,计算丢包率的步骤如下所示: 步骤4. 1),根据收到的元协议数据单元MPDU,得知本次文件传输的喷泉数据包个数K; 步骤4. 2),统计收到的喷泉数据包个数K',则可根据公式
得到当前链路的丢 包率; 在步骤104中,所采用的联合译码算法步骤如下: 步骤4. 1),首先采用置信传播译码算法对收到的编码包进行译码; 步骤4. 2),如果置信传播算法译码成功,则此次数据传输成功;如果译码失败,则采用 高斯消元译码算法继续进行译码。
【文档编号】H04L1/18GK104243096SQ201410467925
【公开日】2014年12月24日 申请日期:2014年9月15日 优先权日:2014年9月15日
【发明者】赵辉, 方高峰, 王汝言, 王琴, 张鸿, 梁花 申请人:重庆邮电大学