Packet parser
First Claim
1. A method of parsing a packet in a system comprising one or more processors, the packet comprising a plurality of packet data units and a plurality of packet layers, each having locations, the method comprising:
- testing one or more of the packet data units within a first window for the presence of a first packet layer;
identifying the location of the first packet layer within the packet if the first packet layer is detected within the first window;
testing one or more of the packet data units within a second window for the presence of a second packet layer, the second packet layer corresponding to a layer in an applicable reference model distinct from that the first packet layer corresponds to, the one or more packet data units in the second window partially but not completely overlapping the one or more packet data units in the first window to account for uncertainty in the location of the second layer relative to the first, and the testing of the one or more packet data units in the second window occurring in parallel with the testing of the one or more packet data units in the first window, such that parallel testing for the presence of the first and second packet layers is performed; and
as part of or following this parallel testing, identifying the location of the second packet layer within the packet if the second packet layer is detected within the second window, including deferring completing such identifying until after completing the identifying of the location of the first packet layer or it has been determined that such first layer is absent from the packet, to allow more accurate identification of the location of the second packet layer relative to the first.
8 Assignments
0 Petitions
Accused Products
Abstract
A packet parser is described that parses a packet by identifying the locations of respective packet layers. A staged approach to parsing the packet is employed whereby a first stage tests the packet data units within a first window for the presence of a first packet layer, and a second stage, at least partly in parallel with the first stage, tests the packet data units within a second overlapping window for the presence of a second packet layer. In response to an embedded packet comprising a first packet forming the payload portion of a second packet, the parser produces a data structure comprising first data that identifies the location of the first packet, second data that identifies the location of the second packet, third data that identifies one or more layers of the first packet, and fourth data that identifies one or more layers of the second packet.
83 Citations
33 Claims
-
1. A method of parsing a packet in a system comprising one or more processors, the packet comprising a plurality of packet data units and a plurality of packet layers, each having locations, the method comprising:
-
testing one or more of the packet data units within a first window for the presence of a first packet layer; identifying the location of the first packet layer within the packet if the first packet layer is detected within the first window; testing one or more of the packet data units within a second window for the presence of a second packet layer, the second packet layer corresponding to a layer in an applicable reference model distinct from that the first packet layer corresponds to, the one or more packet data units in the second window partially but not completely overlapping the one or more packet data units in the first window to account for uncertainty in the location of the second layer relative to the first, and the testing of the one or more packet data units in the second window occurring in parallel with the testing of the one or more packet data units in the first window, such that parallel testing for the presence of the first and second packet layers is performed; and as part of or following this parallel testing, identifying the location of the second packet layer within the packet if the second packet layer is detected within the second window, including deferring completing such identifying until after completing the identifying of the location of the first packet layer or it has been determined that such first layer is absent from the packet, to allow more accurate identification of the location of the second packet layer relative to the first. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A system for parsing a packet, the packet comprising a plurality of packet data units and a plurality of packet layers, each having locations, the system comprising:
-
a buffer for buffering a plurality of the packet data units; a first stage configured to test one or more of the buffered packet data units within a first window for the presence of a first packet layer, and to identify the location of the first packet layer within the packet if the first packet layer is detected within the first window; and a second stage configured to test one or more of the buffered packet data units within a second window for the presence of a second packet layer, the second packet layer corresponding to a layer of an applicable reference model distinct from that the first packet layer corresponds to, the one or more buffered packet data units in the second window partially but not completely overlapping the one or more buffered packet data units in the first window to account for uncertainty in the location of the second packet layer relative to the first, and the testing of the one or more buffered packet data units in the second window occurring in parallel with the testing of the one or more buffered packet data units in the first window, such that parallel testing for the presence of the first and second packet layers is performed; the second stage further configured to identify, as part of or following this parallel testing, the location of the second packet layer within the packet if the second packet layer is detected within the second window, and defer completing such identification until after the identification of the location of the first packet layer has been completed or it has been determined that such first layer is absent from the packet, to allow more accurate identification of the location of the second packet layer relative to the first. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A system for parsing a packet, the packet comprising a plurality of packet data units and a plurality of layers, each having a location within the packet, the system comprising:
-
buffer means for buffering a plurality of the packet data units; first stage means for testing one or more of the buffered packet data units within a first window for the presence of a first packet layer, and identifying the location of the first packet layer within the packet if the first packet layer is detected within the first window; and second stage means for testing one or more of the buffered packet data units within a second window for the presence of a second packet layer, the second packet layer corresponding to a layer of an applicable reference model distinct from that the first packet layer corresponds to, the one or more buffered packet data units in the second window partially but not completely overlapping the one or more buffered packet data units in the first window, and the testing of the one or more buffered packet data units in the second window occurring in parallel with the testing of the one or more buffered packet data units in the first window to account for uncertainty in the location of the second packet layer relative to the first, such that parallel testing for the presence of the first and second packet layers is performed; and
(2) identifying, as part of or following this parallel testing, the location of the second packet layer within the packet if the second packet layer is detected within the second window, including deferring completing such identifying until after the identifying of the location of the first packet layer has been completed or it has been determined that such first layer is absent from the packet, to allow more accurate identification of the location of the second packet layer relative to the first.
-
Specification