CN111355667B - 数据传输方法、装置、***及计算机可读存储介质 - Google Patents
数据传输方法、装置、***及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111355667B CN111355667B CN202010097795.8A CN202010097795A CN111355667B CN 111355667 B CN111355667 B CN 111355667B CN 202010097795 A CN202010097795 A CN 202010097795A CN 111355667 B CN111355667 B CN 111355667B
- Authority
- CN
- China
- Prior art keywords
- data transmission
- transmission link
- data
- link
- weight
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种数据传输方法、装置、***及计算机可读存储介质,方法包括:获取本次的多个待发送数据包,根据本次数据传输的负载均衡策略,通过所述多条数据传输链路将所述多个待发送数据包发送给所述接收端,根据所述多条数据传输链路各自所传输的数据包的数据量和传输时长,确定所述多条数据传输链路各自的带宽,根据所述多条数据传输链路各自的带宽,确定下一次数据传输的负载均衡策略,使用本发明的数据传输方法每次可以通过不同的负载均衡策略发送待发送数据包,并且负载均衡策略是根据每条数据传输链路的实时带宽确定的,使得数据传输过程充分考虑到每条数据传输链路的网络情况,提高了网络利用率,有效避免网络拥堵。
Description
技术领域
本发明涉及数据传输技术领域,特别是涉及一种数据传输方法、装置、***及计算机可读存储介质。
背景技术
随着网络技术的发展,多链路传输已成为数据传输的主流,在如今的数据传输过程中得到越来越多的应用。
采用多链路进行数据传输的情况下,通常需要考虑多链路的负载均衡。现有的负载均衡策略中,效果比较好,也是比较常用的是基于权重的负载均衡策略,现有的基于权重的负载均衡策略通过轮询每条链路来进行发包,比如,有3条链路权重比值为5:2:3,现有的轮询发包方式是,先使用第一条链路发送5次,再使用第二条发送2次,第三条发送3次,然后继续使用第一条链路,依次循环,这样的负载均衡策略对于网络的利用率较低,易造成网络拥堵。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据传输方法、装置、***及计算机可读存储介质。
为了解决上述问题,本发明实施例公开了一种数据传输方法,应用于发送端,所述发送端与接收端之间通过多条数据传输链路通信连接,所述方法包括:
获取本次的多个待发送数据包;
根据本次数据传输的负载均衡策略,通过所述多条数据传输链路将所述多个待发送数据包发送给所述接收端;
根据所述多条数据传输链路各自所传输的数据包的数据量和传输时长,确定所述多条数据传输链路各自的带宽;
根据所述多条数据传输链路各自的带宽,确定下一次数据传输的负载均衡策略。
可选地,所述负载均衡策略包括第一固定权重,所述根据本次数据传输的负载均衡策略,通过所述多条数据传输链路将所述多个待发送数据包发送给所述接收端,包括:
获取每条数据传输链路的第一固定权重;
根据所述每条数据传输链路的第一固定权重,确定所述多个待发送数据包各自对应的数据传输链路;
通过所述多条数据传输链路将各自对应的所述待发送数据包发送给所述接收端。
可选地,所述负载均衡策略还包括可变权重,所述根据本次数据传输的负载均衡策略,通过所述多条数据传输链路将所述多个待发送数据包发送给所述接收端,包括:
获取所述每条数据传输链路的第一固定权重和可变权重;
轮询所述每条数据传输链路,确定所述可变权重最大的数据传输链路为第一目标数据传输链路,所述第一目标数据传输链路为第一个待发送数据包对应的数据传输链路;
根据所述第一目标数据传输链路的可变权重与所述每条数据传输链路的第一固定权重总和的差值,更新所述第一目标数据传输链路的可变权重;
以更新后的所述可变权重为所述第一目标数据传输链路的可变权重,将所述每条数据传输链路的第一固定权重与可变权重之和作为每条数据传输链路的可变权重,返回步骤:获取所述每条数据传输链路的第一固定权重和可变权重,直到确定所述多个待发送数据包各自对应的数据传输链路;
通过所述多条数据传输链路将各自对应的所述待发送数据包发送给所述接收端。
可选地,所述根据所述多条数据传输链路各自的带宽,确定下一次数据传输的负载均衡策略,包括:
根据所述多条数据传输链路各自的带宽,确定所述每条数据传输链路的第二固定权重;
根据所述第二固定权重,将所述第二固定权重作为下一次数据传输的负载均衡策略的第一固定权重。
可选地,所述根据所述多条数据传输链路各自的带宽,确定所述每条数据传输链路的第二固定权重,包括:
根据所述多条数据传输链路各自的带宽,确定所述多条数据传输链路各自的带宽的最大公约数;
将所述多条数据传输链路各自的带宽与所述最大公约数的商确定为所述每条数据传输链路对应的第二固定权重。
可选地,在确定下一次数据传输的负载均衡策略之后,所述方法还包括:
获取下次的多个待发送数据包,根据下一次数据传输的负载均衡策略,通过所述多条数据传输链路将所述下次的多个待发送数据包发送给所述接收端。
本发明实施例还公开了一种数据传输装置,应用于发送端,所述发送端与接收端之间通过多条数据传输链路通信连接,所述装置包括:
获取模块,用于获取本次的多个待发送数据包;
第一发送模块,用于根据本次数据传输的负载均衡策略,通过所述多条数据传输链路将所述多个待发送数据包发送给所述接收端;
第一确定模块,用于根据所述多条数据传输链路各自所传输的数据包的数据量和传输时长,确定所述多条数据传输链路各自的带宽;
第二确定模块,用于根据所述多条数据传输链路各自的带宽,确定下一次数据传输的负载均衡策略。
可选地,所述负载均衡策略包括第一固定权重,所述第一发送模块,包括:
第一获取子模块,用于获取每条数据传输链路的第一固定权重;
第一确定子模块,用于根据所述每条数据传输链路的第一固定权重,确定所述多个待发送数据包各自对应的数据传输链路;
第一发送子模块,用于通过所述多条数据传输链路将各自对应的所述待发送数据包发送给所述接收端。
可选地,所述负载均衡策略还包括可变权重,所述第一发送模块,包括:
第二获取子模块,用于获取所述每条数据传输链路的第一固定权重和可变权重;
第二确定子模块,用于轮询所述每条数据传输链路,确定所述可变权重最大的数据传输链路为第一目标数据传输链路,所述第一目标数据传输链路为第一个待发送数据包对应的数据传输链路;
更新子模块,用于根据所述第一目标数据传输链路的可变权重与所述每条数据传输链路的第一固定权重总和的差值,更新所述第一目标数据传输链路的可变权重;
返回子模块,用于以更新后的所述可变权重为所述第一目标数据传输链路的可变权重,将所述每条数据传输链路的第一固定权重与可变权重之和作为每条数据传输链路的可变权重,返回步骤:获取所述每条数据传输链路的第一固定权重和可变权重,直到确定所述多个待发送数据包各自对应的数据传输链路;
第二发送子模块,用于通过所述多条数据传输链路将各自对应的所述待发送数据包发送给所述接收端。
可选地,所述第二确定模块,包括:
第三确定子模块,用于根据所述多条数据传输链路各自的带宽,确定所述每条数据传输链路的第二固定权重;
第一固定权重更新子模块,用于根据所述第二固定权重,将所述第二固定权重作为下一次数据传输的负载均衡策略的第一固定权重。
可选地,所述第三确定子模块,包括:
第一确定子单元,用于根据所述多条数据传输链路各自的带宽,确定所述多条数据传输链路各自的带宽的最大公约数;
第二确定子单元,用于将所述多条数据传输链路各自的带宽与所述最大公约数的商确定为所述每条数据传输链路对应的第二固定权重。
可选地,所述装置还包括:
第二发送模块,用于获取下次的多个待发送数据包,根据下一次数据传输的负载均衡策略,通过所述多条数据传输链路将所述下次的多个待发送数据包发送给所述接收端。
本发明实施例还公开了一种数据传输***,包括客户端和服务器,所述客户端和所述服务器之间通过多条数据传输链路通信连接,所述客户端和所述服务器均各自包括计算机可读存储介质和处理器,所述终端设备和所述服务器各自包括的计算机可读存储介质分别存储可在各自包括的处理器上运行的计算机程序,以实现如本发明实施例所述的数据传输方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明实施例所述的数据传输方法。
本发明实施例包括以下优点:
在本发明实施例提供的数据传输方法中,发送端获取本次的多个待发送数据包,根据本次数据传输的负载均衡策略,通过所述多条数据传输链路将所述多个待发送数据包发送给所述接收端,根据所述多条数据传输链路各自所传输的数据包的数据量和传输时长,确定所述多条数据传输链路各自的带宽,根据所述多条数据传输链路各自的带宽,确定下一次数据传输的负载均衡策略。如此,每次可以通过不同的负载均衡策略发送待发送数据包,并且负载均衡策略是根据每条数据传输链路的实时带宽确定的,使得数据传输过程充分考虑到每条数据传输链路的网络情况,提高了网络利用率,有效避免网络拥堵。
附图说明
图1是本申请一实施例的实施环境的示意图;
图2是本申请一实施例提供的一种数据传输方法的流程图;
图3是本申请另一实施例提出的一种数据传输方法的流程图;
图4是本申请另一实施例提出的一种数据传输方法的流程图;
图5是本申请另一实施例提出的一种数据传输方法的流程图;
图6是本申请另一实施例提出的一种数据传输方法的流程示意图;
图7是本申请一实施例提供的一种数据传输装置的结构框图;
图8是本申请一实施例提供的数据传输***的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
请参考图1,图1是本申请一实施例的实施环境的示意图。如图1所示,该实施环境包括:发送端和接收端。其中,发送端和接收端通过多条数据传输链路通信连接,其中,图1中的多条虚线表示多条数据传输链路。
本实施例中,负载均衡策略由负载均衡模块提供,负载均衡模块可以集成在发送端中,也可以独立于发送端,当独立于发送端时,负载均衡模块与发送端通信连接。参考图1,本实施例中以负载均衡模块集成在发送端中示意。
在实际中,既存在客户端向服务器发送数据的过程,也存在服务器向客户端发送数据的过程,因此,在一种实施方式中,客户端向服务器发送数据时,客户端是发送端,服务器是接收端,客户端通过多条数据链路向服务器发送数据包;在另一种实施方式中,服务器向客户端发送数据时,服务器是发送端,客户端是接收端,服务器通过多条数据链路向客户端发送数据包。
现有的基于权重的负载均衡策略在发送端向接收端发送数据时,发送端根据预设的权重,轮询每条数据传输链路来进行发送数据包,这种负载均衡策略忽略了网络情况,即网络好的时候和坏的时候分配权重不变,这样导致网络质量好的链路不能承担更多流量,网络质量差的链路反而可能承担更多流量,会造成网络的利用率下降和造成网络拥堵。
基于上述现有技术的缺陷,提出了本发明实施例的核心构思之一,遵循视联网的协议,提出一种能够根据各数据传输链路网络情况,及时调整各数据传输链路的负载均衡策略的数据传输方法,以改善数据传输时网络的利用率低的问题。
基于上述实施环境以及上述技术问题,本申请一实施例提出一种数据传输方法,该方法可以由客户端作为发送端,服务器作为接收端执行,也可以由服务器作为发送端,客户端作为接收端执行。
请参考图2,图2示出了本申请实施例提供的一种数据传输方法的流程图,该方法应用于发送端,所述发送端与接收端之间通过多条数据传输链路通信连接,该方法具体可以包括如下步骤:
步骤S11,获取本次的多个待发送数据包。
通常情况下,在数据传输时,单个消息被划分为多个数据包进行传输,并不是只传输单个数据包,因此,发送端向接收端传输的往往是多个数据包。
本实施例中,本次的多个数据包与下次的多个数据包可以按照数据包的个数进行划分,例如以100个数据包作为一次发送,即,本次发送100个数据包,下次发送100个数据包。因此,在步骤S11中,发送端可以获取排序在前的100个数据包作为本次的多个待发送数据包。
在该步骤在客户端执行时,客户端可以获取本次发送到服务器的多个待发送数据包,在该步骤在服务器执行时,服务器可以获取本次发送到客户端的多个待发送数据包。
步骤S12,根据本次数据传输的负载均衡策略,通过所述多条数据传输链路将所述多个待发送数据包发送给所述接收端。
本实施例中,负载均衡策略由负载均衡模块提供,负载均衡模块可以集成在发送端中,也可以独立于发送端,当独立于发送端时,负载均衡模块与发送端通信连接。参考图1,本实施例中以负载均衡模块集成在发送端中示意。
本实施例中,本次的多个待发送数据包全部传输完成之后才算是完成了本次数据传输,每一次数据传输均对应有一个负载均衡策略。因此,在步骤S11获取本次的多个待发送数据包之后,可以根据本次数据传输的负载均衡策略,通过多条数据传输链路将所述多个待发送数据包发送给所述接收端。
步骤S13,根据所述多条数据传输链路各自所传输的数据包的数据量和传输时长,确定所述多条数据传输链路各自的带宽。
本实施例中,每个待发送数据包均对应一条数据传输链路,发送端在将每个待发送数据包通过对应的数据传输链路发送到接收端之后,可以获取每个待发送数据包对应的发送链路传输该数据包的数据量和传输该数据包的传输时长,示例地,有3条数据传输链路,5个待发送数据包,其中,1、2、3号数据包通过1号链路发送,4号数据包通过2号链路发送,5号数据包通过3号链路发送,此时,可以分别获取1号链路发送1号数据包的数据量和1号链路发送1号数据包的传输时长,1号链路发送2号数据包的数据量和1号链路发送2号数据包的传输时长,1号链路发送3号数据包的数据量和1号链路发送3号数据包的传输时长,以及2号链路发送4号数据包的数据量和2号链路发送4号数据包的传输时长,以及3号链路发送5号数据包的数据量和3号链路发送5号数据包的传输时长。
在获取所述多条数据传输链路各自所传输的数据包的数据量和传输时长之后,便能够根据所述多条数据传输链路各自所传输的数据包的数据量和传输时长确定所述多条数据传输链路各自的带宽。
在一种实施方式中,可以根据每条数据传输链路发送单个数据包的数据量和传输时长计算确定该数据传输链路的带宽,例如,1号链路在发送完1号数据包之后,便通过1号数据包的数据量和1号链路发送1号数据包的传输时长计算1号数据传输链路的带宽。
考虑到只以单个数据包的发送过程计算该链路的带宽,计算误差大,也许不能准确反映该链路的网络状况,在另一种实施方式中,也可以在本次的多个待发送数据包全部传输完成之后,再根据每条数据传输链路发送的多个待发送数据包的总量和发送多个待发送数据包的总时长计算该链路的带宽,此时计算出的带宽能够比较准确反映一段时间内该链路的网络情况。
此外,考虑到本次的多个待发送数据包数量较大,发送本次的多个数据包需要花费较长时间,而网络状况已经回复正常,如果再以本次的多个待发送数据包全部传输完成之后,再根据每条数据传输链路发送的多个待发送数据包的总量和发送多个待发送数据包的总时长计算该链路的带宽的话,同样不能准确适应数据传输链路的实际网络状况,在另一种实施方式中,还可以设置一个预设时间段,例如1分钟,根据预设时间段内每条数据传输链路发送的待发送数据包的总量和发送的待发送数据包的总时长计算该链路的带宽,这样能够很好地保证准确度的问题。
接收端在接收到数据包之后,可以记录下每个数据包对应的数据传输链路,并解析每个数据包,得到数据包的总量,同时还可以得到数据包携带的接收时间和发送时间,以接收时间减去发送时间,即得到该数据包的传输时长,接收端便计算每条数据传输链路各自的带宽,从而将计算的每条数据传输链路各自的带宽发送到发送端,这样发送端便确定所述多条数据传输链路各自的带宽;此外,接收端在解析每个数据包,得到数据包的总量以及该数据包的传输时长之后,可以将数据包的总量以及该数据包的传输时长发送到发送端,再由发送端计算每条数据传输链路各自的带宽。
步骤S14,根据所述多条数据传输链路各自的带宽,确定下一次数据传输的负载均衡策略。
本实施例中,在得到多条数据传输链路各自的带宽之后,便可以根据多条数据传输链路各自的带宽,确定下一次数据传输的负载均衡策略。
本实施例中,发送端获取本次的多个待发送数据包,根据本次数据传输的负载均衡策略,通过所述多条数据传输链路将所述多个待发送数据包发送给所述接收端,根据所述多条数据传输链路各自所传输的数据包的数据量和传输时长,确定所述多条数据传输链路各自的带宽,根据所述多条数据传输链路各自的带宽,确定下一次数据传输的负载均衡策略。如此,每次可以通过不同的负载均衡策略发送待发送数据包,并且负载均衡策略是根据每条数据传输链路的实时带宽确定的,使得数据传输过程充分考虑到每条数据传输链路的网络情况,提高了网络利用率,有效避免网络拥堵。
参考图3,图3是本申请一实施例提出的一种数据传输方法的流程图。如图3所示,该方法除包括步骤S11-步骤S14外,还包括以下步骤:
步骤S15,获取下次的多个待发送数据包,根据下一次数据传输的负载均衡策略,通过所述多条数据传输链路将所述下次的多个待发送数据包发送给所述接收端。
在获取到下次的多个待发送数据包之后,也就是本次的多个待发送数据包发送完成之后,便可以根据上述步骤S14确定的下一次数据传输的负载均衡策略,通过所述多条数据传输链路将所述下次的多个待发送数据包发送给所述接收端。
在一种实施方式中,负载均衡策略可以是基于权重的负载均衡策略。此时,负载均衡策略可以包括第一固定权重,第一固定权重是用户根据设定的网络传输条件、发送端设备性能、以及接收端设备性能等因素预先为每条数据传输链路初始化的。在此基础上,参考图4,图4是本申请另一实施例提出的一种数据传输方法的流程图。如图4所示,该方法除包括步骤S11、步骤S13和步骤S14外,还包括以下步骤:
步骤S121,获取每条数据传输链路的第一固定权重。
步骤S122,根据所述每条数据传输链路的第一固定权重,确定所述多个待发送数据包各自对应的数据传输链路。
步骤S123,通过所述多条数据传输链路将各自对应的所述待发送数据包发送给所述接收端。
本实施例中,由于用户预先为每条数据传输链路初始化一个第一固定权重值,因此,发送端可以获取每条数据传输链路的第一固定权重,接着,发送端便可以根据所述每条数据传输链路的第一固定权重,确定所述多个待发送数据包各自对应的数据传输链路,接着,便可以通过所述多条数据传输链路将各自对应的所述待发送数据包发送给所述接收端。
在一种实施方式中,可以采用轮询每条数据传输链路的第一固定权重的方式,确定所述多个待发送数据包各自对应的数据传输链路。比如,有3条链路的第一固定权重比值为5:2:3,先使用第一条链路发送5次,即使用第1条链路发送第1-5个数据包,再使用第二条发送2次,即使用第2条链路发送第6-7个数据包,第三条发送3次,即使用第3条链路发送第8-10个数据包,然后继续使用第1条链路发送第11-15个数据包,依次循环,这样便能够确定本次发送的多个待发送数据包中每个数据包各自对应数据传输链路。
在另一种实施方式中,还可以根据所述每条数据传输链路的第一固定权重,采用随机的方式确定多个待发送数据包各自对应的数据传输链路。仍以3条链路的第一固定权重比值为5:2:3为例进行说明,针对每一个待发送数据包,其选择第1、第2和第3条数据传输链路的概率分别是0.5、0.2和0.3,同样地,在确定多个待发送数据包各自对应的数据传输链路时,按照概率进行确定即可。
在一种实施方式中,考虑到采用轮询每条数据传输链路的第一固定权重,从而确定所述多个待发送数据包各自对应的数据传输链路的方式,会导致其中某一条数据传输链路的压力突然增大,而剩余的数据传输链路处于空闲状态,导致无法充分利用网络,因此,为了更加充分利用网络,负载均衡策略还包括可变权重,此时,参考图5,图5是本申请另一实施例提出的一种数据传输方法的流程图。如图5所示,该方法除包括步骤S11、步骤S13和步骤S14外,还包括以下步骤:
步骤S124,获取所述每条数据传输链路的第一固定权重和可变权重。
步骤S125,轮询所述每条数据传输链路,确定所述可变权重最大的数据传输链路为第一目标数据传输链路,所述第一目标数据传输链路为第一个待发送数据包对应的数据传输链路。
步骤S126,根据所述第一目标数据传输链路的可变权重与所述每条数据传输链路的第一固定权重总和的差值,更新所述第一目标数据传输链路的可变权重。
步骤S127,以更新后的所述可变权重为所述第一目标数据传输链路的可变权重,将所述每条数据传输链路的第一固定权重与可变权重之和作为每条数据传输链路的可变权重,返回步骤:获取所述每条数据传输链路的第一固定权重和可变权重,直到确定所述多个待发送数据包各自对应的数据传输链路。
步骤S128,通过所述多条数据传输链路将各自对应的所述待发送数据包发送给所述接收端。
本实施例中,每条数据传输链路都有两个权重值,一个权重为第一固定权重,另一个是可变权重,本次数据传输初始时刻,可变权重设置为与第一固定权重相同。
示例地:假设有A、B、C三条数据传输链路,三条数据传输链路对应的第一固定权重分别为5、1、1,可变权重也分别为5、1、1。第一次访问,即确定第1个数据包对应的数据传输链路,A、B、C的可变权重分别是5、1、1,因为5是其中最大的,5对应的就是A链路,所以第一次选到的链路就是A,即第一目标数据传输链路为A。
然后我们用当前被选中的数据传输链路的可变权重减去各数据传输链路的第一固定权重之和,更新所述第一目标数据传输链路的可变权重,即5-7=-2,此时更新后的第一目标数据传输链路的可变权重为-2,没被选中的数据传输链路B和C的可变权重暂时不做变化,现在3条数据传输链路的可变权重分别是-2、1、1,接着,将此时3条数据传输链路的可变权重分别与各自的第一固定权重相加,作为每条数据传输链路的可变权重,即现在3条数据传输链路的可变权重分别是3、2、2。
第二次请求,即确定第2个数据包对应的数据传输链路,重复执行上述步骤,因为3是其中最大的,3对应的就是A数据传输链路,即第一目标数据传输链路还是为A。然后我们用当前被选中的数据传输链路的可变权重减去各数据传输链路的第一固定权重之和,更新所述第一目标数据传输链路的可变权重,即3-7=-4,此时更新后的第一目标数据传输链路的可变权重为-4,没被选中的数据传输链路B和C的可变权重暂时不做变化,现在3条数据传输链路的可变权重分别是-4、2、2,接着,将此时3条数据传输链路的可变权重分别与各自的第一固定权重相加,作为每条数据传输链路的可变权重,即现在3条数据传输链路的可变权重分别是1、3、3。
第三次请求,即确定第3个数据包对应的数据传输链路,重复执行上述步骤,因为3是其中最大的,3对应的就是B数据传输链路或者C数据传输链路,即第一目标数据传输链路为B(此时选择B或者C都行,可以通过设置策略,使得在出现相同的可变权重时,总是选择靠前的数据传输链路)。然后我们用当前被选中的数据传输链路的可变权重减去各数据传输链路的第一固定权重之和,更新所述第一目标数据传输链路的可变权重,即3-7=-4,此时更新后的第一目标数据传输链路的可变权重为-4,没被选中的数据传输链路A和C的可变权重暂时不做变化,现在3条数据传输链路的可变权重分别是1、-4、3,接着,将此时3条数据传输链路的可变权重分别与各自的第一固定权重相加,作为每条数据传输链路的可变权重,即现在3条数据传输链路的可变权重分别是6、-3、4。
不断重复上述步骤,直到确定所述多个待发送数据包各自对应的数据传输链路,并且可以得到表1所示的表格。
在确定所述多个待发送数据包各自对应的数据传输链路之后,便可以通过所述多条数据传输链路将各自对应的所述待发送数据包发送给所述接收端。
表1可变权重与数据传输链路选择对应表
请求 | 选择链路前的可变权重 | 链路 | 选择链路后的可变权重 |
1 | {5,1,1} | A | {-2,1,1} |
2 | {3,2,2} | A | {-4,2,2} |
3 | {1,3,3} | B | {1,-4,3} |
4 | {6,-3,4} | A | {-1,-3,4} |
5 | {4,-2,5} | C | {4,-2,-2} |
6 | {9,-1,-1} | A | {2,-1,-1} |
7 | {7,0,0} | A | {0,0,0} |
8 | {5,1,1} | A | {-2,1,1} |
本实施例中,相较于现有的采用轮询每条数据传输链路的第一固定权重,从而确定所述多个待发送数据包各自对应的数据传输链路的方式,可以在先使用第一条链路发送数据包期间***其他的数据传输链路,避免其中某一条数据传输链路压力突然增大,而剩余的数据传输链路处于空闲状态的情况,能够充分利用网络,缓解网络拥堵情况的发生。
结合以上实施方式,上述步骤S14具体可以包括以下步骤:
步骤S141,根据所述多条数据传输链路各自的带宽,确定所述每条数据传输链路的第二固定权重。
步骤S142,根据所述第二固定权重,将所述第二固定权重作为下一次数据传输的负载均衡策略的第一固定权重。
本实施例中,负载均衡策略是基于权重的负载均衡策略,因此,确定下一次数据传输的负载均衡策略主要是确定下一次负载均衡策略的第一固定权重,首先发送端可以根据所述多条数据传输链路各自的带宽,确定所述每条数据传输链路的第二固定权重,接着将所述第二固定权重作为下一次数据传输的负载均衡策略的第一固定权重,即以所述第二固定权重更新第一固定权重。
同样地,如果是接收端根据所述多条数据传输链路各自的带宽,确定所述每条数据传输链路的第二固定权重,接收端可以将确定的第二固定权重发送到发送端,发送端再根据所述第二固定权重,将所述第二固定权重作为下一次数据传输的负载均衡策略的第一固定权重。
在一种实施方式中,考虑到计算的带宽数值较大,直接以带宽作为第二固定权重的话,会使得发送端清单过长,浪费发送端内存,因此,为了节约发送端内存,上述步骤S141具体可以包括以下步骤:
步骤S141a,根据所述多条数据传输链路各自的带宽,确定所述多条数据传输链路各自的带宽的最大公约数。
步骤S141b,将所述多条数据传输链路各自的带宽与所述最大公约数的商确定为所述每条数据传输链路对应的第二固定权重。
示例地,假设数据传输链路A、B、C各自的带宽为6M、8M和10M,取其公约数2,因此计算之后确定的数据传输链路A、B、C各自对应的第二权重为3、4、5。
本实施例中,将所述多条数据传输链路各自的带宽与所述最大公约数的商确定为所述每条数据传输链路对应的第二固定权重,可以节约发送端内存。
在一种实施方式中,考虑到计算出各个数据传输链路的带宽可能不是整数,因此,为了方便第二固定权重的计算,可以在获取到带宽之后,对带宽取整,再进行计算第二固定权重。
参考图6,图6是本申请另一实施例提出的一种数据传输方法的流程示意图。如图6所示,以发送端为客户端,服务器为接收端,负载均衡模块集成在客户端为例,用一个完整的流程描述本实施例的数据传输方法。
(1)客户端根据本次负载均衡策略的第一固定权重,确定多个待发送数据包各自对应的数据传输链路;
(2)客户端通过多条数据传输链路将所述多个待发送数据包发送给所述服务器;
(3)服务器根据多条数据传输链路各自所传输的数据包的数据量和传输时长,确定所述多条数据传输链路各自的带宽;
(4)服务器将多条数据传输链路各自的带宽发送给客户端;
(5)客户端提取多条数据传输链路各自的带宽的最大公约数;
(6)客户端用多条数据传输链路各自的带宽除以最大公约数得到第二固定权重;
(7)客户端用第二固定权重更新负载均衡策略的第一固定权重。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
基于相同的技术构思,请参考图7,图7示出了本申请实施例提供的一种数据传输装置700的结构框图,应用于发送端,所述发送端与接收端之间通过多条数据传输链路通信连接,如图7所示,所述装置包括:
获取模块701,用于获取本次的多个待发送数据包;
第一发送模块702,用于根据本次数据传输的负载均衡策略,通过所述多条数据传输链路将所述多个待发送数据包发送给所述接收端;
第一确定模块703,用于根据所述多条数据传输链路各自所传输的数据包的数据量和传输时长,确定所述多条数据传输链路各自的带宽;
第二确定模块704,用于根据所述多条数据传输链路各自的带宽,确定下一次数据传输的负载均衡策略。
可选地,所述负载均衡策略包括第一固定权重,所述第一发送模块,包括:
第一获取子模块,用于获取每条数据传输链路的第一固定权重;
第一确定子模块,用于根据所述每条数据传输链路的第一固定权重,确定所述多个待发送数据包各自对应的数据传输链路;
第一发送子模块,用于通过所述多条数据传输链路将各自对应的所述待发送数据包发送给所述接收端。
可选地,所述负载均衡策略还包括可变权重,所述第一发送模块,包括:
第二获取子模块,用于获取所述每条数据传输链路的第一固定权重和可变权重;
第二确定子模块,用于轮询所述每条数据传输链路,确定所述可变权重最大的数据传输链路为第一目标数据传输链路,所述第一目标数据传输链路为第一个待发送数据包对应的数据传输链路;
更新子模块,用于根据所述第一目标数据传输链路的可变权重与所述每条数据传输链路的第一固定权重总和的差值,更新所述第一目标数据传输链路的可变权重;
返回子模块,用于以更新后的所述可变权重为所述第一目标数据传输链路的可变权重,将所述每条数据传输链路的第一固定权重与可变权重之和作为每条数据传输链路的可变权重,返回步骤:获取所述每条数据传输链路的第一固定权重和可变权重,直到确定所述多个待发送数据包各自对应的数据传输链路;
第二发送子模块,用于通过所述多条数据传输链路将各自对应的所述待发送数据包发送给所述接收端。
可选地,所述第二确定模块,包括:
第三确定子模块,用于根据所述多条数据传输链路各自的带宽,确定所述每条数据传输链路的第二固定权重;
第一固定权重更新子模块,用于根据所述第二固定权重,将所述第二固定权重作为下一次数据传输的负载均衡策略的第一固定权重。
可选地,所述第三确定子模块,包括:
第一确定子单元,用于根据所述多条数据传输链路各自的带宽,确定所述多条数据传输链路各自的带宽的最大公约数;
第二确定子单元,用于将所述多条数据传输链路各自的带宽与所述最大公约数的商确定为所述每条数据传输链路对应的第二固定权重。
可选地,所述装置还包括:
第二发送模块,用于获取下次的多个待发送数据包,根据下一次数据传输的负载均衡策略,通过所述多条数据传输链路将所述下次的多个待发送数据包发送给所述接收端。
本发明实施例还提供了一种数据传输***,参考图8,图8是本申请一实施例提供的数据传输***的示意图,如图8所示,该数据传输***包括客户端和服务器,所述客户端和所述服务器之间通过多条数据传输链路通信连接,所述客户端和所述服务器均各自包括计算机可读存储介质和处理器,所述终端设备和所述服务器各自包括的计算机可读存储介质分别存储可在各自包括的处理器上运行的计算机程序,以实现本发明实施例任一所述的数据传输方法。
本发明实施例还提供了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明实施例所述的数据传输方法。
对于数据传输装置实施例而言,由于其与数据传输方法实施例基本相似,所以描述的比较简单,相关之处参见数据传输方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明所提供的一种数据传输方法、装置、***及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种数据传输方法,其特征在于,应用于发送端,所述发送端与接收端之间通过多条数据传输链路通信连接,所述方法包括:
获取本次的多个待发送数据包;
根据本次数据传输的负载均衡策略,通过所述多条数据传输链路将所述多个待发送数据包发送给所述接收端;
根据所述多条数据传输链路各自所传输的数据包的数据量和传输时长,确定所述多条数据传输链路各自的带宽;
根据所述多条数据传输链路各自的带宽,确定下一次数据传输的负载均衡策略;
所述负载均衡策略包括第一固定权重和可变权重,所述根据本次数据传输的负载均衡策略,通过所述多条数据传输链路将所述多个待发送数据包发送给所述接收端,包括:
获取每条数据传输链路的第一固定权重和可变权重;
轮询所述每条数据传输链路,确定所述可变权重最大的数据传输链路为第一目标数据传输链路,所述第一目标数据传输链路为第一个待发送数据包对应的数据传输链路;
根据所述第一目标数据传输链路的可变权重与所述每条数据传输链路的第一固定权重总和的差值,更新所述第一目标数据传输链路的可变权重;
以更新后的所述可变权重作为所述第一目标数据传输链路的可变权重,将所述每条数据传输链路的第一固定权重与可变权重之和作为每条数据传输链路的可变权重,返回步骤:获取所述每条数据传输链路的第一固定权重和可变权重,直到确定所述多个待发送数据包各自对应的数据传输链路;
通过所述多条数据传输链路将各自对应的所述待发送数据包发送给所述接收端。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多条数据传输链路各自的带宽,确定下一次数据传输的负载均衡策略,包括:
根据所述多条数据传输链路各自的带宽,确定所述每条数据传输链路的第二固定权重;
根据所述第二固定权重,将所述第二固定权重作为下一次数据传输的负载均衡策略的第一固定权重。
3.根据权利要求2所述的方法,其特征在于,所述根据所述多条数据传输链路各自的带宽,确定所述每条数据传输链路的第二固定权重,包括:
根据所述多条数据传输链路各自的带宽,确定所述多条数据传输链路各自的带宽的最大公约数;
将所述多条数据传输链路各自的带宽与所述最大公约数的商确定为所述每条数据传输链路对应的第二固定权重。
4.根据权利要求1所述的方法,其特征在于,在确定下一次数据传输的负载均衡策略之后,所述方法还包括:
获取下次的多个待发送数据包,根据下一次数据传输的负载均衡策略,通过所述多条数据传输链路将所述下次的多个待发送数据包发送给所述接收端。
5.一种数据传输装置,其特征在于,应用于发送端,所述发送端与接收端之间通过多条数据传输链路通信连接,所述装置包括:
获取模块,用于获取本次的多个待发送数据包;
第一发送模块,用于根据本次数据传输的负载均衡策略,通过所述多条数据传输链路将所述多个待发送数据包发送给所述接收端;
第一确定模块,用于根据所述多条数据传输链路各自所传输的数据包的数据量和传输时长,确定所述多条数据传输链路各自的带宽;
第二确定模块,用于根据所述多条数据传输链路各自的带宽,确定下一次数据传输的负载均衡策略;
所述负载均衡策略包括第一固定权重和可变权重,所述第一发送模块,包括:
第二获取子模块,用于获取每条数据传输链路的第一固定权重和可变权重;
第二确定子模块,用于轮询所述每条数据传输链路,确定所述可变权重最大的数据传输链路为第一目标数据传输链路,所述第一目标数据传输链路为第一个待发送数据包对应的数据传输链路;
更新子模块,用于根据所述第一目标数据传输链路的可变权重与所述每条数据传输链路的第一固定权重总和的差值,更新所述第一目标数据传输链路的可变权重;
返回子模块,用于以更新后的所述可变权重作为所述第一目标数据传输链路的可变权重,将所述每条数据传输链路的第一固定权重与可变权重之和作为每条数据传输链路的可变权重,返回步骤:获取所述每条数据传输链路的第一固定权重和可变权重,直到确定所述多个待发送数据包各自对应的数据传输链路;
第二发送子模块,用于通过所述多条数据传输链路将各自对应的所述待发送数据包发送给所述接收端。
6.一种数据传输***,其特征在于,包括客户端和服务器,所述客户端和所述服务器之间通过多条数据传输链路通信连接,所述客户端和所述服务器均各自包括计算机可读存储介质和处理器,所述客户端和所述服务器各自包括的计算机可读存储介质分别存储可在各自包括的处理器上运行的计算机程序,以实现如权利要求1-4任一所述的数据传输方法的步骤。
7.一种计算机可读存储介质,其特征在于,其存储的计算机程序使得处理器执行如权利要求1至4任一项所述的数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010097795.8A CN111355667B (zh) | 2020-02-17 | 2020-02-17 | 数据传输方法、装置、***及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010097795.8A CN111355667B (zh) | 2020-02-17 | 2020-02-17 | 数据传输方法、装置、***及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111355667A CN111355667A (zh) | 2020-06-30 |
CN111355667B true CN111355667B (zh) | 2022-08-30 |
Family
ID=71195742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010097795.8A Active CN111355667B (zh) | 2020-02-17 | 2020-02-17 | 数据传输方法、装置、***及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111355667B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113824634B (zh) * | 2021-09-22 | 2023-09-12 | 北京博雅文化旅游产业发展有限责任公司 | 一种数据传输方法、装置、计算机设备及可读存储介质 |
CN114679768B (zh) * | 2022-03-03 | 2023-10-17 | 广州安凯微电子股份有限公司 | 一种低功耗蓝牙通信带宽动态调整方法与***、电子设备 |
CN116633871A (zh) * | 2023-05-10 | 2023-08-22 | 北京国际云转播科技有限公司 | 多链路数据流实时传输方法、传输装置、存储介质及*** |
CN117614517B (zh) * | 2024-01-18 | 2024-06-11 | 广东世炬网络科技股份有限公司 | 基于数据传输量控制的多链路数据传输方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107046487A (zh) * | 2017-03-26 | 2017-08-15 | 厦门四信通信科技有限公司 | 一种3g/4g通信网络中基于链路检测实现负载均衡的方法 |
CN110417650A (zh) * | 2019-08-02 | 2019-11-05 | 广东中兴新支点技术有限公司 | 多链路数据分配方法、装置及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532909B (zh) * | 2012-07-04 | 2019-01-22 | 中兴通讯股份有限公司 | 多流业务并发传输方法、子***、***及多接口终端 |
-
2020
- 2020-02-17 CN CN202010097795.8A patent/CN111355667B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107046487A (zh) * | 2017-03-26 | 2017-08-15 | 厦门四信通信科技有限公司 | 一种3g/4g通信网络中基于链路检测实现负载均衡的方法 |
CN110417650A (zh) * | 2019-08-02 | 2019-11-05 | 广东中兴新支点技术有限公司 | 多链路数据分配方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111355667A (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111355667B (zh) | 数据传输方法、装置、***及计算机可读存储介质 | |
CN101917304B (zh) | 基于端对端测量对网络上数据流准入的控制 | |
US20210067453A1 (en) | Data transmission method and apparatus | |
CN114040467B (zh) | 一种传输路径的确定方法、装置、服务器及存储介质 | |
CN108632931B (zh) | 一种基于5g网络的数据传输方法、装置、设备及介质 | |
US11888745B2 (en) | Load balancer metadata forwarding on secure connections | |
US10320680B1 (en) | Load balancer that avoids short circuits | |
EP3429106A1 (en) | Method and device for reducing packet loss ratio of transmission | |
CN106612284A (zh) | 一种流数据的传输方法和装置 | |
CN105262836A (zh) | 服务器推送信息的方法及客户端接收推送信息的方法 | |
EP3560152B1 (en) | Determining the bandwidth of a communication link | |
CN112039727B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
US8601151B2 (en) | Apparatus and method for receiving data | |
CN112866390A (zh) | 一种数据传输方法、装置、终端设备和存储介质 | |
CN105379189B (zh) | 用于发送和接收信息数据的方法和*** | |
US10064184B1 (en) | Dynamic client routing for video streaming clients | |
CN110808917B (zh) | 多链路聚合数据重传方法及发送设备 | |
CN115002008B (zh) | 一种网络时延测量的方法、装置、设备以及存储介质 | |
CN114666318B (zh) | 流媒体数据的下载方法、装置、电子设备及存储介质 | |
CN112637055B (zh) | 基于vpn隧道的多链路聚合方法、***及存储介质 | |
US20150088659A1 (en) | Method and apparatus for providing contents in communication system | |
US20200067845A1 (en) | Mobile packet data rate control based on radio load and other measures | |
US20140237136A1 (en) | Communication system, communication controller, communication control method, and medium | |
CN110289937B (zh) | 延迟响应方未就绪否定应答 | |
CN105634810B (zh) | 一种访问通用即插即用设备的方法和***、访问设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |