网络数据传输方法、装置及电子设备与流程

文档序号:17480701发布日期:2019-04-20 06:25阅读:152来源:国知局
网络数据传输方法、装置及电子设备与流程

本发明涉及计算机应用技术领域,尤其涉及一种网络数据传输方法、装置及电子设备。



背景技术:

当前,在移动互联网中,当进行网络数据传输时,有时会因为网络丢包而进行数据重发。丢包,顾名思义,在通信中是指通信数据包丢失,表现为一个或多个数据包(packet)的数据无法透过网络到达目的地。丢包可能造成流媒体技术、volp、在线游戏和视频会议的抖动,并会一定程度上影响到其他的网上应用。当丢包发生时,网络数据传输的接收方可以要求发送方重传丢失的数据包,或者发送方自动地重新发送丢失的数据包。网络丢包率是指数据包丢失部分与所传输数据包总数的比值,当网络丢包率比较高时,进行丢失数据包的重传会导致网络延迟相对较大。



技术实现要素:

有鉴于此,本发明实施例提供一种网络数据传输方法、装置及电子设备,能够利用前向纠错技术减少网络丢包需要重传带来的网络延迟,让网络延迟更加平稳。

第一方面,本发明实施例提供一种网络数据传输方法,所述方法应用于发送端,所述方法包括:

缓存所获取到的数据包,获得备份数据包;

向接收端发送所获取到的数据包;

当所述备份数据包的数量等于预定数量时,将所述备份数据包全部取出,基于所述备份数据包与fec算法计算出冗余数据包;

向接收端发送所述冗余数据包,其中,所述备份数据包和计算出的所述冗余数据包作为一组以使接收端判断属于同一组的数据包的数量是否等于预定数量。

结合第一方面,在第一方面的第一种实施方式中,各数据包的包头携带数据包编号,各数据包的数据包编号按照发送的先后顺序依次递增。

第二方面,本发明实施例提供另一种网络数据传输方法,所述方法应用于接收端,所述方法包括:

接收发送端发送的数据包;

对接收到的数据包进行缓存,获得备份数据包;

判断所述备份数据包中属于同一组的数据包的数量是否等于预定数量;

若等于预定数量,则基于所述备份数据包与fec算法计算出丢失的数据包。

结合第二方面,在第二方面的第一种实施方式中,各数据包的包头携带数据包编号,各数据包的数据包编号按照发送的先后顺序依次递增;

所述判断所述备份数据包中属于同一组的数据包的数量是否等于预定数量包括:根据所述备份数据包的编号判断属于同一组的数据包的数量是否等于预定数量。

结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,在所述基于所述备份数据包与fec算法计算出丢失的数据包之后,所述方法还包括:

将计算出的所述丢失的数据包放入业务层处理。

结合第二方面的第一种实施方式,在第二方面的第三种实施方式中,在所述基于所述备份数据包与fec算法计算出丢失的数据包之后,所述方法还包括:

清理所述备份数据包。

第三方面,本发明实施例提供一种网络数据传输装置,所述装置位于发送端,所述装置包括:

第一缓存单元,用于缓存所获取到的数据包,获得备份数据包;

第一发送单元,用于向接收端发送所述第一缓存单元所获取到的数据包;

第一计算单元,用于当所述备份数据包的数量等于预定数量时,将所述备份数据包全部取出,基于所述备份数据包与fec算法计算出冗余数据包;

第二发送单元,用于向接收端发送所述冗余数据包,其中,所述备份数据包和计算出的所述冗余数据包作为一组,以使接收端判断属于同一组的数据包的数量是否等于预定数量。

结合第三方面,在第三方面的第一种实施方式中,各数据包的包头携带数据包编号,各数据包的数据包编号按照发送的先后顺序依次递增。

第四方面,本发明实施例提供另一种网络数据传输装置,所述装置位于接收端,所述装置包括:

接收单元,用于接收发送端发送的数据包;

第二缓存单元,用于对所述接收单元接收到的数据包进行缓存,获得备份数据包;

判断单元,用于判断所述备份数据包中属于同一组的数据包的数量是否等于预定数量;

第二计算单元,用于当所述判断单元判断所述备份数据包中属于同一组的数据包的数量等于预定数量时,基于所述备份数据包与fec算法计算出丢失的数据包。

结合第四方面,在第四方面的第一种实施方式中,各数据包的包头携带数据包编号,各数据包的数据包编号按照发送的先后顺序依次递增;

所述判断单元,用于根据所述备份数据包的编号判断属于同一组的数据包的数量是否等于预定数量。

结合第四方面的第一种实施方式,在第四方面的第二种实施方式中,所述装置还包括:

处理单元,用于在所述第二计算单元基于所述备份数据包与fec算法计算出丢失的数据包之后,将计算出的所述丢失的数据包放入业务层处理。

结合第四方面的第一种实施方式,在第四方面的第三种实施方式中,所述装置还包括:

清理单元,用于在所述第二计算单元基于所述备份数据包与fec算法计算出丢失的数据包之后,清理所述备份数据包。

第五方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述第三方面中任一所述的网络数据传输方法。

第六方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述第四方面中任一所述的网络数据传输方法。

本发明实施例提供的网络数据传输方法、装置及电子设备,发送端向接收端发送所获取到的数据包,获得备份数据包,当所述备份数据包的数量等于预定数量时,将所述备份数据包全部取出,基于所述备份数据包与fec算法计算出冗余数据包并向接收端发送,其中,所述备份数据包和计算出的所述冗余数据包作为一组,接收端对接收到的数据包进行缓存,当判断所述备份数据包中属于同一组的数据包的数量等于预定数量时,基于所述备份数据包与fec算法计算出丢失的数据包。与现有技术相比,本发明可以在发生丢包时利用前向纠错技术根据冗余数据包计算出丢失的数据包,减少网络丢包需要重传带来的网络延迟,让网络延迟更加平稳。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明网络数据传输方法实施例一的流程图;

图2为本发明网络数据传输方法实施例二的流程图;

图3为本发明网络数据传输方法实施例三的流程图;

图4为本发明网络数据传输装置实施例一的结构示意图;

图5为本发明网络数据传输装置实施例二的结构示意图;

图6为本发明网络数据传输装置实施例三的结构示意图;

图7为本发明电子设备实施例一的结构示意图;

图8为本发明电子设备实施例二的结构示意图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图1为本发明网络数据传输方法实施例一的流程图,所述方法应用于发送端,如图1所示,本实施例的方法可以包括:

步骤s11、缓存所获取到的数据包,获得备份数据包。

本实施例中,发送端首先获取待发送的数据包,然后将待发送的数据包进行缓存,获得备份数据包,具体地,发送端可以建立缓存队列,将待发送的数据包缓存至缓存队列中,缓存队列中的数据包形成备份数据包。

步骤s12、向接收端发送所获取到的数据包。

本实施例中,发送端向接收端发送的数据包的包头携带数据包编号,各数据包的数据包编号按照发送的先后顺序依次递增。

步骤s13、当所述备份数据包的数量等于预定数量时,将所述备份数据包全部取出,基于所述备份数据包与fec算法(forwarderrorcorrection,前向纠错)计算出冗余数据包。

其中,fec算法的基本原理就是在发送端发送数据包时插入冗余包,这样即使接收端收到的数据有所丢包(丢包数不大于冗余包时)也是能还原出所有的数据包的。在计算冗余包时,通常可以采用一阶冗余算法、二阶冗余算法或三阶冗余算法,其中:

一阶冗余算法,就是每n个数据插入一个冗余数据(也即fec编码组长度为n+1);这n个数据和其对应的冗余数据构成一组数据,这组数据中丢掉任何一个数据都可以通过另外n个数据恢复出来;

二阶冗余算法,就是每n个数据插入两个冗余数据(也即fec编码组长度为n+2);这n个数据和其对应的冗余数据构成一组数据,这组数据中丢掉任何一或两个数据都可以恢复出来;

三阶冗余算法,就是每n个数据插入三个冗余数据;这n个数据和其对应的冗余数据构成一组数据,这组数据中丢掉任意m个(m<=3)数据都可以通过收到的其它数据恢复出来。

fec算法的实现原理具体为:在rtp或私有协议头上扩展出包组头(grouphead),一个组有k个数据包和r个冗余数据包组成,它们在组内拥有不同的组号,通过组号的连续性可以判断本组内数据包的丢失情况,从而选择性的予以恢复。因为udp协议保障了包内数据的正确性,所以无需考虑包内纠错的情况。组是一个完整的独立的fec处理单元,不同组之间无相关性。由于冗余性的存在,一个组中任意k个数据包可以用来重建k个原始数据包,如果丢失数据包数小于等于r,接收端收到一个组中任意的k个数据包后,即可以通过组号信息确定丢失包的相对位置并进行fec解码,以恢复k个原始数据包。

