一种数据传输方法以及数据发送装置的制造方法

文档序号:10515170阅读:453来源:国知局
一种数据传输方法以及数据发送装置的制造方法
【专利摘要】本发明实施例提供一种数据传输方法以及数据发送装置,用于减少数据丢包重传的几率。该数据传输方法包括以下步骤:发送端确定与接收端之间链路的丢包率;发送端根据该丢包率确定冗余比率;发送端根据该冗余比率向接收端发送数据包。
【专利说明】
-种数据传输方法从及数据发送装置
技术领域
[0001] 本发明设及通信技术领域,特别设及一种数据传输方法W及数据发送装置。
【背景技术】
[0002] 超时重传机制是数据传输领域保证数据可靠性的重要机制,其原理是发送端在发 送某一个数据包W后就开启一个计时器,如果发送端在设定时间段内没有接收到发送的该 数据包的确认(Acknowl edgement;简称:ACK)报文,则发送端重新发送该数据包,直到接收 到AO(报文,确定发送成功为止。
[0003] 但是,数据包的重传不仅需要耗费重传数据包的时间,还需要耗费确定收不到ACK 报文W确定数据包丢失的时间,导致数据的传输耗时较长。

【发明内容】

[0004] 本申请提供一种数据传输方法W及数据发送装置,用于减少数据丢包重传的几 率。
[0005] 第一方面,本申请实施例提供一种数据传输方法,包括:
[0006] 发送端确定与接收端之间链路的丢包率;
[0007] 所述发送端根据所述丢包率确定冗余比率,所述冗余比率用于表征所述发送端发 送的冗余数据包与原始数据包的数量比值;
[000引所述发送端根据所述冗余比率向所述接收端发送数据包。
[0009] 在一些可能的实现方式中,所述发送端根据所述冗余比率向所述接收端发送数据 包,包括:
[0010] 所述发送端根据所述冗余比率W及Μ个原始数据包,生成N个冗余数据包,并向所 述接收端发送所述Μ个原始数据包W及所述Ν个冗余数据包,其中,Ν由Μ与所述冗余比率的 乘积所确定,如Μ与所述冗余比率的乘积的取上整值或取下整值。
[0011] 在一些可能的实现方式中,所述冗余数据包包括:对所述Μ个原始数据包中的任一 原始数据包进行复制获得的重复数据包,或者,根据所述Μ个原始数据包中至少两个数据包 进行运算获得的运算数据包。
[0012] 在一些可能的实现方式中,所述发送端根据所述冗余比率向所述接收端发送数据 包,包括:
[0013] 所述发送端将每个所述原始数据包复制Κ份,生成每个所述原始数据包对应的Κ个 重复数据包;
[0014] 所述发送端将每个所述原始数据包W及所述原始数据包对应的Κ个重复数据包发 送给所述接收端,其中,Κ为所述冗余比率的取上整值。
[0015] 在一些可能的实现方式中,所述冗余比率可W表示为:
[0016]
,其中,a为所述丢包率。
[0017] 在一些可能的实现方式中,所述发送端确定与接收端之间链路的丢包率,包括:
[0018] 所述发送端将所述接收端向所述发送端发送数据的丢包率作为所述发送端与所 述接收端之间链路的丢包率;或者
[0019] 所述发送端接收所述接收端返回的由所述接收端确定的所述发送端与所述接收 端之间链路的丢包率,所述接收端将接收的所述丢包率作为所述发送端与所述接收端之间 链路的丢包率。
[0020] 第二方面,本申请实施例提供一种数据发送装置,包括:
[0021] 第一确定模块,用于确定与接收端之间链路的丢包率;
[0022] 第二确定模块,用于根据所述丢包率确定冗余比率,所述冗余比率用于表征所述 发送端发送的冗余数据包与原始数据包的数量比值;
[0023] 发送模块,用于根据所述冗余比率向所述接收端发送数据包。
[0024] 在一些可能的实现方式中,所述发送模块具体用于:
[0025] 根据所述冗余比率W及Μ个原始数据包,生成N个冗余数据包,并向所述接收端发 送所述Μ个原始数据包W及所述Ν个冗余数据包,其中,Ν由Μ与所述冗余比率的乘积所确定。
[0026] 在一些可能的实现方式中,所述冗余数据包包括:对所述Μ个原始数据包中的任一 原始数据包进行复制获得的重复数据包,或者,根据所述Μ个原始数据包中至少两个数据包 进行运算获得的运算数据包。
[0027] 在一些可能的实现方式中,所述发送模块具体用于:
[0028] 将每个所述原始数据包复制Κ份,生成每个所述原始数据包对应的Κ个重复数据 包,将每个所述原始数据包W及所述原始数据包对应的Κ个重复数据包发送给所述接收端, 其中,Κ为所述冗余比率的取上整值。
[0029] 在一些可能的实现方式中,所述冗余比率可W表示为:
[0030]
,其中,a为所述丢包率。
[0031 ]在一些可能的实现方式中,所述第一确定模块具体用于:
[0032] 将所述接收端向所述发送端发送数据的丢包率作为所述发送端与所述接收端之 间链路的丢包率;或者
[0033] 将接收的由所述接收端确定的所述发送端与所述接收端之间链路的丢包率作为 所述发送端与所述接收端之间链路的丢包率。
[0034] 本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0035] 上述技术方案中,发送端在向接收端发送数据时,根据链路的丢包率确定冗余比 率,根据冗余比率生成冗余数据包,向接收端发送原始数据包W及冗余数据包,W在原始数 据包丢失后,接收端能够根据冗余数据包恢复丢失的原始数据包,进而无需发送端向接收 端进行数据重传,由于减少数据重传时发送端确定收不到ACK报文的耗时,能够减少整个数 据传输过程的耗时。其中,发送端向接收端发送的冗余数据包的数量由冗余比率确定,而冗 余比率由链路的丢包率确定,换言之,发送端发送的冗余数据包的数量由接收端可能丢失 的原始数据包的数量所确定,所W,本发明实施例中,发送端可W既使得接收端能够根据冗 余数据包确定丢失的原始数据包,也能够尽可能的减少冗余数据包的数量。
【附图说明】
[0036] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可W根据运些附图获得其 他的附图。
[0037] 图1为本申请实施例中发送数据方法的流程示意图;
[0038] 图2为本发明实施例中数据发送装置的结构示意框图。
【具体实施方式】
[0039] 下面通过附图W及具体实施例对本发明技术方案做详细的说明,应当理解本申请 实施例W及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术 方案的限定,在不冲突的情况下,本申请实施例W及实施例中的技术特征可W相互组合。
[0040] 本发明实施例提供的数据传输方法,既可W应用于有线传输网络,例如基于光纤 通信网络的数据传输,也可W应用于无线传输网络,例如移动通信网络中的数据传输W及 无线局域网(Wireless Local Area Networks;简称:WLAN)中的数据传输。其中,移动通信 网络的实现方式包括但不限于:全球移动通讯系统(Global System of Mobile communication;简称:GSM)、通用分组无线服务(General Packet Radio Service;简称: GPRS)、码分多址(Code Division Multiple Access;简称:CDMA)、宽带码分多址(Wideband Code Division Multiple Access;简称:WCDMA)、长期演进(Xong Term Evolution;简称: LTE)、第五代移动通信系统(The fifth generation mobile communication system;简 称:5G)。
[0041 ]图1为本发明实施例提供的数据传输方法的流程示意图,该方法包括如下步骤:
[0042] 步骤101:发送端确定与接收端之间链路的丢包率。
[0043] 具体的,本发明实施例中,发送端指的是前述有线/无线传输网络中能够发送数据 的设备,例如基于光纤传输网络通信的个人计算机,又例如,基于移动通信网络进行数据传 输的智能手机、虚拟显示(Virtual Reality ;简称:VR)设备、增强现实(Augmented Reality;简称:AR)设备,再例如,基于车辆网通信的汽车。
[0044] 同理,接收端指的是前述有线/无线传输网络中能够接收数据的设备。通常,一个 设备既可W作为发送端,也可W作为接收端。
[0045] 本发明实施例中,丢包率(Packet Loss Rate)是指丢失数据包数量占所发送数据 组的比率。发送端确认丢包率的方式可W为W下任一种:
[0046] 其一,发送端向接收端发送数据报之后,接收端接收数据包,并记录丢包的情况, 接收端可W根据所记录的丢包情况确定丢包率,该由接收端根据记录的丢包情况所确定的 丢包率也成为下行丢包率,然后将该下行丢包率发送给发送端,发送端将接收的由接收端 确定的下行丢包率作为链路的丢包率。
[0047] 本发明实施例中,接收端可W周期性地向发送端返回该下行丢包率,W使发送端 能够及时获知链路的通信质量,并根据丢包率调整发包策略。
[0048] 其二,通常,发送端与接收端之间进行双向传输,发送端可W记录由该接收端发送 数据包的丢包情况,并根据记录的接收端发送数据包的丢包情况确定出接收端发送数据包 的丢包率,该丢包率又可称为上行丢包率,通常,该上行丢包率与下行丢包率接近,因此,发 送端可W将该下行丢包率作为发送端与接收端之间链路的丢包率。
[0049] 在其二的方式中,无需发送端与接收端之间的交互,发送端能够根据本地记录的 丢包统计数据确定链路的丢包率,实现方式更为简单,且耗时更少。
[0050] 其Ξ,结合前述其一 W及其二的方式,发送端计算该上行丢包率W及下行丢包率 的加权,将计算获得的加权值作为链路的丢包率。本发明实施例对该加权方式的具体方式 不予限定,例如,该加权方式可W为算数平均值、几何平均值,等等。
[0051] 步骤102:发送端根据丢包率确定冗余比率,并根据冗余比率向接收端发送数据 包。
[0052] 具体的,本发明实施例中,发送端在向接收端发送一原始待传数据时,将数据分为 多个数据块进行传输,并对每个数据块进行打包,获得一数据包(Packet),本发明实施例 中,将运种根据原始待传数据进行分块打包形成的数据包称为原始数据包。
[0053] 发送端在向接收端传输该原始数据包时,为了减少重传的几率,发送端会向接收 端发送冗余数据包,接收端在接收的原始数据包丢失后,可W根据该冗余数据包确定丢失 的原始数据包的数据。
[0054] 其中,发送端根据链路的丢包率确定发送冗余数据包的数量,例如,在链路的丢包 率较大时,发送较多的冗余数据包,而在链路的丢包率较小时发送较少的丢包率。
[0055] 上述技术方案中,发送端在向接收端发送数据时,根据链路的丢包率确定冗余比 率,根据冗余比率生成冗余数据包,向接收端发送原始数据包W及冗余数据包,W在原始数 据包丢失后,接收端能够根据冗余数据包恢复丢失的原始数据包,进而无需发送端向接收 端进行数据重传,由于减少数据重传时发送端确定收不到ACK报文的耗时,能够减少整个数 据传输过程的耗时。其中,发送端向接收端发送的冗余数据包的数量由冗余比率确定,而冗 余比率由链路的丢包率确定,换言之,发送端发送的冗余数据包的数量由接收端可能丢失 的原始数据包的数量所确定,所W,本发明实施例中,发送端可W既使得接收端能够根据冗 余数据包确定丢失的原始数据包,也能够尽可能的减少冗余数据包的数量。
[0056] 需要说明的是,上述基于丢包率确定冗余数据包的数量为根据概率所确定的数 值,所W,实际情况中,发送端发送的冗余数据包的数据可能会超出接收端确定实际丢失的 原始数据包的需求,又或者,接收端根据冗余数据包并不能确定所有丢失的原始数据包。但 是,在很长的一段时间内,采用本发明实施例提供的技术方案,能够有效减少数据重传的几 率。
[0057] 本发明实施例中,步骤102中发送端根据丢包率确定冗余比率,可W有多种实现方 式。
[0058] 其中的一种可能的实现方式为:
[0化9]
[0060] 上式中,S为冗余比率,a为丢包率。
[0061] 本发明实施例中,冗余比率S的确定原理可W为:发送端向接收端发送适宜数量的 冗余数据包,该冗余数据包的数量可W使得接收端尽可能确定每一个丢失的原始数据包的 数值,且使得该冗余数据包的数量尽可能少。
[0062] 根据上述原理确定冗余比率S-种可能的表现形式为:
[0063]
[0064] 实际情况中,根据上述原理确定的冗余比率S有多种表现形式,除了上面介绍的公 式之外,冗余比率S还可W表示为丢包率a的一次函数、二次函数W及其他的函数,本发明实 施例不能予W穷举。
[0065] 可选的,本发明实施例中,发送端在确定冗余比率之后根据冗余比率向接收端发 送数据包,可W通过如下方式实现:
[0066] 发送端根据冗余比率W及Μ个原始数据包,生成N个冗余数据包,并向接收端发送Μ 个原始数据包W及Ν个冗余数据包,其中,Ν由Μ与冗余比率的乘积所确定。
[0067] 上述Μ可W为预设值,如Μ为10,发送端每向接收端发送10个原始数据包,一并向接 收端发送Ν个冗余数据包。上述Μ也可W为当前需要发送的原始数据包的数量,例如,发送端 将待发送数据分为98个数据块,则打包有98个原始数据包,则Μ为98,发送端在向接收端发 送98个原始数据包时,一并发送Ν个冗余数据包。
[0068] 其中,冗余数据包的个数Ν由原始数据包个数及冗余比率的乘积所确定。实际 情况中,如果Μ与冗余比率的乘积为整数时,冗余数据包的个数Ν即为Μ与冗余比率的乘积; 如果Μ与冗余比率的乘积为非整数时,冗余数据包的个数Ν即为Μ与冗余比率的乘积的取整 值,可W为取上整值,也可W为取下整值。所谓取下整值指的是,将该乘积进行取整运算后 获得数值。所谓取上整值指的是,如果该乘积取整后的余数大于0,则取该取整值加1的数值 作为运算后数值。
[0069] 而上述冗余数据包又可W有两种实现方式:
[0070] 实现方式1,冗余数据包为对原始数据包进行复制获得的重复数据包。
[0071] 例如,在Μ不小于Ν时,发送端在向接收端发送Μ个数据包时,对Μ个原始数据包中的 Ν个原始数据包进行复制,获得Ν个重复数据包,然后在向接收端发送该Μ个原始数据包时, 一并发送Ν个重复数据包。
[0072] 又例如,在N = h*M+i,其中,h为正整数,i为小于Μ的正整数,发送端在向接收端发 送Μ个数据包时,对每个原始数据包复制h个备份,另外,再从Μ个原始数据包中在那个选择i 个数据包进行复制,一共获得h*M+i=N个复制数据包,向接收端一并发送N个复制数据包。
[0073] 实际情况中,对Μ个原始数据包中的那些数据包进行复制,可W由多种实现方式, 本发明实施例不予限定。例如,在前述Μ不小于Ν的情况中,发送端从Μ个原始数据包中随机 选择Ν个数据包进行复制。
[0074] 实现方式2,冗余数据包为根据Μ个原始数据包中至少两个数据包进行运算获得的 运算数据包。
[0075] 例如,将Μ个原始数据包中两个或两个W上的数据包进行运算,获得一个运算数据 包,为了便于说明,可W将该两个或两个W上的数据包称为运算数据包的源数据包。在源数 据包中有1个数据包丢失后,接收客户端可W根据该运算数据包W及源数据包中未丢失的 数据包计算出丢失的源数据包的数值。
[0076] 实际情况中,一个原始数据包可W作为多个运算数据包的源数据包,进而,可W结 合多个运算数据包与未丢失的源数据包计算丢失的源数据包的数值。
[0077] 实际情况中,上述根据源数据包计算运算数据包W及根据未丢失源数据包与运算 数据包计算丢失的源数据包的方式可W有很多种,如采用前向纠错(Forward Error Corr e c t i on;简称:阳C)算法的方式,本发明实施例对此不予限定。
[0078] 可选的,本发明实施例中,本发明实施例中,发送端在确定冗余比率之后根据冗余 比率向接收端发送数据包,可W通过如下方式实现:
[0079] 发送端将每个原始数据包复制K份,生成每个所述原始数据包对应的K个重复数据 包,将每个所述原始数据包W及所述原始数据包对应的K个重复数据包发送给所述接收端, 其中,K为所述冗余比率的取上整值。
[0080] 上述技术方案中,根据丢包率,对每个原始数据包进行复制,向接收端发送每个原 始数据包及其复制后的K个重复数据包,尽可能减少丢包重传的几率。
[0081] 本发明实施例还提供一种数据发送装置,图2为该数据发送装置的结构示意框图, 包括:
[0082] 第一确定模块201,用于确定与接收端之间链路的丢包率;
[0083] 第二确定模块202,用于根据丢包率确定冗余比率,冗余比率用于表征发送端发送 的冗余数据包与原始数据包的数量比值;
[0084] 发送模块203,用于根据冗余比率向接收端发送数据包。
[0085] 在一些可能的实现方式中,发送模块203具体用于:根据冗余比率W及Μ个原始数 据包,生成Ν个冗余数据包,并向接收端发送Μ个原始数据包W及Ν个冗余数据包,其中,Ν由Μ 与冗余比率的乘积所确定。
[0086] 在一些可能的实现方式中,冗余数据包包括:对Μ个原始数据包中的任一原始数据 包进行复制获得的重复数据包,或者,根据Μ个原始数据包中至少两个数据包进行运算获得 的运算数据包。
[0087] 在一些可能的实现方式中,发送模块203具体用于:将每个原始数据包复制Κ份,生 成每个原始数据包对应的Κ个重复数据包,将每个原始数据包W及原始数据包对应的Κ个重 复数据包发送给接收端,其中,Κ为冗余比率的取上整值。
[0088] 在一些可能的实现方式中,冗余比率可W表示为:
[0089]
,其中,a为丢包率。
[0090] W上数据发送装置包含的个模块的具体实现方式可W参照图1的实施例的中由发 送端执行的对应步骤,本发明实施例不再寶述。
[0091] 本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0092] 上述技术方案中,发送端在向接收端发送数据时,根据链路的丢包率确定冗余比 率,根据冗余比率生成冗余数据包,向接收端发送原始数据包W及冗余数据包,W在原始数 据包丢失后,接收端能够根据冗余数据包恢复丢失的原始数据包,进而无需发送端向接收 端进行数据重传,由于减少数据重传时发送端确定收不到ACK报文的耗时,能够减少整个数 据传输过程的耗时。其中,发送端向接收端发送的冗余数据包的数量由冗余比率确定,而冗 余比率由链路的丢包率确定,换言之,发送端发送的冗余数据包的数量由接收端可能丢失 的原始数据包的数量所确定,所W,本发明实施例中,发送端可W既使得接收端能够根据冗 余数据包确定丢失的原始数据包,也能够尽可能的减少冗余数据包的数量。
[0093] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序 产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实 施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产 品的形式。
[0094] 本发明是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流 程和/或方框、W及流程图和/或方框图中的流程和/或方框的结合。可提供运些计算机程序 指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器W产 生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实 现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0095] 显然,本领域的技术人员可W对本发明进行各种改动和变型而不脱离本发明的精 神和范围。运样,倘若本发明的运些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含运些改动和变型在内。
【主权项】
1. 一种数据传输方法,其特征在于,包括: 发送端确定与接收端之间链路的丢包率; 所述发送端根据所述丢包率确定冗余比率,所述冗余比率用于表征所述发送端发送的 冗余数据包与原始数据包之间的相对数量; 所述发送端根据所述冗余比率向所述接收端发送数据包。2. 如权利要求1所述的方法,其特征在于,所述发送端根据所述冗余比率向所述接收端 发送数据包,包括: 所述发送端根据所述冗余比率以及Μ个原始数据包,生成N个冗余数据包,并向所述接 收端发送所述Μ个原始数据包以及所述Ν个冗余数据包,其中,Ν由Μ与所述冗余比率的乘积 所确定。3. 如权利要求3所述的方法,其特征在于,所述冗余数据包包括:对所述Μ个原始数据包 中的任一原始数据包进行复制获得的重复数据包,或者,根据所述Μ个原始数据包中至少两 个数据包进行运算获得的运算数据包。4. 如权利要求1所述的方法,其特征在于,所述发送端根据所述冗余比率向所述接收端 发送数据包,包括: 所述发送端将每个所述原始数据包复制Κ份,生成每个所述原始数据包对应的Κ个重复 数据包,将每个所述原始数据包以及所述原始数据包对应的Κ个重复数据包发送给所述接 收端,其中,Κ为所述冗余比率的取上整值。5. 如权利要求1至4任一项所述的方法,其特征在于,所述冗余比率可以表示为:其中,a为所述丢包率。6. -种数据发送装置,其特征在于,包括: 第一确定模块,用于确定与接收端之间链路的丢包率; 第二确定模块,用于根据所述丢包率确定冗余比率,所述冗余比率用于表征所述发送 端发送的冗余数据包与原始数据包的数量比值; 发送模块,用于根据所述冗余比率向所述接收端发送数据包。7. 如权利要求6所述的装置,其特征在于,所述发送模块具体用于:根据所述冗余比率 以及Μ个原始数据包,生成N个冗余数据包,并向所述接收端发送所述Μ个原始数据包以及所 述Ν个冗余数据包,其中,Ν由Μ与所述冗余比率的乘积所确定。8. 如权利要求7所述的装置,其特征在于,所述冗余数据包包括:对所述Μ个原始数据包 中的任一原始数据包进行复制获得的重复数据包,或者,根据所述Μ个原始数据包中至少两 个数据包进行运算获得的运算数据包。9. 如权利要求6所述的装置,其特征在于,所述发送模块具体用于:将每个所述原始数 据包复制Κ份,生成每个所述原始数据包对应的Κ个重复数据包,将每个所述原始数据包以 及所述原始数据包对应的Κ个重复数据包发送给所述接收端,其中,Κ为所述冗余比率的取 上整值。10. 如权利要求6至9任一项所述的装置,其特征在于,所述冗余比率可以表示为:中,a为所述丢包率。
【文档编号】H04L1/00GK105871514SQ201610339770
【公开日】2016年8月17日
【申请日】2016年5月19日
【发明人】李洪福
【申请人】乐视控股(北京)有限公司, 乐视云计算有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1