Back to results
US 8,797,869 B2Granted
Flow-based rate limiting
AssigneeJuniper Networks, Inc.
InventorsGunes Aybay, Jack Kohn, Fuguang Shi
Life of this patent
Estimating the term…
Abstract
A device may include logic configured to receive a packet, identify a flow associated with the packet in a flow table, and identify a rate limit associated with the flow in the flow table. A current rate associated with the flow may be calculated based on the packet. It may be determined whether the current rate associated with the flow exceeds the rate limit associated with the flow. If so, the packet may be discarded or tagged as “over limit.”
Claims20
A method comprising:
- identifying, using one or more processors, a rate limit associated with a packet,
- the rate limit being identified based on:
- layer 3 information included in the packet, and
- layer 4 information included in the packet;
- determining, using one or more processors and based on the packet, whether a memory stores an entry that identifies a flow corresponding to the packet,
- the memory storing one or more entries identifying one or more flows,
- the packet including at least two of a source address, a destination address, information identifying a source port, information identifying a destination port, or information identifying a protocol associated with the packet,
- determining whether the memory stores the entry including:
- generating a flow identifier based on the at least two of the source address, the destination address, the information identifying the source port, the information identifying the destination port, or the information identifying the protocol, and
- searching the memory based on the flow identifier to determine whether the memory stores the entry;
- calculating, using one or more processors, a current rate associated with the flow when the memory stores the entry,
- the current rate being calculated using information, in the entry, that includes at least one of:
- information identifying a quantity of packets, associated with the flow, received during a time period, or
- information identifying a quantity of bytes, associated with the flow, received during the time period;
- and
- processing, using one or more processors, the packet when the calculated current rate does not exceed the rate limit.
13 more elements
A non-transitory computer-readable medium for storing instructions, the instructions comprising:
- a plurality of instructions which, when executed by one or more processors, cause the one or more processors to:
- identify a rate limit associated with a packet,
- the rate limit being identified based on layer 3 information included in the packet,
- the packet including at least three of a source address, a destination address, information identifying a source port, information identifying a destination port, or information identifying a protocol associated with the packet;
- determine, based on the packet, whether a memory stores an entry that identifies a flow corresponding to the packet,
- the memory storing one or more entries identifying one or more flows,
- one or more instructions, of the plurality of instructions, to determine whether the memory stores the entry including:
- one or more instructions to generate a flow identifier based on the at least three of the source address, the destination address, the information identifying the source port, the information identifying the destination port, or the information identifying the protocol, and
- one or more instructions to search the memory based on the flow identifier to determine whether the memory stores the entry;
- calculate a current rate associated with the flow when the memory stores the entry,
- the current rate being calculated using information, in the entry, that includes:
- information identifying a time period, and
- at least one of:
- information identifying a quantity of packets, associated with the flow, received during the time period, or
- information identifying a quantity of bytes, associated with the flow, received during the time period;
- and
- process the packet when the calculated current rate does not exceed the rate limit.
14 more elements
A device comprising:
- a memory to store instructions;
- and
- a processor to execute the instructions to:
- identify a rate limit associated with a packet,
- the rate limit being identified based on layer 3 information included in the packet,
- the packet including at least three of a source address, a destination address, information identifying a source port, information identifying a destination port, or information identifying a protocol associated with the packet,
- determine, based on the packet, whether the memory stores an entry that identifies a flow corresponding to the packet,
- the memory storing one or more entries identifying one or more flows,
- when determining whether the memory stores the entry, the processor is to:
- generate an identifier based on the at least three of the source address, the destination address, the information identifying the source port, the information identifying the destination port, or the information identifying the protocol, and
- search the memory based on the identifier to determine whether the memory stores the entry,
- calculate a current rate associated with the flow when the memory stores the entry,
- the current rate being calculated using information, in the entry, that includes:
- information identifying a time period, and
- at least one of:
- information identifying a quantity of packets, associated with the flow, received during the time period, or
- information identifying a quantity of bytes, associated with the flow, received during the time period, and
- discard the packet when the calculated current rate exceeds the rate limit.
15 more elements
Dependencies are inferred from the claim text.