CN108390820B - 负载均衡的方法、设备及系统 - Google Patents
负载均衡的方法、设备及系统 Download PDFInfo
- Publication number
- CN108390820B CN108390820B CN201810333794.1A CN201810333794A CN108390820B CN 108390820 B CN108390820 B CN 108390820B CN 201810333794 A CN201810333794 A CN 201810333794A CN 108390820 B CN108390820 B CN 108390820B
- Authority
- CN
- China
- Prior art keywords
- path
- detection
- load
- paths
- packet
- 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
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000001514 detection method Methods 0.000 claims abstract description 559
- 238000004891 communication Methods 0.000 claims description 38
- 239000000523 sample Substances 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 24
- 238000003860 storage Methods 0.000 claims description 22
- 230000009471 action Effects 0.000 claims description 5
- 238000013461 design Methods 0.000 description 49
- 230000006870 function Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 14
- 230000000694 effects Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000009826 distribution Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 3
- 230000032683 aging Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- 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/11—Identifying congestion
- H04L47/115—Identifying congestion using a dedicated packet
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/44—Star or tree networks
-
- 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/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- 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/33—Flow control; Congestion control using forward notification
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种负载均衡的方法、设备及系统。该方法包括:根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中负载最轻的目标路径,所述探测通道用于传输探测报文,所述探测报文包括带宽探测报文;通过所述目标路径的探测通道向所述目的端发送带宽探测报文,并接收所述目的端返回的所述带宽探测报文;根据所述目的端返回的所述带宽探测报文,通过所述目标路径的数据通道向所述目的端发送待传输数据报文。本申请实现了多条路径间的负载均衡。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种负载均衡的方法、设备及系统。
背景技术
为了避免出现数据报文积压、丢包等拥塞情况,需要对数据报文的传输进行拥塞控制。
现有技术中,一种拥塞控制方法中,源端与目的端之间的传输通道按照一定比例分为数据通道和探测通道。具体的,源端首先通过探测通道向目的端发送带宽探测报文(例如,Credit探测报文),带宽探测报文通过路由器发送至目的端,并由目的端返回给源端。之后,源端可以根据路由器对带宽探测报文的丢包限速,感知源端到目的端数据通道的可用带宽,并根据感知的数据通道的可用带宽来向目的端发送数据报文,从而实现数据报文的拥塞控制。并且,该拥塞控制方法,由于数据报文几乎不会积压,数据报文的往返时延(round trip time,RTT)基本固定,因此当源端与目的端之间存在多条路径时,无法基于RTT来实现多条路径的负载均衡。
因此,在该拥塞控制方法的基础上,如何实现多条路径间的负载均衡,成为目前亟待解决的问题。
发明内容
本申请提供一种负载均衡的方法、设备及系统,用以实现多条路径间的负载均衡。
第一方面,本申请实施例提供一种负载均衡的方法,包括:
根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中负载最轻的目标路径,所述探测通道用于传输探测报文,所述探测报文包括带宽探测报文,n为大于1的整数;
通过所述目标路径的探测通道向所述目的端发送带宽探测报文,并接收所述目的端返回的所述带宽探测报文;
根据所述目的端返回的所述带宽探测报文,通过所述目标路径的数据通道向所述目的端发送待传输数据报文。
在上述方案中,根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中负载最轻的目标路径,通过所述目标路径的探测通道向所述目的端发送带宽探测报文,并接收所述目的端返回的所述带宽探测报文,并根据所述目的端返回的所述带宽探测报文,通过所述目标路径的数据通道向所述目的端发送待传输数据报文,实现了基于n条路径各自探测通道的负载状况,选择负载最轻的目标路径,从而实现了多条路径间的负载均衡。
在一种可能实现的设计中,所述探测报文还包括:负载探测报文;
所述根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中负载最轻的目标路径之前,还包括:
通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文,并接收所述目的端返回的所述负载探测报文;
根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况。
在上述方案中,通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文,并接收所述目的端返回的所述负载探测报文,根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况,实现了探测通道的负载状况的确定。
在一种可能实现的设计中,所述根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况,包括:将每条路径返回的所述负载探测报文的往返时延RTT或显示拥塞反馈ECN标识,作为每条路径的探测通道的负载状况信息。
在一种可能实现的设计中,以第一预设时长周期性地执行如下步骤:
通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文,并接收所述目的端返回的所述负载探测报文;根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况。
在上述方案中,以第一预设时长周期性地执行“通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文,并接收所述目的端返回的所述负载探测报文;根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况”,实现了探测通道的负载状况的持续更新。
在一种可能实现的设计中,所述n条路径与n个路径标识一一对应,所述路径标识用于中间设备通过哈希算法进行路由;
通过每条路径的探测通道向所述目的端发送负载探测报文中包括对应路径的路径标识,所述带宽探测报文的包头以及所述数据报文的包头中均包括所述目标路径对应的路径标识。
在上述方案中,通过每条路径的探测通道向所述目的端发送负载探测报文中包括对应路径的路径标识,所述带宽探测报文的包头以及所述数据报文的包头中均包括所述目标路径对应的路径标识,解决了源路由的方式存在的实现复杂的问题。
在一种可能实现的设计中,n小于所述源端与所述目的端间的路径总数,所述n个路径标识包括:随机确定的m个路径标识,以及之前确定目标路径所使用的所有路径中d条路径各自对应的路径标识;其中,n大于等于m,且小于等于m+d,所述d条路径的负载小于或等于所述所有路径中的其他路径的负载。
在上述方案中,n个路径标识包括:随机确定的m个路径标识,以及之前确定目标路径所使用的所有路径中d条路径各自对应的路径标识,实现了采用局部最优解的方式来确定目标路径,在确保所确定的目标路径与通过全局路径的负载状况来确定目标路径一致的基础上,与全局路径的负载状况来确定目标路径相比,减少了轮询以及信息存储的开销。
在一种可能实现的设计中,m等于2。
在一种可能实现的设计中,所述根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中负载最轻的目标路径之前,还包括:
判断所述待传输数据报文与已传输数据报文是否属于同一调度单位;
当不属于同一调度单位时,执行根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中的目标路径的步骤。
在一种可能实现的设计中,所述方法还包括:
当属于同一调度单位时,将所述已传输数据报文的目标路径作为所述待传输数据报文的目标路径。
在上述方案中,当所述待传输数据报文与已传输数据报文不属于同一调度单位时,根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中的目标路径,当所述待传输数据报文与已传输数据报文属于同一调度单位时,将所述已传输数据报文的目标路径作为所述待传输数据报文的目标路径,实现了对于属于同一调度单位的数据报文采用相同的目标路径进行传输。
在一种可能实现的设计中,所述判断所述待传输数据报文与已传输数据报文是否属于同一调度单位,包括:
判断所述待传输数据报文与第二预设时长内传输的已传输数据报文是否属于同一调度单位。
在一种可能实现的设计中,所述调度单位包括:数据包、流或者同一流中的多个数据包的集合。
在上述方案中,所述调度单位包括:数据包、流或者同一流中的多个数据包的集合,实现了对同一数据包、同一数据流或同一数据流中的多个数据包的数据报文采用相同的目标路径进行传输。
第二方面,本申请实施例提供一种负载均衡的方法,包括:
接收源端通过目标路径的探测通道发送的带宽探测报文,所述目标路径为所述源端根据所述源端与目的端之间n条路径各自探测通道的负载状况,确定的所述n条路径中负载最轻的路径,所述探测通道用于传输探测报文,所述探测报文包括带宽探测报文,n为大于1的整数;
将所述带宽探测报文返回给所述源端;
接收所述源端通过所述目标路径的数据通道发送的数据报文。
在上述方案中,所述目标路径为所述源端根据所述源端与目的端之间n条路径各自探测通道的负载状况,确定的所述n条路径中负载最轻的路径,实现了基于n条路径各自探测通道的负载状况,选择负载最轻的目标路径,从而实现了多条路径间的负载均衡。
在一种可能实现的设计中,所述探测报文还包括:负载探测报文;所述接收源端通过目标路径的探测通道发送的带宽探测报文之前,还包括:
接收所述源端通过所述n条路径中每条路径的探测通道,发送的负载探测报文;
将每条路径的探测通道接收到的所述负载探测报文,返回给所述源端。
在上述方案中,接收所述源端通过所述n条路径中每条路径的探测通道,发送的负载探测报文,并将每条路径的探测通道接收到的所述负载探测报文,返回给所述源端,使得源端可以根据根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况,实现了探测通道的负载状况的确定。
在一种可能实现的设计中,所述n条路径与n个路径标识一一对应,所述路径标识用于中间设备通过哈希算法进行路由;
通过每条路径的探测通道向所述目的端发送的负载探测报文的包头中包括对应路径的路径标识,所述带宽探测报文和所述数据报文的包头中均包括所述目标路径对应的路径标识。
在上述方案中,通过每条路径的探测通道向所述目的端发送负载探测报文中包括对应路径的路径标识,所述带宽探测报文的包头以及所述数据报文的包头中均包括所述目标路径对应的路径标识,解决了源路由的方式存在的实现复杂的问题。
在一种可能实现的设计中,n小于所述源端与所述目的端间的路径总数,所述n个路径标识包括:随机确定的m个路径标识,以及之前确定目标路径所使用的所有路径中的d条路径各自对应的路径标识;其中,n大于等于m,且小于等于m+d,且所述d条路径的负载小于或等于所述所有路径中的其他路径的负载。
在上述方案中,n个路径标识包括:随机确定的m个路径标识,以及之前确定目标路径所使用的所有路径中d条路径各自对应的路径标识,实现了采用局部最优解的方式来确定目标路径,在确保所确定的目标路径与通过全局路径的负载状况来确定目标路径一致的基础上,与全局路径的负载状况来确定目标路径相比,减少了轮询以及信息存储的开销。
在一种可能实现的设计中,m等于2。
第三方面,本申请实施例提供一种负载均衡的方法,包括:
接收源端发送的负载探测报文;
将所述负载探测报文通过探测通道转发至目的端,所述探测通道用于传输探测报文,所述探测报文包括负载探测报文;
接收目的端返回的所述负载探测报文;
将所述目的端返回的所述负载探测报文转发至所述源端。
在上述方案中,接收源端发送的负载探测报文,将所述负载探测报文通过探测通道转发至目的端,接收目的端返回的所述负载探测报文,并将所述目的端返回的所述负载探测报文转发至所述源端,实现了中间设备对于源端与目的端之间通过探测通道发送的负载探测报文的转发,使得源端可以根据负载探测报文确定探测通道的负载状况。
在一种可能实现的设计中,所述将所述负载探测报文通过探测通道转发至目的端,包括:
基于排队策略,将所述负载探测报文通过探测通道转发至目的端。
在上述方案中,基于排队策略,将所述负载探测报文通过探测通道转发至目的端,使得源端可以将每条路径返回的所述负载探测报文的RTT,作为每条路径的探测通道的负载状况信息。
在一种可能实现的设计中,所述将所述负载探测报文通过探测通道转发至目的端,包括:
基于最高优先级策略,将所述负载探测报文通过探测通道转发至目的端。
在上述方案中,基于最高优先级策略,将所述负载探测报文通过探测通道转发至目的端,使得源端可以将每条路径返回的所述负载探测报文的ECN标识,作为每条路径的探测通道的负载状况信息。
在一种可能实现的设计中,所述将所述目的端返回的所述负载探测报文转发至所述源端,包括:
基于最高优先级策略,将所述目的端返回的所述负载探测报文转发至所述源端。
在上述方案中,基于最高优先级策略,将所述目的端返回的所述负载探测报文转发至所述源端,避免了中间设备对返回的负载探测报文的传输限制,而导致根据返回的负载探测报文所确定的源端至目的端之间探测通道的负载状况不准确的问题。
在一种可能实现的设计中,所述负载探测报文的包头中包括路径标识;
所述将所述负载探测报文通过探测通道转发至目的端,包括:
根据所述路径标识,采用哈希算法,将所述负载探测报文通过探测通道转发至目的端。
在上述方案中,根据所述路径标识,采用哈希算法,将所述负载探测报文通过探测通道转发至目的端,解决了源路由的方式存在的实现复杂的问题。
第四方面,本申请实施例提供一种源端,包括:
路径确定单元,用于根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中负载最轻的目标路径,所述探测通道用于传输探测报文,所述探测报文包括带宽探测报文,n为大于1的整数;
带宽探测报文收发单元,用于通过所述目标路径的探测通道向所述目的端发送带宽探测报文,并接收所述目的端返回的所述带宽探测报文;
数据报文发送单元,用于根据所述目的端返回的所述带宽探测报文,通过所述目标路径的数据通道向所述目的端发送待传输数据报文。
在一种可能实现的设计中,所述探测报文还包括:负载探测报文;所述源端还包括:负载探测报文确定单元,用于:
通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文,并接收所述目的端返回的所述负载探测报文;
根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况。
在一种可能实现的设计中,所述负载探测报文确定单元,用于根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况,具体包括:将每条路径返回的所述负载探测报文的往返时延RTT或显示拥塞反馈ECN标识,作为每条路径的探测通道的负载状况信息。
在一种可能实现的设计中,所述负载探测报文确定单元,具体用于:以第一预设时长周期性地执行如下步骤:
通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文,并接收所述目的端返回的所述负载探测报文;根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况。
在一种可能实现的设计中,所述n条路径与n个路径标识一一对应,所述路径标识用于中间设备通过哈希算法进行路由;
通过每条路径的探测通道向所述目的端发送负载探测报文中包括对应路径的路径标识,所述带宽探测报文的包头以及所述数据报文的包头中均包括所述目标路径对应的路径标识。
在一种可能实现的设计中,n小于所述源端与所述目的端间的路径总数,所述n个路径标识包括:随机确定的m个路径标识,以及之前确定目标路径所使用的所有路径中d条路径各自对应的路径标识;其中,n大于等于m,且小于等于m+d,所述d条路径的负载小于或等于所述所有路径中的其他路径的负载。
在一种可能实现的设计中,m等于2。
在一种可能实现的设计中,所述源端还包括:判断单元,用于:判断所述待传输数据报文与已传输数据报文是否属于同一调度单位;
所述路径确定单元,具体用于当不属于同一调度单位时,根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中的目标路径。
在一种可能实现的设计中,所述路径确定单元,还用于当属于同一调度单位时,将所述已传输数据报文的目标路径作为所述待传输数据报文的目标路径。
在一种可能实现的设计中,所述判断模块,具体用于判断所述待传输数据报文与第二预设时长内传输的已传输数据报文是否属于同一调度单位。
在一种可能实现的设计中,所述调度单位包括:数据包、流或者同一流中的多个数据包的集合。
上述第四方面以及第四方面的各可能的实施方式所提供的源端,其有益效果可以参照上述第一方面以及第一方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第五方面,本申请实施例提供一种目的端,包括:
带宽探测报文收发单元,用于接收源端通过目标路径的探测通道发送的带宽探测报文,所述目标路径为所述源端根据所述源端与目的端之间n条路径各自探测通道的负载状况,确定的所述n条路径中负载最轻的路径,所述探测通道用于传输探测报文,所述探测报文包括带宽探测报文,n为大于1的整数;
所述带宽探测报文收发单元,还用于将所述带宽探测报文返回给所述源端;
数据报文接收单元,用于接收所述源端通过所述目标路径的数据通道发送的数据报文。
在一种可能实现的设计中,所述探测报文还包括:负载探测报文;所述目的端还包括:负载探测报文收发单元,用于:
接收所述源端通过所述n条路径中每条路径的探测通道,发送的负载探测报文;
将每条路径的探测通道接收到的所述负载探测报文,返回给所述源端。
在一种可能实现的设计中,所述n条路径与n个路径标识一一对应,所述路径标识用于中间设备通过哈希算法进行路由;
通过每条路径的探测通道向所述目的端发送的负载探测报文的包头中包括对应路径的路径标识,所述带宽探测报文和所述数据报文的包头中均包括所述目标路径对应的路径标识。
在一种可能实现的设计中,n小于所述源端与所述目的端间的路径总数,所述n个路径标识包括:随机确定的m个路径标识,以及之前确定目标路径所使用的所有路径中的d条路径各自对应的路径标识;其中,n大于等于m,且小于等于m+d,且所述d条路径的负载小于或等于所述所有路径中的其他路径的负载。
在一种可能实现的设计中,m等于2。
上述第五方面以及第五方面的各可能的实施方式所提供的目的端,其有益效果可以参照上述第二方面以及第二方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第六方面,本申请实施例提供一种中间设备,包括:
第一接收单元,用于接收源端发送的负载探测报文;
第一转发单元,用于将所述负载探测报文通过探测通道转发至目的端,所述探测通道用于传输探测报文,所述探测报文包括负载探测报文;
第二接收单元,用于接收目的端返回的所述负载探测报文;
第二转发单元,用于将所述目的端返回的所述负载探测报文转发至所述源端。
在一种可能实现的设计中,所述第一转发单元,具体用于:
基于排队策略,将所述负载探测报文通过探测通道转发至目的端。
在一种可能实现的设计中,所述第一转发单元,具体用于:
基于最高优先级策略,将所述负载探测报文通过探测通道转发至目的端。
在一种可能实现的设计中,所述第二转发单元,具体用于:
基于最高优先级策略,将所述目的端返回的所述负载探测报文转发至所述源端。
在一种可能实现的设计中,所述负载探测报文的包头中包括路径标识;
所述第一转发单元,用于将所述负载探测报文通过探测通道转发至目的端,具体包括:
根据所述路径标识,采用哈希算法,将所述负载探测报文通过探测通道转发至目的端。
上述第六方面以及第六方面的各可能的实施方式所提供的中间设备,其有益效果可以参照上述第三方面以及第三方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第七方面,本申请实施例提供一种源端,包括:处理器、存储器和通信接口;
所述处理器控制所述通信接口的收发动作;
所述存储器存储程序;
所述处理器调用所述存储器存储的程序,以执行上述第一方面任一项所述的方法。
第八方面,本申请实施例提供一种目的端,包括:处理器、存储器和通信接口;
所述处理器控制所述通信接口的收发动作;
所述存储器存储程序;
所述处理器调用所述存储器存储的程序,以执行上述第二方面任一项所述的方法。
第九方面,本申请实施例提供一种中间设备,包括:处理器、存储器和通信接口;
所述处理器控制所述通信接口的收发动作;
所述存储器存储程序;
所述处理器调用所述存储器存储的程序,以执行上述第三方面任一项所述的方法。
第十方面,本申请实施例提供一种通信系统,包括:第七方面所述的源端、第八方面所述的目的端,以及第九方面所述的中间设备。
第十一方面,本申请实施例提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项所述的方法。
第十二方面,本申请实施例还提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。源端的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得源端实施上述第一方面提供的方法。
第十三方面,本申请实施例提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面任一项所述的方法。
第十四方面,本申请实施例还提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。目的端的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得目的端实施上述第二方面提供的方法。
第十五方面,本申请实施例提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第三方面所述的方法。
第十六方面,本申请实施例还提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。中间设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得中间设备实施上述第三方面提供的方法。
附图说明
图1A为本申请实施例提供的应用架构示意图一;
图1B为本申请实施例提供的应用架构示意图二;
图1C为本申请实施例提供的报文发送的示意图一;
图1D为本申请实施例提供的报文发送的示意图二;
图2为本申请实施例提供的负载均衡的方法实施例一的流程图;
图3A为本申请实施例提供的报文发送的示意图三;
图3B为本申请实施例提供的报文发送的示意图四;
图4为本申请实施例提供的局部最优解的迭代优化过程示意图;
图5为本申请实施例提供的排队网络模型;
图6为本申请实施例提供的仿真效果示意图;
图7为本申请实施例提供的负载均衡的方法实施例二的流程图;
图8A为本申请实施例提供的流表的示意图;
图8B为本申请实施例提供的路径状态表的示意图;
图9为本申请实施例提供的源端的结构示意图;
图10为本申请实施例提供的目的端的结构示意图;
图11为本申请实施例提供的中间设备的结构示意图;
图12为本申请实施例提供的一种通信设备的硬件结构示意图。
具体实施方式
本实施例主要应用于源端与目的端之间存在多条路径的应用架构。以源端与目的端之间存在3条路径为例,本申请实施例的应用架构示意图可以如图1A所示。其中,源端经过中间设备1至目的端的路径可以为路径1,源端经过中间设备2至目的端的路径可以为路径2,源端经过中间设备3至目的端的路径可以为路径3。需要说明的是,图1A中以每条路径经过一个中间设备为例,可以理解的是本申请实施例并不对每条路径经过的中间设备的个数作限制,多条路径经过的中间设备的个数可以完全相同,也可以部分相同,还可以各不相同。
可选的,中间设备例如可以为路由器、交换机、或者其他交换设备等。
可选的,本申请实施例的应用架构具体可以为如图1B所示的数据中心网络(DataCenter Network,DCN)。例如,图1B中的服务器A可以作为源端,服务器B可以作为目的端,边缘交换机、汇聚交换机和核心交换机可以作为中间设备。
在图1A所示的源端与目的端之间存在多条路径的应用架构下,本申请实施例主要应用于对于多条路径中的各路径,源端与目的端之间的传输通道按照一定比例分为数据通道和探测通道,且根据探测通道对带宽探测报文的丢包限速等,调整数据通道中数据报文速率的场景。其中,探测通道可以用于传输探测报文,探测报文可以包括带宽探测报文,数据通道可以用于传输数据报文。需要说明的是,这里将传输通道划分为探测通道和数据通道的划分可以是指逻辑意义上的划分。可选的,源端与目的端之间中间设备的出端口的预留带宽可以组成探测通道,源端与目的端之间中间设备的出端口的非所述预留带宽可以组成数据通道。例如,中间设备可以为探测报文预留一定的缓存(buffer)来缓存探测报文的突发;中间设备的出端口可以按照一定比例的带宽专门用来对探测报文进行限速,对超过带宽比例传输的探测报文进行丢弃;正常的数据报文可以使用探测报文所占带宽比例之外的链路带宽进行传输。并且,由于带宽探测报文经过了速率调整,因此在以带宽探测报文速率为指导的数据报文传输速率可以恰好合适。可以看出,本申请实施例中带宽探测报文可以用于探测可用带宽。
可选的,源端可以通过探测通道向目的端发送带宽探测报文(例如,Credit报文),调整带宽探测报文速率,并根据带宽探测报文速率调整通过数据通道传输的数据报文的发送速率;中间设备可以负责正常传输数据报文,同时预留链路带宽传输探测报文。需要说明的是,关于根据探测通道对带宽探测报文的丢包限速等,调整数据通道中数据报文速率的具体方式,本申请实施例并不作限定。
例如,如图1C所示,第一步,源端可以向目的端发送带宽探测报文(即,带宽探测报文-去程),带宽探测报文可以以最小以太帧64字节进行封装,可以包含TCP/IP头信息、去程标志位或回程标志位等。第二步,逐跳中间设备的出端口可以按照一定带宽比例(例如,5%)对探测报文进行限速,对于超出端口能力的探测报文进行丢弃。第三步,目的端可以将接收到的带宽探测报文源目的地址进行调换回传给发送端(即,带宽探测报文-回程),回程可以不对带宽探测报文限速。第四步,源端可以根据回传的带宽探测报文的速率发送数据报文,例如可以每收到一个探测报文立刻发送一个对应的数据报文。其中,假设探测通道与数据通道的带宽比例为1:19,则第二步中,中间设备的出端口传输数据报文以及带宽探测报文的过程可以如图1D所示。具体的,当源端发送带宽探测报文的速率为1Gbps时,受探测队列的限制,出现了50%的丢包率,可以确定带宽探测报文的合理速率应为0.5Gbps,由于探测通道与数据通道的带宽比例为1:19,则可以进一步确定数据报文的合理速率为9.5Gbps。需要说明的是,图1D、以及下述的图3A和图3B中以中间设备的速率限制算法为令牌桶算法为例。
图2为本申请实施例提供的负载均衡的方法实施例一的流程图。如图2所示,本实施例的方法可以包括:
步骤201,源端根据所述源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中负载最轻的目标路径。
本步骤中,所述探测通道用于传输探测报文,所述探测报文包括带宽探测报文,n为大于1的整数。其中,所述负载状况可以用于表示探测通道的负载大小或负载程度等。对于将传输通道划分为探测通道和数据通道,且根据探测通道对带宽探测报文的丢包限速等,调整数据通道中数据报文速率的场景,由于探测通道的负载状况可以体现出数据通道的负载状况,因此根据n条路径各自探测通道的负载状况,可以确定出n条路径中负载最轻的目标路径,且目标路径的探测通道以及数据通道的负载均最轻。
需要说明的是,所述n条路径具体可以为所述源端与所述目的端之间的全部路径或部分路径,本申请对此并不作限定。
需要说明的是,对于源端获取探测通道的负载状态的具体方式,本申请实施例并不作限定。例如,所述源端可以根据探测通道中传输的带宽探测报文的丢包率或往返时延(Round Trip Time,RTT),确定探测通道的负载状况。
可选的,所述探测报文还可以包括负载探测报文,相应的,可以通过在探测通道中传输负载探测报文的方式,确定探测通道的负载状况。因此,进一步的,在步骤201之前,还可以包括如下步骤2011-步骤2013。
步骤2011,所述源端通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文。
由于源端与目的端之间存在中间设备,因此,对于n条路径中的一条路径,步骤2011具体可以包括:源端通过该条路径的探测通道将负载探测报文发送给该条路径的中间设备,由该条路径的中间设备将负载探测报文转发给目的端。需要说明的是,对于n条路径,可以采用轮询的方式通过每条路径的探测通道向目的端发送负载探测报文,本申请对此并不做限定。可选的,在中间设备的探测通道中同时传输带宽探测报文a和负载探测报文b的场景下,中间设备转发负载探测报文的具体描述例如可以如下图3A或图3B所示。这里,带宽探测报文a具体可以为早于负载探测报文b传输的探测报文。
可选的,中间设备可以基于排队策略,将负载探测报文通过探测通道转发至目的端。如图3A所示,中间设备接收到负载探测报文b后,例如可以执行如下操作:若探测队列中报文积压,但探测队列未满,则将负载探测报文b按照先入先出的顺序放入探测队列进行排队发送。当若探测队列已满,则将负载探测报文b丢弃;若探测队列中报文未积压,则对负载探测报文b进行转发。相应的,探测通道的负载状况可以基于负载探测报文的RTT表示。
可选的,中间设备可以基于最高优先级策略,将负载探测报文通过探测通道转发至目的端。如图3B所示,中间设备接收到负载探测报文b后,例如可以执行如下操作:1)根据探测通道的探测队列的报文积压状况进行判断,如果探测通道的探测队列的积压状况达到预设程度(例如,出现积压),可以将负载探测报文b包头中的ECN位置为1;如果探测通道中探测队列的积压状况未达到预设程度(例如,未出现积压),可以将负载探测报文b的显示拥塞反馈(Explicit Congestion Notification,ECN)位置为0;2)将更新包头的负载探测报文b以最高优先级进行转发。相应的,探测通道的负载状况可以基于负载探测报文的ECN标识表示。需要说明的是,如果探测通道中探测队列的积压状况未达到预设程度,也可以直接将接收到的负载探测报文b以最高优先级进行转发。
可选的,所述源端可以通过源路由的方式实现通过n条路径中每条路径的探测通道向目的端发送负载探测报文。具体的,对于n条路径中的一条路径,源端需要计算出该条路径所经过的所有中间设备,并通过在负载探测报文的包头中增加该条路径路由信息,以便于中间设备可以根据路由信息进行路由,从而实现源端通过该条路径的探测通道向目的端发送负载探测报文。可以看出,源路由的方式存在实现复杂的问题。
针对源路由实现复杂的问题,可选的,所述n条路径与n个路径标识一一对应,所述路径标识用于中间设备通过哈希算法进行路由,通过每条路径的探测通道向所述目的端发送负载探测报文中包括对应路径的路径标识。相应的,中间设备将所述负载探测报文通过探测通道转发至目的端,具体可以包括:根据所述路径标识,采用哈希算法,将所述负载探测报文通过探测通道转发至目的端。可选的,可以对传统的路由算法(例如,最大限度地使用最短路径(Equal Cost Multi path Routing,ECMP)算法)的哈希函数输入进行拓展,在传统基于五元组(源IP地址、目的IP地址、源端口、目的端口、传输层协议)计算的哈希函数基础上,引入新的输入参数(即,路径标识,例如存活时间(Time To Live,TTL)),基于6个参数进行出端口的映射。由于不同的路径标识作为哈希函数的输入参数所得到的结果不同,从而映射的出端口不同,因此n个路径标识可以区分n条路径。
步骤2012,所述目的端将每条路径的探测通道接收到的所述负载探测报文,返回给所述源端。
可选的,对于n条路径中的一条路径,步骤2012具体可以包括:目的端将通过该条路径接收到的负载探测报文,返回给中间设备,由中间设备将负载探测报文转发给源端。可选的,所述目的端将每条路径的探测通道接收到的所述负载探测报文,可以原路径返回给所述源端,或者也可以通过其他路径返回给所述源端,本申请对此并不作限定。
可选的,目的端可以基于将负载探测报文的源地址和目的地址互换的方式,将负载探测报文返回给所述源端。
可选的,为了避免中间设备对返回的负载探测报文的传输限制,而导致根据返回的负载探测报文所确定的源端至目的端之间探测通道的负载状况不准确的问题,中间设备可以不对返回的负载探测报文限速。可选的,中间设备可以基于最高优先级策略,将所述目的端返回的所述负载探测报文转发至所述源端。
步骤2013,所述源端根据每条路径的返回的所述负载探测报文,确定每条路径的探测通道的负载状况。
可以看出,本申请实施例中负载探测报文可以用于探测负载状况。
可选的,当中间设备基于图3A所示的方法转发负载探测报文时,步骤2013具体可以包括:将每条路径返回的所述负载探测报文的往返时延RTT,作为每条路径的探测通道的负载状况信息。具体的,路径返回的负载探测报文的RTT越大,可以表示路径的负载越重;路径返回的负载探测报文的RTT越小,可以表示路径的负载越轻。
当中间设备基于图3B所示的方法转发负载探测报文时,步骤2013具体可以包括:将每条路径返回的所述负载探测报文的显示拥塞反馈ECN标识,作为每条路径的探测通道的负载状况信息。具体的,当路径返回的负载探测报文的ECN标识为1时,可以表示路径的负载较重;当路径返回的负载探测报文的ECN标识为0时,可以表示路径的负载较轻。
需要说明的是,将每条路径返回的负载探测报文的RTT,作为每条路径的探测通道的负载状况信息的方法,当探测通道缓存较大时,该方法效果很好。而当探测通道缓存较小(如,仅缓存2个探测报文)时,探测通道传输负载探测报文的RTT差异并不明显,用基于时延的方法探测探测通道的负载可能并不准确。此时,可以采用将每条路径返回的负载探测报文的ECN,作为每条路径的探测通道的负载状况信息的方法,该方法可以消除时延探测的误差对路径负载状况判断带来的不良影响,当探测通道缓存较小时,对于路径负载状况的判断更加准确,但相比于基于时延的负载探测方法精度略差。
可选的,由于负载状况是具有时效性的,因此本实施例可以以第一预设时长周期性地更新所述n条路径各自探测通道的负载状况。具体的,可以以第一预设时长周期性的执行上述步骤2011-步骤2013。可选的,第一预设时长可以大于或等于RTT。
可选的,N可以等于源端与目的端间的路径总数,此时,源端通过所述源端与目的端间全部路径中的每条路径的探测通道,向所述目的端发送负载探测报文。即,源端可以基于全局路径的负载状况来确定目标路径。或者,可选的,N也可以小于源端与目的端间的路径总数,此时,源端通过所述源端与目的端间部分路径中的每条路径的探测通道,向所述目的端发送负载探测报文。即,源端可以基于局部路径的负载状况来确定目标路径。通过局部路径的负载状况来确定目标路径,与通过全局路径的负载状况来确定目标路径相比,可以减少轮询以及信息存储的开销。
可选的,当源端基于局部路径的负载状况来确定目标路径时,为了尽可能的确保通过局部路径的负载状况来确定目标路径,能够与通过全局路径的负载状况来确定目标路径一致,可以采用局部最优解的方式,确定n个路径。可选的,所述n个路径标识可以包括:随机确定的m个路径标识,以及之前确定目标路径(例如,前一次确定目标路径)所使用的所有路径中d条路径各自对应的路径标识;其中,n大于等于m,且小于等于m+d,所述d条路径的负载小于或等于所述所有路径中的其他路径的负载。需要说明的是,由于n个路径标识与n条路径一一对应,因此n个路径标识应各不相同。并且。由于随机确定的m个路径标识中可能包括了d条路径分别对应的d个路径标识中的全部标识或部分标识,或者可能未包括d个路径标识,因此n可以大于等于m,且小于等于m+d。可选的,所述之前确定目标路径具体可以为前一次确定目标路径,相应的,之前确定目标路径所使用的所有路径中d条路径,可以理解为上一轮的局部最优解。以路径标识为TTL,局部最优解的迭代优化过程可以如图4所示。需要说明的是,图4中,Hashi_metric可以表示路径i的负载状况,值越小可以表示负载越轻,TTLi可以表示路径i的路径标识,其中,i可以等于1,2,3,……。
可选的,m可以等于2。
可选的,d可以等于1。
以下,对于通过局部最优解的方式所获得的目标路径的收敛性(即,通过局部最优解方式所获得的目标路径,可以与通过全局路径的负载状况所确定的目标路径趋于一致),可以通过结合排队论模型及李雅普诺夫漂移函数进行如下理论证明。
理论证明相关的模型参数定义如下:
M:中间设备的入端口的数目
N:中间设备的出端口的数目(也可以理解为中间设备的输出队列的数目)
δi:第i个输入端,数据的输入速率均值
λj:第j个输出端,数据的输入速率的均值
μj:第j个输出端,数据处理速率的均值
qk(t):t时刻,第k个输出队列的长度
q*(t):t时刻,中间设备的N个输出队列中系统中最短队列的长度
K:每个输出队列同一时刻允许并发到达的数据单位的数目
需要说明的是,为了简化,在证明的过程中,假设所有中间设备的入端口的数目相同,所有中间设备的出端口的数目也相同。
以数据中心网络为例,报文在路径中的传输过程可以抽象为如图5所示的排队网络模型,每个中间设备的出端口缓存可以抽象为一个子队列,一个报文从源端发出,经过多跳中间设备并到达目的端的过程,可以抽象为一个多队列串行的排队模型。
考察收敛速度最慢的情况:d=m=1(以下可以称为(1,1)策略),若此时系统稳定,则其它收敛速度更快的情况系统也是稳定的。假设每个时间点,每个队列中最多只处理一个单位的数据。根据排队论模型的结果,对于任一时刻,第i个输入端有数据到达的概率为:
同理,第j个输出端有数据离开的概率为:
同理,任意时刻,输出端队列j有数据调度过来的概率为:
假设本申请实施例中不引入上一轮局部最优解的记录(d=0),则调度策略不收敛,具体证明过程如下:
考察第n个输出队列:对于任意一个输入端口,输入数据调度到第n个输出队列的最大概率为:d/N。因此,第n个输出队列最大可能的输入速率为:
对于余下的M-1个队列,输入速率和的最小值为:
如果下式成立,根据排队论模型的结论,可以证明整个系统是不稳定的:
而输入和输出速率仅仅满足:
具体的均值取值分布则可以使不均匀的,因此可以找到一组输入输出速率的分布满足如下:
显然,满足公式(1)的输入输出均值速率分布很容易构造出来,此时前N-1个队列组成的子系统是不稳定的。因此整个系统也是不稳定的。
下面,继续证明引入了上一轮调度局部最优解的记录(d>0),整个负载均衡策略是收敛的:
构建二次李雅普诺夫函数V,通过证明该李雅普诺夫函数存在一个负期望的单步漂移,说明算法的稳定性。李雅普诺夫函数构造如下:
下证明存在ε>0,k>0使得:
E[V(t+1)-V(t)|V(t)]≤εV(t)+k
由于同一时刻每个输出端口最多容纳K个同时调度过来的数据单位,因此有如下:
同时,每个队列同一时刻最多输出一个数据单位,因此有如下:
q*(t)-q*(t+1)≤1 公式(3)
结合公式(2),公式(3)有如下:
考察李雅普诺夫函数的第一项,令:
有(数据被调度到输出队列i的概率,乘以队长差平方):
将公式(4)代入公式(5),对李雅普诺夫函数进行放缩,得到:
李雅普诺夫函数第一项的上界如下:
为了方便后续推推导,考察特殊情况M=N。根据排队模型的推论有:
将公式(8)代入公式(7),进一步放缩李雅普诺夫函数,得到:
进一步整理,即有:
结合公式(6)与公式(9)可得:
接下来,定义:
则有:
由于q*(t)是全局最优解,因此:q*(t)≤qi(t),进一步有:
假设(1,1)策略下,排队系统没有收敛到全局最优解,则必然存在t,使得当t足够大时,李雅普诺夫函数V(t)的取值极大。由于V(t)=V1(t)+V2(t),则V1(t)和V2(t)至少有一个取值极大。
因此必然存在某一个值t1,使得:
此时,将公式(11),公式(12),公式(13)代入公式(10),可得:
即存在ε>0,使得:
E[V(t+1)-V(t)|V(t)]<-ε
李雅普诺夫函数存在了一步负期望的漂移,即(1,1)策略收敛于全局最优解的JSQ策略,与假设矛盾。因此V1(t)不会出现取值极大的情况。
假设是V2(t)出现了取值极大的情况,则说明必然存在某一个值t2,t≥t2时全队列负载状况严重,qi(t)取值极大,且在不断增大。假设此时全局最优解q*(t)取值不大,即q*(t)与qi(t)取值相差极大。由于c的取值为一个定值,则有:
同时根据完全平方式的性质,有:
将公式(12),公式(14),公式(15)代入公式(10)有:
即存在ε>0,使得:
E[V(t+1)-V(t)|V(t)]<-ε
李雅普诺夫函数存在了一步负期望的漂移,即(1,1)策略收敛于全局最优解,与假设矛盾。因此V2(t)不会出现取值极大的情况。
假设此时局最优解q*(t)也取值极大,q*(t)与qi(t)取值相差不大。此时虽然公式(15)不会成立,但必然存在t≥t3使得:
将公式(11),公式(15),公式(16)代入公式(10)可得:
即存在ε>0,使得:
E[V(t+1)-V(t)|V(t)]<-ε
李雅普诺夫函数存在了一步负期望的漂移,即(1,1)策略收敛于全局最优解,与假设矛盾。因此V2(t)不会出现取值极大的情况。
至此,我们排除了所有李雅普诺夫函数不收敛的情况,因此可以推断(1,1)策略下的调度结果保证在时间足够长时收敛到全局最优解,因此(1,1)策略是稳定的。更进一步,对于收敛速度更快的(d,m)策略(d>1或m>1)实施例,则收敛性更强。因此本实施例提供的负载均衡策略是收敛的。
为了进一步说明本实施例的技术效果,在仿真平台OMNET+(Objective ModularNetwork Testbed in C++)中构建了如图5所示的三层DCN架构,并通过分析在此网络架构下的数据传输效果,验证本发明方案的收敛性。在该DCN架构下,每个端节点(例如,服务器)按照泊松分布随机产生数据流,数据流的目的地址随机,数据包的大小服从重尾分布。如图6所示,在本申请实施例通过局部最优解方法确定目标路径时,任意时刻各个端口的输出队列的长度的最大差值不超过N1与N2的差值。可以看出,通过局部最优解方法确定的目标路径,可以实现负载均衡。
可选的,针对源端需要发送至目的端的每一个或多个待传输数据报文,可以通过执行步骤201确定一次目标路径。具体的,步骤201之前还可以包括:
所述源端判断所述待传输数据报文与已传输数据报文是否属于同一调度单位;
当不属于同一调度单位时,所述源端执行步骤201。
当属于同一调度单位时,将所述已传输数据报文的目标路径作为所述待传输数据报文的目标路径。
可选的,所述判断所述待传输数据报文与已传输数据报文是否属于同一调度单位,包括:判断所述待传输数据报文与第二预设时长内传输的已传输数据报文是否属于同一调度单位。可选的,所述调度单位包括:数据包、流或者同一流中的多个数据包的集合。
可选的,上述第一预设时长可以小于或等于所述第二预设时长。
步骤202,所述源端通过所述目标路径的探测通道向所述目的端发送带宽探测报文。
本步骤中,可选的,所述带宽探测报文的包头中可以包括所述目标路径对应的路径标识,以实现中间设备根据路径标识将所述带宽探测报文通过所述目标路径的探测通道转发至目的端。
步骤203,所述目的端将所述带宽探测报文返回给所述源端。
步骤204,所述源端根据所述目的端返回的所述带宽探测报文,通过所述目标路径的数据通道向所述目的端发送待传输数据报文。
本步骤中,可选的,所述待传输数据报文的包头中可以包括所述目标路径对应的路径标识,以实现中间设备根据路径标识将所述待传输数据报文通过所述目标路径的探测通道转发至目的端。
需要说明的是,步骤202-步骤204的目的是,根据目标路径的探测通道对带宽探测报文的丢包限速等,调整数据通道中数据报文速率。关于根据目标路径的探测通道对带宽探测报文的丢包限速等,调整数据通道中数据报文速率的具体方式,本申请实施例并不作限定。
本实施例中,通过源端根据源端与目的端之间n条路径各自探测通道的负载状况,确定n条路径中负载最轻的目标路径,并通过目标路径的探测通道向目的端发送带宽探测报文,目的端将带宽探测报文返回给源端,源端根据目的端返回的带宽探测报文,通过目标路径的数据通道向目的端发送待传输数据报文,实现了基于n条路径各自探测通道的负载状况,选择负载最轻的目标路径,从而实现了多条路径间的负载均衡。
图7为本申请实施例提供的负载均衡的方法实施例二的流程图,如图7所示,本实施例在上述方法实施例的基础上,以调度单位为流,路径标识为TTL为例,进行如下举例说明。如图7所示,本实施例的方法可以包括:
步骤701,源端在有待传输数据报文需要向目的端发送时,查询源端的流表中是否包括所述待传输数据报文所属的数据流的有效路径。
本步骤中,当流表中包括待传输数据报文所属的数据流的标识与转发路径的对应关系,且有效状态为有效时,可以确定流表中包括待传输数据报文所属的数据流的有效路径。当流表中包括待传输数据报文所属的数据流的标识与转发路径的对应关系,但有效状态为无效,或者流表中未包括待传输数据报文所属的数据流的标识与目标路径的标识的对应关系时,可以确定流表中未包括待传输数据报文所属的数据流的有效路径。例如,如图8A所示,源端的流表的一条表项中可以记录流的标识(Flow ID)、转发路径、Aging Bit和Valid Bit。当Valid Bit等于True时,可以认为有效状态为有效,当Valid Bit等于False时,可以认为有效状态为无效。
可选的,流表中信息的有效时长可以限制为第二预设时长,即可以以第二预设时长周期性的更新流表。具体的,可以以第二预设时长为周期执行如下的流表信息更新操作:
如果Aging Bit=False,重新设置该位的取值为Aging Bit=True
如果Aging Bit=True,更改Valid Bit的取值为Valid Bit=False
说明,源端中可以形成一个周期性更新信息的流表。该流表中的每个数据流在表中的有效周期为第二预设时长,在有效期内到达的相应数据包会按照流表中的转发路径完成调度操作。
当源端的流表中不包括所述待传输数据报文所属的数据流的有效路径时,执行如下步骤702。当源端的流表中包括所述待传输数据报文所属的数据流的有效路径时,执行如下步骤708。
步骤702,源端随机选择m个TTL值,用于标记到达目的端的m条路径,并记录为候选路径集。
步骤703,源端在候选路径集中加入上次确定目标路径时最优的d条路径。
本步骤中,可选的,源端可以维护路径状态表,用于记录源端至目的端的n条路径,以及n条路径各自的负载状况。例如,如图8B所示,路径状态表中可以记录:目的端的标识(DestID),例如目的端地址;路径的TTL取值,例如路径1的TTL取值Hash1_index,路径2的TTL取值Hash2_index和路径3的TTL取值Hash3_index;以及,路径的负载状况,例如路径1的负载状况Hash1_metric,路径2的负载状况Hash2_metric,路径3的负载状况Hash3_metric。具体的,通过路径状态表可以确定d条路径。
可选的,可以以第一预设时长为周期,周期性地更新路径状态表。具体的,可以通过执行步骤702-步骤704更新路径状态表。
需要说明的是,关于d条路径的具体说明可以参见前述实施例,在此不再赘述。这里的候选路径集可以理解为上述n条路径所组成的路径集合。
步骤704,源端探测候选路径集合中每条路径的负载状况。
本步骤中,具体的,可以通过上述步骤2011-步骤2013探测候选路径集合中每条路径的负载状况。在探测候选路径集合中每条路径的负载状况后,可以根据每条路径的负载状况,更新路径状态表。
步骤705,源端根据每条路径的负载状况,确定负载最轻的目标路径。
步骤706,源端通过目标路径的探测通道向目的端发送带宽探测报文,接收目的端返回的带宽探测报文,并根据接收目的端返回的带宽探测报文,通过目标路径的数据通道向目的端发送待传输数据报文。
本步骤中,具体的,可以通过上述步骤202-步骤204将待传输数据报文通过目标路径的数据通道发送至目的端。
步骤707,源端将所述目标路径作为所述待传输数据报文所属的数据流的转发路径更新至流表中。
本步骤中,可选的,可以将待传输数据报文所属的数据流的标识与所述目标路径的对应关系,更新至流表中,并将有效状态置为有效。需要说明的是,对于图8A所示的流表,在确定需要执行步骤702之后,可以更改Valid Bit的取值为True。
需要说明的是,步骤707与步骤706之间,并没有先后顺序的限制。
步骤708,源端通过流表中所述待传输数据报文所属的数据流的有效路径的探测通道向目的端发送带宽探测报文,接收目的端返回的带宽探测报文,并根据接收目的端返回的带宽探测报文,通过有效路径的数据通道向目的端发送待传输数据报文。
需要说明的是,步骤708与步骤706类似,在此不再赘述。
需要说明的是,对于图8A所示的流表,在确定需要执行步骤708之后,可以更改Valid Bit的取值为False。
本实施例中,通过源端在有待传输数据报文需要向目的端发送时,查询源端的流表中是否包括所述待传输数据报文所属的数据流的有效路径,若是,则源端将待传输数据报文通过流表中所述待传输数据报文所属的数据流的有效路径的数据通道发送至目的端,否则,根据n条路径各自探测通道的负载状况,确定负载最轻的目标路径,并将待传输数据报文通过目标路径的数据通道发送至目的端,实现了以流为调度单位,基于n条路径各自探测通道的负载状况,选择负载最轻的目标路径,从而实现了多条路径间的负载均衡。
图9为本申请实施例提供的源端的结构示意图。如图9所示,本实施例的源端可以包括:路径确定单元901、带宽探测报文收发单元902和数据报文发送单元903。其中,
路径确定单元901,用于根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中负载最轻的目标路径,所述探测通道用于传输探测报文,所述探测报文包括带宽探测报文,n为大于1的整数;
带宽探测报文收发单元902,用于通过所述目标路径的探测通道向所述目的端发送带宽探测报文,并接收所述目的端返回的所述带宽探测报文;
数据报文发送单元903,用于根据所述目的端返回的所述带宽探测报文,通过所述目标路径的数据通道向所述目的端发送待传输数据报文。
在一种可能实现的设计中,所述探测报文还包括:负载探测报文;所述源端还包括:负载探测报文确定单元904,用于:
通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文,并接收所述目的端返回的所述负载探测报文;
根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况。
在一种可能实现的设计中,负载探测报文确定单元904,用于根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况,具体包括:将每条路径返回的所述负载探测报文的往返时延RTT或显示拥塞反馈ECN标识,作为每条路径的探测通道的负载状况信息。
在一种可能实现的设计中,负载探测报文确定单元904,具体用于:以第一预设时长周期性地执行如下步骤:
通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文,并接收所述目的端返回的所述负载探测报文;根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况。
在一种可能实现的设计中,所述n条路径与n个路径标识一一对应,所述路径标识用于中间设备通过哈希算法进行路由;
通过每条路径的探测通道向所述目的端发送负载探测报文中包括对应路径的路径标识,所述带宽探测报文的包头以及所述数据报文的包头中均包括所述目标路径对应的路径标识。
在一种可能实现的设计中,n小于所述源端与所述目的端间的路径总数,所述n个路径标识包括:随机确定的m个路径标识,以及之前确定目标路径所使用的所有路径中d条路径各自对应的路径标识;其中,n大于等于m,且小于等于m+d,所述d条路径的负载小于或等于所述所有路径中的其他路径的负载。
在一种可能实现的设计中,m等于2。
在一种可能实现的设计中,所述源端还包括:判断单元905,用于:判断所述待传输数据报文与已传输数据报文是否属于同一调度单位;
路径确定单元901,具体用于当不属于同一调度单位时,根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中的目标路径。
在一种可能实现的设计中,路径确定单元901,还用于当属于同一调度单位时,将所述已传输数据报文的目标路径作为所述待传输数据报文的目标路径。
在一种可能实现的设计中,判断模块905,具体用于判断所述待传输数据报文与第二预设时长内传输的已传输数据报文是否属于同一调度单位。
在一种可能实现的设计中,所述调度单位包括:数据包、流或者同一流中的多个数据包的集合。
本实施例提供的源端,可以用于图2、图7所示实施例源端侧的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本申请实施例提供的目的端的结构示意图。如图10所示,本实施例的目的端可以包括:带宽探测报文收发单元1001和数据报文接收单元1002。其中,
带宽探测报文收发单元1001,用于接收源端通过目标路径的探测通道发送的带宽探测报文,所述目标路径为所述源端根据所述源端与目的端之间n条路径各自探测通道的负载状况,确定的所述n条路径中负载最轻的路径,所述探测通道用于传输探测报文,所述探测报文包括带宽探测报文,n为大于1的整数;
带宽探测报文收发单元1001,还用于将所述带宽探测报文返回给所述源端;
数据报文接收单元1002,用于接收所述源端通过所述目标路径的数据通道发送的数据报文。
在一种可能实现的设计中,所述探测报文还包括:负载探测报文;所述目的端还包括:负载探测报文收发单元1003,用于:
接收所述源端通过所述n条路径中每条路径的探测通道,发送的负载探测报文;
将每条路径的探测通道接收到的所述负载探测报文,返回给所述源端。
在一种可能实现的设计中,所述n条路径与n个路径标识一一对应,所述路径标识用于中间设备通过哈希算法进行路由;
通过每条路径的探测通道向所述目的端发送的负载探测报文的包头中包括对应路径的路径标识,所述带宽探测报文和所述数据报文的包头中均包括所述目标路径对应的路径标识。
在一种可能实现的设计中,n小于所述源端与所述目的端间的路径总数,所述n个路径标识包括:随机确定的m个路径标识,以及之前确定目标路径所使用的所有路径中的d条路径各自对应的路径标识;其中,n大于等于m,且小于等于m+d,且所述d条路径的负载小于或等于所述所有路径中的其他路径的负载。
在一种可能实现的设计中,m等于2。
本实施例提供的目的端,可以用于图2、图7所示实施例目的侧的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本申请实施例提供的中间设备的结构示意图。如图11所示,本实施例的中间设备可以包括:第一接收单元1101、第一转发单元1102、第二接收单元1103和第二转发单元1104。其中,
第一接收单元1101,用于接收源端发送的负载探测报文;
第一转发单元1102,用于将所述负载探测报文通过探测通道转发至目的端,所述探测通道用于传输探测报文,所述探测报文包括负载探测报文;
第二接收单元1103,用于接收目的端返回的所述负载探测报文;
第二转发单元1104,用于将所述目的端返回的所述负载探测报文转发至所述源端。
在一种可能实现的设计中,第一转发单元1102,具体用于:
基于排队策略,将所述负载探测报文通过探测通道转发至目的端。
在一种可能实现的设计中,第一转发单元1102,具体用于:
基于最高优先级策略,将所述负载探测报文通过探测通道转发至目的端。
在一种可能实现的设计中,第二转发单元1104,具体用于:
基于最高优先级策略,将所述目的端返回的所述负载探测报文转发至所述源端。
在一种可能实现的设计中,所述负载探测报文的包头中包括路径标识;
第一转发单元1102,用于将所述负载探测报文通过探测通道转发至目的端,具体包括:
根据所述路径标识,采用哈希算法,将所述负载探测报文通过探测通道转发至目的端。
本实施例提供的中间设备,可以用于图2、图7所示实施例中间设备侧的技术方案,其实现原理和技术效果类似,此处不再赘述。
需要说明的是,应理解以上通信设备的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元通过软件通过处理元件调用的形式实现,部分单元通过硬件的形式实现。例如,发送单元可以为单独设立的处理元件,也可以集成在网络设备的某一个芯片中实现,此外,也可以以程序的形式存储于网络设备的存储器中,由网络设备的某一个处理元件调用并执行该发送单元的功能。其它单元的实现与之类似。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。此外,以上发送单元是一种控制发送的单元,可以通过网络设备的发送装置,例如天线和射频装置接收信息。
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。再如,当以上某个单元通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central ProcessingUnit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
图12为本申请实施例提供的一种通信设备的硬件结构示意图。该通信设备120包括至少一个处理器1201,通信总线1202,存储器1203以及至少一个通信接口1204。
处理器1201可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线1202可包括一通路,在上述组件之间传送信息。
通信接口1204,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
存储器1203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器1203用于存储执行本申请方案的应用程序代码,并由处理器1201来控制执行。处理器1201用于执行存储器1203中存储的应用程序代码,从而实现本申请上述实施例提供的负载均衡的方法。
或者,可选的,本申请实施例中,也可以是处理器1201执行本申请上述实施例提供的负载均衡的方法中的处理相关的功能,通信接口1204负责与其他设备或通信网络通信,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器1201可以包括一个或多个CPU。
在具体实现中,作为一种实施例,通信设备120可以包括多个处理器。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,通信设备120还可以包括输出设备和输入设备。输出设备和处理器1201通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备和处理器1201通信,可以以多种方式接受用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
此外,如上所述,本申请实施例提供的通信设备120可以为芯片,或者源端,或者目的端,或者中间设备,或者有图12中类似结构的设备。本申请实施例不限定通信设备120的类型。
在本实施例中,该通信设备120以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路(Application-Specific IntegratedCircuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到通信设备120可以采用图12所示的形式。比如,图9-图11中的各个单元的功能/实现过程可以通过图12的处理器1201和存储器1203来实现。具体的,图9中的路径确定单元可以通过由处理器1201来调用存储器1203中存储的应用程序代码来执行,本申请实施例对此不作任何限制。或者,图9中的带宽探测报文收发单元可以通过图12的通信接口1204来实现,本申请实施例对此不作任何限制。
需要说明的是,图12所示实施例提供的通信设备具体可以为图2或图7所示实施例中的源端,当处理器1201调用存储器1203存储的程序时,可以执行图2或图7所示实施例提供的源端侧的方法。
需要说明的是,图12所示实施例提供的通信设备具体可以为图2或图7所示实施例中的目的端,当处理器1201调用存储器1203存储的程序时,可以执行图2或图7所示实施例提供的目的端侧的方法。
需要说明的是,图12所示实施例提供的通信设备具体可以为图2或图7所示实施例中的中间设备,当处理器1201调用存储器1203存储的程序时,可以执行图2或图7所示实施例提供的中间设备侧的方法。
可选的,本申请实施例提供了一种通信系统,该通信系统可以上述任一实施例所述的源端、目的端以及中间设备。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (35)
1.一种负载均衡的方法,其特征在于,包括:
根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中负载最轻的目标路径,所述探测通道用于传输探测报文,所述探测报文包括带宽探测报文,n为大于1的整数;
通过所述目标路径的探测通道向所述目的端发送带宽探测报文,并接收所述目的端返回的所述带宽探测报文;
根据所述目的端返回的所述带宽探测报文,通过所述目标路径的数据通道向所述目的端发送待传输数据报文。
2.根据权利要求1所述的方法,其特征在于,所述探测报文还包括:负载探测报文;
所述根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中负载最轻的目标路径之前,还包括:
通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文,并接收所述目的端返回的所述负载探测报文;
根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况。
3.根据权利要求2所述的方法,其特征在于,所述根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况,包括:将每条路径返回的所述负载探测报文的往返时延RTT或显示拥塞反馈ECN标识,作为每条路径的探测通道的负载状况信息。
4.根据权利要求2或3所述的方法,其特征在于,以第一预设时长周期性地执行如下步骤:
通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文,并接收所述目的端返回的所述负载探测报文;根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况。
5.根据权利要求2或3所述的方法,其特征在于,所述n条路径与n个路径标识一一对应,所述路径标识用于中间设备通过哈希算法进行路由;
通过每条路径的探测通道向所述目的端发送的负载探测报文中包括对应路径的路径标识,所述带宽探测报文的包头以及所述数据报文的包头中均包括所述目标路径对应的路径标识。
6.根据权利要求5所述的方法,其特征在于,n小于所述源端与所述目的端间的路径总数,所述n个路径标识包括:随机确定的m个路径标识,以及之前确定目标路径所使用的所有路径中d条路径各自对应的路径标识;其中,n大于等于m,且小于等于m+d,所述d条路径的负载小于或等于所述所有路径中的其他路径的负载。
7.根据权利要求6所述的方法,其特征在于,m等于2。
8.根据权利要求1-3、6、7任一项所述的方法,其特征在于,所述根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中负载最轻的目标路径之前,还包括:
判断所述待传输数据报文与已传输数据报文是否属于同一调度单位;所述调度单位包括:数据包、流或者同一流中的多个数据包的集合;
当不属于同一调度单位时,执行根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中的目标路径的步骤。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当属于同一调度单位时,将所述已传输数据报文的目标路径作为所述待传输数据报文的目标路径。
10.根据权利要求9所述的方法,其特征在于,所述判断所述待传输数据报文与已传输数据报文是否属于同一调度单位,包括:
判断所述待传输数据报文与第二预设时长内传输的已传输数据报文是否属于同一调度单位。
11.一种负载均衡的方法,其特征在于,包括:
接收源端通过目标路径的探测通道发送的带宽探测报文,所述目标路径为所述源端根据所述源端与目的端之间n条路径各自探测通道的负载状况,确定的所述n条路径中负载最轻的路径,所述探测通道用于传输探测报文,所述探测报文包括带宽探测报文,n为大于1的整数;
将所述带宽探测报文返回给所述源端;
接收所述源端通过所述目标路径的数据通道发送的数据报文。
12.根据权利要求11所述的方法,其特征在于,所述探测报文还包括:负载探测报文;所述接收源端通过目标路径的探测通道发送的带宽探测报文之前,还包括:
接收所述源端通过所述n条路径中每条路径的探测通道,发送的负载探测报文;
将每条路径的探测通道接收到的所述负载探测报文,返回给所述源端。
13.根据权利要求12所述的方法,其特征在于,所述n条路径与n个路径标识一一对应,所述路径标识用于中间设备通过哈希算法进行路由;
通过每条路径的探测通道向所述目的端发送的负载探测报文的包头中包括对应路径的路径标识,所述带宽探测报文和所述数据报文的包头中均包括所述目标路径对应的路径标识。
14.根据权利要求13所述的方法,其特征在于,n小于所述源端与所述目的端间的路径总数,所述n个路径标识包括:随机确定的m个路径标识,以及之前确定目标路径所使用的所有路径中的d条路径各自对应的路径标识;其中,n大于等于m,且小于等于m+d,且所述d条路径的负载小于或等于所述所有路径中的其他路径的负载。
15.根据权利要求14所述的方法,其特征在于,m等于2。
16.一种源端,其特征在于,包括:
路径确定单元,用于根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中负载最轻的目标路径,所述探测通道用于传输探测报文,所述探测报文包括带宽探测报文,n为大于1的整数;
带宽探测报文收发单元,用于通过所述目标路径的探测通道向所述目的端发送带宽探测报文,并接收所述目的端返回的所述带宽探测报文;
数据报文发送单元,用于根据所述目的端返回的所述带宽探测报文,通过所述目标路径的数据通道向所述目的端发送待传输数据报文。
17.根据权利要求16所述的源端,其特征在于,所述探测报文还包括:负载探测报文;所述源端还包括:负载探测报文确定单元,用于:
通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文,并接收所述目的端返回的所述负载探测报文;
根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况。
18.根据权利要求17所述的源端,其特征在于,所述负载探测报文确定单元,用于根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况,具体包括:将每条路径返回的所述负载探测报文的往返时延RTT或显示拥塞反馈ECN标识,作为每条路径的探测通道的负载状况信息。
19.根据权利要求17所述的源端,其特征在于,所述负载探测报文确定单元,具体用于:以第一预设时长周期性地执行如下步骤:
通过所述n条路径中每条路径的探测通道,向所述目的端发送负载探测报文,并接收所述目的端返回的所述负载探测报文;根据每条路径返回的所述负载探测报文,确定每条路径的探测通道的负载状况。
20.根据权利要求17或18所述的源端,其特征在于,所述n条路径与n个路径标识一一对应,所述路径标识用于中间设备通过哈希算法进行路由;
通过每条路径的探测通道向所述目的端发送的负载探测报文中包括对应路径的路径标识,所述带宽探测报文的包头以及所述数据报文的包头中均包括所述目标路径对应的路径标识。
21.根据权利要求20所述的源端,其特征在于,n小于所述源端与所述目的端间的路径总数,所述n个路径标识包括:随机确定的m个路径标识,以及之前确定目标路径所使用的所有路径中d条路径各自对应的路径标识;其中,n大于等于m,且小于等于m+d,所述d条路径的负载小于或等于所述所有路径中的其他路径的负载。
22.根据权利要求21所述的源端,其特征在于,m等于2。
23.根据权利要求16-18、21、22任一项所述的源端,其特征在于,所述源端还包括:判断单元,用于:判断所述待传输数据报文与已传输数据报文是否属于同一调度单位;所述调度单位包括:数据包、流或者同一流中的多个数据包的集合;
所述路径确定单元,具体用于当不属于同一调度单位时,根据源端与目的端之间n条路径各自探测通道的负载状况,确定所述n条路径中的目标路径。
24.根据权利要求23所述的源端,其特征在于,所述路径确定单元,还用于当属于同一调度单位时,将已传输数据报文的目标路径作为所述待传输数据报文的目标路径。
25.根据权利要求24所述的源端,其特征在于,所述判断单元,具体用于判断所述待传输数据报文与第二预设时长内传输的已传输数据报文是否属于同一调度单位。
26.一种目的端,其特征在于,包括:
带宽探测报文收发单元,用于接收源端通过目标路径的探测通道发送的带宽探测报文,所述目标路径为所述源端根据所述源端与目的端之间n条路径各自探测通道的负载状况,确定的所述n条路径中负载最轻的路径,所述探测通道用于传输探测报文,所述探测报文包括带宽探测报文,n为大于1的整数;
所述带宽探测报文收发单元,还用于将所述带宽探测报文返回给所述源端;
数据报文接收单元,用于接收所述源端通过所述目标路径的数据通道发送的数据报文。
27.根据权利要求26所述的目的端,其特征在于,所述探测报文还包括:负载探测报文;所述目的端还包括:负载探测报文收发单元,用于:
接收所述源端通过所述n条路径中每条路径的探测通道,发送的负载探测报文;
将每条路径的探测通道接收到的所述负载探测报文,返回给所述源端。
28.根据权利要求27所述的目的端,其特征在于,所述n条路径与n个路径标识一一对应,所述路径标识用于中间设备通过哈希算法进行路由;
通过每条路径的探测通道向所述目的端发送的负载探测报文的包头中包括对应路径的路径标识,所述带宽探测报文和所述数据报文的包头中均包括所述目标路径对应的路径标识。
29.根据权利要求28所述的目的端,其特征在于,n小于所述源端与所述目的端间的路径总数,所述n个路径标识包括:随机确定的m个路径标识,以及之前确定目标路径所使用的所有路径中的d条路径各自对应的路径标识;其中,n大于等于m,且小于等于m+d,且所述d条路径的负载小于或等于所述所有路径中的其他路径的负载。
30.根据权利要求29所述的目的端,其特征在于,m等于2。
31.一种源端,其特征在于,包括:处理器、存储器和通信接口;
所述处理器控制所述通信接口的收发动作;
所述存储器存储程序;
所述处理器调用所述存储器存储的程序,以执行权利要求1-10任一项所述的方法。
32.一种目的端,其特征在于,包括:处理器、存储器和通信接口;
所述处理器控制所述通信接口的收发动作;
所述存储器存储程序;
所述处理器调用所述存储器存储的程序,以执行权利要求11-15任一项所述的方法。
33.一种通信系统,其特征在于,包括:权利要求31所述的源端。
34.一种通信系统,其特征在于,包括:权利要求32所述的目的端。
35.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述权利要求1-15任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810333794.1A CN108390820B (zh) | 2018-04-13 | 2018-04-13 | 负载均衡的方法、设备及系统 |
PCT/CN2019/079302 WO2019196630A1 (zh) | 2018-04-13 | 2019-03-22 | 负载均衡的方法、设备及系统 |
EP19784281.8A EP3767897B1 (en) | 2018-04-13 | 2019-03-22 | Load balancing method |
US17/069,378 US11876715B2 (en) | 2018-04-13 | 2020-10-13 | Load balancing method, device, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810333794.1A CN108390820B (zh) | 2018-04-13 | 2018-04-13 | 负载均衡的方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108390820A CN108390820A (zh) | 2018-08-10 |
CN108390820B true CN108390820B (zh) | 2021-09-14 |
Family
ID=63072788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810333794.1A Active CN108390820B (zh) | 2018-04-13 | 2018-04-13 | 负载均衡的方法、设备及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11876715B2 (zh) |
EP (1) | EP3767897B1 (zh) |
CN (1) | CN108390820B (zh) |
WO (1) | WO2019196630A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108390820B (zh) * | 2018-04-13 | 2021-09-14 | 华为技术有限公司 | 负载均衡的方法、设备及系统 |
CN109067664B (zh) * | 2018-08-29 | 2022-06-10 | 迈普通信技术股份有限公司 | 一种负载均衡方法及装置 |
CN111901237B (zh) * | 2019-05-06 | 2021-06-08 | 清华大学 | 源路由选路方法及系统、相关设备及计算机可读存储介质 |
CN110380981B (zh) * | 2019-07-19 | 2022-10-28 | 厦门网宿有限公司 | 一种流量分发方法及设备 |
CN110417674B (zh) * | 2019-07-26 | 2022-06-21 | 新华三技术有限公司合肥分公司 | 一种数据流量分担方法及装置 |
WO2021026740A1 (zh) * | 2019-08-12 | 2021-02-18 | 华为技术有限公司 | 流量均衡方法、网络设备及电子设备 |
CN115462049B (zh) * | 2020-05-18 | 2024-03-08 | 阿里巴巴(中国)有限公司 | 大规模数据网络中心的转发路径规划方法 |
WO2021244450A1 (zh) | 2020-05-30 | 2021-12-09 | 华为技术有限公司 | 一种通信方法及装置 |
JP7387563B2 (ja) * | 2020-09-14 | 2023-11-28 | 株式会社東芝 | 無線通信装置、無線通信システム、無線通信方法及びプログラム |
CN112187654A (zh) * | 2020-09-28 | 2021-01-05 | 太仓市同维电子有限公司 | 一种多连接通信的分流方法 |
US20220294737A1 (en) * | 2021-03-09 | 2022-09-15 | Nokia Solutions And Networks Oy | Path congestion notification |
CN116670660A (zh) * | 2021-03-17 | 2023-08-29 | 北京希姆计算科技有限公司 | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 |
CN113810459A (zh) * | 2021-07-29 | 2021-12-17 | 奇安信科技集团股份有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN113676405B (zh) * | 2021-08-18 | 2022-10-14 | 上海晨驭信息科技有限公司 | 一种基于负荷分担的快速链路主备切换分布式系统和方法 |
CN116193463A (zh) * | 2021-11-26 | 2023-05-30 | 华为技术有限公司 | 一种数据处理的方法、报文发送的方法及装置 |
US20230216801A1 (en) * | 2022-01-04 | 2023-07-06 | Vmware, Inc. | Explicit congestion notification in a virtual environment |
CN116647878A (zh) * | 2023-07-21 | 2023-08-25 | 北京最终前沿深空科技有限公司 | 用于卫星网络的负载均衡方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009149444A1 (en) * | 2008-06-06 | 2009-12-10 | Feedtext, Inc. | Free short messaging service/multimedia messaging service system and related method of operating the same |
CN101636976A (zh) * | 2006-12-08 | 2010-01-27 | Iwics公司 | 用于多站点网络的增强数据传输协议 |
CN103051709A (zh) * | 2012-12-20 | 2013-04-17 | 新浪网技术(中国)有限公司 | 数据传输路径确定方法、网络节点及内容分发网络系统 |
CN105025525A (zh) * | 2015-07-22 | 2015-11-04 | 中国科学院计算技术研究所 | 一种多信道无线局域网的信道负载均衡系统及方法 |
CN107786440A (zh) * | 2016-08-26 | 2018-03-09 | 华为技术有限公司 | 一种数据报文转发的方法及装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9197533B1 (en) * | 2005-05-09 | 2015-11-24 | Cisco Technology, Inc. | Technique for maintaining and enforcing relative policies with thresholds |
US7643427B2 (en) * | 2006-03-28 | 2010-01-05 | Nec Laboratories America, Inc. | Multipath routing architecture for large data transfers |
EP2005671B1 (en) * | 2006-04-13 | 2011-06-08 | Dolby Laboratories Licensing Corporation | Estimating wireless processing device queue length and estimating signal reception quality in a wireless network |
CN101272290B (zh) * | 2008-05-12 | 2011-05-11 | 中国电信股份有限公司 | Ip网络中路径拥塞状态的测量方法和测量装置 |
US8065433B2 (en) * | 2009-01-09 | 2011-11-22 | Microsoft Corporation | Hybrid butterfly cube architecture for modular data centers |
CN103312607B (zh) * | 2012-03-09 | 2016-12-21 | 华为技术有限公司 | 一种传输路径选择方法及装置 |
US10778584B2 (en) * | 2013-11-05 | 2020-09-15 | Cisco Technology, Inc. | System and method for multi-path load balancing in network fabrics |
JP6323107B2 (ja) * | 2014-03-25 | 2018-05-16 | 富士通株式会社 | スイッチ装置、情報処理システムおよびスイッチ装置の制御方法 |
CN104836750B (zh) | 2015-05-04 | 2017-12-05 | 大连理工大学 | 一种基于时间片轮转的数据中心网络流调度方法 |
WO2017021048A1 (en) * | 2015-08-06 | 2017-02-09 | British Telecommunications Public Limited Company | Data packet network |
KR101768696B1 (ko) * | 2016-01-15 | 2017-08-17 | 울산과학기술원 | 우선순위 큐잉을 수행하는 네트워크 스위치 |
CN105610709B (zh) | 2016-02-03 | 2018-09-11 | 西安电子科技大学 | 基于sdn的大流负载均衡系统与方法 |
US10447578B1 (en) * | 2016-03-02 | 2019-10-15 | Innovium, Inc. | Redistribution policy engine |
US10320681B2 (en) * | 2016-04-12 | 2019-06-11 | Nicira, Inc. | Virtual tunnel endpoints for congestion-aware load balancing |
CN108390820B (zh) * | 2018-04-13 | 2021-09-14 | 华为技术有限公司 | 负载均衡的方法、设备及系统 |
-
2018
- 2018-04-13 CN CN201810333794.1A patent/CN108390820B/zh active Active
-
2019
- 2019-03-22 EP EP19784281.8A patent/EP3767897B1/en active Active
- 2019-03-22 WO PCT/CN2019/079302 patent/WO2019196630A1/zh unknown
-
2020
- 2020-10-13 US US17/069,378 patent/US11876715B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101636976A (zh) * | 2006-12-08 | 2010-01-27 | Iwics公司 | 用于多站点网络的增强数据传输协议 |
WO2009149444A1 (en) * | 2008-06-06 | 2009-12-10 | Feedtext, Inc. | Free short messaging service/multimedia messaging service system and related method of operating the same |
CN103051709A (zh) * | 2012-12-20 | 2013-04-17 | 新浪网技术(中国)有限公司 | 数据传输路径确定方法、网络节点及内容分发网络系统 |
CN105025525A (zh) * | 2015-07-22 | 2015-11-04 | 中国科学院计算技术研究所 | 一种多信道无线局域网的信道负载均衡系统及方法 |
CN107786440A (zh) * | 2016-08-26 | 2018-03-09 | 华为技术有限公司 | 一种数据报文转发的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US11876715B2 (en) | 2024-01-16 |
WO2019196630A1 (zh) | 2019-10-17 |
CN108390820A (zh) | 2018-08-10 |
EP3767897A1 (en) | 2021-01-20 |
US20210029041A1 (en) | 2021-01-28 |
EP3767897A4 (en) | 2021-04-21 |
EP3767897B1 (en) | 2023-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108390820B (zh) | 负载均衡的方法、设备及系统 | |
US20240039836A1 (en) | Algorithms for use of load information from neighboring nodes in adaptive routing | |
US11290395B1 (en) | Emulating output queued behavior in a virtual output queue switch | |
US9185047B2 (en) | Hierarchical profiled scheduling and shaping | |
EP1810466B1 (en) | Directional and priority based flow control between nodes | |
US8995277B2 (en) | Method for dynamic load balancing of network flows on LAG interfaces | |
US20170111283A1 (en) | CONGESTION CONTROL AND QoS IN NoC BY REGULATING THE INJECTION TRAFFIC | |
US8848529B2 (en) | WRR scheduler configuration for optimized latency, buffer utilization | |
EP2670085B1 (en) | System for performing Data Cut-Through | |
US20140192819A1 (en) | Packet exchanging device, transmission apparatus, and packet scheduling method | |
US11165705B2 (en) | Data transmission method, device, and computer storage medium | |
CN114095434B (zh) | 控制网络拥塞的方法和相关装置 | |
CN115622952A (zh) | 资源调度方法、装置、设备及计算机可读存储介质 | |
CN109561020B (zh) | 选择非最小路径和节流端口速度以增大网络吞吐量的技术 | |
CN114553792A (zh) | 调度参数的调整方法、装置、设备及计算机可读存储介质 | |
US11032206B2 (en) | Packet-content based WRED protection | |
US20220124054A1 (en) | Packet processing method and apparatus, and communications device | |
Yang et al. | BFRP: Endpoint congestion avoidance through bilateral flow reservation | |
CN114208131B (zh) | 流量均衡方法、网络设备及电子设备 | |
Bai et al. | Ssp: Speeding up small flows for proactive transport in datacenters | |
WO2021244404A1 (zh) | 数据处理方法及设备 | |
Zheng et al. | Analysis and implementation of a QoS optimization method for access networks | |
CN118869564A (zh) | 报文传输方法、装置、设备及计算机可读存储介质 | |
Rezaei | Adaptive Microburst Control Techniques in Incast-Heavy Datacenter Networks | |
CN116155824A (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 |