Claims
- 1) a method of processing packets across packet boundaries with a state machine, packets from multiple connections being interspersed in a common communication channel, said method comprising the steps of:
processing a packet from a particular connection with a state machine, recording the state of said state machine when said packet has been processed, transmitting the next packet from the same connection to said state machine, transmitting said stored state to said state machine, and initiating the processing of said next packet beginning at said stored state.
- 2) A system for processing communication packets traveling in a communication channel comprising,
a state machine for processing a series of bits to locate a desired pattern, said state machine having a plurality of states including an initial state, a plurality of intermediate states and a final recognition state, means for storing the state of said state machine after the bits in a packet have been processes, and means for initiating the processing of another packet at said stored state, whereby packets can be recognized across packet boundaries.
- 3) A method of processing packets in a stream of packets which consists of interleaved packets from different connections, said packets including a header which indicates the connection to which the packet belongs,
detecting that a packet belongs to a particular connection, processing said packet utilizing a state machine, recording the state of said state machine at the end of processing said packet, receiving another packet that belongs to said particular connection, and beginning the processing of said another packet at said stored state, whereby processing is continuous across packet boundaries.
- 4) The method recited in claim 1 wherein said state machine is a DFA.
- 5) The system recited in claim 2 wherein said state machine is a DFA.
- 6) The method recited in claim 3 wherein said state machine is a DFA.
- 7) The method recited in claim 1 wherein said method is performed by a network processing engine and a co-processor which includes a state machine, and wherein said network processor transfers packets and state information to said coprocessor and said state machine in said co-processor begins processing packets at the state indicated by the state information that is transmitted to said coprocessor with the packet being processed.
- 8) The system recited in claim 2 including a network processing engine and a coprocessor, said state machine being located in said co-processor, said network processor having associated memory for storing state data indicating the final recognition state of said state machine after the bits of a packet have been processed.
- 9) The method recited in claim 2 wherein said method is performed by a network processing engine and a co-processor which includes a state machine, and wherein said network processor transfers packets and state information to said coprocessor and said state machine in said co-processor begins processing packets at the state indicated by the state information that is transmitted to said coprocessor with the packet being processed.
- 10) A method of processing communication packets traveling in a communication channel that carries packets from multiple connections, said packets being processed by a state machine, said method comprising the steps of,
determining to which connection a packet belongs, processing said packet with said state machine beginning at the state reached when the last packet from said same connection was processed, and storing the state reached by a state machine when a packet is processed together with an indication of the connection to which a packet belongs, whereby patterns that cross packet boundaries can be detected.
- 11) The method recited in claim 10 wherein said state machine is a DFA.
- 12) The method recited in claim 10 wherein said network processor is located in a unit in line with said communication channel and said state machine is located in a co-processor.
- 13) The method recited in claim 1 wherein said packets are packets in a TCP/IP network.
- 14) The method recited in claim 11 wherein said packets are packets in a TCP/IP network.
- 15) The method recited in claim 1 wherein both the final state of said state machine and at least some of the history of processing a packet by said state machine is recorded.
- 16) The method recited in claim 11 wherein both the final state of said state machine and at least some of the history of processing a packet by said state machine is recorded.
RELATED APPLICATIONS
[0001] 1) This application is a non provisional of application Ser. No. 60/351,600 Jan. 25, 2002
[0002] 2) This application is a continuation in part of application Ser. No. 10/217,592 filed Aug. 8, 2002
[0003] 3) Application Ser. No. 10/217,592 is a Non-Provisional of application Ser. No. 60/357,384 filed Feb. 15, 2002
[0004] 4) Application Ser. No. 10/217,592 is a Non-Provisional of application Ser. No. 60/322,012 filed Sep. 12, 2001
[0005] 5) Application Ser. No. 10/217,592 is a continuation-in-part of application Ser. No. 10/005,462 filed Dec. 3, 2002
[0006] Priority of the above five applications is claimed and their specification and drawings are hereby incorporated herein by reference.
Provisional Applications (3)
|
Number |
Date |
Country |
|
60322012 |
Sep 2001 |
US |
|
60351600 |
Jan 2002 |
US |
|
60357384 |
Feb 2002 |
US |
Continuation in Parts (2)
|
Number |
Date |
Country |
Parent |
10005462 |
Dec 2001 |
US |
Child |
10350540 |
Jan 2003 |
US |
Parent |
10217592 |
Aug 2002 |
US |
Child |
10350540 |
Jan 2003 |
US |