Patent ID: 8813221

Claim:
A method comprising: receiving a plurality of packets of one or more files at a networked device comprising a plurality of processing cores, the packets from a plurality of connections; processing each of the received packets, wherein processing each received packet comprises: determining from which of the plurality of connections the packet came, and postponing processing one of the received packets based on a determination that another processing core is currently processing a packet from a same connection, and continuing to process the one of the received packets based on a determination that no other processing core is currently processing a packet from the same connection; storing a current state of pattern matching in a database in memory accessible to each of the plurality of processing cores, wherein the current state of pattern matching corresponds to packets received from the determined corresponding connection, and wherein a plurality of other current states of pattern matching are stored for other connections from the plurality of connections; scanning each of the plurality of packets using one of the plurality of processing cores in the networked device without buffering the one or more files in the networked device, such that the plurality of processing cores scan the plurality of packets substantially concurrently, wherein when the plurality of packets are from one of the plurality of connections, a first processing core of the plurality of processing core receives an in-order packet and scans the in-order packet, a second processing core of the plurality of processing core receives an out-of-order packet and temporarily buffers the out-of-order packet in an out-of-order buffer without scanning the out-of-order packet, wherein the first processing core retrieves a next in order packet from the out-of-order buffer to scan after scanning the in-order packet; and updating the current state of pattern matching based on a plurality of scan results from the plurality of processing cores, the updated current state of pattern matching stored with the determined corresponding connection.