String Search Scheme in a Distributed Architecture
First Claim
1. A method comprising:
- receiving a packet of data via a network at one or more classification engines;
performing a first stage search at the one or more classification engines on the packet of data, wherein the first stage search identifies multiple potential strings of interest having a first block of data matching a corresponding block of data of one or more predetermined strings;
generating a first stage search report indicating multiple potential strings of interest and a location of the multiple potential strings of interest within the packet of data;
performing a second stage search on the packet of data, wherein the second stage search compares a second block of data of the multiple potential strings of interest indicated in the first stage search report to the one or more predetermined strings to determine whether a match exists; and
generating a message to indicate that at least one of the multiple potential strings of interest is a string of interest if a match exists between the second block of data of at least one multiple potential string of interest and the one or more predetermined strings.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatuses for searching network data for one or more predetermined strings are disclosed. In one embodiment, the string search is a multi-stage search where the stages of the search are performed by different hardware components. In one embodiment in a first search stage, a first processor performs a comparison of blocks of incoming data to determine whether the blocks potentially represent the beginning of one of the predetermined strings. If a potential predetermined string is identified, a second processor performs a further search to determine whether the string matches one of the predetermined strings. Because the first processor searches only for the beginning of the predetermined strings, the first stage comparison can be performed quickly, which improves network performance as compared to more detailed searching. The second stage is performed by second processor, which allows the first processor to search for potential matching strings. Because many strings do not match the one or more predetermined strings, the more detailed search preformed by the second processor is performed selectively, which increases network performance as compared to more detailed searches on all network data.
52 Citations
13 Claims
-
1. A method comprising:
-
receiving a packet of data via a network at one or more classification engines;
performing a first stage search at the one or more classification engines on the packet of data, wherein the first stage search identifies multiple potential strings of interest having a first block of data matching a corresponding block of data of one or more predetermined strings;
generating a first stage search report indicating multiple potential strings of interest and a location of the multiple potential strings of interest within the packet of data;
performing a second stage search on the packet of data, wherein the second stage search compares a second block of data of the multiple potential strings of interest indicated in the first stage search report to the one or more predetermined strings to determine whether a match exists; and
generating a message to indicate that at least one of the multiple potential strings of interest is a string of interest if a match exists between the second block of data of at least one multiple potential string of interest and the one or more predetermined strings. - View Dependent Claims (2, 3, 4)
-
-
5. An article of manufacture, comprising:
-
a machine-accessible medium including data that, when accessed by a machine, cause the machine to perform operations comprising, performing a first stage search on a packet of data received via a network, wherein the first stage search identities multiple potential strings of interest having a first block of data matching a corresponding block of data of one or more predetermined strings;
generating a first stage search report indicating multiple potential strings of interest and a location of the multiple potential strings of interest within the packet;
performing a second stage search on the packet data, wherein the second stage search compares a second block of data of the multiple potential strings of interest indicated in the first stage search report to the one or more predetermined strings to determine whether a match exists; and
generating a message to indicate that at least one of the multiple potential strings of interest is a string of interest if a match exists between the second block of data of at least one multiple potential string of interest and the one or more predetermined strings. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13)
-
Specification