CN118715766A - System and method for dynamically selecting a load balancing algorithm - Google Patents
System and method for dynamically selecting a load balancing algorithm Download PDFInfo
- Publication number
- CN118715766A CN118715766A CN202380022308.3A CN202380022308A CN118715766A CN 118715766 A CN118715766 A CN 118715766A CN 202380022308 A CN202380022308 A CN 202380022308A CN 118715766 A CN118715766 A CN 118715766A
- Authority
- CN
- China
- Prior art keywords
- load balancing
- application
- algorithm
- traffic
- balancing algorithm
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 241000406668 Loxodonta cyclotis Species 0.000 claims description 36
- 238000013507 mapping Methods 0.000 claims description 12
- 238000012546 transfer Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 32
- 238000004891 communication Methods 0.000 description 19
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 17
- 239000010931 gold Substances 0.000 description 17
- 229910052737 gold Inorganic materials 0.000 description 17
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 16
- 229910052709 silver Inorganic materials 0.000 description 16
- 239000004332 silver Substances 0.000 description 16
- 230000008901 benefit Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 2
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 2
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
相关申请的交叉引用CROSS-REFERENCE TO RELATED APPLICATIONS
本申请要求由Arul Murugan Manickam等人于2022年4月20日提交的、标题为“DYNAMIC LOAD BALANCING ALGORITHM SELECTION BASED ON APPLICATION OR POLICY”的第63/332,840号美国临时专利申请的权益,通过引用将其并入本文,如同全文被复制一样。This application claims the benefit of U.S. Provisional Patent Application No. 63/332,840, filed on April 20, 2022 by Arul Murugan Manickam et al., entitled “DYNAMIC LOAD BALANCING ALGORITHM SELECTION BASED ON APPLICATION OR POLICY,” which is incorporated herein by reference as if reproduced in its entirety.
技术领域Technical Field
本公开总体涉及通信网络,并且更具体地涉及用于动态地选择负载平衡算法的系统和方法。The present disclosure relates generally to communication networks, and more particularly to systems and methods for dynamically selecting a load balancing algorithm.
背景技术Background Art
在典型的路由器中,如果路由表具有到目的地的多条路径,则自动激活负载平衡。典型的企业边缘路由器可以提供一种或多种不同类型的负载平衡算法。当前,对于全局或每个虚拟专用网络(VPN)的配置,用户可以指定单个负载平衡算法,该单个负载平衡算法被应用于所有不同的应用,即使不同的应用为了效率和正确性可能需要不同的负载平衡算法。In a typical router, load balancing is automatically activated if the routing table has multiple paths to the destination. A typical enterprise edge router may provide one or more different types of load balancing algorithms. Currently, for global or per-virtual private network (VPN) configuration, a user may specify a single load balancing algorithm that is applied to all different applications, even though different applications may require different load balancing algorithms for efficiency and correctness.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
图1示出了根据某些实施例的负载平衡系统。FIG. 1 illustrates a load balancing system according to some embodiments.
图2示出了根据某些实施例的另一负载平衡系统。FIG. 2 illustrates another load balancing system according to some embodiments.
图3示出了根据某些实施例的用于动态地选择负载平衡算法的负载平衡系统。FIG. 3 illustrates a load balancing system for dynamically selecting a load balancing algorithm according to some embodiments.
图4示出了根据某些实施例的一种用于动态地选择负载平衡算法的方法。FIG. 4 illustrates a method for dynamically selecting a load balancing algorithm according to some embodiments.
图5示出了根据某些实施例的可以由本文描述的系统和方法使用的计算机系统。FIG. 5 illustrates a computer system that may be used by the systems and methods described herein, according to some embodiments.
具体实施方式DETAILED DESCRIPTION
概述Overview
在独立权利要求中阐述了本发明的各方面,并且在从属权利要求中阐述了优选特征。一个方面的特征可以单独地或与其他方面结合地应用于每个方面。Various aspects of the invention are set out in the independent claims and preferred features are set out in the dependent claims. Features of one aspect may be applicable to each aspect alone or in combination with the other aspects.
根据实施例,第一网络元件包括一个或多个处理器和一个或多个计算机可读非暂态存储介质,该一个或多个计算机可读非暂态存储介质耦合到该一个或多个处理器并且包括指令,这些指令在由该一个或多个处理器执行时使第一网络元件执行操作。这些操作包括:接收流量并且识别与流量相关联的一个或多个属性。这些操作还包括:根据负载平衡方案基于一个或多个属性动态地选择负载平衡算法。这些操作还包括:根据负载平衡算法对流量执行负载平衡,并且根据负载平衡将流量传送到第二网络元件。According to an embodiment, a first network element includes one or more processors and one or more computer-readable non-transitory storage media, the one or more computer-readable non-transitory storage media being coupled to the one or more processors and including instructions that, when executed by the one or more processors, cause the first network element to perform operations. The operations include: receiving traffic and identifying one or more attributes associated with the traffic. The operations also include: dynamically selecting a load balancing algorithm based on the one or more attributes according to a load balancing scheme. The operations also include: performing load balancing on the traffic according to the load balancing algorithm, and transmitting the traffic to a second network element according to the load balancing.
在某些实施例中,这些操作包括:从以下负载平衡算法中动态地选择负载平衡算法:仅源IP地址负载平衡算法、L3负载平衡算法、L4负载平衡算法和每分组负载(per-packet load,PPL)平衡算法。In some embodiments, the operations include dynamically selecting a load balancing algorithm from the following load balancing algorithms: a source IP address only load balancing algorithm, an L3 load balancing algorithm, an L4 load balancing algorithm, and a per-packet load (PPL) balancing algorithm.
在一些实施例中,与流量相关联的一个或多个属性包括应用类型。应用类型可以是以下中的一者:文件传输协议(FTP)应用、软件即服务(SaaS)应用、大象流(elephantflow)应用和老鼠流(mouse flow)应用。在某些实施例中,负载平衡方案是将应用类型与负载平衡算法匹配的基于应用的负载平衡方案。In some embodiments, one or more attributes associated with the traffic include an application type. The application type may be one of: a file transfer protocol (FTP) application, a software as a service (SaaS) application, an elephant flow application, and a mouse flow application. In some embodiments, the load balancing scheme is an application-based load balancing scheme that matches the application type with a load balancing algorithm.
在一些实施例中,负载平衡方案是将应用类型与用户定义的负载平衡算法匹配的用户定义的应用到算法映射负载平衡方案。In some embodiments, the load balancing scheme is a user-defined application-to-algorithm mapping load balancing scheme that matches application types with user-defined load balancing algorithms.
在某些实施例中,负载平衡方案是使用一个或多个属性和策略来选择负载平衡算法的基于策略的负载平衡方案。在一些实施例中,一个或多个属性包括以下一组属性中的一个或多个:应用类型、源互联网协议(IP)地址、目的地IP地址、子网、IP差异化的服务代码点(DSCP)和协议类型。In some embodiments, the load balancing scheme is a policy-based load balancing scheme that uses one or more attributes and policies to select a load balancing algorithm. In some embodiments, the one or more attributes include one or more of the following attributes: application type, source Internet Protocol (IP) address, destination IP address, subnet, IP differentiated service code point (DSCP), and protocol type.
根据另一实施例,一种方法包括接收流量并且识别与流量相关联的一个或多个属性。该方法还包括:根据负载平衡方案基于一个或多个属性动态地选择负载平衡算法。该方法还包括:根据负载平衡算法对流量执行负载平衡,并且根据负载平衡将流量从第一网络元件传送到第二网络元件。According to another embodiment, a method includes receiving traffic and identifying one or more attributes associated with the traffic. The method also includes dynamically selecting a load balancing algorithm based on the one or more attributes according to a load balancing scheme. The method also includes performing load balancing on the traffic according to the load balancing algorithm, and transmitting the traffic from a first network element to a second network element according to the load balancing.
根据又一实施例,一个或多个计算机可读非暂态存储介质可以包括指令,这些指令在由处理器执行时使得处理器执行操作。这些操作包括:接收流量并且识别与流量相关联的一个或多个属性。这些操作还包括:根据负载平衡方案基于一个或多个属性动态地选择负载平衡算法。这些操作还包括:根据负载平衡算法对流量执行负载平衡,并且根据负载平衡将流量从第一网络元件传送到第二网络元件。According to yet another embodiment, one or more computer-readable non-transitory storage media may include instructions that, when executed by a processor, cause the processor to perform operations. The operations include: receiving traffic and identifying one or more attributes associated with the traffic. The operations also include: dynamically selecting a load balancing algorithm based on the one or more attributes according to a load balancing scheme. The operations also include: performing load balancing on the traffic according to the load balancing algorithm, and transmitting the traffic from a first network element to a second network element according to the load balancing.
本公开的某些实施例的技术优点可以包括以下的一个或多个技术优点。本公开的某些实施例包括在不需任何用户干预的情况下基于应用/策略需求动态地选择负载平衡方案的网络元件(例如,边缘路由器)。本公开的某些实施例提供了基于应用或策略的动态负载平衡算法选择,该算法超越了用户配置的默认负载平衡算法。该方法可以满足近来云联网和SaaS应用的需求,并且提高网络路径、带宽和整体效率。本公开的实施例可应用于需要特殊哈希的任何应用。The technical advantages of certain embodiments of the present disclosure may include one or more of the following technical advantages. Certain embodiments of the present disclosure include network elements (e.g., edge routers) that dynamically select a load balancing solution based on application/policy requirements without any user intervention. Certain embodiments of the present disclosure provide a dynamic load balancing algorithm selection based on an application or policy that goes beyond the user-configured default load balancing algorithm. This method can meet the needs of recent cloud networking and SaaS applications, and improve network paths, bandwidth, and overall efficiency. Embodiments of the present disclosure can be applied to any application that requires a special hash.
根据以下附图、描述和权利要求,其他技术优点对于本领域技术人员将是显而易见的。此外,虽然上面已经列举了具体的优点,但是各种实施例可以包括所列举的优点中的全部、一些或者不包括所列举的优点。Other technical advantages will be apparent to those skilled in the art from the following drawings, descriptions and claims.In addition, although specific advantages have been listed above, various embodiments may include all, some or none of the listed advantages.
示例实施例Example Embodiments
本公开描述了用于动态地选择负载平衡算法的系统和方法。典型的企业边缘路由器可以提供以下不同类型的负载平衡算法中的一个或多个:(1)仅源IP地址负载平衡算法,(2)L3负载平衡算法;(3)L4负载平衡算法;以及(4)PPL平衡算法。当前,对于全局或每个VPN(per-VPN)的配置,用户可以指定应用于所有不同应用的单个负载平衡算法。这可能不是有效的,因为不同类型的应用为了效率和正确性需要不同的负载平衡。The present disclosure describes systems and methods for dynamically selecting a load balancing algorithm. A typical enterprise edge router may provide one or more of the following different types of load balancing algorithms: (1) source IP address only load balancing algorithm, (2) L3 load balancing algorithm; (3) L4 load balancing algorithm; and (4) PPL balancing algorithm. Currently, for global or per-VPN configuration, a user may specify a single load balancing algorithm that is applied to all different applications. This may not be efficient because different types of applications require different load balancing for efficiency and correctness.
图1示出了根据某些实施例的负载平衡系统100。系统100或其部分可以与实体相关联,该实体可以包括执行负载平衡的任何实体,例如商业、公司或企业。在某些实施例中,实体可以是执行负载平衡的服务提供商。系统100的组件可以包括硬件、固件和软件的任何适当组合。例如,系统100的组件可以使用图5的计算机系统的一个或多个元件。FIG. 1 shows a load balancing system 100 according to some embodiments. System 100 or a portion thereof may be associated with an entity, which may include any entity that performs load balancing, such as a business, company, or enterprise. In some embodiments, the entity may be a service provider that performs load balancing. The components of system 100 may include any appropriate combination of hardware, firmware, and software. For example, the components of system 100 may use one or more elements of the computer system of FIG. 5 .
在图1所示的实施例中,系统100包括网络110、互联网112、边缘路由器120(边缘路由器120a和边缘路由器120b)、负载平衡器122、负载平衡算法124(仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d)、分支130、主机132、应用134(FTP应用134a、SaaS应用134b、大象流应用134c和老鼠流应用134d)、数据中心140、服务器142、互联网电路150(互联网金电路150a和互联网银电路150b)以及文件传输协议(FTP)连接160(FTP控制连接160a和FTP数据连接160b)。In the embodiment shown in Figure 1, the system 100 includes a network 110, the Internet 112, edge routers 120 (edge router 120a and edge router 120b), a load balancer 122, a load balancing algorithm 124 (source IP only load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c, and PPL balancing algorithm 124d), a branch 130, a host 132, an application 134 (FTP application 134a, SaaS application 134b, elephant flow application 134c, and mouse flow application 134d), a data center 140, a server 142, an Internet circuit 150 (Internet gold circuit 150a and Internet silver circuit 150b), and a file transfer protocol (FTP) connection 160 (FTP control connection 160a and FTP data connection 160b).
系统100的网络110是促进系统100的组件之间的通信的任何类型的网络。网络110可以连接系统100的一个或多个组件。网络110的一个或多个部分可以包括自组织网络、互联网、内联网、外联网、VPN、以太网VPN(EVPN)、局域网(LAN)、无线LAN(WLAN)、虚拟LAN(VLAN)、广域网(WAN)、无线WAN(WWAN)、SD-WAN、城域网(MAN)、公共交换电话网络(PSTN)的一部分、蜂窝电话网络、数字用户线路(DSL)、多协议标签交换(MPLS)网络、3G/4G/5G网络、长期演进(LTE)网络、云网络、这些网络中的两个或更多个网络的组合、或其他适当类型的网络。网络110可以包括一种或多种不同类型的网络。在图1所示的实施例中,网络110包括互联网112。互联网112是使用互联网协议群(传输控制协议(TCP)/IP)在网络组件之间通信的互连计算机网络的全局系统。The network 110 of the system 100 is any type of network that facilitates communication between components of the system 100. The network 110 can connect one or more components of the system 100. One or more parts of the network 110 can include an ad hoc network, the Internet, an intranet, an extranet, a VPN, an Ethernet VPN (EVPN), a local area network (LAN), a wireless LAN (WLAN), a virtual LAN (VLAN), a wide area network (WAN), a wireless WAN (WWAN), an SD-WAN, a metropolitan area network (MAN), a portion of a public switched telephone network (PSTN), a cellular telephone network, a digital subscriber line (DSL), a multi-protocol label switching (MPLS) network, a 3G/4G/5G network, a long-term evolution (LTE) network, a cloud network, a combination of two or more of these networks, or other suitable types of networks. The network 110 can include one or more different types of networks. In the embodiment shown in FIG. 1 , the network 110 includes the Internet 112. The Internet 112 is a global system of interconnected computer networks that use the Internet protocol group (Transmission Control Protocol (TCP)/IP) to communicate between network components.
网络110可以是任何通信网络,例如专用网络、公共网络、通过互联网112的连接、移动网络、WI-FI网络等。网络110可以包括核心网络、服务提供商的接入网络、互联网服务提供商(ISP)网络等。接入网络是网络中向用户提供对服务的访问的一部分网络。核心网络是网络110中作用类似于用于连接接入网络的不同部分的骨干网络的一部分网络。系统100的一个或多个组件可以通过网络110进行通信。在图1所示的实施例中,网络110是软件定义的广域网(SD-WAN)。The network 110 can be any communication network, such as a private network, a public network, a connection through the Internet 112, a mobile network, a WI-FI network, etc. The network 110 can include a core network, an access network of a service provider, an Internet service provider (ISP) network, etc. The access network is a part of the network that provides access to services to users. The core network is a part of the network 110 that acts like a backbone network for connecting different parts of the access network. One or more components of the system 100 can communicate through the network 110. In the embodiment shown in Figure 1, the network 110 is a software defined wide area network (SD-WAN).
系统100的网络110可以包括一个或多个节点。节点是网络110内沿着路径接收、创建、存储和/或发送数据的连接点。节点可以包括一个或多个再分发点,这些再分发点辨识、处理数据并将数据转发到网络110的其他节点。节点可以包括虚拟和/或物理节点。例如,节点可以包括一个或多个虚拟机、裸金属服务器等。作为另一示例,节点可以包括数据通信设备,例如计算机、路由器、服务器、打印机、工作站、交换机、网桥、调制解调器、集线器等。在图1所示的实施例中,网络110的节点包括边缘路由器120、主机132和服务器142。The network 110 of the system 100 may include one or more nodes. A node is a connection point within the network 110 that receives, creates, stores, and/or sends data along a path. A node may include one or more redistribution points that identify, process, and forward data to other nodes of the network 110. A node may include virtual and/or physical nodes. For example, a node may include one or more virtual machines, bare metal servers, and the like. As another example, a node may include a data communication device, such as a computer, a router, a server, a printer, a workstation, a switch, a bridge, a modem, a hub, and the like. In the embodiment shown in FIG. 1 , the nodes of the network 110 include an edge router 120, a host 132, and a server 142.
边缘路由器120(边缘路由器120a和边缘路由器120b)是驻留在网络110边缘的专用路由器。在某些实施例中,边缘路由器120使用静态和/或动态路由来向系统100的一个或多个网络110发送数据和/或接收来自系统100的一个或多个网络110的数据。边缘路由器120可以包括一个或多个硬件设备、包括路由软件的一个或多个服务器等。在某些实施例中,系统100的边缘路由器120a是向分支130的主机132发送数据和/或接收来自分支130的主机132的数据的分支边缘路由器。在图1所示的实施例中,边缘路由器120a经由互联网112向边缘路由器120b传送数据和/或接收来自边缘路由器120b的数据,而边缘路由器120b向数据中心140传送数据和/或接收来自数据中心140的数据。The edge routers 120 (edge router 120a and edge router 120b) are specialized routers residing at the edge of the network 110. In certain embodiments, the edge routers 120 use static and/or dynamic routing to send data to and/or receive data from one or more networks 110 of the system 100. The edge routers 120 may include one or more hardware devices, one or more servers including routing software, etc. In certain embodiments, the edge router 120a of the system 100 is a branch edge router that sends data to and/or receives data from a host 132 of a branch 130. In the embodiment shown in FIG. 1 , the edge router 120a transmits data to and/or receives data from the edge router 120b via the Internet 112, and the edge router 120b transmits data to and/or receives data from the data center 140.
在某些实施例中,边缘路由器120a接收来自主机132的一个或多个分组。每个分组的报头可以包括适当的协议、始发地址(主机132的IP地址)、目的地地址(服务器142的IP地址)和分组号(例如,分组号1、2、3、4等)。在一些实施例中,边缘路由器120a识别报头中的目的地地址,并且将其与查找表进行比较,以确定往哪里发送分组。In some embodiments, edge router 120a receives one or more packets from host 132. The header of each packet may include the appropriate protocol, originating address (IP address of host 132), destination address (IP address of server 142), and packet number (e.g., packet number 1, 2, 3, 4, etc.) In some embodiments, edge router 120a identifies the destination address in the header and compares it to a lookup table to determine where to send the packet.
在某些实施例中,边缘路由器120a包括负载平衡器122。负载平衡器122是跨网络110的多个节点分发流量的硬件和/或软件。在一些实施例中,负载平衡器122识别与传入分组相关联的特定判据(例如,源IP地址、目的地IP地址、源端口、目的地端口、协议等)。当分组到达时,负载平衡器122可以将判据与表中的条目匹配。在某些实施例中,负载平衡器122依赖于在每个传入分组上计算的哈希函数。例如,负载平衡器122可以使用通用哈希函数(例如,密码哈希函数)来生成源地址、目的地地址、源端口和/或目的地端口的摘要。作为另一示例,负载平衡器122可以在源地址、目的地地址、源端口和/或目的地端口上使用循环冗余校验(CRC)。In some embodiments, edge router 120a includes load balancer 122. Load balancer 122 is hardware and/or software that distributes traffic across multiple nodes of network 110. In some embodiments, load balancer 122 identifies specific criteria (e.g., source IP address, destination IP address, source port, destination port, protocol, etc.) associated with incoming packets. When packets arrive, load balancer 122 can match the criteria with entries in the table. In some embodiments, load balancer 122 relies on a hash function calculated on each incoming packet. For example, load balancer 122 can use a general hash function (e.g., a cryptographic hash function) to generate a summary of source address, destination address, source port, and/or destination port. As another example, load balancer 122 can use a cyclic redundancy check (CRC) on source address, destination address, source port, and/or destination port.
在某些实施例中,边缘路由器120a的负载平衡器122使用一个或多个负载平衡算法124来通过互联网112分发流量。负载平衡算法124是负载平衡器122用于通过互联网112分发流量的规则。负载平衡算法124包括以下算法:仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d。In some embodiments, the load balancer 122 of the edge router 120a uses one or more load balancing algorithms 124 to distribute traffic through the Internet 112. The load balancing algorithms 124 are rules that the load balancer 122 uses to distribute traffic through the Internet 112. The load balancing algorithms 124 include the following algorithms: source-only IP load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c, and PPL balancing algorithm 124d.
仅源IP负载平衡算法124a仅基于源IP地址做出路由决策。例如,边缘路由器120a的负载平衡器122可以被配置为仅基于传入流量的源IP地址来做出负载平衡决策。仅使用源IP限制了哈希中使用的判据,这使得更有可能选择特定电路来转发流量。The source IP-only load balancing algorithm 124a makes routing decisions based only on the source IP address. For example, the load balancer 122 of the edge router 120a can be configured to make load balancing decisions based only on the source IP address of the incoming traffic. Using only the source IP limits the criteria used in the hash, which makes it more likely that a specific circuit will be selected to forward traffic.
L3负载平衡算法124b仅基于源IP地址和目的地IP地址做出路由决策。在某些实施例中,L3负载平衡算法124b使用多条路径来实现跨多个源-目的地主机对的负载共享。即使有多条路径可用,也可以保证给定源-目的地主机对的分组采用同一的路径。L3 load balancing algorithm 124b makes routing decisions based only on source IP address and destination IP address. In certain embodiments, L3 load balancing algorithm 124b uses multiple paths to achieve load sharing across multiple source-destination host pairs. Even if multiple paths are available, it is also possible to ensure that the packets of a given source-destination host pair adopt the same path.
L4负载平衡算法124c基于与流量相关联的源IP地址、目的地IP地址、源端口和目的地端口来做出路由决策。在某些实施例中,L4负载平衡算法124cc有益于在不被负载共享的相等成本路径上运行的流量流,因为大部分流量在使用不同端口号的对等地址之间,例如实时协议(RTP)串流。The L4 load balancing algorithm 124c makes routing decisions based on the source IP address, destination IP address, source port, and destination port associated with the traffic. In some embodiments, the L4 load balancing algorithm 124cc is beneficial for traffic flows running on equal cost paths that are not load shared because most of the traffic is between peer addresses using different port numbers, such as real-time protocol (RTP) streams.
PPL平衡算法124d通过不同路径传送连续的数据分组,而不考虑单独的主机或用户会话。例如,PPL平衡算法124d可以通过第一路径将第一分组传送到目的地(例如,数据中心140的服务器142),通过第二路径将第二分组传送到同一目的地,等等。在某些实施例中,PPL平衡算法124d确保所有链路上的负载相等。然而,因为在网络110内可能存在差分延迟,所以分组可能无序地到达目的地。PPL平衡算法124d可以使用轮询(round-robin)方法来确定每个分组采用哪个路径到达目的地。The PPL balancing algorithm 124d transmits consecutive data packets over different paths without regard to individual hosts or user sessions. For example, the PPL balancing algorithm 124d may transmit a first packet to a destination (e.g., a server 142 of a data center 140) over a first path, transmit a second packet to the same destination over a second path, and so on. In some embodiments, the PPL balancing algorithm 124d ensures that the load on all links is equal. However, because there may be differential delays within the network 110, packets may arrive at the destination out of order. The PPL balancing algorithm 124d may use a round-robin approach to determine which path each packet takes to reach the destination.
系统100的分支130是企业网络基础设施的一部分,该企业网络基础设施向在地理位置上分散的远程站点处的用户提供对与企业园区中的用户相同的网络服务的访问。分支130可以包括一个或多个建筑物、办公室、商店、家庭等。在某些实施例中,分支130和数据中心140由同一商业企业建立和维护。在图1所示的实施例中,分支130包括主机132。The branch 130 of the system 100 is part of an enterprise network infrastructure that provides users at geographically dispersed remote sites with access to the same network services as users in the enterprise campus. The branch 130 may include one or more buildings, offices, stores, homes, etc. In some embodiments, the branch 130 and the data center 140 are established and maintained by the same business enterprise. In the embodiment shown in FIG. 1 , the branch 130 includes a host 132.
分支130的主机132是连接到网络110的设备(例如,服务器或客户端)。在某些实施例中,主机132向客户端提供资源、数据服务和/或程序。主机132可以与唯一的IP地址、主机名称等相关联。主机132的IP地址可以用作网络110中的主机132的物理地址。在某些实施例中,IP地址是32位数。主机名称是分配给主机132的标签。主机132可以提供驱动应用的处理、存储器、本地存储装置和/或网络连接。在图1所示的实施例中,主机132与应用134相关联。The host 132 of the branch 130 is a device (e.g., a server or client) connected to the network 110. In some embodiments, the host 132 provides resources, data services, and/or programs to the client. The host 132 can be associated with a unique IP address, host name, etc. The IP address of the host 132 can be used as the physical address of the host 132 in the network 110. In some embodiments, the IP address is a 32-bit number. The host name is a label assigned to the host 132. The host 132 can provide processing, memory, local storage, and/or network connections that drive the application. In the embodiment shown in Figure 1, the host 132 is associated with the application 134.
应用134是被设计成执行特定任务的计算机程序。应用可以包括文字处理软件、电子表格软件、演示软件、web浏览器、多媒体软件、图形软件、教育软件、商业应用软件、生产力软件等。在某些实施例中,根据类型(例如,SaaS应用)、根据协议(例如,FTP流量)、根据流尺寸(例如,大象流或老鼠流)等对应用134进行分类。在一些实施例中,应用134可以与应用列表相关联。例如,SaaS应用列表可以包括WebEx音频应用、WebEx视频应用等。在图1所示的实施例中,应用134包括FTP应用134a、SaaS应用134b、大象流应用134c和老鼠流应用134d。Application 134 is a computer program designed to perform a specific task. Applications may include word processing software, spreadsheet software, presentation software, web browsers, multimedia software, graphics software, educational software, business application software, productivity software, etc. In some embodiments, application 134 is classified according to type (e.g., SaaS application), according to protocol (e.g., FTP traffic), according to flow size (e.g., elephant flow or mouse flow), etc. In some embodiments, application 134 may be associated with an application list. For example, a SaaS application list may include a WebEx audio application, a WebEx video application, etc. In the embodiment shown in FIG. 1 , application 134 includes FTP application 134a, SaaS application 134b, elephant flow application 134c, and mouse flow application 134d.
FTP应用134a是使用FTP软件的应用。FTP软件使用需要FTP客户端(例如,主机132)和FTP服务器(例如,服务器142)的客户端服务器模型。FTP应用134a可以用于上传和/或下载文件以便归档、共享对于电子邮件而言太大的文件、在办公室间和/或外部安全地共享文件、将数据传送回灾难恢复站点等。FTP application 134a is an application that uses FTP software. FTP software uses a client-server model that requires an FTP client (e.g., host 132) and an FTP server (e.g., server 142). FTP application 134a can be used to upload and/or download files for archiving, share files that are too large for email, share files securely between offices and/or externally, transfer data back to a disaster recovery site, etc.
SaaS应用134b是由SaaS提供商管理的应用。SaaS是一种递送和许可模型,其中,软件经由订阅在web上被访问,而不是被安装在本地计算机上。通常,实体不管理SaaS应用134b或投资于硬件来运行SaaS应用134b。相反,提供商托管并且管理基础设施以支持SaaS应用134b。在某些实施例中,SaaS是通过互联网访问的基于云的应用。SaaS应用134b可以包括电子邮件工具、日历工具、办公室工具(例如,Microsoft Office365)、会议工具(Webex)等。SaaS applications 134b are applications managed by SaaS providers. SaaS is a delivery and licensing model in which software is accessed on the web via a subscription rather than being installed on a local computer. Typically, entities do not manage SaaS applications 134b or invest in hardware to run SaaS applications 134b. Instead, providers host and manage infrastructure to support SaaS applications 134b. In some embodiments, SaaS is a cloud-based application accessed over the Internet. SaaS applications 134b may include email tools, calendar tools, office tools (e.g., Microsoft Office 365), conference tools (Webex), etc.
大象流应用134c是与大象流相关联的应用。大象流是消耗大量(总字节)或不成比例的带宽量的单个会话、相对长的运行网络连接(例如,TCP连接)。大象流可以与虚拟机(VM)迁移、备份数据传送、视频、数据文件等相关联。The elephant flow application 134c is an application associated with the elephant flow. The elephant flow is a single session, a relatively long running network connection (e.g., a TCP connection) that consumes a large amount (total bytes) or a disproportionate amount of bandwidth. The elephant flow can be associated with virtual machine (VM) migration, backup data transmission, video, data files, etc.
老鼠流应用134d是与老鼠流相关联的应用。老鼠流是由在网络链路上测量的协议(例如,TCP)流建立的短(总字节)流。在某些实施例中,老鼠流具有少于“n”个分组,而大象流具有至少“n”个分组,其中,常数“n”是分析中的自由度。老鼠流可以包括在应用主机之间交换的查询、响应、控制消息等。在TCP应用中,老鼠流不能很好地容忍分组丢弃。因为在老鼠流中分组的数量少,所以大多数老鼠流在TCP慢启动阶段完成,具有小的TCP窗口尺寸。如果没有足够的分组在传输来触发丢失的分组的TCP快速重传,则边缘路由器120a可能不能检测到分组丢失,直到TCP重传定时器期满。重传超时可能对老鼠流性能有害,并且可能严重降低整体应用性能。因此,必须避免在老鼠流中的分组丢失。The mouse flow application 134d is an application associated with a mouse flow. A mouse flow is a short (total byte) flow established by a protocol (e.g., TCP) flow measured on a network link. In some embodiments, a mouse flow has less than "n" packets, while an elephant flow has at least "n" packets, where the constant "n" is a degree of freedom in the analysis. A mouse flow may include queries, responses, control messages, etc. exchanged between application hosts. In TCP applications, mouse flows do not tolerate packet drops well. Because the number of packets in a mouse flow is small, most mouse flows are completed in the TCP slow start phase with a small TCP window size. If there are not enough packets in transit to trigger TCP fast retransmission of lost packets, the edge router 120a may not detect packet loss until the TCP retransmission timer expires. Retransmission timeouts may be detrimental to mouse flow performance and may severely degrade overall application performance. Therefore, packet losses in mouse flows must be avoided.
不同的应用134更适合于不同的负载平衡算法124。例如,老鼠流应用134d可能最适合于L3负载平衡算法124b以减少和/或避免分组丢失。作为另一实例,FTP应用134a可能适合于仅源IP负载平衡算法124a以避免服务器142处的分组丢弃。作为又一示例,SaaS应用134b开放多个子流。如果涉及多个互联网电路,则每个子流可以接收不同的公共IP地址。这可能导致流被SaaS应用拒绝。在这种情况下,可能需要仅源IP地址负载平衡算法124a来避免服务器142处的分组丢弃。作为又一示例,大象流应用134c可能最适合于PPL平衡算法124d,以通过在多个可用电路之间分发分组来有效地利用带宽,并且避免将大象流固定到一个电路。作为又一示例,多路径传输控制协议(MPTCP)开放多个连接以实现端到端的有效带宽利用。MPTCP应用可能最适合于L4负载平衡算法124c。Different applications 134 are more suitable for different load balancing algorithms 124. For example, the mouse flow application 134d may be best suited for the L3 load balancing algorithm 124b to reduce and/or avoid packet loss. As another example, the FTP application 134a may be suitable for the source IP only load balancing algorithm 124a to avoid packet drops at the server 142. As another example, the SaaS application 134b opens multiple sub-flows. If multiple Internet circuits are involved, each sub-flow may receive a different public IP address. This may cause the flow to be rejected by the SaaS application. In this case, the source IP address only load balancing algorithm 124a may be required to avoid packet drops at the server 142. As another example, the elephant flow application 134c may be best suited for the PPL balancing algorithm 124d to effectively utilize bandwidth by distributing packets among multiple available circuits and avoid pinning the elephant flow to one circuit. As another example, the multipath transmission control protocol (MPTCP) opens multiple connections to achieve end-to-end efficient bandwidth utilization. The MPTCP application may be best suited for the L4 load balancing algorithm 124c.
系统100的数据中心140是组织用来容纳其关键应用和数据的物理设施。数据中心140可以包括路由器、交换机、防火墙、存储系统、服务器、应用递送控制器等。数据中心140的这些组件可以存储和/或管理商业关键数据、应用等。数据中心140可以是企业数据中心、受管服务数据中心、托管数据中心(colocation data center)、云数据中心、其组合或任何其他合适类型的数据中心。The data center 140 of the system 100 is a physical facility used by an organization to house its critical applications and data. The data center 140 may include routers, switches, firewalls, storage systems, servers, application delivery controllers, etc. These components of the data center 140 may store and/or manage business critical data, applications, etc. The data center 140 may be an enterprise data center, a managed service data center, a colocation data center, a cloud data center, a combination thereof, or any other suitable type of data center.
数据中心140的服务器142是向数据中心140提供资源、数据服务和/或程序的计算机或其他设备。服务器142可以提供驱动应用的处理、存储器、本地存储装置和网络连接。服务器142可以是物理服务器或虚拟化服务器。在图1所示的实施例中,服务器142将流量传送到互联网112的互联网电路150和/或接收来自互联网112的互联网电路150的流量。The servers 142 of the data center 140 are computers or other devices that provide resources, data services, and/or programs to the data center 140. The servers 142 may provide processing, memory, local storage, and network connections to drive applications. The servers 142 may be physical servers or virtualized servers. In the embodiment shown in FIG. 1 , the servers 142 transmit traffic to and/or receive traffic from the Internet circuit 150 of the Internet 112.
系统100的互联网电路150(互联网金电路150a和互联网银电路150b)是边缘路由器120a到边缘路由器120b之间的可用路径。在某些实施例中,互联网电路150是将互联网服务传送到站点(例如,分支130和数据中心140)的连接。互联网电路150可以包括租用线路、MPLS、IP安全(IPsec)、VPN隧道、光纤、T1连接(例如,绑定的T1连接)、数字用户线路(DSL)(例如,非对称DSL、对称DSL、高数据速率DSL、甚高数据速率DSL等)、电缆调制解调器、专用互联网接入(DIA)电路、以太网电路、LAN电路等。互联网电路150可以包括点对点电路、点对多点电路和/或多点对多点电路。The Internet circuits 150 (Internet Gold Circuit 150a and Internet Silver Circuit 150b) of the system 100 are available paths between the edge router 120a to the edge router 120b. In some embodiments, the Internet circuits 150 are connections that deliver Internet services to sites (e.g., branch 130 and data center 140). The Internet circuits 150 may include leased lines, MPLS, IP security (IPsec), VPN tunnels, optical fibers, T1 connections (e.g., bonded T1 connections), digital subscriber lines (DSL) (e.g., asymmetric DSL, symmetric DSL, high data rate DSL, very high data rate DSL, etc.), cable modems, dedicated Internet access (DIA) circuits, Ethernet circuits, LAN circuits, etc. The Internet circuits 150 may include point-to-point circuits, point-to-multipoint circuits, and/or multipoint-to-multipoint circuits.
在图1所示的实施例中,互联网金电路150a与200兆比特每秒(Mbps)的互联网速度相关联,而互联网银电路150b与100Mbps的相对较慢的互联网速度相关联。Mbps是网络带宽和吞吐量的测量单位。1, Internet Gold circuit 150a is associated with an Internet speed of 200 megabits per second (Mbps), while Internet Silver circuit 150b is associated with a relatively slower Internet speed of 100 Mbps. Mbps is a unit of measurement for network bandwidth and throughput.
系统100的FTP连接160(FTP控制连接160a和FTP数据连接160b)是FTP用来在网络110的客户端(例如分支130的主机132)和服务器(例如数据中心140的服务器142)之间传送数据的连接。FTP是IP群中的应用协议。FTP支持不同互联网环境中不同主机之间的文件传输。使用FTP,即使每个计算机运行不同的操作系统并且使用不同的文件存储格式,文件也能从一个计算机被移动到另一计算机。The FTP connections 160 (FTP control connection 160a and FTP data connection 160b) of the system 100 are connections used by FTP to transfer data between a client (e.g., host 132 of branch 130) and a server (e.g., server 142 of data center 140) of the network 110. FTP is an application protocol in the IP group. FTP supports file transfers between different hosts in different Internet environments. Using FTP, files can be moved from one computer to another even if each computer runs a different operating system and uses a different file storage format.
FTP控制连接160a是用于在分支130的主机132和数据中心140的服务器142之间传送命令的主FTP连接。在某些实施例中,分支130的主机132和数据中心140的服务器142使用FTP控制连接160a来创建FTP数据连接160b。FTP数据连接160b被分支130的主机132和数据中心140的服务器142使用以传送数据。The FTP control connection 160a is the main FTP connection for transferring commands between the host 132 of the branch 130 and the server 142 of the data center 140. In some embodiments, the host 132 of the branch 130 and the server 142 of the data center 140 use the FTP control connection 160a to create an FTP data connection 160b. The FTP data connection 160b is used by the host 132 of the branch 130 and the server 142 of the data center 140 to transfer data.
在图1所示的实施例中,分支130中的主机132执行到数据中心140中的服务器142的FTP并且将FTP流量转发到边缘路由器120a。边缘路由器120a执行在互联网金电路150a和互联网银电路150b上启用的网络地址转换(NAT)。FTP控制连接160a是来自IP地址30.30.30.30的主流,而FTP数据连接160b是来自IP地址20.20.20.20的子流。因为主流元组负载平衡哈希算法和子流元组负载平衡哈希算法不同,所以FTP控制连接160a可以在互联网金电路150a的接口上传出,FTP数据连接160b可以由于不同的负载平衡算法而在互联网银电路150b的接口上传出。这些不同的源可能导致数据中心140的服务器142处的分组丢弃,因为服务器142期望来自源IP地址30.30.30.30的子流。具有多个流(主流和子流)的SaaS应用134b也面临相同的问题。下面在图3中讨论的动态负载平衡方案通过动态地选择仅源IP负载平衡算法124a来解决这些问题,因为它最适合于FTP应用134a和SaaS应用134b。In the embodiment shown in FIG. 1 , a host 132 in a branch 130 performs FTP to a server 142 in a data center 140 and forwards the FTP traffic to an edge router 120a. The edge router 120a performs network address translation (NAT) enabled on the Internet Gold Circuit 150a and the Internet Silver Circuit 150b. The FTP control connection 160a is a main stream from an IP address 30.30.30.30, while the FTP data connection 160b is a substream from an IP address 20.20.20.20. Because the main stream tuple load balancing hash algorithm and the substream tuple load balancing hash algorithm are different, the FTP control connection 160a can be transmitted on the interface of the Internet Gold Circuit 150a, and the FTP data connection 160b can be transmitted on the interface of the Internet Silver Circuit 150b due to different load balancing algorithms. These different sources may cause packet drops at the server 142 of the data center 140 because the server 142 expects a substream from the source IP address 30.30.30.30. SaaS applications 134b with multiple flows (main and sub-flows) also face the same problem. The dynamic load balancing solution discussed below in FIG. 3 solves these problems by dynamically selecting the source-only IP load balancing algorithm 124a because it is most suitable for FTP applications 134a and SaaS applications 134b.
虽然图1示出了特定数量的网络110、边缘路由器120(边缘路由器120a和边缘路由器120b)、负载平衡器122、负载平衡算法124(仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d)、分支130、主机132、应用134(FTP应用134a、SaaS应用134b、大象流应用134c和老鼠流应用134d)、数据中心140、服务器142、互联网电路150(互联网金电路150a和互联网银电路150b)和FTP连接160(FTP控制连接160a和FTP数据连接160b),但是本公开考虑任何适当数量的网络110、边缘路由器120、负载平衡器122、负载平衡算法124、分支130、主机132、应用134、数据中心140、服务器142、互联网电路150和FTP连接160。例如,系统100可以包括多于或少于四个负载平衡算法124。作为另一示例,系统100可以包括多于或少于四种类型的应用134。作为又一示例,系统100可以包括多于两个互联网电路150。Although FIG. 1 shows a specific number of networks 110, edge routers 120 (edge router 120a and edge router 120b), load balancers 122, load balancing algorithms 124 (source IP only load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c, and PPL balancing algorithm 124d), branches 130, hosts 132, applications 134 (FTP application 134a, SaaS application 134b, elephant flow application 134c, and mouse flow application 134d), , data center 140, server 142, Internet circuit 150 (Internet gold circuit 150a and Internet silver circuit 150b), and FTP connection 160 (FTP control connection 160a and FTP data connection 160b), but the present disclosure contemplates any suitable number of networks 110, edge routers 120, load balancers 122, load balancing algorithms 124, branches 130, hosts 132, applications 134, data center 140, server 142, Internet circuit 150, and FTP connection 160. For example, system 100 can include more or less than four load balancing algorithms 124. As another example, system 100 can include more or less than four types of applications 134. As yet another example, system 100 can include more than two Internet circuits 150.
虽然图1示出了网络110、边缘路由器120(边缘路由器120a和边缘路由器120b)、负载平衡器122、负载平衡算法124(仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d)、分支130、主机132、应用134(FTP应用134a、SaaS应用134b、大象流应用134c和老鼠流应用134d)、数据中心140、服务器142、互联网电路150(互联网金电路150a和互联网银电路150b)和FTP连接160(FTP控制连接160a和FTP数据连接160b)的特定布置,但是本公开考虑网络110、边缘路由器120、负载平衡器122、负载平衡算法124、分支130、主机132、应用134、数据中心140、服务器142、互联网电路150和FTP连接160的任何适当布置。例如,可以用不同类型的站点位置代替分支130和/或数据中心140。Although FIG. 1 shows a network 110, edge routers 120 (edge router 120a and edge router 120b), a load balancer 122, a load balancing algorithm 124 (source IP only load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c, and PPL balancing algorithm 124d), a branch 130, a host 132, an application 134 (FTP application 134a, SaaS application 134b, elephant flow application 134c, and mouse flow application 134d), a data center Although the present disclosure describes a specific arrangement of network 110, edge router 120, load balancer 122, load balancing algorithm 124, branch 130, host 132, application 134, data center 140, server 142, Internet circuit 150 (Internet gold circuit 150a and Internet silver circuit 150b), and FTP connection 160 (FTP control connection 160a and FTP data connection 160b), the present disclosure contemplates any suitable arrangement of network 110, edge router 120, load balancer 122, load balancing algorithm 124, branch 130, host 132, application 134, data center 140, server 142, Internet circuit 150, and FTP connection 160. For example, branch 130 and/or data center 140 may be replaced with different types of site locations.
此外,虽然图1描述并示出了执行特定动作的特定组件、设备或系统,但是本公开考虑执行任何适当动作的任何适当的组件、设备或系统的任何适当组合。Furthermore, although FIG. 1 describes and illustrates particular components, devices, or systems that perform particular actions, this disclosure contemplates any suitable combination of any suitable components, devices, or systems that perform any suitable actions.
图2示出了根据某些实施例的示例负载平衡系统200。系统200或其部分可以与实体相关联,该实体可以包括执行负载平衡的任何实体,例如商业、公司或企业。在某些实施例中,实体可以是执行负载平衡的服务提供商。系统200的组件可以包括硬件、固件和软件的任何适当组合。例如,系统200的组件可以使用图5的计算机系统的一个或多个元件。FIG. 2 shows an example load balancing system 200 according to some embodiments. System 200 or a portion thereof may be associated with an entity, which may include any entity that performs load balancing, such as a business, company, or enterprise. In some embodiments, the entity may be a service provider that performs load balancing. The components of system 200 may include any appropriate combination of hardware, firmware, and software. For example, the components of system 200 may use one or more elements of the computer system of FIG. 5 .
在图2所示的实施例中,系统200包括网络110、边缘路由器120(边缘路由器120a和边缘路由器120b)、负载平衡器122、负载平衡算法124(仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d)、分支130、主机132、应用134(FTP应用134a、SaaS应用134b、大象流应用134c和老鼠流应用134d)、数据中心140、服务器142和互联网电路150(互联网金电路150a和互联网银电路150b),它们在上文图1中被描述。In the embodiment shown in FIG. 2 , system 200 includes network 110, edge routers 120 (edge router 120a and edge router 120b), load balancer 122, load balancing algorithms 124 (source IP only load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c, and PPL balancing algorithm 124d), branches 130, hosts 132, applications 134 (FTP application 134a, SaaS application 134b, elephant flow application 134c, and mouse flow application 134d), data center 140, server 142, and Internet circuits 150 (Internet gold circuit 150a and Internet silver circuit 150b), which are described above in FIG. 1 .
在图2所示的实施例中,分支130的主机132处的大象流应用134c尝试将数据同步到数据中心140的服务器142。由于现有配置的哈希选择(例如,L3负载平衡算法124b),因此大象流分组(例如,分组1至4)可以跟随互联网金电路150a或互联网银电路150b,即使PPL平衡算法124d最适合于大象流应用134c。PPL平衡算法124d将不被选择用于从边缘路由器120a传出的所有流量,因为PPL负载平衡可能导致老鼠流量的分组乱序传递和重传。下面在图3中讨论的动态负载平衡方案通过以下方式来解决这些问题:为大象流应用134c动态地选择PPL平衡算法124d以更有效地利用互联网金电路150a和互联网银电路150b的带宽。In the embodiment shown in FIG. 2 , the elephant flow application 134 c at the host 132 of the branch 130 attempts to synchronize data to the server 142 of the data center 140. Due to the hash selection of the existing configuration (e.g., the L3 load balancing algorithm 124 b), the elephant flow packets (e.g., packets 1 to 4) may follow the Internet Gold Circuit 150 a or the Internet Silver Circuit 150 b, even though the PPL balancing algorithm 124 d is most suitable for the elephant flow application 134 c. The PPL balancing algorithm 124 d will not be selected for all traffic outgoing from the edge router 120 a because PPL load balancing may cause out-of-order delivery and retransmission of packets of the mouse traffic. The dynamic load balancing scheme discussed below in FIG. 3 solves these problems by dynamically selecting the PPL balancing algorithm 124 d for the elephant flow application 134 c to more efficiently utilize the bandwidth of the Internet Gold Circuit 150 a and the Internet Silver Circuit 150 b.
虽然图2示出了特定数量的网络110、边缘路由器120(边缘路由器120a和边缘路由器120b)、负载平衡器122、负载平衡算法124(仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d)、分支130、主机132、应用134(FTP应用134a、SaaS应用134b、大象流应用134c和老鼠流应用134d)、数据中心140、服务器142、互联网电路150(互联网金电路150a和互联网银电路150b)和FTP连接160(FTP控制连接160a和FTP数据连接160b),但是本公开考虑任何适当数量的网络110、边缘路由器120、负载平衡器122、负载平衡算法124、分支130、主机132、应用134、数据中心140、服务器142、互联网电路150和FTP连接160。例如,系统200可以包括多于或少于三个负载平衡算法124。作为另一示例,系统200可以包括多于或少于四种类型的应用134。作为又一示例,系统200可以包括多于两个互联网电路150。Although FIG. 2 shows a specific number of networks 110, edge routers 120 (edge router 120a and edge router 120b), load balancers 122, load balancing algorithms 124 (source IP only load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c, and PPL balancing algorithm 124d), branches 130, hosts 132, applications 134 (FTP application 134a, SaaS application 134b, elephant flow application 134c, and mouse flow application 134d), , data center 140, server 142, Internet circuit 150 (Internet gold circuit 150a and Internet silver circuit 150b), and FTP connection 160 (FTP control connection 160a and FTP data connection 160b), but the present disclosure contemplates any suitable number of networks 110, edge routers 120, load balancers 122, load balancing algorithms 124, branches 130, hosts 132, applications 134, data center 140, server 142, Internet circuit 150, and FTP connection 160. For example, system 200 can include more or less than three load balancing algorithms 124. As another example, system 200 can include more or less than four types of applications 134. As yet another example, system 200 can include more than two Internet circuits 150.
虽然图2示出了网络110、边缘路由器120(边缘路由器120a和边缘路由器120b)、负载平衡器122、负载平衡算法124(仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d)、分支130、主机132、应用134(FTP应用134a、SaaS应用134b、大象流应用134c和老鼠流应用134d)、数据中心140、服务器142、互联网电路150(互联网金电路150a和互联网银电路150b)和FTP连接160(FTP控制连接160a和FTP数据连接160b)的特定布置,但是本公开考虑网络110、边缘路由器120、负载平衡器122、负载平衡算法124、分支130、主机132、应用134、数据中心140、服务器142、互联网电路150和FTP连接160的任何适当布置。例如,可以用不同类型的站点位置代替分支130和/或数据中心140。2 shows a network 110, an edge router 120 (edge router 120a and edge router 120b), a load balancer 122, a load balancing algorithm 124 (source IP only load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c, and PPL balancing algorithm 124d), a branch 130, a host 132, an application 134 (FTP application 134a, SaaS application 134b, elephant flow application 134c, and mouse flow application 134d), a data center Although the present disclosure describes a specific arrangement of network 110, edge router 120, load balancer 122, load balancing algorithm 124, branch 130, host 132, application 134, data center 140, server 142, Internet circuit 150 (Internet gold circuit 150a and Internet silver circuit 150b), and FTP connection 160 (FTP control connection 160a and FTP data connection 160b), the present disclosure contemplates any suitable arrangement of network 110, edge router 120, load balancer 122, load balancing algorithm 124, branch 130, host 132, application 134, data center 140, server 142, Internet circuit 150, and FTP connection 160. For example, branch 130 and/or data center 140 may be replaced with different types of site locations.
此外,虽然图2描述并示出了执行特定动作的特定组件、设备或系统,但是本公开考虑执行任何适当动作的任何适当的组件、设备或系统的任何适当组合。Furthermore, although FIG. 2 describes and illustrates particular components, devices, or systems that perform particular actions, this disclosure contemplates any suitable combination of any suitable components, devices, or systems that perform any suitable actions.
图3示出了用于动态地选择负载平衡算法124的示例负载平衡系统300。系统300或其部分可以与实体相关联,该实体可以包括动态地选择负载平衡算法124的任何实体,例如商业、公司或企业。在某些实施例中,实体可以是动态地选择负载平衡算法124的服务提供商。系统300的组件可以包括硬件、固件和软件的任何适当组合。例如,系统300的组件可以使用图5的计算机系统的一个或多个元件。FIG. 3 illustrates an example load balancing system 300 for dynamically selecting a load balancing algorithm 124. The system 300 or a portion thereof may be associated with an entity, which may include any entity, such as a business, company, or enterprise, that dynamically selects a load balancing algorithm 124. In some embodiments, the entity may be a service provider that dynamically selects a load balancing algorithm 124. The components of the system 300 may include any suitable combination of hardware, firmware, and software. For example, the components of the system 300 may use one or more elements of the computer system of FIG. 5.
在图3所示的实施例中,系统300包括网络110、边缘路由器120(边缘路由器120a和边缘路由器120b)、负载平衡器122、负载平衡算法124(仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d)、分支130、主机132、应用134(FTP应用134a、SaaS应用134b、大象流应用134c和老鼠流应用134d)、数据中心140、服务器142和互联网电路150(互联网金电路150a和互联网银电路150b),它们在上文图1中被描述。In the embodiment shown in Figure 3, the system 300 includes a network 110, edge routers 120 (edge router 120a and edge router 120b), a load balancer 122, load balancing algorithms 124 (source IP only load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c and PPL balancing algorithm 124d), a branch 130, a host 132, an application 134 (FTP application 134a, SaaS application 134b, elephant flow application 134c and mouse flow application 134d), a data center 140, a server 142 and an Internet circuit 150 (Internet gold circuit 150a and Internet silver circuit 150b), which are described above in Figure 1.
系统300还包括负载平衡方案310。负载平衡方案310是在网络110内分发的途径。负载平衡方案310包括基于应用的负载平衡方案310a、应用到算法映射负载平衡方案310b、基于策略的负载平衡方案310c和默认负载平衡方案310d。The system 300 also includes a load balancing scheme 310. The load balancing scheme 310 is a way of distributing within the network 110. The load balancing scheme 310 includes an application-based load balancing scheme 310a, an application-to-algorithm mapping load balancing scheme 310b, a policy-based load balancing scheme 310c, and a default load balancing scheme 310d.
基于应用的负载平衡方案310a基于应用134的类型动态地选择负载平衡算法124(仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d)。因为不同类型的应用134更适合于不同的负载平衡算法124,所以边缘路由器120a可以使用基于应用的负载平衡方案310a来选择最适合于应用134的类型的负载平衡算法124。例如,边缘路由器120a可以为FTP应用134a和SaaS应用134b选择仅源IP负载平衡算法124a,以防止丢弃的分组。作为另一示例,边缘路由器120a可以为大象流应用134c选择PPL平衡算法124d以有效地利用带宽。作为又一示例,边缘路由器120a可以为老鼠流应用134d选择L3负载平衡算法124b。The application-based load balancing scheme 310a dynamically selects a load balancing algorithm 124 (source-only IP load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c, and PPL balancing algorithm 124d) based on the type of application 134. Because different types of applications 134 are more suitable for different load balancing algorithms 124, the edge router 120a can use the application-based load balancing scheme 310a to select the load balancing algorithm 124 that is most suitable for the type of application 134. For example, the edge router 120a can select the source-only IP load balancing algorithm 124a for the FTP application 134a and the SaaS application 134b to prevent discarded packets. As another example, the edge router 120a can select the PPL balancing algorithm 124d for the elephant flow application 134c to effectively utilize bandwidth. As another example, the edge router 120a can select the L3 load balancing algorithm 124b for the mouse flow application 134d.
在某些实施例中,边缘路由器120a可以使用诸如基于网络的应用辨识(NBAR)之类的应用辨识引擎来辨识应用134的类型。NBAR使用深度分组检查(DPI)来对应用134进行识别和分类。一旦边缘路由器120a对应用134进行了分类,边缘路由器120a就可以根据基于应用的负载平衡方案310a,基于应用134的类型来选择适当的负载平衡算法170。In some embodiments, the edge router 120a can use an application recognition engine such as network-based application recognition (NBAR) to recognize the type of application 134. NBAR uses deep packet inspection (DPI) to identify and classify the application 134. Once the edge router 120a has classified the application 134, the edge router 120a can select an appropriate load balancing algorithm 170 based on the type of application 134 according to the application-based load balancing scheme 310a.
应用到算法映射负载平衡方案310b基于用户配置的全局应用到算法映射表来选择负载平衡算法124(例如,仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d)。例如,用户可以将一组语音/视频应用134映射到L3负载平衡算法124b。作为另一示例,用户可以将一组社交网络应用134映射到仅源IP负载平衡算法124a。作为又一示例,用户可以将超文本传输协议(HTTP)应用134映射到L4负载平衡算法170c。The application-to-algorithm mapping load balancing scheme 310b selects a load balancing algorithm 124 (e.g., source-only IP load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c, and PPL balancing algorithm 124d) based on a global application-to-algorithm mapping table configured by a user. For example, a user may map a group of voice/video applications 134 to an L3 load balancing algorithm 124b. As another example, a user may map a group of social network applications 134 to a source-only IP load balancing algorithm 124a. As yet another example, a user may map a hypertext transfer protocol (HTTP) application 134 to an L4 load balancing algorithm 170c.
基于策略的负载平衡方案310c基于任何标准匹配判据来选择负载平衡算法124(例如,仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d)。匹配判据可以包括以下属性中的一个或多个:应用的类型、源IP地址、目的地IP地址、子网、IP DSCP、协议类型、站点标识、VPN标识、序列号等。The policy-based load balancing scheme 310c selects a load balancing algorithm 124 (e.g., source-only IP load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c, and PPL balancing algorithm 124d) based on any standard matching criteria. The matching criteria may include one or more of the following attributes: type of application, source IP address, destination IP address, subnet, IP DSCP, protocol type, site identification, VPN identification, sequence number, etc.
在某些实施例中,边缘路由器120a可以使用基于策略的负载平衡方案310c来基于按顺序评估的匹配-动作对的一系列被编号(排序)的序列来选择负载平衡算法124。例如,数据策略可以被配置为首先识别应用134是否是SaaS应用134b,接下来识别SaaS应用134b是否与特定VPN列表相关联,然后接下来识别SaaS应用134b是否与SaaS应用134b的特定列表(例如,WebEx音频、WebEx视频等)相关联。如果满足所有这些条件,则边缘路由器120a将SaaS应用134b匹配到由策略配置的仅源IP负载平衡算法124a。基于策略的负载平衡方案310c是灵活的,并且可以用于基于不同的判据来定义和选择不同的动作(例如,负载共享)。In some embodiments, the edge router 120a may use a policy-based load balancing scheme 310c to select a load balancing algorithm 124 based on a numbered (ordered) sequence of match-action pairs that are evaluated in order. For example, a data policy may be configured to first identify whether the application 134 is a SaaS application 134b, next identify whether the SaaS application 134b is associated with a specific VPN list, and then next identify whether the SaaS application 134b is associated with a specific list of SaaS applications 134b (e.g., WebEx audio, WebEx video, etc.). If all of these conditions are met, the edge router 120a matches the SaaS application 134b to the source-only IP load balancing algorithm 124a configured by the policy. The policy-based load balancing scheme 310c is flexible and can be used to define and select different actions (e.g., load sharing) based on different criteria.
如果基于应用的负载平衡方案310a、应用到算法映射负载平衡方案310b和基于策略的负载平衡方案310c没有被选择,则默认负载平衡方案310d被自动选择。默认负载平衡方案310d可以基于全局/系统级负载平衡配置、VPN级负载平衡配置、特征级负载平衡配置等。If the application-based load balancing scheme 310a, the application-to-algorithm mapping load balancing scheme 310b, and the policy-based load balancing scheme 310c are not selected, the default load balancing scheme 310d is automatically selected. The default load balancing scheme 310d may be based on a global/system-level load balancing configuration, a VPN-level load balancing configuration, a feature-level load balancing configuration, etc.
在操作中,用户为系统300的边缘路由器120a选择基于应用的负载平衡方案310a。边缘路由器120a经由FTP控制连接160a和FTP数据连接160b接收来自分支130的主机132的FTP流量。边缘路由器120a使用NBAR将FTP流量与FTP应用134a相关联。边缘路由器120a使用基于应用的负载平衡方案310a来动态地选择与FTP应用134a相关联的仅源IP负载平衡算法124a,这确保FTP流量将跟随到数据中心140的服务器142的同一路由(互联网金电路150a)。系统100的边缘路由器120a还接收来自分支130的主机132的大象流流量。边缘路由器120a使用NBAR将大象流流量与大象流应用134c相关联。边缘路由器120a使用基于应用的负载平衡方案310a来选择PPL平衡算法124d,该PPL平衡算法124d在互联网电路150之间有效地分发大象流分组1、2、3和4。例如,如图3所示,边缘路由器120a可以以轮询方式分发大象流分组1、2、3和4,使得大象流分组1和3跟随互联网银电路150b,大象流分组2和4跟随互联网金电路150a。这样,系统300可以被配置为根据诸如应用类型之类的某个判据来动态地选择负载平衡方案,这提高了系统300的带宽和整体效率。In operation, a user selects an application-based load balancing scheme 310a for an edge router 120a of the system 300. The edge router 120a receives FTP traffic from a host 132 of a branch 130 via an FTP control connection 160a and an FTP data connection 160b. The edge router 120a associates the FTP traffic with an FTP application 134a using NBAR. The edge router 120a uses the application-based load balancing scheme 310a to dynamically select a source-only IP load balancing algorithm 124a associated with the FTP application 134a, which ensures that the FTP traffic will follow the same route (internet gold circuit 150a) to a server 142 of a data center 140. The edge router 120a of the system 100 also receives elephant flow traffic from a host 132 of a branch 130. The edge router 120a associates the elephant flow traffic with an elephant flow application 134c using NBAR. The edge router 120a uses the application-based load balancing scheme 310a to select the PPL balancing algorithm 124d, which effectively distributes the elephant flow packets 1, 2, 3, and 4 between the Internet circuits 150. For example, as shown in FIG3, the edge router 120a can distribute the elephant flow packets 1, 2, 3, and 4 in a round-robin manner, so that the elephant flow packets 1 and 3 follow the Internet silver circuit 150b, and the elephant flow packets 2 and 4 follow the Internet gold circuit 150a. In this way, the system 300 can be configured to dynamically select a load balancing scheme based on a certain criterion such as the application type, which improves the bandwidth and overall efficiency of the system 300.
虽然图3示出了特定数量的网络110、边缘路由器120(边缘路由器120a和边缘路由器120b)、负载平衡器122、负载平衡算法124(仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d)、分支130、主机132、应用134(FTP应用134a、SaaS应用134b、大象流应用134c和老鼠流应用134d)、数据中心140、服务器142、互联网电路150(互联网金电路150a和互联网银电路150b)、FTP连接160(FTP控制连接160a和FTP数据连接160b)和负载平衡方案310(基于应用的负载平衡方案310a、应用到算法映射负载平衡方案310b、基于策略的负载平衡方案310c和默认负载平衡方案310d),但是本公开考虑任何适当数量的网络110、边缘路由器120、负载平衡器122、负载平衡算法124、分支130、主机132、应用134、数据中心140、服务器142、互联网电路150、FTP连接160和负载平衡方案310。例如,系统300可以包括多于或少于四个负载平衡方案310。作为另一示例,系统300可以包括多于或少于四种类型的应用134。作为又一示例,系统300可以包括多于两个互联网电路150。3 shows a specific number of networks 110, edge routers 120 (edge router 120a and edge router 120b), load balancers 122, load balancing algorithms 124 (source IP only load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c, and PPL balancing algorithm 124d), branches 130, hosts 132, applications 134 (FTP application 134a, SaaS application 134b, elephant flow application 134c, and mouse flow application 134d), data centers 140, servers 142, Internet circuits 150 (Internet gold circuit 150a and Internet silver circuit 150b), FTP connections 160 (FTP control connection 160a and FTP data connection 160b), and load balancing schemes 310 (application-based load balancing scheme 310a, application-to-algorithm mapping load balancing scheme 310b, policy-based load balancing scheme 310c, and default load balancing scheme 310d), but the present disclosure contemplates any appropriate number of networks 110, edge routers 120, load balancers 122, load balancing algorithms 124, branches 130, hosts 132, applications 134, data centers 140, servers 142, Internet circuits 150, FTP connections 160, and load balancing schemes 310. For example, system 300 may include more or less than four load balancing schemes 310. As another example, system 300 may include more or less than four types of applications 134. As yet another example, system 300 may include more than two Internet circuits 150.
虽然图3示出了网络110、边缘路由器120(边缘路由器120a和边缘路由器120b)、负载平衡器122、负载平衡算法124(仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c和PPL平衡算法124d)、分支130、主机132、应用134(FTP应用134a、SaaS应用134b、大象流应用134c和老鼠流应用134d)、数据中心140、服务器142、互联网电路150(互联网金电路150a和互联网银电路150b)、FTP连接160(FTP控制连接160a和FTP数据连接160b)和负载平衡方案310(基于应用的负载平衡方案310a、应用到算法映射负载平衡方案310b、基于策略的负载平衡方案310c和默认负载平衡方案310d)的特定布置,但是本公开考虑网络110、边缘路由器120、负载平衡器122、负载平衡算法124、分支130、主机132、应用134、数据中心140、服务器142、互联网电路150、FTP连接160和负载平衡方案310的任何适当布置。例如,可以用不同类型的站点位置代替分支130和/或数据中心140。3 shows a network 110, edge routers 120 (edge router 120a and edge router 120b), a load balancer 122, load balancing algorithms 124 (source IP only load balancing algorithm 124a, L3 load balancing algorithm 124b, L4 load balancing algorithm 124c, and PPL balancing algorithm 124d), a branch 130, a host 132, an application 134 (FTP application 134a, SaaS application 134b, elephant flow application 134c, and mouse flow application 134d), a data center 140, a server 142, and an Internet circuit 150 (Internet gold circuit 150a and Internet silver circuit 150b). , FTP connections 160 (FTP control connection 160a and FTP data connection 160b), and load balancing schemes 310 (application-based load balancing scheme 310a, application-to-algorithm mapping load balancing scheme 310b, policy-based load balancing scheme 310c, and default load balancing scheme 310d), but the present disclosure contemplates any suitable arrangement of network 110, edge router 120, load balancer 122, load balancing algorithm 124, branch 130, host 132, application 134, data center 140, server 142, Internet circuit 150, FTP connection 160, and load balancing scheme 310. For example, branch 130 and/or data center 140 may be replaced with different types of site locations.
此外,虽然图3描述并示出了执行特定动作的特定组件、设备或系统,但是本公开考虑执行任何适当动作的任何适当的组件、设备或系统的任何适当组合。Furthermore, although FIG. 3 describes and illustrates particular components, devices, or systems that perform particular actions, this disclosure contemplates any suitable combination of any suitable components, devices, or systems that perform any suitable actions.
图4示出了根据某些实施例的一种用于动态地选择负载平衡算法的方法400。方法400使用基于应用的负载平衡方案来基于诸如应用类型之类的一个或多个判据动态地选择负载平衡算法(例如,仅源IP负载平衡算法、L3负载平衡算法、L4负载平衡算法、PPL平衡算法等),这提高了网络的效率,因为不同类型的应用更适合于不同的负载平衡算法。图4的方法400可以由图3的系统300使用。FIG4 illustrates a method 400 for dynamically selecting a load balancing algorithm according to some embodiments. The method 400 uses an application-based load balancing scheme to dynamically select a load balancing algorithm (e.g., a source IP-only load balancing algorithm, an L3 load balancing algorithm, an L4 load balancing algorithm, a PPL balancing algorithm, etc.) based on one or more criteria such as application type, which improves the efficiency of the network because different types of applications are more suitable for different load balancing algorithms. The method 400 of FIG4 can be used by the system 300 of FIG3.
方法400在步骤410处开始。在方法400的步骤420处,网络的边缘路由器接收来自分支的主机的流量。例如,参考图3的系统300,网络110的边缘路由器120a可以接收来自分支130的主机132的流量,例如FTP流量或大象流流量。在某些实施例中,网络是SD-WAN网络。然后,方法400从步骤420移动到步骤430。Method 400 begins at step 410. At step 420 of method 400, an edge router of the network receives traffic from a host of a branch. For example, referring to system 300 of FIG. 3, edge router 120a of network 110 may receive traffic, such as FTP traffic or elephant flow traffic, from host 132 of branch 130. In some embodiments, the network is an SD-WAN network. Then, method 400 moves from step 420 to step 430.
在方法400的步骤430处,边缘路由器识别与流量相关联的一个或多个属性。例如,参考图3的系统300,网络110的边缘路由器120a可以识别与流量相关联的应用134的类型(例如,FTP应用134a、SaaS应用134b、大象流应用134c或老鼠流应用134d)。在某些实施例中,边缘路由器使用诸如NBAR之类的应用辨识引擎来识别应用134的类型。作为另一示例,网络110的边缘路由器120a可以识别与流量相关联的属性,例如源IP地址、目的地IP地址、子网、IP DSCP、协议类型等。然后,方法400从步骤430移动到步骤440。At step 430 of method 400, the edge router identifies one or more attributes associated with the traffic. For example, referring to the system 300 of FIG. 3, the edge router 120a of network 110 can identify the type of application 134 associated with the traffic (e.g., FTP application 134a, SaaS application 134b, elephant flow application 134c, or mouse flow application 134d). In some embodiments, the edge router uses an application recognition engine such as NBAR to identify the type of application 134. As another example, the edge router 120a of network 110 can identify attributes associated with the traffic, such as source IP address, destination IP address, subnet, IP DSCP, protocol type, etc. Then, method 400 moves from step 430 to step 440.
在方法400的步骤440处,边缘路由器确定特定的负载平衡方案是否已经被选择。例如,参考图3的系统300,网络110的边缘路由器120a可以确定基于应用的负载平衡方案310a、应用到算法映射负载平衡方案310b或基于策略的负载平衡方案310c是否已经被选择。如果边缘路由器确定特定的负载平衡方案已经被选择,则方法400从步骤440移动到步骤450,在步骤450处,边缘路由器根据负载平衡方案基于一个或多个属性动态地选择负载平衡算法。例如,参考图3的系统300,网络110的边缘路由器120a可以确定基于应用的负载平衡方案310a已经被选择。根据基于应用的负载平衡方案310a,边缘路由器120a可以基于所识别的应用134的类型来动态地选择仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c或PPL平衡算法124d。At step 440 of method 400, the edge router determines whether a particular load balancing scheme has been selected. For example, referring to the system 300 of FIG. 3, the edge router 120a of the network 110 may determine whether an application-based load balancing scheme 310a, an application-to-algorithm mapping load balancing scheme 310b, or a policy-based load balancing scheme 310c has been selected. If the edge router determines that a particular load balancing scheme has been selected, the method 400 moves from step 440 to step 450, where the edge router dynamically selects a load balancing algorithm based on one or more attributes according to the load balancing scheme. For example, referring to the system 300 of FIG. 3, the edge router 120a of the network 110 may determine that an application-based load balancing scheme 310a has been selected. Based on the application-based load balancing scheme 310a, the edge router 120a may dynamically select a source-only IP load balancing algorithm 124a, an L3 load balancing algorithm 124b, an L4 load balancing algorithm 124c, or a PPL balancing algorithm 124d based on the type of the identified application 134.
如果在方法400的步骤440处边缘路由器确定特定的负载平衡方案未被选择,则方法400从步骤440前进到步骤470,在步骤470处,边缘路由器根据默认的负载平衡方案对流量执行负载平衡。例如,参考图3的系统300,网络110的边缘路由器120a可以确定基于应用的负载平衡方案310a、应用到算法映射负载平衡方案310b和基于策略的负载平衡方案310c未被选择。边缘路由器120a可以使用默认负载平衡方案310d,该默认负载平衡方案310d可以被配置为针对所有流量类型使用仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c或PPL平衡算法124d。If the edge router determines at step 440 of method 400 that a particular load balancing scheme is not selected, then the method 400 proceeds from step 440 to step 470, where the edge router performs load balancing on the traffic according to a default load balancing scheme. For example, referring to the system 300 of FIG. 3 , the edge router 120 a of the network 110 may determine that the application-based load balancing scheme 310 a, the application-to-algorithm mapping load balancing scheme 310 b, and the policy-based load balancing scheme 310 c are not selected. The edge router 120 a may use a default load balancing scheme 310 d, which may be configured to use a source-only IP load balancing algorithm 124 a, an L3 load balancing algorithm 124 b, an L4 load balancing algorithm 124 c, or a PPL balancing algorithm 124 d for all traffic types.
然后,方法400从步骤460和步骤470移动到步骤480,在步骤480处,边缘路由器根据负载平衡方案将流量传送到第二网络元件。例如,参考图3的系统300,网络110的边缘路由器120a可以根据仅源IP负载平衡算法124a、L3负载平衡算法124b、L4负载平衡算法124c或PPL平衡算法124d将流量传送到边缘路由器120b。然后,方法400从步骤480移动到步骤490,方法400在步骤490处结束。这样,方法400可以被配置为根据诸如应用类型之类的某个判据来动态地选择负载平衡方案,这提高了网络的带宽和整体效率。Then, the method 400 moves from step 460 and step 470 to step 480, where the edge router transmits the traffic to the second network element according to the load balancing scheme. For example, referring to the system 300 of FIG. 3 , the edge router 120a of the network 110 can transmit the traffic to the edge router 120b according to the source-only IP load balancing algorithm 124a, the L3 load balancing algorithm 124b, the L4 load balancing algorithm 124c, or the PPL balancing algorithm 124d. Then, the method 400 moves from step 480 to step 490, where the method 400 ends. In this way, the method 400 can be configured to dynamically select a load balancing scheme according to a certain criterion such as application type, which improves the bandwidth and overall efficiency of the network.
虽然本公开描述并示出了以特定顺序发生的图4的方法400的特定步骤,但是本公开考虑以任何适当顺序发生的图4的方法400的任何适当步骤。虽然本公开描述并示出了包括图4的方法400的特定步骤的用于动态地选择负载平衡算法的示例方法,但是本公开考虑包括任何合适的步骤的用于动态地选择负载平衡算法的任何合适的方法,在适当的情况下,该方法可以包括图4的方法400的所有、一些步骤或不包括这些步骤。虽然图4描述并示出了执行特定动作的特定组件、设备或系统,但是本公开考虑执行任何适当动作的任何适当的组件、设备或系统的任何适当组合。Although this disclosure describes and illustrates particular steps of method 400 of FIG. 4 occurring in a particular order, this disclosure contemplates any suitable steps of method 400 of FIG. 4 occurring in any suitable order. Although this disclosure describes and illustrates an example method for dynamically selecting a load balancing algorithm that includes particular steps of method 400 of FIG. 4 , this disclosure contemplates any suitable method for dynamically selecting a load balancing algorithm that includes any suitable steps, which may include all, some, or none of the steps of method 400 of FIG. 4 , where appropriate. Although FIG. 4 describes and illustrates particular components, devices, or systems that perform particular actions, this disclosure contemplates any suitable combination of any suitable components, devices, or systems that perform any suitable actions.
图5示出了示例计算机系统500。在特定实施例中,一个或多个计算机系统500执行本文描述或说明的一种或多种方法的一个或多个步骤。在特定实施例中,一个或多个计算机系统500提供本文描述或说明的功能。在特定实施例中,在一个或多个计算机系统500上运行的软件执行本文描述或说明的一种或多种方法的一个或多个步骤,或者提供本文描述或说明的功能。特定实施例包括一个或多个计算机系统500的一个或多个部分。在适当的情况下,本文对计算机系统的引用可以涵盖计算设备,并且反之亦然。此外,在适当的情况下,对计算机系统的引用可以涵盖一个或多个计算机系统。FIG. 5 shows an example computer system 500. In a particular embodiment, one or more computer systems 500 perform one or more steps of one or more methods described or illustrated herein. In a particular embodiment, one or more computer systems 500 provide the functionality described or illustrated herein. In a particular embodiment, software running on one or more computer systems 500 performs one or more steps of one or more methods described or illustrated herein, or provides the functionality described or illustrated herein. A particular embodiment includes one or more parts of one or more computer systems 500. Where appropriate, references to computer systems herein may cover computing devices, and vice versa. In addition, where appropriate, references to computer systems may cover one or more computer systems.
本公开考虑任何适当数量的计算机系统500。本公开考虑采用任何适当物理形式的计算机系统500。作为示例而非限制,计算机系统500可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网格、移动电话、个人数字助理(PDA)、服务器、平板电脑系统、增强/虚拟现实设备或其中两种或多种的组合。在适当的情况下,计算机系统500可以包括一个或多个计算机系统500;是统一的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或驻留在云端中,该云端可以包括一个或多个网络中的一个或多个云组件。在适当的情况下,一个或多个计算机系统500可以在没有实质的空间或时间限制的情况下执行本文描述或说明的一种或多种方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统500可以实时地或以批处理的模式执行本文描述或说明的一种或多种方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统500可以在不同时间或在不同位置执行本文描述或说明的一种或多种方法的一个或多个步骤。The present disclosure contemplates any suitable number of computer systems 500. The present disclosure contemplates computer systems 500 in any suitable physical form. By way of example and not limitation, computer system 500 may be an embedded computer system, a system on a chip (SOC), a single board computer system (SBC) (e.g., a computer on a module (COM) or a system on a module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a computer system grid, a mobile phone, a personal digital assistant (PDA), a server, a tablet computer system, an augmented/virtual reality device, or a combination of two or more thereof. Where appropriate, computer system 500 may include one or more computer systems 500; be unified or distributed; span multiple locations; span multiple machines; span multiple data centers; or reside in a cloud, which may include one or more cloud components in one or more networks. Where appropriate, one or more computer systems 500 may perform one or more steps of one or more methods described or illustrated herein without substantial spatial or temporal limitations. By way of example and not limitation, one or more computer systems 500 may perform one or more steps of one or more methods described or illustrated herein in real time or in a batch mode. Where appropriate, one or more computer systems 500 may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein.
在特定实施例中,计算机系统500包括处理器502、存储器504、存储装置506、输入/输出(I/O)接口508、通信接口510和总线512。虽然本公开描述和说明了在特定布置中具有特定数量的特定组件的特定计算机系统,但是本公开考虑了在任何合适布置中具有任何合适数量的任何合适组件的任何合适的计算机系统。In a particular embodiment, computer system 500 includes processor 502, memory 504, storage 506, input/output (I/O) interface 508, communication interface 510, and bus 512. Although this disclosure describes and illustrates a particular computer system having particular numbers of particular components in a particular arrangement, this disclosure contemplates any suitable computer system having any suitable numbers of any suitable components in any suitable arrangement.
在特定实施例中,处理器502包括用于执行诸如构成计算机程序的指令的硬件。作为示例而非限制,为了执行指令,处理器502可以从内部寄存器、内部缓存、存储器504或存储装置506检索(或获取)指令;解码并且执行它们;并且然后将一个或多个结果写入到内部寄存器、内部缓存、存储器504或存储装置506。在特定实施例中,处理器502可以包括用于数据、指令或地址的一个或多个内部缓存。在适当的情况下,本公开考虑包括任何适当数量的任何适当内部缓存的处理器502。作为示例而非限制,处理器502可以包括一个或多个指令缓存、一个或多个数据缓存以及一个或多个转换后备缓冲器(TLB)。在指令缓存中的指令可以是在存储器504或存储装置506中的指令的副本,并且指令缓存可以加速处理器502对这些指令的检索。在数据缓存中的数据可以是存储器504或存储装置506中的数据的副本,在处理器502处执行指令以对该数据进行操作;可以是被处理器502执行的先前指令的结果,该结果用于由在处理器502处执行的后续指令的访问或用于写入存储器504或存储装置506;或可以是其他适当的数据。数据缓存可以加速处理器502的读取或写入操作。TLB可以加速处理器502的虚拟地址转换。在特定实施例中,处理器502可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑包括任何适当数量的任何适当内部寄存器的处理器502。在适当的情况下,处理器502可以包括一个或多个算术逻辑单元(ALU);可以是多核心处理器,或者可以包括一个或多个处理器502。虽然本公开描述并说明了特定的处理器,但是本公开考虑任何适当的处理器。In a particular embodiment, the processor 502 includes hardware for executing instructions such as those constituting a computer program. By way of example and not limitation, to execute instructions, the processor 502 may retrieve (or fetch) instructions from an internal register, an internal cache, a memory 504, or a storage device 506; decode and execute them; and then write one or more results to an internal register, an internal cache, a memory 504, or a storage device 506. In a particular embodiment, the processor 502 may include one or more internal caches for data, instructions, or addresses. Where appropriate, the present disclosure contemplates a processor 502 including any appropriate number of any appropriate internal caches. By way of example and not limitation, the processor 502 may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). The instructions in the instruction cache may be copies of instructions in the memory 504 or the storage device 506, and the instruction cache may speed up the retrieval of these instructions by the processor 502. The data in the data cache may be a copy of data in the memory 504 or storage device 506, and instructions are executed at the processor 502 to operate on the data; it may be the result of a previous instruction executed by the processor 502, which is used for access by subsequent instructions executed at the processor 502 or for writing to the memory 504 or storage device 506; or it may be other appropriate data. The data cache can speed up the read or write operation of the processor 502. The TLB can speed up the virtual address translation of the processor 502. In a particular embodiment, the processor 502 may include one or more internal registers for data, instructions, or addresses. Where appropriate, the present disclosure contemplates a processor 502 including any appropriate number of any appropriate internal registers. Where appropriate, the processor 502 may include one or more arithmetic logic units (ALUs); may be a multi-core processor, or may include one or more processors 502. Although the present disclosure describes and illustrates a particular processor, the present disclosure contemplates any appropriate processor.
在特定实施例中,存储器504包括主存储器,用于存储处理器502执行的指令或用于存储处理器502操作的数据。作为示例而非限制,计算机系统500可以将指令从存储装置506或另一源(例如,另一计算机系统500)加载到存储器504。然后,处理器502可以将指令从存储器504加载到内部寄存器或内部缓存。为了执行指令,处理器502可以从内部寄存器或内部缓存中检索指令并且对它们进行解码。在指令执行期间或之后,处理器502可以将一个或多个结果(可以是中间或最终结果)写入内部寄存器或内部缓存。然后,处理器502可以将这些结果中的一个或多个结果写入存储器504。在特定实施例中,处理器502仅执行一个或多个内部寄存器或内部缓存或存储器504(与存储装置506或其他地方相反)中的指令并且仅对一个或多个内部寄存器或内部缓存或存储器504(与存储装置506或其他地方相反)中的数据进行操作。一个或多个存储器总线(可各自包括地址总线和数据总线)可以将处理器502耦合到存储器504。总线512可以包括一个或多个存储器总线,如下所述。在特定实施例中,一个或多个存储器管理单元(MMU)位于处理器502和存储器504之间,并且促进由处理器502请求的对存储器504的访问。在特定实施例中,存储器504包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口或多端口RAM。本公开考虑任何适当的RAM。在适当的情况下,存储器504可以包括一个或多个存储器404。虽然本公开描述并说明了特定的存储器,但是本公开考虑任何适当的存储器。In certain embodiments, the memory 504 includes a main memory for storing instructions executed by the processor 502 or for storing data operated by the processor 502. As an example and not limitation, the computer system 500 may load instructions from the storage device 506 or another source (e.g., another computer system 500) to the memory 504. The processor 502 may then load the instructions from the memory 504 to an internal register or internal cache. To execute the instructions, the processor 502 may retrieve the instructions from the internal register or internal cache and decode them. During or after the execution of the instructions, the processor 502 may write one or more results (which may be intermediate or final results) to the internal register or internal cache. The processor 502 may then write one or more of these results to the memory 504. In certain embodiments, the processor 502 executes only instructions in one or more internal registers or internal caches or memory 504 (as opposed to the storage device 506 or elsewhere) and operates only on data in one or more internal registers or internal caches or memory 504 (as opposed to the storage device 506 or elsewhere). One or more memory buses (which may each include an address bus and a data bus) may couple the processor 502 to the memory 504. The bus 512 may include one or more memory buses, as described below. In a particular embodiment, one or more memory management units (MMUs) are located between the processor 502 and the memory 504 and facilitate access to the memory 504 requested by the processor 502. In a particular embodiment, the memory 504 includes a random access memory (RAM). Where appropriate, the RAM may be a volatile memory. Where appropriate, the RAM may be a dynamic RAM (DRAM) or a static RAM (SRAM). In addition, where appropriate, the RAM may be a single-port or multi-port RAM. The present disclosure contemplates any appropriate RAM. Where appropriate, the memory 504 may include one or more memories 404. Although the present disclosure describes and illustrates specific memories, the present disclosure contemplates any appropriate memory.
在特定实施例中,存储装置506包括用于数据或指令的大容量存储装置。作为示例而非限制,存储装置506可以包括硬盘驱动器(HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器、或其中两个或更多个的组合。在适当的情况下,存储装置506可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置506可以位于计算机系统500的内部或外部。在特定实施例中,存储装置506是非易失性固态存储器。在特定实施例中,存储装置506包括只读存储器(ROM)。在适当的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可更改ROM(EAROM)或闪存、或其中两个或更多个的组合。本公开考虑采用任何适当实体形式的大容量存储装置506。在适当的情况下,存储装置506可以包括促进处理器502和存储装置506之间的通信的一个或多个存储装置控制单元。在适当的情况下,存储装置506可以包括一个或多个存储装置506。虽然本公开描述并说明了特定的存储装置,但是本公开考虑任何适当的存储装置。In a particular embodiment, the storage device 506 includes a large-capacity storage device for data or instructions. As an example and not limitation, the storage device 506 may include a hard disk drive (HDD), a floppy disk drive, a flash memory, an optical disk, a magneto-optical disk, a tape, or a universal serial bus (USB) drive, or a combination of two or more thereof. Where appropriate, the storage device 506 may include a removable or non-removable (or fixed) medium. Where appropriate, the storage device 506 may be located inside or outside the computer system 500. In a particular embodiment, the storage device 506 is a non-volatile solid-state memory. In a particular embodiment, the storage device 506 includes a read-only memory (ROM). Where appropriate, the ROM may be a mask-programmed ROM, a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), an electrically alterable ROM (EAROM) or a flash memory, or a combination of two or more thereof. The present disclosure contemplates a large-capacity storage device 506 in any appropriate physical form. Where appropriate, the storage device 506 may include one or more storage device control units that facilitate communication between the processor 502 and the storage device 506. Where appropriate, storage 506 may include one or more storage devices 506. Although this disclosure describes and illustrates particular storage devices, this disclosure contemplates any suitable storage devices.
在特定实施例中,I/O接口508包括硬件、软件或这两者,为计算机系统500和一个或多个I/O设备之间的通信提供一个或多个接口。在适当的情况下,计算机系统500可以包括这些I/O设备中的一个或多个I/O设备。这些I/O设备中的一个或多个I/O设备可以使人和计算机系统500之间进行通信。作为示例而非限制,I/O设备可以包括键盘、小键盘、麦克风、显视器、鼠标、打印机、扫描仪、扬声器、照相机、触控笔、平板电脑、触摸屏、轨迹球、摄像机、另一合适的I/O设备、或其中两个或更多个的组合。I/O设备可以包括一个或多个传感器。本公开考虑任何适当的I/O设备和用于它们的任何适当的I/O接口408。在适当的情况下,I/O接口508可以包括使处理器502能够驱动这些I/O设备中的一个或多个I/O设备的一个或多个设备或软件驱动器。在适当的情况下,I/O接口508可以包括一个或多个I/O接口408。虽然本公开描述并说明了特定的I/O接口,但是本公开考虑任何适当的I/O接口。In a particular embodiment, the I/O interface 508 includes hardware, software, or both, providing one or more interfaces for communication between the computer system 500 and one or more I/O devices. Where appropriate, the computer system 500 may include one or more of these I/O devices. One or more of these I/O devices may enable communication between a person and the computer system 500. As an example and not limitation, the I/O device may include a keyboard, a keypad, a microphone, a display, a mouse, a printer, a scanner, a speaker, a camera, a stylus, a tablet computer, a touch screen, a trackball, a camera, another suitable I/O device, or a combination of two or more thereof. The I/O device may include one or more sensors. The present disclosure contemplates any suitable I/O device and any suitable I/O interface 408 for them. Where appropriate, the I/O interface 508 may include one or more devices or software drivers that enable the processor 502 to drive one or more of these I/O devices. Where appropriate, the I/O interface 508 may include one or more I/O interfaces 408. Although this disclosure describes and illustrates a particular I/O interface, this disclosure contemplates any suitable I/O interface.
在特定实施例中,通信接口510包括硬件、软件或这两者,为计算机系统500和一个或多个其他计算机系统500、或计算机系统500和一个或多个网络之间的通信(例如,基于分组的通信)提供一个或多个接口。作为示例而非限制,通信接口510可以包括网络接口控制器(MIC)或者网络适配器,用于与以太网或与其他基于有线的网络进行通信;或者通信接口510可以包括无线NIC(WNIC)或无线适配器,用于与无线网络(例如,WI-FI网络)进行通信。本公开考虑任何适当的网络和针对该网络的任何适当的通信接口510。作为示例而非限制,计算机系统500可以与自组织网络、个域网(PAN)、LAN、WAN、MAN、或互联网的一个或多个部分、或其中两个或更多个网络的组合进行通信。这些网络中的一种或多种网络的一个或多个部分可以是有线或无线的。作为示例,计算机系统500可以与无线PAN(WPAN)(例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(GSM)网络、3G网络、4G网络、5G网络、LTE网络、或其他适当的无线网络、或其中两个或更多个网络的组合进行通信。在适当的情况下,计算机系统500可以包括用于这些网络中的任何网络的任何适当的通信接口510。在适当的情况下,通信接口510可以包括一个或多个通信接口510。虽然本公开描述并说明了特定的通信接口,但是本公开考虑任何适当的通信接口。In certain embodiments, the communication interface 510 includes hardware, software, or both, providing one or more interfaces for communication (e.g., packet-based communication) between the computer system 500 and one or more other computer systems 500, or between the computer system 500 and one or more networks. By way of example and not limitation, the communication interface 510 may include a network interface controller (MIC) or a network adapter for communicating with an Ethernet or other wire-based networks; or the communication interface 510 may include a wireless NIC (WNIC) or a wireless adapter for communicating with a wireless network (e.g., a WI-FI network). The present disclosure contemplates any appropriate network and any appropriate communication interface 510 for the network. By way of example and not limitation, the computer system 500 may communicate with one or more portions of an ad hoc network, a personal area network (PAN), a LAN, a WAN, a MAN, or the Internet, or a combination of two or more of these networks. One or more portions of one or more of these networks may be wired or wireless. As examples, computer system 500 may communicate with a wireless PAN (WPAN) (e.g., a Bluetooth WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (e.g., a Global System for Mobile Communications (GSM) network, a 3G network, a 4G network, a 5G network, an LTE network, or other suitable wireless networks, or a combination of two or more thereof. Where appropriate, computer system 500 may include any suitable communication interface 510 for any of these networks. Where appropriate, communication interface 510 may include one or more communication interfaces 510. Although this disclosure describes and illustrates particular communication interfaces, this disclosure contemplates any suitable communication interface.
在特定实施例中,总线512包括将计算机系统500的组件耦合到彼此的硬件、软件或这两者。作为示例而非限制,总线512可以包括加速图形端口(AGP)或其他图形总线、增强型工业标准架构(EISA)总线、前端总线(FSB)、HYPERTRANSPORT(HT)互连、工业标准架构(ISA)总线、INFINIBAND互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线、或其他适当的总线、或其中两个或更多个总线的组合。在适当的情况下,总线512可以包括一个或多个总线512。虽然本公开描述并说明了特定的总线,但是本公开考虑任何适当的总线或互连。In a particular embodiment, bus 512 includes hardware, software, or both that couple the components of computer system 500 to each other. As an example and not limitation, bus 512 may include accelerated graphics port (AGP) or other graphics bus, enhanced industry standard architecture (EISA) bus, front side bus (FSB), HYPERTRANSPORT (HT) interconnect, industry standard architecture (ISA) bus, INFINIBAND interconnect, low pin count (LPC) bus, memory bus, micro channel architecture (MCA) bus, peripheral component interconnect (PCI) bus, PCI-Express (PCIe) bus, serial advanced technology attachment (SATA) bus, video electronics standard association local (VLB) bus, or other appropriate bus, or a combination of two or more buses thereof. Where appropriate, bus 512 may include one or more buses 512. Although the present disclosure describes and illustrates a specific bus, the present disclosure contemplates any appropriate bus or interconnect.
在适当的情况下,本文中计算机可读非暂态存储介质可以包括一个或多个基于半导体的电路或其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HMD)、光盘、光盘驱动器(ODD)、磁光盘、磁光驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字(SECURE DITIGAL)卡或驱动器、任何其他合适的计算机可读非暂态存储介质、或其中两种或更多种介质的任何合适的组合。在适当的情况下,非暂态计算机可读存储介质可以是易失性、非易失性、或易失性和非易失性的组合。Where appropriate, the computer-readable non-transitory storage medium herein may include one or more semiconductor-based circuits or other integrated circuits (ICs) (e.g., field programmable gate arrays (FPGAs) or application-specific ICs (ASICs)), hard disk drives (HDDs), hybrid hard disk drives (HMDs), optical disks, optical disk drives (ODDs), magneto-optical disks, magneto-optical drives, floppy disks, floppy disk drives (FDDs), magnetic tapes, solid-state drives (SSDs), RAM drives, secure digital (SECURE DITIGAL) cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more of these media. Where appropriate, the non-transitory computer-readable storage medium may be volatile, non-volatile, or a combination of volatile and non-volatile.
本文中“或”是包含性而非排他性的,除非另有明确说明或上下文另有说明。因此,本文中“A或B”是指“A、B或两者”,除非另有明确说明或上下文另有说明。此外,“和”既是共同的又是各自的,除非另有明确说明或上下文另有说明。因此,本文中“A和B”是指“A和B,共同地或各自地”,除非另有明确说明或上下文另有说明。As used herein, "or" is inclusive and not exclusive, unless expressly stated otherwise or the context indicates otherwise. Thus, as used herein, "A or B" means "A, B, or both," unless expressly stated otherwise or the context indicates otherwise. Additionally, "and" means both jointly and severally, unless expressly stated otherwise or the context indicates otherwise. Thus, as used herein, "A and B" means "A and B, jointly or severally," unless expressly stated otherwise or the context indicates otherwise.
本公开的范围涵盖了本领域普通技术人员将理解的、对本文描述或说明的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或说明的示例实施例。此外,虽然本公开在本文中将各个实施例描述和说明为包括特定的组件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个实施例可以包括本领域普通技术人员将理解的在本文中的任何地方描述或说明的任何组件、元件、特征、功能、操作或步骤的任何组合或排列。此外,在所附权利要求中对装置或系统或者装置或系统的组件被适配为、布置成、有能力、配置成、使得能够、可操作或操作以执行特定功能的引用涵盖无论该装置、系统、组件或该特定功能是否被激活、开启或解锁,只要该装置、系统或组件如此适配、布置、有能力、配置、使得能够、可操作或操作即可。另外,虽然本公开将特定实施例描述或说明为提供特定的优点,但是特定实施例可以不提供这些优点、提供一些优点或提供所有这些优点。The scope of the present disclosure covers all changes, substitutions, variations, alterations and modifications to the example embodiments described or illustrated herein that will be understood by those of ordinary skill in the art. The scope of the present disclosure is not limited to the example embodiments described or illustrated herein. In addition, although the present disclosure describes and illustrates various embodiments herein as including specific components, elements, features, functions, operations or steps, any of these embodiments may include any combination or arrangement of any components, elements, features, functions, operations or steps described or illustrated anywhere in this article that will be understood by those of ordinary skill in the art. In addition, in the attached claims, references to devices or systems or components of devices or systems being adapted to, arranged to, capable of, configured to, enabled to, operable to or operated to perform specific functions cover whether the device, system, component or the specific function is activated, turned on or unlocked, as long as the device, system or component is so adapted, arranged, capable of, configured to, enabled to, operable to or operated. In addition, although the present disclosure describes or illustrates specific embodiments as providing specific advantages, specific embodiments may not provide these advantages, provide some advantages or provide all of these advantages.
Claims (23)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/332,840 | 2022-04-20 | ||
US17/816,818 | 2022-08-02 | ||
US17/816,818 US20230344771A1 (en) | 2022-04-20 | 2022-08-02 | Systems and Methods For Dynamically Selecting a Load Balancing Algorithm |
PCT/US2023/018013 WO2023204989A1 (en) | 2022-04-20 | 2023-04-10 | Systems and methods for dynamically selecting a load balancing algorithm |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118715766A true CN118715766A (en) | 2024-09-27 |
Family
ID=92813354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202380022308.3A Pending CN118715766A (en) | 2022-04-20 | 2023-04-10 | System and method for dynamically selecting a load balancing algorithm |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118715766A (en) |
-
2023
- 2023-04-10 CN CN202380022308.3A patent/CN118715766A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11451476B2 (en) | Multi-path transport design | |
CN114008986B (en) | Site Plug and Play using TLOC extension | |
US9112794B2 (en) | Dynamic multipath forwarding in software defined data center networks | |
US10437775B2 (en) | Remote direct memory access in computing systems | |
CN111682952B (en) | On-demand probes for quality of experience metrics | |
US9450780B2 (en) | Packet processing approach to improve performance and energy efficiency for software routers | |
US9609083B2 (en) | Distributed service processing of network gateways using virtual machines | |
CN107077699A (en) | financial network | |
US20170085500A1 (en) | Streamlined processing in a network switch of network packets in a spliced connection | |
US7978731B2 (en) | Method and system for consolidating TCP ports | |
JP7583177B2 (en) | Cloud-scale multitenancy for RDMA over Converged Ethernet (RoCE) | |
US10616116B1 (en) | Network traffic load balancing using rotating hash | |
US20230344771A1 (en) | Systems and Methods For Dynamically Selecting a Load Balancing Algorithm | |
CN116724546A (en) | RDMA (RoCE) cloud-scale multi-tenancy for converged Ethernet | |
US11855898B1 (en) | Methods for traffic dependent direct memory access optimization and devices thereof | |
US20230379309A1 (en) | In-network compute operations utilizing encrypted communications | |
CN115865802B (en) | Traffic mirroring method, device, virtual machine platform and storage medium of virtual instance | |
CN118715766A (en) | System and method for dynamically selecting a load balancing algorithm | |
CN119301928A (en) | Network device-level optimization for latency-sensitive RDMA traffic | |
WO2023204989A1 (en) | Systems and methods for dynamically selecting a load balancing algorithm | |
US20250071058A1 (en) | Efficient Handling of Fragmented Packets in Multi-Node All-Active Clusters | |
US20230388281A1 (en) | In-network compute operations utilizing encrypted communications | |
US20230336480A1 (en) | Efficient Handling of Fragmented Packets in Multi-Node All-Active Clusters | |
CN118975208A (en) | Efficient processing of fragment groups in a multi-node all-active cluster | |
JP2025514773A (en) | Network device level optimization for bandwidth-sensitive RDMA traffic |
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 |