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.
- 2. The method of claim 1 further comprising after reordering:
identifying fragmented data packets; and reassembling fragmented data packets using a fragment reassembly unit and fragment memory.
- 3. The method of claim 1 wherein identifying out of sequence data packets includes comparing the sequence number to that of previous data packets in the same traffic flow.
- 4. The method of claim 1 wherein extracting includes determining a session id for the data packet the session id associating the data packet with a particular traffic flow.
- 5. The method of claim 1 wherein reordering includes time-out mechanism for identifying unreordered data packets after a prescribed amount of time.
- 6. The method of claim 2 wherein reassembling includes time-out mechanism for identifying unreassembled data packets after a prescribed amount of time.
- 7. The method of claim 1 further comprising after receiving, storing the data packets in a packet memory.
- 8. The method of claim 7 wherein the packet memory is controlled by a link list controller that keeps track of data packets in the packet memory.
- 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.
- 10. The method of claim 9 wherein reassembling the fragments includes using a window data structure to store the start offset and expected offset of out of order fragments.
- 11. The method of claim 10 wherein reassembling further includes comparing the start offset of the fragment to an order offset and to the start offset and expected offset of any window entries.
- 12. The method of claim 9 wherein reassembling includes time-out mechanism for identifying unreassembled fragments after a prescribed amount of time.
- 13. The method of claim 9 further comprising after receiving, storing the fragments in a packet memory.
- 14. The method of claim 9 wherein the packet memory is controlled by a link list controller that keeps track of fragments and data packets in the packet memory.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims priority of Provisional Application Serial No. 60/250,220 which was filed Nov. 30, 2000.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60250220 |
Nov 2000 |
US |