CN103684695B - 一种数据传输方法和系统 - Google Patents
一种数据传输方法和系统 Download PDFInfo
- Publication number
- CN103684695B CN103684695B CN201310722230.4A CN201310722230A CN103684695B CN 103684695 B CN103684695 B CN 103684695B CN 201310722230 A CN201310722230 A CN 201310722230A CN 103684695 B CN103684695 B CN 103684695B
- Authority
- CN
- China
- Prior art keywords
- coding bag
- bag
- packet loss
- coding
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 55
- 230000000875 corresponding Effects 0.000 claims abstract description 30
- 239000012141 concentrate Substances 0.000 claims description 15
- 238000000034 method Methods 0.000 claims description 8
- 239000000203 mixture Substances 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 7
- 238000004364 calculation method Methods 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009114 investigational therapy Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
一种数据传输方法和系统,包括:源节点统计上次数据传输中连续丢失的数据包数量,构建一个丢包事件集,并分别计算每个丢包事件的丢包率;源节点针对每个丢包事件以及丢包率,将原始数据包划分成若干个数据块,并对每个数据块单独进行编码,然后将每个丢包事件对应的所有数据块单独生成的编码包构成一个编码包集,最后将所有丢包事件对应的编码包集构成一个多层编码包总集;源节点将原始数据包和多层编码包总集中所有编码包集所包含的编码包传输给目的节点;目的节点将本次数据传输中丢失的数据包进行恢复。本发明属于网络通信技术领域,在远距离高速网络传输中,能在保证通信效率的同时,还能有效减少节点设备的计算量和数据包的平均到达时延。
Description
技术领域
本发明涉及一种数据传输方法和系统,属于网络通信技术领域。
背景技术
因为光纤老化,错误的路由配置以及交换竞争等因素,在远距离高速网络的数据传输过程中存在一定的丢包。由于远距离高速网络中的往返时延(RTT)较长,使得自动重传请求机制效率低下。
喷泉算法(即LT码)作为一种无速率码,非常适用于RTT较大并且存在丢包的网络。有关于喷泉算法的具体介绍可以参见国际会议论文集:In Proceeding of the ACMSymposium on Foundations of Computer Science上的发表论文:“LT Codes”(作者:LubyM.LT Codes[C],会议地点:Vancouver:CA,发表时间:November 2002)。显然,在远距离高速网络传输中使用喷泉算法可以提高通信效率,但由于源节点和目的节点分别需要进行编、解码计算,因此不但增加了节点设备的计算量,同时还导致原始数据包的平均到达时延变长。
因此,在远距离高速网络传输中,如何能在保证通信效率的同时,还能减少节点设备的计算量和数据包的平均到达时延,仍是一个值得深入研究的技术问题。
发明内容
有鉴于此,本发明的目的是提供一种数据传输方法和系统,在远距离高速网络传输中,能在保证通信效率的同时,还能有效减少节点设备的计算量和数据包的平均到达时延。
为了达到上述目的,本发明提供了一种数据传输方法,包括有:
步骤一、源节点统计目的节点在上一次数据传输中所反馈的连续丢失的数据包数量,构建一个丢包事件集V:{v1,v2,...,vs},其中v1、v2、...、vs分别是上一次数据传输中连续丢失1、2、...、s个数据包所对应的丢包事件,s是上一次数据传输中连续丢失数据包数量的最大值,并分别计算每个丢包事件vi对应的丢包率ri,i是区间[1,s]范围内的一个整数;
步骤二、源节点针对每个丢包事件以及对应的丢包率,将本次数据传输的原始数据包划分成若干个数据块,并对每个数据块单独进行编码从而生成编码包,然后将每个丢包事件对应的所有数据块单独生成的编码包构成一个编码包集,最后将所有丢包事件对应的编码包集构成一个多层编码包总集CP:{cp1,cp2,...,cps},其中,cp1、cp2、...、cps分别是丢包事件v1、v2、...、vs对应的编码包集;
步骤三、源节点将原始数据包和多层编码包总集中所有编码包集所包含的编码包传输给目的节点;
步骤四、目的节点根据编码包内容,将本次数据传输中丢失的数据包进行恢复,并将本次数据传输中连续丢失的数据包数量反馈给源节点,
步骤二进一步包括有:
步骤21、根据丢包事件vi的连续丢失数据包数量i以及丢包率ri,计算丢包事件vi对应的编码包集cpi的码长ki;
步骤22、顺序将原始数据包中的所有数据包平均划分成个数据块,所述k是原始数据包的码长;
步骤23、逐一从个数据块中提取每个数据块,然后从每个数据块中随机抽取出d个数据包,最后将所述d个数据包按位异或生成一个编码包,所述d是编码包的度数;
步骤24、将步骤23中生成的所有编码包构成丢包事件vi对应的编码包集cpi。
为了达到上述目的,本发明还提供了一种数据传输系统,包括有:
数据传输装置,用于统计本次数据传输的目的节点在上一次数据传输中所反馈的连续丢失的数据包数量,构建一个丢包事件集V:{v1,v2,...,vs},其中v1、v2、...、vs分别是上一次数据传输中连续丢失1、2、...、s个数据包所对应的丢包事件,s是上一次数据传输中连续丢失数据包数量的最大值,并分别计算每个丢包事件vi对应的丢包率ri,i是区间[1,s]范围内的一个整数,再针对每个丢包事件以及对应的丢包率,将本次数据传输的原始数据包划分成若干个数据块,并对每个数据块单独进行编码从而生成编码包,然后将每个丢包事件对应的所有数据块单独生成的编码包构成一个编码包集,同时将所有丢包事件对应的编码包集构成一个多层编码包总集CP:{cp1,cp2,...,cps},其中,cp1、cp2、...、cps分别是丢包事件v1、v2、...、vs对应的编码包集,最后将原始数据包和多层编码包总集中所有编码包集所包含的编码包传输给目的节点;
数据接收装置,用于根据本次数据传输的源节点所发送来的编码包内容,将本次数据传输中丢失的数据包进行恢复,并将本次数据传输中连续丢失的数据包数量反馈给源节点,
所述数据传输装置包括有:
编码包集构建单元,用于根据丢包事件vi的连续丢失数据包数量i以及丢包率ri,计算丢包事件vi对应的编码包集cpi的码长ki,然后顺序将原始数据包中的所有数据包平均划分成个数据块,所述k是原始数据包的码长,并逐一从个数据块中提取每个数据块,再从每个数据块中随机抽取出d个数据包,然后将所述d个数据包按位异或生成一个编码包,其中d是编码包的度数,最后将丢包事件vi对应的所有数据块生成的编码包构成丢包事件vi对应的编码包集cpi。
与现有技术相比,本发明的有益效果是:由于远距离高速网络中丢包率较小,故直接传输原始数据包效率更高,然后基于反馈信息生成的编码包能以较小的冗余比例可靠的恢复出少量丢失的原始数据包;引入多层编码包总集可以保证丢失的原始数据包能在尽可能小的码长内被成功译码,首先通过反馈信息分别统计出随机丢包和突发丢包的丢包率,然后针对不同的丢包类型,采用多层编码包总集进行处理,多层编码包总集中的每一个编码包集采用独立的编码空间来生成编码包用于恢复对应丢失的原始数据包,从而大大减少了节点设备的计算量和数据包的平均到达时延。
附图说明
图1是本发明一种数据传输方法的流程图。
图2是图1步骤二的具体操作流程图。
图3是图1步骤三的具体操作流程图。
图4是本发明一种数据传输系统的组成结构示意图。
图5是数据传输装置的组成结构示意图。
图6是数据编码包发送单元的组成结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
如图1所示,本发明一种数据传输方法,包括有:
步骤一、源节点统计目的节点在上一次数据传输中所反馈的连续丢失的数据包数量,构建一个丢包事件集V:{v1,v2,...,vs},其中v1、v2、...、vs分别是上一次数据传输中连续丢失1、2、...、s个数据包所对应的丢包事件,s是上一次数据传输中连续丢失数据包数量的最大值,并分别计算每个丢包事件vi对应的丢包率ri,i是区间[1,s]范围内的一个整数;
例如,在上一次数据传输中,如果存在有连续丢失1个数据包、2个数据包、5个数据包的情况,则所构建的丢包事件集V:{v1,v2,v5};
步骤二、源节点针对每个丢包事件以及对应的丢包率,将本次数据传输的原始数据包划分成若干个数据块,并对每个数据块单独进行编码从而生成编码包,然后将每个丢包事件对应的所有数据块单独生成的编码包构成一个编码包集,最后将所有丢包事件对应的编码包集构成一个多层编码包总集CP:{cp1,cp2,...,cps},其中,cp1、cp2、...、cps分别是丢包事件v1、v2、...、vs对应的编码包集;
构建多层编码包总集,可以保证丢失的原始数据包在尽可能小的码长内被成功译码,首先通过上一次数据传输中所反馈的连续丢失的数据包数量分别统计出随机丢包和突发丢包的丢包率,然后针对不同的丢包事件,采用分层的喷泉算法分别进行处理,每一层采用独立的编码空间生成编码包用于恢复该层丢失的原始包,保证得到较为满意的平均时延;
步骤三、源节点将原始数据包和多层编码包总集中所有编码包集所包含的编码包传输给目的节点;
步骤四、目的节点根据编码包内容,将本次数据传输中丢失的数据包进行恢复,并将本次数据传输中连续丢失的数据包数量反馈给源节点。
如图2所示,图1步骤二中,针对丢包事件vi以及对应的丢包率ri,将本次数据传输的原始数据包划分成若干个数据块,并对每个数据块单独进行编码,然后将丢包事件vi对应的所有数据块单独生成的编码包构成一个编码包集,进一步包括有:
步骤21、根据丢包事件vi的连续丢失数据包数量i以及丢包率ri,计算丢包事件vi对应的编码包集cpi的码长ki;
步骤22、顺序将原始数据包中的所有数据包平均划分成个数据块,所述k是原始数据包的码长(即原始数据包所包含的数据包数量);
步骤23、逐一从个数据块中提取每个数据块,然后从每个数据块中随机抽取出d个数据包,最后将所述d个数据包按位异或生成一个编码包,其中d是编码包的度数;
步骤24、将步骤23中生成的所有编码包构成丢包事件vi对应的编码包集cpi。
步骤21中,通过远距离高速网络进行数据传输时,随机丢包和突发丢包事件同时存在。为了尽快的恢复随机丢包,传输过程中码长应尽可能的小;为了以尽可能小的冗余比例恢复突发丢包,传输过程中码长应尽可能的大。针对不同的丢包事件构建不同的编码包集进行处理,由于本次数据传输的原始数据包的码长是k,那么针对丢包事件vi,可以将原始数据包划分成个数据块。为了保证单个丢失包尽可能早的被恢复,突发丢包以最大的概率被恢复,因此合理的选择ki是非常重要的。ki的计算公式可以如下:其中,ρ是丢包事件vi发生的次数大于1的概率,其值可以根据业务实际需要而定,当允许的原始数据包到达时延越大,则ρ的值可以越大。
例如:对于丢包事件集V:{v1,v2,v5},多层编码包总集CP:{cp1,cp2,cp5},本次数据传输的原始数据包的码长k=1000,r1=0.0025,k1=250,r2=0.0015,k2=500,r3=0.001,k3=1000,这样,对于丢包事件v1来说,原始数据包被划分成4个数据块;对于丢包事件v2来说,原始数据包被划分成2个数据块;对于丢包事件v3来说,原始数据包被划分成1个数据块。
如图3所示,图1步骤三中,为了进一步降低数据包的平均到达延迟率,还可以将编码包穿插在原始数据包中间发送给目的节点,也就是每发送原始数据包中的个数据包后就发送一个编码包,其中k是原始数据包的码长,m是多层编码包总集中所有编码包集所包含的编码包数量之和,进一步包含有:
步骤31、根据所有丢包事件对应的丢包率和编码包集的码长,计算多层编码包总集中每个编码包集所包含的编码包数量,其中,每个编码包集所包含的编码包数量的计算公式如下:mi是编码包集cpi所包含的编码包数量,ki是丢包事件vi对应的编码包集cpi的码长,δ是指定的译码失败概率,其值可以根据业务实际需要而定,当原始数据包中的数据越重要,则δ的值越小;
步骤32、按原始数据包中所有数据包的排列次序,顺序从原始数据包中选取个未发送的数据包,并将所述个数据包发送给目的节点;
步骤33、按照多层编码包总集中所有编码包集所包含的编码包数量从大到小的顺序,对所有编码包集(即cp1,cp2,...,cps)进行排序;
如果其中两个编码包集所包含的编码包数量相同,则根据两个编码包集中最近一次编码包的发送时间进行排序,即将最近一次编码包的发送时间在先的编码包集排在前面,将发送时间在后的编码包集排在前面;
步骤34、从排序后的所有编码包集中挑选出排在最前的一个编码包集;
步骤35、判断所述编码包集的码长是否大于或等于编码包的度数d、且所包含的编码包数量大于1?如果是,则继续步骤36;如果否,则继续从排序后的所有编码包集中挑选出排在其下一位的编码包集,并转向步骤35;
步骤36、从所述编码包集中顺序挑选出一个还未发送的编码包,并将所述编码包发送给目的节点;
步骤37、将所述编码包集所包含的编码包数量减1,然后转向步骤32。
值得一提的是,编码包的度数d还可以根据上一次数据传输的丢包率来对本次数据传输中d的值进行动态调整,从而提高计算效率,d的计算过程如下:
根据喷泉算法,在1到k×r之间随机选择一个整数作为编码包的度数d,其中k是原始数据包的码长,r是上一次数据传输的丢包率,r的值是所有丢包事件vi的丢包率ri之和,然后根据上一次数据传输的丢包率r,对编码包的度数d的值进行调整:其中,μ(d)是喷泉算法中对于编码包度数d的鲁棒孤子分布值,是根据丢包率放大后的编码包度数,是对的值取整。μ(d)值的具体计算过程可以具体参考国际会议论文集:In Proceeding of the ACM Symposium on Foundations of Computer Science上的发表论文:“LT Codes”(作者:Luby M.LT Codes[C],会议地点:Vancouver:CA,发表时间:November 2002)。
所述步骤四中,目的节点可以使用喷泉算法中的一些通用的解码算法(例如置信、最大似然或高斯消元等解码算法),将本次数据传输中丢失的数据包进行恢复,不在此赘述。
如图4所示,本发明一种数据传输系统,包括有:
数据传输装置,用于统计本次数据传输的目的节点在上一次数据传输中所反馈的连续丢失的数据包数量,构建一个丢包事件集V:{v1,v2,...,vs},其中v1、v2、...、vs分别是上一次数据传输中连续丢失1、2、...、s个数据包所对应的丢包事件,s是上一次数据传输中连续丢失数据包数量的最大值,并分别计算每个丢包事件vi对应的丢包率ri,i是区间[1,s]范围内的一个整数,再针对每个丢包事件以及对应的丢包率,将本次数据传输的原始数据包划分成若干个数据块,并对每个数据块单独进行编码,然后将每个丢包事件对应的所有数据块单独生成的编码包构成一个编码包集,同时将所有丢包事件对应的编码包集构成一个多层编码包总集CP:{cp1,cp2,...,cps},其中,cp1、cp2、...、cps分别是丢包事件v1、v2、...、vs对应的编码包集,最后将原始数据包和多层编码包总集中所有编码包集所包含的编码包传输给目的节点;
数据接收装置,用于根据本次数据传输的源节点所发送来的编码包内容,将本次数据传输中丢失的数据包进行恢复,并将本次数据传输中连续丢失的数据包数量反馈给源节点。
如图5所示,所述数据传输装置还可以进一步包括有编码包集构建单元、编码包度数计算单元和数据编码包发送单元,其中:
编码包集构建单元,用于根据丢包事件vi的连续丢失数据包数量i以及丢包率ri,计算丢包事件vi对应的编码包集cpi的码长ki,然后顺序将原始数据包中的所有数据包平均划分成个数据块,所述k是原始数据包的码长,并逐一从个数据块中提取每个数据块,再从每个数据块中随机抽取出d个数据包,然后将所述d个数据包按位异或生成一个编码包,其中d是编码包的度数,最后将丢包事件vi对应的所有数据块生成的编码包构成丢包事件vi对应的编码包集cpi,所述ki的计算公式可以如下:ρ是丢包事件vi发生的次数大于1的概率,其值可以根据业务实际需要而定,当允许的原始数据包到达时延越大,则ρ的值可以越大;
编码包度数计算单元,用于根据喷泉算法,在1到k×r之间随机选择一个整数作为编码包的度数d,其中k是原始数据包的码长,r是上一次数据传输的丢包率,r的值是所有丢包事件vi的丢包率ri之和,然后根据上一次数据传输的丢包率r,对编码包的度数d的值进行调整:其中,μ(d)是喷泉算法中对于编码包度数d的鲁棒孤子分布值,是根据丢包率放大后的编码包度数,是对的值取整;
数据编码包发送单元,用于将多层编码包总集中所有编码包集包含的编码包穿插在原始数据包中间发送给目的节点,也就是每发送原始数据包中的个数据包后就发送一个编码包,其中k是原始数据包的码长,m是多层编码包总集中所有编码包集所包含的编码包数量之和。
如图6所示,所述数据编码包发送单元还可以进一步包括有编码包数量计算部件、数据包发送部件和编码包发送部件,其中:
编码包数量计算部件,用于根据所有丢包事件对应的丢包率和编码包集的码长,计算多层编码包总集中每个编码包集所包含的编码包数量,其中,每个编码包集所包含的编码包数量的计算公式如下:mi是编码包集cpi所包含的编码包数量,ki是丢包事件vi对应的编码包集cpi的码长,δ是指定的译码失败概率,其值可以根据业务实际需要而定,当原始数据包中的数据越重要,则δ的值越小;
数据包发送部件,用于按原始数据包中所有数据包的排列次序,顺序从原始数据包中选取个未发送的数据包,其中k是原始数据包的码长,m是多层编码包总集中所有编码包集所包含的编码包数量之和,然后将所述个数据包发送给目的节点,并通知编码包发送部件继续发送编码包给目的节点;
编码包发送部件,用于按照多层编码包总集中所有编码包集所包含的编码包数量从大到小的顺序,对所有编码包集进行排序,并顺序从排序后的所有编码包集中挑选出一个码长大于或等于编码包的度数d、且所包含的编码包数量大于1的编码包集,然后从挑选出的编码包集中顺序挑选出一个还未发送的编码包,将所述编码包发送给目的节点,最后将挑选出的编码包集所包含的编码包数量减1,并通知数据包发送部件继续发送数据包给目的节点。
申请人已经对本发明方法进行了多次实施仿真实验,以论证其可行性。从实验结果的数据分析来看,实施试验是成功的,本发明在提高了通信效率的同时,不但减少了发送端和接收端的编、解码计算量,还减少了原始数据包的平均到达时延。
上述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种数据传输方法,其特征在于,包括有:
步骤一、源节点统计目的节点在上一次数据传输中所反馈的连续丢失的数据包数量,构建一个丢包事件集V:{v1,v2,...,vs},其中v1、v2、...、vs分别是上一次数据传输中连续丢失1、2、...、s个数据包所对应的丢包事件,s是上一次数据传输中连续丢失数据包数量的最大值,并分别计算每个丢包事件vi对应的丢包率ri,i是区间[1,s]范围内的一个整数;
步骤二、源节点针对每个丢包事件以及对应的丢包率,将本次数据传输的原始数据包划分成若干个数据块,并对每个数据块单独进行编码从而生成编码包,然后将每个丢包事件对应的所有数据块单独生成的编码包构成一个编码包集,最后将所有丢包事件对应的编码包集构成一个多层编码包总集CP:{cp1,cp2,...,cps},其中,cp1、cp2、...、cps分别是丢包事件v1、v2、...、vs对应的编码包集;
步骤三、源节点将原始数据包和多层编码包总集中所有编码包集所包含的编码包传输给目的节点;
步骤四、目的节点根据编码包内容,将本次数据传输中丢失的数据包进行恢复,并将本次数据传输中连续丢失的数据包数量反馈给源节点,
步骤二进一步包括有:
步骤21、根据丢包事件vi的连续丢失数据包数量i以及丢包率ri,计算丢包事件vi对应的编码包集cpi的码长ki;
步骤22、顺序将原始数据包中的所有数据包平均划分成个数据块,所述k是原始数据包的码长;
步骤23、逐一从个数据块中提取每个数据块,然后从每个数据块中随机抽取出d个数据包,最后将所述d个数据包按位异或生成一个编码包,所述d是编码包的度数;
步骤24、将步骤23中生成的所有编码包构成丢包事件vi对应的编码包集cpi。
2.根据权利要求1所述的方法,其特征在于,丢包事件vi对应的编码包集cpi的码长ki的计算公式如下:其中,ρ是丢包事件vi发生的次数大于1的概率。
3.根据权利要求1所述的方法,其特征在于,步骤三还包括有:
将编码包穿插在原始数据包中间发送给目的节点,也就是每发送原始数据包中的个数据包后就发送一个编码包,其中k是原始数据包的码长,m是多层编码包总集中所有编码包集所包含的编码包数量之和。
4.根据权利要求3所述的方法,其特征在于,步骤三进一步包含有:
步骤31、根据所有丢包事件对应的丢包率和编码包集的码长,计算多层编码包总集中每个编码包集所包含的编码包数量,其中,每个编码包集所包含的编码包数量的计算公式如下:mi是编码包集cpi所包含的编码包数量,ki是丢包事件vi对应的编码包集cpi的码长,δ是指定的译码失败概率。
5.根据权利要求4所述的方法,其特征在于,步骤31后还包括有:
步骤32、按原始数据包中所有数据包的排列次序,顺序从原始数据包中选取个未发送的数据包,并将所述个数据包发送给目的节点;
步骤33、按照多层编码包总集中所有编码包集所包含的编码包数量从大到小的顺序,对所有编码包集进行排序;
步骤34、从排序后的所有编码包集中挑选出排在最前的一个编码包集;
步骤35、判断所述编码包集的码长是否大于或等于编码包的度数d、且所包含的编码包数量大于1,如果是,则继续步骤36;如果否,则继续从排序后的所有编码包集中挑选出排在其下一位的编码包集,并转向步骤35;
步骤36、从所述编码包集中顺序挑选出一个还未发送的编码包,并将所述编码包发送给目的节点;
步骤37、将所述编码包集所包含的编码包数量减1,然后转向步骤32。
6.根据权利要求1所述的方法,其特征在于,编码包的度数d的计算过程如下:
根据喷泉算法,在1到k×r之间随机选择一个整数作为编码包的度数d,其中k是原始数据包的码长,r是上一次数据传输的丢包率,r的值是所有丢包事件vi的丢包率ri之和,然后根据上一次数据传输的丢包率r,对编码包的度数d的值进行调整:其中,μ(d)是喷泉算法中对于编码包度数d的鲁棒孤子分布值,是根据丢包率放大后的编码包度数,是对的值取整。
7.一种数据传输系统,其特征在于,包括有:
数据传输装置,用于统计本次数据传输的目的节点在上一次数据传输中所反馈的连续丢失的数据包数量,构建一个丢包事件集V:{v1,v2,...,vs},其中v1、v2、...、vs分别是上一次数据传输中连续丢失1、2、...、s个数据包所对应的丢包事件,s是上一次数据传输中连续丢失数据包数量的最大值,并分别计算每个丢包事件vi对应的丢包率ri,i是区间[1,s]范围内的一个整数,再针对每个丢包事件以及对应的丢包率,将本次数据传输的原始数据包划分成若干个数据块,并对每个数据块单独进行编码从而生成编码包,然后将每个丢包事件对应的所有数据块单独生成的编码包构成一个编码包集,同时将所有丢包事件对应的编码包集构成一个多层编码包总集CP:{cp1,cp2,...,cps},其中,cp1、cp2、...、cps分别是丢包事件v1、v2、...、vs对应的编码包集,最后将原始数据包和多层编码包总集中所有编码包集所包含的编码包传输给目的节点;
数据接收装置,用于根据本次数据传输的源节点所发送来的编码包内容,将本次数据传输中丢失的数据包进行恢复,并将本次数据传输中连续丢失的数据包数量反馈给源节点,
所述数据传输装置包括有:
编码包集构建单元,用于根据丢包事件vi的连续丢失数据包数量i以及丢包率ri,计算丢包事件vi对应的编码包集cpi的码长ki,然后顺序将原始数据包中的所有数据包平均划分成个数据块,所述k是原始数据包的码长,并逐一从个数据块中提取每个数据块,再从每个数据块中随机抽取出d个数据包,然后将所述d个数据包按位异或生成一个编码包,其中d是编码包的度数,最后将丢包事件vi对应的所有数据块生成的编码包构成丢包事件vi对应的编码包集cpi。
8.根据权利要求7所述的系统,其特征在于,丢包事件vi对应的编码包集cpi的码长ki的计算公式如下:ρ是丢包事件vi发生的次数大于1的概率。
9.根据权利要求7所述的系统,其特征在于,所述数据传输装置包括有:
编码包度数计算单元,用于根据喷泉算法,在1到k×r之间随机选择一个整数作为编码包的度数d,其中k是原始数据包的码长,r是上一次数据传输的丢包率,r的值是所有丢包事件vi的丢包率ri之和,然后根据上一次数据传输的丢包率r,对编码包的度数d的值进行调整:其中,μ(d)是喷泉算法中对于编码包度数d的鲁棒孤子分布值,是根据丢包率放大后的编码包度数,是对的值取整。
10.根据权利要求7所述的系统,其特征在于,所述数据传输装置包括有:
数据编码包发送单元,用于将多层编码包总集中所有编码包集包含的编码包穿插在原始数据包中间发送给目的节点,也就是每发送原始数据包中的个数据包后就发送一个编码包,其中k是原始数据包的码长,m是多层编码包总集中所有编码包集所包含的编码包数量之和。
11.根据权利要求10所述的系统,其特征在于,所述数据编码包发送单元包括有:
编码包数量计算部件,用于根据所有丢包事件对应的丢包率和编码包集的码长,计算多层编码包总集中每个编码包集所包含的编码包数量,其中,每个编码包集所包含的编码包数量的计算公式如下:mi是编码包集cpi所包含的编码包数量,ki是丢包事件vi对应的编码包集cpi的码长,δ是指定的译码失败概率。
12.根据权利要求11所述的系统,其特征在于,所述数据编码包发送单元还包括有:
数据包发送部件,用于按原始数据包中所有数据包的排列次序,顺序从原始数据包中选取个未发送的数据包,其中k是原始数据包的码长,m是多层编码包总集中所有编码包集所包含的编码包数量之和,然后将所述个数据包发送给目的节点,并通知编码包发送部件继续发送编码包给目的节点;
编码包发送部件,用于按照多层编码包总集中所有编码包集所包含的编码包数量从大到小的顺序,对所有编码包集进行排序,并顺序从排序后的所有编码包集中挑选出一个码长大于或等于编码包的度数d、且所包含的编码包数量大于1的编码包集,然后从挑选出的编码包集中顺序挑选出一个还未发送的编码包,将所述编码包发送给目的节点,最后将挑选出的编码包集所包含的编码包数量减1,并通知数据包发送部件继续发送数据包给目的节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310722230.4A CN103684695B (zh) | 2013-12-24 | 一种数据传输方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310722230.4A CN103684695B (zh) | 2013-12-24 | 一种数据传输方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103684695A CN103684695A (zh) | 2014-03-26 |
CN103684695B true CN103684695B (zh) | 2016-11-30 |
Family
ID=
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030951A (zh) * | 2007-02-08 | 2007-09-05 | 华为技术有限公司 | 一种丢包补偿方法及装置 |
CN101714915A (zh) * | 2009-11-02 | 2010-05-26 | 清华大学 | 一种数据重传方法及系统 |
CN102025717A (zh) * | 2010-09-10 | 2011-04-20 | 香港城市大学深圳研究院 | 一种传输多媒体数据的方法 |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030951A (zh) * | 2007-02-08 | 2007-09-05 | 华为技术有限公司 | 一种丢包补偿方法及装置 |
CN101714915A (zh) * | 2009-11-02 | 2010-05-26 | 清华大学 | 一种数据重传方法及系统 |
CN102025717A (zh) * | 2010-09-10 | 2011-04-20 | 香港城市大学深圳研究院 | 一种传输多媒体数据的方法 |
Non-Patent Citations (1)
Title |
---|
《BLOCK DATA TRANSFER PROTOCOL FOR COMMUNICATION OVER HIGH-SPEED LONG-DISTANCE NETWORKS》;Zhang Lei等;《Information and Communications Technology 2013, National Doctoral Academic Forum on,IET》;20130821;第1-5页 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104243096B (zh) | 一种基于喷泉码的深空多文件传输方法 | |
CN101714915B (zh) | 一种数据重传方法及系统 | |
CN104836748B (zh) | 拥塞控制比特率算法 | |
KR101933465B1 (ko) | 이동 통신 시스템에서 패킷 송수신 장치 및 방법 | |
US6609223B1 (en) | Method for packet-level fec encoding, in which on a source packet-by-source packet basis, the error correction contributions of a source packet to a plurality of wildcard packets are computed, and the source packet is transmitted thereafter | |
US20170230139A1 (en) | Device and method for transmitting/receiving a packet in communication system | |
US9136983B2 (en) | Streaming and buffering using variable FEC overhead and protection periods | |
CN101350699B (zh) | 一种基于增量喷泉的信息分发方法 | |
JP6284549B2 (ja) | マルチパスストリーミングのためのfecベースの信頼性のある転送制御プロトコル | |
CN102497248B (zh) | 基于网络编码的数据重传方法 | |
CN101867453B (zh) | 一种rtp抗丢包的方法 | |
CN101662455A (zh) | 数据传输的方法和装置 | |
CN102025717A (zh) | 一种传输多媒体数据的方法 | |
Altman et al. | Queueing analysis of simple FEC schemes for IP telephony | |
CN106162374A (zh) | 一种低复杂度的帧内编码帧鲁棒传输方法及系统 | |
CN107257270A (zh) | 基于混合自动重传请求的数据传输方法及系统 | |
CN109041154A (zh) | 深空通信中基于随机线性网络编码的接触图路由算法 | |
CN104104727B (zh) | 一种基于Raptor码的大文件传输方法 | |
CN105393481B (zh) | 信息处理装置和信息处理方法 | |
CN104539387A (zh) | 一种水声传感器网络的逐跳可靠传输控制方法 | |
CN105635058A (zh) | 一种无协议栈模式下针对tcp的中间人处理方法 | |
CN107209713A (zh) | 按需文件修复的方法和系统 | |
JP5600774B1 (ja) | データ伝送装置及び方法 | |
CN102546096B (zh) | 一种基于不等错误保护的实时多播自适应优化方法 | |
CN112422235B (zh) | 一种基于冗余算法的网络丢包恢复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161130 Termination date: 20181224 |