数据传输方法及装置

文档序号:25619034发布日期:2021-06-25 16:20阅读:98来源:国知局
数据传输方法及装置

1.本申请涉及通信技术领域,尤其涉及一种数据传输方法及装置。


背景技术:

2.随着第五代移动通信(the 5
th generation,5g)、wifi等技术的发展,网络应用对数据传输的可靠性、高吞吐、低时延以及高带宽利用率的需求越来越高,同时,由于信道干扰等复杂通信环境导致数据在较高的带宽上出现丢包现象。采用传统的用户数据包协议(user datagram protocol,udp)会降低数据传输的可靠性;采用传输控制协议(transmission control protocol,tcp)时,通过重传方式来恢复丢包,会产生较高时延。
3.目前,在udp传输协议的基础上添加前向纠错码(forward error correction,fec),并在接收端设备通过解码冗余数据包的方式恢复丢包,可以避免重传造成的高时延问题。
4.一般地,fec可分为固定冗余码和无限冗余码。一方面,固定冗余码是指冗余数据包的数量是预设的固定值,不能灵活应对数据传输中丢包率的变化,例如里德

所罗门码(reed

solomon codes,rs codes)、低密度奇偶校验码(low density parity check codes,ldpc)等;另一方面,无限冗余码是指发送端设备可以一直向接收端设备发送冗余数据包,接收端设备解码冗余数据包得到原始数据后,停止发送冗余数据包,可以适用于不同丢包率的应用场景,但传输时延较大、带宽利用率较低,例如卢比变换lt喷泉码(luby transform fountain codes,ltfc)和快速旋风喷泉码(raptor fountain codes,rfc)等。
5.现有的方案均无法满足网络应用对数据传输的高吞吐、低时延、高带宽利用率的需求。


技术实现要素:

