CN109314666B - 用于执行拥塞感知负载均衡的方法和虚拟隧道端点 - Google Patents
用于执行拥塞感知负载均衡的方法和虚拟隧道端点 Download PDFInfo
- Publication number
- CN109314666B CN109314666B CN201780035632.3A CN201780035632A CN109314666B CN 109314666 B CN109314666 B CN 109314666B CN 201780035632 A CN201780035632 A CN 201780035632A CN 109314666 B CN109314666 B CN 109314666B
- Authority
- CN
- China
- Prior art keywords
- vtep
- packet
- source
- destination
- congestion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
- H04L47/115—Identifying congestion using a dedicated packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了用于源虚拟隧道端点(VTEP)在数据中心网络中执行拥塞感知负载均衡的示例性方法。所述方法可以包括所述源VTEP获知与由将所述源VTEP与目标VTEP相连接的相应的多个中间交换机提供的多个路径相关联的拥塞状态信息。所述方法还可以包括所述源VTEP接收由源端点发送并且目的地为目的地端点的第二分组;以及基于所述拥塞状态信息从多个路径选择特定路径。所述方法还可以包括所述源VTEP通过利用报头信息封装所述第二分组中的每一个来生成经封装的第二分组,所述报头信息包括与所述特定路径相关联的一组元组;以及将所述经封装的第二分组发送到所述目的地端点。
Description
M·希拉,N·卡塔,I·克斯拉西,A·加戈
相关申请的交叉引用
本申请要求于2016年4月12日提交的第62/321,730号美国临时申请和于2017年4月11日提交的第15/485,089号美国非临时申请的权益,其整体通过引用并入本文中。
背景技术
除非本文另有说明,否则本部分中描述的方法不会由于包括在本部分中而被作为现有技术。
数据中心网络通常采用多根拓扑,其特征在于大量的多路径。例如,物理服务器使用多个交换机相互连接,这些交换机为分组转发提供备用路径。当物理服务器具有数据要发送到另一物理服务器时,可以选择其中一个路径来将数据作为分组流传输。在实践中,流量可能不是均匀地分布在不同的路径上,这可能导致一条路径的过度利用和另一条路径的利用不足。负载均衡对于尽可能均匀地分散流量非常重要,以减少拥塞并提高网络性能。
附图简要说明
图1是示出在其中执行拥塞感知负载均衡的示例数据中心网络的示意图;
图2是源虚拟隧道端点(virtual tunnel endpoint,VTEP)在数据中心网络中执行拥塞感知负载均衡的示例性过程的流程图;
图3是源VTEP获知数据中心网络中的拥塞状态信息的第一示例过程的流程图;
图4A是源VTEP获知数据中心网络中的拥塞状态信息的第二示例过程的流程图;
图4B是示出根据图4A中的示例获知的示例拥塞状态信息的示意图;以及
图5是源VTEP在数据中心网络中执行数据分组处理的示例过程的流程图。
具体实施方式
在以下具体实施方式中,参考了附图,其形成本文的一部分。在附图中,除非上下文另有指示,否则类似的符号通常标识类似的组件。在具体实施方式、附图和权利要求中描述的说明性实施例并不意味着是限制性的。在不脱离这里呈现的主题的精神或范围的情况下,可以利用其他实施例,并且可以进行其他改变。容易理解的是,如本文一般描述的和附图中示出的本公开的方面可以以各种不同的配置来布置、替换、组合和设计,所有这些都在本文中被明确地构想。
将参考图1更详细地描述数据中心网络中的负载均衡的挑战,图1是示出在其中执行拥塞感知负载均衡的示例性数据中心网络100的示意图。应当理解的是,数据中心网络100可以包括除所示之外的附加的和/或替代的组件,这取决于期望的实现方式。
在图1中的示例中,数据中心网络100包括经由虚拟隧道端点(VTEP)(诸如“VTEP-A”110和“VTEP-B”120)提供的多个路径连接的第一端点102(参见“EP-A”)和第二端点104(参见“EP-B”)。“VTEP-A”110经由多个中间交换机(诸如“A1”130、“S1”140、“S2”150和“A2”160)提供的多个路径连接到“VTEP-B”120。当将数据分组从源“EP-A”102转发到目的地“EP-B”104时,数据分组可以通过以下之一传输(travel):经由“A1”130、“S1”140和“A2”160的第一路径、经由“A1”130、“S2”150和“A2”160的第二路径。
在实践中,术语“虚拟隧道端点”(例如,“VTEP-A”110和“VTEP-B”120)可以指被配置为向端点(例如,“EP-A”102和“EP-B”104)提供分组转发服务、负载均衡服务、网关服务等的任何合适的网络元件。VTEP110/120可以由一个或更多物理或虚拟实体实现。例如,VTEP110/120可以由物理计算设备(例如,边缘设备、物理服务器等)支持的超级管理程序(例如,超级管理程序的虚拟交换机)来实现。VTEP 110/120及其关联端点102/104可以驻留在相同的物理计算设备上,或者驻留在不同的计算设备上。例如,“EP-A”102可以是虚拟机,并且“VTEP-A”110可以是由相同物理服务器支持的虚拟交换机。在另一个示例中,“EP-A”102可以是由第一物理服务器支持的虚拟机,并且“VTEP-A”110可以是由第二物理服务器或连接到第一物理服务器的物理架顶式(top-of-rack,ToR)交换机支持的虚拟交换机。
术语“端点(endpoint)”(例如,“EP-A”102和“EP-B”104)通常可以指双向进程间通信流的始发节点(“源端点”)或终止节点(“目的地端点”)。在实践中,端点可以是物理计算设备(例如,物理服务器、物理主机)、由物理计算设备支持的虚拟化计算实例等。虚拟化计算实例可以表示工作负载、虚拟机、可寻址数据计算节点、隔离的用户空间实例等。在实践中,可以使用任何合适的技术来提供隔离的用户空间实例,包括但不限于硬件虚拟化。其他虚拟化计算实例可以包括容器(例如,在主机操作系统顶部运行而无需超级管理程序或单独的操作系统,诸如Docker等;或实现为操作系统级虚拟化)、虚拟专用服务器等。虚拟机也可以是完整计算环境,包含物理计算系统的硬件组件和软件组件的虚拟等价物。术语“超级管理程序”通常可以指支持多个虚拟化计算实例的执行的软件层或组件,包括支持诸如Docker等命名空间容器的系统级软件。
术语“交换机(switch)”(例如,“A1”130、“S1”140、“S2”150和“A2”160)通常可以指被配置为接收并转发分组的任何合适的网络元件,其可以是层-3(layer-3)路由器、层-2(layer-2)交换机、网关、网桥等。依赖于网络拓扑,交换机可以是ToR交换机、聚合交换机、主干交换机等。虽然为简单起见图1中示出了两个备用路径,但是路径的数目依赖于互连交换机的数量和数据中心网络100的拓扑,诸如多根拓扑(例如,叶脊(leaf-spine)拓扑、胖树(fat-tree)拓扑等)。进一步,可能存在将“VTEP-A”110连接到“VTEP-B”120的附加交换机,而不是图1中所示的交换机。
尽管本文描述的概念可以适用于其他网络模型,但是术语“层-2”通常指数据链路层(例如,媒体访问控制(Media Access Control,MAC)或以太网层),“层-3”指网络层(例如,互联网协议(Internet Protocol,IP)层),“层-4”指开放系统互连(Open SystemInterconnection,OSI)模型中的传输层(例如,传输控制协议(Transmission ControlProtocol,TCP)层)。术语“分组”通常可以指可以一起传输的一组比特,并且可以是另一种形式,诸如“帧”、“消息”、“部分”等。
为了提供“VTEP-A”110和“VTEP-B”120之间的连接,可以使用任何合适的协议(例如,通用网络虚拟化封装(Generic Network Virtualization Encapsulation,GENEVE)、无状态传输隧道(Stateless Transport Tunneling,STT)或虚拟扩展局域网(Virtualextension Local Area Network,VXLAN))在VTEP之间建立“隧道”(为简单起见未示出)。术语“隧道”通常可以指一对VTEP之间的端到端双向通信路径。在这种情况下,在从“EP-A”102转发数据分组(参见图1中的170)之前,“VTEP-A”110执行封装以生成经封装分组(参见图1中的172)。
更详细地,每个数据分组170包括“内报头信息(inner header information)”(在图1中标记为“I”)和作为有效载荷的应用程序数据。内报头信息可以包括层-2报头、层-3报头、层-4报头等。在封装之后,每个经封装分组172包括外报头信息(在图1中标记为“0”)和作为有效载荷的数据分组170。“外报头信息”(也称为“外隧道报头”)可以包括外层-2报头,外层-3报头、外层-4报头等。执行封装以使得构造覆盖(例如,由130-160形成)仅需要基于外隧道报头在一对VTEP之间执行分组转发。
在实践中,流量负载可能在数据中心网络100中的不同路径之间不均匀地分散,这可能导致拥塞和性能降低。传统上,等成本多径路由(equal cost multipath routing,ECMP)通常用作数据平面负载均衡机制,以相等的成本(例如,相等的跳数)在多个路径上均匀地分散流量。ECMP交换机使用简单的基于散列的负载均衡方案,将每个新的流量流随机分配给可用路径中的一个。ECMP通常在定制硅(例如,专用集成电路(application-specific integrated circuit,ASIC))中实现,其缺乏更新负载均衡方案的灵活性。进一步,ECMP与拥塞无关,并且不能防止导致性能下降的路径超额订阅。
例如,在图1中,连接不同交换机对的链路具有不同的拥塞级别,如使用用于分组从“EP-A”102传输到“EP-B”104的队列占用水平(参见方括号中的180-186)所指示的。沿着经由“S1”140的第一路径,队列占用水平为40%(见180)和50%(见182)。沿着经由“S2”150的第二路径,队列占用水平为30%(见184)和80%(见186)。由于ECMP没有考虑不同的拥塞级别,因此将长时间运行的流分配给经由“S2”150的第二路径是可能的,其中队列占用水平为80%(参见186)的第二路径出现拥塞。
通常,控制平面负载均衡机制也已用于解决ECMP的缺点。在这种情况下,不是随机选择路径,而是在数据中心网络100中部署中央控制器以从“A1”130、“S1”140、“S2”150和“A2”160收集统计数据并将转发规则推送到“A1”130、“S1”140、“S2”150和“A2”160,以实现控制平面负载均衡。然而,由于需要中央控制器,由于高控制环路延迟并且不能处理高度易失性的流量,控制平面机制相对较慢。
通常,基于主机的方法也已被用于解决ECMP的缺点。例如,称为多路径TCP(MPTCP)的传输控制协议(TCP)的修改版本可用于在端点之间建立多个子流以在不同路径上分割流量。然而,基于主机的方法通常需要改变所有端点,诸如在MPTCP的情况下修改“EP-A”102和“EP-B”104的TCP/IP栈。这种变化通常具有挑战性(并且在某些情况下是不可能的),尤其是当“EP-A”102和“EP-B”104运行不同的操作系统或由不同的实体控制时。
拥塞感知负载均衡
根据本公开的示例,拥塞感知负载均衡方法可以由“VTEP-A”110以完全无视相关联的“EP-A”102的方式实现。与上面讨论的常规方法不同,可以实现本公开的示例而无需修改“EP-A”102以实现MPTCP,或修改中间交换机130-160以实现新的负载均衡方案。进一步,与控制平面负载均衡机制不同,不必部署中央控制器以执行拥塞监控和推送转发规则中间交换机130-160。
更详细地,图2是用于源VTEP 110在数据中心网络100中执行拥塞感知负载均衡的示例性过程200的流程图。示例性过程200可以包括由一个或更多方框(例如,205至240)所示的一个或更多操作、功能或动作。可以依赖于期望的实现而将各个方框组合成更少的方框、划分成附加的方框,和/或去除方框。
在下文中,“VTEP-A”110将用作示例性源VTEP;“VTEP-B”120作为示例性目的地VTEP;“S1”140和“S2”150作为示例性中间交换机;“EP-A”102作为“源端点”;以及“EP-B”104作为“目的地端点”。尽管使用队列占用水平作为指示图1中的数据中心网络100的拥塞的一个示例,但是应当理解的是,可以使用任何其他合适的拥塞指标,诸如链路利用级别、往返时间(round trip time,RTT)等。
在图2中的205处,“VTEP-A”110获知与由将“VTEP-A”110与“VTEP-B”120相连接的中间交换机130-160提供的多个路径相关联的拥塞状态信息(参见图1中的190)。可以基于表示来自“VTEP-B”120的目的地到源反馈信息的第一分组(参见图1中的188)来获知拥塞状态信息。在图2中的210处,“VTEP-A”110接收由“EP-A”102发送并且目的地为“EP-B”104的第二(数据)分组170。例如,第二分组170可以包括从在“EP-A”102上运行的应用程序到在“EP-B”104上运行的另一个应用程序的应用程序数据。每个第二分组170通常包括与“EP-A”102和“EP-B”104之间的进程间通信相关联的内报头信息(在图1中标记为“I”)。
在图2中的220处,“VTEP-A”110从多个路径中选择特定路径(也称为“选择路径”)。例如,在图1中,基于与多个路径相关联的拥塞状态信息,“VTEP-A”110可以经由“A1”130、“S1”140和“A2”160选择第一路径。在图2中的230处,“VTEP-A”110通过用(外)报头信息封装第二分组170中的每一个来生成经封装的第二分组172,该(外)报头信息包括与在220处选择的路径相关联的一组元组(tuple)。在图2中的240处,“VTEP-A”110将经封装的第二分组172发送到目的地“EP-B”104,使得基于该组元组经由所选路径转发经封装的第二分组172。
如将使用图3进一步解释的,“VTEP-A”110可以依赖于拥塞状态信息(参见图1中的190),其将不同的外部源端口号(参见source_PN 192)与相应的路径(参见path_ID 194)和指示拥塞的标志(参见congestion_flag196)相关联。例如,在执行分组转发之前,“VTEP-A”110可以执行路径获知以获知source_PN 192和path_ID 194之间的映射。对于经由“S1”140的第一路径,source_PN=SP1并且path_ID=P1。对于经由“S2”150的第二路径,source_PN=SP2并且path_ID=P2。
如将使用图3进一步解释的,“VTEP-A”110可以获知不同对的source_PN 192和congestion_flag196之间的映射。在一个示例中,“VTEP-A”110可以依赖于现有能力中间交换机130-160,诸如显式拥塞通知(Explicit Congestion Notification,ECN),其辅助数据中心网络100中的拥塞状态信息的端到端通知等。在这种情况下,中间交换机130-160执行分组标记作为拥塞通知的一种形式,而不是丢弃分组,用于向“VTEP-B”120通知与特定路径相关联的存在(present)或待定(pending)拥塞。“VTEP-B”120随后向“VTEP-A”110报告任何拥塞通知(参见图1中的188)。除了ECN之外,可以使用任何其他合适的方法来获知拥塞状态信息。例如,如将使用图4A和图4B进一步描述的,“VTEP-A”110可以测量“VTEP-A”110和“VTEP-B”120之间的RTT。
在图1中的示例中,每个经封装的第二分组172包括外报头信息,其包括与所选路径相关联的一组元组。具体地,每个经封装的第二分组172包括外报头信息(标记为“O”),诸如外层-2报头、外层-3报头和外层-4报头。该组元组可以包括源端口号、目的地端口号、源IP地址、目的地IP地址和协议。对于经由“S1”140的第一路径(即,path_ID=P1),外层-4报头可以包括具有值source_PN=SP1的源端口号。设置源端口号,使得经封装的分组172沿着所选路径经由“A1”130、“S1”140和“A2”160转发。在目的地“VTEP-B”120处,执行解封装以移除外报头信息、发送到“EP-B”104的分组174。
使用示例性过程200,“VTEP-A”110可以考虑与不同路径相关联的拥塞状态信息190,在数据中心网络100中的不同路径上分配虚拟网络流量。“VTEP-A”110可以在每次想要在不同路径上发送经封装的第二分组172时选择不同的外部源端口号。由于连接“VTEP-A”110和“VTEP-B”120的中间交换机130-160将基于外报头信息执行负载均衡,因此外层-4报头中的外部源端口号可以用作熵(entropy)以利用数据中心网络100中的多个路径(例如,等成本路径)。
拥塞状态信息
图3是根据第一示例的用于源VTEP 110获知数据中心网络100中的拥塞状态信息190的第一示例过程300的流程图。示例过程300可以包括由一个或更多方框(例如,310到365)所示的一个或更多操作、功能或动作。可以依赖于期望的实现而将各个方框组合成更少的方框、划分成附加的方框,和/或消除方框。使用图1中的示例,示例过程300可以由“VTEP-A”110执行。
在图3中的310处,“VTEP-A”110获知多对source_PN 192和path_ID 194之间的映射或关联。例如,在图1中,source_PN 192的不同值可以导致数据中心网络100中的不同的、非重叠的ECMP路径。该映射表示不同路径的先验知识,“VTEP-A”110可以从中选择用于分组转发。当ECMP散列应用于包括source_PN 192的特定值的一组元组时,结果是由path_ID194标识的关联路径。
在实践中,“VTEP-A”110可以实现后台守护进程(例如,在Paris路由跟踪(traceroute)之后建模的),以将周期性探测分组发送到数据中心网络100中的所有其他VTEP以收集关于每个路径上遇到的所有接口IP的“路由跟踪”样式信息。“VTEP-A”110可以旋转每个探测分组的外报头信息中的外部源端口号,以为每个端口号收集路径跟踪。然后,“VTEP-A”110更新拥塞状态信息190,以在每次相应的探测路径跟踪与目前收集的跟踪不同时添加或更新source_PN 192。
图3中的方框315至360涉及“VTEP-A”110获知拥塞状态信息190,其将path_ID 194识别的路径与指示沿该路径的拥塞的congestion_flag 196相关联。具体地,在图3中的315和320处,“VTEP-A”110利用包括source_PN 192的特定值的外隧道报头封装分组,并发送经封装的分组。
在图3的示例中,“VTEP-A”110可以依赖于现有交换机的拥塞通知能力,诸如ECN标记以指示存在或待定拥塞等。ECN的详细信息可以在因特网工程任务组(InternetEngineering Task Force,IETF)征求意见编号3168,并且标题为“向IP添加显式拥塞通知(ECN)”中找到,其通过引用整体并入本文中。尽管作为示例描述了ECN,但是应该理解的是,可以使用任何其他合适的分组标记方法。
在图3中的325、330、335和340处,响应于从“VTEP-A”110接收到经封装的分组,交换机(例如,“S1”140、“S2”150)可以执行ECN标记,以在转发经封装的分组之前在该交换机上标记拥塞。在这种情况下,该交换机被称为启用ECN的交换机,其能够修改经封装的分组的报头信息(例如,在TCP报头的保留字段中)作为拥塞通知的形式。
例如,在图1中,当“S2”150处的队列占用水平(例如,80%)超过预定阈值(例如,TQ=60%)时,“S2”150标记从“VTEP-A”110接收的分组,以向“VTEP-B”120通知拥塞,从而指示第二路径是拥塞路径。另一方面,“S1”140不必执行任何分组标记,因为相关联的队列占用水平(例如,50%)低于阈值,从而指示第一路径是非拥塞路径。
在图3中的345和350处,目的地“VTEP-B”120接收经封装的分组并且将外报头信息中的外部源端口号与任何拥塞通知(例如,ECN标记)之间的映射报告给源“VTEP-A”110(还参见图1中的188)。在图3中的355和360处,“VTEP-A”110更新source_PN 192与相关联的congestion_flag 196之间的映射(即,标记信息)。例如,在图1中,对于经由“S1”140的第一路径,“VTEP-A”110确定source_PN=SP1的congestion_flag=假(false),并且对于经由“S2”150的第二路径,确定source_PN=SP1的congestion_flag=真(true)。
congestion_flag可以用在加权算法中,加权算法影响其相关路径的选择的可能性。在负载均衡过程开始时,对于由图3中的310处的路径获知功能发现的所有等成本路径,“VTEP-A”110可以以相等的权重开始。随后,在图3中的365处,基于congestion_flag调整路径权重(参见图1中的weight 198)。例如,响应于确定congestion_flag=假(即,清除),增加与经由“S1”140的第一路径相关联的weight=w1以增加其选择的可能性。另一方面,响应于确定congestion_flag=真(即,设置),减小与经由“S2”150的第二路径相关联的weight=w2以降低其选择的可能性。
可以用于指示拥塞的另一个度量是RTT,可以测量并且针对每个路径主动地跟踪RTT。使用图4A描述了一个示例,图4A是用于源VTEP 110以获知数据中心网络100中的拥塞状态信息的第二示例性过程400的流程图。示例性过程400可以包括由一个或更多方框(诸如410-455)所示的一个或更多操作、功能或动作。可以依赖于期望的实现而将各个方框组合成更少的方框、划分成附加的方框,和/或消除方框。
在图4A中的410、415和420处,“VTEP-A”110经由相关联的交换机140/150周期性地在每个路径上发送探测分组,其中每个探测分组标识source_PN和发送(Tx)时间戳。在图4A中的425、430和435处,“VTEP-B”120通过发送确认(ACK)分组来答复每个探测分组,该确认(ACK)分组还经由交换机140/150识别source_PN和Tx时间戳。在图4A中的440和445处,响应于在特定接收时间接收到ACK分组,“VTEP-A”110可以基于接收时间和Tx时间戳之间的差异确定RTT。在图4A中的450和455处,“VTEP-A”110将RTT与source_PN相关联,并调整与路径相关联的权重。
图4B是示出使用图4A中的示例获知的示例性拥塞状态信息460的示意图。例如,经由“S1”140的第一路径与source_PN=SP1(参见462)、path_ID=P1(参见464)、RTT=R1(参见466)和weight=w1(参见468)相关联。经由“S2”150的第二路径与source_PN=SP2、path_ID=P2、RTT=R2和weight=w2相关联。在图1的示例中,第二路径具有比第一路径更高的拥塞级别,R2应该大于R1。在这种情况下,将w2调整为小于w1,以降低选择第二路径的可能性。在实践中,执行时间戳和确认越接近,RTT就越准确地反映路径的实际网络延迟,因为它不包括由发送器和接收器处的软件栈引入的延迟。
数据分组处理
根据本公开的示例,可以在小流(flowlet)的粒度处执行负载均衡,以避免或改善与诸如TCP的传输层协议相关联的分组重新排序问题。这可以通过将分组流分成称为“小流”的多个较小组来实现。如本文所使用的,术语“小流”通常可以指流中的一组分组或一阵(a burst of)分组。
图5是用于虚拟隧道端点110在数据中心网络100中执行数据分组处理的示例性过程500的流程图。示例性过程500可以包括由一个或更多方框(诸如510-560)所示的一个或更多操作、功能或动作。可以依赖于期望的实现而将各个方框组合成更少的方框、划分成附加的方框,和/或消除方框。
在510和515处,响应于从“EP-A”102接收到数据分组170,“VTEP-A”110确定数据分组170是属于新的小流还是属于当前小流。例如,每当在相同流(即,分组间间隙)内的两个连续分组的到达之间的时间间隔超过预定阈值(例如,Tflowlet秒;参见515)时,可以检测到新的小流。所有未超过阈值的后续分组都被视为相同小流的部分。下面讨论这两种情况。
(a)在图5的520处,当检测到新的小流(即,检测到分组间间隙>Tflowlet或流的第一分组)时,“VTEP-A”110将新的flowlet_ID(例如,“F1”)分配给数据分组170。在图5中的525处,基于此时的拥塞状态信息190/460,为新的小流(参见525)选择由path_ID(例如,“P1”)标识的路径。在图5中的530处,确定与所选路径相关联的source_PN、存储与所选路径相关联的flowlet_ID与source_PN(例如,“SP1”)之间的关联。“VTEP-A”110还存储flowlet_time以记录接收小流的最新数据分组170的时间。
(b)在图5中的550和555处,当检测到现有小流的数据分组170时(即,分组间间隙=当前时间–flowlet_time≤Tflowlet)时,“VTEP-A”110检索当前flowlet_ID(例如,“F1”)和相关联的source_PN(例如,“SP1”)。类似地,在图5中的560处,“VTEP-A”110还存储flowlet_time以记录接收到小流的最新数据分组170的时间。
在(a)和(b)两种情况中,示例性过程500在图5中的535和540处继续,其中“VTEP-A”110用外隧道报头封装数据分组170,该外隧道报头被配置为包括具有与flowlet_ID(例如,“F1”)相关联的source_PN(例如,“SP1”)的值的外部源端口号,并且发送经封装的数据分组172。外隧道报头还包括与“VTEP-A”110相关联的源IP地址和与“VTEP-B”120相关联的目的地IP地址。在目的地,在将分组转发到“EP-B”104之前,“VTEP-B”120移除外隧道报头。
应当理解的是,当在图4中的515处超过分组间间隙时,对于属于另一个小流(诸如flowlet_ID=“F2”)的后续数据分组170可以重复上述操作。在这种情况下,拥塞状态信息190/460可能已经改变,并且现在可以选择经由“S2”150(即,path_ID=P2)的第二路径而不是经由“S1”140的第一路径。在这种情况下,相关联的source_PN=SP2包括在外报头信息中,使得经封装的数据分组172由“A1”130、“S2”150和“A2”160沿着第二路径转发到“VTEP-B”120。
使用本公开的示例,“VTEP-A”110记住新的小流的flowlet_ID,并且将相关联的source_PN重新用于相同小流的分组。在实践中,阈值Tflowlet可以基于网络中的估计的RTT来设置(例如,以RTT的顺序)。小流之间的大的分组间间隙确保当多个小流(在技术上是相同流的部分)采用不同的路径时,所得到的分组重新排序是最小的。进一步,“VTEP-A”110可以为每个新的小流分配具有最小拥塞的外部源端口号,以确保它们采用所选路径。这反过来使所有活动路径上的队列始终保持低水平,从而为工作负载带来更好的吞吐量和延迟。
通过将“VTEP-A”110配置成将网络流以完全无视访客虚拟机的方式分割成多个未拥塞的路径,来以无视最终用户访客虚拟机(例如,作为“EP-A”102和“EP-B”104)的方式实现本公开的示例。在一个示例中,可以使用源虚拟交换机(例如,作为“VTEP-A”110)和目的地虚拟交换机(例如,作为“VTEP-B 120”)。在这种情况下,流可以被任意地划分成小流,而不是依赖于小流之间的空闲间隙。
例如,每个TCP分割卸载(TSO)部分可以被视为小流。如果由于采用不同的路径,小流在目的地虚拟交换机处无序到达,则目的地虚拟交换机可以在将小流传送到目的地端点(例如,访客虚拟机)之前对小流重新排序。这允许目的地虚拟交换机隐藏从目的地端点的目的地协议栈(例如,TCP/IP堆栈)的无序到达,从而防止目的地协议栈由于无序传送而在源端点处减慢源协议栈。
可以在超级管理程序的虚拟交换机中部署本公开的示例,从而导致从流量第一入口点进行智能路径选择。例如,从虚拟交换机开始可能有多个ECMP路径,每个路径使用不同的物理网卡(NIC)。在这种情况下,可以使用包括处理器和存储一组指令的非暂时性计算机可读存储介质的主机来实现本公开的示例。响应于处理器的执行,该组指令使处理器根据图1至图5中的示例实现源VTEP(例如,在由主机支持的虚拟交换机处的“VTEP-A”110),以在数据中心网络100中执行拥塞感知负载均衡。
在一个示例中,由主机实现的源VTEP可以基于来自目的地VTEP的第一分组来获知与由将源VTEP与目的地VTEP相连接的相应的多个中间交换机提供的多个路径相关联的拥塞状态信息。此外,响应于接收到由源端点发送并且目的地为与目的地VTEP相关联的目的地端点的第二分组,源VTEP可以基于拥塞状态信息从多个路径中选择特定路径,通过用包括与特定路径相关联的一组元组的报头信息封装第二分组中的每一个,来生成经封装的第二分组,并将经封装的第二分组发送到目的地端点,使得基于该组元组经由特定路径转发经封装的第二分组。
在所有物理NIC连接到相同的层-3下一跳并且路径分集(diversity)开始超出第一跳交换机(例如,ToR交换机)的情况下,本公开的示例可以在NIC驱动器/硬件中或以比在虚拟交换机软件中更快的速度在第一跳交换机上实现。与需要高级交换机架构的传统方法相比,本公开的示例可以在边缘超级管理程序中(例如,完全在软件中)执行并且可以扩展为源和目的地之间的任何数量的跳。在这种情况下,示例(第一跳)交换机可以用于实现源VTEP(例如,“VTEP-A”110),以根据图1到图5中的示例在数据中心网络100中执行拥塞感知负载均衡。交换机可以包括任何合适的交换机逻辑,诸如硬件逻辑(例如,硬件电路)、可编程逻辑、它们的组合等。
在一个示例中,交换机可以包括一个或更多第一端口、一个或更多第二端口和交换机逻辑。一个或更多第一端口可用于经由由将源VTEP与目的地VTEP相连接的相应的多个中间交换机提供的多个路径,从连接到源VTEP的目的地VTEP接收第一分组。第二端口可以用于接收由源端点发送并且目的地为与目的地VTEP相关联的目的地端点的第二分组。交换机逻辑可以被配置为基于第一分组来获知与多个路径相关联的拥塞状态信息。响应于接收到第二分组,交换机逻辑可以被配置为基于拥塞状态信息从多个路径中选择特定路径,通过利用包括与特定路径相关联的一组元组的报头信息封装第二分组中的每一个来生成经封装的第二分组,并将经封装的第二分组发送到目的地端点,使得经封装的第二分组基于该组元组经由特定路径转发。
上面介绍的技术可以在专用硬连线电路中、在软件和/或固件中结合可编程电路或其组合中实现。专用硬连线电路可以是例如一个或更多专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)、现场可编程门阵列(field-programmable gate array,FPGA),可编程交换机架构等形式。术语“处理器”应广义地解释为包括处理单元、ASIC、逻辑单元或可编程门阵列等。
前面的详细描述通过使用框图、流程图和/或示例阐述了设备和/或过程的各种实施例。在这样的框图、流程图和/或示例包含一个或更多功能和/或操作的情况下,本领域技术人员将理解的是,可以通过各种硬件、软件、固件或其任何组合,单独地和/或共同地实现这样的框图、流程图或示例内的每个功能和/或操作。
本领域技术人员将认识到的是,本文公开的实施例的一些方面的全部或部分可以等效地在集成电路中实现,作为在一个或更多计算机上运行的一个或更多计算机程序(例如,作为在一个或更多计算系统上运行的一个或更多程序)、作为在一个或更多处理器上运行的一个或更多程序(例如,作为在一个或更多微处理器上运行的一个或更多程序)、作为固件、或作为虚拟上它们的任何组合,并且根据本公开,设计电路和/或写入用于软件和/或固件的代码将在本领域技术人员的技能范围内。
软件和/或实现这里介绍的技术可以存储在非暂时性计算机可读存储介质上,并且可以由一个或更多通用或专用可编程微处理器执行。本文使用的术语“计算机可读存储介质”包括以机器(例如,计算机、网络设备、个人数字助理(personal digital assistant,PDA)、移动设备、制造工具、具有一组一个或更多处理器的任何设备等)可访问的形式提供(即,存储和/或传输)信息的任何机制。计算机可读存储介质可以包括可记录/不可记录介质(例如,只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁盘或光存储介质、闪存设备等)。
附图仅是示例的图示,其中附图中示出的元件或过程不一定是实现本公开所必需的。本领域技术人员将理解的是,示例中的元件可以布置在所描述的示例中的设备中,或者可以替代地位于与示例中的设备不同的一个或更多设备中。所描述的示例中的元件可以组合成一个模块或者进一步划分成多个子元件。
Claims (15)
1.一种用于源虚拟隧道端点VTEP在数据中心网络中执行拥塞感知负载均衡的方法,所述数据中心网络包括所述源VTEP、目的地VTEP、源端点、目的地端点和多个中间交换机,所述方法包括:
由所述源VTEP基于来自所述目的地VTEP的第一分组获知与由将所述源VTEP与所述目的地VTEP相连接的相应的多个中间交换机提供的多个路径相关联的拥塞状态信息,其中所述拥塞状态信息包括所述多个路径、与所述多个路径相对应的多个外部源端口号和所述多个路径的拥塞指标之间的映射;
由所述源VTEP接收由所述源端点发送并且目的地为与所述目的地VTEP相关联的所述目的地端点的第二分组;
由所述源VTEP基于所述拥塞状态信息从所述多个路径选择特定路径;
由所述源VTEP通过利用报头信息封装所述第二分组中的每一个来生成经封装的第二分组,所述报头信息包括与所述特定路径相关联的一组元组,其中所述封装所述第二分组中的每一个包括:
从所述多个外部源端口号确定与所述特定路径相关联的特定外部源端口号;以及
配置所述第二分组中的每一个的所述报头信息中的所述一组元组,以包括所述特定外部源端口号;以及
由所述源VTEP将所述经封装的第二分组发送到所述目的地端点,使得所述经封装的第二分组基于所述一组元组经由所述特定路径转发。
2.根据权利要求1所述的方法,其中,获知所述拥塞状态信息包括:
基于来自所述目的地VTEP的特定的第一分组确定与所述特定路径相关联的拥塞标志,其中所述特定的第一分组包括来自所述多个中间交换机中的至少一个的拥塞通知,以指示所述特定路径是否拥塞。
3.根据权利要求1所述的方法,其中,获知所述拥塞状态信息包括:
基于来自所述目的地VTEP的特定的第一分组的接收时间以及由所述源VTEP发送的用于触发所述特定的第一分组的探测分组的发送时间,来确定与所述特定路径相关联的往返时间。
4.根据权利要求1所述的方法,其中,获知所述拥塞状态信息包括:
在选择所述特定路径之前,基于来自所述目的地VTEP的特定的第一分组,确定与所述特定路径相关联的权重,以增加或减少其选择的可能性。
5.根据权利要求1所述的方法,
其中,所述方法进一步包括:
基于当前第二分组与目的地为所述目的地端点的先前第二分组之间的分组间间隙,将作为所述当前第二分组的所述第二分组中的每一个指派给小流;以及
存储将所述小流与所述特定外部源端口号相关联的小流信息,所述特定外部源端口号与所述特定路径相关联。
6.一种非暂时性计算机可读存储介质,包括一组指令,所述指令响应于由主机的处理器执行,使得所述处理器实现源虚拟隧道端点VTEP,以在数据中心网络中执行拥塞感知负载均衡的方法,所述数据中心网络包括源VTEP、目的地VTEP、源端点、目的地端点和多个中间交换机,其中所述主机支持所述源VTEP,并且所述方法包括:
由所述源VTEP基于来自所述目的地VTEP的第一分组获知与由将所述源VTEP与所述目的地VTEP相连接的相应的多个中间交换机提供的多个路径相关联的拥塞状态信息,其中所述拥塞状态信息包括所述多个路径、与所述多个路径相对应的多个外部源端口号和所述多个路径的拥塞指标之间的映射;
由所述源VTEP接收由所述源端点发送并且目的地为与所述目的地VTEP相关联的所述目的地端点的第二分组;
由所述源VTEP基于所述拥塞状态信息从所述多个路径选择特定路径;
由所述源VTEP通过利用报头信息封装所述第二分组中的每一个来生成经封装的第二分组,所述报头信息包括与所述特定路径相关联的一组元组,其中所述封装所述第二分组中的每一个包括:
从所述多个外部源端口号确定与所述特定路径相关联的特定外部源端口号;以及
配置所述第二分组中的每一个的所述报头信息中的所述一组元组,以包括所述特定外部源端口号;以及
由所述源VTEP将所述经封装的第二分组发送到所述目的地端点,使得所述经封装的第二分组基于所述一组元组经由所述特定路径转发。
7.根据权利要求6所述的非暂时性计算机可读存储介质,其中,获知所述拥塞状态信息包括:
基于来自所述目的地VTEP的特定的第一分组确定与所述特定路径相关联的拥塞标志,其中所述特定的第一分组包括来自所述多个中间交换机中的至少一个的拥塞通知,以指示所述特定路径是否拥塞。
8.根据权利要求6所述的非暂时性计算机可读存储介质,其中,获知所述拥塞状态信息包括:
基于来自所述目的地VTEP的特定的第一分组的接收时间以及由所述源VTEP发送的用于触发所述特定的第一分组的探测分组的发送时间,来确定与所述特定路径相关联的往返时间。
9.根据权利要求6所述的非暂时性计算机可读存储介质,其中,获知所述拥塞状态信息包括:
在选择所述特定路径之前,基于来自所述目的地VTEP的特定的第一分组,确定与所述特定路径相关联的权重,以增加或减少其选择的可能性。
10.根据权利要求6所述的非暂时性计算机可读存储介质,
其中,所述方法进一步包括:
基于当前第二分组与目的地为所述目的地端点的先前第二分组之间的分组间间隙,将作为所述当前第二分组的所述第二分组中的每一个指派给小流;以及
存储将所述小流与所述特定外部源端口号相关联的小流信息,所述特定外部源端口号与所述特定路径相关联。
11.一种交换机,其被配置为实现源虚拟隧道端点VTEP,以在数据中心网络中执行拥塞感知负载均衡,所述数据中心网络包括所述源VTEP、目的地VTEP、源端点、目的地端点和多个中间交换机,其中所述交换机包括:
一个或更多第一端口,用于从所述目的地VTEP接收第一分组,所述目的地VTEP经由由将所述源VTEP与所述目的地VTEP相连接的相应的多个中间交换机提供的多个路径连接到所述源VTEP;
第二端口,用于接收由所述源端点发送并且目的地为与所述目的地VTEP相关联的所述目的地端点的第二分组;以及
所述交换机,其被配置为:
基于所述第一分组获知与所述多个路径关联的拥塞状态信息,其中所述拥塞状态信息包括所述多个路径、与所述多个路径相对应的多个外部源端口号和所述多个路径的拥塞指标之间的映射;
响应于接收到所述第二分组,基于所述拥塞状态信息从所述多个路径中选择特定路径;
通过利用报头信息封装所述第二分组中的每一个来生成经封装的第二分组,所述报头信息包括与所述特定路径相关联的一组元组,其中所述封装所述第二分组中的每一个包括:
从所述多个外部源端口号确定与所述特定路径相关联的特定外部源端口号;以及
配置所述第二分组中的每一个的所述报头信息中的所述一组元组,以包括所述特定外部源端口号;以及
将所述经封装的第二分组发送到所述目的地端点,使得所述经封装的第二分组基于所述一组元组经由所述特定路径转发。
12.根据权利要求11所述的交换机,其中,所述交换机被配置为通过基于来自所述目的地VTEP的特定的第一分组确定与所述特定路径相关联的拥塞标志,来获知所述拥塞状态信息,其中,所述特定的第一分组包括来自所述多个中间交换机中的至少一个的拥塞通知,以指示所述特定路径是否拥塞。
13.根据权利要求11所述的交换机,其中,所述交换机被配置为通过基于来自所述目的地VTEP的特定的第一分组的接收时间以及由所述源VTEP发送的用于触发所述特定的第一分组的探测分组的发送时间确定与所述特定路径相关联的往返时间,来获知所述拥塞状态信息。
14.根据权利要求11所述的交换机,其中,所述交换机被配置为:在选择所述特定路径之前,通过基于来自所述目的地VTEP的特定的第一分组确定与所述特定路径相关联的权重以增加或减少其选择的可能性,来获知所述拥塞状态信息。
15.根据权利要求11所述的交换机,其中,所述交换机
进一步被配置为:
基于当前第二分组与目的地为所述目的地端点的先前第二分组之间的分组间间隙,将作为所述当前第二分组的所述第二分组的每一个指派给小流;以及
存储将所述小流与所述特定外部源端口号相关联的小流信息,所述特定外部源端口号与所述特定路径相关联。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662321730P | 2016-04-12 | 2016-04-12 | |
US62/321,730 | 2016-04-12 | ||
US15/485,089 | 2017-04-11 | ||
US15/485,089 US10320681B2 (en) | 2016-04-12 | 2017-04-11 | Virtual tunnel endpoints for congestion-aware load balancing |
PCT/US2017/027190 WO2017180731A1 (en) | 2016-04-12 | 2017-04-12 | Virtual tunnel endpoints for congestion-aware load balancing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109314666A CN109314666A (zh) | 2019-02-05 |
CN109314666B true CN109314666B (zh) | 2021-01-08 |
Family
ID=60000017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780035632.3A Active CN109314666B (zh) | 2016-04-12 | 2017-04-12 | 用于执行拥塞感知负载均衡的方法和虚拟隧道端点 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10320681B2 (zh) |
EP (1) | EP3437264B1 (zh) |
JP (1) | JP6781266B2 (zh) |
CN (1) | CN109314666B (zh) |
WO (1) | WO2017180731A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11889346B2 (en) | 2022-03-21 | 2024-01-30 | Vmware, Inc. | Quality-aware user data forwarding in mobile communications systems |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9225638B2 (en) | 2013-05-09 | 2015-12-29 | Vmware, Inc. | Method and system for service switching using service tags |
US10110684B1 (en) | 2013-08-15 | 2018-10-23 | Avi Networks | Transparent network service migration across service devices |
US9843520B1 (en) * | 2013-08-15 | 2017-12-12 | Avi Networks | Transparent network-services elastic scale-out |
US9825810B2 (en) | 2014-09-30 | 2017-11-21 | Nicira, Inc. | Method and apparatus for distributing load among a plurality of service nodes |
US10257095B2 (en) | 2014-09-30 | 2019-04-09 | Nicira, Inc. | Dynamically adjusting load balancing |
US11496606B2 (en) | 2014-09-30 | 2022-11-08 | Nicira, Inc. | Sticky service sessions in a datacenter |
US10129180B2 (en) | 2015-01-30 | 2018-11-13 | Nicira, Inc. | Transit logical switch within logical router |
US11283697B1 (en) | 2015-03-24 | 2022-03-22 | Vmware, Inc. | Scalable real time metrics management |
US10609091B2 (en) | 2015-04-03 | 2020-03-31 | Nicira, Inc. | Method, apparatus, and system for implementing a content switch |
US9942131B2 (en) * | 2015-07-29 | 2018-04-10 | International Business Machines Corporation | Multipathing using flow tunneling through bound overlay virtual machines |
US10320681B2 (en) | 2016-04-12 | 2019-06-11 | Nicira, Inc. | Virtual tunnel endpoints for congestion-aware load balancing |
US11777853B2 (en) | 2016-04-12 | 2023-10-03 | Nicira, Inc. | Congestion-aware load balancing in data center networks |
CN107493238A (zh) * | 2016-06-13 | 2017-12-19 | 华为技术有限公司 | 一种网络拥塞控制方法、设备及系统 |
CN107634912B (zh) * | 2016-07-19 | 2020-04-28 | 华为技术有限公司 | 负载均衡方法、装置及设备 |
US10447591B2 (en) | 2016-08-30 | 2019-10-15 | Oracle International Corporation | Executing multiple virtual private network (VPN) endpoints associated with an endpoint pool address |
US10412005B2 (en) * | 2016-09-29 | 2019-09-10 | International Business Machines Corporation | Exploiting underlay network link redundancy for overlay networks |
JP6801409B2 (ja) * | 2016-12-02 | 2020-12-16 | 富士通株式会社 | 経路探索システム、経路探索方法及び経路探索プログラム |
CN108243111B (zh) * | 2016-12-27 | 2021-08-27 | 华为技术有限公司 | 确定传输路径的方法和装置 |
US10447601B2 (en) * | 2017-10-20 | 2019-10-15 | Hewlett Packard Enterprise Development Lp | Leaf-to-spine uplink bandwidth advertisement to leaf-connected servers |
US10797966B2 (en) | 2017-10-29 | 2020-10-06 | Nicira, Inc. | Service operation chaining |
US11012420B2 (en) | 2017-11-15 | 2021-05-18 | Nicira, Inc. | Third-party service chaining using packet encapsulation in a flow-based forwarding element |
CN109861925B (zh) * | 2017-11-30 | 2021-12-21 | 华为技术有限公司 | 数据传输方法、相关装置及网络 |
CN109861923B (zh) * | 2017-11-30 | 2022-05-17 | 华为技术有限公司 | 一种数据调度方法及tor交换机 |
CN109691039B (zh) * | 2018-01-16 | 2020-04-28 | 华为技术有限公司 | 一种报文传输的方法及装置 |
US10924352B2 (en) | 2018-01-17 | 2021-02-16 | Nicira, Inc. | Data center network topology discovery |
US10659252B2 (en) * | 2018-01-26 | 2020-05-19 | Nicira, Inc | Specifying and utilizing paths through a network |
US10797910B2 (en) | 2018-01-26 | 2020-10-06 | Nicira, Inc. | Specifying and utilizing paths through a network |
US20190297017A1 (en) * | 2018-03-23 | 2019-09-26 | Cisco Technology, Inc. | Managing network congestion using segment routing |
US10728174B2 (en) | 2018-03-27 | 2020-07-28 | Nicira, Inc. | Incorporating layer 2 service between two interfaces of gateway device |
US10805192B2 (en) | 2018-03-27 | 2020-10-13 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
CN108390820B (zh) | 2018-04-13 | 2021-09-14 | 华为技术有限公司 | 负载均衡的方法、设备及系统 |
GB2573573B (en) * | 2018-05-11 | 2022-08-17 | Cambridge Broadband Networks Group Ltd | A system and method for distributing packets in a network |
CN108667709B (zh) * | 2018-05-18 | 2020-12-29 | 新华三技术有限公司 | 一种报文转发方法及装置 |
US10887217B2 (en) * | 2018-06-29 | 2021-01-05 | Hewlett Packard Enterprise Development Lp | Routing packets based on congestion metric thresholds and weights |
US11005777B2 (en) * | 2018-07-10 | 2021-05-11 | At&T Intellectual Property I, L.P. | Software defined prober |
US10491511B1 (en) * | 2018-07-20 | 2019-11-26 | Dell Products L.P. | Feedback-based packet routing system |
US10944673B2 (en) | 2018-09-02 | 2021-03-09 | Vmware, Inc. | Redirection of data messages at logical network gateway |
US11595250B2 (en) | 2018-09-02 | 2023-02-28 | Vmware, Inc. | Service insertion at logical network gateway |
US10938722B2 (en) * | 2018-10-12 | 2021-03-02 | Dell Products L.P. | In-band telemetry congestion control system |
US11438371B2 (en) | 2018-11-09 | 2022-09-06 | Cisco Technology, Inc. | Distributed denial of service remediation and prevention |
US10771379B2 (en) * | 2018-12-04 | 2020-09-08 | Juniper Networks, Inc. | Apparatus, system, and method for discovering network paths |
US11323340B2 (en) | 2019-01-07 | 2022-05-03 | Vmware, Inc. | Packet flow monitoring in software-defined networking (SDN) environments |
US11074097B2 (en) | 2019-02-22 | 2021-07-27 | Vmware, Inc. | Specifying service chains |
US11431829B2 (en) | 2019-03-06 | 2022-08-30 | Parsons Corporation | Multi-tiered packet processing |
CN111835652B (zh) * | 2019-04-17 | 2024-04-16 | 华为技术有限公司 | 一种数据流的虚拟通道的设置方法及装置 |
CN110392394B (zh) * | 2019-07-26 | 2021-04-16 | 湖南大学 | 无线网络中基于链路状态信息的mptcp调度方法 |
CN112511448A (zh) | 2019-09-16 | 2021-03-16 | 华为技术有限公司 | 处理网络拥塞的方法、更新模型的方法和相关装置 |
WO2021062116A1 (en) * | 2019-09-27 | 2021-04-01 | Amazon Technologies, Inc. | Management of distributed endpoints |
CN110719598B (zh) * | 2019-10-15 | 2021-10-22 | 北京达佳互联信息技术有限公司 | 一种数据传输方法、装置、电子设备及存储介质 |
US11283717B2 (en) | 2019-10-30 | 2022-03-22 | Vmware, Inc. | Distributed fault tolerant service chain |
US11140218B2 (en) | 2019-10-30 | 2021-10-05 | Vmware, Inc. | Distributed service chain across multiple clouds |
CN111050341B (zh) * | 2019-12-24 | 2022-02-22 | 展讯通信(上海)有限公司 | 双连接场景下空口拥塞状态的判定方法及装置 |
US11223494B2 (en) | 2020-01-13 | 2022-01-11 | Vmware, Inc. | Service insertion for multicast traffic at boundary |
US11659061B2 (en) | 2020-01-20 | 2023-05-23 | Vmware, Inc. | Method of adjusting service function chains to improve network performance |
US11153406B2 (en) | 2020-01-20 | 2021-10-19 | Vmware, Inc. | Method of network performance visualization of service function chains |
US11277331B2 (en) | 2020-04-06 | 2022-03-15 | Vmware, Inc. | Updating connection-tracking records at a network edge using flow programming |
US11902264B2 (en) | 2020-06-22 | 2024-02-13 | Vmware, Inc. | Path selection for data packets encrypted based on an IPSEC protocol |
US11533265B2 (en) | 2020-07-23 | 2022-12-20 | Vmware, Inc. | Alleviating flow congestion at forwarding elements |
US11765037B2 (en) * | 2020-08-19 | 2023-09-19 | Hewlett Packard Enterprise Development Lp | Method and system for facilitating high availability in a multi-fabric system |
US11575642B2 (en) * | 2020-10-12 | 2023-02-07 | Vmware, Inc. | Multi-path traffic selection for ports in overlay networks |
US11165676B1 (en) * | 2020-11-11 | 2021-11-02 | Vmware, Inc. | Generating network flow profiles for computing entities |
US11734043B2 (en) | 2020-12-15 | 2023-08-22 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11611625B2 (en) | 2020-12-15 | 2023-03-21 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
CN113542149B (zh) * | 2021-07-08 | 2023-11-28 | 国家电网有限公司 | 网络流量的负载分担方法、存储介质、装置及系统 |
US11233727B1 (en) * | 2021-08-27 | 2022-01-25 | King Abdulaziz University | System and method for securing SDN based source routing |
CN114039922B (zh) * | 2021-11-22 | 2024-03-12 | 中国通信建设集团有限公司河南省通信服务分公司 | 基于路径拥塞度灰色预测的拥塞控制方法及系统 |
US20230163997A1 (en) * | 2021-11-25 | 2023-05-25 | Vmware, Inc. | Logical overlay tunnel selection |
US11909628B1 (en) * | 2022-09-01 | 2024-02-20 | Mellanox Technologies, Ltd. | Remote direct memory access (RDMA) multipath |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711152B1 (en) * | 1998-07-06 | 2004-03-23 | At&T Corp. | Routing over large clouds |
US6731739B2 (en) * | 2000-12-11 | 2004-05-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Balancing loads on telecommunications links |
US7269157B2 (en) | 2001-04-10 | 2007-09-11 | Internap Network Services Corporation | System and method to assure network service levels with intelligent routing |
US6993023B2 (en) | 2001-04-27 | 2006-01-31 | The Boeing Company | Parallel analysis of incoming data transmissions |
US8447802B2 (en) | 2006-03-08 | 2013-05-21 | Riverbed Technology, Inc. | Address manipulation to provide for the use of network tools even when transaction acceleration is in use over a network |
US8842688B2 (en) * | 2009-01-20 | 2014-09-23 | The Regents Of The University Of California | Reducing cabling complexity in large-scale networks |
US8671176B1 (en) | 2011-04-29 | 2014-03-11 | Juniper Networks, Inc. | Virtual network prototyping environment |
GB2493710A (en) * | 2011-08-12 | 2013-02-20 | Uni Catholique De Louvain | A method for the sender of a packet to select the path the packet takes through a network. |
US9571406B2 (en) | 2011-10-25 | 2017-02-14 | Vmware, Inc. | Network congestion management based on communication delay |
CN103312607B (zh) * | 2012-03-09 | 2016-12-21 | 华为技术有限公司 | 一种传输路径选择方法及装置 |
US8700928B2 (en) | 2012-05-21 | 2014-04-15 | New Jersey Institute Of Technology | Hierarchical energy optimization for datacenter networks |
US9710762B2 (en) * | 2012-06-06 | 2017-07-18 | Juniper Networks, Inc. | Dynamic logging |
US9112801B2 (en) * | 2013-03-15 | 2015-08-18 | International Business Machines Corporation | Quantized congestion notification in a virtual networking system |
US9936406B2 (en) | 2013-11-08 | 2018-04-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Handling of transport conditions |
US10320681B2 (en) | 2016-04-12 | 2019-06-11 | Nicira, Inc. | Virtual tunnel endpoints for congestion-aware load balancing |
US11777853B2 (en) | 2016-04-12 | 2023-10-03 | Nicira, Inc. | Congestion-aware load balancing in data center networks |
US10193810B2 (en) | 2016-11-08 | 2019-01-29 | Vmware, Inc. | Congestion-aware load balancing |
US10972397B2 (en) | 2017-09-29 | 2021-04-06 | Futurewei Technologies, Inc. | Self-driving packets with conditional commands |
-
2017
- 2017-04-11 US US15/485,089 patent/US10320681B2/en active Active
- 2017-04-12 EP EP17719462.8A patent/EP3437264B1/en active Active
- 2017-04-12 CN CN201780035632.3A patent/CN109314666B/zh active Active
- 2017-04-12 JP JP2018553946A patent/JP6781266B2/ja active Active
- 2017-04-12 WO PCT/US2017/027190 patent/WO2017180731A1/en active Application Filing
-
2019
- 2019-05-31 US US16/428,930 patent/US10771389B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11889346B2 (en) | 2022-03-21 | 2024-01-30 | Vmware, Inc. | Quality-aware user data forwarding in mobile communications systems |
Also Published As
Publication number | Publication date |
---|---|
US20170295100A1 (en) | 2017-10-12 |
EP3437264A1 (en) | 2019-02-06 |
JP6781266B2 (ja) | 2020-11-04 |
EP3437264B1 (en) | 2021-10-20 |
US20190288948A1 (en) | 2019-09-19 |
US10771389B2 (en) | 2020-09-08 |
JP2019514294A (ja) | 2019-05-30 |
US10320681B2 (en) | 2019-06-11 |
CN109314666A (zh) | 2019-02-05 |
WO2017180731A1 (en) | 2017-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109314666B (zh) | 用于执行拥塞感知负载均衡的方法和虚拟隧道端点 | |
US10193810B2 (en) | Congestion-aware load balancing | |
US11777843B2 (en) | System and method for facilitating data-driven intelligent network | |
US20240022515A1 (en) | Congestion-aware load balancing in data center networks | |
US9419908B2 (en) | Network congestion management using flow rebalancing | |
US20150029853A1 (en) | Congestion control enforcement in a virtualized environment | |
US20210297350A1 (en) | Reliable fabric control protocol extensions for data center networks with unsolicited packet spraying over multiple alternate data paths | |
US20210297351A1 (en) | Fabric control protocol with congestion control for data center networks | |
WO2019170396A1 (en) | Flow management in networks | |
CN108965121B (zh) | 传输数据的方法、主机和交换机 | |
WO2021050481A1 (en) | Packet order recovery in a programmable edge switch in a data center network | |
CN111224888A (zh) | 发送报文的方法及报文转发设备 | |
US10778568B2 (en) | Switch-enhanced short loop congestion notification for TCP | |
US20210297343A1 (en) | Reliable fabric control protocol extensions for data center networks with failure resilience | |
Zhang et al. | Achieving optimal edge-based congestion-aware load balancing in data center networks | |
Li et al. | VMS: Traffic balancing based on virtual switches in datacenter networks | |
US12003411B2 (en) | Systems and methods for on the fly routing in the presence of errors | |
Li et al. | Based on Edgeóswitching in Datacenter Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |