首页 / 专利库 / 信号处理 / 累积分布函数 / 基于纠错码的自适应丢包恢复方法、计算设备及存储介质

基于纠错码的自适应丢包恢复方法、计算设备及存储介质

阅读:423发布:2020-05-15

专利汇可以提供基于纠错码的自适应丢包恢复方法、计算设备及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 公开了基于纠错码的自适应丢包恢复方法、计算设备及存储介质,该方法包括如下步骤:A.构建数据传输的网络环境模型;所述网络环境模型包括网络模型、网络中的数据传输模型和传输时延模型,所述网络模型还包括接收端成功解析数据的概率;B.结合网络传输过程中的丢包恢复问题的目标函数及约束条件,通过基于里德-所罗 门 编码的启发式 算法 实时自适应调整数据传输的冗余率,以使接收端的数据传输时延最小;C.根据数据流的反馈数据包,采用网络状况探测算法对网络状况进行估计,以根据端到端之间的反馈信息对网络的状况进行快速探测。本发明可在网络环境发生变化时,快速准确的调整数据传输的冗余率,从而对数据传输的时延进行有效的降低。,下面是基于纠错码的自适应丢包恢复方法、计算设备及存储介质专利的具体信息内容。

1.一种基于纠错码的自适应丢包恢复方法,其特征在于包括如下步骤:
A.构建数据传输的网络环境模型;所述网络环境模型包括网络模型、网络中的数据传输模型和传输时延模型,所述网络模型还包括接收端成功解析数据的概率;
B.结合网络传输过程中的丢包恢复问题的目标函数及约束条件,通过基于里德-所罗编码的启发式算法实时自适应调整数据传输的冗余率,以使接收端的数据传输时延最小;
C.根据数据流的反馈数据包,采用网络状况探测算法对网络状况进行估计,以根据端到端之间的反馈信息对网络的状况进行快速探测。
2.根据权利要求1所述的基于纠错码的自适应丢包恢复方法,其特征在于:所述步骤A中的传输时延模型中包括发送时延和排队时延,并将传输过程中每个数据包是否丢失看作二项分布,使用二项分布的累积分布函数表示数据序列在接收端成功解析的概率;所述步骤B中的网络传输过程中的丢包恢复问题的目标函数以最小化数据传输时延为目标;所述约束条件包括约束划分数据的最大数量、约束冗余数据块的最大数量、约束每个数据块的长度、以及经过冗余过后数据序列在接收端成功解析的概率。
3.根据权利要求1所述的基于纠错码的自适应丢包恢复方法,其特征在于:所述步骤A中,在数据传输的网络环境的网络模型中:λi为i时刻端到端的网络丢包率,di为端到端的平均时延,Bi为发送端数据传输的可用带宽,ni表示进行数据编码前发送端积累的数据块数量,mi表示编码后发送端产生的冗余数据块数量;
所述数据传输模型中:在每一轮的数据传输中,发送端将冗余前等待发送的长度为ltotal的数据划分为ni个数据块,编码后产生mi个冗余数据块,将共(ni+mi)个数据块发送至接收端,传输的总数据量为发送端冗余后的数据的长度L。
4.根据权利要求3所述的基于纠错码的自适应丢包恢复方法,其特征在于:
所述传输时延模型中(ni+mi)个数据块的传输时延D为:
D=P(N≥ni)*(t+di)+(1-P(N≥ni))*(3*di+td)
其中接收端能够成功解析数据的概率P(N≥ni)为:
其中N为接收端接收到的数据块的数量,td为发送时延,t为数据的排队时延;di为端到端的数据块传输时延,λi为端到端的网络丢包率;
所述发送时延td为:
若带宽足以在一个时间单位将数据发出,所述平均每个数据块的排队时延t为:
若带宽不足以在一个时间单位将数据发出,所述平均每个数据块的排队时延t为:
其中L为发送端冗余后的数据的长度,T为数据充满冗余队列需要的时间。
5.根据权利要求2所述的基于纠错码的自适应丢包恢复方法,其特征在于:
所述步骤B中网络传输过程中的丢包恢复问题的目标函数为:
min.P(N≥ni)*(t+di)+(1-P(N≥ni))*(3*di+td)
所述约束条件包括:
划分数据块的数量不超过nmax:
nmax≥n≥1
冗余数据块的数量不超过mmax:
mmax≥m≥0
每个数据块的长度不超过mtu-lenHeader:
经过冗余过后,数据序列在接收端成功解析的概率
其中m和n均为整数,lenHeader为接收端解码所需要的附加冗余信息的长度,ltotal为发送端冗余前数据的长度,nmax为预设的ni的最大值,通常可设为20,mmax为预设的mi的最大值,通常可设为20,mtu为网卡单个数据包的最大数据长度。
6.根据权利要求5所述的基于纠错码的自适应丢包恢复方法,其特征在于:所述步骤B中通过基于里德-所罗门编码的启发式算法实时自适应调整数据传输的冗余率包括如下步骤:
(31)根据当前网络中的数据到来速率,对于一个时间片内到达的数据,选取使得且 最小的数据块数量ni;
(32)测量或查询网络中端到端的数据传输时延di以及数据传输的丢包概率λi;若之前相同的端到端的传输时延及丢包概率已测量过,则采用之前相同端到端的时延及丢包概率,否则赋值di=50,赋值λi=0;
(33)根据步骤(31)中得到的数据块数量ni,若带宽足够大,取满足
的最小mi;若带宽有限制,则将目标函数中的二项分布的累积分布函数转化为正则化不完全贝塔函数形式来求解确定m′i使得目标函数取得最小值,其中m′i为使目标函数取得最小值时的m,同时赋值使得目标函数取得最小值的mi等于m′i近邻取整的数值;
(34)将步骤(31)获得的ni与步骤(33)获得的mi作为前向纠错的参数返回,对ni个数据块进行里德-所罗门编码生成ni+mi个数据块后进行发送。
7.根据权利要求2所述的基于纠错码的自适应丢包恢复方法,其特征在于:所述步骤C中根据数据流的反馈数据包采用网络状况探测算法对网络状况进行估计以根据端到端之间的反馈信息对网络的状况进行快速探测包括如下步骤:
(41)对于每个统计丢包率的估计网络状况的时间间隔δ,记录下该时间间隔中第一个到达的数据包的序号,作为这个时间间隔中的最小序号与最大序号的初始值,并根据后续数据包的序号更新时间间隔内的最大序号的值,并统计该时间间隔内的数据包总数;
(42)对于每个流经编码模块的数据流,初始假定数据流为不会发送重传的数据包,如新数据包的序号在最小序号和最大序号的范围之内,则判断为重传包,此时丢包数增加,且判断此时数据流为会发生重传的数据流,成功传输的数据包数量即是总数据包数量减去丢包数量;当数据流为不会发生重传的数据流时,接收端利用冗余信息头部将一段间隔内成功传输的数据包的数量发回给发送端;在时间间隔结束时,发送端将时间间隔内发送的总的数据包与成功传输的数据包的数量进行统计,计算得到链路的丢包率;
(43)冗余数据包头部中包含发送端的发送时戳,发送端通过交互的冗余数据包头部中的时戳来判断此时网络中的通信时延。
8.根据权利要求1所述的基于纠错码的自适应丢包恢复方法,其特征在于:所述启发式算法的时间复杂度为 其中ni为发送端数据块的数量,mi
为发送端冗余块的数量,ltotal为发送端冗余前数据的长度,lenHeader为冗余信息的长度。
9.一种计算设备,其特征在于包括:
处理器;以及
存储有计算机可执行指令的存储器,所述可执行指令在被处理器执行时实现如权利要求1~8中的任一权利要求所述方法的步骤。
10.一种存储介质,所述存储介质为存储一个或多个程序的计算机可读存储介质,其特征在于:
当所述一个或多个程序被计算设备执行时,所述计算设备实现如权利要求1~8中的任一权利要求所述方法的步骤。

