IP Library Granted Patent US 11,750,725
Granted Patent B2
US 11,750,725 · App. 17/541,590 · Granted Sep 5, 2023

Methods and apparatus for recovering network association information

Inventors: Shane Hooker (Milford, NH); Bin Mo (Acton, MA); Jacob Eipe (Nashua, NH); Gaurav Paliwal (Waltham, MA)
Assignee: Casa Systems, Inc.
H04L69/326H04L5/0055H04L47/34H04L67/14H04L69/163
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 11,750,725
App. No.
17/541,590
Granted
Sep 5, 2023
Kind
B2
Abstract

The techniques described herein relate to methods, apparatus, and computer readable media configured to determine a current data transmission sequence number for a next packet in a communication session with a remote computing device. An interruption in the communication session is detected. Checkpointed data for the communication session is determined that is indicative of a previous sequence number used for a previous packet sent to the remote computing device. A resolution procedure is performed to determine the current data transmission sequence number for the next packet in the communication session, including determining an estimated next sequence number for transmitting data in the communication session based on the checkpointed data, transmitting a first packet to the remote computing device, receiving a second packet from the remote computing device that has an associated sequence number, and determining the current sequence number for the next packet in the communication session.

Claims (106)

1. A computerized method for determining a current sequence number for a next packet in a communication session with a remote computing device, the method comprising:

determining an estimated next sequence number for transmitting data in the communication session based on checkpointed data;

transmitting a first packet to the remote computing device, wherein the first packet is a dummy packet comprising the estimated next sequence number;

receiving a second packet from the remote computing device, wherein the second packet comprises an associated sequence number;

determining, based on the second packet, a gap of missing packets not received by the remote computing device, wherein the gap of missing packets comprises at least a first sequence number for a first missing packet;

transmitting a third packet to the remote computing device, wherein the third packet is a dummy packet comprising the first sequence number;

receiving a fourth packet from the remote computing device, wherein the fourth packet comprises an acknowledgment sequence number indicative of the remote computing device receiving the third packet;

determining the acknowledgment sequence number based on an estimated sequence number; and

determining the current sequence number based on a next ordered number after the value of the acknowledgment sequence number, the estimated sequence number, or both.

2. The method of claim 1 ,

wherein:

the first packet is configured to be processed by the remote computing device regardless of an order of the estimated sequence number to an expected sequence number by the remote computing device; and

the associated sequence number of the second packet is representative of an acknowledgment of a last received sequence number for a last packet received by the remote computing device; and

determining the current sequence number comprises:

determining the associated sequence number of the second packet is equal to the estimated sequence number; and

determining the current sequence number is equal to the next ordered number after the value of the associated sequence number, the estimated sequence number, or both.

3. The method of claim 2 , wherein:

the communication session is a Stream Control Transmission Protocol (SCTP) connection; and

the current sequence number comprises a current transmission sequence number (TSN).

4. The method of claim 1 ,

wherein:

the first packet is configured to be processed by the remote computing device regardless of an order of the estimated sequence number to an expected sequence number by the remote computing device; and

the second packet comprises a data packet; and

determining the current sequence number comprises:

determining the second packet is in response to the first packet; and

determining the current sequence number for the remote computing device is equal to the associated sequence number.

5. The method of claim 4 , wherein:

the communication session is a Stream Control Transmission Protocol (SCTP) connection; and

the current sequence number comprises a current transmission sequence number (TSN).

6. A computerized method for determining a current sequence number for a next packet in a communication session with a remote computing device, the method comprising:

determining an estimated next sequence number for transmitting data in the communication session based on checkpointed data;

transmitting a first packet to the remote computing device, wherein the first packet is a dummy packet, for a first stream, comprising the estimated next sequence number, and configured to be processed by the remote computing device in order based on an expected sequence number by the remote computing device;

receiving a second packet from the remote computing device, wherein the second packet comprises an associated sequence number; and

determining the current sequence number comprises:

determining the second packet is a data packet sent in response to the first packet; and

determining the current sequence number for the first stream based on a next ordered number after the value of an estimated sequence number of the first packet, wherein the estimated sequence number of the first packet is an estimated sequence number for the first stream.

7. The method of claim 6 , wherein:

the communication session is a Stream Control Transmission Protocol (SCTP) connection; and

the current sequence number comprises a current stream sequence number (SSN) for the first stream.

8. The method of claim 6 , further comprising:

transmitting a third packet for a second stream that is different than the first stream, wherein the third packet is configured to be processed by the remote computing device in order and comprises an estimated sequence number for the second stream;

receiving a fourth packet from the remote computing device;

determining the fourth packet is a data packet sent in response to the third packet; and

determining a current sequence number for the second stream is equal to a next ordered number after the value of the estimated sequence number for the second stream.

9. A computerized method for determining a current sequence number for a next packet in a communication session with a remote computing device, the method comprising:

determining an estimated next sequence number for transmitting data in the communication session based on checkpointed data;

transmitting a first packet to the remote computing device, wherein the first packet is a dummy packet comprising the estimated next sequence number, and wherein the first packet is configured to be processed by the remote computing device regardless of an order of an estimated sequence number to an expected sequence number by the remote computing device;

receiving a second packet from the remote computing device, wherein the second packet comprises a data packet, the data packet comprises an associated sequence number;

determining the second packet is in response to the first packet; and

determining the current sequence number for the remote computing device based on the associated sequence number.

10. The method of claim 9 , wherein:

the communication session is a Stream Control Transmission Protocol (SCTP) connection; and

the current sequence number comprises a current transmission sequence number (TSN).

