一种数据包可靠传输方法

文档序号:7754083阅读:234来源:国知局
专利名称:一种数据包可靠传输方法
技术领域
本发明涉及网络数据传输领域,是一种对数据包丢失进行恢复的有效方法。尤其 适用于实时通信和单向通信中的数据包丢失恢复。
背景技术
随着计算机网络及其技术的迅速发展,网络环境在不断改善,然而数据包丢失问 题仍然是影响网络通信质量的最大因素之一。对于数据包丢失,主要有两种解决方法一种 是ARQ技术通过反馈信道,将丢失的数据段信息反馈给发送方,发送方重新发送丢失的数 据段;另一种是FEC技术通过对数据包分组添加冗余包,使得发送的数据包组具有一定的 丢包恢复能力。对传输时延敏感的业务或只有单向信道的应用场景中,采用FEC技术则是 一种有效且实用的选择。常见的FEC技术通常是基于奇偶校验码、RS码(里德-所罗门码)等线性分组码 的包编码方法。基于奇偶校验码的包编码,利用奇偶校验码的编码方法,产生一个冗余的监 督包,并添加在数据包后,构成一组编码包组,这种方法可以恢复包组内任意丢失的一个编 码包;类似的,基于RS码的包编码,利用RS码的编码方法,产生m个冗余的监督包,并添加 在数据包后,构成一组编码包组,这种方法可以恢复包组内任意丢失的m个编码包。经过研究和统计,Internet的丢包模式大部分丢包是一种随机丢包,少数丢包 表现为突发性的较长连续丢包,即少数丢包表现出较强相关性[6]。传统的基于线性分组码 的丢包恢复方案,虽然在处理分布均勻的随机丢包时可获得较好的效果,但是如果网络中 出现了突发的较多个密集丢包,无差别的对每个包组添加更多的冗余包,将极大增加网络 的负担。且每个包组内孤立的进行丢包恢复,使得部分包组的恢复能力过剩,部分包组的恢 复能力不足,无法动态的合理调度恢复资源。

发明内容
本发明提出了一种数据包可靠传输的方法,打破了线性分组码的包组间孤立地恢 复丢包的弊端,通过对RS码生成矩阵的重新设计,在包组间引入动态关联,通过后续包组 的到来选择性的扩展当前包组的丢包恢复能力。一种数据包可靠传输恢复方法,其特征在于,包含以下步骤(1)从RS码生成矩阵中,构造其一个缺失子矩阵作为包编码的生成矩阵,并以此 新生成矩阵产生当前数据包组的所有监督包;(2)将当前数据包组生成的所有监督包进行跨包组重新分配;(3)将分配后的编码包组进行包组内二次编码;(4)在接收端采用自适应丢包恢复,根据当前编码包组丢包多少的不同,自适应的 等待相应数量的后续关联包组,进行恢复。基于上述技术方案,采用的包编码的生成矩阵G,其特征在于设Ggxh为一个g行h列的RS码的系统生成矩阵,并将其表示成子矩阵形式
I表示单位阵,0表示零矩阵,Nin为一个包组的包组内监督包数目,N。ut为一个包 组的跨包组监督包数目,WkxNi/!为k行Nin列的包组内包组内子监督矩阵,Υ、Λ为N。ut行Nin 列的包组内子监督矩阵为k行r-Nin列的跨包组子监督矩阵,为Nout 行r-Nin列的跨包组子监督矩阵。g = k+N。ut,h = k+N0Ut+r, k为包组中数据包的个数,r为 这些数据包通过包编码生成监督包的个数。构造一个k行k+r列的Ggxh的缺失子矩阵,并 将其作为监督包生成的生成矩阵 基于上述技术方案,将当前包组的数据包生成的所有监督包进行跨包组分配,并 形成新的编码包组,其特征在于设当前包组为第U个包组,当前包组所有监督包为Pu = [pua PWPuJ。通过这 种监督包的分配方法,将当前编码包组分成三部分数据包部分du,包组内监督部分Vu,^和 跨包组监督部*vu,。ut。
其中,du, i为第U个包组中的第i个数据包,Su, i为第u个包组中第i个跨包组监
督包,Su,,表达式如下 /-1 其中1为相关联的包组数。基于上述技术方案,将编码包组进行包组内二次编码,其特征在于将Sua(i = 1, 2,-Nout)与pu,i(i = 1,2,-NJ建立下面的监督关系 其中,i = 1,2,..UiU Ggxh中的子矩阵。然后用Ii替换包组中的Pu
i,组成新的Vu, in,并形成最终的编码包组,且满足下面的方程关系。Du · Gin = Ru
其中,
基于上述技术方案,采用自适应的包解码方法,其特征在于设队为当前编码包组的丢包数,假设与此包组相关联的前1-1个包组的数据包是 完整的,即没有丢失或已经顺利恢复丢包,且按照上述的包编码方法,每获得一个监督包, 就可以多恢复出一个丢包。(1)若N1 < Nin,则利用解线性方程组方法,不需要任何其他编码包组的协助,就能 够进行恢复丢包。(2)若Nin < N1 < Nin+N。ut,假设之前的1_1包组是完整的,即包组内没有丢包或者 已经恢复所有数据包,首先计算出Pa,b(a e {u-l-l,u-l, -,u-l},b e {1,2,…,m}),再 还原出隐藏在SiuiG = 1,2,-,Nout)中的N。ut个第u个包组的监督包

其中,i e {Nin+l,Nin+2,…,Nin+N。ut},I = i-Nin,为第u个包组的第i个监督包累 加在跨包组监督部分的位置下标。将还原出的监督包和包组内监督部分Vu,。ut联合起来,便 得到了 Nin+N。ut个第u个包组的监督包,相当于将当前包组生成矩阵Gin扩展了 N。ut列 其中炉―,是Ggxh中炉的前N。ut列组成的子矩阵。任取G'
列,
对这k维的列向量组,截取其前k行得到的方阵一定是Ggxh的一个缺失子方阵。此方阵的 列向量是线性无关的,于是这任取G' in的k列也是线性无关的,可以恢复当前包组中所有 的数据包。 (3)如果N1 > Nin+Nout,现有的恢复能力不能满足需求,则等待第u+1个包组的到 来。如果第u-1+2个包组到第u+1个包组这1个包组中,除第u个包组,都没有丢包,或者 通过包组内监督部分恢复出包组内全部数据包,进而还原出压缩在Su+1,i(i = 1,2, - ,Nout) 中的N。ut个第u个包组的监督包

其中,ie {Nin+N。ut+1,Nin+N。ut+2,…,Nin+2 · NouJ,I = i_Nin_N。ut。这样便总共得 到了第u个包组的Nin+2 个监督包,与步骤二中,可以得到新的增加了 N。ut列的当前包 组生成矩阵。于是,如果N1SNin+ ^-,则可以恢复第u个包组中的所有数据包。通过第 u个包组后面的1-1个包组的到来,至多可还原出第u个包组的(1-1) · Nout个额外的监督 包,这样至多可以恢复出第u个包组中的Nin+1 · Nout个丢包。(4)、若队> Nin+1 ,则当前包组丢失情况超出恢复上限,放弃恢复当前包组的 丢包。
基于上述方案,在自适应包解码过程中,当N1 > Nin+Nout时,可以设置包解码的最 大等待包组数M,即为了恢复第u个包组的丢包,已经等待了 M个包组,如果仍然没有得到足 够的第u个包组的监督包,则不再继续等待后续的包组,放弃对第u个包组的恢复。本发明一种数据包可靠传输方法,具有以下的优点1、打破了线性分组码的包组间孤立地恢复丢包的弊端,通过对生成矩阵的重新设 计,在包组间引入了丢包恢复的动态关联,通过后续包组的到来选择性的扩展当前包组的 丢包恢复能力。2、相对于传统的基于RS码的方案,在相同冗余度下,明显提升恢复性能;在相当 的恢复能力下,提高了传输效率。3、能够自适应的针对当前包组丢包情况调整恢复能力和解码时延,从而提升系统 的整体性能。


图1为本发明的系统框图;图2为本发明的第u个编码包组的结构图;图3为本发明的第u个包组的监督包分配方式图;图4为本发明的第u个包组的监督包部分(包组内监督部分和跨包组监督部分) 的构成图;图5为本发明的接收端自适应包解码的流程图;图6为本发明的相同编码效率下,本发明和其他方法的丢包恢复性能比较图;图7为本发明的相当的丢包恢复性能下,本发明和其他方法的编码效率比较图。
具体实施例方式下面结合附图对本发明做详细说明。图1示例了本发明的系统框架,该系统包含了发送端和接收端两部分。发送端进 一步包括监督包生成模块,跨包组监督包分配模块和包组内二次编码模块。接收端进一步 包括自适应包解码模块。在详细说明本发明前,首先做一些声明和定义。设将k个数据包划为一组,并生成n-k = r个监督包。将数据包和监督包都称为 编码包,从而形成η个包组成的编码包组。每个编码包都有s个比特,且有一个包序列号与 之对应,用来发现哪些编码包在传输中丢失了。由于本发明采用RS码作为编码方案,所以 文中所述的运算都是指GF域(有限域)的运算。设当前编码包组为第u包组。Cliui为第u 个包组的第i个数据包,i = 1,2,· . . k,Cliui又可以表示为s维的列向量Wuaa CLi^du, i, J,其中du, ia为第u个包组的第i个数据包的第1个比特,其余依次类推。pu, i表示第u 个包组的第i个监督包,i = l,2,...r, pu, i又可以表示为s维的列向量[P1^1 PnfPu, “],其中P1^1为第u个包组的第i个数据包的第1个比特,其余依次类推。发送模块步骤101 监督包生成。设Ggxh为一个g行h列的RS码的系统生成矩阵,并将其表示成子矩阵形式Ggxfl=[ig wg<g+r)y
8
I表示单位阵,0表示零矩阵。构造一个k行k+r列的Ggxh的缺失子矩阵,并将其 作为监督包生成的生成矩阵 通过每个包组的k个数据包的RS码编码运算,得到这个包组的r 4监督包 Pu = du · Wkxi
(1)
其中,pu为监督包行向量[pua puypu,J,du*数据包行向量[(Iua du,2发送模块步骤102 跨包组监督包分配。将发送步骤1中生成的监督包分成两部分其中一部分保存当前编码包组内的包 组内监督区(vu, in)中,使当前编码包组在不需要任何其他包组的协助下,具有一定的丢包 恢复能力;另一部分累加到当前包组和后续关联的1-1个包组的跨包组监督区(vu,。ut)中, 使当前包组在必要的时候可以等待后续关联包组的到来,从而提升当前包组的丢包恢复能 力。图2示例了本发明的第u个编码包组的结构图,通过这种监督包的分配方法,实际 上将编码包组分成三部分数据包部分du,包组内监督部分Vu, in和跨包组监督部分V, 其中,Nin为一个包组的包组内监督包数目,Su,i为第u个包组中第i个跨包组监督 包,N。ut为一个包组的跨包组监督包数目,Su, i表达式如下(2) 其中1为相关联的包组数。图3示例了第U个包组的监督包分配,图4示例了第u个包组监督包部分(包组 内监督部分和跨包组监督部分)的构成。为简单起见,两图中的编码选取较小的参数r = 3, Nint = LNnllt = 1,1 = 2。发送模块步骤103 包组内二次编码。为了使Su, i在丢失的情况下也能够在当前包组恢复,将Su, i(i = 1,2, Pu,i(i = l,2,…Nin)建立下面的监督关系 其中,i = 1,2,"UiU Ggxh中的子矩阵。然后用Ru,i替换包组中的Pu, i,组成新的Vu, in。图5示例了本发明的接收端自适应包解码的流程图,其中N1表示当前包组的丢包 数,k的初值为1,为了图示简洁起见,省略的部分操作会在下文阐述。每接收一个编码包组后,通过包序号来判断哪些编码包发生丢失,并计算此包组 丢包数N1,并假设与此包组相关联的前1-1个包组的数据包是完整的,即没有丢失或者已经 顺利恢复丢包。如果N1 = 0或者仅仅是非数据包发生了丢失,则直接提取出当前包组的数 据包部分du ;否则,采用下面的策略进行恢复。在步骤201,判断N1是否小于Nin+1 · N。ut,如果判断为假,则进入步骤202。在步骤202,由于当前包组丢失情况超出恢复上限,放弃恢复本包组的丢包。如果步骤201的判断为真,则进入步骤203。在步骤203,判断N1是否小于Nin,如果判断为真,则进入步骤204。在步骤204,利用下面的矩阵形式线性方程组来恢复任意丢失小于Nin个编码包 (包括数据包和跨包组监督包):Du · Gin = Ru其中 及 如果步骤203的判断为假,则进入步骤205。在步骤205,利用式2,还原出隐藏在Su, Ji = 1,2, -,Nout)中的N。ut个第u个包 组的监督包 其中,i = Nin+1, Nin+2,…,Nin+N。ut,I = i_Nin,为第u个包组的第i个监督包累 加在跨包组监督部分的位置下标。又根据假设,前1-1包组的数据包是完整的,所以式中的 凡一,, +州。 ,+/通过式1是可求出的。然后进入步骤206。在步骤206,判断N1是否小于Nin+N。ut,如果判断为真,则进入步骤207。在步骤207,将在步骤4中还原出的监督包和包组内监督部分Vu,_联合起来,便得 到了 Nin+N。ut个当前包组的监督包,这相当于将步骤3中的Gin扩展了 N。ut列 其中,其中炉<^。 ,是Ggxh中的前N。ut列组成的子矩阵。于是和步骤3
中类似的,利用下面的方程组可以恢复出任意丢失的小于Nin+N。ut个编码包Du-G' in = Ru如果步骤206的判断为假,则进入步骤208。在步骤208,等待第u+1个包组的到来。如果第u-1+2个包组到第u+Ι个包组这1个包组中,除第u个包组,都没有丢失数据包,或者通过步骤3恢复出全部数据包,则与步骤
4相似的,可还原出压缩在Su+1,i(i = 1,2, -",N0J中的N。ut个第u个包组的监督包 其中,i= Nin+N。ut+1,Nin+N。ut+2,…,Nin+2 · Nout, I = i_Nin_N。ut。这样便总共得到 了第u个包组的Nin+2 · Nout个监督包。并使k值加1 (k的初值为1),然后进入步骤8。在步骤209,判断N1是否小于Nin+kXN。ut,如果判断为真,则进入步骤9。在步骤210,利用在步骤7中新获得的N。ut个监督包,便得到了 Nin+kXN。ut个当前 包组的监督包,这相当于将步骤3中的Gin扩展了 kXN。ut列,于是和步骤6类似的,可以恢 复出第u个包组的任意丢失小于Nin+kXN。ut个编码包。如果步骤209中的判断为假,则回到步骤208,继续等待后续编码包组的到来,和 步骤208进行相同的操作,提取出第u个包组的监督包,之后进入步骤209判断是否收集 到足够的监督包,否则继续循环,直到收集到足够的监督包,并最终恢复出第u包组的数据 包。件能分新对本文发明提出的一种数据包可靠传输的方法进行了仿真。仿真条件选取Gilbert模型作为仿真的网络模型,从而更接近丢包具有相关性 的实际网络状况,以便更有效的示例本发明的实际应用性能,其中平均丢包率从0.01步进 到0. 1,条件丢包率为0. 3,突发丢包长度的期望为1. 427。将本发明的方案记为cras,传统 的基于RS编码和奇偶校验编码的包编码方案分别记为Cks和Crc。仿真一使上述的三种方案具有相同编码效率,比较其丢包恢复性能。三种方案的 编码参数分别为 Ccks (15,2,1,3),Cks (15,12)和 Cpc(5,4),其中 Ccks (15,2,1,3)表示 η = 15, Nin = 2,Nout = 1,1 = 3。显然三种方案的编码效率均为4/5。从图6中可看出本发明Ccks 方案的丢包恢复性能要明显好于其他两种方案。仿真二 使不同的方案具有相当的丢包恢复性能,比较其编码效率。图7为 Cces(15,2,1,3)与Cks(15,11)的丢包恢复性能比较,可以看出两者在丢包率适中的条件下, 恢复性能比较接近。两种方法的传输效率参数如表1所示。从表1可以看出,在恢复性能 不损失的条件下,本文提出的算法可以很大程度提升传输效率。
权利要求
一种数据包可靠传输的方法,该方法包括以下步骤(1)利用RS码(里德-所罗门码)生成矩阵,构造其一个缺失子矩阵作为包编码的生成矩阵,并以此新生成矩阵产生当前数据包组的所有监督包;(2)将当前数据包组生成的所有监督包进行跨包组重新分配;(3)将分配后的编码包组进行包组内二次编码;(4)接收端采用自适应丢包恢复,根据当前编码包组丢包数目的不同,自适应的等待相应数量的后续关联包组,进行恢复。
2.根据权利要求1,采用的包编码的生成矩阵G,其特征在于设Ggxh为一个g行h列的RS码的系统生成矩阵,并将其表示成子矩阵形式.I O W'" Wout2k ^kxNou, rr kxNin ry kx(r-Nin)Λ)TY'"youtwNoulXk 1Noul 1 NoulXNln 1 Nmlx(r-N, )I表示单位阵,0表示零矩阵,Nin为一个包组的包组内监督包数目,N。ut为一个包组的 跨包组监督包数目,WkxNin为k行Nin列的包组内包组内子监督矩阵,YiU N。ut行Nin列 的包组内子监督矩阵,)为k行r-Nin列的跨包组子监督矩阵,F N0UlHi--Nln)^) Nout 对亍 r_Nin列的跨包组子监督矩阵。g = k+N。ut,h = k+N0Ut+r, k为包组中数据包的个数,r为这 些数据包通过包编码生成监督包的个数。构造一个k行k+r列的Ggxh的缺失子矩阵,并将 其作为监督包生成的生成矩阵G =J WinWout丄 k YY ^Nln yy k^r-Nln)[h U
3.根据权利要求1,将当前包组的数据包生成的所有监督包进行跨包组分配,并形成 新的编码包组,其特征在于设当前包组为第U个包组,当前包组所有监督包为Pu= [pua pu,^pu, J。通过这种监 督包的分配方法,将当前编码包组分成三部分数据包部分du,包组内监督部分Vu,in和跨包 组监督部分Vu,。ut。du = [dUjl du,,..du,k]Κι,in = Pu,I Pu,2 . · · Pu,Nhl ]—^u,2 ·.. ^u,Nou, _其中,Cliui为第u个包组中的第i个数据包,Suji为第u个包组中第i个跨包组监督包, Su, i表达式如下I-ISuJ = ^Pu-J,N, +jNM+i J=O其中1为相关联的包组数。
4.根据权利要求1,将编码包组进行包组内二次编码,其特征在于将Su,i(i = l,2,…N。ut)与pu,i(i = 1,2,…Nin)建立下面的监督关系ruj =Pu,,+Tyjy su,j7=1 .yNoll,,I yNoul,2 ·'■ yN0 Nia 其中,i = l,2,为GgXh中的子矩阵。然后用Ru, i替换包组中的pu, i,组 成新的Vu, in,并形成最终的编码包组,且满足下面的关系。
其中,战du
5.根据权利要求1,采用自适应的包解码方法,其特征在于设队为当前编码包组的丢包数,假设与此包组相关联的前1-1个包组的数据包是完整 的,即没有丢失或已经顺利恢复丢包,且按照上述的包编码方法,每获得一个监督包,就可 以多恢复出一个丢包。(1)若N1< Nin,则利用解线性方程组方法,不需要任何其他编码包组的协助,就能够进 行恢复丢包。(2)若Nin< N1 < Nin+N。ut,假设之前的1-1包组是完整的,即包组内没有丢包或者已经恢复所有数据包,首先计算出Pa,b(a e {u-l-l,u-l,…,u-l},be {1,2,出隐藏在SiuiG = 1,2,-,Nout)中的N。ut个第u个包组的监督包 1-1 其中,ie {Nin+l,Nin+2,…,Nin+N。ut},I = i-Nin,为第u个包组的第i个监督包累加在 跨包组监督部分的位置下标。将还原出的监督包和包组内监督部分Vu,。ut联合起来,便得到 了 Nin+N。ut个第u个包组的监督包,这相当于将当前包组生成矩阵Gin扩展了 N。ut列 其中妒“_。 ,是Ggxh中妒的前N。ut列组成的子矩阵。任取G' in的k列,对这 k维的列向量组,截取其前k行得到的方阵一定是Ggxh的一个缺失子方阵。此方阵的列向 量是线性无关的,于是这任取G' in的k列也是线性无关的,可以恢复当前包组中所有的数 据包。(3)如果现有的恢复能力不能满足需求,则等待第u+1个包组的到来。如 果第u-1+2个包组到第u+1个包组这1个包组中,除第u个包组,都没有丢包,或者通过包 组内监督部分恢复出包组内全部数据包,进而还原出压缩在Su+1,i(i = 1,2,…,Nout)中的 Nout个第u个包组的监督包 其中,ie {Nin+N。ut+l,Nin+N。ut+2,…,Nin+2 · N。ut},I = i_Nin_N。ut。这样便总共得到了 第u个包组的Nin+2 个监督包,与步骤二中,可以得到新的增加了 N-列的当前包组生 成矩阵。于是,如果N1SNin+ ^-,则可以恢复第u个包组中的所有数据包。通过第u个 包组后面的1-1个包组的到来,至多可还原出第u个包组的(1-1) · Nout个额外的监督包, 这样至多可以恢复出第u个包组中的Nin+1 · Nout个丢包。(4)、若队> Nin+1 · N。ut,则当前包组丢失情况超出恢复上限,放弃恢复当前包组的丢包。
6.根据权利要求5,在自适应包解码过程中,当N1 > Nin+Nout时,可以设置包解码的最大 等待包组数M,即为了恢复第u个包组的丢包,已经等待了 M个包组,如果仍然没有得到足够 的第u个包组的监督包,则不再继续等待后续的包组,放弃对第u个包组的恢复。
全文摘要
本发明提出了一种数据包可靠传输方法,利用包组联合的方式,既保持了传统的包组内独立恢复丢包的特点,又在包组间建立丢包恢复的关联。根据实际的丢包数目,能够自适应的等待后续包组到来,扩展当前包组的丢包恢复能力。因而,本发明相对于传统方案,能够在几乎不增加时延的条件下,明显提升丢包恢复性能,在丢包具有较强相关性的实际网络中具有更好的性能。
文档编号H04L1/00GK101882976SQ20101022557
公开日2010年11月10日 申请日期2010年7月14日 优先权日2010年7月14日
发明者于翠屏, 刘元安, 曹震, 林晓峰, 王坤明, 袁东明, 谢刚, 黎淑兰 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1