说明书全文

基于纠错码的自适应丢包恢复方法、计算设备及存储介质

技术领域

[0001] 本发明涉及网络传输领域,具体涉及一种广域网中的数据传输纠错方法。

背景技术

[0002] 广域网(Wide Area Network,WAN),又被称为公网或外网,覆盖的范围广泛,能够为网络使用者提供远距离通信。随着互联网的不断发展,网络中的数据流量不断增多,用户对于数据流的稳定传输要求越来越高,广域网中承载的流量对于带宽,时延都提出了更高的要求。如虚拟现实(VR,Virtual Reality),增强现实(AR,Augmented Reality),语音识别(Speech Recognition),自然语言处理(NLP,Natural Language Processing),语言理解(LUIS,Language Understanding Intelligent Service)等应用。这些应用通常都包含复杂度较高的深度学习算法,运行一般需要网络满足高带宽和低延时的条件。除此之外,网络中越来越多的视频流量也需要网络满足高带宽和低延时的条件。
[0003] 但在使用广域网进行远距离数据传输时,数据传输过程中的链路无法保证一直可靠,同时,网络中的拥塞状况也在实时变化。这些特性导致广域网中的网络环境时常会发生波动,在网络产生波动时数据包很容易发生损坏或丢失。网络中的数据包由于发生损坏或者丢失导致重传时,会使得网络延迟上升,最终导致网络的有效传输速率受到严重影响。也就是说数据传输过程中,由于网络拥塞、无线网络信号干扰或者线路故障等原因,接收端接收到的数据可能产生延迟或者丢包的情况。因此,在广域网中,数据传输时的网络环境常常发生快速变化,如何有效减少网络传输中由于丢失数据包造成的重传以有效提升用户体验,如何在快速变化的网络环境中降低数据传输的延时成为了主要的问题。
[0004] 前向纠错技术是一种通过冗余数据在接收端直接恢复数据的方案,即是发送端在发送数据包的同时,发送一定数量的冗余数据,若接收端探测到损失数据,能够通过冗余数据恢复丢失的数据包。
[0005] 由于广域网的特点,传统的前向纠错技术无法满足低延时数据传输的需求:传统的前向纠错技术要求数据传输时以固定的冗余率发送冗余数据包,在端到端的传输环境较好时会带来较高的额外负载,对网络资源造成浪费,缺乏灵活性。
[0006] 网络传输过程中的自适应丢包恢复算法中,自适应的前向纠错技术能够根据当前网络状况选择更优的冗余数据量,在网络状况良好时不占用更多带宽,在网络状况较差时能够通过占用更少的带宽提升较多的传输效率。但自适应丢包恢复算法的设计并不是个简单的问题。由于广域网中的设备无法控制和更改,接收端与发送端能够获取到的信息通常较为有限;对发送的信息进行不同程度的冗余编码会导致不同的时延以及两端设备不同的工作负载;冗余率设置过高,会造成数据传输产生过多的冗余,进而导致浪费网络带宽,加重网络拥塞;冗余率设置过低,会造成数据传输成功率过低,进而导致网络中的数据包时延增加;由此可见这是一个值得研究并亟待解决的问题。

