一种数据传输的方法和装置与流程

专利2022-06-30  68


本发明涉及网络
技术领域
,特别是涉及一种数据传输的方法和装置。
背景技术
:随着时代的发展,人们对高清视频的需求日益增加,尤其是在应急救灾等户外移动指挥场合中显得更为迫切。现有技术中,由于户外环境缺乏专门的数据传输线路,当需要进行高清视频传输时,往往需要借助多张移动网卡进行视频传输。然而,移动网卡容易受到多种因素影响,例如外界环境的情况、与基站的距离或者提供移动网卡的网络运营商,这些因素都导致移动网卡信号有强有弱,数据传输的带宽大小不同,但在数据传输的过程中无法根据每个移动网卡的传输带宽调整不同移动网卡的数据发送量,既浪费了空闲的传输带宽,也降低了数据的传输效率。技术实现要素:鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种数据传输的方法和装置,包括:一种数据传输的方法,应用于客户端,所述客户端部署于第一设备,所述第一设备具有多个网络适配器,所述方法包括:对所述多个网络适配器进行聚合,并采用所述多个网络适配器,建立与服务端的多条通信链路;在接收到所述服务端发送的针对所述多条通信链路的链路信息时,采用所述链路信息,更新针对所述多条通信链路的目标数据发送速度;在获取到所述第一设备发送的针对第二设备的数据包时,按照所述目标数据发送速度,采用所述多条通信链路将所述数据包发送至所述服务端,以通过所述服务端将所述数据包发送至所述第二设备。可选地,每条通信链路对应一数据控制器,所述数据控制器对应一数据容器,所述目标数据发送速度包括针对所述数据容器的生产速度和针对所述数据容器的消费速度,所述采用所述链路信息,更新针对所述多条通信链路的目标数据发送速度的步骤包括:采用所述链路信息,确定针对所述数据容器的生产速度;其中,所述生产速度用于控制向所述数据容器进行填充数据的速度;结合所述生产速度和预设速度,确定针对所述数据容器的消费速度;其中,所述消费速度用于控制从所述数据容器中申请数据的速度。可选地,所述按照所述目标数据发送速度,采用所述多条通信链路将所述数据包发送至所述服务端的步骤包括:按照所述生产速度,将所述数据包填充至所述数据容器;按照所述消费速度,从所述数据容器中申请所述数据包,并采用所述数据容器对应的通信链路将所述数据包发送至所述服务端。可选地,所述按照所述消费速度,从所述数据容器中申请所述数据包的步骤包括:根据所述消费速度,确定针对执行单次业务逻辑的目标字节数;在执行单次业务逻辑之前,按照所述目标字节数,从所述数据容器中申请所述数据包。可选地,在所述按照所述目标字节数,从所述数据容器中申请所述数据包的步骤之前,还包括:判断所述数据容器中字节数据是否大于或等于所述目标字节数;若所述数据容器中字节数据大于或等于所述目标字节数,则执行按照所述目标字节数,从所述数据容器中申请所述数据包的步骤。可选地,所述生产速度与所述数据容器的容器大小正相关。可选地,所述链路信息为所述服务端统计的所述多条通信链路的实际数据发送速度。一种数据传输的装置,所述装置应用于客户端,所述客户端部署于第一设备,所述第一设备具有多个网络适配器,所述装置包括:通信链路建立模块,用于对所述多个网络适配器进行聚合,并采用所述多个网络适配器,建立与服务端的多条通信链路;数据发送速度更新模块,用于在接收到所述服务端发送的针对所述多条通信链路的链路信息时,采用所述链路信息,更新针对所述多条通信链路的目标数据发送速度;数据包发送模块,用于在获取到所述第一设备发送的针对第二设备的数据包时,按照所述目标数据发送速度,采用所述多条通信链路将所述数据包发送至所述服务端,以通过所述服务端将所述数据包发送至所述第二设备。一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的数据传输的方法的步骤。一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的数据传输的方法的步骤。本发明实施例具有以下优点:在本发明实施例中,通过对多个网络适配器进行聚合,并采用多个网络适配器,建立与服务端的多条通信链路,在接收到服务端发送的针对多条通信链路的链路信息时,采用链路信息更新针对多条通信链路的目标数据发送速度,在获取到第一设备发送的针对第二设备的数据包时,可以按照目标数据发送速度,采用多条通信链路将数据包发送至服务端,以通过服务端将数据包发送至第二设备,实现了根据链路的网络情况实时调整每条链路的数据传输速率,在提高带宽利用率的同时提高了数据传输效率,增强了网络传输的流畅性。附图说明为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明一实施例提供的一种视联网的组网示意图;图2是本发明一实施例提供的一种节点服务器的硬件结构示意图;图3是本发明一实施例提供的一种接入交换机的硬件结构示意图;图4是本发明一实施例提供的一种以太网协转网关的硬件结构示意图;图5是本发明一实施例提供的一种数据传输的方法的步骤流程图;图6是本发明一实施例提供的速度调整提示示意图;图7是本发明一实施例提供的另一种数据传输的方法的步骤流程图;图8是本发明一实施例提供的目标数据发送速度调整示意图;图9是本发明一实施例提供的一种数据传输的装置的结构框图。具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、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.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,示出了本发明一实施例提供的一种数据传输的方法的步骤流程图,可以应用在客户端,客户端可以部署于第一设备中,第一设备可以具有多个网络适配器。其中,第一设备可以为视联网中设备,如视联网中节点服务器,其也可以为互联网中的设备,该第一设备可以与第二设备进行通信,第二设备可以为位于互联网中的设备,也可以为位于视联网中的设备。具体的,可以包括如下步骤:步骤501,对所述多个网络适配器进行聚合,并采用所述多个网络适配器,建立与服务端的多条通信链路;作为一示例,多个网络适配器可以是多个相互独立的网卡。在具体实现中,客户端可以对安装在第一设备中的多个网络适配器进行聚合,然后,可以采用多个网络适配器建立与服务端的多条通信链路,使得第一设备可以使用多个相互独立的网卡同时连接至相同的服务端。步骤502,在接收到所述服务端发送的针对所述多条通信链路的链路信息时,采用所述链路信息,更新针对所述多条通信链路的目标数据发送速度;在实际应用中,服务端可以分别针对与客户端建立的每一条通信链路获取链路信息,并将链路信息发送至客户端,在接收到链路信息后,客户端可以采用链路信息,更新多条通信链路的目标数据发送速度。作为一示例,链路信息可以是服务端统计的多条通信链路的实际数据发送速度(rec_speed),该实际数据发送速度可以表征服务端从客户端获取数据的实际接收速度。具体的,在接收到客户端采用多条通信链路发送的数据后,服务端可以针对每一条通信链路进行统计,确定在该通信链路中的实际数据发送速度。在确定实际数据发送速度后,服务端可以将实际数据发送速度发送至客户端,则在接收到每条通信链路的实际数据发送速度时,客户端可以结合结合实际数据发送速度更新通信链路的目标数据发送速度。在一示例中,服务端中可以设置有一定时器,如图6所示,在客户端采用多条通信链路向服务端发送视频流数据时,服务端可以通过定时器判断当前时间间隔是否满足预设时间间隔,例如500ms,若未满足,服务端可以进入等待状态,直到当前时间间隔满足预设时间间隔。若已满足,服务端可以统计每条通信链路的实际数据发送速度(图6中的“发送速度”),并将本次统计的实际数据发送速度与上次统计的数据发送速度进行比较,判断数据发送速度是否发生变化,若已发生变化,服务端可以将本次统计的实际数据发送速度发送至客户端,通知客户端对目标数据发送速度进行调整;若速度未发生变化,服务端可以进入等待状态。在具体实现中,在客户端与服务端进行数据传输时,可以采用udp(userdatagramprotocol,用户数据报协议)或tcp(transmissioncontrolprotocol,传输控制协议)进行数据传输。其中,udp是osi(opensysteminterconnection,开放式系统互联)参考模型中一种无连接的传输层协议,可以提供面向事务的简单不可靠信息传送服务,由ietf(theinternetengineeringtaskforce,国际互联网工程任务组)rfc(requestforcomments,请求评论)768号文件对udp的正式规范进行定义,udp在ip报文的协议号是17。tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议,由ietf的rfc793号文件定义。在简化的计算机网络osi模型中,它完成第四层传输层所指定的功能,用户数据报协议是同一层内另一个重要的传输协议。在因特网协议族(internetprotocolsuite)中,tcp层是位于ip层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是ip层不提供这样的流机制,而是提供不可靠的包交换。在本发明一实施例中,在数据发送过程中还可以结合前向纠错技术。前向纠错也叫前向纠错码(forwarderrorcorrection,简称fec),是增加数据通讯可信度的方法。在单向通讯信道中,一旦错误被发现,其接收器将无权再请求传输。fec是利用数据进行传输冗余信息的方法,当传输中出现错误,将允许接收器再建数据。步骤503,在获取到所述第一设备发送的针对第二设备的数据包时,按照所述目标数据发送速度,采用所述多条通信链路将所述数据包发送至所述服务端,以通过所述服务端将所述数据包发送至所述第二设备。在进行更新后,当获取到第一设备针对第二设备发送的数据包时,客户端可以按照更新后的目标数据发送速度,采用多条通信链路将数据包发送至服务端。在接收到客户端发送的数据包后,服务端可以将该数据包发送至第二设备。在本发明实施例中,通过对多个网络适配器进行聚合,并采用多个网络适配器,建立与服务端的多条通信链路,在接收到服务端发送的针对多条通信链路的链路信息时,采用链路信息更新针对多条通信链路的目标数据发送速度,在获取到第一设备发送的针对第二设备的数据包时,可以按照目标数据发送速度,采用多条通信链路将数据包发送至服务端,以通过服务端将数据包发送至第二设备,实现了根据链路的网络情况实时调整每条链路的数据传输速率,在提高带宽利用率的同时提高了数据传输效率,增强了网络传输的流畅性。参照图7,示出了本发明一实施例提供的另一种数据传输的方法的步骤流程图,可以应用在客户端,客户端可以部署于第一设备中,第一设备可以具有多个网络适配器。具体的,可以包括如下步骤:步骤701,对所述多个网络适配器进行聚合,并采用所述多个网络适配器,建立与服务端的多条通信链路;在具体实现中,客户端可以对安装在第一设备中的多个网络适配器进行聚合,然后,可以采用多个网络适配器建立与服务端的多条通信链路。步骤702,在接收到所述服务端发送的针对所述多条通信链路的链路信息时,采用所述链路信息,确定针对所述数据容器的生产速度;其中,所述生产速度用于控制向所述数据容器进行填充数据的速度;在本发明一实施例中,每条通信链路中可以对应有一数据控制器,数据控制器可以动态控制每条通信链路数据发送速度。数据控制器对应一数据容器,其中,在客户端发送数据时,客户端的目标数据发送速度可以包括数据容器的生产速度和数据容器的消费速度。在具体实现中,在接收到服务端发送的针对多条通信链路的链路信息时,客户端可以采用链路信息确定数据容器的生产速度,通过控制生产速度,可以控制向数据容器中填充数据的速度。当链路信息为实际数据发送速度时,客户端可以将实际数据发送速度设置为生产速度。作为一示例,生产速度可以与数据容器的容器大小正相关,例如,当设置生产速度为speed_dkb/s时,数据容器的大小可以是speed_d*1024个字节,则在1s内可以将数据容器填充完毕;又如,当生产速度为3kb/s时,数据容器的大小可以是3kb(即3*1024个字节),则在1s内可以将大小为3kb的数据容器填充完毕。步骤703,结合所述生产速度和预设速度,确定针对所述数据容器的消费速度;其中,所述消费速度用于控制从所述数据容器中申请数据的速度;在实际应用中,用户可以预先设置一预设速度,在确定数据容器的生产速度后,客户端可以结合生产速度和预设速度确定数据容器的消费速度,通过消费速度,客户端可以控制从数据容器中申请数据的速度。例如,在确定消费速度时,可以采用预设速度除以生产速度得到一商数,然后可以对商数向上取整获得一整数结果,该结果即消费速度。步骤704,在获取到所述第一设备发送的针对第二设备的数据包时,按照所述生产速度,将所述数据包填充至所述数据容器;当客户端获取到第一设备针对第二设备发送的数据包时,客户端可以按照生产速度,将数据包填充至数据容器中。在具体实现中,由于数据容器的大小可以和生产速度正相关,在将数据包填充至数据容器时,若数据容器已填充完毕但没有从数据容器中申请数据,当继续向数据容器填充,可以将多余部分溢出,以保持数据容器的大小始终与生产速度正相关。步骤705,按照所述消费速度,从所述数据容器中申请所述数据包,并采用所述数据容器对应的通信链路将所述数据包发送至所述服务端,以通过所述服务端将所述数据包发送至所述第二设备。在对数据容器进行填充时,可以按照消费速度从数据容器中申请数据包,并采用数据容器对应的通信链路将数据包发送至服务端,在接收到客户端发送的数据包后,服务端可以将数据包发送至第二设备。在本发明实施例中,由于在申请数据包时,是从确定大小的数据容器中申请,而数据容器的大小与生产速度呈正相关,生产速度与服务端的返回的实际数据发送速度相关,则可以通过实际数据发送速度限制数据容器大小,进而使得消费速度不超过实际数据发送速度,并根据服务端返回的实际数据发送速度动态调整通信链路的发送速度。当出现网络波峰时,由于服务端未能在短时间内接收所有由客户端发送的数据,使得实际数据发送速度降低,进而降低数据容器大小和消费速度,使得客户端发送数据的速度降低,减少网络波峰造成的流量冲击,提高网络流畅性。在本发明一实施例中,所述按照所述消费速度,从所述数据容器中申请所述数据包的步骤可以包括如下子步骤:子步骤11,根据所述消费速度,确定针对执行单次业务逻辑的目标字节数;在实际应用中,可以通过从数据容器中申请的目标字节数表征数据容器的消费速度,在确定消费速度后,可以根据消费速度,确定在执行单次业务逻辑时的目标字节数。例如,针对一次业务逻辑从数据容器中取出n个字节,则消费速度是n。子步骤12,在执行单次业务逻辑之前,判断所述数据容器中字节数据是否大于或等于所述目标字节数;在每次执行业务逻辑前,客户端可以判断数据容器中的字节数据是否大于或等于目标字节数。通过该判断步骤,可以确定是否可以从数据容器中获取与目标字节数对应的数据。子步骤13,若所述数据容器中字节数据大于或等于所述目标字节数,则按照所述目标字节数,从所述数据容器中申请所述数据包。当数据容器中的字节数大于或等于目标字节数时,则可以按照目标字节数从数据容器中申请数据包。为了使本领域技术人员能够更好地理解上述步骤,以下通过一个例子对本发明实施例加以示例性说明,但应当理解的是,本发明实施例并不限于此。如图8所示,客户端中的数据控制器(图8中的“速度控制器”)可以接收服务端返回的实际数据发送速度(图8中的“接收速度”),并将实际数据发送速度设置为生产速度。在设置生产速度后,客户端可以对数据容器进行填充,并获取预设速度(图8中的“用户设置速度”),然后,可以采用预设速度除以生产速度并向上取整获取目标字节数n。在确定目标字节数n后,可以从数据容器中申请n个字节,在申请时,还可以进一步判断数据容器中是否有n个自己,若无,客户端可以继续等待,若有,客户端可以采用该数据容器对应的通信链路向服务端发送数据。在本发明实施例中,通过采用链路信息,确定针对数据容器的生产速度,并结合生产速度和预设速度,确定针对数据容器的消费速度,在获取到第一设备发送的针对第二设备的数据包时,按照生产速度,将数据包填充至数据容器,按照消费速度,从数据容器中申请数据包,实现了根据服务端接收数据的速度动态调整通信链路的数据发送速度,既可以及时调整通信链路速度,得到更好的流量控制效果,又可以减少网络波峰造成的流量冲击。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。参照图9,示出了本发明一实施例提供的一种数据传输的装置的结构框图,可以应用在客户端,客户端可以部署于第一设备中,第一设备可以具有多个网络适配器。具体可以包括如下模块:通信链路建立模块901,用于对所述多个网络适配器进行聚合,并采用所述多个网络适配器,建立与服务端的多条通信链路;数据发送速度更新模块902,用于在接收到所述服务端发送的针对所述多条通信链路的链路信息时,采用所述链路信息,更新针对所述多条通信链路的目标数据发送速度;数据包发送模块903,用于在获取到所述第一设备发送的针对第二设备的数据包时,按照所述目标数据发送速度,采用所述多条通信链路将所述数据包发送至所述服务端,以通过所述服务端将所述数据包发送至所述第二设备。在本发明一实施例中,每条通信链路对应一数据控制器,所述数据控制器对应一数据容器,所述目标数据发送速度包括针对所述数据容器的生产速度和针对所述数据容器的消费速度,所述数据发送速度更新模块902包括:生产速度确定子模块,用于采用所述链路信息,确定针对所述数据容器的生产速度;其中,所述生产速度用于控制向所述数据容器进行填充数据的速度;消费速度确定子模块,用于结合所述生产速度和预设速度,确定针对所述数据容器的消费速度;其中,所述消费速度用于控制从所述数据容器中申请数据的速度。在本发明一实施例中,所述数据包发送模块903包括:数据包填充子模块,用于按照所述生产速度,将所述数据包填充至所述数据容器;数据包申请子模块,用于按照所述消费速度,从所述数据容器中申请所述数据包,并采用所述数据容器对应的通信链路将所述数据包发送至所述服务端。在本发明一实施例中,所述数据包申请子模块包括:目标字节数确定单元,用于根据所述消费速度,确定针对执行单次业务逻辑的目标字节数;目标字节数申请单元,用于在执行单次业务逻辑之前,按照所述目标字节数,从所述数据容器中申请所述数据包。在本发明一实施例中,所述数据包申请子模块还包括:判断单元,判断所述数据容器中字节数据是否大于或等于所述目标字节数;目标字节数数据单元,用于若所述数据容器中字节数据大于或等于所述目标字节数,则调用所述目标字节数申请单元。在本发明一实施例中,所述生产速度与所述数据容器的容器大小正相关。在本发明一实施例中,所述链路信息为所述服务端统计的所述多条通信链路的实际数据发送速度。在本发明实施例中,通过对多个网络适配器进行聚合,并采用多个网络适配器,建立与服务端的多条通信链路,在接收到服务端发送的针对多条通信链路的链路信息时,采用链路信息更新针对多条通信链路的目标数据发送速度,在获取到第一设备发送的针对第二设备的数据包时,可以按照目标数据发送速度,采用多条通信链路将数据包发送至服务端,以通过服务端将数据包发送至第二设备,实现了根据链路的网络情况实时调整每条链路的数据传输速率,在提高带宽利用率的同时提高了数据传输效率,增强了网络传输的流畅性。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本发明一实施例还提供了电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上数据传输的方法的步骤。本发明一实施例还提供了计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上数据传输的方法的步骤。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。以上对本发明所提供的一种数据传输的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 
技术特征:

1.一种数据传输的方法,其特征在于,应用于客户端,所述客户端部署于第一设备,所述第一设备具有多个网络适配器,所述方法包括:

对所述多个网络适配器进行聚合,并采用所述多个网络适配器,建立与服务端的多条通信链路;

在接收到所述服务端发送的针对所述多条通信链路的链路信息时,采用所述链路信息,更新针对所述多条通信链路的目标数据发送速度;

在获取到所述第一设备发送的针对第二设备的数据包时,按照所述目标数据发送速度,采用所述多条通信链路将所述数据包发送至所述服务端,以通过所述服务端将所述数据包发送至所述第二设备。

2.根据权利要求1所述的方法,其特征在于,每条通信链路对应一数据控制器,所述数据控制器对应一数据容器,所述目标数据发送速度包括针对所述数据容器的生产速度和针对所述数据容器的消费速度,所述采用所述链路信息,更新针对所述多条通信链路的目标数据发送速度的步骤包括:

采用所述链路信息,确定针对所述数据容器的生产速度;其中,所述生产速度用于控制向所述数据容器进行填充数据的速度;

结合所述生产速度和预设速度,确定针对所述数据容器的消费速度;其中,所述消费速度用于控制从所述数据容器中申请数据的速度。

3.根据权利要求2所述的方法,其特征在于,所述按照所述目标数据发送速度,采用所述多条通信链路将所述数据包发送至所述服务端的步骤包括:

