IP Library Granted Patent US 11,228,528
Granted Patent B2
US 11,228,528 · App. 16/809,210 · Granted Jan 18, 2022

Adaptive load balancing between routers in wan overlay networks using telemetry information

Inventors: Xiangyi Guo (San Jose, CA); Wei Dai (San Jose, CA); Abhijith Kudupu Narayan (Austin, TX); Babu Neelam (San Jose, CA); Udayakumar Srinivasan (Fremont, CA); Kumaran Narayanan (San Ramon, CA)
Assignee: Arista Networks, Inc.
H04L47/125H04L41/0896H04L45/124H04L45/24H04L45/70H04L47/6225H04L47/822
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,228,528
App. No.
16/809,210
Granted
Jan 18, 2022
Kind
B2
Abstract

Systems and methods for load balancing in a network are disclosed. An illustrative method includes receiving network telemetry data corresponding to network paths of a plurality of coexisting multipaths, performing an adaptive load balancing process by determining whether a network path from the plurality of coexisting multipaths is an adequate network path based on the network telemetry data, and in response to determining the network path is an adequate network path, selecting the network path for a network flow.

Claims (52)

1. A method of load balancing in a network comprising:

receiving network telemetry data corresponding to network paths of a plurality of coexisting multipaths;

performing an adaptive load balancing process by:

determining whether a network path from the plurality of coexisting multipaths is an adequate network path includes comparing the network telemetry data to a threshold, the threshold being based on measurements taken over the plurality of coexisting multipaths under an ideal condition or a near ideal network condition having no network traffic; and

in response to determining the network path is an adequate network path, selecting the network path for a network flow.

2. The method of claim 1 , further comprising:

building a list of “best paths” from the adequate network paths of the plurality of coexisting multipaths; and

selecting the network path for the network flow from the list of best paths.

3. The method of claim 2 , wherein the list of best paths is arranged in a round-robin fashion.

4. The method of claim 1 , further comprising repeating the adaptive load balancing process for at least some of the network paths of the plurality of coexisting multipaths.

5. The method of claim 1 , wherein the adaptive load balancing process is in conformance with transmission control protocol (TCP) of the internet protocol (IP) suite.

6. The method of claim 1 ,

wherein selecting the network path for a network flow is based on an inequality between a bandwidth of the network path and a bandwidth of a second network path of the plurality of coexisting multipaths,

wherein the bandwidth of the network path is near bandwidth capacity, and

wherein the method further comprises:

removing the network path from a list of best paths to prevent the network path from selection for the network flow.

7. The method of claim 6 , further comprising replacing the network path in the list of best paths with a third network path of the plurality of coexisting multipaths, the third network path of the plurality of coexisting multipaths having a bandwidth at least greater than the bandwidth of the network path.

8. The method of claim 1 , wherein the network telemetry data is based at least in part on network path latency, network path jitter, network path packet loss, or a combination thereof.

9. The method of claim 1 , further comprising:

deriving an available bandwidth for each of the network paths of the plurality of coexisting multipaths based on the network telemetry data;

based on the available bandwidth, determining, for each network path of the plurality of coexisting multipaths, to select a corresponding network path for a corresponding network flow; and

in response to determining to select a corresponding network path for a corresponding network flow, forwarding the corresponding network flow based on the corresponding network path onto the network.

10. The method of claim 1 , wherein performing the adaptive load balancing process is done dynamically.

11. The method of claim 1 , further comprising performing the receiving network telemetry data at periodic intervals.

12. The method of claim 1 , wherein an indicator represents a path bandwidth corresponding to path saturation and forms a basis for the determining to select the network path for a network flow.

13. A network element for load balancing in a network comprising:

memory configured to store program instructions;

a processor configured to execute the stored program instructions, wherein execution of the stored program instructions causes a path selection engine to:

perform an adaptive load balancing process to:

receive network telemetry data corresponding to each network path of a plurality of coexisting multipaths,

determine whether a network path from the plurality of coexisting multipaths is an adequate network path based on the network telemetry data; and

in response to a determination that the network path is an adequate network path, select the network path for a network flow, wherein:

the selecting the network path for a network flow is based on an inequality between a bandwidth of the network path and a bandwidth of a second network path of the plurality of coexisting multipaths,

the bandwidth of the network path is near bandwidth capacity, and

further execution of the stored program instructions causes the path selection engine to:

 remove the network path from a list of best paths to prevent the network path from selection for the network flow.

14. The network element of claim 13 , wherein further execution of the stored program instructions causes the path selection engine to:

build a list of best paths from the adequate network paths of the plurality of coexisting multipaths; and

select the network path for a network flow from the list of best paths.

15. The network element of claim 14 , wherein the list of best paths is arranged in a round-robin fashion.

16. The network element of claim 13 , wherein further execution of the stored program instructions causes the path selection engine to repeat the adaptive load balancing process for at least some of the network paths of the plurality of coexisting multipaths.

17. The network element of claim 13 , wherein the adaptive load balancing process is in conformance with transmission control protocol (TCP) of the internet protocol (IP) suite.

18. The network element of claim 13 , wherein further execution of the stored program instructions causes the path selection engine to:

replace the network path in the list of best paths with a third network path of the plurality of coexisting multipaths, the third network path of the plurality of coexisting multipaths having a bandwidth at least greater than the bandwidth of the network path.

19. The network element of claim 13 , wherein the network telemetry data is based at least in part on network path latency, network path jitter, network path packet loss, or a combination thereof.

20. The network element of claim 13 , wherein further execution of the stored program instructions causes the path selection engine to:

derive an available bandwidth for each of the network paths of the plurality of coexisting multipaths based on the network telemetry data;

based on the available bandwidth, determine, for each network path of the plurality of coexisting multipaths, to select a corresponding network path for a corresponding network flow; and

in response to a determination to select a corresponding network path for a corresponding network flow, forward the corresponding network flow based on the corresponding network path onto the network.

21. The network element of claim 13 , wherein further execution of the stored program instructions causes the path selection engine to receive the network telemetry data at periodic intervals.

22. The network element of claim 13 , wherein an indicator represents a path bandwidth corresponding to path saturation and forms a basis for the determination to select the network path for a network flow.

23. The network element of claim 13 , wherein determining whether a network path from the plurality of coexisting multipaths is an adequate network path includes comparing the network telemetry data to a threshold, the threshold being based on measurements taken over the plurality of coexisting multipaths under an ideal condition or a near ideal network condition having no network traffic.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2020
From: GUO, XIANGYI; DAI, WEI; NARAYAN, ABHIJITH KUDUPU; NEELAM, BABU; SRINIVASAN, UDAYAKUMAR; NARAYANAN, KUMARAN
To: ARISTA NETWORKS, INC.
Reel/Frame 052016/0656 →
Continuity (1)
Related Publication 20210281514A1 · Sep 9, 2021