Algorithm for long-lived large flow identification
First Claim
1. A hash engine for identifying long-lived large flows comprising:
- a plurality of hashing stages for receiving a flow key associated with a flow, wherein each hashing stage includes;
a hash function that generates an n bit output from the flow key;
a plurality of hash buckets, wherein each hash bucket includes a counter providing a hash counter value, wherein one of the hash buckets is selected based on the n bit output, wherein n is an integer greater than 1; and
a comparator coupled to each of the hash buckets such that the comparator compares the hash counter value of the selected hash bucket with a predetermined threshold to determine if the hash counter value of the selected hash bucket exceeds the predetermined threshold; and
wherein a logic operation is performed on the result from all comparators of the hashing stages to identify the flow as a long-lived large flow if the hash counter values for all of the selected hash buckets exceed the predetermined threshold.
3 Assignments
0 Petitions
Accused Products
Abstract
A mechanism for identifying long-lived large flows in a communication network is disclosed in which packets transmitted through ports of a switching device or router are continuously examined. As new flows are recognized, their flow definition information is processed through a hashing table that uses a predetermined number of hash stages each having a pre-selected number of hash buckets. Each hash bucket has a counter that is incremented each time flow definition information ends up in the bucket. At the same time as counters are incremented, they are compared against a threshold number. If the bucket counters for all the hash stages exceed this threshold number, the flow is identified as a long-lived large flow and stored as such in a flow table.
21 Citations
21 Claims
-
1. A hash engine for identifying long-lived large flows comprising:
a plurality of hashing stages for receiving a flow key associated with a flow, wherein each hashing stage includes; a hash function that generates an n bit output from the flow key; a plurality of hash buckets, wherein each hash bucket includes a counter providing a hash counter value, wherein one of the hash buckets is selected based on the n bit output, wherein n is an integer greater than 1; and a comparator coupled to each of the hash buckets such that the comparator compares the hash counter value of the selected hash bucket with a predetermined threshold to determine if the hash counter value of the selected hash bucket exceeds the predetermined threshold; and
wherein a logic operation is performed on the result from all comparators of the hashing stages to identify the flow as a long-lived large flow if the hash counter values for all of the selected hash buckets exceed the predetermined threshold.- View Dependent Claims (2, 3, 4, 5, 6)
-
7. A network device comprising:
-
an input port for receiving frame flows; a packet processing circuitry coupled to the input port for processing the received flows, the packet processing circuitry comprising; a memory for storing information related to identified long-lived large flows; and a hash engine comprising; a plurality of hashing stages for processing a flow key associated with the received flow, wherein each hashing includes; a hash function that generates an n bit output based on the flow key; a plurality of hash buckets, wherein each bucket includes a counter that provides a hash counter value, wherein at least one of the hash buckets is selected by the n bit output, wherein n is an integer and greater than 1; and a comparator coupled to each of the hash buckets such that the comparator compares the hash counter value of the at least one selected hash bucket with a predetermined threshold to determine if the hash counter value of the at least one selected hash bucket exceeds the predetermined threshold; and
wherein a logic operation is performed on the result from all comparators of the hashing stages to identify the received flow as a long-lived large flow if the hash counter values for all of the at least one selected hash buckets exceed the predetermined threshold. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for identifying long-lived large flows comprising:
-
receiving a flow key associated with a flow; inputting the flow key in a plurality of hashing stages, wherein each hashing stage performs a hash function to generate an n bit output using the flow key; for each hashing stage, selecting a hash bucket from a plurality of hash buckets based on the n bit output, wherein each hash bucket includes a counter that provides a hash counter value, wherein n is an integer and greater than 1; for each hashing stage, comparing the hash counter value of the selected hash bucket with a predetermined threshold to determine if the hash counter value of the selected hash bucket exceeds the predetermined threshold; and identifying the flow as a long-lived large flow if the hash counter values of all of the selected hash buckets exceed the predetermined threshold. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification