IP Library Granted Patent US 7,120,149
Granted Patent B2
US 7,120,149 · App. 10/028,163 · Granted Oct 10, 2006

Methods and system for resequencing out of order data packets

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,120,149
App. No.
10/028,163
Granted
Oct 10, 2006
Kind
B2
Abstract

Methods and a related data routing system for handling received data packets that are out of sequence and were previously declared lost. Following receipt of a data packet, it is determined if the sequence number of the received data packet is out of order in comparison to previously received data packets. If the sequence number is out of order, the distance between the out of order sequence number and the sequence number of the last data packet that was received in sequence is calculated. The distance is used to discard or keep the received data packet based on a predetermined amount of threshold level of distance, the threshold level of distance being a function of the finite amount of memory space of the data transmission device.

Claims (41)

1. In a data transmission device having a finite amount of memory space, a method of handling data packets whose sequence number are out of order with respect to previously received data packets, the method comprising the steps of:

following receipt of a data packet, determining if the sequence number of the received data packet is out of order in comparison to previously received data packets;

if the sequence number is out of order, determining the distance between the out of order sequence number and the sequence number of the last data packet that was received in sequence; and

using the distance to discard or keep the received data packet based on a predetermined amount of threshold level of distance, the threshold level of distance being a function of the finite amount of memory space of the data transmission device.

2. The method of claim 1 further comprising the step of marking the received data packet as already declared lost if the distance between the sequence number of the received data packet and the sequence number of the last data packet that was received in sequence is less than the threshold level of distance.

3. The method of claim 2 further comprising the step of discarding the received data packet.

4. The method of claim 1 further comprising the step of marking the received data packet as a rolled over data packet if the distance between the sequence number of the received data packet and the sequence number of the last data packet that was received in sequence is greater than the threshold level of distance.

5. The method of claim 4 further comprising the step of keeping the received data packet.

6. The method of claim 5 further comprising the step of resequencing the received data packet.

7. The method of claim 6 wherein the step of resequencing the received data packet further comprises the steps of:

indexing a portion of the sequence number associated with the received data packet into the memory space;

inspecting the active bit of a threshold counter to determine if it is inactive; and

waiting to receive the next data packet in sequence with the received data packet until the threshold counter expires.

8. The method of claim 7 further comprising the step of marking the received data packet as loss if the threshold counter expires and the next data packet in sequence is not received.

9. The method of claim 1 wherein the step of determining the distance further includes the steps of:

storing a first portion of bits from a sequence number associated with the received data packet;

subtracting the first portion of bits from the sequence number of the last data packet previously received that was successfully sequenced.

10. In a system for routing packet data, the system including an ingress side, an egress side, and switch fabric providing pathways between the ingress side and egress side, a method of handling data packets received at the egress of the system that appear to have been previously designated as lost, the method comprising the steps of:

the egress side of the system receiving an out of sequence data packet;

a resequencing engine of the system measuring the distance between the sequence number associated with the out of sequence data packet and the sequence number of the last packet that was received in sequence; and

the resequencing engine discarding or resequencing the received data packet based on a predetermined threshold level of distance, the threshold level of distance being a function of the amount of memory in the system that is available for resequencing data packets.

11. The method of claim 10 further comprising the step of the resequencing engine marking the received data packet as lost if the distance between the sequence number associated with the out of sequence data packet and the sequence number of the last packet that was received in sequence is less than the predetermined threshold level of distance.

12. The method of claim 11 further comprising the step of the resequencing engine discarding the received data packet.

13. The method of claim 10 further comprising the step of the resequencing engine storing the received data packet if the distance between the sequence number associated with the out of sequence data packet and the sequence number of the last packet that was received in sequence is greater than the predetermined threshold level of distance.

14. The method of claim 13 further comprising the step of resequencing the received data packet.

15. A data routing system for use in a data network that is capable of handling received data packets that appear to have been marked as previously discarded, the data routing comprising:

an ingress side for receiving incoming data packets from the data network;

an egress side for transmitting outgoing data packets unto the network;

switch fabric interspersed between the ingress side and the egress side for routing data packets received from the ingress board to a destination serviced by the egress side; and

a resequencing engine comprising:

a processor; and

logic instructions for causing said processor to measure the distance between the sequence number associated with the out of sequence data packet received by the egress side and the sequence number of the last packet that was received in sequence;

wherein the resequencing engine is further adapted to discard or resequence the received data packet based on a predetermined threshold level of distance, the threshold level of distance being a function of the amount of memory in the system that is available for resequencing data packets.

16. The system of claim 15 wherein said ingress side further comprises a plurality of ingress ports for receiving incoming data packets from the data network.

17. The system of claim 16 wherein said egress side further comprises egress ports for transmitting outgoing data packets to said data network.

18. The system of claim 16 further comprising memory space for storing out of sequence data packets received at said egress side.

19. The system of claim 18 wherein said logic is further adapted to cause said processor to determine if an incoming data packet if out of order in comparison to previously received data packets and, if so, for storing a first portion of bits from a sequence number associated with the received data packet in the memory space, and for resequencing the received data packet so that it is placed in an order according to sequence number.

20. The system of claim 19 wherein said logic is further adapted to cause said processor to compare a first portion of bits to a threshold value, the threshold value being a function of the distance between data packets previously received that were in sequence and an out of order data packet received by the egress side.

21. The system of claim 20 wherein said logic if further adapted to cause said processor to mark the received data packet as a rolled over data packet if the distance between the sequence number of the received data packet and the sequence number of the last data packet that was received in sequence is greater than the threshold level.

22. The system of claim 21 wherein said logic is further adapted to cause said processor to keep the received data packet.

23. The system of claim 22 wherein said logic is further adapted to cause said processor to resequence the received data packet.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jul 15, 2016
From: HPS INVESTMENT PARTNERS, LLC
To: OPTIS WIRELESS TECHNOLOGY, LLC
Reel/Frame 039361/0001 →
SECURITY INTEREST Recorded Mar 12, 2014
From: OPTIS WIRELESS TECHNOLOGY, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 032437/0638 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2014
From: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
To: CLUSTER, LLC
Reel/Frame 032285/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2014
From: CLUSTER, LLC
To: OPTIS WIRELESS TECHNOLOGY, LLC
Reel/Frame 032286/0501 →
LIEN Recorded Jan 24, 2014
From: OPTIS WIRELESS TECHNOLOGY, LLC
To: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC, AS COLLATERAL AGENT
Reel/Frame 032180/0115 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2002
From: SALAMAT, BAHMAN
To: ERICSSON INC.
Reel/Frame 012911/0001 →