CN111147381B - 流量均衡方法和装置 - Google Patents
流量均衡方法和装置 Download PDFInfo
- Publication number
- CN111147381B CN111147381B CN201811302495.8A CN201811302495A CN111147381B CN 111147381 B CN111147381 B CN 111147381B CN 201811302495 A CN201811302495 A CN 201811302495A CN 111147381 B CN111147381 B CN 111147381B
- Authority
- CN
- China
- Prior art keywords
- control
- control message
- destination
- data
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 239000000872 buffer Substances 0.000 claims description 21
- 230000003139 buffering effect Effects 0.000 claims description 16
- 238000004891 communication Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 5
- 238000003672 processing method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 102100022142 Achaete-scute homolog 1 Human genes 0.000 description 2
- 102100022144 Achaete-scute homolog 2 Human genes 0.000 description 2
- 101000901099 Homo sapiens Achaete-scute homolog 1 Proteins 0.000 description 2
- 101000901109 Homo sapiens Achaete-scute homolog 2 Proteins 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000000750 progressive effect Effects 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/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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- 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/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种流量均衡方法,该方法中,流量均衡装置获取第一控制报文和第二控制报文,第一控制报文包括第一路径标识以及第一目的地址,第二控制报文包括第二路径标识以及第一目的地址;流量均衡装置根据路由表、第一路径标识和第一目的地址,确定第一出端口,并通过第一出端口向目的主机发送第一控制报文;流量均衡装置根据路由表、第二路径标识和第一目的地址,确定第二出端口,并通过第二出端口向目的主机发送第二控制报文;流量均衡装置获取C1个数据报文,并根据路由表、C1个数据报文包括的第三路径标识和第一目的地址,确定第三出端口,并通过第三出端口向目的主机发送C1个数据报文,所述第三出端口为所述第一出端口或所述第二出端口。
Description
技术领域
本申请涉及通信领域,尤其涉及一种流量均衡方法和装置。
背景技术
目前分组网络内最主要的流量均衡方法是逐流均衡。该逐流均衡的方法是以一个传输控制协议(Transmission Control Protocol,TCP)流或用户数据报协议(userdatagram protocol,UDP)流为最小粒度,将不同的流分担到多条路径上。以TCP流为例,即便每条路径上被分配的TCP流的数量相同,由于不同的TCP流的数据量存在差异,每条路径的带宽利用率也会存在较大差别,影响流量均衡效果。逐包均衡能够提高流量均衡效果。逐包均衡是以一个数据报文为最小粒度,将不同的数据报文分担到多条路径上。但是逐包均衡会因为不同路径产生的时延导致数据报文乱序,使得接收数据报文的设备因数据报文乱序误判传输过程中发生了丢包,进一步会触发重传操作或降低数据报文的发送速率。
发明内容
本申请实施例提供了一种流量均衡方法和装置,能够在保证流量均衡效果的情况下避免数据报文发生乱序。
第一方面,提供了一种流量均衡方法,所述方法包括:流量均衡装置获取第一控制报文,所述第一控制报文包括第一路径标识以及第一目的地址;所述流量均衡装置根据路由表、所述第一路径标识和所述第一目的地址,确定第一出端口,并通过所述第一出端口向目的主机发送所述第一控制报文;所述流量均衡装置获取第二控制报文,所述第二控制报文包括第二路径标识以及所述第一目的地址;所述流量均衡装置根据所述路由表、所述第二路径标识和所述第一目的地址,确定第二出端口,并通过所述第二出端口向所述目的主机发送所述第二控制报文;所述流量均衡装置获取C1个数据报文,每个数据报文包括第三路径标识以及所述第一目的地址,所述第三路径标识与所述第一路径标识或所述第二路径标识相同,所述C1为大于或等于1的整数;所述流量均衡装置根据所述路由表、所述第三路径标识和所述第一目的地址,确定第三出端口,所述第三出端口与所述第一出端口或者第二出端口相同;所述流量均衡装置通过所述第三出端口,向所述目的主机发送所述C1个数据报文。
上述方法中,流量均衡装置可根据获得的C1个数据报文所携带的第三路径标识,选择转发所述第一控制报文的端口(第一出端口)或转发所述第二控制报文的端口(第二出端口)来发送所述C1个数据报文。如果C1个数据报文所携带的第三路径标识与所述第一路径标识相同,则所述流量均衡装置确定所述第一出端口可用于发送所述C1个数据报文。如果C1个数据报文所携带的第三路径标识与所述第二路径标识相同,则所述流量均衡装置确定所述第二出端口可用于发送所述C1个数据报文。这样,业务流包括的数据报文可沿不同的路径到达目的主机,而触发数据报文被发送的控制报文的有序性保证了被触发的数据报文在到达目的主机时不会存在乱序的情况。
在一种可能的设计中,流量均衡装置根据路由表、所述第一路径标识和所述第一目的地址,确定第一出端口包括:所述流量均衡装置对所述第一路径标识和所述第一控制报文包括的至少一元组进行哈希运算,获得第一哈希值,所述第一控制报文的至少一元组包括源地址、目的地址、源端口号和目的端口号中的一个或多个;所述流量均衡装置用所述第一哈希值和所述第一目的地址查找所述路由表,获得第一出端口的标识;所述流量均衡装置基于所述第一出端口的标识,确定所述第一出端口。其中,所述路由表包括第一对应关系,所述第一对应关系包括所述第一哈希值、所述第一目的地址和所述第一出端口。
在一种可能的设计中,所述通过所述第一出端口向目的主机发送所述第一控制报文包括:所述流量均衡装置将所述第一控制报文缓存于所述第一出端口对应的控制队列;所述流量均衡装置根据时间周期从所述第一出端口对应的控制队列中读取多个控制报文,所述第一出端口对应的控制队列中的多个控制报文包括所述第一控制报文;所述流量均衡装置经由所述第一出端口向所述目的主机发送所读取的第一控制报文。其中,所述时间周期的时长可是根据任一控制报文的包长和发送所述任意控制报文的控制通道所占用的带宽计算获得的时长。
在一种可能的设计中,所述流量均衡装置根据所述路由表、所述第二路径标识和所述第一目的地址,确定第二出端口包括:所述流量均衡装置对所述第二路径标识和所述第二控制报文包括的至少一元组进行哈希运算,获得第二哈希值,所述第二控制报文的至少一元组包括源地址、目的地址、源端口号和目的端口号中的一个或多个;所述流量均衡装置用所述第二哈希值和所述第一目的地址查找所述路由表,获得所述第二出端口的标识;所述流量均衡装置基于所述第二出端口的标识,确定所述第二出端口。其中,所述路由表除了包括所述第一对应关系之外,还可包括所述第二对应关系。所述第二对应关系包括所述第二哈希值、所述第一目的地址和所述第二出端口。
在一种可能的设计中,所述通过所述第二出端口向目的主机发送所述第二控制报文包括:所述流量均衡装置将所述第二控制报文缓存于所述第二出端口对应的控制队列;所述流量均衡装置根据时间周期从所述第二出端口对应的控制队列中读取多个控制报文,所述第二出端口对应的控制队列中的多个控制报文包括所述第二控制报文;所述流量均衡装置经由所述第二出端口向所述目的主机发送所读取的第二控制报文。其中,所述时间周期的时长可是根据任一控制报文的包长和发送所述任意控制报文的控制通道所占用的带宽计算获得的时长。
在一种可能的设计中,所述流量均衡装置可以设置于网络中的转发设备或源主机。其中,所述转发设备可以是路由器或其他能够实现报文缓存和转发功能的装置。所述源主机可以是具有生成控制报文和数据报文功能的设备,比如服务器等。当所述流量均衡装置设置于源主机时,所述方法还包括:所述流量均衡装置接收所述目的主机发送的第三控制报文,所述第三控制报文包括所述第三路径标识;所述流量均衡装置获取C1个数据报文包括:所述流量均衡装置根据所述第三控制报文所携带的所述第三路径标识,生成所述C1个数据报文。其中,所述源主机可以将所述第三路径标识添加至待发送的C1个数据报文中。当所述第三路径标识为所述第一路径标识时,所述C1个数据报文可沿所述第一控制报文转发所经过的路径到达目的主机。当所述第三路径标识为所述第二路径标识时,所述C1个数据报文可沿所述第二控制报文转发所经过的路径到达目的主机。这样,所述C1个数据报文可沿某个控制报文转发所经过的路径到达目的主机,在实现基于包的流量均衡的情况下可保证数据报文的有序性。
在一种可能的设计中,当所述第一控制报文先于所述第二控制报文到达所述目的主机,所述第三控制报文所携带的路径标识与所述第一路径标识相同,所述流量均衡装置根据所述路由表、所述第三路径标识和所述第一目的地址,确定第三出端口包括:所述流量均衡装置对与所述第一路径标识相同的所述第三路径标识和所述C1个数据报文中任一数据报文所包括的至少一元组进行哈希运算,获得第三哈希值;所述流量均衡装置用所述第三哈希值和所述第一目的地址查找所述路由表,获得所述第一出端口的标识,所述第一出端口和所述第三出端口是同一个出端口;所述流量均衡装置基于所述第一出端口的标识,确定所述第三出端口。
在一种可能的设计中,当所述第二控制报文先于所述第一控制报文到达所述目的主机,所述第三控制报文所携带的路径标识与所述第二路径标识相同,所述流量均衡装置根据所述路由表、所述第三路径标识和所述第一目的地址,确定第三出端口包括:所述流量均衡装置对与所述第二路径标识相同的所述第三路径标识和所述C1个数据报文中任一数据报文所包括的至少一元组进行哈希运算,获得第三哈希值;所述流量均衡装置用所述第三哈希值和所述第二目的地址查找所述路由表,获得所述第二出端口的标识,所述第二出端口和所述第三出端口是同一个出端口;所述流量均衡装置基于所述第二出端口的标识,确定所述第三出端口。
在一种可能的设计中,所述流量均衡装置通过所述第三出端口,向所述目的主机发送所述C1个数据报文包括:所述流量均衡装置将所述C1个数据报文缓存于所述第三出端口对应的数据队列;当所述流量均衡装置保存有待发送的控制报文时,所述流量均衡装置在发送了一个控制报文后,通过所述第三出端口向所述目的主机发送从所述数据队列读取的所述C1个数据报文。
在一种可能的设计中,所述流量均衡装置通过所述第三出端口,向所述目的主机发送所述C1个数据报文包括:所述流量均衡装置将所述C1个数据报文缓存于所述第三出端口对应的数据队列;当所述流量均衡装置没有保存有待发送的控制报文时,所述流量均衡装置通过所述第三出端口向所述目的主机发送从所述数据队列读取的所述C1个数据报文,所述流量均衡装置发送所述C1个数据报文前没有发送控制报文。
在一种可能的设计中,所述第一路径标识为第一源端口号,所述第二路径标识为第二源端口号。或者所述第一路径标识为第一生存时间TTL,所述第二路径标识为第二TTL。或者所述第一路径标识为第一目的媒体接入控制地址,所述第二路径标识为第二目的MAC地址。
第二方面,提供一种流量均衡装置,所述装置包括用于实现第一方面或第一方面任一可能的设计所述的流量均衡方法的模块。
第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质包括指令,当其在计算机上运行时,使得所述计算机执行上述第一方面或第一方面的任一种可能的设计所述的流量均衡方法。
第四方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述第一方面或第一方面的任一种可能的设计所述的流量均衡方法。
第五方面,提供一种流量均衡装置,所述流量均衡装置包括:处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述流量均衡装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述流量均衡装置执行上述第一方面或第一方面的任一种可能的设计所述的流量均衡方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍。
图1为本申请实施例一提供的场景示意图。
图2为本申请实施例一提供的流量均衡方法流程示意图。
图3为本申请实施例二提供的场景示意图。
图4为本申请实施例二提供的流量均衡方法流程示意图。
图5为本申请实施例三提供的场景示意图。
图6为本申请实施例提供的一种流量均衡装置的结构示意图。
图7为本申请实施例提供的又一种流量均衡装置的结构示意图。
具体实施方式
下面结合附图,对本发明的实施例进行描述。
实施例一
图1为本申请实施例一提供的场景示意图。本申请实施例一提供的场景中,S1表示作为发送端的源主机。S2表示作为接收端的目的主机。源主机和目的主机均可以是数据中心网络中的服务器、家庭网络中的主机或者是其他能够生成控制报文的网络设备。R1表示第一转发设备。R2表示第二转发设备。R3表示第三转发设备。R4表示第四转发设备。转发设备可以是交换机或路由器等具有报文转发能力的设备。S1与S2间的物理链路(第一物理链路)包括第一路径和第二路径。第一路径和第二路径的长度相同。所述第一路径包括S1与R1间的链路link1、R1与R2间的链路link2、R2与R4间的链路link3、以及R4与S2间的链路link4。所述第二路径包括S1与R1间的链路link1、R1与R3间的链路link5、R3与R4间的链路link6、以及R4与S2间的链路link4。link1在S1的端口需要传输第一数据队列和第一控制队列。所述第一数据队列用于存放至少一个数据报文。在图1所示的场景中,所述第一数据队列包括数据报文A1、数据报文A2、数据报文A3和数据报文A4。所述第一控制队列用于存放至少一个控制报文。在图1所示的场景中,所述第一控制队列包括控制报文a1、控制报文a2、控制报文a3、控制报文a4和控制报文a5。R1上用于和R2通信的端口(连接link2的出端口)需要传输第二数据队列以及第二控制队列。R1上用于和R2通信的端口对应于第一令牌桶。所述第二数据队列用于存放来自link1的数据报文。所述第二控制队列用于存放来自link 1的控制报文。所述第一令牌桶用于对所述第二控制队列中的控制报文进行调度。R1上用于和R3通信的端口(连接link5的出端口)用于传输第三数据队列以及第三控制队列。R1上用于和R3通信的端口对应于第二令牌桶。所述第三数据队列用于存放来自link1的数据报文。所述第三控制队列用于存放来自link 1的控制报文。所述第二令牌桶用于对所述第三控制队列中的控制报文进行调度。R2、R3和R4中的任一设备的出端口也可对应相应的令牌桶。R2、R3和R4中的任一设备的出端口也可用于传输数据队列和控制队列。R2、R3和R4传输数据队列和控制队列的功能可参见R1的相关描述。R4可以通过出端口向S2发送数据报文和控制报文。
图2为本申请实施例一提供的流量均衡方法流程示意图。实施例一提供的方法可应用于图1所示的场景中。实施例一提供的方法中,与源主机连接的第一跳执行报文(控制报文和数据报文)分流操作,比如图1中的R1对来自S1的同一业务流执行报文分流操作。与源主机连接的第一跳是指代业务流传输方向上源主机的下一跳。该报文分流操作指代将属于同一业务流的数据报文或对应于同一业务流的控制报文发送到不同的链路上。下面结合图1和图2,对本申请实施例一提供的流量均衡方法进行说明。
S201,源主机生成第一控制报文和第二控制报文。
举例说明,所述源主机根据业务流包括的任一数据报文的报文头,生成第一控制报文和第二控制报文。其中,所述第一控制报文的报文头包括:第一源互联网协议(InternetProtocol,IP)地址、第一目的IP地址、第一源端口号和第一目的端口号。所述第二控制报文的报文头包括:第二源IP地址、第二目的IP地址、第二源端口号和第二目的端口号。所述第一控制报文和所述第二控制报文对应于同一条业务流。所述第一源端口号和所述第二源端口号不相同。其中,所述第一控制报文的包长和所述第二控制报文的包长相同。以所述第一控制报文为例,所述第一控制报文的包长可设置为M与N的商向下取整后的数值与1的和。所述M为路径最大传输单元(path maximum transmission unit,PMTU)。所述N为数据通道和控制通道之间的带宽比。其中,所述源主机获得所述第一控制报文的包长的方法不局限于上述方式。所述源主机还可以将所述第一控制报文的包长设定为预设值,进而所述源主机可根据所述第一控制报文的包长和所述M确定所述N。
在一种实现方式中,考虑到网络中可能发生丢包,所述源主机生成的与所述任意数据报文对应的控制报文的数量为L1,所述业务流包括的数据量为M的数据报文的数量为L2,所述L1大于或等于所述L2,所述L2为大于或等于1的整数。在另一种方式中,所述源主机可生成L2个与所述任意数据报文对应的控制报文,如果探测到网络中发生了丢包,可根据探测获得的丢包数量L3,再生成L3个与所述任意数据报文对应的控制报文,所述L3为大于或等于1的整数。其中,所述业务流包括至少两个数据量为所述M的数据报文,比如所述业务流包括第一数据报文和第二数据报文。所述第一数据报文数据量为所述M。所述第二数据报文的数据量为所述M。
举例说明,所述数据通道用于传输数据报文。所述控制通道用于传输控制报文。所述数据通道和所述控制通道可承载于一条或多条物理链路。本申请实施例以所述数据通道和所述控制通道承载于一条物理链路为例进行说明。承载所述数据通道和所述控制通道的物理链路为所述源主机和所述目的主机之间的物理链路。在图1所示的场景中,S1与S2之间的第一路径承载所述数据通道和所述控制通道,且S1与S2之间的第二路径也承载所述数据通道和所述控制通道。所述数据通道和所述控制通道的实现方式主要有以下三种:第一种方式为逻辑分割,即所述数据通道体现为设备的出端口上的数据队列,所述控制通道体现为所述设备的出端口上的控制队列,所述设备为所述源主机、所述目的主机或中间节点(不进行报文分流的中间节点或者进行报文分流的中间节点)。所述中间节点可以是网络中的转发设备,比如路由器、交换机或网关。第二种方式为物理分割,即所述数据通道和所述控制通道可以为所述设备的出端口上的两个时分复用(time division multiplexing,TDM)通道。第三种方式为逻辑分割,即所述数据通道体现为设备的出端口上的数据队列,在所述源主机不缓存生成的控制报文的情况下,所述源主机的出端口上可不包括控制队列,有助于减小所述源主机上的内存开销。所述源主机不缓存生成的控制报文的情况指代的是所述源主机生成一个控制报文就进行发送动作。
在图1所示的场景中,所述第一数据队列包括至少一个数据报文。在初始阶段,所述至少一个数据报文包括:数据报文A1、数据报文A2、数据报文A3和数据报文A4。所述数据报文A1是所述第一数据队列中位于队首的数据报文。所述数据报文A1为所述第一数据报文。所述数据报文A2为所述第二数据报文。所述第一控制队列包括至少一个控制报文。在所述初始阶段,所述至少一个控制报文包括控制报文a1、控制报文a2、控制报文a3、控制报文a4和控制报文a5。所述控制报文a1为所述第一控制报文。所述控制报文a2为所述第二控制报文。所述控制报文a1为所述第一控制队列中位于队首的控制报文。所述初始阶段为S1未发送任一数据报文和任一控制报文的阶段。所述数据报文A1、所述数据报文A2、所述数据报文A3和所述数据报文A4属于同一业务流。S1可根据任一数据报文获取控制报文的报文头包括的源IP地址、目的IP地址和目的端口号。所述任一控制报文的包长为Lc,所述任一数据报文的包长为Ld。所述控制通道带宽分配比例的计算公式可表示为
所述数据通道带宽分配比例的计算公式可表示为
上述公式中,X1表示所述源主机每接收到一个来自所述目的主机的控制报文就向所述目的主机发送X1个数据报文。X1的取值为大于或等于1的整数。在Lc为84个字节,Ld为1596个字节,且X1的取值为1的情况下,S1可根据根据上述计算公式获知:所述数据通道的带宽占第一路径(或第二路径)的带宽的比例为1596/(84+1596)=95%,所述控制通道的带宽占所述第一路径(或第二路径)的带宽的比例为84/(84+1596)=5%。基于上述带宽的比例,以带宽为10吉比特每秒(Gigabits per second,Gbps)的第一路径为例,所述数据通道的带宽为9.5Gbps,所述控制通道的带宽为500兆比特每秒(Megabits per second,Mbps)。其中,本申请实施例中包长和数据量表达等价的含义,比如一个报文的包长为84个字节表示该报文所占的数据量为84个字节。
在一种实现方式中,所述源主机可在生成的控制报文中添加一标识,所述标识用于标识其所在的报文为控制报文。接收到任一控制报文的中间节点和目的主机能够根据所述标识区分控制报文和数据报文。例如,在IP网络中,所述标识可通过任一控制报文的报文头中的服务类型(type of service,TOS)字段或差分服务码点(differentiated servicescode point,DSCP)字段中的某个比特或某几个比特来实现。在另一种实现方式中,中间节点和目的主机可通过报文长度来区分控制报文和数据报文,或者根据报文包括的载荷(payload)来区分控制报文和数据报文,在此不再逐一举例说明。
S202,所述源主机通过控制通道,向目的主机发送所述第一控制报文和所述第二控制报文。
举例说明,所述源主机可按照其上控制队列包括的控制报文的顺序,依次序发送所述第一控制报文和所述第二控制报文。在图1所示的场景中,S1可通过连接link 1的端口发送制报文a1和控制报文a2。所述控制报文a1和所述控制报文a2会经过link 1发送至R1。S1在发送所述控制报文a1的阶段,所述第一数据队列包括:所述数据报文A1、所述数据报文A2、所述数据报文A3和所述数据报文A4。所述控制报文a1和所述控制报文a2被发送后,控制报文a3位于所述第一控制队列的队首。
S203,第一中间节点缓存接收到的所述第一控制报文和所述第二控制报文。
举例说明,所述第一控制报文和所述第二控制报文包括相同的目的IP地址和不同的源端口号,即第一目的IP地址与第二目的IP地址相同,第一源端口号和第二源端口号不同。所述第一中间节点对所述第一控制报文的报文头包括的第一源IP地址、所述第一目的IP地址、所述第一源端口号和第一目的端口号进行哈希运算,获得第一哈希值。所述第一中间节点利用所述第一目的IP地址和所述第一哈希值查找路由表,获得第一出端口的标识。所述第一中间节点根据所述第一出端口的标识,确定所述第一出端口。所述路由表包括所述第一目的IP地址、所述第一哈希值所述与第一出端口的标识间的对应关系。在所述路由表的一种实现方式中,所述路由表包括所述第一目的IP地址以及其对应的一组出端口的标识。所述第一目的IP地址对应的一组出端口的标识包括所述第一出端口的标识。所述第一哈希值可以为某个表项的编号,该编号所标识的表项包括所述第一目的IP地址和所述第一出端口的标识。所述第一中间节点对所述第二控制报文的报文头包括的第二源IP地址、所述第二目的IP地址、所述第二源端口号和第二目的端口号进行所述哈希运算,获得第二哈希值。所述第二哈希值不同于所述第一哈希值。所述第一中间节点利用所述目的IP地址和所述第二哈希值查找所述路由表,获得第二出端口的标识。所述第一中间节点根据所述第二出端口的标识,确定所述第二出端口。所述路由表还包括所述第一目的IP地址、所述第二哈希值与所述第二出端口的标识间的对应关系。所述第一中间节点将所述第一控制报文缓存于所述第一出端口的控制队列中。所述第一中间节点将所述第二控制报文缓存于所述第二出端口的控制队列中。在图1所示的场景中,R1对接收到的所述控制报文a1和所述控制报文a2分别进行哈希运算,获得HASH1(第一哈希值)和HASH2(第二哈希值)。R1利用HASH1和所述控制报文a1包括的目的IP地址查找路由表,确定连接link2的出端口(第一出端口)。连接link2的出端口对应于第二控制队列和第一令牌桶。R1利用HASH2和所述控制报文a2包括的目的IP地址查找路由表,确定连接link5的出端口(第二出端口)。连接link5的出端口上对应于有第三控制队列和第二令牌桶。R1将所述控制报文a1缓存于第二控制队列中,将所述控制报文a2缓存于第三控制队列中。
S204,所述第一中间节点发送所述第一控制报文和所述第二控制报文。
举例说明,所述第一控制报文和所述第二控制报文缓存于所述第一中间节点,且所述第一控制报文位于所述第一出端口的控制队列的队首,所述第二控制报文位于所述第二出端口的控制队列的队首。所述第一出端口的令牌桶可根据预设时长发送所述第一控制报文。所述第二出端口的令牌桶可根据所述预设时长发送所述第一控制报文。所述预设时长为发送所述第一控制报文的时刻与发送缓存于所述第一控制报文之后的控制报文的时刻间的时长。所述预设时长的数值为承诺突发尺寸(committed burst size,CBS)与承诺信息速率(committed information rate,CIR)的商。所述CBS的值可以是所述第一控制报文或所述第二控制报文的包长。所述CIR的值可以是所述控制通道占用的带宽。当CBS为84个字节,CIR的值为500Mbps时,所述预设时长为1.344毫秒(microsecond,μs)。具体的,所述预设时长可为84个字节乘以8除以500Mbps之后获得的数值。在图1所示的场景中,R1的第二令牌桶每隔1.344μs从所述第三控制队列中读取一个控制报文,并输出所读取的控制报文。R1的第一令牌桶每隔1.344μs从所述第二控制队列中读取一个控制报文,并输出所读取的控制报文。
举例说明,所述第一中间节点向第二中间节点发送所述第一控制报文,向第三中间节点发送所述第二控制报文。所述第二中间节点位于所述第一中间节点与所述目的主机间的第一路径上,比如图1中的R2为所述第二中间节点。所述第三中间节点位于所述第一中间节点与所述目的主机间的第二路径上,比如图1中的R3为所述第三中间节点。在一种实现方式中,所述第二中间节点和所述第三中间节点可按照通常的路由方法,向所述目的主机发送接收到的控制报文。在另一种实现方式中,所述第二中间节点和所述第三中间节点无需经过哈希运算和利用哈希运算结果查表确定出端口的步骤,而是采用令牌桶周期发送读取的控制报文的方法,向所述目的主机发送接收到的控制报文。
S205,所述目的主机将获得的第三控制报文和第四控制报文发送至所述源主机。
在一种实现方式中,所述源主机和所述目的主机间的第一路径的时延大于所述源主机和所述目的主机间的第二路径的时延,且所述第一路径的时延与所述第二路径的时延的差值大于第一时长,所述第一时长为所述源主机发送所述第一控制报文的时刻和所述源主机发送所述第二控制报文的时刻间的时长。基于时延的原因,所述第二控制报文先于所述第一控制报文到达所述目的主机。所述目的主机根据所述第二控制报文获得第三控制报文。所述第三控制报文包括的目的IP地址为第二源IP地址。所述第三控制报文包括的源IP地址为第二目的IP地址。所述第三控制报文包括的源端口号为第二目的端口号。所述第三控制报文包括的目的端口号为第二源端口号。在图1所示的场景中,R3发送的控制报文a2经link6->R4->link 4发送至S2。S2在接收到所述控制报文a2后,对所述控制报文a2的目的IP地址和源IP地址进行交换,对所述控制报文a2的源端口号和目的端口号进行交换,以获得控制报文a1’。所述控制报文a1’的目的IP地址为所述控制报文a2的源IP地址。所述控制报文a1’的源IP地址为所述控制报文a2的目的IP地址。所述控制报文a1’的源端口号为所述控制报文a2的目的端口号。所述控制报文a1’的目的端口号为所述控制报文a2的源端口号。在该实现方式中,所述目的主机还可采用获取所述第三控制报文的方法,根据所述第一控制报文获取所述第四控制报文。所述第四控制报文包括的路径标识的值与所述第一控制报文包括的路径标识的值相同。
在另一种实现方式中,所述源主机和所述目的主机间的第一路径的时延小于或等于所述源主机和所述目的主机间的第二路径的时延。基于时延和控制报文发送间隔时间的原因,所述第一控制报文先于所述第二控制报文到达所述目的主机。所述目的主机根据所述第一控制报文获得第三控制报文。所述第三控制报文包括的目的IP地址为第一源IP地址。所述第三控制报文包括的源IP地址为第一目的IP地址。所述第三控制报文包括的源端口号为第一目的端口号。所述第三控制报文包括的目的端口号为第一源端口号。在图1所示的场景中,R2发送的控制报文a1经link3->R4->link 4发送至S2。S2在接收到所述控制报文a1后,对所述控制报文a1的目的IP地址和源IP地址进行交换,对所述控制报文a1的源端口号和目的端口号进行交换,以获得控制报文a1’。所述控制报文a1’的目的IP地址为所述控制报文a1的源IP地址。所述控制报文a1’的源IP地址为所述控制报文a1的目的IP地址。所述控制报文a1’的源端口号为所述控制报文a1的目的端口号。所述控制报文a1’的目的端口号为所述控制报文a1的源端口号。在该实现方式中,所述目的主机还可采用获取所述第三控制报文的方法,根据所述第二控制报文获取所述第四控制报文。所述第四控制报文包括的路径标识的值与所述第二控制报文包括的路径标识的值相同。
举例说明,所述目的主机可采用第三路径来发送所述第三控制报文和所述第四控制报文。所述第三路径为所述第三控制报文从所述目的主机到达所述源主机所经过的路径。所述第三路径可以不同于所述第一路径和所述第二路径。
S206,所述源主机根据所述第三控制报文,通过数据通道向所述目的主机发送X1个数据报文。
举例说明,所述X1个数据报文为所述业务流中以队首为起始位置的X1个数据报文。所述源主机将所述第三控制报文中的路径标识添加至所述X1个数据报文中,以便所述X1个数据报文可沿特定的路径进行传输,在实现负载分担的情况下保证数据报文的有序性。该实施例中的路径标识为目的主机发送的点控制报文的报文头中的目的端口号。当所述X1为1时,所述源主机根据所述第三控制报文发送第一数据报文,所述第一数据报文包括的源端口号为所述第三控制报文包括的目的端口号。所述第一数据报文为S201中所述业务流中数据量为M的数据报文。所述第一数据报文位于所述源主机的数据队列中的队首。当所述X1为2时,所述源主机根据所述第三控制报文,发送所述第一数据报文和所述第二数据报文,所述第一数据报文包括的源端口号和所述第二数据报文包括的源端口号均为所述第三控制报文包括的目的端口号。所述X1大于2时,所述源主机对其数据队列中的数据报文的处理方式可参见X1为2时所述源主机所采用的处理方式。
在图1所示的场景中,在一种实现方式中,S1可通过所述控制报文a1’的报文头与所述数据报文A1的报文头包括相同的参数集,确定所述控制报文a1’与所述业务流中的数据报文对应。在另一种方式中,S1交换了所述控制报文a1’的源IP地址和目的IP地址之后,当所述控制报文a1’的源IP地址与所述业务流中的数据报文的源IP地址相同,且所述控制报文a1’的目的IP地址与所述业务流中的数据报文的目的IP地址相同,S1确定所述控制报文a1’与所述业务流中的数据报文对应。如果X1的取值为1,则S1通过连接link1的端口(出端口)发送所述数据报文A1。所述数据报文A1与所述控制报文a1’包括相同的路径标识。如果X1的取值为2,则S1通过连接link1的出端口发送所述数据报文A1和数据报文A2。如果X1的取值为3,则S1通过连接link1的出端口发送所述数据报文A1、数据报文A2和数据报文A3。经由link1传输的数据报文到达R1后,由R1进行报文分流操作。
S207,所述源主机根据所述第四控制报文,通过数据通道向所述目的主机发送X2个数据报文。
举例说明,X2的取值与X1的取值相同。所述X2个数据报文为所述业务流中处于X1个数据报文之后的数据报文。所述源主机将所述第四控制报文中的路径标识添加至所述X2个数据报文中。该实施例中的路径标识为目的主机发送的第四控制报文的报文头中的目的端口号。当所述X2为1时,所述源主机根据所述第四控制报文发送第二数据报文,所述第二数据报文包括的源端口号为所述第四控制报文包括的目的端口号。所述第二数据报文为S201中所述业务流中数据量为M的数据报文。所述第二数据报文位于所述源主机的数据队列中所述第一数据报文之后。当所述X2为2时,所述源主机根据所述第四控制报文,发送第三数据报文和第四数据报文,所述第三数据报文包括的源端口号和所述第四数据报文包括的源端口号均为所述第四控制报文包括的目的端口号。所述X2大于2时,所述源主机对其数据队列中的数据报文的处理方式可参见X2为2时所述源主机所采用的处理方式。
在图1所示的场景中,在一种实现方式中,S1可通过控制报文a2’(图1中未示出)的报文头与所述数据报文A2的报文头包括相同的参数集,确定所述控制报文a2’与所述业务流中的数据报文对应。在另一种方式中,S1交换了所述控制报文a2’的源IP地址和目的IP地址之后,当所述控制报文a2’的源IP地址与所述业务流中的数据报文的源IP地址相同,且所述控制报文a2’的目的IP地址与所述业务流中的数据报文的目的IP地址相同,S1确定所述控制报文a2’与所述业务流中的数据报文对应。如果X2的取值为1,则S1通过连接link 1的端口(出端口)发送所述数据报文A2。所述数据报文A2与所述控制报文a2’包括相同的路径标识。如果X2的取值为2,则S1通过连接link1的出端口发送所述数据报文A3和数据报文A4。经由link1传输的数据报文到达R1后,由R1进行报文分流操作。
S208,所述第一中间节点缓存接收到的所述X1个数据报文和所述X2个数据报文。
在一种实现方式中,当所述第三控制报文包括的路径标识的值与所述第二控制报文包括的路径标识的值相同,所述第四控制报文包括的路径标识的值与所述第一控制报文包括的路径标识的值相同,则所述X1个数据报文中的每个数据报文包括的路径标识的值与所述第二控制报文包括的路径标识的值相同,所述X2个数据报文中的每个数据报文包括的路径标识的值与所述第一控制报文包括的路径标识的值相同。所述第一中间节点对接收到的X1个数据报文中的任一数据报文包括的源端口号、目的端口号、源IP地址和目的IP地址进行哈希运算,获得第二哈希值。所述第一中间节点根据所述第二哈希值、所述路由表和所述X1个数据报文所包括的目的IP地址,获取所述第二出端口的标识,进而确定所述第二出端口可用于发送所述X1个数据报文。所述第一中间节点将所述X1个数据报文缓存于所述第二出端口对应的数据队列中。在图1所示的场景中,R1将X1个数据报文缓存于第三数据队列。当X1为1时,所述第三数据队列缓存所述数据报文A1,如图1的第三数据队列中的虚线所示。所述第一中间节点对接收到的X2个数据报文中的任一数据报文包括的源端口号、目的端口号、源IP地址和目的IP地址进行哈希运算,获得第一哈希值。所述第一中间节点根据所述第一哈希值、所述路由表和所述X2个数据报文所包括的目的IP地址,获取所述第一出端口的标识,进而确定所述第一出端口可用于发送所述X2个数据报文。所述第一中间节点将所述X2个数据报文缓存于所述第一出端口对应的数据队列中。在图1所示的场景中,R1将X2个数据报文缓存于第二数据队列。当X2为1时,所述第二数据队列缓存所述数据报文A2,如图1的第二数据队列中的虚线所示。
在另一种实现方式中,当所述第三控制报文包括的路径标识的值与所述第一控制报文包括的路径标识的值相同,所述第四控制报文包括的路径标识的值与所述第二控制报文包括的路径标识的值相同,则所述X1个数据报文中的每个数据报文包括的路径标识的值与所述第一控制报文包括的路径标识的值相同,所述X2个数据报文中的每个数据报文包括的路径标识的值与所述第二控制报文包括包括的路径标识的值相同。所述中间节点缓存所述X1个数据报文和所述X2个数据报文的方法可参见上一种实现方式。
举例说明,所述第一中间节点可采用为所述第一控制报文和所述第二控制报文确定出端口的方法,为所述X1个数据报文和所述X2个数据报文确定出端口。这样,所述X1个数据报文和所述X2个数据报文可通过不同的路径到达目的主机,以实现负载分担。
S209,所述第一中间节点向所述目的节点发送所述X1个数据报文和所述X2个数据报文。
举例说明,所述第一出端口的控制队列缓存的一个控制报文被发送后或所述第一出端口的控制队列处于空的状态,所述第一出端口的数据队列缓存的数据报文可被发送。所述第二出端口的控制队列缓存的一个控制报文被发送后或所述第二出端口的控制队列处于空的状态,所述第二出端口的数据队列缓存的数据报文可被发送。所述X1个数据报文先于所述X2个数据报文到达所述第一中间节点,在所述第一中间节点的数据队列上未出现发送异常(缓存的数据报文无法正常发送)的情况下,所述第一中间节点会优先发送所述X1个数据报文。所述第一中间节点根据S208中确定的出端口,通过所述第一出端口和所述第二出端口中的一个出端口发送所述X1个数据报文,通过所述第一出端口和所述第二出端口中的另一个出端口发送所述X2个数据报文。
所述第二中间节点和所述第三中间节点可采用发送控制报文的方法,发送接收到的数据报文(X1个数据报文或X2个数据报文)。X1个数据报文和X2个数据报文可经过不同的路径到达所述目的主机。
基于实施例一提供的方法,在一种实现方式中,路径标识可以为控制报文的报文头中的生存时间(time to live,TTL),则所述第一中间节点进行哈希运算的参数还包括TTL,源主机发送的数据报文还包括与该数据报文对应的控制报文所携带的TTL。比如X1个数据报文中每个数据报文还包括所述第三控制报文所携带的TTL。X2个数据报文中每个数据报文还包括所述第四控制报文所携带的TTL。在另一种实现方式中,路径标识可以为控制报文的报文头中的目的媒体接入控制(Media Accesss Control,MAC)地址,则所述第一中间节点进行哈希运算的参数还包括目的MAC地址,源主机发送的数据报文还包括与该数据报文对应的控制报文所携带的目的MAC地址。比如X1个数据报文中每个数据报文还包括所述第三控制报文所携带的源MAC地址(第一控制报文或第二控制报文所携带的目的MAC地址)。X2个数据报文还包括所述第四控制报文所携带的源MAC地址(第二控制报文或第一控制报文所携带的目的MAC地址)。
实施例二
图3为本申请实施例二提供的场景示意图。本申请实施例二提供的场景中,S1表示作为发送端的源主机。S2表示作为接收端的目的主机。源主机和目的主机均可以是数据中心网络中的服务器。R1表示第一转发设备。R2表示第二转发设备。R3表示第三转发设备。S1与S2间的物理链路包括第一路径和第二路径。所述第一路径包括S1与R1间的链路link1、R1与R3间的链路link2以及R3与S2间的链路link3。所述第二路径包括S1与R2间的链路link4、R2与R3间的链路link5以及R3与S2间的链路link3。S1的第一出端口对应第一数据队列、第一控制队列和第一令牌桶。所述第一数据队列用于缓存需要通过所述第一出端口发送的数据报文。所述第一控制队列用于缓存需要通过所述第一出端口发送的控制报文。S1的第二出端口对应第二数据队列、第二控制队列和第二令牌桶。所述第二数据队列用于缓存需要通过所述第二出端口发送的数据报文。所述第二控制队列用于缓存需要通过所述第二出端口发送的控制报文。R1的出端口对应第三数据队列、第三控制队列和第三令牌桶。所述第三数据队列用于存放来自link1的数据报文。所述第三控制队列用于存放来自link 1的控制报文。所述第三令牌桶用于对所述第三控制队列中的控制报文进行调度。R2和R3中的任一设备的出端口对应数据队列、控制队列和令牌桶。R2和R3中的任一设备的出端口所对应的数据队列、控制队列和令牌桶的功能可参见R1的相关描述。
图4为本申请实施例二提供的流量均衡方法流程示意图。实施例二提供的方法可应用于图3所示的场景中。实施例二提供的方法中,源主机执行报文(控制报文和数据报文)分流操作,比如图3中的S1对同一业务流执行报文分流操作。该报文分流操作指代将属于同一业务流的数据报文或对应于同一业务流的控制报文发送到不同的链路上。下面结合图3和图4,对本申请实施例二提供的流量均衡方法进行说明。
S401,源主机缓存生成的第一控制报文和第二控制报文。
举例说明,实施例二的源主机可采用实施例一中的S201的方法生成第一控制报文和第二控制报文。所述第一控制报文包括的路径标识与所述第二控制报文包括的路径标识不同。以路径标识为源端口号为例,所述第一控制报文包括的源端口号与所述第二控制报文包括的源端口号不同。
举例说明,所述源主机可采用实施例一中第一中间节点缓存控制报文的方法来缓存所述第一控制报文和所述第二控制报文。具体地,所述源主机可对所述第一控制报文包括的源IP地址、目的IP地址、源端口号和目的端口号进行哈希运算,获得第一哈希值。所述源主机根据所述第一哈希值、路由表和所述第一控制报文包括的目的IP地址,获得第一出端口的标识,进而确定所述第一出端口可用来发送所述第一控制报文。所述源主机将所述第一控制报文缓存于所述第一出端口的控制队列,比如图3中的第一控制队列中。实施例二中的路由表和实施例一种的路由表包括相同的参数。所述源主机可对所述第二控制报文包括的源IP地址、目的IP地址、源端口号和目的端口号进行哈希运算,获得第二哈希值。所述源主机根据所述第二哈希值、路由表和所述第二控制报文包括的目的IP地址,获得第二出端口的标识,进而确定第二出端口可用来发送所述第二控制报文。所述源主机将所述第二控制报文缓存于所述第二出端口的控制队列,比如图3中的第二控制队列中。
S402,所述源主机向目的主机发送所述第一控制报文和所述第二控制报文。
举例说明,所述源主机根据预设时长发送缓存的控制报文。所述预设时长可参见实施例一种的预设时长。所述源主机的第一出端口上的第一令牌桶基于所述预设时长,发送所述第一控制队列中缓存的第一控制报文。所述第一控制报文经所述第一出端口,沿所述第一路径被发送至所述目的主机。所述源主机的第二出端口上的第二令牌桶基于所述预设时长,发送所述第二控制队列中缓存的第二控制报文。所述第二控制报文经所述第二出端口,沿所述第二路径被发送至所述目的主机。在图3所示的场景中,S1的第一出端口上的第一令牌桶基于所述预设时长,通过link 1向R1发送控制报文a1(第一控制报文)。S1的第二出端口上的第二令牌桶基于所述预设时长,通过link4向R2发送控制报文a2(第二控制报文)。
在一种实现方式中,第一中间节点(图3中的R1)的出端口和第二中间节点(图3中的R2)的出端口均对应有数据队列、控制队列和令牌桶,第三中间节点(图3中的R3)采用先入先出的转发原则。所述第一控制报文经所述第一出端口发送至所述第一中间节点(图3中的R1)。所述第一中间节点可将接收到的所述第一控制报文缓存至其出端口的控制队列(图3中的第二控制队列)。所述第一中间节点利用出端口所对应的令牌桶,实现其控制队列中缓存的相邻两个控制报文的发送间隔时间为预设时长。所述第二控制报文经所述第二出端口发送至第二中间节点(图3中的R2)。所述第二中间节点可将接收到的所述第二控制报文缓存至其出端口的控制队列(图3中未示出)。所述第二中间节点利用出端口所对应的令牌桶,实现其控制队列中缓存的相邻两个控制报文的发送间隔时间为预设时长。经所述第二中间节点发送的第二控制报文到达第三中间节点(图3中的R3)后,第三中间节点(图3中的R3)缓存所述第一中间节点发送的第一控制报文和所述第二中间节点发送的第二控制报文。所述第三中间节点(图3中的R3)采用先入先出的转发原则,比如所述第一控制报文先于所述第二控制报文到达所述第三中间节点,所述第三中间节点优先向目的主机(图3中的S2)发送所述第一控制报文。所述第一控制报文晚于所述第二控制报文到达所述第三中间节点,所述第三中间节点优先向目的主机(图3中的S2)发送所述第二控制报文。
在另一种实现方式中,第一中间节点(图3中的R1)和第二中间节点(图3中的R2)采用先入先出的转发原则,第三中间节点(图3中的R3)的出端口对应有数据队列、控制队列和令牌桶。所述第一中间节点转发所述第一控制报文的方法可参见前一种实现方式中所述第三中间节点所采用的方法。所述第二中间节点转发所述第二控制报文的方法可参见前一种实现方式中所述第三中间节点所采用的方法。所述第三中间节点缓存来自所述第一中间节点的第一控制报文和来自所述第二中间节点的第二控制报文。所述第一控制报文和所述第二控制报文按照到达所述第三中间节点的先后顺序,被缓存于所述第三中间节点的控制队列中。所述第三中间节点利用其出端口所对应的令牌桶,实现所述第一控制报文和所述第二控制报文的发送时刻间的时长为预设时长。
S403,所述目的主机将获得的第三控制报文和第四控制报文发送至所述源主机。
举例说明,所述目的主机生成所述第三控制报文和所述第四控制报文的方法可参见实施例一中的相应内容。所述目的主机向所述源主机发送所述第三控制报文和所述第四控制报文的方法可参见实施例一中的相应内容。所述第三控制报文先于所述第四控制报文被发送。
S405,所述源主机根据所述第三控制报文,获得X1个数据报文。
举例说明,X1为大于或等于1的整数。所述X1个数据报文属于同一业务流。所述X1个数据报文包括相同的路径标识。所述源主机获得X1个数据报文的方法可参见实施例一的中源主机获得X1个数据报文的方法。所述X1个数据报文中每个数据报文包括的路径标识的值与所述第三控制报文包括的路径标识的值相同,比如所述X1个数据报文中每个数据报文包括的源端口号与所述第三控制报文包括的目的端口号相同。
S406,所述源主机根据所述第四控制报文,获得X2个数据报文。
举例说明,X2为大于或等于1的整数。X2的数值可以与X1的数值相同。所述X2个数据报文与所述X1个数据报文属于同一业务流。所述X2个数据报文包括相同的路径标识。所述源主机获得X2个数据报文的方法可参见实施例一的中源主机获得X2个数据报文的方法。所述X2个数据报文中每个数据报文包括的路径标识的值与所述第四控制报文包括的路径标识的值相同,比如所述X2个数据报文中每个数据报文包括的源端口号与所述第四控制报文包括的目的端口号相同。
S407,所述源主机向所述目的主机发送所述X1个数据报文和所述X2个数据报文。
举例说明,所述源主机发送所述X1个数据报文的方法可参见实施例一的第一中间节点发送所述X1个数据报文的方法。所述源主机发送所述X2个数据报文的方法可参见实施例一种的第一中间节点发送所述X2个数据报文的方法。在图3所示的场景中,X1和X2的取值均为1。S1根据数据报文A1的源端口号和至少一元组(目的端口号、源IP地址和目的IP地址中的一个或多个)的哈希运算结果,获得第一哈希值。S1根据第一哈希值、所述路由表和数据报文A1的目的IP地址,获取第一出端口的标识,进而确定第一出端口可用来发送数据报文A1。S1将数据报文A1缓存于第一出端口对应的第一数据队列。S1在第一令牌桶发送了一个控制报文之后或者所述第一控制队列处于空的状态下,通过link1,向R1发送数据报文A1。S1根据数据报文A2的源端口号和至少一元组(目的端口号、源IP地址和目的IP地址中的一个或多个)的哈希运算结果,获得第二哈希值。S1根据第二哈希值、所述路由表和数据报文A2的目的IP地址,获取第二出端口的标识,进而确定第二出端口可用来发送数据报文A2。S1将数据报文A2缓存于第二出端口对应的第二数据队列。S1在第二令牌桶发送了一个控制报文之后或者所述第二控制队列处于空的状态下,通过link4,向R2发送数据报文A2。R2、R1和R3可采用图1所示场景中的R2所采用的方法发送接收到的数据报文。数据报文A1先于数据报文A2发送至S2。这样,在实现了负载分担的情况下避免了报文乱序。
实施例三
图5为本申请实施例三提供的场景示意图。本申请实施例三提供的场景中,S1表示作为发送端的源主机。S2表示作为接收端的目的主机。源主机和目的主机均可以是数据中心网络中的服务器。R1、R2、R3、R4、R5和R6均为网络中的转发设备。S1与S2间的物理链路包括第一路径、第二路径、第三路径、第四路径、第五路径和第六路径。所述第一路径可表示为S1->R2->R3->R4->S2。所述第二路径可表示为S1->R2->R3->R6->S2。所述第三路径可表示为S1->R2->R3->R1->R5->R6->S2。所述第四路径可表示为S1->R1->R5->R6->S2。所述第五路径可表示为S1->R1->R3->R4->S2。所述第六路径可表示为S1->R1->R3->R6->S2。S1的第一出端口对应第一数据队列、第一控制队列和第一令牌桶。所述第一数据队列用于缓存需要通过所述第一出端口发送的数据报文。所述第一控制队列用于缓存需要通过所述第一出端口发送的控制报文。所述第一令牌桶用于周期性地调度所述第一控制队列中缓存的控制报文。S1的第二出端口对应第二数据队列、第二控制队列和第二令牌桶。所述第二数据队列用于缓存需要通过所述第二出端口发送的数据报文。所述第二控制队列用于缓存需要通过所述第二出端口发送的控制报文。所述第二令牌桶用于周期性地调度所述第二控制队列中缓存的控制报文。R1的第一出端口对应第三数据队列、第三控制队列和第三令牌桶。所述第三数据队列用于存放来自S1的数据报文。所述第三控制队列用于存放来自S1的控制报文。所述第三令牌桶用于周期性地调度所述第三控制队列中的控制报文。R1的第二出端口对应第四数据队列、第四控制队列和第四令牌桶。所述第四数据队列用于存放来自S1的数据报文。所述第四控制队列用于存放来自S1的控制报文。所述第四令牌桶用于周期性地调度所述第四控制队列中的控制报文。R3的第一出端口对应第五数据队列、第五控制队列和第五令牌桶。所述第三数据队列用于存放来自R2或R1的数据报文。所述第五控制队列用于存放来自R2或R1的控制报文。所述第五令牌桶用于周期性地调度所述第五控制队列中的控制报文。R3的第二出端口对应第六数据队列、第六控制队列和第六令牌桶。所述第六数据队列用于存放来自R2或R1的数据报文。所述第六控制队列用于存放来自R2或R1的控制报文。所述第六令牌桶用于周期性地调度所述第六控制队列中的控制报文。R2、R4、R5和R6的出端口可分别与用于缓存数据报文的数据队列和用于缓存控制报文的控制队列对应。可选地,R2、R4、R5和R6的出端口可分别对应用于对控制队列中的控制报文进行周期性读取和发送的令牌桶。
下面以控制报文a1和控制报文a2的发送方法为例,对实施例三提供的场景中的各设备进行说明。实施例三中,在S1,由控制报文a1触发发送的数据报文(包括控制报文a1的路径标识的数据报文)在实施例三提供的场景中沿控制报文a1所经过的路径到达S2。在S1,由控制报文a2触发发送的数据报文(包括控制报文a2的路径标识的数据报文)在实施例三提供的场景中沿控制报文a2所经过的路径到达S2。数据报文的转发方法可参见实施例一和实施例二中的相应内容。
在图5所示的场景中,S1可采用实施例一或实施例二中的方法生成控制报文a1和控制报文a2。以路径标识为源端口号为例,S1可对控制报文a1包括的源端口号、目的端口号、源IP地址和目的IP地址进行哈希计算,获得第一哈希值。S1可对控制报文a2包括的源端口号、目的端口号、源IP地址和目的IP地址进行哈希计算,获得第二哈希值。S1根据路由表、第一哈希值和控制报文a1包括的目的IP地址,获取第一出端口的标识,进而确定发送控制报文a1的出端口为S1的第一出端口。路由表的含义可参见实施例一或实施例二的相关内容。S1将控制报文a1缓存于第一控制队列中。S1根据路由表、第二哈希值和控制报文a2包括的目的IP地址,获取第二出端口的标识,进而确定发送控制报文a2的出端口为S1的第二出端口。S1将控制报文a2缓存于第二控制队列中。第一令牌桶按照预设时长读取第一控制队列中缓存的控制报文a1并发送。控制报文a1经S1的第一出端口被发送至R1。第二令牌桶按照预设时长读取第二控制队列中缓存的控制报文a2并发送。控制报文a2经过S1的第二出端口和R2的转发到达R3。R1可采用S1所采用的方法计算获得第一哈希值。R1根据路由表、第一哈希值和控制报文a1包括的目的IP地址,获取第一出端口的标识,进而确定发送控制报文a1的出端口为S1的第一出端口。控制报文a1经由S1的第一出端口到达R3。R3可采用S1所采用的方法计算获得第一哈希值和第二哈希值。R3根据路由表、第一哈希值和控制报文a1包括的目的IP地址,获取第一出端口的标识,进而确定发送控制报文a1的出端口为R3的第一出端口。控制报文a1经R3的第一出端口和R4的转发到达S2。R3根据路由表、第二哈希值和控制报文a2包括的目的IP地址,获取第二出端口的标识,进而确定发送控制报文a2的出端口为R3的第二出端口。控制报文a2经R3的第二出端口和R6的转发到达S2。控制报文a1先于控制报文a2到达S2。S2根据控制报文a1生成控制报文a1’,具体方法可参见实施例一或实施例二的相应内容。S2向S1发送控制报文a1’。S1根据控制报文a1’发送数据报文的方法可参见实施例二的相应内容。由控制报文a1’触发发送的数据报文在图5所示的场景中会沿S1->R1->R3->R4->S2这条路径被转发至S2。S2根据控制报文a2生成控制报文a2’,具体方法可参见实施例一或实施例二的相应内容。S2向S1发送控制报文a2’。S1根据控制报文a2’发送数据报文的方法可参见实施例二的相应内容。由控制报文a2’触发发送的数据报文在图5所示的场景中会沿S1->R2->R3->R6->S2这条路径被转发至S2。R1、R3、R4和R6处理接收到的数据报文的方法可参见R1、R3、R4和R6处理控制报文的方法。
图6为本申请实施例提供的一种流量均衡装置的结构示意图。实施例提供的流量均衡装置可设置于上述实施例一至实施例三中任一实施例中的转发设备或源主机。本申请中流量均衡装置设置于转发设备或源主机是指转发设备或源主机包含流量均衡装置。转发设备或源主机可以利用流量均衡装置与目的主机通信。当转发设备包含流量均衡装置时,源主机生成的流量被转发设备接收。转发设备可以对源主机的流量进行转发处理,从而使得源主机的流量到达目的主机。当源主机包含流量均衡装置时,源主机可以利用源主机包含的流量均衡装置生成流量。另外,源主机包含的流量均衡装置可以向目的主机发送生成的流量。参见图6,所述流量均衡装置包括:第一获取模块601、第一确定模块602、第一发送模块603、第二获取模块604、第二确定模块605、第二发送模块606、第三获取模块607、第三确定模块608和第三发送模块609。第一获取模块601用于获取第一控制报文,所述第一控制报文包括第一路径标识以及第一目的地址。第一确定模块602用于根据路由表、所述第一路径标识和所述第一目的地址,确定第一出端口。第一发送模块603用于通过所述第一出端口向目的主机发送所述第一控制报文。第二获取模块604用于获取第二控制报文,所述第二控制报文包括第二路径标识以及所述第一目的地址。第二确定模块605用于根据所述路由表、所述第二路径标识和所述第一目的地址,确定第二出端口。第二发送模块606用于通过所述第二出端口向所述目的主机发送所述第二控制报文。第三获取模块607用于获取C1个数据报文,每个数据报文包括第三路径标识以及所述第一目的地址,所述第三路径标识与所述第一路径标识或所述第二路径标识相同,所述C1为大于或等于1的整数。第三确定模块608用于根据所述路由表、所述第三路径标识和所述第一目的地址,确定第三出端口,所述第三出端口与所述第一出端口或所述第二出端口相同。第三发送模块609用于通过所述第三出端口,向所述目的主机发送所述C1个数据报文。
在一种实现方式中,所述第一确定模块602用于:对所述第一路径标识和所述第一控制报文包括的至少一元组进行哈希运算,获得第一哈希值,所述第一控制报文的至少一元组包括源地址、目的地址、源端口号和目的端口号中的一个或多个;用所述第一哈希值和所述第一目的地址查找所述路由表,获得第一出端口的标识;基于所述第一出端口的标识,确定所述第一出端口。
在一种实现方式中,所述第一发送模块603用于:将所述第一控制报文缓存于所述第一出端口对应的控制队列;根据时间周期从所述第一出端口对应的控制队列中读取多个控制报文,所述第一出端口对应的控制队列中的多个控制报文包括所述第一控制报文;经由所述第一出端口向所述目的主机发送所读取的第一控制报文。
在一种实现方式中,所述第二确定模块605用于:对所述第二路径标识和所述第二控制报文包括的至少一元组进行哈希运算,获得第二哈希值,所述第二控制报文的至少一元组包括源地址、目的地址、源端口号和目的端口号中的一个或多个;用所述第二哈希值和所述第一目的地址查找所述路由表,获得所述第二出端口的标识;基于所述第二出端口的标识,确定所述第二出端口。
在一种实现方式中,所述第二发送模块606用于:将所述第二控制报文缓存于所述第二出端口对应的控制队列;根据时间周期从所述第二出端口对应的控制队列中读取多个控制报文,所述第二出端口对应的控制队列中的多个控制报文包括所述第二控制报文;经由所述第二出端口向所述目的主机发送所读取的第二控制报文。
其中,与所述第一出端口对应的令牌桶可控制所述第一出端口对应的控制报文所缓存的控制报文的周期性发送。与所述第二出端口对应的令牌桶可控制所述第二出端口对应的控制报文所缓存的控制报文的周期性发送。当所述流量均衡装置为转发设备时,所述第一出端口对应的控制队列和所述第二出端口对应的控制队列可设置于所述转发设备的单板上的流管理芯片(Traffic Manager,TM)。与所述第一出端口对应的令牌桶和与所述第二出端口对应的令牌桶可设置于所述转发设备的单板上的报文转发引擎(PacketForwardEngine,PFE)。PFE可以是网络处理器(Network Processor,NP)。
在一种实现方式中,当所述流量均衡装置设置于所述源主机时,所述流量均衡装置还包括接收模块610。所述接收模块610用于接收所述目的主机发送的所述第三控制报文,所述第三控制报文包括所述第三路径标识。所述第三获取模块607用于根据所述第三控制报文所携带的所述第三路径标识,生成所述C1个数据报文。
在一种实现方式中,当所述第一控制报文先于所述第二控制报文到达所述目的主机,所述第三控制报文所携带的路径标识与所述第一路径标识相同,所述第三确定模块608用于:对与所述第一路径标识相同的所述第三路径标识和所述C1个数据报文中任一数据报文所包括的至少一元组进行哈希运算,获得第三哈希值,所述第三哈希值与所述第一哈希值相同;用所述第三哈希值和所述第一目的地址查找所述路由表,获得所述第一出端口的标识,所述第一出端口和所述第三出端口是同一出端口;基于所述第一出端口的标识,确定所述第三出端口。
在一种实现方式中,所述第三发送模块具体用于:将所述C1个数据报文缓存于所述第三出端口对应的数据队列;当所述流量均衡装置保存有待发送的控制报文时,所述第三发送模块用于在发送了一个控制报文后,通过所述第三出端口向所述目的主机发送从所述数据队列读取的所述C1个数据报文。
在一种实现方式中,所述第三发送模块用于:将所述C1个数据报文缓存于所述第三出端口对应的数据队列;当所述流量均衡装置没有保存有待发送的控制报文时,所述第三发送模块用于通过所述第三出端口向所述目的主机发送从所述数据队列读取的所述C1个数据报文,所述流量均衡装置发送所述C1个数据报文前没有发送控制报文。
在一种实现方式中,所述第一路径标识为第一源端口号,所述第二路径标识为第二源端口号。或者所述第一路径标识为第一生存时间TTL,所述第二路径标识为第二TTL。或者所述第一路径标识为第一目的媒体接入控制地址,所述第二路径标识为第二目的MAC地址。
实施例提供的流量均衡装置设置于中间节点,所述流量均衡装置所包括的单元可以执行上述实施例一提供的第一中间节点的相应功能。所述第一获取模块601和所述第二获取模块604用于支持所述第一中间节点执行实施例一中的S203。所述第一确定模块602、所述第一发送模块603、所述第二确定模块605和所述第二发送模块606用于支持所述第一中间节点执行实施例一中的S204。所述第三获取模块606用于支持所述第一中间节点执行实施例一中的S208。所述第三确定模块607和所述第三发送模块608用于支持所述第一节点执行实施例一中的S209。
实施例提供的流量均衡装置设置于源主机。所述流量均衡装置所包括的单元可以执行上述实施例二提供的源主机的相应功能。所述第一获取模块601和所述第二获取模块604用于支持所述源主机执行实施二中的S401。所述第一确定模块602、所述第一发送模块603、所述第二确定模块605和所述第二发送模块606用于支持所述源主机执行实施例二中的S402。所述接收模块610用于支持所述源主机执行实施例二中的S403。所述第三获取模块606用于支持所述源主机执行实施例二中的S405和S406。所述第三确定模块607和所述第三发送模块608用于支持所述源主机执行实施例一中的S407。
图7为本申请实施例提供的又一种流量均衡装置的结构示意图。该实施例提供的流量均衡装置是从硬件结构的角度对流量均衡装置的结构进行的描述。该实施例提供的流量均衡装置可以是与图6所示的流量均衡装置相同的装置。该装置包括处理器701、存储器702、通信总线704和通信接口703。所述处理器701、所述存储器702和所述通信接口703通过通信总线704连接。所述存储器702用于存储程序。所述处理器701根据从所述存储器702中读取的程序所包括的可执行指令,执行上述实施例一中的第一中间节点执行的方法,和/或实施例二中的源主机执行的方法。所述处理器701可通过通信接口703进行控制报文和数据报文的收发。
实施例提供的流量均衡装置设置于中间节点,所述处理器701和所述通信接口703用于支持所述第一中间节点执行实施例一中的S203、S204、S208和S209。实施例提供的流量均衡装置设置于源主机,所述处理器701和所述通信接口703用于支持所述源主机执行实施二中的S401、S402、S405、S406和S407。
本申请实施例中所提及的通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器。结合本发明实施例所公开的方法的步骤,可以直接体现为处理器中的硬件及软件模块组合执行完成。当使用软件实现时,可以将实现上述功能的代码存储在计算机可读介质中。计算机可读介质包括计算机存储介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以是随机存取存储器(英文全称为random-access memory,英文缩写为RAM)、只读存储器(英文全称为read-only memory,英文缩写为ROM)、电可擦可编程只读存储器(英文全称为electrically erasableprogrammable read-only memory,英文缩写为EEPROM)、只读光盘(英文全称为compactdisk read-only memory,英文缩写为CD-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。计算机可读介质可以是压缩碟(英文全称为compact disk,英文缩写为CD)、激光碟、数字视频光碟(英文全称为digital video disk,英文缩写为DVD)、软盘或者蓝光碟。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (14)
1.一种流量均衡方法,其特征在于,所述方法包括:
流量均衡装置获取第一控制报文,所述第一控制报文包括第一路径标识以及第一目的地址;
所述流量均衡装置根据路由表、所述第一路径标识和所述第一目的地址,确定第一出端口,并通过所述第一出端口向目的主机发送所述第一控制报文;
所述流量均衡装置获取第二控制报文,所述第二控制报文包括第二路径标识以及所述第一目的地址;
所述流量均衡装置根据所述路由表、所述第二路径标识和所述第一目的地址,确定第二出端口,并通过所述第二出端口向所述目的主机发送所述第二控制报文;
所述流量均衡装置获取第三控制报文和第四控制报文,所述第三控制报文是所述目的主机根据所述第二控制报文获得的,所述第三控制报文包括所述第二路径标识,所述第四控制报文是所述目的主机根据所述第一控制报文获得的,所述第四控制报文包括所述第一路径标识;
所述流量均衡装置根据所述路由表、所述第二路径标识和所述第一目的地址,确定所述第二出端口;
所述流量均衡装置通过所述第二出端口,向所述目的主机发送X1个数据报文,所述X1个数据报文包括所述第二路径标识以及所述第一目的地址,所述X1为大于或等于1的整数;
所述流量均衡装置根据所述路由表、所述第一路径标识和所述第一目的地址,确定所述第一出端口;
所述流量均衡装置通过所述第一出端口,向所述目的主机发送X2个数据报文,所述X2个数据报文包括所述第一路径标识以及所述第一目的地址,所述X2为大于或等于1的整数;
其中,所述第二控制报文先于所述第一控制报文到达所述目的主机,所述X2个数据报文为业务流中处于X1个数据报文之后的数据报文。
2.根据权利要求1所述的方法,其特征在于,流量均衡装置根据路由表、所述第一路径标识和所述第一目的地址,确定第一出端口包括:
所述流量均衡装置对所述第一路径标识和所述第一控制报文包括的至少一元组进行哈希运算,获得第一哈希值,所述第一控制报文的至少一元组包括源地址、目的地址、源端口号和目的端口号中的一个或多个;
所述流量均衡装置用所述第一哈希值和所述第一目的地址查找所述路由表,获得所述第一出端口的标识;
所述流量均衡装置基于所述第一出端口的标识,确定所述第一出端口。
3.根据权利要求1或2所述的方法,其特征在于,所述通过所述第一出端口向目的主机发送所述第一控制报文包括:
所述流量均衡装置将所述第一控制报文缓存于所述第一出端口对应的控制队列;
所述流量均衡装置根据时间周期从所述第一出端口对应的控制队列中读取多个控制报文,所述第一出端口对应的控制队列中的多个控制报文包括所述第一控制报文;
所述流量均衡装置经由所述第一出端口向所述目的主机发送所读取的第一控制报文。
4.根据权利要求1至3任一所述的方法,其特征在于,所述流量均衡装置根据所述路由表、所述第二路径标识和所述第一目的地址,确定第二出端口包括:
所述流量均衡装置对所述第二路径标识和所述第二控制报文包括的至少一元组进行哈希运算,获得第二哈希值,所述第二控制报文的至少一元组包括源地址、目的地址、源端口号和目的端口号中的一个或多个;
所述流量均衡装置用所述第二哈希值和所述第一目的地址查找所述路由表,获得所述第二出端口的标识;
所述流量均衡装置基于所述第二出端口的标识,确定所述第二出端口。
5.根据权利要求1或2所述的方法,其特征在于,所述通过所述第二出端口向所述目的主机发送所述第二控制报文包括:
所述流量均衡装置将所述第二控制报文缓存于所述第二出端口对应的控制队列;
所述流量均衡装置根据时间周期从所述第二出端口对应的控制队列中读取多个控制报文,所述第二出端口对应的控制队列中的多个控制报文包括所述第二控制报文;
所述流量均衡装置经由所述第二出端口向所述目的主机发送所读取的第二控制报文。
6.根据权利要求1或2所述的方法,其特征在于,所述流量均衡装置通过所述第二出端口,向所述目的主机发送所述X1个数据报文包括:
所述流量均衡装置将所述X1个数据报文缓存于所述第二出端口对应的数据队列;
当所述流量均衡装置保存有待发送的控制报文时,所述流量均衡装置在发送了一个控制报文后,通过所述第二出端口向所述目的主机发送从所述数据队列读取的所述X1个数据报文;或者
当所述流量均衡装置没有保存有待发送的控制报文时,所述流量均衡装置通过所述第二出端口向所述目的主机发送从所述数据队列读取的所述X1个数据报文,所述流量均衡装置发送所述X1个数据报文前没有发送控制报文。
7.根据权利要求1或2所述的方法,其特征在于,所述第一路径标识为第一源端口号、所述第二路径标识为第二源端口号;或者
所述第一路径标识为第一生存时间TTL、所述第二路径标识为第二TTL;或者
所述第一路径标识为第一目的媒体接入控制地址、所述第二路径标识为第二目的MAC地址。
8.一种流量均衡装置,其特征在于,所述装置包括:
第一获取模块,用于获取第一控制报文,所述第一控制报文包括第一路径标识以及第一目的地址;
第一确定模块,用于根据路由表、所述第一路径标识和所述第一目的地址,确定第一出端口;
第一发送模块,用于通过所述第一出端口向目的主机发送所述第一控制报文;
第二获取模块,用于获取第二控制报文,所述第二控制报文包括第二路径标识以及所述第一目的地址;
第二确定模块,用于根据所述路由表、所述第二路径标识和所述第一目的地址,确定第二出端口;
第二发送模块,用于通过所述第二出端口向所述目的主机发送所述第二控制报文;
第三获取模块,用于获取第三控制报文和第四控制报文,所述第三控制报文是所述目的主机根据所述第二控制报文获得的,所述第三控制报文包括所述第二路径标识,所述第四控制报文是所述目的主机根据所述第一控制报文获得的,所述第四控制报文包括所述第一路径标识;
第三确定模块,用于根据所述路由表、所述第二路径标识和所述第一目的地址,确定所述第二出端口;
第三发送模块,用于通过所述第二出端口,向所述目的主机发送X1个数据报文,所述X1个数据报文包括所述第二路径标识以及所述第一目的地址,所述X1为大于或等于1的整数;
第四确定模块,用于根据所述路由表、所述第一路径标识和所述第一目的地址,确定所述第一出端口;
第四发送模块,用于通过所述第一出端口,向所述目的主机发送X2个数据报文,所述X2个数据报文包括所述第一路径标识以及所述第一目的地址,所述X2为大于或等于1的整数;
其中,所述第二控制报文先于所述第一控制报文到达所述目的主机,所述X2个数据报文为业务流中处于X1个数据报文之后的数据报文。
9.根据权利要求8所述的装置,其特征在于,所述第一确定模块用于:
对所述第一路径标识和所述第一控制报文包括的至少一元组进行哈希运算,获得第一哈希值,所述第一控制报文的至少一元组包括源地址、目的地址、源端口号和目的端口号中的一个或多个;
用所述第一哈希值和所述第一目的地址查找所述路由表,获得第一出端口的标识;
基于所述第一出端口的标识,确定所述第一出端口。
10.根据权利要求8或9所述的装置,其特征在于,所述第一发送模块用于:
将所述第一控制报文缓存于所述第一出端口对应的控制队列;
根据时间周期从所述第一出端口对应的控制队列中读取多个控制报文,所述第一出端口对应的控制队列中的多个控制报文包括所述第一控制报文;
经由所述第一出端口向所述目的主机发送所读取的第一控制报文。
11.根据权利要求8至10任一所述的装置,其特征在于,所述第二确定模块用于:
对所述第二路径标识和所述第二控制报文包括的至少一元组进行哈希运算,获得第二哈希值,所述第二控制报文的至少一元组包括源地址、目的地址、源端口号和目的端口号中的一个或多个;
用所述第二哈希值和所述第一目的地址查找所述路由表,获得所述第二出端口的标识;
基于所述第二出端口的标识,确定所述第二出端口。
12.根据权利要求8或9所述的装置,其特征在于,所述第二发送模块用于:
将所述第二控制报文缓存于所述第二出端口对应的控制队列;
根据时间周期从所述第二出端口对应的控制队列中读取多个控制报文,所述第二出端口对应的控制队列中的多个控制报文包括所述第二控制报文;
经由所述第二出端口向所述目的主机发送所读取的第二控制报文。
13.根据权利要求8或9任一所述的装置,其特征在于,所述第三发送模块用于:
将所述X1个数据报文缓存于所述第二出端口对应的数据队列;
当所述流量均衡装置保存有待发送的控制报文时,所述第三发送模块用于在发送了一个控制报文后,通过所述第二出端口向所述目的主机发送从所述数据队列读取的所述X1个数据报文;或者
当所述流量均衡装置没有保存有待发送的控制报文时,所述第三发送模块用于通过所述第二出端口向所述目的主机发送从所述数据队列读取的所述X1个数据报文,所述流量均衡装置发送所述X1个数据报文前没有发送控制报文。
14.根据权利要求8或9所述的装置,其特征在于,所述第一路径标识为第一源端口号、所述第二路径标识为第二源端口号;或者
所述第一路径标识为第一生存时间TTL、所述第二路径标识为第二TTL;或者
所述第一路径标识为第一目的媒体接入控制地址、所述第二路径标识为第二目的MAC地址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811302495.8A CN111147381B (zh) | 2018-11-02 | 2018-11-02 | 流量均衡方法和装置 |
PCT/CN2019/114923 WO2020088624A1 (zh) | 2018-11-02 | 2019-11-01 | 流量均衡方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811302495.8A CN111147381B (zh) | 2018-11-02 | 2018-11-02 | 流量均衡方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111147381A CN111147381A (zh) | 2020-05-12 |
CN111147381B true CN111147381B (zh) | 2022-01-18 |
Family
ID=70464669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811302495.8A Expired - Fee Related CN111147381B (zh) | 2018-11-02 | 2018-11-02 | 流量均衡方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111147381B (zh) |
WO (1) | WO2020088624A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114172847B (zh) * | 2021-11-29 | 2023-05-26 | 烽火通信科技股份有限公司 | 多端口带宽限速方法和系统 |
CN114513458B (zh) * | 2022-01-27 | 2023-12-08 | 新华三技术有限公司 | 通信方法及装置 |
CN114915593B (zh) * | 2022-06-10 | 2023-05-09 | 北京世纪好未来教育科技有限公司 | 基于Redis的流量控制方法、装置、电子设备及存储介质 |
CN115297060A (zh) * | 2022-10-10 | 2022-11-04 | 荣耀终端有限公司 | 片上网络、数据转发方法和电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1809021A (zh) * | 2005-01-17 | 2006-07-26 | 华为技术有限公司 | 以太网链路聚合方法 |
CN101478499A (zh) * | 2009-01-08 | 2009-07-08 | 清华大学深圳研究生院 | 一种多协议标签交换网络中的流量分配方法及装置 |
CN102158398A (zh) * | 2011-02-25 | 2011-08-17 | 杭州华三通信技术有限公司 | 报文转发方法和装置 |
CN106572009A (zh) * | 2016-11-11 | 2017-04-19 | 锐捷网络股份有限公司 | 一种多运营商链路环境下报文转发方法和装置 |
CN108092914A (zh) * | 2016-11-21 | 2018-05-29 | 华为技术有限公司 | 网络流量负载均衡调度方法和装置 |
CN108173765A (zh) * | 2017-12-28 | 2018-06-15 | 新华三技术有限公司 | 一种报文转发方法和装置 |
CN108650178A (zh) * | 2013-02-22 | 2018-10-12 | 华为技术有限公司 | 一种业务报文处理方法、装置及系统 |
CN108712346A (zh) * | 2018-05-16 | 2018-10-26 | 天津芯海创科技有限公司 | 一种负载均衡自路由数据交换结构及方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7693050B2 (en) * | 2005-04-14 | 2010-04-06 | Microsoft Corporation | Stateless, affinity-preserving load balancing |
CN103201989B (zh) * | 2012-08-09 | 2016-05-25 | 华为技术有限公司 | 控制数据传输的方法、装置和系统 |
CN104243302B (zh) * | 2013-06-20 | 2018-03-16 | 华为技术有限公司 | 业务路由报文处理方法、装置及网络系统 |
CN106034071B (zh) * | 2015-03-09 | 2019-02-12 | 华为技术有限公司 | 数据报文传输方法及边缘路由网桥设备 |
US10079767B2 (en) * | 2016-06-13 | 2018-09-18 | Cisco Technology, Inc. | Multi-mobile core networks and value-added services |
CN107959702B (zh) * | 2016-10-17 | 2020-09-29 | 财付通支付科技有限公司 | 路由方法和装置 |
EP3364624A1 (en) * | 2017-02-20 | 2018-08-22 | Nokia Solutions and Networks Oy | A method of distributing a sub-flow associated with a session and a network apparatus |
CN111510378A (zh) * | 2017-03-14 | 2020-08-07 | 华为技术有限公司 | Evpn报文处理方法、设备及系统 |
CN108718278B (zh) * | 2018-04-13 | 2021-04-27 | 新华三技术有限公司 | 一种报文传输方法和装置 |
-
2018
- 2018-11-02 CN CN201811302495.8A patent/CN111147381B/zh not_active Expired - Fee Related
-
2019
- 2019-11-01 WO PCT/CN2019/114923 patent/WO2020088624A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1809021A (zh) * | 2005-01-17 | 2006-07-26 | 华为技术有限公司 | 以太网链路聚合方法 |
CN101478499A (zh) * | 2009-01-08 | 2009-07-08 | 清华大学深圳研究生院 | 一种多协议标签交换网络中的流量分配方法及装置 |
CN102158398A (zh) * | 2011-02-25 | 2011-08-17 | 杭州华三通信技术有限公司 | 报文转发方法和装置 |
CN108650178A (zh) * | 2013-02-22 | 2018-10-12 | 华为技术有限公司 | 一种业务报文处理方法、装置及系统 |
CN106572009A (zh) * | 2016-11-11 | 2017-04-19 | 锐捷网络股份有限公司 | 一种多运营商链路环境下报文转发方法和装置 |
CN108092914A (zh) * | 2016-11-21 | 2018-05-29 | 华为技术有限公司 | 网络流量负载均衡调度方法和装置 |
CN108173765A (zh) * | 2017-12-28 | 2018-06-15 | 新华三技术有限公司 | 一种报文转发方法和装置 |
CN108712346A (zh) * | 2018-05-16 | 2018-10-26 | 天津芯海创科技有限公司 | 一种负载均衡自路由数据交换结构及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111147381A (zh) | 2020-05-12 |
WO2020088624A1 (zh) | 2020-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12058035B2 (en) | System and method for facilitating data-driven intelligent network | |
CN110166367B (zh) | 一种分组网络中控制流量的方法、装置及存储介质 | |
US8125904B2 (en) | Method and system for adaptive queue and buffer control based on monitoring and active congestion avoidance in a packet network switch | |
US8665892B2 (en) | Method and system for adaptive queue and buffer control based on monitoring in a packet network switch | |
CN109691037B (zh) | 用于数据中心负载均衡的方法和系统 | |
CN111147381B (zh) | 流量均衡方法和装置 | |
EP2180644B1 (en) | Flow consistent dynamic load balancing | |
US9270598B1 (en) | Congestion control using congestion prefix information in a named data networking environment | |
JP4547339B2 (ja) | 送信制御機能を備えるパケット中継装置 | |
US8264957B1 (en) | Control of preemption-based beat-down effect | |
KR102455886B1 (ko) | 서비스 기능 체이닝 혼잡 피드백 | |
Mliki et al. | A comprehensive survey on carrier ethernet congestion management mechanism | |
KR100645537B1 (ko) | 안정적인 패킷 포워딩을 위한 동적인 큐 관리방법 및 이를위한 네트워크 프로세서의 구성요소 | |
CN112152933B (zh) | 一种发送流量的方法和装置 | |
CN113612698A (zh) | 一种数据包发送方法及装置 | |
US11805071B2 (en) | Congestion control processing method, packet forwarding apparatus, and packet receiving apparatus | |
CN110679121B (zh) | 全结构范围的带宽管理 | |
JP2013110665A (ja) | バッファ装置、通信装置およびフレーム送信方法 | |
CN118694720A (zh) | 流量控制方法、装置及系统 | |
Phinjirapong | CAFFEINE: Congestion Avoidance For Fairness & Efficiency In Network Entities | |
WO2014068818A1 (ja) | Mplsネットワーク及びそれに用いるトラフィック制御方法 | |
Davidow et al. | Design of multi-tier networks to support data-intensive applications | |
Shinohara et al. | Programmable and scalable per-flow traffic management scheme using a control server | |
Macura et al. | Integration of Multimedia Traffic Into Computer Network |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220118 |