Data matching using flow based packet data storage
First Claim
Patent Images
1. A system for matching data using flow based packet data storage, the system comprising:
- a communications interface that receives at least one data packet at a network device between a source and a destination, the at least one data packet including data and flow information; and
a processor that;
identifies a flow between the source and the destination based on the flow information in the at least one data packet;
determines whether at least a portion of the data from the received at least one data packet indicates a potential match to data in storage using hashes;
retrieves a list of possible data matches;
uses a computed hash index to index a hash table for the data;
determines match sizes of the most likely data match and second most likely data match;
stores the data from the at least one data packet without a packet header in a block of memory allocated for the flow if both match sizes are small; and
generates a retrieve instruction for the data match with the larger match size if at least one match size is not small.
5 Assignments
0 Petitions
Accused Products
Abstract
A system for matching data using flow based packet data storage includes a communications interface and a processor. A communications interface receives a packet between a source and a destination. The processor identifies a flow between the source and the destination based on the packet. The processor determines whether some of packet data of the packet indicates a potential match to data in storage using hashes. The processor then stores the data from the most likely data match and second most likely data match without a packet header in a block of memory in the storage based on the flow.
329 Citations
33 Claims
-
1. A system for matching data using flow based packet data storage, the system comprising:
-
a communications interface that receives at least one data packet at a network device between a source and a destination, the at least one data packet including data and flow information; and a processor that; identifies a flow between the source and the destination based on the flow information in the at least one data packet; determines whether at least a portion of the data from the received at least one data packet indicates a potential match to data in storage using hashes; retrieves a list of possible data matches; uses a computed hash index to index a hash table for the data; determines match sizes of the most likely data match and second most likely data match; stores the data from the at least one data packet without a packet header in a block of memory allocated for the flow if both match sizes are small; and generates a retrieve instruction for the data match with the larger match size if at least one match size is not small. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for matching data using flow based packet data storage, the method comprising:
-
receiving at least one data packet at a network device between a source and a destination, the at least one data packet including data and flow information; identifying a flow between the source and the destination based on the flow information in the at least one data packet; determining whether at least a portion of the data from the received at least one data packet indicates a potential match to data in storage using hashes; retrieving a list of possible data matches; using a computed hash index to index a hash table for the data; determining match sizes of the most likely data match and second most likely data match; storing the data from the at least one data packet without a packet header in a block of memory allocated for the flow, if both match sizes are small; and generating a retrieve instruction for the data match with the larger match size, if at least one match size is not small. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A software product for processing packets, the software product comprising:
-
software operational when executed by a processor to direct the processor to receive at least one data packet at a network device between a source and a destination, the at least one data packet including data and flow information, to identify a flow between the source and the destination based on the flow information in of the at least one data packet, to determine whether at least a portion of the data from the received at least one data packet indicates a potential match to data in storage using hashes, to retrieve a list of possible data matches, use a computed hash index to index a hash table for the data, to determine match sizes of the most likely data match and second most likely data match, to store the data from the at least one data packet without a packet header in the block of memory allocated for the flow if both match sizes are small, and to generate a retrieve instruction for the data match with the larger match size if at least one match size is not small; and a non-transitory computer-readable storage medium configured to store the software. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
Specification