IP Library Granted Patent US 7,406,082
Granted Patent B2
US 7,406,082 · App. 10/261,090 · Granted Jul 29, 2008

Sequence number schemes for acceptance/rejection of duplicated packets in a packet-based data network

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,406,082
App. No.
10/261,090
Granted
Jul 29, 2008
Kind
B2
Abstract

In a packet-based data network, packets are duplicated and a sequence number is inserted into each duplicate packet, where the duplicate packets are transmitted along two different paths from a source node to a destination node in the network. Depending on the implementation, the source node inserts different types of sequence numbers into the duplicate packets, and the destination node processes those sequence numbers accordingly to determine whether to accept or reject each received packet. In certain implementations, the number of sequence bits allocated to each packet is smaller than the size of the effective sequence number for the packet as interpreted by the destination node.

Claims (71)

1. A method for transmitting packets, comprising the steps of:

creating first and second duplicate packets from an original packet;

inserting a sequence number into the first and second duplicate packets;

tracking a number of transmitted duplicate packets since initiation of duplicate packet transmission;

performing a comparison between the number of transmitted duplicate packets since the initiation of duplicate packet transmission and a specified threshold number;

setting a bit in each of the first and second duplicate packets to a first value if the comparison indicates that the number of transmitted duplicate packets since the initiation of duplicate packet transmission is less than the specified threshold number;

setting the bit in each of the first and second duplicate packets to a second value if the comparison indicates that the number of transmitted duplicate packets since the initiation of duplicate packet transmission is greater than the specified threshold number; and

transmitting the first and second duplicate packets along respective different paths towards a destination node.

2. The method of claim 1 , wherein the bit is maintained at the second value until duplicate packet transmission is re-initiated following a failure of one of the paths.

3. A method for transmitting packets, comprising the steps of:

creating first and second duplicate packets from an original packet;

tracking an inner sequence number for the original packet, wherein the inner sequence number changes between each pair of consecutive original packets;

tracking an outer sequence number for the original packet, wherein the outer sequence number changes only after a specified number of consecutive original packets greater than two;

selecting a sequence number for the first and second duplicate packets to be either the inner sequence number or the outer sequence number, wherein:

if the selected sequence number is the inner sequence number, then the first and second duplicate packets are inner sequence packets; and

if the selected sequence number is the outer sequence number, then the first and second duplicate packets are outer sequence packets;

inserting the selected sequence number into a same field in the first and second duplicate packets, wherein the same field is used whether the selected sequence number is the inner sequence number or the outer sequence number; and

transmitting the first and second duplicate packets along respective different paths towards a destination node, wherein a bit in each of the first and second duplicate packets identifies whether the selected sequence number is the inner sequence number or the outer sequence number, wherein a specified number of inner sequence packets are transmitted between each consecutive pair of outer sequence packets.

4. A method for processing received packets, comprising the steps of:

maintaining a sliding window based on a sequence number of a previously accepted packet;

receiving a current packet via either a first path or a second path;

determining whether the sequence number of the current packet falls within the sliding window;

accepting the current packet, when the sequence number of the current packet falls within the sliding window;

rejecting the current packet, when the sequence number of the current packet falls outside of the sliding window;

keeping track of the most significant bit (MSB) of the sequence number of the previously accepted packet; and

comparing the MSB of the sequence number of the current packet with the MSB of the sequence number in the previously accepted packet to detect a roll-over of the sequence number.

5. The method of claim 4 , further comprising the step of adjusting the sliding window to take the roll-over into account.

6. A method for processing received packets, comprising the steps of:

receiving a current packet via either a first path or a second path;

maintaining a first least significant bit (LSB) counter and a first most significant bit (MSB) counter for the first path and a second LSB counter and a second MSB counter for the second path;

identifying whether the current packet has been received via the first path or the second path;

interpreting the sequence number in the current packet as an LSB sequence number;

generating a full sequence number by concatenating a current LSB sequence number with a corresponding MSB counter value; and

comparing the full sequence number to a full sequence number of a previously accepted packet.

7. The method of claim 6 , wherein the full sequence number is compared to a full sequence number of a previously accepted packet to determine whether to accept or reject the current packet.

8. The method of claim 6 , wherein the current LSB sequence number is compared with the corresponding LSB counter to detect a roll-over of the sequence number.

9. The method of claim 8 , wherein the corresponding MSB counter is incremented upon detection of the roll-over.

10. A method for processing received packets having sequence numbers comprising the steps of:

receiving a current packet having a current sequence number via either a first path or a second path;

tracking which path is a leading path and which path is a trailing path;

determining whether the current packet was received from the leading path or the trailing path;

if the current packet was received from the leading path, then (1) accepting the current packet, (2) updating a select counter based on the current sequence number, and (3) updating a delay counter based on the current sequence number and a previous sequence number of a leading-path packet previously received from the leading path;

if the current packet was received from the trailing path, then:

performing a first comparison between (i) the delay counter and (ii) a difference between the current sequence number and a previous sequence number of a trailing-path packet previously received from the trailing path;

if the first comparison indicates that the difference is less than the delay counter, then (1) rejecting the current packet and (2) updating the delay counter based on the current sequence number and the previous trailing-path sequence number; and

if the first comparison indicates that the difference is greater than the delay counter, then (1) accepting the current packet; (2) updating the select counter based on the current sequence number, (3) updating the delay counter based on the current sequence number and the previous trailing-path sequence number; and (4) identifying the trailing path as the leading path.

11. The method of claim 10 , wherein:

the received packets are duplicate packets transmitted during duplicate packet transmission; and

a bit in the current packet identifies whether a number of transmitted duplicate packets since initiation of duplicate packet transmission is less than a specified threshold number.

12. The method of claim 11 , wherein the bit is used to detect initiation of duplicate packet transmission following a failure of one of the first or second paths.

13. The method of claim 11 , further comprising:

performing a determination of the value of the bit; and

if the determination indicates that the number of transmitted duplicate packets since the initiation of duplicate packet transmission is less than the specified threshold number, then:

performing a second comparison between the bit and the corresponding bit of the previously accepted packet;

if the second comparison indicates that the bit and the corresponding bit have different values, then (1) resetting the select counter and the delay counter based on the current sequence number; and

if the second comparison indicates that the bit and the corresponding bit have the same value, then:

performing a third comparison between the current sequence number and the select counter;

if the third comparison indicates that the current sequence number is less than the select counter, then (1) accepting the current packet and (2) resetting the select counter and the delay counter based on the current sequence number; and

if the third comparison indicates that the current sequence number is greater than the select counter, then:

performing a fourth comparison between the current sequence number and the delay counter;

if the fourth comparison indicates that the current sequence number is greater than the delay counter, then accepting the current packet; and

if the fourth comparison indicates that the current sequence number is less than the delay counter, then rejecting the current packet.

14. The method of claim 10 , wherein the delay counter is adjusted based on a difference between the current sequence number and a previous same-path sequence number.

15. A method for processing received packets having sequence numbers, comprising the steps of:

storing previous inner and outer sequence numbers associated with a previously accepted packet;

receiving a current packet having a current sequence number via either a first path or a second path, wherein a bit in the current packet identifies whether the current sequence number is an inner sequence number or an outer sequence number, wherein:

if the current sequence number is the inner sequence number, then the current packet is an inner sequence packet;

if the current sequence number is the outer sequence number, then the current packet is an outer sequence packet; and

a specified number of inner sequence packets are transmitted between each consecutive pair of outer sequence packets;

determining, based on the current sequence number and the bit, a current inner sequence number and a current outer sequence number for the current packet, wherein the current packet contains one of the current inner sequence number and the current outer sequence number, but not both; and

comparing the current inner and outer sequence numbers for the current packet to the previous inner and outer sequence numbers associated with the previously accepted packet to determine whether to accept the current packet.

Assignments (13)
PATENT SECURITY AGREEMENT Recorded Aug 6, 2024
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 068328/0674 →
RELEASE OF LIEN ON PATENTS Recorded Aug 5, 2024
From: BARINGS FINANCE LLC
To: RPX CORPORATION
Reel/Frame 068328/0278 →
PATENT SECURITY AGREEMENT Recorded Apr 22, 2023
From: RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 063429/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
CHANGE OF NAME Recorded Feb 7, 2019
From: LUCENT TECHNOLOGIES INC.
To: ALCATEL-LUCENT USA INC.
Reel/Frame 049887/0613 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2014
From: CREDIT SUISSE AG
To: ALCATEL-LUCENT USA INC.
Reel/Frame 033950/0261 →
SECURITY INTEREST Recorded Mar 7, 2013
From: ALCATEL-LUCENT USA INC.
To: CREDIT SUISSE AG
Reel/Frame 030510/0627 →