Patent ID: 8797869

Claim:
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.