Method for reordering and reassembling data packets in a network
First Claim
1. A method for reordering out of sequence data packets which are associated with a traffic flow on a data network, the data packets including header information with fields, some data packets including a sequence number that determines packet order, the method comprising:
- receiving the data packets from an input;
extracting the desired fields from the data packets including the sequence number;
identifying out of sequence data packets;
reordering out of sequence data packets using a link list storing the locations of data packets in the traffic flow; and
sending the data packets to an output.
7 Assignments
0 Petitions
Accused Products
Abstract
A method is described that is operable to reorder and reassemble data packets from network traffic into unfragmented and in-order traffic flows for applications such as deep packet classification and quality of service determination. A queue engine stores incoming data packets in a packet memory that is controlled by a link list controller. A packet assembler extracts information from each data packet, particularly fields from the header information, and uses that information among other things, to determine if the data packet is fragmented or out of order, and to associate the data packet with a session id. If the packet is determined to be out of order, the queue engine includes a reordering unit, which is able to modify links with the link list controller to reorder data packets. A fragment reassembly unit is also included which is capable of taking fragments and reassembling them into complete unfragmented data packets. The reordered and reassembled data packets are then sent to an output where further operations such as deep packet classification can take place.
-
Citations
14 Claims
-
1. A method for reordering out of sequence data packets which are associated with a traffic flow on a data network, the data packets including header information with fields, some data packets including a sequence number that determines packet order, the method comprising:
-
receiving the data packets from an input;
extracting the desired fields from the data packets including the sequence number;
identifying out of sequence data packets;
reordering out of sequence data packets using a link list storing the locations of data packets in the traffic flow; and
sending the data packets to an output. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for reassembling fragmented data packets which are formed by multiple fragments in a data network, the fragments including header information with fields, each fragment including a start offset and an expected offset that determines fragment order, the method comprising:
-
receiving the fragments from an input;
extracting the desired fields from the fragments including the start offset and the expected offset;
reassembling the fragments into the complete data packet using a link list storing the locations of the fragments making up the data packet; and
sending the reassembled data packets to an output. - View Dependent Claims (10, 11, 12, 13, 14)
-
Specification