IP Library › Granted Patent US 9,923,828
Granted Patent B2
US 9,923,828 · App. 15/003,172 · Granted Mar 20, 2018

Load balancing with flowlet granularity

Inventors: Erico Vanini (Balerna, CH); Rong Pan (Saratoga, CA); Mohammadreza Alizadeh Attar (Cambridge, MA); Thomas J. Edsall (Los Gatos, CA)
Assignee: Cisco Technology, Inc.
H04L47/125H04L45/24H04L47/122H04L47/762H04L47/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 9,923,828
App. No.
15/003,172
Granted
Mar 20, 2018
Kind
B2
Abstract

A first flowlet of a flow from a source network device to a destination network device is assigned to a first path of a plurality of paths between the source device and the destination device. The assignment of the first flowlet to the first path is made by a network connected device. A second flowlet is detected in response to an interruption in transmission of the flow due to congestion along the first path, wherein the interruption is longer in duration than a difference in a transmission time between the source network device and the destination network device along each of the plurality of paths. The second flowlet is assigned to a second path of the plurality of paths by the network connected device. According to some example embodiments, the second path is randomly selected from the plurality of paths.

Claims (34)

1. A method comprising:

assigning, at a network connected device, a first flowlet of a flow of traffic from a source network device to a destination network device to a first path of a plurality of paths between the source network device and the destination network device;

detecting a second flowlet of the flow in response to an interruption in transmission of the flow due to congestion along the first path, wherein the interruption is longer in duration than a difference in a transmission time between the source network device and the destination network device along each of the plurality of paths;

determining a second path of the plurality of paths from the source network device to the destination network device in response to detecting the second flowlet; and

assigning, at the network connected device, the second flowlet to the second path of the plurality of paths, wherein assigning the second flowlet to the second path comprises randomly selecting the second path from the plurality of paths and assigning the second flowlet to the second path.

2. The method of claim 1 , further comprising tracking, at the network connected device, sizes of flowlets along paths of the plurality of paths.

3. The method of claim 2 , wherein tracking the sizes of flowlets comprises tracking the size of flowlets of the flow along the paths of the plurality of paths.

4. The method of claim 2 , wherein tracking the sizes of flowlets along each of the plurality of paths comprises tracking the amount of data sent by flowlets along each of the plurality of paths.

5. The method of claim 2 , wherein assigning the second flowlet to the second path of the plurality of paths comprises assigning the second flowlet to the second path of the plurality of paths to equalize an average flowlet size across the plurality of paths.

6. The method of claim 1 , wherein assigning the first flowlet to the first path comprises assigning the first flowlet to the first path within a multi-rooted tree design network.

7. An apparatus comprising:

a network interface configured to send and receive network flows over a network; and

a processor configured to:

assign, via the network interface, a first flowlet of a flow of traffic from a source network device to a destination network device to a first path of a plurality of paths through the network between the source network device and the destination network device;

detect a second flowlet of the flow in response to an interruption in transmission of the flow due to congestion along the first path, wherein the interruption is longer in duration than a difference in a transmission time between the source network device and the destination network device along each of the plurality of paths;

determine a second path of the plurality of paths from the source network device to the destination network device in response to detecting the second flowlet; and

assign, via the network interface, the second flowlet to the second path of the plurality of paths by randomly selecting the second path from the plurality of paths.

8. The apparatus of claim 7 , wherein the processor is further configured to track sizes of flowlets along paths of the plurality of paths.

9. The apparatus of claim 8 , wherein the processor is configured to track sizes of flowlets by tracking the size of flowlets of the flow along the paths of the plurality of paths.

10. The apparatus of claim 8 , wherein the processor is configured to track the sizes of flowlets along each of the plurality of paths by tracking the amount of data sent by flowlets along each of the plurality of paths.

11. One or more non-transitory computer readable storage media encoded with software comprising computer executable instructions and when the software is executed operable to cause a processor to:

assign, at a network connected device, a first flowlet of a flow of traffic from a source network device to a destination network device to a first path of a plurality of paths between the source network device and the destination network device;

detect a second flowlet of the flow in response to an interruption in transmission of the flow due to congestion along the first path, wherein the interruption is longer in duration than a difference in a transmission time between the source network device and the destination network device along each of the plurality of paths;

determine a second path of the plurality of paths from the source network device to the destination network device in response to detecting the second flowlet; and

assign, at the network connected device, the second flowlet to the second path of the plurality of paths by randomly selecting the second path from the plurality of paths.

12. The one or more non-transitory computer readable storage media of claim 11 , wherein the instructions cause the processor to track sizes of flowlets along paths of the plurality of paths.

13. The one or more non-transitory computer readable storage media of claim 12 , wherein the instructions cause the processor to track sizes of flowlets by tracking the size of flowlets of the flow along the paths of the plurality of paths.

14. The one or more non-transitory computer readable storage media of claim 12 , wherein the instructions cause the processor to track the sizes of flowlets along each of the plurality of paths by tracking the amount of data sent by flowlets along each of the plurality of paths.

15. The method of claim 1 , wherein assigning the first flowlet to the first path comprises randomly selecting the first path from the plurality of paths and assigning the first flowlet to the first path.

16. The method of claim 1 , wherein the first path is different from the second path.

17. The apparatus of claim 7 , wherein the processor is configured to assign the first flowlet to the first path by randomly selecting the first path from the plurality of paths.

18. The apparatus of claim 7 , wherein the first path is different from the second path.

19. The one or more non-transitory computer readable storage media of claim 11 , wherein the instructions cause the processor to assign the first flowlet to the first path by randomly selecting the first path from the plurality of paths.

20. The one or more non-transitory computer readable storage media of claim 11 , wherein the first path is different from the second path.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2016
From: VANINI, ERICO; PAN, RONG; ATTAR, MOHAMMADREZA ALIZADEH; EDSALL, THOMAS J.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 037555/0547 →
Continuity (2)
Provisional Application 62222248 · Sep 23, 2015
Related Publication 20170085485A1 · Mar 23, 2017