按照所述生产速度,将所述数据包填充至所述数据容器;

按照所述消费速度,从所述数据容器中申请所述数据包,并采用所述数据容器对应的通信链路将所述数据包发送至所述服务端。

4.根据权利要求3所述的方法,其特征在于,所述按照所述消费速度,从所述数据容器中申请所述数据包的步骤包括:

根据所述消费速度,确定针对执行单次业务逻辑的目标字节数;

在执行单次业务逻辑之前,按照所述目标字节数,从所述数据容器中申请所述数据包。

5.根据权利要求4所述的方法,其特征在于,在所述按照所述目标字节数,从所述数据容器中申请所述数据包的步骤之前,还包括:

判断所述数据容器中字节数据是否大于或等于所述目标字节数;

若所述数据容器中字节数据大于或等于所述目标字节数,则执行按照所述目标字节数,从所述数据容器中申请所述数据包的步骤。

6.根据权利要求2或3或4或5所述的方法,其特征在于,所述生产速度与所述数据容器的容器大小正相关。

7.根据权利要求1所述的方法,其特征在于,所述链路信息为所述服务端统计的所述多条通信链路的实际数据发送速度。

8.一种数据传输的装置,其特征在于,所述装置应用于客户端,所述客户端部署于第一设备,所述第一设备具有多个网络适配器,所述装置包括:

通信链路建立模块,用于对所述多个网络适配器进行聚合,并采用所述多个网络适配器,建立与服务端的多条通信链路;

数据发送速度更新模块,用于在接收到所述服务端发送的针对所述多条通信链路的链路信息时,采用所述链路信息,更新针对所述多条通信链路的目标数据发送速度;

数据包发送模块,用于在获取到所述第一设备发送的针对第二设备的数据包时,按照所述目标数据发送速度,采用所述多条通信链路将所述数据包发送至所述服务端,以通过所述服务端将所述数据包发送至所述第二设备。

9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据传输的方法的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据传输的方法的步骤。

技术总结
本发明实施例提供了一种数据传输的方法和装置,所述方法包括:对所述多个网络适配器进行聚合,并采用所述多个网络适配器,建立与服务端的多条通信链路;在接收到所述服务端发送的针对所述多条通信链路的链路信息时,采用所述链路信息,更新针对所述多条通信链路的目标数据发送速度;在获取到所述第一设备发送的针对第二设备的数据包时,按照所述目标数据发送速度,采用所述多条通信链路将所述数据包发送至所述服务端,以通过所述服务端将所述数据包发送至所述第二设备,实现了根据链路的网络情况实时调整每条链路的数据传输速率,在提高带宽利用率的同时提高了数据传输效率,增强了网络传输的流畅性。

技术研发人员:吕亚亚;李云鹏;谢文龙;王艳辉
受保护的技术使用者:视联动力信息技术股份有限公司
技术研发日:2019.12.30
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-56243.html

最新回复(0)