一种数据包发送方法及装置与流程

文档序号:19019656发布日期:2019-11-01 20:32阅读:398来源:国知局
一种数据包发送方法及装置与流程
本发明涉及数据处理
技术领域
,特别是涉及一种数据包发送方法以及装置,以及一种计算机可读存储介质。
背景技术
:与传统的通信技术相比,4g通信技术最明显的优势在于通话质量及数据通信速度,最大数据传输速率达到100mbit/s,是目前3g上网速度的10倍以上,能很好的承载高清视频监控业务。用户数据报协议udp(英文全称为userdatagramprotocol)是4g通信技术中的常用协议,在udp链路传输过程中,由于udp传输为非可靠传输,传输有丢包现象,导致接收端接收的包序会出现乱序、丢序的现象,如果直接传输此种包,接收端将无法解码展示。技术实现要素:鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据包发送方法、一种数据包发送装置,以及一种计算机可读存储介质。为了解决上述问题,本发明实施例公开了一种数据包发送方法,包括4g图传服务器,与所述4g图传服务器通信连接的4g图传设备;所述4g图传服务器包括前向纠错fec模块;所述方法包括:所述4g图传服务器接收所述4g图传设备发送的多个数据包;所述数据包由4g图传设备获取,具有包序;所述4g图传服务器将所述多个数据包按所述包序顺序依次存入缓存;当所述缓存中的数据包达到预设缓存值时,所述4g图传服务器将当前缓存中包序最小的数据包n发送至所述fec模块,并判断当前缓存中下一个包序最小的数据包的包序是否为n+1;若当前缓存中下一个包序最小的数据包的包序为n+1,所述4g图传服务器将包序为n+1的数据包发送至所述fec模块;若当前缓存中下一个包序最小的数据包的包序大于n+1,所述4g图传服务器等待所述缓存中的数据包达到预设缓存值,再将所述缓存中包序最小的数据包发送至所述fec模块;所述4g图传服务器通过所述fec模块确定丢弃的数据包,并利用所述fec模块将丢弃的数据包找回。可选的,所述4g图传设备中包括多条第一用户数据报协议udp链路,所述4g图传服务器中包括多条第二udp链路;所述4g图传服务器接收所述4g图传设备发送的多个数据包的步骤进一步包括:所述4g图传服务器通过所述第二udp链路接收所述4g图传设备通过多条第一udp链路发送的多个数据包;所述数据包由所述4g图传设备分送给所述多条第一udp链路;所述4g图传服务器将所述多个数据包按所述包序顺序依次存入缓存之前,所述方法包括:所述4g图传服务器针对多条第二udp链路所接收的数据包,将同一个4g图传设备发送的数据包进行链路聚合。可选的,包括与所述4g图传服务器通信连接的视联网服务器,所述方法包括:所述4g图传服务器将所述fec模块发送的数据包发送至所述视联网服务器。为了解决上述问题,本发明实施例公开了另一种数据包发送方法,包括4g图传服务器,与所述4g图传服务器通信连接的4g图传设备;所述4g图传服务器包括前向纠错fec模块;所述方法包括:所述4g图传设备获取数据包,所述数据包具有包序;所述4g图传设备将数据包发送至所述4g图传服务器;所述4g图传服务器用于将所述多个数据包按所述包序顺序依次存入缓存;当所述缓存中的数据包达到预设缓存值时,所述4g图传服务器用于将当前缓存中包序最小的数据包n发送至所述fec模块,并判断当前缓存中下一个包序最小的数据包的包序是否为n+1;若当前缓存中下一个包序最小的数据包的包序为n+1,所述4g图传服务器用于将包序为n+1的数据包发送至所述fec模块;若当前缓存中下一个包序最小的数据包的包序大于n+1,所述4g图传服务器等待所述缓存中的数据包达到预设缓存值,再将所述缓存中包序最小的数据包发送至所述fec模块;所述4g图传服务器用于通过所述fec模块确定丢弃的数据包,并利用所述fec模块将丢弃的数据包找回。可选的,所述4g图传设备中包括多条第一用户数据报协议udp链路;所述方法包括:所述4g图传设备将获取的数据包进行排序;所述4g图传设备将排序后的数据包按序循环分送给所述多条第一udp链路。可选的,所述方法包括:所述4g图传设备依据当前带宽创建多条第一udp链路。为了解决上述问题,本发明实施例还公开了一种数据包发送装置,包括4g图传服务器,与所述4g图传服务器通信连接的4g图传设备;所述4g图传服务器包括前向纠错fec模块;所述4g图传服务器包括:数据包接收模块,用于接收所述4g图传设备发送的多个数据包;所述数据包由4g图传设备获取,具有包序;数据包存入模块,用于将所述多个数据包按所述包序顺序依次存入缓存;第一发送模块,用于在所述缓存中的数据包达到预设缓存值时,将当前缓存中包序最小的数据包n发送至所述fec模块,并判断当前缓存中下一个包序最小的数据包的包序是否为n+1;第二发送模块,用于在当前缓存中下一个包序最小的数据包的包序为n+1时,将包序为n+1的数据包发送至所述fec模块;第三发送模块,用于在当前缓存中下一个包序最小的数据包的包序大于n+1时,等待所述缓存中的数据包达到预设缓存值,再将所述缓存中包序最小的数据包发送至所述fec模块;数据包找回模块,用于通过所述fec模块确定丢弃的数据包,并利用所述fec模块将丢弃的数据包找回。为了解决上述问题,本发明实施例还公开了另一种数据包发送装置,包括4g图传服务器,与所述4g图传服务器通信连接的4g图传设备;所述4g图传服务器包括前向纠错fec模块;所述4g图传设备包括:数据包获取模块,用于获取数据包,所述数据包具有包序;数据包发送模块,用于将数据包发送至所述4g图传服务器;所述4g图传服务器用于将所述多个数据包按所述包序顺序依次存入缓存;当所述缓存中的数据包达到预设缓存值时,所述4g图传服务器用于将当前缓存中包序最小的数据包n发送至所述fec模块,并判断当前缓存中下一个包序最小的数据包的包序是否为n+1;若当前缓存中下一个包序最小的数据包的包序为n+1,所述4g图传服务器用于将包序为n+1的数据包发送至所述fec模块;若当前缓存中下一个包序最小的数据包的包序大于n+1,所述4g图传服务器等待所述缓存中的数据包达到预设缓存值,再将所述缓存中包序最小的数据包发送至所述fec模块;所述4g图传服务器用于通过所述fec模块确定丢弃的数据包,并利用所述fec模块将丢弃的数据包找回。本发明实施例还公开了一种装置,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如本发明实施例所述的一个或多个的数据包发送方法。本发明实施例还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明实施例所述的数据包发送方法。本发明实施例包括以下优点:本发明实施例通过设置缓存,为4g图传服务器重新对数据包排序提供了有效的处理时间,能大大降低发送至后续设备中的数据包乱序、丢序的现象;采用按序发送数据包的方式可进一步降低数据包乱序、丢序的问题;在4g图传服务器中设置fec模块,并利用fec模块特性可将丢弃的数据包找回,可最大程度地保证视频播放端能将数据包正常解码展示。附图说明图1是本发明的一种视联网的组网示意图;图2是本发明的一种节点服务器的硬件结构示意图;图3是本发明的一种接入交换机的硬件结构示意图;图4是本发明的一种以太网协转网关的硬件结构示意图;图5是本发明实施例的一种数据包发送方法实施例一的步骤流程图;图6是本发明实施例的一种数据包发送方法实施例二的步骤流程图;图7是本发明实施例的一种数据包发送装置实施例一的结构示意图;图8是本发明实施例的一种数据包发送装置实施例二的结构示意图。具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、vod点播、电视邮件、个性录制(pvr)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:视联网所应用的部分技术如下所述:网络技术(networktechnology)视联网的网络技术创新改良了传统以太网(ethernet),以面对网络上潜在的巨大第一视频流量。不同于单纯的网络分组包交换(packetswitching)或网络电路交换(circuitswitching),视联网技术采用packetswitching满足streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。交换技术(switchingtechnology)视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载ip数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。服务器技术(servertechnology)视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。储存器技术(storagetechnology)统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级ip互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。网络安全技术(networksecuritytechnology)视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。服务创新技术(serviceinnovationtechnology)统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或pc直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。视联网的组网如下所述:视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。如图1所示,视联网分为接入网和城域网两部分。接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。视联网设备分类1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网协转网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网协转网关),终端(包括各种机顶盒,编码板,存储器等)。各接入网设备的具体硬件结构为:节点服务器:如图2所示,主要包括网络接口模块201、交换引擎模块202、cpu模块203、磁盘阵列模块204;其中,网络接口模块201,cpu模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模块202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;cpu模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。接入交换机:如图3所示,主要包括网络接口模块(下行网络接口模块301、上行网络接口模块302)、交换引擎模块303和cpu模块304;其中,下行网络接口模块301进来的包(上行数据)进入包检测模块305;包检测模块305检测包的目地地址(da)、源地址(sa)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块303,否则丢弃;上行网络接口模块302进来的包(下行数据)进入交换引擎模块303;cpu模块304进来的数据包进入交换引擎模块303;交换引擎模块303对进来的包进行查地址表306的操作,从而获得包的导向信息;如果进入交换引擎模块303的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃;如果进入交换引擎模块303的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃。交换引擎模块303轮询所有包缓存器队列,可以包括两种情形:如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。码率控制模块308是由cpu模块304来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。cpu模块304主要负责与节点服务器之间的协议处理,对地址表306的配置,以及,对码率控制模块308的配置。以太网协转网关:如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、cpu模块404、包检测模块405、码率控制模块408、地址表406、包缓存器407和mac添加模块409、mac删除模块410。其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网macda、以太网macsa、以太网lengthorframetype、视联网目地地址da、视联网源地址sa、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由mac删除模块410减去macda、macsa、lengthorframetype(2byte),并进入相应的接收缓存,否则丢弃;下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目地地址da获知对应的终端的以太网macda,添加终端的以太网macda、以太网协转网关的macsa、以太网lengthorframetype,并发送。以太网协转网关中其他模块的功能与接入交换机类似。终端:主要包括网络接口模块、业务处理模块和cpu模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、cpu模块;编码板主要包括网络接口模块、视音频编码引擎模块、cpu模块;存储器主要包括网络接口模块、cpu模块和磁盘阵列模块。1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和cpu模块;城域服务器主要包括网络接口模块、交换引擎模块和cpu模块构成。2、视联网数据包定义2.1接入网数据包定义接入网的数据包主要包括以下几部分:目的地址(da)、源地址(sa)、保留字节、payload(pdu)、crc。如下表所示,接入网的数据包主要包括以下几部分:dasareservedpayloadcrc其中:目的地址(da)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;源地址(sa)也是由8个字节(byte)组成,定义与目的地址(da)相同;保留字节由2个字节组成;payload部分根据不同的数据报的类型有不同的长度,如果是各种协议包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;crc有4个字节组成,其计算方法遵循标准的以太网crc算法。2.2城域网数据包定义城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。本说明书中标签的定义和mpls(multi-protocollabelswitch,多协议标签交换)的标签的定义类似,假设设备a和设备b之间有两个连接,那么数据包从设备a到设备b就有2个标签,数据包从设备b到设备a也有2个标签。标签分入标签、出标签,假设数据包进入设备a的标签(入标签)是0x0000,这个数据包离开设备a时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与mpls的标签分配是不同的,mpls的标签分配是交换机、服务器互相协商的结果。如下表所示,城域网的数据包主要包括以下几部分:dasareserved标签payloadcrc即目的地址(da)、源地址(sa)、保留字节(reserved)、标签、payload(pdu)、crc。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。参考图5,示出了本发明实施例的一种数据包发送方法实施例一的步骤流程图,包括4g图传服务器,与所述4g图传服务器通信连接的4g图传设备;所述4g图传服务器包括前向纠错fec模块。在本发明的各个实施例中,4g图传设备是一种无线视频传输设备,属于4g图传系统中的前端设备,应用在各类车载、船载、机载项目当中,不限传输距离。4g图传服务器为4g图传系统中的后端处理平台,一个4g图传服务器接收多个4g图传设备发送的信息。4g图传设备与4g图传服务器通过udp链路进行数据传输。基于在udp链路传输过程中,传输时常有丢包现象,导致接收端接收的包序会出现乱序、丢序的现象,如果直接传输此种包,接收端将无法解码展示。基于上述视联网特性和本发明实施例的技术问题,本发明实施例具体可以包括如下步骤:首先,执行步骤s501,所述4g图传服务器接收所述4g图传设备发送的多个数据包;所述数据包由4g图传设备获取,具有包序;在本发明实施例中,数据包由4g图传设备获取的具体实现方式参照实施例二的解释,在此不多赘述。然后4g图传设备将具有包序的数据包发送至4g图传服务器。由于4g图传设备是专门针对视频进行传输的一款无线视频传输设备,在具体应用时,4g图传设备时常会接收到很多具有高画质视频的数据包,为保证具有高画质视频的数据包正确、高品质的传输,在本发明一优选实施例中,在4g图传设备与4g图传服务器之间提供了一种4g传输方法,其中,所述4g图传设备中包括多条第一用户数据报协议udp链路,所述4g图传服务器中包括多条第二udp链路;基于上述udp链路,步骤s501的实现步骤包括:所述4g图传服务器通过所述第二udp链路接收所述4g图传设备通过多条第一udp链路发送的多个数据包;所述数据包由所述4g图传设备分送给所述多条第一udp链路。本发明实施例通过上述多链路的传输方式可平均带宽,增大码率,以避免码率过低时,会使得传输到视联网中的图像画质大大降低,影响观看的清晰度,或导致视联网观看方出现视频卡顿等等问题。继续基于上述udp链路的方案,4g图传服务器将多个数据包按所述包序顺序依次存入缓存之前,所述方法还包括:所述4g图传服务器针对多条第二udp链路所接收的数据包,将同一个4g图传设备发送的数据包进行链路聚合。在本发明实施例中,采用链路聚合可将多条第二udp链路所接收的数据包结合在一个单个的信道中,然后对单个信道中的数据包进行筛选,将同一个4g图传设备发送的数据包进行整合。4g图传设备都具有唯一的设备标识,数据包从4g图传设备发送至4g图传服务器时会被添加上该4g图传设备的设备标识,通过设备标识即可识别来源于同一个4g图传设备的数据包。链路聚合为通信领域的现有技术,具体聚合原理在此不多赘述。接着,执行步骤s502,所述4g图传服务器将所述多个数据包按所述包序顺序依次存入缓存;在本发明实施例中,4g图传服务器会按包序的顺序,将经过链路聚合后的来源于同一个4g图传设备的数据包重新排序,然后将排好序后的多个数据包依次存入缓存。然后,执行步骤s503~s506。步骤s503,当所述缓存中的数据包达到预设缓存值时,所述4g图传服务器将当前缓存中包序最小的数据包n发送至所述fec模块,并判断当前缓存中下一个包序最小的数据包的包序是否为n+1;步骤s504,若当前缓存中下一个包序最小的数据包的包序为n+1,所述4g图传服务器将包序为n+1的数据包发送至所述fec模块;步骤s505,若当前缓存中下一个包序最小的数据包的包序大于n+1,所述4g图传服务器等待所述缓存中的数据包达到预设缓存值,再将所述缓存中包序最小的数据包发送至所述fec模块;步骤s506,所述4g图传服务器通过所述fec模块确定丢弃的数据包,并利用所述fec模块将丢弃的数据包找回。缓存的空间有限,且不能让视频接收端中出现过长的延时,导致画面中断,因此本发明实施例对缓存中的数据包的数量也进行了控制,预设缓存值为该缓存对数据包的最大存储量。预设缓存值可以为计数值,比如预设缓存值为1000个,那么缓存中的数量包≥1000个时,4g图传服务器就必须将当前缓存中包序最小的数据包n发送出去;预设缓存值也可为数据量值,比如缓存值为10m,那么当缓存中的数据包加起来的数据量值≥10m时,4g图传服务器也必须将当前缓存中包序最小的数据包n发送出去。上述n为该数据包的包序,比如n为5,表示包序为5的数据包,若4g图传设备发送的数据包中包序最小的为1,那么n为5的数据包按解码播放的顺序,应该是第5个被解码。4g图传服务器在将当前缓存中包序最小的数据包n发送出去后,会接着判断当前缓存中下一个包序最小的数据包的包序是否为n+1,如果是,也将n+1发送出去。由于udp链路的不稳定性,且受各种原因的影响,每条udp链路传输数据包的速度不一致,数据包出现乱序、丢序的现象,使得4g图传服务器不可能接收到包序连续的多个数据包,本发明实施例虽然利用缓存大大降低了数据包的乱序、丢序的现象,但是也不能避免数据包乱序、丢序问题,以保证数据包的完整有序。因此本发明实施例在将包序连续的数据包发送出去后,当遇到包序不连续的数据包,即当前缓存中下一个包序最小的数据包的包序大于n+1时,4g图传服务器会给包序为n+1的这个数据包一定的时间,该时间由缓存的预设缓存值决定。当缓存中的数据包再次达到预设缓存值,再将所述缓存中包序最小的数据包发送出去。这里的包序最小的数据包有两种结果,即一个是包序为n+1的这个数据包,或者是包序大于n+1的数据包。在本发明实施例中,4g图传服务器也包括fec模块,4g图传服务器将缓存中的数据包按序依次发送至fec模块,并利用fec模块将丢弃的数据包找回,fec模块具有编码和解码功能,采用纠错码(纠错码(errorcorrectingcode),在传输过程中发生错误后能在接收端自行发现或纠正的码)对数据流中错误的数据包进行纠错可将丢弃的数据包找回。利用fec模块将数据包找回的技术属于现有手段,在此不多赘述。具体的,发送至fec模块的数据包可能为以下情况:缓存的预设缓存值为10,目前一共接收到10个数据包,已达到预设缓存值,假设包序5和包序9的数据包已丢失,那么4g图传服务器将缓存中的数据包按序依次发送至fec模块的方式为:依次发送序号为1,2,3,4的数据包,判断出当前缓存中下一个包序最小的数据包的包序不是5,此时等待缓存中的数据包再次达到10个;此时有几种情况:第一种,包序为5的数据包已接入缓存中,包序为9的数据包未接收到,那此时当前缓存中包序最小的数据包为5号数据包,此次将序号为5,6,7,8的数据包发送至fec模块;判断出当前缓存中下一个包序最小的数据包的包序不是9,此时再次等待缓存中的数据包再次达到10个;第二种,包序5和包序9的数据包均未接收到,那此时当前缓存中包序最小的数据包为6号数据包,此次将序号为6,7,8的数据包发送至fec模块;判断出当前缓存中下一个包序最小的数据包的包序不是9,此时再次等待缓存中的数据包再次达到10个;第三种,包序5和包序9的数据包均接收到,那此时当前缓存中包序最小的数据包为5号数据包,此次将序号为5,6,7,8,9,10……的数据包依次发送至fec模块。综上,本发明实施例通过设置缓存,为4g图传服务器重新对数据包排序提供了有效的处理时间,能大大降低发送至后续设备中的数据包乱序、丢序的现象;采用按序发送数据包的方式可进一步降低数据包乱序、丢序的问题;在4g图传服务器中设置fec模块,并利用fec模块特性可将丢弃的数据包找回,可最大程度地保证视频播放端能将数据包正常解码展示,克服现有技术问题。在本发明实施例中,还包括与所述4g图传服务器通信连接的视联网服务器,所述方法包括:所述4g图传服务器将所述fec模块发送的数据包发送至所述视联网服务器。本发明实施例的4g图传服务器具有双类网卡,一类是视联网网卡,一类是互联网网卡,上述的各个udp链路均为互联网网卡。具体实现时。4g图传服务器通过视联网网卡将fec模块发送的数据包发送至视联网服务器,视联网服务器再将数据包转发至其他的视联网终端,用户可通过视联网终端远程观看本发明实施例所传送的视频。4g图传服务器所传输的数据接入视联网,利用视联网的特性,更大大的保证了数据包的安全性和视频的高清特性,为应急指挥场景的远程指挥提供了高品质的画面。参考图6,示出了本发明实施例的一种数据包发送方法实施例二的步骤流程图,包括4g图传服务器,与所述4g图传服务器通信连接的4g图传设备;所述4g图传服务器包括前向纠错fec模块;所述方法包括:步骤s601,所述4g图传设备获取数据包,所述数据包具有包序;在本发明各个实施例中,4g图传设备可与各个业务执行设备连接,各个业务执行设备可以为移动单兵设备、视频终端、音视频采集终端等。由于4g图传设备常用于应急指挥领域,下面,就针对应急指挥领域,对4g图传设备获取数据包进行说明:在本发明一优选实施例中,所述4g图传设备支持实时消息传输协议rtmp,还包括全景相机,所述4g图传设备与所述全景相机通信连接;所述4g图传设备获取数据包的步骤包括:所述4g图传设备通过网线接收所述全景相机发送的具有rtmp格式的数据包。在本发明优选实施例中,全景相机是一款可移动、360度全方位拍摄的相机,因其能够全方位拍摄直播录像,在应急指挥领域已开始应用,移动单兵可携带全景相机对现场环境进行全方位拍摄。已有技术中,全景相机要想接入视联网,通常只能通过监控接入服务器(监控接入服务器属于视联网中的一款成熟产品,能将互联网中的监控数据接入至视联网中)接入视联网,但是利用监控接入服务器接入视联网的流程较为麻烦且监控接入服务器通常位于固定位置,不适合应急指挥领域中的移动单兵的应用场景。本发明优选实施例将全景相机与支持rtmp协议的4g图传设备通过网线直连,数据传输仅经过不到1m的距离,比外接效率更高,无丢包现象,形成可靠传输。然后再利用本发明实施例的4g图传服务器接入视联网,替代了监控接入服务器的相关功能,实现了无需利用监控接入服务器就可将移动单兵通过全景相机采集的数据包发送至视联网中的技术方案,本发明实施例的4g图传设备体积小巧,便于携带,更适合应急指挥领域中的移动单兵的应用场景。在本发明实施例中,4g图传设备传输给4g图传服务器的数据包具有包序,关于包序的排列,可由与4g图传设备通信连接的业务执行设备编码排列,也可由4g图传设备编码排列。接着上述优选实施例,优选的,所述4g图传设备包括fec模块,所述方法包括:所述4g图传设备通过fec模块对所述数据包编码并添加上包序。具体的,针对像全景相机这类具有高画质采集功能设备,所采集的音视频需要大码率支持,所以本发明实施例在4g图传设备与4g图传服务器之间提供了另一种4g传输方法,其中,4g图传设备中包括多条第一用户数据报协议udp链路;就4g图传设备这一端而言,所述方法包括:所述4g图传设备将获取的数据包进行排序;所述4g图传设备将排序后的数据包按序循环分送给所述多条第一udp链路。具体的,4g图传设备将获取的数据包进行排序可指4g图传设备将获取的数据包按上述fec模块编码的包序进行排序。然后将排序后的数据包按序循环分送给所述多条第一udp链路,就4g图传服务器这一端而言,参照实施例一的优选方式,4g图传服务器通过所述第二udp链路接收所述4g图传设备通过多条第一udp链路发送的多个数据包。本发明实施例在4g图传设备与4g图传服务器的传输过程中采用多链路的传输方式可平均带宽,增大码率,以避免码率过低时,会使得传输到视联网中的图像画质大大降低,影响观看的清晰度,或导致视联网观看方出现视频卡顿等等问题。在一优选示例中,本发明实施例的4g图传设备将排序后的数据包按序循环分送给多条第一udp链路的实现方法如下:假设待发送的数据包有10个,编号依次为1,2,3,4,5,6,7,8,9,10;第一udp链路创建有3个,分别为第一udp链路a,第一udp链路b和第一udp链路c,4g图传设备将编号为1的数据包发送给第一udp链路a,将编号为2的数据包发送给第一udp链路b,将编号为3的数据包发送给第一udp链路c;然后接着又将编号为4的数据包发送给第一udp链路a,将编号为5的数据包发送给第一udp链路b,将编号为6的数据包发送给第一udp链路c,依次循环,直至将数据包发送完。本发明优选示例这种按序循环的发送方式能让每个第一udp链路都有足够的延时时间去发送数据包,可使得数据包按其包序发送至4g图传服务器中,不仅增大了码率,解决了全景相机所采集的数据传输到视联网中存在图像画质清晰度的问题,还进一步克服了现有技术中基于用户数据报协议udp传输的4g网络在传输过程中不稳定、易乱序丢包的问题。关于第一udp链路的数量如何确定,在本发明一可选实施例中示出了:所述4g图传设备依据当前带宽创建多条第一udp链路。具体实现时,一个第一udp链路由一张网卡实现,假若当前带宽是20mbps,一个网卡可以发送4mbps,那就需要5张网卡,一共创建5个第一udp链路。接下来,4g图传设备要将具有包序的数据包发送给4g图传服务器,执行步骤s602。步骤s602,所述4g图传设备将数据包发送至所述4g图传服务器;所述4g图传服务器用于将所述多个数据包按所述包序顺序依次存入缓存;当所述缓存中的数据包达到预设缓存值时,所述4g图传服务器用于将当前缓存中包序最小的数据包n发送至所述fec模块,并判断当前缓存中下一个包序最小的数据包的包序是否为n+1;若当前缓存中下一个包序最小的数据包的包序为n+1,所述4g图传服务器用于将包序为n+1的数据包发送至所述fec模块;若当前缓存中下一个包序最小的数据包的包序大于n+1,所述4g图传服务器等待所述缓存中的数据包达到预设缓存值,再将所述缓存中包序最小的数据包发送至所述fec模块;所述4g图传服务器用于通过所述fec模块确定丢弃的数据包,并利用所述fec模块将丢弃的数据包找回。在本发明实施例中,步骤s602的实现方法参照实施例一的步骤s502~步骤s506的解释,由于篇幅原因,在此不多赘述。综上,从步骤s601~步骤s602可知,本发明实施例从4g图传设备的角度提供了一种数据包发送方法的可行方案,通过设置缓存,为4g图传服务器重新对数据包排序提供了有效的处理时间,能大大降低发送至后续设备中的数据包乱序、丢序的现象;采用按序发送数据包的方式可进一步降低数据包乱序、丢序的问题;在4g图传服务器中设置fec模块,并利用fec模块特性可将丢弃的数据包找回,可最大程度地保证视频解码播放端能将数据包解码展示,克服现有技术问题。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。参考图7,示出了本发明实施例的一种数据包发送装置实施例一的结构示意图,包括4g图传服务器,与所述4g图传服务器通信连接的4g图传设备;所述4g图传服务器包括前向纠错fec模块;所述4g图传服务器可以包括如下模块:数据包接收模块701,用于接收所述4g图传设备发送的多个数据包;所述数据包由4g图传设备获取,具有包序;数据包存入模块702,用于将所述多个数据包按所述包序顺序依次存入缓存;第一发送模块703,用于在所述缓存中的数据包达到预设缓存值时,将当前缓存中包序最小的数据包n发送至所述fec模块,并判断当前缓存中下一个包序最小的数据包的包序是否为n+1;第二发送模块704,用于在当前缓存中下一个包序最小的数据包的包序为n+1时,将包序为n+1的数据包发送至所述fec模块;第三发送模块705,用于在当前缓存中下一个包序最小的数据包的包序大于n+1时,等待所述缓存中的数据包达到预设缓存值,再将所述缓存中包序最小的数据包发送至所述fec模块;数据包找回模块706,用于通过所述fec模块确定丢弃的数据包,并利用所述fec模块将丢弃的数据包找回。对应实施例一的方法,在本发明一优选实施例中,所述4g图传设备中包括多条第一用户数据报协议udp链路,所述4g图传服务器中包括多条第二udp链路;所述数据包接收模块701进一步包括如下子模块:链路接收子模块,用于通过所述第二udp链路接收所述4g图传设备通过多条第一udp链路发送的多个数据包;所述数据包由所述4g图传设备分送给所述多条第一udp链路;所述4g图传服务器将所述多个数据包按所述包序顺序依次存入缓存之前,所述4g图传服务器可以包括如下模块:链路聚合模块,用于针对多条第二udp链路所接收的数据包,将同一个4g图传设备发送的数据包进行链路聚合。对应实施例一的方法,在本发明一优选实施例中,包括与所述4g图传服务器通信连接的视联网服务器,所述4g图传服务器可以包括如下模块:视联网发送模块,用于将所述fec模块发送的数据包发送至所述视联网服务器。参考图8,示出了本发明实施例的一种数据包发送装置实施例二的结构示意图,包括4g图传服务器,与所述4g图传服务器通信连接的4g图传设备;所述4g图传服务器包括前向纠错fec模块;所述4g图传设备可以包括如下模块:数据包获取模块801,用于获取数据包,所述数据包具有包序;数据包发送模块802,用于将数据包发送至所述4g图传服务器;所述4g图传服务器用于将所述多个数据包按所述包序顺序依次存入缓存;当所述缓存中的数据包达到预设缓存值时,所述4g图传服务器用于将当前缓存中包序最小的数据包n发送至所述fec模块,并判断当前缓存中下一个包序最小的数据包的包序是否为n+1;若当前缓存中下一个包序最小的数据包的包序为n+1,所述4g图传服务器用于将包序为n+1的数据包发送至所述fec模块;若当前缓存中下一个包序最小的数据包的包序大于n+1,所述4g图传服务器等待所述缓存中的数据包达到预设缓存值,再将所述缓存中包序最小的数据包发送至所述fec模块;所述4g图传服务器用于通过所述fec模块确定丢弃的数据包,并利用所述fec模块将丢弃的数据包找回。对应实施例一的方法,在本发明一优选实施例中,所述4g图传设备中包括多条第一用户数据报协议udp链路;所述4g图传设备可以包括如下模块:数据包排序模块,用于将获取的数据包进行排序;循环分送模块,用于将排序后的数据包按序循环分送给所述多条第一udp链路。对应实施例一的方法,在本发明一优选实施例中,所述4g图传设备可以包括如下模块:udp链路创建模块,用于依据当前带宽创建多条第一udp链路。对于一种数据包发送装置实施例而言,由于其与一种数据包发送方法实施例基本相似,所以描述的比较简单,相关之处参见一种数据包发送方法实施例的部分说明即可。本发明实施例还提供了一种装置,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如本发明实施例所述的一个或多个的数据包发送方法。本发明实施例还提供了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明实施例所述的数据包发送方法。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。以上对本发明所提供的一种数据包发送方法、一种数据包发送装置,以及一种计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1