Claims
- 1. A content processor for scanning data packets on a data network, each data packet having associated contents, the content processor comprising:
a content scanning engine operable to compare the contents of the data packets with a database of known signatures, and to produce a conclusion based on the results of the comparison; a queue engine operable to buffer data packets for scanning by the content scanning engine; and a context engine receiving the data packets from the queue engine and operable to schedule the data packets to be scanned by the content scanning engine.
- 2. The content processor of claim 1 wherein the content scanning engine scans first to determine a potential match from the database of known signatures, and second to determine whether the potential match matches the contents of the data packet.
- 3. The content processor of claim 1 wherein the context engine processes the data packet in multiple blocks.
- 4. The content processor of claim 1 wherein the queue engine is further operable to reorder out of sequence data packets.
- 5. The content processor of claim 1 each data packet is associated with a session id generated by the content processor and referenced to a particular location in a session CAM.
- 6. The content processor of claim 1 wherein the context engine further includes a script engine operable to execute user defined instructions, and wherein content scanning engine is able to call the script engine based upon the generated conclusion.
- 7. The content processor of claim 1 wherein the content scanning engine further includes a string preprocessor operable to compress white space in the contents of the data packet.
- 8. The content processor of claim 1 wherein the context engine further includes a host interface operable to send information to and receive information from a microprocessor.
- 9. The content processor of claim 1 wherein the content scanning engine is able to scan across multiple data packets by storing state in the session memory.
- 10. A content processor for scanning data packets on a data network, each data packet having contents, the content processor comprising:
a content scanning engine able to scan the contents of the data packets, the content scanning engine including a memory storing signatures in a signature database wherein the content scanning engine first determines a potential match with one of the signatures from the signature database for the contents of the data packet, and second, determines whether the potential match and the contents of the data packet match exactly, wherein the content scanning engine generates a conclusion based on the results of its scanning; a queuing engine including a reordering and reassembly engine for reordering out of sequence data packets and reassembling fragmented data packets, such that the content scanning engine is able to scan complete data packets in order, the queuing engine also referencing a session id which associates each data packet with a particular session; and a context engine receiving the reordered and reassembled data packets from the queuing engine and operable to schedule the data packets to be scanned by the content scanning engine, the context engine including a session memory able to maintain a state across each particular session.
- 11. The content processor of claim 10 wherein the content scanning engine is able to scan across multiple data packets by storing intermediate conclusions in the session memory.
- 12. The content processor of claim 10 wherein the session id represents an individual traffic flow within the data network.
- 13. The content processor of claim 12 wherein the session id is determined from a source address, a destination address, a source port, a destination port, and a protocol.
- 14. The content processor of claim 10 wherein the context engine further includes a script engine, the script engine able to execute instructions, and wherein content scanning engine is able to call the script engine based upon the generated conclusion.
- 15. The content processor of claim 10 wherein the content scanning engine further includes a string preprocessor operable to compress white space in the contents of the data packet.
- 16. The content processor of claim 10 wherein the context engine further includes a host interface operable to send information to and receive information from a microprocessor.
- 17. The content processor of claim 14 wherein the context engine further includes a general purpose arithmetic logic unit used to increment counters and move pointers, the general purpose arithmetic logic unit controllable by the script engine.
- 18. The content processor of claim 10 wherein the content scanning engine is able to match signatures of arbitrary length, scan across boundaries of the data packets, and begin and end scanning anywhere within the data packet.
- 19. The content processor of claim 10 wherein the context engine processes the contents of the data packets in blocks of a predetermined size.
- 20. The content processor of claim 19 wherein the blocks of a predetermined size are 64 bytes.
- 21. The content processor of claim 19 wherein the context engine and the content scanning engine are able to process multiple blocks each block representing a context associated with a different session id.
- 22. The content processor of claim 21 wherein the context engine and the content scanning engine can process 64 contexts simultaneously.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of application Ser. No. 09/649,986 which was filed on Aug. 29, 2000.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09649986 |
Aug 2000 |
US |
Child |
10108609 |
Mar 2002 |
US |