Methods and apparatuses for searching network data for one or more
predetermined strings are disclosed. A multi-stage search may be
performed by different hardware components. In a first search stage, a
first processor may perform 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 may perform a further search to determine
whether the string matches one of the predetermined strings.