11. An apparatus for determining a current sequence number for a next packet in a communication session with a remote computing device, the apparatus comprising a processor in communication with memory, the processor being configured to execute instructions stored in the memory that cause the processor to execute a computerized method comprising:

determining an estimated next sequence number for transmitting data in the communication session based on checkpointed data;

transmitting a first packet to the remote computing device, wherein the first packet is a dummy packet comprising the estimated next sequence number;

receiving a second packet from the remote computing device, wherein the second packet comprises an associated sequence number;

determining, based on the second packet, a gap of missing packets not received by the remote computing device, wherein the gap of missing packets comprises at least a first sequence number for a first missing packet;

transmitting a third packet to the remote computing device, wherein the third packet is a dummy packet comprising the first sequence number;

receiving a fourth packet from the remote computing device, wherein the fourth packet comprises an acknowledgment sequence number indicative of the remote computing device receiving the third packet;

determining the acknowledgment sequence number based on an estimated sequence number; and

determining the current sequence number based on a next ordered number after the value of the acknowledgment sequence number, the estimated sequence number, or both.

12. The apparatus of claim 11 ,

wherein:

the first packet is configured to be processed by the remote computing device regardless of an order of the estimated sequence number to an expected sequence number by the remote computing device; and

the associated sequence number of the second packet is representative of an acknowledgment of a last received sequence number for a last packet received by the remote computing device; and

determining the current sequence number comprises:

determining the associated sequence number of the second packet is equal to the estimated sequence number; and

determining the current sequence number is equal to a next ordered number after the value of the associated sequence number, the estimated sequence number, or both.

13. The apparatus of claim 12 , wherein:

the communication session is a Stream Control Transmission Protocol (SCTP) connection; and

the current sequence number comprises a current transmission sequence number (TSN).

14. The apparatus of claim 11 ,

wherein:

the first packet is configured to be processed by the remote computing device regardless of an order of the estimated sequence number to an expected sequence number by the remote computing device; and

the second packet comprises a data packet; and

determining the current sequence number comprises:

determining the second packet is in response to the first packet; and

determining the current sequence number for the remote computing device is equal to the associated sequence number.

15. The apparatus of claim 14 , wherein:

the communication session is a Stream Control Transmission Protocol (SCTP) connection; and

the current sequence number comprises a current transmission sequence number (TSN).

16. An apparatus for determining a current sequence number for a next packet in a communication session with a remote computing device, the apparatus comprising a processor in communication with memory, the processor being configured to execute instructions stored in the memory that cause the processor to execute a computerized method comprising:

determining an estimated next sequence number for transmitting data in the communication session based on checkpointed data;

transmitting a first packet to the remote computing device, wherein the first packet is a dummy packet, for a first stream, comprising the estimated next sequence number, and configured to be processed by the remote computing device in order based on an expected sequence number by the remote computing device;

receiving a second packet from the remote computing device, wherein the second packet comprises an associated sequence number; and

determining the current sequence number comprises:

determining the second packet is a data packet sent in response to the first packet; and

determining the current sequence number for the first stream based on a next ordered number after the value of an estimated sequence number of the first packet, wherein the estimated sequence number of the first packet is an estimated sequence number for the first stream.

17. The apparatus of claim 16 , wherein:

the communication session is a Stream Control Transmission Protocol (SCTP) connection; and

the current sequence number comprises a current stream sequence number (SSN) for the first stream.

18. The apparatus of claim 16 , wherein the processor is further configured to execute instructions stored in the memory that cause the processor to:

send a third packet for a second stream that is different than the first stream, wherein the third packet is configured to be processed by the remote computing device in order and comprises an estimated sequence number for the second stream;

receive a fourth packet from the remote computing device;

determine the fourth packet is a data packet sent in response to the third packet; and

determine a current sequence number for the second stream is equal to a next ordered number after the value of the estimated sequence number for the second stream.

19. An apparatus for determining a current sequence number for a next packet in a communication session with a remote computing device, the apparatus comprising a processor in communication with memory, the processor being configured to execute instructions stored in the memory that cause the processor to execute a computerized method comprising:

determining an estimated next sequence number for transmitting data in the communication session based on checkpointed data;

transmitting a first packet to the remote computing device, wherein the first packet is a dummy packet comprising the estimated next sequence number, and wherein the first packet is configured to be processed by the remote computing device regardless of an order of an estimated sequence number to an expected sequence number by the remote computing device;

receiving a second packet from the remote computing device, wherein the second packet comprises a data packet, the data packet comprises an associated sequence number;

determining the second packet is in response to the first packet; and

determining the current sequence number for the remote computing device based on the associated sequence number.

20. The apparatus of claim 19 , wherein:

the communication session is a Stream Control Transmission Protocol (SCTP) connection; and

the current sequence number comprises a current transmission sequence number (TSN).

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2025
From: CASA SYSTEMS, INC.
To: LUMINE GROUP US HOLDCO INC.
Reel/Frame 070046/0945 →
PATENT SECURITY AGREEMENT Recorded Jun 15, 2023
From: CASA SYSTEMS, INC
To: DELAWARE TRUST COMPANY
Reel/Frame 064122/0193 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2021
From: HOOKER, SHANE; MO, BIN; EIPE, JACOB; PALIWAL, GAURAV
To: CASA SYSTEMS, INC.
Reel/Frame 058307/0837 →
Continuity (3)
Continuation 16782978 · Feb 5, 2020
Provisional Application 62801365 · Feb 5, 2019
Related Publication 20220094771A1 · Mar 24, 2022