发明内容

[0007] 发明目的:本发明为了解决现有技术的不足,提供了一种基于纠错码的自适应丢包恢复方法,同时提供了一种计算设备及存储介质。
[0008] 技术方案:为解决上述技术问题,本发明提供的一种基于纠错码的自适应丢包恢复方法,其包括如下步骤:
[0009] A.构建数据传输的网络环境模型;所述网络环境模型包括网络模型、网络中的数据传输模型和传输时延模型,所述网络模型还包括接收端成功解析数据的概率;
[0010] B.结合网络传输过程中的丢包恢复问题的目标函数及约束条件,通过基于里德-所罗编码的启发式算法实时自适应调整数据传输的冗余率,以使接收端的数据传输时延最小;
[0011] C.根据数据流的反馈数据包,采用网络状况探测算法对网络状况进行估计,以根据端到端之间的反馈信息对网络的状况进行快速探测。
[0012] 优选的,上述基于纠错码的自适应丢包恢复方法还包括步骤D.计算启发式算法的时间复杂度。
[0013] 优选的,所述步骤A中的传输时延模型中包括发送时延和排队时延,并将传输过程中每个数据包是否丢失看作二项分布,使用二项分布的累积分布函数表示数据序列在接收端成功解析的概率;
[0014] 所述步骤B中的网络传输过程中的丢包恢复问题的目标函数以最小化数据传输时延为目标;所述约束条件包括约束划分数据的最大数量、约束冗余数据块的最大数量、约束每个数据块的长度、以及经过冗余过后数据序列在接收端成功解析的概率。
[0015] 优选的,所述步骤A中,在数据传输的网络环境的网络模型中:λi为i时刻端到端的网络丢包率,di为端到端的平均时延,Bi为发送端数据传输的可用带宽,ni表示进行数据编码前发送端积累的数据块数量,mi表示编码后发送端产生的冗余数据块数量;
[0016] 所述数据传输模型中:在每一轮的数据传输中,发送端将冗余前等待发送的长度为ltotal的数据划分为ni个数据块,编码后产生mi个冗余数据块,将共(ni+mi)个数据块发送至接收端,传输的总数据量为发送端冗余后的数据的长度L。
[0017] 其中数据传输的带宽Bi会因为重新路由或链路故障而发生变化,端到端的平均时延di会因为重新路由而发生变化。
[0018] 进一步优选的,所述传输时延模型中(ni+mi)个数据块的传输时延D为:
[0019] D=P(N≥ni)*(t+di)+(1-P(N≥ni))*(3*di+td)
[0020] 其中接收端能够成功解析数据的概率P(N≥ni)为:
[0021]
[0022] 其中N为接收端接收到的数据块的数量,td为发送时延,t为数据的排队时延;di为端到端的数据块传输时延,λi为端到端的网络丢包率;
[0023] 所述发送时延td为:
[0024]
[0025] 若带宽足以在一个时间单位将数据发出,所述平均每个数据块的排队时延t为:
[0026]
[0027] 若带宽不足以在一个时间单位将数据发出,所述平均每个数据块的排队时延t为:
[0028]
[0029] 其中L为发送端冗余后的数据的长度,T为数据充满冗余队列需要的时间。
[0030] 优选的,所述步骤B中网络传输过程中的丢包恢复问题的目标函数为:
[0031] min.P(N≥ni)*(t+di)+(1-P(N≥ni))*(3*di+td)
[0032] 所述约束条件包括:
[0033] 划分数据块的数量不超过nmax:
[0034] nmax≥n≥1
[0035] 冗余数据块的数量不超过mmax:
[0036] mmax≥m≥0
[0037] 每个数据块的长度不超过mtu-lenHeader:
[0038]
[0039] 经过冗余过后,数据序列在接收端成功解析的概率
[0040]
[0041] 其中m和n均为整数,lenHeader为接收端解码所需要的附加冗余信息的长度,ltotal为发送端冗余前数据的长度,nmax为预设的ni的最大值,通常可设为20,mmax为预设的mi的最大值,通常可设为20,mtu为网卡单个数据包的最大数据长度。
[0042] 进一步优选的,所述步骤B中通过基于里德-所罗门编码的启发式算法实时自适应调整数据传输的冗余率包括如下步骤:
[0043] (31)根据当前网络中的数据到来速率,对于一个时间片内到达的数据,选取使得mtu-
[0044] 且 最小的数据块数量ni;
[0045] (32)测量或查询网络中端到端的数据传输时延di以及数据传输的丢包概率λi;若之前相同的端到端的传输时延及丢包概率已测量过,则采用之前相同端到端的时延及丢包概率,否则赋值di=50,赋值λi=0;
[0046] (33)根据步骤(31)中得到的数据块数量ni,若带宽足够大,取满足的最小mi;若带宽有限制,则将目标函数中的二项分布的累积分布函数转化为正则化不完全贝塔函数形式来求解确定m′i使得目标函数取得最小值,其中m′i为使目标函数取得最小值时的m,同时赋值使得目标函数取得最小值的mi等于m′i近邻取整的数值;
[0047] (34)将步骤(31)获得的ni与步骤(33)获得的mi作为前向纠错的参数返回,对ni个数据块进行里德-所罗门编码生成ni+mi个数据块后进行发送。
[0048] 进一步优选的,所述步骤C中根据数据流的反馈数据包采用网络状况探测算法对网络状况进行估计以根据端到端之间的反馈信息对网络的状况进行快速探测包括如下步骤:
[0049] (41)对于每个统计丢包率的估计网络状况的时间间隔δ,记录下该时间间隔中第一个到达的数据包的序号,作为这个时间间隔中的最小序号与最大序号的初始值,并根据后续数据包的序号更新时间间隔内的最大序号的值,并统计该时间间隔内的数据包总数;
[0050] (42)对于每个流经编码模块的数据流,初始假定数据流为不会发送重传的数据包,如新数据包的序号在最小序号和最大序号的范围之内,则判断为重传包,此时丢包数增加,且判断此时数据流为会发生重传的数据流,成功传输的数据包数量即是总数据包数量减去丢包数量;当数据流为不会发生重传的数据流时,接收端利用冗余信息头部将一段间隔内成功传输的数据包的数量发回给发送端;在时间间隔结束时,发送端将时间间隔内发送的总的数据包与成功传输的数据包的数量进行统计,计算得到链路的丢包率;
[0051] (43)冗余数据包头部中包含发送端的发送时戳,发送端通过交互的冗余数据包头部中的时戳来判断此时网络中的通信时延。
[0052] 优选的,所述启发式算法的时间复杂度为 其中ni为发送端数据块的数量,mi为发送端冗余块的数量,ltotal为发送端冗余前数据的长度,lenHeader为冗余信息的长度。
[0053] 本发明同时提供了一种计算设备,其包括:
[0054] 处理器;以及
[0055] 存储有计算机可执行指令的存储器,所述可执行指令在被处理器执行时实现如上所述任一方法的步骤。
[0056] 本发明同时提供了一种存储介质,所述存储介质为存储一个或多个程序的计算机可读存储介质,其中:
[0057] 当所述一个或多个程序被计算设备执行时,所述计算设备实现如上所述任一方法的步骤。
[0058] 有益效果:本发明基于广域网中波动的网络环境,通过以最小化数据传输时延为目标的自适应前向纠错方法,提供了一种基于纠错码的自适应丢包恢复方法。该方法通过构建广域网中的数据传输模型,结合网络传输过程中的丢包恢复问题的目标函数及约束条件,通过基于里德-所罗门编码的启发式算法实时调整数据传输的冗余率,并根据端到端之间的反馈信息采用网络状况探测算法快速对网络的状况进行探测,以在网络环境发生变化时,快速准确的调整数据传输的更为合适的冗余率,使接收端的数据传输时延最小。
[0059] 本发明中对网络状况进行估计的网络状况探测算法,根据数据流是否发送重传数据包,采用不同的估计方法,具有较好的灵敏度。
[0060] 通过时间复杂度分析和仿真对比分析可见,本发明可以在网络中丢包率不断变化的环境下对数据传输的时延进行有效的降低。附图说明
[0061] 图1是本实施例提供的一种基于纠错码的自适应丢包恢复方法的示意框图
[0062] 图2是本实施例提供的启发式算法中一个运用前向纠错进行数据准确性保证的数据传输过程的不失一般性的举例说明;
[0063] 图3是在丢包率不断变化的网络环境中应用与不应用本实施例提供的自适应丢包恢复方法的仿真实验图。

