Network traffic distribution across parallel paths
First Claim
1. A method comprising:
- distributing packet flows across a set of data paths in accordance with a distribution map that associates hash values with forwarding elements, wherein the packet flows include a first packet flow having a first hash value associated with a first forwarding element by the distribution map;
identifying a gap in which no packet was received for the first packet flow for at least a defined threshold length of time;
upon identifying the gap, selecting a second forwarding element based on traffic flow statistics for the packet flows and reassigning the first packet flow to the second forwarding element by updating the distribution map to associate the first hash value to the second forwarding element;
after updating the distribution map to reassign the first packet flow, receiving additional packets for the first packet flow; and
forwarding the additional packets of the reassigned first packet flow using the second forwarding element.
0 Assignments
0 Petitions
Accused Products
Abstract
Techniques are described for distributing network traffic across parallel data paths. For example, a router may perform a hash on routing information of the packet to generate a hash value corresponding to the packet flow associated with the packet. The router may map the hash value of the packet to a forwarding element associated with a data path. The router may dynamically update the mapping of hash values to forwarding elements in accordance with traffic flow statistics. In this manner, the router may distribute the packet flows from data paths with high volumes of traffic to data paths with smaller volumes of traffic. The router may further prevent out of sequence delivery of packets by updating the mapping upon a gap in the packet flow exceeding a threshold gap. For example, the router may update the mapping when a packet for a packet flow associated with the particular hash value has not been received for at least a defined time interval.
34 Citations
17 Claims
-
1. A method comprising:
-
distributing packet flows across a set of data paths in accordance with a distribution map that associates hash values with forwarding elements, wherein the packet flows include a first packet flow having a first hash value associated with a first forwarding element by the distribution map; identifying a gap in which no packet was received for the first packet flow for at least a defined threshold length of time; upon identifying the gap, selecting a second forwarding element based on traffic flow statistics for the packet flows and reassigning the first packet flow to the second forwarding element by updating the distribution map to associate the first hash value to the second forwarding element; after updating the distribution map to reassign the first packet flow, receiving additional packets for the first packet flow; and forwarding the additional packets of the reassigned first packet flow using the second forwarding element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
at least one input interface for receiving packet flows from a network; a distribution map that associates a plurality of hash values with forwarding elements, wherein the forwarding elements are associated with different parallel data paths from a source to a destination; and a control unit that; distributes the packet flows across the parallel data paths in accordance with the distribution map, wherein the packet flows include a first packet flow having a first hash value associated with a first forwarding element by the distribution map; collects traffic statistics for each of the hash values; identifies a gap in which no packet was received for the first packet flow for at least a defined threshold length of time; upon identifying the gap, selects a second forwarding element based on the collected traffic flow statistics for the packet flows and reassigns the first packet flow to the second forwarding element by updating the distribution map to associate the first hash value to the second forwarding element; after updating the distribution map to reassign the first packet flow, receives additional packets for the first packet flow; and forwards the additional packets of the reassigned first packet flow using the second forwarding element. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer-readable medium comprising instructions to cause a processor to:
-
distribute packet flows across a set of data paths in accordance with a distribution map that associates hash values with forwarding elements, wherein the packet flows include a first packet flow having a first hash value associated with a first forwarding element by the distribution map; identify a gap in which no packet was received for the first packet flow for at least a defined threshold length of time; upon identifying the gap, select a second forwarding element based on traffic flow statistics for the packet flows and reassign the first packet flow to the second forwarding element by updating the distribution map to associate the first hash value to the second forwarding element; after updating the distribution map to reassign the first packet flow, receive additional packets for the first packet flow; and forward the additional packets of the reassigned first packet flow using the second forwarding element.
-
Specification