步骤s14、向接收端发送所述冗余数据包,其中,所述备份数据包和计算出的所述冗余数据包作为一组,以使接收端判断属于同一组的数据包的数量是否等于预定数量。

本实施例,发送端向接收端发送所获取到的数据包,获得备份数据包,当所述备份数据包的数量等于预定数量时,将所述备份数据包全部取出,基于所述备份数据包与fec算法计算出冗余数据包并向接收端发送,其中,所述备份数据包和计算出的所述冗余数据包作为一组,以使接收端对接收到的数据包进行缓存,当判断所述备份数据包中属于同一组的数据包的数量等于预定数量时,基于所述备份数据包与fec算法计算出丢失的数据包。与现有技术相比,本发明可以在发生丢包时利用前向纠错技术根据冗余数据包计算出丢失的数据包,减少网络丢包需要重传带来的网络延迟,让网络延迟更加平稳。

图2为本发明网络数据传输方法实施例二的流程图,所述方法应用于接收端,如图2所示,本实施例的方法可以包括:

步骤s21、接收发送端发送的数据包。

本实施例中,各数据包的包头携带数据包编号,各数据包的数据包编号按照发送的先后顺序依次递增。

步骤s22、对接收到的数据包进行缓存,获得备份数据包。

本实施例中,接收端可以建立缓存队列,将所接收到的数据包缓存至缓存队列中。

步骤s23、判断所述备份数据包中属于同一组的数据包的数量是否等于预定数量。

本实施例中,可以根据所述备份数据包的编号判断属于同一组的数据包的数量是否等于预定数量。

步骤s24、若等于预定数量,则基于所述备份数据包与fec算法计算出丢失的数据包。

其中,fec算法的实现原理为:在rtp或私有协议头上扩展出包组头(grouphead),一个组有k个数据包和r个冗余数据包组成,它们在组内拥有不同的组号,通过组号的连续性可以判断本组内数据包的丢失情况,从而选择性的予以恢复。因为udp协议保障了包内数据的正确性,所以无需考虑包内纠错的情况。组是一个完整的独立的fec处理单元,不同组之间无相关性。由于冗余性的存在,一个组中任意k个数据包可以用来重建k个原始数据包,如果丢失数据包数小于等于r,接收端收到一个组中任意的k个数据包后,即可以通过组号信息确定丢失包的相对位置并进行fec解码,以恢复k个原始数据包。

进一步地,在基于所述备份数据包与fec算法计算出丢失的数据包之后,接收端还可以将计算出的所述丢失的数据包放入业务层处理,并对所缓存的已接收到的数据包进行清理。

本实施例,接收端接收发送端发送的数据包并对接收到的数据包进行缓存,获得备份数据包,当判断所述备份数据包中属于同一组的数据包的数量等于预定数量时,基于所述备份数据包与fec算法计算出丢失的数据包。与现有技术相比,本发明可以在发生丢包时利用前向纠错技术根据冗余数据包计算出丢失的数据包,减少网络丢包需要重传带来的网络延迟,让网络延迟更加平稳。

图3为本发明网络数据传输方法实施例三的流程图,本实施例以发送两个数据包冗余1个数据包为例进行说明。如图3所示,本实施例的方法可以包括:

步骤s31、发送端缓存所获取到的数据包,获得备份数据包。

本步骤与步骤s11相同,发送端可以建立缓存队列,将待发送的数据包缓存至缓存队列中。

步骤s32、发送端向接收端发送所获取到的数据包。

本实施例中,发送端向接收端发送的数据包的包头携带4字节的数据包编号,各数据包的数据包编号按照发送的先后顺序从1开始依次递增。

步骤s33、当所述备份数据包的数量等于预定数量时,发送端将所述备份数据包全部取出,基于所述备份数据包与fec算法计算出冗余数据包。

本实施例中,发送端根据缓存的各数据包的编号确定所述备份数据包的数量等于2时,将所述备份数据包全部取出,基于所述备份数据包与fec算法计算出冗余数据包。

步骤s34、发送端向接收端发送所述冗余数据包,其中,所述备份数据包和计算出的所述冗余数据包作为一组,以使接收端判断属于同一组的数据包的数量是否等于预定数量。

本实施例中,发送端将2个数据包和1个冗余数据包作为一组。

步骤s35、接收端对接收到的数据包进行缓存,获得备份数据包。

本实施例中,接收端可以建立缓存队列,将所接收到的数据包缓存至缓存队列中。

步骤s36、接收端判断所述备份数据包中属于同一组的数据包的数量是否等于预定数量。

本实施例中,接收端根据所述备份数据包的编号判断属于同一组的数据包的数量是否等于2。

步骤s37、若等于预定数量,则接收端基于所述备份数据包与fec算法计算出丢失的数据包。

本步骤与步骤s24相同,在此不再赘述。

本实施例,发送端向接收端发送所获取到的数据包,获得备份数据包,当所述备份数据包的数量等于预定数量时,将所述备份数据包全部取出,基于所述备份数据包与fec算法计算出冗余数据包并向接收端发送,其中,所述备份数据包和计算出的所述冗余数据包作为一组,以使接收端对接收到的数据包进行缓存,当判断所述备份数据包中属于同一组的数据包的数量等于预定数量时,基于所述备份数据包与fec算法计算出丢失的数据包。与现有技术相比,本发明可以在发生丢包时利用前向纠错技术根据冗余数据包计算出丢失的数据包,减少网络丢包需要重传带来的网络延迟,让网络延迟更加平稳。

图4为本发明网络数据传输装置实施例一的结构示意图,所述装置位于发送端,如图4所示,本实施例的装置可以包括:

第一缓存单元11,用于缓存所获取到的数据包,获得备份数据包;

第一发送单元12,用于向接收端发送所述第一缓存单元11所获取到的数据包;

第一计算单元13,用于当所述备份数据包的数量等于预定数量时,将所述备份数据包全部取出,基于所述备份数据包与fec算法计算出冗余数据包;

第二发送单元14,用于向接收端发送所述冗余数据包,其中,所述备份数据包和计算出的所述冗余数据包作为一组,以使接收端判断属于同一组的数据包的数量是否等于预定数量。

其中,各数据包的包头携带数据包编号,各数据包的数据包编号按照发送的先后顺序依次递增。

本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图5为本发明网络数据传输装置实施例二的结构示意图,所述装置位于接收端,如图5所示,本实施例的装置可以包括:

接收单元21,用于接收发送端发送的数据包;

第二缓存单元22,用于对所述接收单元21接收到的数据包进行缓存,获得备份数据包;

判断单元23,用于判断所述备份数据包中属于同一组的数据包的数量是否等于预定数量;

第二计算单元24,用于当所述判断单元23判断所述备份数据包中属于同一组的数据包的数量等于预定数量时,基于所述备份数据包与fec算法计算出丢失的数据包。

其中,各数据包的包头携带数据包编号,各数据包的数据包编号按照发送的先后顺序依次递增;

所述判断单元23,用于根据所述备份数据包的编号判断属于同一组的数据包的数量是否等于预定数量。

图6为本发明网络数据传输装置实施例三的结构示意图,如图6所示,本实施例的装置在图5所示装置结构的基础上,进一步地,所述装置还包括:

处理单元25,用于在所述第二计算单元24基于所述备份数据包与fec算法计算出丢失的数据包之后,将计算出的所述丢失的数据包放入业务层处理。

进一步地,所述装置还包括:

清理单元26,用于在所述第二计算单元24基于所述备份数据包与fec算法计算出丢失的数据包之后,清理所述备份数据包。

本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本发明实施例适用于基于udp(userdatagramprotocol,用户数据报协议)的数据传输,但不仅限于此。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。

在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本发明实施例还提供一种电子设备,所述电子设备包含前述图4对应实施例所述的装置。

图7为本发明电子设备实施例一的结构示意图,可以实现本发明图1所示实施例的流程,如图7所示,上述电子设备可以包括:壳体31、处理器32、存储器33、电路板34和电源电路35,其中,电路板34安置在壳体31围成的空间内部,处理器32和存储器33设置在电路板34上;电源电路35,用于为上述电子设备的各个电路或器件供电;存储器33用于存储可执行程序代码;处理器32通过读取存储器33中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的网络数据传输方法。

处理器32对上述步骤的具体执行过程以及处理器32通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1所示实施例的描述,在此不再赘述。

本发明实施例还提供另一种电子设备,所述电子设备包含前述图5或图6对应实施例所述的装置。

图8为本发明电子设备实施例二的结构示意图,可以实现本发明图2所示实施例的流程,如图8所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的网络数据传输方法。

处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图2所示实施例的描述,在此不再赘述。

上述电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子设备。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1