IP Library Granted Patent US 11,218,578
Granted Patent B2
US 11,218,578 · App. 16/782,978 · Granted Jan 4, 2022

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,218,578
App. No.
16/782,978
Granted
Jan 4, 2022
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 data transmission sequence number for a next packet in a communication session with a remote computing device, the method comprising:

determining an interruption in the communication session;

determining checkpointed data for the communication session, wherein the checkpointed data is indicative of a previous sequence number used for a previous packet sent to the remote computing device; and

performing a resolution procedure to determine the current sequence number for the next packet in the communication session, comprising:

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, wherein the first packet is a dummy packet comprising the estimated next sequence number, and wherein the first packet is configured so that the first packet is 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 an associated sequence number; and

determining, based on the estimated next sequence number, the second packet, the associated sequence number of the second packet, or some combination thereof, the current sequence number for the next packet in the communication session.

2. The method of claim 1 ,

wherein:

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 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 determining the current sequence number comprises:

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 is equal to the estimated sequence number; and

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

5. The method of claim 1 , wherein determining the current sequence number comprises:

determining, based on the second packet, at least a first duplicate sequence number;

transmitting a third packet to the remote computing device, wherein the third packet comprises an updated estimated sequence number determined based on the estimated sequence number and the associated sequence number;

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

determining, based on the updated estimated sequence number, the fourth packet, the second acknowledgement sequence number, or some combination thereof, the current sequence number for the next packet in the communication session.

6. The method of claim 1 ,

wherein:

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.

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 transmission sequence number (TSN).

8. The method of claim 1 , further comprising transmitting a first stream packet to the remote computing device, wherein the first stream packet is a dummy packet comprising the estimated next sequence number wherein:

the first stream packet is:

for a first stream; and

configured so that the first stream packet is processed by the remote computing device in order based on the expected sequence number by the remote computing device;

the estimated sequence number of the first stream packet is an estimated sequence number for the first stream; and

determining the current sequence number comprises:

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

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

9. The method of claim 8 , 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.

10. The method of claim 8 , further comprising:

sending a third packet for a second stream that is different than the first stream, wherein the third packet is configured so that the third packet is 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 estimated sequence number for the second stream.

11. An apparatus configured to determine 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:

determine an interruption in the communication session;

determine checkpointed data for the communication session, wherein the checkpointed data is indicative of a previous sequence number used for a previous packet sent to the remote computing device; and

perform a resolution procedure to determine the current sequence number for the next packet in the communication session, comprising:

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, wherein the first packet is a dummy packet comprising the estimated next sequence number, and wherein the first packet is configured so that the first packet is 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 an associated sequence number; and

determining, based on the estimated next sequence number, the second packet, the associated sequence number of the second packet, or some combination thereof, the current sequence number for the next packet in the communication session.

12. The apparatus of claim 11 ,

wherein:

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 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 determining the current sequence number comprises:

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 is equal to the estimated sequence number; and

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

15. The apparatus of claim 11 , wherein determining the current sequence number comprises:

determining, based on the second packet, at least a first duplicate sequence number;

transmitting a third packet to the remote computing device, wherein the third packet comprises an updated estimated sequence number determined based on the estimated sequence number and the associated sequence number;

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

determining, based on the updated estimated sequence number, the fourth packet, the second acknowledgement sequence number, or some combination thereof, the current sequence number for the next packet in the communication session.

16. The apparatus of claim 11 ,

wherein:

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.

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 transmission sequence number (TSN).

18. The apparatus of claim 11 , further comprising transmitting a first stream packet to the remote computing device, wherein the first stream packet is a dummy packet comprising the estimated next sequence number wherein:

the first stream packet is:

for a first stream; and

configured so that a stream first packet is processed by the remote computing device in order based on the expected sequence number by the remote computing device;

the estimated sequence number of the first stream packet is an estimated sequence number for the first stream; and

determining the current sequence number comprises:

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

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

19. The apparatus of claim 18 , 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.

20. The apparatus of claim 18 , 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 so that the third packet is 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 estimated sequence number for the second stream.

Assignments (4)
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 →
SECURITY INTEREST Recorded Sep 25, 2020
From: CASA SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A,, AS COLLATERAL AGENT
Reel/Frame 053887/0527 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2020
From: HOOKER, SHANE; MO, BIN; EIPE, JACOB; PALIWAL, GAURAV
To: CASA SYSTEMS, INC.
Reel/Frame 052296/0420 →
Continuity (2)
Provisional Application 62801365 · Feb 5, 2019
Related Publication 20200252489A1 · Aug 6, 2020
Cited By (1)
US 12,238,193