具体实施方式

[0064] 下面结合实施例对本发明做进一步的详细说明,本实施列对本发明不构成限定。
[0065] 为了降低用户访问数据的响应时间,尽量减少数据传输过程中的数据包重传,本发明提供的一种基于纠错码的自适应丢包恢复方法,首先构建广域网中数据传输的网络环境的网络模型、数据传输模型和传输时延模型;进而结合网络传输过程中的丢包恢复问题的目标函数及约束条件,通过基于里德-所罗门编码(Reed-solomon codes)的启发式算法实时自适应调整数据传输的冗余率,以使接收端的数据传输时延最小;并根据数据流的反馈数据包(也可以说是根据数据流是否发送重传数据包),采用网络状况探测算法对网络状况进行估计,以根据端到端之间的反馈信息对网络的状况进行快速探测,从而有效解决网络传输过程中的丢包问题,大幅提高广域网环境下的数据传输速率。本实施例中如图1所示具体包括如下若干步骤:
[0066] (1)对网络传输过程中的丢包恢复问题进行建模
[0067] 构建数据传输的网络环境模型;所述网络环境模型包括网络模型、网络中的数据传输模型和传输时延模型,所述网络模型还包括接收端成功解析数据的概率。
[0068] (2)对网络传输过程中的丢包恢复问题作出定义
[0069] 首先对问题进行描述,然后定义目标函数和各个约束条件。
[0070] (3)通过本实施例提供的基于里德-所罗门编码的启发式算法,实时自适应调整数据传输的冗余率,以使接收端的数据传输时延最小,在解决该问题上具有较好的性能。
[0071] (4)通过本实施例提供的网络状况估计算法对网络状况进行估计和快速探测[0072] 根据数据流是否发送重传数据包(也可以说是根据数据流的反馈数据包),采用网络状况探测算法对网络状况进行估计,以根据端到端之间的反馈信息对网络的状况进行快速探测。
[0073] (5)分析启发式算法的时间复杂度
[0074] 本文中所述网络状况估计算法也可称为网络状况探测算法。文中所述对网络状况进行估计,也可称为对网络的状况进行快速探测。文中所述发送端也可称为发送方,接收端也可称为接收方。文中所述接收端的恢复数据,也可称为解析数据。
[0075] 本实施例中,对网络传输过程中的丢包恢复问题进行建模包括:
[0076] (11)建立网络模型:使用λi表示i时刻端到端的网络丢包率;使用di表示端到端的平均时延,di可能会因为重新路由而发生变化;Bi为发送端数据传输的可用带宽,Bi可能会因为重新路由或者链路故障而发生变化,ni表示进行数据编码前发送端积累的数据块数量,即表示积累ni个数据块后进行数据编码;mi表示编码后发送端产生的冗余数据块数量,即表示编码后产生mi个冗余数据块。
[0077] (12)建立数据传输模型:在每一轮的数据传输中,发送端将冗余前等待发送的长度为ltotal的数据划分为ni个数据块,编码后产生mi个冗余数据块,将共(ni+mi)个数据块发送至接收端,传输的总数据量L为:
[0078]
[0079] 其中lenHeader为接收端解码所需要的附加信息的长度。
[0080] (13)建立传输时延模型:
[0081] 该传输时延模型中包括发送时延和排队时延。对于一轮数据而言,ni+mi个数据块的传输时延D为:
[0082] D=P(N≥ni)*(t+di)+(1-P(N≥ni))*(3*di+td)
[0083] 其中N为接收端接收到的数据块的数量。
[0084] 其中发送时延td为:
[0085]
[0086] 对于数据的排队时延t,即从接收端接收到数据块到发送数据块的时延,对于一个较长的数据流,假设数据到来的速率是均匀的,带宽足以在一个时间单位将数据发出(即td远小于T,通常td<0.05T可认为td远小于T),数据充满ni个数据块需要T的时间,则通过积分可得到平均每个数据块的排队时延t为:
[0087]
[0088] 若带宽不足以在一个时间单位将数据发出,则通过积分可得到平均每个数据块的排队时延为:
[0089]
[0090] 接收方若收到的数据块数量大于或等于ni个,则接收方能够在丢失任意数据块的情况下恢复数据。将传输过程中每个数据包是否丢失看做二项分布,使用二项分布的累积分布函数表示接收端成功解析数据的概率,则接收端能够成功恢复/解析数据的概率,也即数据序列在接收端成功解析的概率P(N≥ni)为:
[0091]
[0092] 文中所述接收端成功解析数据的概率,即数据序列在接收端成功解析的概率。
[0093] 下表列出了文中提到的各符号及其含义:
[0094]
[0095] 本实施例中,对网络传输过程中的丢包恢复问题作出定义的过程如下:
[0096] (21)描述问题:给定一个网络环境,包括网络当前的丢包概率λi,网络当前的数据传输时延di,网络当前的可用带宽Bi。本实施例中的网络传输过程中的丢包恢复问题的目标函数以最小化数据传输时延为目标,也即找到一个确定冗余率的方案,使得用户端的平均数据延时达到最小。
[0097] (22)定义目标函数:
[0098] min.P(N≥ni)*(t+di)+(1-P(N≥ni))*(3*di+td)
[0099] (23)定义约束条件:
[0100] 包括约束划分数据块的最大数量、约束冗余数据块的最大数量、约束每个数据块的长度、以及经过冗余过后数据序列在接收端成功解析的概率,本实施例中的约束条件具体包括:
[0101] 划分数据块的数量不超过nmax:
[0102] nmax≥n≥1
[0103] 冗余数据块的数量不超过mmax:
[0104] mmax≥m≥0
[0105] 每个数据块的长度不超过mtu-lenHeader:
[0106]
[0107] 经过冗余过后,数据成功发送的概率符合:
[0108]
[0109] 也即经过冗余过后,数据序列在接收端成功解析的概率
[0110] 其中m和n均为整数,lenHeader为接收端解码所需要的附加冗余信息的长度,ltotal为发送端冗余前数据的长度,nmax为预设的ni的最大值,通常可设为20,mmax为预设的mi的最大值,通常可设为20,mtu为网卡单个数据包的最大数据长度。当上述问题无可行解时将mi设定为mmax。
[0111] 基于上述网络环境模型,结合网络传输过程中的丢包恢复问题的目标函数及约束条件,通过基于里德-所罗门编码的启发式算法实时自适应调整数据传输的冗余率,以使接收端的数据传输时延最小。其中,本实施例提供的通过基于里德-所罗门编码的启发式算法实时调整数据传输的冗余率的过程包括如下步骤:
[0112] (31)根据当前网络中的数据到来速率,对于一个时间片内到达的数据,选取使得且 最小的数据块数量ni。这样使得每个数据块尽量达到数据包的长度上限,能够减少冗余信息头部的比例,使得发送的数据中有效信息的比例最高。
[0113] (32)测量或查询网络中端到端的数据传输时延di以及数据传输的丢包概率λi。若之前相同的端到端的传输时延及丢包概率已经过测量,则采用之前相同端到端的时延及丢包概率进行接下来的计算,否则赋值di=50,赋值λi=0,即以di=50,λi=0进行后续计算。
[0114] (33)根据步骤(31)中计算得到的数据块数量ni,若带宽足够大(即td远小于1时),显然尽量多发冗余数据能够使得数据成功传输的概率接近于1,此时取满足的最小mi,这样可使得在保证数据尽量成功传输的情况下,发送的数据量尽量小,防止带宽过于浪费;在带宽有限制的情况下,将原优化目标即上述目标函数中的二项分布的累积分布函数用如下公式转化为正则化不完全贝塔函数形式:
[0115]
[0116] P(N>ni)=1-P(N≤ni)
[0117] 其中各参数定义与上文中相同。将整数规划问题的条件进行放松,并对优化目标(上述目标函数)进行求解,确定m′i使得目标函数取得最小值。其中m′i为使目标函数取得最小值时m。此时求得的m′i可能不是整数,在m′i近邻再确定一个整数解mi使得目标函数取得最小值,也即同时对使得目标函数取得最小值的mi赋值,使其等于m′i近邻取整的数值。
[0118] (34)将步骤(31)获得的ni与步骤(33)获得的mi作为前向纠错的参数进行返回,使用里德-所罗门编码的编码方式对ni个数据块编码,并将编码生成的ni+mi个数据块进行发送,也即对ni个数据块进行里德-所罗门编码生成ni+mi个数据块后进行发送。
[0119] 其中,本实施例中根据数据流的反馈数据包或数据流是否发送重传数据包,采用网络状况探测算法对网络状况进行估计以根据端到端之间的反馈信息对网络的状况进行快速探测具体包括如下步骤:
[0120] (41)对于每个统计丢包率的估计网络状况的时间间隔δ,记录下该时间间隔中第一个到达的数据包的序号,作为这个时间间隔中的最小序号与最大序号的初始值,并根据后续数据包的序号调整/更新时间间隔内的最大序号的值,并统计该时间间隔内的数据包总数。
[0121] (42)对于每个流经编码模块的数据流,初始假定数据流为不会发送重传的数据包,如果新数据包的序号在最小序号和最大序号的范围之内,则判断为重传包,此时丢包数增加(即丢包数加1),且判断此时数据流为会发生重传的数据流,成功传输的数据包数量即是总的数据包数量减去丢包数量;当数据流为不会发生重传的数据流时,接收端利用冗余信息头部将一段间隔内成功传输的数据包的数量发回给发送端;在时间间隔结束时,发送端将时间间隔内发送的总的数据包与成功传输的数据包的数量进行统计,计算得到链路的丢包率。
[0122] (43)冗余数据包头部中会包含发送端的发送时戳,发送端可通过交互的冗余数据包头部中的时戳来判断此时网络中的通信时延。
[0123] 由此可见,本发明中对网络状况进行估计的网络状况探测算法,根据数据流是否发送重传数据包,采用了不同的估计方法,也即:在数据流发送重传数据包时,通过数据包的序号来检测出重传的数据包以估计丢包率,在数据流不发送重传数据包时,接收端主动向发送端发送反馈信息数据以便发送端以此反馈信息估计丢包率,因此具有较好的灵敏度。
[0124] 本实施例中,启发式算法的时间复杂度的分析过程如下:
[0125] 本实施例提供的启发式算法由两部分组成,前一部分为确定数据块的数目ni以及数据块的大小,以及确定冗余数据块的数目mi,后一部分为使用里德-所罗门编码算法对于数据进行编码。两个参数的求解均可看作在常数时间内即可得出解,因此前一部分算法的时间复杂的为O(1),而里德-所罗门编码的编码时间与数据块的数目有关,编码次数与数据块的大小有关,因此后一部分的时间复杂度为
[0126] 经过上述分析可见,本实施例中启发式算法的总的时间复杂度为
[0127] 本实施例同时提供了一种计算设备,其包括处理器,以及存储有计算机可执行指令的存储器,所述可执行指令在被处理器执行时实现本实施例提供的如上任一方法的步骤。
[0128] 本发明同时提供了一种存储介质,所述存储介质为存储一个或多个程序的计算机可读存储介质,其中:当所述一个或多个程序被计算设备执行时,所述计算设备实现本实施例提供的如上任一方法的步骤。
[0129] 下面结合图2对本实施例涉及的启发式算法进行不失一般性的举例说明:
[0130] 图1描述了一个典型的运用前向纠错进行数据准确性保证的数据传输过程。
[0131] 根据本实施例中提供的启发式算法,假设从a时刻开始,持续有数据包到达,首先将到达的数据进行缓存(数据缓存队列),当数据总量达到阈值,即数据量超过(mtu-lenHeader)*nmax或者缓存时间片结束时,将数据取出。
[0132] 该启发式算法中选取使得 且 最小的数据块数量ni,当数据量达到最大值,即(mtu-lenHeader)*nmax时,此时由该启发式算法可以得出ni=nmax(假设为20),每个数据块的大小为(mtu-lenHeader)(假设为1400),即此例中ni=nmax=20,(mtu-lenHeader)=1400。
[0133] 调整参数:若原本没有对端到端的丢包概率和端到端延时进行过测量,令λi=0,di=50,此时目标函数简化为D=t+50,由 能够显然看出,此时的用户端延时为mi的单调函数,即此时mi=0时D取得最优值;若原本对于端到端的丢包概率和端到端延时进行过测量,且假设测得λi=0.1,di=50,此时经过求解能够求得mi=6,即对总的数据分成20个数据块,冗余编码后形成26个总数据块发送。
[0134] 对不同的丢包率与时延的每个时间间隔,通过启发式算法循环重复上述过程,为每一轮的数据发送选择最优的冗余率,以确保接收端能够以至少 的概率接收到准确的数据。
[0135] 冗余编码:确定了ni以及mi后,将原始数据使用里德-所罗门编码算法进行编码,编码算法对ni个数据块的首个字节进行编码,形成mi个冗余字节,作为mi个冗余数据块的第一个字节,循环的重复这一过程,为每一个数据块的每一个字节进行编码,最终形成(ni+mi)个数据块。
[0136] 添加头部信息:在每个数据块的起始位置增加其对应的冗余编码信息,如在第一个数据块的头部添加数据块序号为0,冗余编码编号为x,数据块总数为(ni+mi)。其中冗余编码编号用于在接收端判断数据块是否对应同一次冗余编码。
[0137] 网络状况估计:通过网络状况探测算法/网络状况估计算法对网络状况进行估计和快速探测:假设目前时间间隔内的最小序号为indexmin=100,最大序号indezmax=200;若新发送的数据包的序号为199,则确认发生丢包,将该时间间隔内的丢包数量增加1。若数据流不发送重传数据包,则由接收端主动进行成功传输的数据包数量的统计,并反馈给发送端以便发送端以此反馈信息估计丢包率。若这个时间间隔内发送的数据包数量为1000,成功传输的数据包数量为990,则估计成功传输的概率为99%,即丢包率为1%。
[0138] 仿真实验:在丢包率不断变化的网络环境中,对于同样大小的数据,数据传输速率越快意味着数据传输完成的时间越少,即传输数据的时延越低。因此对于数据传输速率进行统计能够很好的反映本算法的使用效果。图3示出了在应用本方法的情况下与不应用本方法的情况下,在网络中丢包率不断变化的情况下的数据传输情况。本仿真实验中设置的端到端的数据传输延迟为20ms,mtu为1500,nmax=20,mmax=20,实验过程中通过iperf3软件发送数据,图3中展示了在使用或不应用本方法的情况下,网络上能够达到的平均数据传输速率。
[0139] 图3中的图例AdaptiveFEC代表使用本实施例提供的基于纠错码的自适应丢包恢复方法的数据传输速率,图例None代表不使用本方法的数据传输速率,由图3可见,当网络情况较好,没有发生丢包时,传输控制协议连接的数据传输速率能够达到平均6MB/s左右(没有达到10MB/s的限制速度是因为网络传输时需要传输包括TCP以及IP协议头部等信息,同时接收方的接收窗口大小也是有限的,这些都对传输控制协议的传输速率造成影响)。在发生丢包时,传输控制协议的传输性能急剧下降,即使只有1%的丢包概率,传输控制协议的平均传输速率也降低了接近80%,这主要是由于传输控制协议自身的慢启动拥塞机制导致,当发生数据包丢失时,传输控制协议会将自身的发送拥塞窗口缩小到初始值,并使得线性增长的拥塞窗口阈值变为当前拥塞窗口的一半,这就使得传输控制协议连接的发送窗口始终处于一个很小的状态,最终导致传输控制协议的数据传输保持在较低的速率。而本实施例提供的基于纠错码的自适应丢包恢复方法使用前向纠错技术使得传输控制协议的传输速率能够稳定维持在一个较高的平,由图3可见,当丢包率上升时,本实施例提供的方法中使用自适应前向纠错技术所能带来的速率倍率(同一横坐标下AdaptiveFEC纵坐标数值与None纵坐标数值的比值)提升也在不断增加,最高能够达到40倍的速率提升。结合时间复杂度分析和仿真对比分析可见,本发明可以在网络中丢包率不断变化的环境下对数据传输的时延进行有效的降低。
[0140] 本发明具体应用途径很多,以上所述方法尤其是冗余率调整方式仅是本发明的优选实施方式,应当指出以上实施列对本发明不构成限定,相关工作人员在不偏离本发明技术思想的范围内,所进行的多样变化和修改,均落在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