String search scheme in a distributed architecture
First Claim
1. A method for searching for a string of data matching a predetermined string of data, the method comprising:
- performing a first stage search on a packet of data, wherein the first stage search identifies one or more potential strings of interest having a first portion matching the predetermined string;
generating a first stage search report indicating one or more potential strings of interest and a location of the one or more potential strings of interest within the packet and performing a second stage search on the packet data, wherein the second stage search compares the one more potential strings of interest to the predetermined string to determine whether a match exists.
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 performed by the second processor is performed selectively, which increases network performance as compared to more detailed searches on all network data.
-
Citations
19 Claims
-
1. A method for searching for a string of data matching a predetermined string of data, the method comprising:
-
performing a first stage search on a packet of data, wherein the first stage search identifies one or more potential strings of interest having a first portion matching the predetermined string;
generating a first stage search report indicating one or more potential strings of interest and a location of the one or more potential strings of interest within the packet and performing a second stage search on the packet data, wherein the second stage search compares the one more potential strings of interest to the predetermined string to determine whether a match exists. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus comprising:
-
a first processor coupled to receive packets of data, the first processor to perform a first stage search on the packet to identify a potential string of interest having a first portion matching a corresponding first portion of a predetermined string; and
a second processor coupled to the first processor, the second processor to perform a second stage search on the packet, the second stage search comparing the potential string of interest to the predetermined string to determine whether a match exists. - View Dependent Claims (9, 10, 11, 12)
-
-
13. An apparatus for searching for a string of data matching a predetermined string of data, the apparatus comprising:
-
means for performing a first stage search on a packet of data, wherein the first stage search identifies one or more potential strings of interest having a first portion matching the predetermined string;
means for generating a first stage search report indicating one or more potential strings of interest and a location of the one or more potential strings of interest within the packet and means for performing a second stage search on the packet data, wherein the second stage search compares the one more potential strings of interest to the predetermined string to determine whether a match exists. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
Specification