Detecting an elephant flow based on the size of a packet

US9838276B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9838276-B2
Application numberUS-201715397676-A
CountryUS
Kind codeB2
Filing dateJan 3, 2017
Priority dateDec 9, 2013
Publication dateDec 5, 2017
Grant dateDec 5, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Some embodiments provide a forwarding element that inspects the size of each of several packets in a data flow to determine whether the data flow is an elephant flow. The forwarding element inspects the size because, in order for the packet to be of a certain size, the data flow had to already have gone through a slow start in which smaller packets are transferred and by definition be an elephant flow. When the forwarding element receives a packet in a data flow, the forwarding element identifies the size of the packet. The forwarding element then determines if the size of the packet is greater than a threshold size. If the size is greater, the forwarding element specifies that the packet's data flow is an elephant flow.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for detecting elephant flows at a forwarding element, the method comprising: prior to receiving any data packets above a threshold size belonging to a particular data flow, processing the data packets belonging to the particular data flow in a datapath of the forwarding element; upon receiving a first data packet above the threshold size belonging to the particular data flow, sending the first data packet to a module of the forwarding element outside the datapath that processes the particular data flow as an elephant flow; and processing subsequent data packets belonging to the particular data flow in the datapath of the forwarding element as elephant flow packets irrespective of the size of the subsequent data packets. 2. The method of claim 1 , wherein the data packets belonging to the particular data flow are associated with a protocol that utilizes a slow start algorithm in which the size of each data packet increases with each successful transmission until one of (i) the data packet size reaches a particular size and (ii) packet loss occurs. 3. The method of claim 1 , wherein processing the data packets belonging to the particular data flow in the datapath prior to receiving any data packets above the threshold size comprises sending said data packets to a first port of the forwarding element. 4. The method of claim 1 , wherein processing the data packets belonging to the particular flow in the datapath comprises processing the packets using cached forwarding data. 5. The method of claim 1 , wherein the module outside the datapath is a user space module for processing packets that the datapath is unable to handle. 6. The method of claim 5 , wherein the datapath is a kernel datapath. 7. The method of claim 1 , wherein (i) processing the data packets in the datapath prior to receiving any data packets above a threshold size comprises processing the data packets according to a first flow entry and (ii) processing the subsequent packets in the datapath as elephant flow packets comprises processing the data packets according to a second flow entry that replaces the first flow entry. 8. The method of claim 7 , wherein the first flow entry specifies sending the first data packet above the threshold size to the module outside the datapath. 9. The method of claim 1 , wherein sending the first data packet to the module outside the datapath comprises sending identifying information associated with the first data packet that identifies all packets in the data flow. 10. The method of claim 9 , wherein the identifying information comprises at least one of tunnel information, an ingress port, a transport layer protocol port number, an Ethertype, a MAC address, and an IP address. 11. A non-transitory machine readable medium storing a program which when executed by at least one processing unit detects elephant flows at a forwarding element, the program comprising sets of instructions for: prior to receiving any data packets above a threshold size belonging to a particular data flow, processing the data packets belonging to the particular data flow in a datapath of the forwarding element; upon receiving a first data packet above the threshold size belonging to the particular data flow, sending the first data packet to a module of the forwarding element outside the datapath that processes the particular data flow as an elephant flow; and processing subsequent data packets belonging to the particular data flow in the datapath of the forwarding element as elephant flow packets irrespective of the size of the subsequent data packets. 12. The non-transitory machine readable medium of claim 11 , wherein the data packets belonging to the particular data flow are associated with a protocol that utilizes a slow start algorithm in which the size of each data packet increases with each successful transmission until one of (i) the data packet size reaches a particular size and (ii) packet loss occurs. 13. The non-transitory machine readable medium of claim 11 , wherein the set of instructions for processing the data packets belonging to the particular data flow in the datapath prior to receiving any data packets above the threshold size comprises a set of instructions for sending said data packets to a first port of the forwarding element. 14. The non-transitory machine readable medium of claim 11 , wherein the set of instructions for processing the data packets belonging to the particular flow in the datapath comprises a set of instructions for processing the packets using cached forwarding data. 15. The non-transitory machine readable medium of claim 11 , wherein the module outside the datapath is a user space module for processing packets that the datapath is unable to handle. 16. The non-transitory machine readable medium of claim 15 , wherein the datapath is a kernel datapath. 17. The non-transitory machine readable medium of claim 11 , wherein (i) the set of instructions for processing the data packets in the datapath prior to receiving any data packets above a threshold size comprises a set of instructions for processing the data packets according to a first flow entry and (ii) the set of instructions for processing the subsequent packets in the datapath as elephant flow packets comprises a set of instructions for processing the data packets according to a second flow entry that replaces the first flow entry. 18. The non-transitory machine readable medium of claim 17 , wherein the first flow entry specifies sending the first data packet above the threshold size to the module outside the datapath. 19. The non-transitory machine readable medium of claim 11 , wherein the set of instructions for sending the first data packet to the module outside the datapath comprises a set of instructions for sending identifying information associated with the first data packet that identifies all packets in the data flow. 20. The non-transitory machine readable medium of claim 19 , wherein the identifying information comprises at least one of tunnel information, an ingress port, a transport layer protocol port number, an Ethertype, a MAC address, and an IP address.

Assignees

Inventors

Classifications

  • H04L43/026Primary

    using flow identification · CPC title

  • Input queuing · CPC title

  • Threshold monitoring · CPC title

  • Store and forward routing · CPC title

  • in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9838276B2 cover?
Some embodiments provide a forwarding element that inspects the size of each of several packets in a data flow to determine whether the data flow is an elephant flow. The forwarding element inspects the size because, in order for the packet to be of a certain size, the data flow had to already have gone through a slow start in which smaller packets are transferred and by definition be an elepha…
Who is the assignee on this patent?
Nicira Inc
What technology area does this patent fall under?
Primary CPC classification H04L43/026. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 05 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).