《一种基于喷泉码的深空多文件传输方法.pdf》由会员分享,可在线阅读,更多相关《一种基于喷泉码的深空多文件传输方法.pdf(16页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104243096 A (43)申请公布日 2014.12.24 CN 104243096 A (21)申请号 201410467925.7 (22)申请日 2014.09.15 H04L 1/00(2006.01) H04L 1/16(2006.01) H04L 1/18(2006.01) (71)申请人 重庆邮电大学 地址 400065 重庆市南岸区黄桷垭崇文路 2 号 (72)发明人 赵辉 方高峰 王汝言 王琴 张鸿 梁花 (74)专利代理机构 重庆市恒信知识产权代理有 限公司 50102 代理人 刘小红 (54) 发明名称 一种基于喷泉码的深空多文件传输方法 。
2、(57) 摘要 本发明公开了一种基于喷泉码的深空多文件 传输方法, 充分利用喷泉码的无码率特性, 充分利 用前向信道, 减少反向信道上的数据量, 提高链路 利用率, 降低时延。本发明根据最新的丢包率信 息, 计算所需的编码冗余, 提高一次传输的成功率 并有效控制冗余 ; 在接收方采用联合译码算法, 充分利用编码信息, 降低计算复杂度并提高译码 成功率 ; 在重传时, 根据不同的丢包情况, 采取不 同的保护策略, 减少重传次数 ; 采用多文件联合 传输策略, 不等待接收方反馈信息, 直接对待传输 文件进行处理, 充分利用链路资源以及降低时延 ; 在 CFDP 的基础上, 将编码包作为数据域的内容。
3、发 送, 保证了良好的兼容性和实用性。 本发明针对性 的解决了传输时延巨大、 链路时变以及信道非对 称的问题, 并有效控制冗余, 减少传输次数, 基本 实现了深空文件高效可靠传输的目标。 (51)Int.Cl. 权利要求书 2 页 说明书 9 页 附图 4 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书9页 附图4页 (10)申请公布号 CN 104243096 A CN 104243096 A 1/2 页 2 1. 一种基于喷泉码的深空多文件传输方法, 其特征在于, 包括以下步骤 : 101、 在发送端, 发送方将待发送的文件进行分割, 分割形成 k 。
4、个原始数据包, 每个数据 包大小为 L 字节 ; 102、 发送方实时接收信道状态信息, 并根据接收到的最新信道状态信息和数据包个 数, 确定编码包个数 K, 对数据包进行喷泉编码, 然后加上帧头信息, 形成喷泉编码数据包, 跳转至步骤 103 ; 如果收到反馈信息, 则更新当前的信道丢包率 ; 如果需要重传丢失的数 据, 则根据需要重传的数据包个数确定重传策略 ; 103、 发送方形成喷泉编码数据包后通过深空信道发送至接收方, 每个文件发送结束后 发送文件结束标志 EOF。跳转至步骤 104, 如果发送方还有文件需要传输, 则转到步骤 101 ; 104、 接收方接收到文件结束标志EOF后,。
5、 反馈确认信息ACK EOF给发送方, 然后接收方 对收到的喷泉编码数据包进行统计, 计算丢包率, 之后使用联合译码算法对收到的喷泉编 码数据包进行译码, 统计丢失的数据包 ; 105、 如果步骤 104 中对收到的喷泉编码数据包译码成功, 则反馈成功接收确认信息以 及信道丢包率给发送方 ; 如果译码失败, 则反馈丢失的数据包信息以及信道丢包率给发送 方并开启定时器, 当定时器到时后, 再次对文件进行译码并统计, 如果还有丢包, 则重复步 骤 105, 直至文件成功接收 ; 106、 如果所有文件均成功发送, 则传输过程结束。 2. 根据权利要求 1 所述的基于喷泉码的深空多文件传输方法, 其。
6、特征在于 : 步骤 101 中对待发送的文件进行文件分割主要包括以下步骤 : 步骤 1.1), 首先确定待发送的文件数据分组中的最大长度 Lmax和最小长度 Lmin; 步骤 1.2), 根据公式求得数据包个数的取值范围, S fi le表示待传输文件 的字节数 ; 步骤 1.3), 选择满足步骤 1.2) 中取值范围的最大整数并赋值给 k, 则数据包的长度 当 S fi leP2时, 小于 0.5, 建议值为 0.2, 当 P1P2, 取值大于 0.5, 建议值为 0.8。 0077 步骤2.2), 根据公式计算出需要的编码冗余, 其中为在系统允许的喷 泉码译码失败概率下, 接收端译码所需要。
7、达到的编码冗余 ; 0078 步骤 2.3), 根据公式 K k*(1+) 计算出所需要的编码包数量。 0079 当收到接收方反馈的信道丢包率后, 在接下来的文件发送或重传过程中可以直接 使用最新的丢包率, 不必经过步骤 2.1) 的计算过程。 0080 如图 2 所示, 步骤 2 中, 当有重传数据时, 采用如下方法确定重传策略 : 0081 步骤 2.1), 当重传数据包的个数 N 小于 200 时, 将每个数据包传输 M 次, 同时确 保每个数据包丢失的概率小于 10-3, 利用公式求得每个数据包需要重传的次 数 ; 0082 步骤2.2), 重传数据包的个数N大于2000时, 采用喷泉。
8、码编码保护, 设置喷泉码译 说 明 书 CN 104243096 A 9 7/9 页 10 码失败概率为 10-5, 并依此算出所需重传的编码包数 ; 0083 步骤 2.3), 其余情况, 按照如下方法编码发送需要重发的数据包 : 0084 步骤 2.3.1), 首先发送需要重传的数据包 ; 0085 步骤 2.3.2), 采用喷泉码编码, 根据度分布函数选择度数, 但是按顺序依次循环选 择数据包, 当每个数据包均被选择 3 次后, 停止编码并发送至接收方。 0086 如图3所示, 步骤2中的喷泉数据包格式包括源ID、 目的ID、 d个原始数据包序号、 度数、 文件序号、 喷泉码编码包。 在。
9、帧头中将第六字段保留字段设置为 “喷泉码标识” , 当 “喷 泉码标识” 为 “0” 时, 为普通传输模式 ; 当为 “1” 时, 为喷泉码传输模式。 0087 在数据域中, 当为喷泉码传输模式时,“偏移” 字段将改为 “度” 字段, 指示该包由几 个数据包编码而成, 其后跟随构成该包的原始数据包的序号, 然后是编码包数据。 0088 如图 4 所示, 步骤 3 的数据发送过程如下 : 0089 步骤 3.1), 首先发送包含源文件名称、 本次文件信息 ( 包括文件大小、 数据包个 数、 编码包个数 )、 本次需要传输的文件个数等信息的 MPDU ; 0090 步骤 3.2), 依次发送 K 。
10、个喷泉数据包, 发送成功之后, 发送 EOF ; 0091 步骤 3.3), 如果还有待传输文件, 则不必等待反馈确认, 直接转到步骤 1, 对下一 个待传输文件进行处理 ; 如果收到反馈信息, 则更新丢包率, 并且释放已经正确接收的数据 包, 同时转到步骤 2。 0092 在上述步骤中, 当同时出现有文件需要发送和重传丢失的数据时, 优先重传丢失 的数据 ; 但是在待传输文件的喷泉数据包发送的过程中收到反馈信息时, 则当本次文件传 输的 EOF 发送之后, 再处理反馈信息。 0093 在步骤 4 中, 计算丢包率的步骤如下所示 : 0094 步骤 4.1), 根据收到的 MPDU, 得知本次。
11、文件传输的喷泉数据包个数 K ; 0095 步骤 4.2), 统计收到的喷泉数据包个数 K, 则可根据公式得到当前链路 的丢包率。 0096 如图 5 所示, 在步骤 4 中, 所采用的联合译码算法步骤如下 : 0097 步骤 4.1), 首先采用置信传播 (Belief Propagation, BP) 译码算法对收到的编码 包进行译码 ; 0098 步骤 4.2), 如果 BP 算法译码成功, 则此次数据传输成功 ; 如果译码失败, 则采用高 斯消元 (Gaussian Elimination,GE) 算法进行译码。 0099 在接收方, 收到EOF后即开始生成编码矩阵H(行数为编码包的数。
12、目K, 列数为数 据包的数目 k) 并开始译码。首先采用 BP 译码算法, 查找编码包中度为 1 的编码包, 形成译 码波动集。显然, 译码波动集中的编码包与数据包一一对应, 可以直接译出。之后在迭代的 每一步, 从译码波动集中取出一个数据包, 将它和所有与其具有连接关系的编码包进行异 或运算, 结果取代原编码包的值, 相关编码包的度数减 1。然后将该数据包从译码波动集中 删掉, 查找编码包中度为 1 的编码包, 如果有则将其加入译码波动集。重复上述步骤, 直至 译码波动集为空。 0100 在译码过程中, 如果所有数据包均被译出则译码成功, 否则译码失败。BP 算法译 码复杂度较低, 能够译出。
13、绝大部分的数据包。但实际上, BP 译码算法是一种次优译码算法, 说 明 书 CN 104243096 A 10 8/9 页 11 在译码波动集为空时即停止译码, 浪费了一定的编码信息, 不利于文件的高效可靠传输。 此 时, 开始准备采用 GE 算法译码。对编码矩阵 H 进行更改, 得到未译出的数据包和未释放的 编码包之间的编码矩阵 H ( 行数为编码包的数目 K, 列数为数据包的数目 k )。译码 过程相当于求解线性方程 : 0101 H *X N (1) 0102 其中, X为未译出的数据包信息向量, 大小为 k 1, N为接收方未释放的编 码包信息向量, 大小为 K 1。然后依次按照以下。
14、步骤变化矩阵 : 0103 步骤 A), 将矩阵 H扩展为含编码包信息向量 N的增广矩阵 H, H H / N ; 0104 步骤 B), 然后利用矩阵初等行变换将此增广矩阵 H的矩阵 H转换成单位矩阵 I, 此时 H I/N ; 0105 步骤C), 若此单位矩阵满秩, 则数据包信息向量XN。 如果单位矩阵不满秩, 则译码失败, 仍然有一小部分数据包没有成功接收, 需要反馈未译出的数据包信息。 0106 在步骤 6 中, 译码结束关闭链路的过程如下 : 0107 步骤 6.1), 接收方发送结束符 FIN 以通知文件传输成功。发送方已完成所有文件 的成功传输且没有新文件需要传输。在接收到 F。
15、IN 后回复确认信息 ACKFIN, 同时关闭链路 连接并释放缓存 ; 0108 步骤 6.2), 接收方在收到 ACK FIN 后也关闭链路连接, 文件传输结束。 0109 综上所述, 如图 6 所示, 本发明中接收方的处理方法流程如下 : 0110 步骤 1), 当接收方接收到 MPDU 后, 则准备接收数据 ; 0111 步骤 2), 接收方接收 PDU, 当收到 EOF 后, 就反馈发送方一个确认信息 ACK EOF, 之 后接收方统计接收到的喷泉数据包信息, 计算丢包率, 并对编码包进行译码 ; 如果没有接收 到 EOF, 则继续接收数据包 ; 0112 步骤 3), 如果译码成功,。
16、 则反馈成功信息和丢包率, 并转到下一步 ; 否则, 反馈丢 包信息和丢包率, 等待继续接收重传数据 ; 0113 步骤 4), 检查是否收到关闭链路的通知。如果收到, 则本次文件传输过程结束 ; 否 则继续等待接收数据。 0114 下面, 就本发明的具体实施给出实例。 假设发送方需要传输三个文件, 文件的大小 分别为 5MB, 10MB, 8MB。 0115 首先, 有文件需要传送, 发送方将确定文件分包的最大长度和最小长度, 为兼顾文 件传输策略的效率和链路丢包率, 设定Lmax2KB, Lmin1KB。 然后根据公式 计算得到 2560 k 5120, 选择 k 为 5120, 则根据公。
17、式计算得到 L 1KB。 0116 之后是计算当前链路的丢包率。假设前两次反馈的丢包率分别为 P1 0.04, P2 0.06, 则 取值为 0.8, 根据公式 P (1-)P1+P2计算得出此时信道的丢包率估值为 0.056。假设系统允许的喷泉码译码失败概率为 0.0005, 所需要的编码冗余 为 0.06。 说 明 书 CN 104243096 A 11 9/9 页 12 根据公式得到所需编码冗余为 0.123。则根据公式 K k*(1+) 可得所需要的编 码包大约为 5750。 0117 上述参数计算与设定完成之后, 发送方先将包含源文件名称、 本次文件信息 ( 包 括文件大小 5MB、。
18、 数据包个数 5120 个、 编码包个数 5750 个 )、 需要传输的文件个数 3 个等信 息的MPDU发送到接收方, 通知接收方开始接收数据。 然后发送方开始对第一个文件的5120 个数据包进行编码, 生成 5750 个编码包。将编码包与帧头信息以及编码信息组装成喷泉数 据包并发送到接收方。 发送完成后, 发送方发送EOF, 通知接收方第一个文件传送结束, 可以 开始译码。然后, 发送方不必等待接收方的反馈, 开始对第二个文件执行相同的处理方法。 如果在第二个文件 EOF 发送之后, 依然没有收到接收方的反馈, 则继续对下一个需要传输 的文件进行处理。 0118 当接收方接收到 MPDU 。
19、时, 准备接收文件。收到 EOF 后, 首先反馈 ACK EOF。然后 接收方统计收到的喷泉数据包, 根据公式计算出当前新到的丢包率。紧接着将喷泉 数据包中的编码包取出来根据编码信息进行译码。如果译码成功, 则反馈文件成功信息和 丢包率 ; 否则反馈丢包信息和丢包率。 当收到下一个文件的喷泉数据包信息时, 重复以上步 骤。假设第一个文件有 2 个原始数据包未成功译出, 反馈的丢包率为 0.05。第二个文件有 30 个原始数据包未成功译出, 丢包率为 0.08。第三个文件正确接收, 丢包率为 0.03。 0119 发送方接收到接收方的反馈后, 如果此时正在发送下一个文件的喷泉数据包, 则 当本轮。
20、文件发送过后, 再处理反馈信息。否则, 立即更新丢包率并计算所需要的编码冗余, 调整编码包个数并编码发送。当反馈的是正确译码信息时, 则释放链路资源。否则根据丢 包数采取重传策略。如本例所示, 当收到第一个文件的反馈信息时, 根据公式 P (1-) P1+P2计算出丢包率为0.048。 由于丢失数据包为2个, 则根据公式可得M 3。所以将文件 1 丢失的 2 个数据包分别发送 3 次。当收到第 2 个文件的反馈时, 更新丢包 率, 然后重传数据。首先将 30 个丢失的数据包发送到接收方。然后采用喷泉码编码, 依次 循环选择数据包进行编码, 直至所有的数据包均被选择 3 次为止, 将编码包和编码。
21、信息以 及帧头组成喷泉数据包, 然后发送到接收方。 0120 当发送方接收到接收方的成功译码消息时, 只需更新丢包率并释放相应缓存。如 果此时所有文件已经正确传输, 且没有新文件需要传输, 则发送方回复 ACK FIN, 同时关闭 链路并释放缓存。接收方在收到 ACK FIN 后也关闭链路连接, 整个文件传输过程结束。 0121 以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。 在 阅读了本发明的记载的内容之后, 技术人员可以对本发明作各种改动或修改, 这些等效变 化和修饰同样落入本发明方法权利要求所限定的范围。 说 明 书 CN 104243096 A 12 1/4 页 13 图 1 图 2 说 明 书 附 图 CN 104243096 A 13 2/4 页 14 图 3 说 明 书 附 图 CN 104243096 A 14 3/4 页 15 图 4 说 明 书 附 图 CN 104243096 A 15 4/4 页 16 图 5 图 6 说 明 书 附 图 CN 104243096 A 16 。