6.本申请提供数据传输方法及装置,用以解决现有技术无法满足网络应用对数据传输的高吞吐、低时延、高带宽利用率的需求的缺陷。
7.第一方面,本申请实施例提供一种数据传输方法,应用于发送端设备,包括:
8.获取原始数据,将所述原始数据切分为若干个大小相同的原始数据块,将每个原始数据块切分为n个数据符号,基于所述n个数据符号,生成n个原始数据包,其中,所述n个数据符号是等长的;
9.对于所述每个原始数据块,向接收端设备发送所述n个原始数据包;
10.获取所述接收端设备发送的预设时间间隔内的数据丢包率,并根据所述预设时间间隔内的数据丢包率更新丢包率预测值;
11.基于所述丢包率预测值和所述n个数据符号,生成多个冗余数据包,向所述接收端设备发送所述多个冗余数据包;
12.根据所述接收端设备发送的解码结果,对所述原始数据块进行处理;
13.其中,n为大于1的自然数。
14.可选地,所述基于所述丢包率预测值和所述n个数据符号,生成多个冗余数据包,包括:
15.根据所述丢包率预测值,计算冗余数据包参数,其中,所述冗余数据包参数包括冗余数据包度数d和冗余数据包数量;
16.从所述n个数据符号中随机获取d个数据符号,对所述d个数据符号按位异或相加,得到冗余数据符号;
17.基于所述冗余数据包参数与所述冗余数据符号,生成所述多个冗余数据包。
18.可选地,所述根据所述丢包率预测值,计算冗余数据包参数,包括:
19.根据所述丢包率预测值,利用公式(1),计算所述冗余数据包度数:
[0020][0021]
根据所述丢包率预测值和所述冗余数据包度数,利用公式(2),计算所述冗余数据包数量:
[0022][0023]
其中,d表示冗余数据包度数,p表示丢包率预测值,n表示冗余数据包数量,k表示生成所述原始数据块的多个冗余数据包需要的所述数据符号的总数,其中,k的取值为满足的最小整数,n表示每个原始数据块对应的数据符号的个数,l为求和公式的变量,满足l∈(n
·
p,k)且l为整数,s(l,n
·
p)为将l个不同的元素分成n
·
p个集合的方案数量。
[0024]
可选地,所述根据所述预设时间间隔内的数据丢包率更新丢包率预测值,包括:
[0025]
根据所述预设时间间隔内的数据丢包率,利用公式(3)计算得到丢包率预测值:
[0026]
p
new
=α
·
p
old
+(1

α)
·
p
instant
ꢀꢀ
(3)
[0027]
其中,α表示预设常数,满足α∈(0,1),p
instant
表示表示预设时间间隔t内的数据丢包率,p
old
表示更新前的丢包率预测值,p
new
表示更新后的丢包率预测值。
[0028]
可选地,所述根据所述接收端设备发送的解码结果,对所述原始数据块进行处理,包括:
[0029]
若解码成功,所述发送端设备在缓存中清除所述原始数据块;
[0030]
若解码失败,所述发送端设备重新发送所述原始数据块。
[0031]
第二方面,本申请实施例提供一种数据传输方法,应用于接收端设备,包括:
[0032]
基于接收的原始数据包,计算预设时间间隔内的数据丢包率,并向发送端设备发送所述预设时间间隔内的数据丢包率;
[0033]
对接收的所述原始数据包和冗余数据包进行解码,获取解码结果并向所述发送端设备发送所述解码结果。
[0034]
第三方面,本申请实施例提供一种数据传输装置,应用于发送端设备,包括:
[0035]
切分单元,用于获取原始数据,将所述原始数据切分为若干个大小相同的原始数
据块,将每个原始数据块切分为n个数据符号,基于所述n个数据符号,生成n个原始数据包,其中,所述n个数据符号是等长的;
[0036]
第一发送单元,用于对于所述每个原始数据块,向接收端设备发送所述n个原始数据包;
[0037]
确定单元,用于获取所述接收端设备发送的所述预设时间间隔内的数据丢包率,并根据所述预设时间间隔内的数据丢包率更新丢包率预测值;
[0038]
第二发送单元,用于基于所述丢包率预测值和所述n个数据符号,生成多个冗余数据包,向所述接收端设备发送所述多个冗余数据包;
[0039]
处理单元,用于根据所述接收端设备发送的解码结果,对所述原始数据块进行处理。
[0040]
第四方面,本申请实施例提供一种数据传输装置,应用于接收端设备,包括:
[0041]
计算单元,用于基于接收的原始数据包,计算预设时间间隔内的数据丢包率,并向发送端设备发送所述预设时间间隔内的数据丢包率;
[0042]
解码单元,用于对接收的所述原始数据包和冗余数据包进行解码,获取解码结果并向所述发送端设备发送所述解码结果。
[0043]
第五方面,本申请实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面或第二方面所述的数据传输方法的步骤。
[0044]
第六方面,本申请实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面所述的数据传输方法的步骤。
[0045]
本申请实施例提供的数据传输方法及装置,发送端设备将原始数据进行二次切分,得到多个原始数据块以及每个原始数据块对应的n个数据符号,并将每个原始数据块对应的n个原始数据包发送至接收端设备,根据丢包率预测值生成适量的冗余数据包,并发送至接收端设备,接收端设备通过解码冗余数据包来恢复丢失的原始数据包对应的数据符号,实现数据传输的高吞吐、低时延和高带宽利用率。
附图说明
[0046]
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0047]
图1是本发明实施例提供的应用于发送端设备的数据传输方法的流程示意图;
[0048]
图2是本发明实施例提供的发送端设备发送原始数据的流程示意图;
[0049]
图3是本发明实施例提供的发送端设备更新丢包率预测值的流程示意图;
[0050]
图4是本发明实施例提供的应用于接收端设备的数据传输方法的流程示意图;
[0051]
图5是本发明实施例提供的发送端设备根据解码结果对原始数据块进行处理的流程示意图;
[0052]
图6是本发明实施例提供的应用于发送端设备的数据传输装置的结构示意图;
[0053]
图7是本发明实施例提供的应用于接收端设备的数据传输装置的结构示意图;
[0054]
图8是本发明实施例提供的电子设备的结构示意图。
具体实施方式
[0055]
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0056]
为了解决相关技术无法满足网络应用对数据传输的高吞吐、低时延、高带宽利用率的需求的问题,本申请实施例提供一种数据传输方法,图1是本申请实施例提供的应用于发送端设备的数据传输方法的流程示意图。如图1所示,执行主体可以为发送端设备,该方法包括:
[0057]
步骤100、获取原始数据,将所述原始数据切分为若干个大小相同的原始数据块,将每个原始数据块切分为n个数据符号,基于所述n个数据符号,生成n个原始数据包,其中,所述n个数据符号是等长的。
[0058]
其中,将原始数据块设定为预设长度,根据预设长度,将原始数据进行切分,得到多个原始数据块,若最后一个原始数据块的长度小于原始数据块的预设长度,则采用二进制方式将最后一个原始数据块的空缺位元用0补齐,使得该原始数据块的长度达到预设长度,且不改变该原始数据块的大小,公式为:
[0059][0060]
其中,l
total
表示原始数据的长度,l
block
表示原始数据块的预设长度,m表示原始数据块的个数。
[0061]
进一步地,将切分后得到的每个原始数据块进一步切分,得到n个数据符号,n个数据符号的长度相同。可以理解的是,原始数据块切分为n个数据符号的过程与原始数据切分为多个原始数据块的过程相同,在此不再赘述。
[0062]
需要说明的是,对于每个原始数据块,发送端设备将与每个原始数据块对应的n个数据符号按照顺序编号。
[0063]
原始数据包为将原始数据块的每个数据符号以及数据符号的序号作为数据字段进行封装得到的数据包。
[0064]
一种实施方式中,基于udp传输协议,发送端设备将每个数据符号以及数据符号的序号作为数据字段封装得到一个udp数据包,即原始数据包,进而得到每个原始数据块对应的n个原始数据包。
[0065]
步骤101、对于所述每个原始数据块,向接收端设备发送所述n个原始数据包。
[0066]
需要说明的是,发送端设备将每个原始数据块对应的n个原始数据包按照顺序编号,并依次发送至接收端设备。
[0067]
进一步地,对n个原始数据包进行编号,并发送至接收端设备,可用于计算该预设时间间隔内的数据丢包率,进而更新丢包率预测值。
[0068]
步骤102、获取所述接收端设备发送的预设时间间隔内的数据丢包率,并根据所述预设时间间隔内的数据丢包率更新丢包率预测值。
[0069]
一种实施方式中,在预设时间间隔t内,发送端设备向接收端设备持续发送已编号的原始数据包,接收端设备统计实际接收到的原始数据包的编号,计算该预设时间间隔t内的数据丢包率,并向发送端设备反馈该预设时间间隔t内的数据丢包率,发送端设备根据接收到的数据丢包率,更新丢包率预测值。
[0070]
其中,丢包率预测值可以理解为原始数据块所对应的原始数据包丢失的概率的预测值。
[0071]
在初始状态,初始丢包率预测值为p0=(1

α)
·
p
instant
,其中,α表示预设常数,满足α∈(0,1),p
instant
表示预设时间间隔t内的数据丢包率,p0表示初始丢包率预测值。
[0072]
需要说明的是,发送端设备每接收到接收端设备反馈的预设时间间隔t内的数据丢包率,则在前一丢包率预测值的基础上更新一次丢包率预测值。
[0073]
预设时间间隔t可以是根据用户需求预设的任一时间间隔。例如,预设时间间隔t可以为1s,也可以为发送端设备向接收端设备发送多个原始数据块的时间,在本申请实施例中不对预设时间间隔t的具体取值进行限定。
[0074]
步骤103、基于所述丢包率预测值和所述n个数据符号,生成多个冗余数据包,向所述接收端设备发送所述多个冗余数据包。
[0075]
需要说明的是,基于udp传输协议,发送端设备基于丢包率预测值和每个原始数据块的n个数据符号生成冗余数据包,冗余数据包用于恢复数据传输过程中丢失的原始数据包对应的数据符号。
[0076]
可以理解的是,冗余数据包的数量根据丢包率预测值进行自适应调整,从而具备自适应的纠错能力。
[0077]
基于udp传输协议,发送端设备将生成的多个冗余数据包依次发送至接收端设备。
[0078]
步骤104、根据所述接收端设备发送的解码结果,对所述原始数据块进行处理。
[0079]
对于每个原始数据块,发送端设备首先将每个原始数据块对应的n个原始数据包发送至接收端设备,然后将每个原始数据块对应的多个冗余数据包发送至接收端设备。
[0080]
发送完毕后,接收端设备对接收到的原始数据包和冗余数据包进行解码,若解码失败,接收端设备会反馈解码失败信息至发送端设备,发送端设备根据反馈信息重新发送该原始数据块;若解码成功,接收端设备会反馈解码成功信息至接收端设备,发送端设备根据反馈信息,在缓存中清除该原始数据块,并发送下一个原始数据块至接收端设备,重复上述操作步骤,直至原始数据对应的所有原始数据块均成功发送至接收端设备,则停止发送任务。
[0081]
本申请实施例提供的数据传输方法,发送端设备将原始数据进行二次切分,得到多个原始数据块以及每个原始数据块对应的n个数据符号,并将每个原始数据块对应的n个原始数据包发送至接收端设备,根据丢包率预测值生成适量的冗余数据包,并发送至接收端设备,接收端设备通过解码冗余数据包来恢复丢失的原始数据包对应的数据符号,实现数据传输的高吞吐、低时延和高带宽利用率。
[0082]
基于上述实施例的内容,所述基于所述丢包率预测值和所述n个数据符号,生成多个冗余数据包,包括:
[0083]
根据所述丢包率预测值,计算冗余数据包参数,其中,所述冗余数据包参数包括冗余数据包度数d和冗余数据包数量;
[0084]
从所述n个数据符号中随机获取d个数据符号,对所述d个数据符号按位异或相加,得到冗余数据符号;
[0085]
基于所述冗余数据包参数与所述冗余数据符号,生成所述多个冗余数据包。
[0086]
其中,冗余数据包度数d表示生成一个冗余数据包时,从与每个原始数据块对应的n个数据符号中随机选择的数据符号的个数。
[0087]
其中,冗余数据包数目n表示冗余数据包的个数,对于每个原始数据块,随机生成n个冗余数据包。
[0088]
需要说明的是,对d个数据符号按位异或相加,得到一个冗余数据符号,该冗余数据符号的长度与数据符号的长度相同。
[0089]
一种实施方式中,记录d个数据符号的编号,得到编码参数(度数d、d个符号的序号),基于udp传输协议,将冗余数据符号以及编码参数作为数据字段进行封装,得到一个udp数据包,即为冗余数据包。
[0090]
本申请实施例提供的数据传输方法,一方面,发送端设备根据丢包率预测值计算冗余数据包参数,进一步生成适量的冗余数据包,该冗余数据包的数量和冗余数据包的度数根据丢包率预测值进行自适应调整,从而具备自适应的纠错能力;另一方面,发送端设备根据与每个原始数据块对应的n个数据符号生成冗余数据包,可用于数据传输过程中原始数据包丢失的情况下恢复丢失的数据符号。
[0091]
结合图2说明发送端设备向接收端设备发送原始数据的具体过程。图2是本发明实施例提供的发送端设备发送原始数据的流程示意图,如图2所示,生成冗余数据包的过程为:
[0092]
步骤200、发送端设备将待发送的原始数据切分为m个大小相同的原始数据块。
[0093]
步骤201、将i的初始值设为1,其中i表示第i个原始数据块。
[0094]
步骤202、判断i≤m是否成立,若是,执行步骤2021;若不是,执行步骤2022。
[0095]
步骤2021、当i≤m时,发送端设备将第i个原始数据块切分为n个等长的数据符号,执行步骤203。
[0096]
步骤2022、当i>m时,表示m个原始数据块发送完毕,发送端设备停止发送原始数据。
[0097]
步骤203、基于udp传输协议,发送端设备将第i个原始数据块对应的n个数据符号生成n个原始数据包,并发送至接收端设备。
[0098]
步骤204、发送端设备根据丢包率预测值计算冗余数据包参数,其中,冗余数据包参数包括度数d和数目n。
[0099]
步骤205、基于udp传输协议,发送端设备根据第i个原始数据块对应的n个数据符号生成n个冗余数据包,并发送至接收端设备。
[0100]
步骤206、将i的值加1,返回执行步骤202。
[0101]
基于上述实施例的内容,所述根据所述丢包率预测值,计算冗余数据包参数,包括:
[0102]
根据所述丢包率预测值,利用公式(1),计算所述冗余数据包度数:
[0103][0104]
根据所述丢包率预测值和所述冗余数据包度数,利用公式(2),计算所述冗余数据包数量:
[0105][0106]
其中,d表示冗余数据包度数,p表示丢包率预测值,n表示冗余数据包数量,k表示生成所述原始数据块的多个冗余数据包需要的所述数据符号的总数,其中,k的取值为满足的最小整数,n表示每个原始数据块对应的数据符号的个数,l为求和公式的变量,满足l∈(n
·
p,k)且l为整数,s(l,n
·
p)为将l个不同的元素分成n
·
p个集合的方案数量。
[0107]
一种实施方式中,根据公式(1)计算冗余数据包度数d后,发送端设备从每个原始数据块对应的n个数据符号中随机选择d个数据符号,按位异或相加得到冗余数据符号。
[0108]
进一步地,记录d个数据符号的编号,得到编码参数,基于udp协议,将冗余数据符号和编码参数作为数据字段进行封装,生成冗余数据包。
[0109]
根据公式(2)计算冗余数据包数量n后,发送端设备按照上述实施方式生成冗余数据包的过程,对每个原始数据块,随机生成n个冗余数据包。
[0110]
本申请实施例提供的数据传输方法,根据丢包率预测值分别计算得到冗余数据包度数和冗余数据包数量,进一步生成适量的冗余数据包,冗余数据包的数量和冗余数据包的度数根据丢包率预测值自适应调整,使得发送端设备在数据传输过程中具备自适应的纠错能力,进而实现数据传输的高吞吐、低时延和高带宽利用率。
[0111]
基于上述实施例的内容,所述根据所述预设时间间隔内的数据丢包率更新丢包率预测值,包括:
[0112]
根据所述预设时间间隔内的数据丢包率,利用公式(3)计算得到丢包率预测值:
[0113]
p
new
=α
·
p
old
+(1

α)
·
p
instant
ꢀꢀ
(3)
[0114]
其中,α表示预设常数,满足α∈(0,1),p
instant
表示预设时间间隔t内的数据丢包率,p
old
表示更新前的丢包率预测值,p
new
表示更新后的丢包率预测值。
[0115]
需要说明的是,接收端设备向发送端设备发送上一时间间隔t内的数据丢包率,根据公式(3)更新丢包率预测值。
[0116]
其中,接收端设备向发送端设备首次发送第一时间间隔t内的数据丢包率时,丢包率预测值为(1

α)
·
p
instant
,即为初始丢包率预测值。
[0117]
发送端设备根据丢包率预测值,可以生成适量的冗余数据包,该冗余数据包的数目和冗余数据包的度数根据丢包率预测值进行自适应调整,从而具备自适应的纠错能力。
[0118]
进一步地,若丢包率预测值越高,发送端设备生成的冗余数据包的数目越多,则发送端设备在数据传输过程中具有较强的纠错能力;若丢包率预测值越低,发送端设备生成的冗余数据包的数目越少,提高了数据传输的带宽利用率。同时,根据丢包率预测值生成适
量的冗余数据包,实现了在数据传输过程出现原始数据包丢失的情形下,接收端设备可以低时延、高概率的恢复原始数据包,提高数据传输的吞吐量。
[0119]
本申请实施例提供的数据传输方法,通过接收端设备发送的数据丢包率,计算得到丢包率预测值,进一步地,发送端设备根据丢包率预测值可以生成适量的冗余数据包,进而实现数据传输的高吞吐、低时延和高带宽利用率。
[0120]
结合图3说明发送端设备根据接收到的数据丢包率更新丢包率预测值的过程。图3是本发明实施例提供的发送端设备更新丢包率预测值的流程示意图。如图3所示,发送端设备更新丢包率预测值的具体过程为:
[0121]
步骤300、发送端设备将带有连续序号的原始数据包发送至接收端设备;
[0122]
步骤301、接收端设备根据接收到的原始数据包的序号,计算数据丢包率;
[0123]
步骤302、接收端设备每隔时间间隔t,向发送端设备发送上一时间间隔t内的数据丢包率;
[0124]
步骤303、发送端设备根据接收端设备发送的上一时间间隔t内的数据丢包率,更新丢包率预测值,执行步骤300。
[0125]
基于上述实施例的内容,所述根据所述接收端设备发送的解码结果,对所述原始数据块进行处理,包括:
[0126]
若解码成功,所述发送端设备在缓存中清除所述原始数据块;
[0127]
若解码失败,所述发送端设备重新发送所述原始数据块。
[0128]
发送端设备将每个原始数据块对应的n个原始数据包和多个冗余数据包均发送至接收端设备后,接收端设备对接收到的原始数据包和冗余数据包进行解码,若解码失败,接收端设备会反馈解码失败信息至发送端设备,发送端设备根据反馈信息重新发送该原始数据块;若解码成功,接收端设备会反馈解码成功信息至接收端设备,发送端设备根据反馈信息,在缓存中清除该原始数据块,并发送下一个原始数据块至接收端设备,重复上述操作步骤,直至原始数据对应的所有原始数据块均成功发送至接收端设备,则停止发送任务。
[0129]
本申请实施例提供的数据传输方法,根据接收端设备的解码结果,对该原始数据块进行处理,进一步实现了数据传输的高吞吐、低时延和高带宽利用率。
[0130]
图4是本发明实施例提供的应用于接收端设备的数据传输方法的流程示意图。如图4所示,本申请实施例提供一种数据传输方法,执行主体可以为接收端设备,包括:
[0131]
步骤400、基于接收的原始数据包,计算预设时间间隔内的数据丢包率,并向发送端设备发送所述预设时间间隔内的数据丢包率。
[0132]
发送端设备发送的原始数据包序号是连续的,如果网络没有丢包,则接收端设备收到的序号也应该是完整的(可能会有乱序)。如果存在丢包,接收端设备接收到的数据包的序号则会出现空缺。预设时间间隔内的数据丢包率=序号空缺的数目/总序号个数,其中,总序号个数为该预设时间间隔内接收到数据包序号的最大值减去序号的最小值再加一。
[0133]
一种实施方式中,在预设时间间隔t内,发送端设备向接收端设备持续发送已编号的原始数据包,接收端设备统计实际接收到的原始数据包的编号,根据公式(5)计算得到该预设时间间隔t内的数据丢包率:
[0134][0135]
其中,p
instant
表示预设时间间隔t内的数据丢包率,n
s
表示预设时间间隔t内接收端设备接收的数据包序号空缺的数目,n
r
表示预设时间间隔t内接收到数据包序号的最大值减去序号的最小值再加一。
[0136]
步骤401、对接收的所述原始数据包和冗余数据包进行解码,获取解码结果并向所述发送端设备发送所述解码结果。
[0137]
对于每个原始数据块,当发送端设备将与该原始数据块对应的n个原始数据包和多个冗余数据包均发送至接收端设备后,接收端设备对接收到的原始数据包和冗余数据包进行解码。
[0138]
一种实施方式中,解码算法可以采用lt喷泉码解码算法。
[0139]
进一步地,接收端设备根据解码结果,判断解码操作是否成功,如果解码成功,则接收端设备反馈解码成功信息至发送端设备,发送端设备根据反馈信息,在缓存中清除该原始数据块;如果解码失败,则接收端设备反馈解码失败信息至发送端设备,发送端设备重新发送该原始数据块的原始数据包和冗余数据包至接收端设备。
[0140]
本申请实施例提供的数据传输方法,一方面,接收端设备根据实际接收的原始数据包计算数据丢包率,有利于计算丢包率预测值以及生成适量的冗余数据包,另一方面,接收端设备对接收的原始数据包和冗余数据包进行解码,可以高概率地恢复原始数据符号,无需额外重传,进一步实现了数据传输的高吞吐、低时延和高带宽利用率。
[0141]
结合图5说明发送端设备根据解码结果对原始数据块进行处理的具体过程。图5是本发明实施例提供的发送端设备根据解码结果对原始数据块进行处理的流程示意图。如图5所示,发送端设备根据解码结果对原始数据块进行处理的过程为:
[0142]
步骤500、接收端设备对接收的原始数据包进行解码;
[0143]
步骤501、判定接收端设备是否解码成功;若解码成功,执行步骤5011;若解码失败,执行步骤5012;
[0144]
步骤5011、接收端设备向发送端设备发送解码成功信息包,执行步骤502;
[0145]
步骤5012、接收端设备向发送端设备发送解码失败信息包,执行步骤503;
[0146]
步骤502、发送端设备在缓存中清除该原始数据块;
[0147]
步骤503、发送端设备重新发送该原始数据块。
[0148]
下面对本发明提供的数据传输装置进行描述,下文描述的数据传输装置与上文描述的数据传输方法可相互对应参照。
[0149]
图6是本申请实施例提供的数据传输装置的结构示意图,如图6所示,应用于发送端设备,该装置包括:切分单元600、第一发送单元601、确定单元602、第二发送单元603和处理单元604,其中,
[0150]
切分单元600,用于获取原始数据,将所述原始数据切分为若干个大小相同的原始数据块,将每个原始数据块切分为n个数据符号,基于所述n个数据符号,生成n个原始数据包,其中,所述n个数据符号是等长的;
[0151]
第一发送单元601,用于对于所述每个原始数据块,向接收端设备发送所述n个原
始数据包;
[0152]
确定单元602,用于获取所述接收端设备发送的预设时间间隔内的数据丢包率,并根据所述预设时间间隔内的数据丢包率更新丢包率预测值;
[0153]
第二发送单元603,用于基于所述丢包率预测值和所述n个数据符号,生成多个冗余数据包,向所述接收端设备发送所述多个冗余数据包;
[0154]
处理单元604,用于根据所述接收端设备发送的解码结果,对所述原始数据块进行处理。
[0155]
本申请实施例提供的数据传输装置,发送端设备将原始数据进行二次切分,得到多个原始数据块以及每个原始数据块对应的n个数据符号,并将每个原始数据块对应的n个原始数据包发送至接收端设备,根据丢包率预测值生成适量的冗余数据包,并发送至接收端设备,接收端设备通过解码冗余数据包来恢复丢失的原始数据包对应的数据符号,实现数据传输的高吞吐、低时延和高带宽利用率。
[0156]
可选地,第二发送单元603,用于:
[0157]
根据所述丢包率预测值,计算冗余数据包参数,其中,所述冗余数据包参数包括冗余数据包度数d和冗余数据包数量;
[0158]
从所述n个数据符号中随机获取d个数据符号,对所述d个数据符号按位异或相加,得到冗余数据符号;
[0159]
基于所述冗余数据包参数与所述冗余数据符号,生成所述多个冗余数据包。
[0160]
可选地,所述根据所述丢包率预测值,计算冗余数据包参数,包括:
[0161]
根据所述丢包率预测值,利用公式(1),计算所述冗余数据包度数:
[0162][0163]
根据所述丢包率预测值和所述冗余数据包度数,利用公式(2),计算所述冗余数据包数量:
[0164][0165]
其中,d表示冗余数据包度数,p表示丢包率预测值,n表示冗余数据包数量,k表示生成所述原始数据块的多个冗余数据包需要的所述数据符号的总数,其中,k的取值为满足的最小整数,n表示每个原始数据块对应的数据符号的个数,l为求和公式的变量,满足l∈(n
·
p,k)且l为整数,s(l,n
·
p)为将l个不同的元素分成n
·
p个集合的方案数量。
[0166]
可选地,确定单元602,用于:
[0167]
根据所述预设时间间隔内的数据丢包率,利用公式(3)计算得到丢包率预测值:
[0168]
p
new
=αp
old
+(1

α)
·
p
instant
ꢀꢀ
(3)
[0169]
其中,α表示预设常数,满足α∈(0,1),p
instant
表示预设时间间隔t内的数据丢包率,p
old
表示更新前的丢包率预测值,p
new
表示更新后的丢包率预测值。
[0170]
可选地,解码单元603,用于:
[0171]
若解码成功,所述发送端设备在缓存中清除所述原始数据块;
[0172]
若解码失败,所述发送端设备重新发送所述原始数据块。
[0173]
本申请实施例提供的数据传输装置可以实现上述数据传输方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
[0174]
图7是本申请实施例提供的数据传输装置的结构示意图,如图7所示,应用于接收端设备,该装置包括:计算单元700和解码单元701,其中,
[0175]
计算单元700,用于基于接收的原始数据包,计算预设时间间隔内的数据丢包率,并向发送端设备发送所述预设时间间隔内的数据丢包率;
[0176]
解码单元701,用于对接收的所述原始数据包和冗余数据包进行解码,获取解码结果并向所述发送端设备发送所述解码结果。
[0177]
本申请实施例提供的数据传输装置,一方面,接收端设备根据实际接收的原始数据包计算数据丢包率,有利于计算丢包率预测值以及生成适量的冗余数据包,另一方面,接收端设备对接收的原始数据包和冗余数据包进行解码,可以高概率恢复原始数据符号,无需额外重传,进一步实现了数据传输的高吞吐、低时延和高带宽利用率。
[0178]
图8本申请实施例的电子设备的结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communications interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行数据传输方法,该方法包括:
[0179]
获取原始数据,将所述原始数据切分为若干个大小相同的原始数据块,将每个原始数据块切分为n个数据符号,基于所述n个数据符号,生成n个原始数据包,其中,所述n个数据符号是等长的;
[0180]
对于所述每个原始数据块,向接收端设备发送所述n个原始数据包;
[0181]
获取所述接收端设备发送的预设时间间隔内的数据丢包率,并根据所述预设时间间隔内的数据丢包率更新丢包率预测值;
[0182]
基于所述丢包率预测值和所述n个数据符号,生成多个冗余数据包,向所述接收端设备发送所述多个冗余数据包;
[0183]
根据所述接收端设备发送的解码结果,对所述原始数据块进行处理;
[0184]
其中,n为大于1的自然数。
[0185]
或者,
[0186]
处理器810可以调用存储器830中的逻辑指令,以执行数据传输方法,该方法还包括:
[0187]
基于接收的原始数据包,计算预设时间间隔内的数据丢包率,并向发送端设备发送所述预设时间间隔内的数据丢包率;
[0188]
对接收的所述原始数据包和冗余数据包进行解码,获取解码结果并向所述发送端设备发送所述解码结果。
[0189]
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以
软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0190]
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的数据传输方法,该方法包括:
[0191]
获取原始数据,将所述原始数据切分为若干个大小相同的原始数据块,将每个原始数据块切分为n个数据符号,基于所述n个数据符号,生成n个原始数据包,其中,所述n个数据符号是等长的;
[0192]
对于所述每个原始数据块,向接收端设备发送所述n个原始数据包;
[0193]
获取所述接收端设备发送的所述预设时间间隔内的数据丢包率,并根据所述预设时间间隔内的数据丢包率更新丢包率预测值;
[0194]
基于所述丢包率预测值和所述n个数据符号,生成多个冗余数据包,向所述接收端设备发送所述多个冗余数据包;
[0195]
根据所述接收端设备发送的解码结果,对所述原始数据块进行处理;
[0196]
其中,n为大于1的自然数。
[0197]
或者,
[0198]
当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的数据传输方法,应用于接收端设备,该方法包括:
[0199]
基于接收的原始数据包,计算预设时间间隔内的数据丢包率,并向发送端设备发送所述预设时间间隔内的数据丢包率;
[0200]
对接收的所述原始数据包和冗余数据包进行解码,获取解码结果并向所述发送端设备发送所述解码结果。
[0201]
又一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法实施例提供的数据传输方法,该方法包括:
[0202]
获取原始数据,将所述原始数据切分为若干个大小相同的原始数据块,将每个原始数据块切分为n个数据符号,基于所述n个数据符号,生成n个原始数据包,其中,所述n个数据符号是等长的;
[0203]
对于所述每个原始数据块,向接收端设备发送所述n个原始数据包;
[0204]
获取所述接收端设备发送的所述预设时间间隔内的数据丢包率,并根据所述预设时间间隔内的数据丢包率更新丢包率预测值;
[0205]
基于所述丢包率预测值和所述n个数据符号,生成多个冗余数据包,向所述接收端设备发送所述多个冗余数据包;
[0206]
根据所述接收端设备发送的解码结果,对所述原始数据块进行处理;
[0207]
其中,n为大于1的自然数。
[0208]
或者,
[0209]
该计算机程序被处理器执行时实现以执行上述各方法实施例提供的数据传输方法,该方法包括:
[0210]
基于接收的原始数据包,计算预设时间间隔内的数据丢包率,并向发送端设备发送所述预设时间间隔内的数据丢包率;
[0211]
对接收的所述原始数据包和冗余数据包进行解码,获取解码结果并向所述发送端设备发送所述解码结果。
[0212]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0213]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0214]
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1