Congestion-aware load balancing in data center networks
US-2017295101-A1 · Oct 12, 2017 · US
US10320681B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10320681-B2 |
| Application number | US-201715485089-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 11, 2017 |
| Priority date | Apr 12, 2016 |
| Publication date | Jun 11, 2019 |
| Grant date | Jun 11, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Example methods are provided for a source virtual tunnel endpoint (VTEP) to perform congestion-aware load balancing in a data center network. The method may comprise the source VTEP learning congestion state information associated with multiple paths provided by respective multiple intermediate switches connecting the source VTEP with a destination VTEP. The method may also comprise the source VTEP receiving second packets that are sent by a source endpoint and destined for a destination endpoint; and selecting a particular path from multiple paths based on the congestion state information. The method may further comprise the source VTEP generating encapsulated second packets by encapsulating each of the second packets with header information that includes a set of tuples associated with the particular path; and sending the encapsulated second packets to the destination endpoint.
Opening claim text (preview).
We claim: 1. A method for a source virtual tunnel endpoint (VTEP) to perform congestion-aware load balancing in a data center network that includes the source VTEP, a destination VTEP, a source endpoint, a destination endpoint and multiple intermediate switches, the method comprising: learning, by the source VTEP based on first packets from the destination VTEP, congestion state information associated with a plurality of paths provided by respective multiple intermediate switches connecting the source VTEP with the destination VTEP, wherein the congestion state information includes a mapping among the plurality of paths, a plurality of outer source port numbers corresponding to the plurality of paths, and congestion status for the plurality of paths; receiving, by the source VTEP, second packets that are sent by the source endpoint and destined for the destination endpoint associated with the destination VTEP; selecting, by the source VTEP, a particular path from the plurality of paths based on the congestion state information; generating, by the source VTEP, encapsulated second packets by encapsulating each of the second packets with header information that includes a set of tuples associated with the particular path, wherein the encapsulating each of the second packets comprises: determining, from the plurality of outer source port numbers, a particular outer source port number associated with the particular path; and configuring the set of tuples in the header information in each of the second packets to include the particular outer source port number; and sending, by the source VTEP, the encapsulated second packets to the destination endpoint such that the encapsulated second packets are forwarded via the particular path based on the set of tuples. 2. The method of claim 1 , wherein learning the congestion state information comprises: determining a congestion flag associated with the particular path based on a particular first packet from the destination VTEP, wherein the particular first packet includes a congestion notification from at least one of the multiple intermediate switches to indicate whether the particular path is congested. 3. The method of claim 1 , wherein learning the congestion state information comprises: determining a round trip time associated with the particular path based on a receive time of a particular first packet from the destination VTEP, and a transmit time of a probe packet sent by the source VTEP to trigger the particular first packet. 4. The method of claim 1 , wherein learning the congestion state information comprises: prior to the selecting the particular path, based on a particular first packet from the destination VTEP, determining a weight associated with the particular path to increase or decrease its likelihood for selection. 5. The method of claim 1 , wherein the method further comprises: assigning each of the second packets, being a current second packet, to a flowlet based on an inter-packet gap between the current second packet and a previous second packet destined for the destination endpoint; and storing flowlet information that associates the flowlet with the particular outer source port number associated with the particular path. 6. A non-transitory computer-readable storage medium that includes a set of instructions which, in response to execution by a processor of a host, cause the processor to implement a source virtual tunnel endpoint (VTEP) to perform a method of congestion-aware load balancing in a data center network that includes the source VTEP, a destination VTEP, a source endpoint, a destination endpoint and multiple intermediate switches, wherein the host supports the source VTEP, and the method comprises: learning, by the source VTEP based on first packets from the destination VTEP, congestion state information associated with a plurality of paths provided by respective multiple intermediate switches connecting the source VTEP with the destination VTEP, wherein the congestion state information includes a mapping among the plurality of paths, a plurality of outer source port numbers corresponding to the plurality of paths, and congestion status for the plurality of paths; receiving, by the source VTEP, second packets that are sent by the source endpoint and destined for the destination endpoint associated with the destination VTEP; selecting, by the source VTEP, a particular path from the plurality of paths based on the congestion state information; generating, by the source VTEP, encapsulated second packets by encapsulating each of the second packets with header information that includes a set of tuples associated with the particular path, wherein the encapsulating each of the second packets comprises: determining, from the plurality of outer source port numbers, a particular outer source port number associated with the particular path; and configuring the set of tuples in the header information in each of the second packets to include the particular outer source port number; and sending, by the source VTEP, the encapsulated second packets to the destination endpoint such that the encapsulated second packets are forwarded via the particular path based on the set of tuples. 7. The non-transitory computer-readable storage medium of claim 6 , wherein learning the congestion state information comprises: determining a congestion flag associated with the particular path based on a particular first packet from the destination VTEP, wherein the particular first packet includes a congestion notification from at least one of the multiple intermediate switches to indicate whether the particular path is congested. 8. The non-transitory computer-readable storage medium of claim 6 , wherein learning the congestion state information comprises: determining a round trip time associated with the particular path based on a receive time of a particular first packet from the destination VTEP, and a transmit time of a probe packet sent by the source VTEP to trigger the particular first packet. 9. The non-transitory computer-readable storage medium of claim 6 , wherein learning the congestion state information comprises: prior to the selecting the particular path, based on a particular first packet from the destination VTEP, determining a weight associated with the particular path to increase or decrease its likelihood for selection. 10. The non-transitory computer-readable storage medium of claim 6 , wherein the method further comprises: assigning each of the second packets, being a current second packet, to a flowlet based on an inter-packet gap between the current second packet and a previous second packet destined for the destination endpoint; and storing flowlet information that associates the flowlet with the particular outer source port number associated with the particular path. 11. A switch configured to implement a source virtual tunnel endpoint (VTEP) to perform congestion-aware load balancing in a data center network, wherein the switch comprises: one or more first ports to receive first packets from a destination VTEP connected to the source VTEP via a plurality of paths provided by respective multiple intermediate switches connecting the source VTEP with the destination VTEP; a second port to receive second packets that are sent by the source endpoint and destined for the destination endpoint associated with the destination VTEP; and the switch is configured to: learn congestion state information associated with the multiple paths based on the first packets, wherein the congestion state information includes a mapping among the plurality of paths, a plurality of outer source port numbers corresponding to the pl
by balancing the load, e.g. traffic engineering · CPC title
using an overlay routing layer · CPC title
Encapsulation of packets · CPC title
Interconnection of networks using encapsulation techniques, e.g. tunneling · CPC title
Parsing or analysis of headers · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.