Detecting and handling elephant flows
First Claim
1. A non-transitory machine readable medium that stores a program which when executed by at least one processing unit implements a forwarding element, the program comprising sets of instructions for:
- monitoring data flows associated with a network host to detect an elephant flow for which the forwarding element processes a plurality of packets, wherein the forwarding element encapsulates the packets of the elephant flow with an outer header; and
for at least two packets of the elephant flow, differentiating the two packets by (i) encapsulating a first packet of the elephant flow using a first header field value for a particular header field of the outer header and (ii) encapsulating a second packet of the elephant flow using a second header field value for the particular header field of the outer header,wherein the different header field values for the particular header field break the elephant flow into at least two different mouse flows such that subsequent forwarding elements, to which the packets are sent from the forwarding element, send the packets of the detected elephant flow along different paths to reach a same destination.
1 Assignment
0 Petitions
Accused Products
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.
-
Citations
20 Claims
-
1. A non-transitory machine readable medium that stores a program which when executed by at least one processing unit implements a forwarding element, the program comprising sets of instructions for:
-
monitoring data flows associated with a network host to detect an elephant flow for which the forwarding element processes a plurality of packets, wherein the forwarding element encapsulates the packets of the elephant flow with an outer header; and for at least two packets of the elephant flow, differentiating the two packets by (i) encapsulating a first packet of the elephant flow using a first header field value for a particular header field of the outer header and (ii) encapsulating a second packet of the elephant flow using a second header field value for the particular header field of the outer header, wherein the different header field values for the particular header field break the elephant flow into at least two different mouse flows such that subsequent forwarding elements, to which the packets are sent from the forwarding element, send the packets of the detected elephant flow along different paths to reach a same destination. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A host machine comprising:
-
a set of processing units; and a set of non-transitory machine readable media that store, for execution by the set of processing units; at least one virtual machine (VM); and an edge forwarding element for monitoring data flows associated with the VM to detect elephant flows, wherein the monitoring comprises; tracking a data flow by maintaining a statistic relating to the data flow; determining whether the statistic is over a threshold value; categorizing the data flow as an elephant flow when the statistic is over the threshold value generating a first set of header values for a first encapsulation header to append to a first set of packets in the elephant flow; and generating a second, different set of header values for a second encapsulation header to append to a second set of packets in the elephant flow, wherein the different header values of the encapsulation headers break the elephant flow into a first mouse flow and a second mouse flow such that subsequent forwarding elements send the first and second sets of packets along different paths. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method of handling an elephant flow, the method comprising:
-
detecting that a data flow associated with a network host is an elephant flow, wherein the packets of the elephant flow are encapsulated with an outer header; for at least two packets of the elephant flow, differentiating the two packets by (i) encapsulating a first packet of the elephant flow using a first header field value for a particular header field of the outer header and (ii) encapsulating a second packet of the elephant flow using a second header field value for the particular header field of the outer header, wherein the different header field values for the particular header field break the elephant flow into at least two different mouse flows; and forwarding the packets of the detected elephant flow to a forwarding element, wherein the forwarding element sends the packets along different paths, based on the first and second header values for the header field, to reach a same destination. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification