IP Library Granted Patent US 10,666,530
Granted Patent B2
US 10,666,530 · App. 16/238,458 · Granted May 26, 2020

Detecting and handling large flows

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 10,666,530
App. No.
16/238,458
Granted
May 26, 2020
Kind
B2
Abstract

Some embodiments provide a forwarding element that detects and handles elephant flows. In detecting, the forwarding element of some embodiments monitors statistics or measurements relating to a data flow. In handling, the forwarding element marks each packet associated with a detected elephant flow in some manner to differentiate it from a packet associated with a mouse flow. Alternatively, the forwarding element of break elephant flows into a number mouse flow by facilitating in sending packets associated with the detected elephant flow along different paths.

Claims (38)

1. A non-transitory machine readable medium storing a program for execution by at least one processing unit on a host computer executing a machine that is a source of a large packet flow, the program comprising sets of instructions for:

encapsulating a first packet of the large flow using a first header field value for a particular header field of an encapsulating outer header;

encapsulating a second packet of the large flow using a second header field value for the particular header field of the encapsulating outer header;

wherein the different header field values for the particular header field break the large flow into at least two smaller flows such that at least one subsequent forwarding element, to which the first and second packets is sent from the forwarding element, sends the first and second packets of the large flow along different paths to reach a same destination.

2. The non-transitory machine readable medium of claim 1 , wherein the subsequent forwarding element is a multipathing hardware, wherein the header field is a source port field and the first and second header values are different first and second port numbers, wherein the first and second port numbers are processed by the multipathing hardware to select different paths to send the first and second packets.

3. The non-transitory machine readable medium of claim 1 , wherein the different paths are equal-cost multi-path routing (ECMP) legs.

4. The non-transitory machine readable medium of claim 1 , wherein the program further comprises sets of instructions for:

performing a traceroute operation to identify a network map; and

identifying the first and second header values based on the network map, wherein the first and second header values are associated with different paths of the network map.

5. The non-transitory machine readable medium of claim 4 , wherein the traceroute operation is a Paris traceroute operation.

6. The non-transitory machine readable medium of claim 1 , wherein the program further comprises a set of instructions for marking each packet in the large flow with a sequence number to deliver the packet in the order that the packet was received.

7. The non-transitory machine readable medium of claim 6 , wherein the program further comprises a set of instructions for marking each packet with an identifier to identify the large flow.

8. A host computer comprising:

a set of processing units for executing machines that generate packet flows for forwarding through a network; and

a non-transitory machine readable medium storing a program for execution by at least one processing unit, the program comprising sets of instructions for:

encapsulating a first packet of the large flow using a first header field value for a particular header field of an encapsulating outer header;

encapsulating a second packet of the large flow using a second header field value for the particular header field of the encapsulating outer header;

wherein the different header field values for the particular header field break the large flow into at least two smaller flows such that at least one subsequent forwarding element, to which the first and second packets is sent from the forwarding element, sends the first and second packets of the large flow along different paths to reach a same destination.

9. The host computer of claim 8 , wherein the subsequent forwarding element is a multipathing hardware, wherein the header field is a source port field and the first and second header values are different first and second port numbers, wherein the first and second port numbers are processed by the multipathing hardware to select different paths to send the first and second packets.

10. The host computer of claim 8 , wherein the different paths are equal-cost multi-path routing (ECMP) legs.

11. The host computer of claim 8 , wherein the program further comprises sets of instructions for:

performing a traceroute operation to identify a network map; and

identifying the first and second header values based on the network map, wherein the first and second header values are associated with different paths of the network map.

12. The host computer of claim 11 , wherein the traceroute operation is a Paris traceroute operation.

13. The host computer of claim 8 , wherein the program further comprises a set of instructions for marking each packet in the large flow with a sequence number to deliver the packet in the order that the packet was received.

14. The host computer of claim 13 , wherein the program further comprises a set of instructions for marking each packet with an identifier to identify the large flow.

15. A method of handling large flows originating from a machine executing on a host computer, the method comprising:

encapsulating a first packet of the large flow using a first header field value for a particular header field of an encapsulating outer header;

encapsulating a second packet of the large flow using a second header field value for the particular header field of the encapsulating outer header;

wherein the different header field values for the particular header field break the large flow into at least two smaller flows such that at least one subsequent forwarding element, to which the first and second packets is sent from the forwarding element, sends the first and second packets of the large flow along different paths to reach a same destination.

16. The method of claim 15 , wherein the subsequent forwarding element is a multipathing hardware, wherein the header field is a source port field and the first and second header values are different first and second port numbers, wherein the first and second port numbers are processed by the multipathing hardware to select different paths to send the first and second packets.

17. The method of claim 15 , wherein the different paths are equal-cost multi-path routing (ECMP) legs.

18. The method of claim 15 further comprising:

performing a traceroute operation to identify a network map; and

identifying the first and second header values based on the network map, wherein the first and second header values are associated with different paths of the network map.

19. The method of claim 18 , wherein the traceroute operation is a Paris traceroute operation.

20. The method of claim 15 further comprising marking each packet in the large flow with a sequence number to deliver the packet in the order that the packet was received.

21. The method of claim 20 further comprising marking each packet with an identifier to identify the large flow.

Assignments (1)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →