IP Library Granted Patent US 12,238,193
Granted Patent B2
US 12,238,193 · App. 18/356,357 · Granted Feb 25, 2025

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: Lumine Group US Holdco 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 12,238,193
App. No.
18/356,357
Granted
Feb 25, 2025
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 (84)

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:

transmitting a first packet to the remote computing device, wherein the first packet is a dummy packet comprising an 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 one or more missing packets not received by the remote computing device,

determining a set of missing sequence numbers corresponding to the one or more missing packets wherein the gap of missing packets comprises at least a first sequence number for a first missing packet;

transmitting a set of missing packets to the remote computing device, wherein each packet of the set of missing packets is a dummy packet comprising a sequence number of the set of missing sequence numbers;

receiving a set of additional response packets from the remote computing device, wherein the additional response packets comprise respective acknowledgment sequence numbers indicative of the remote computing device receiving the set of missing sequence numbers packet; and

upon determining that there is no gap between an acknowledgment sequence number, of the set of additional response packets, and a sequence number of the transmitted set of missing sequence numbers, determining the current sequence number based on a next ordered number after a value of the acknowledgment sequence number, an estimated next sequence number, or both.

2. The computerized method of claim 1 , further comprising determining the estimated next sequence number for transmitting data in the communication session based on checkpointed data.

3. The computerized 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 next sequence number to an expected sequence number by the remote computing device;

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 next 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 next sequence number, or both.

4. The computerized method of claim 3 , wherein:

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

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

5. The computerized 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 next 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.

6. The computerized method of claim 5 , wherein:

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

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

7. The computerized method of claim 1 , wherein transmitting the set of missing packets comprises:

transmitting a third packet to the remote computing device, wherein the third packet is a dummy packet comprising a first sequence number of the set of missing sequence numbers; and

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.

8. The computerized method of claim 7 , wherein:

determining the acknowledgment sequence number based on an estimated next sequence number.

9. 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 execute a computerized method, the computerized method comprising:

transmitting a first packet to the remote computing device, wherein the first packet is a dummy packet comprising an 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 one or more missing packets not received by the remote computing device,

determining a set of missing sequence numbers corresponding to the one or more missing packets wherein the gap of missing packets comprises at least a first sequence number for a first missing packet;

transmitting a set of missing packets to the remote computing device, wherein each packet of the set of missing packets is a dummy packet comprising a sequence number of the set of missing sequence numbers;

receiving a set of additional response packets from the remote computing device, wherein the additional response packets comprise respective acknowledgment sequence numbers indicative of the remote computing device receiving the set of missing sequence numbers packet; and

upon determining that there is no gap between an acknowledgment sequence number, of the set of additional response packets, and a sequence number of the transmitted set of missing sequence numbers, determining the current sequence number based on a next ordered number after a value of the acknowledgment sequence number, an estimated next sequence number, or both.

10. The apparatus of claim 9 , further comprising determining the estimated next sequence number for transmitting data in the communication session based on checkpointed data.

11. The apparatus of claim 9 ,

wherein:

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

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 next 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 next sequence number, or both.

12. The apparatus of claim 11 , wherein:

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

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

13. The apparatus of claim 9 ,

wherein:

the first packet is configured to be processed by the remote computing device regardless of an order of the estimated next 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.

14. The apparatus of claim 13 , wherein:

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

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

15. The apparatus of claim 9 , wherein transmitting the set of missing packets comprises:

transmitting a third packet to the remote computing device, wherein the third packet is a dummy packet comprising a first sequence number of the set of missing sequence numbers; and

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.

16. The apparatus of claim 15 , wherein:

determining the acknowledgment sequence number based on an estimated next sequence number.

17. At least one non-transitory computer-readable storage medium storing processor executable instructions that, when executed by at least one computer hardware processor, cause the at least one computer hardware processor to perform 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:

transmitting a first packet to the remote computing device, wherein the first packet is a dummy packet comprising an 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 one or more missing packets not received by the remote computing device,

determining a set of missing sequence numbers corresponding to the one or more missing packets wherein the gap of missing packets comprises at least a first sequence number for a first missing packet;

transmitting a set of missing packets to the remote computing device, wherein each packet of the set of missing packets is a dummy packet comprising a sequence number of the set of missing sequence numbers;

receiving a set of additional response packets from the remote computing device, wherein the additional response packets comprise respective acknowledgment sequence numbers indicative of the remote computing device receiving the set of missing sequence numbers packet; and

upon determining that there is no gap between an acknowledgment sequence number, of the set of additional response packets, and a sequence number of the transmitted set of missing sequence numbers, determining the current sequence number based on a next ordered number after a value of the acknowledgment sequence number, an estimated next sequence number, or both.

18. The at least one non-transitory computer-readable storage medium of claim 17 , wherein the method further comprises determining the estimated next sequence number for transmitting data in the communication session based on checkpointed data.

19. The at least one non-transitory computer-readable storage medium of claim 17 , wherein:

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

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 next 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 next sequence number, or both.

20. The at least one non-transitory computer-readable storage medium of claim 17 , 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 (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2025
From: CASA SYSTEMS, INC.
To: LUMINE GROUP US HOLDCO INC.
Reel/Frame 070046/0945 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2024
From: HOOKER, SHANE; MO, BIN; EIPE, JACOB; PALIWAL, GAURAV
To: CASA SYSTEMS, INC.
Reel/Frame 066223/0418 →
Continuity (4)
Continuation 17541590 · Dec 3, 2021
Continuation 16782978 · Feb 5, 2020
Provisional Application 62801365 · Feb 5, 2019
Related Publication 20240129384A1 · Apr 18, 2024
References Cited (64)
US 6826198B2 · Turina · 2004 [cited by examiner]
US 6947379B1 · Gleichauf et al. · 2005 [cited by applicant]
US 7006433B1 · Dantu · 2006 [cited by examiner]
US 7164693B2 · Turina · 2007 [cited by examiner]
US 7388829B2 · Sivakumar · 2008 [cited by examiner]
US 7412600B2 · Wong · 2008 [cited by examiner]
US 7457882B2 · Stewart · 2008 [cited by examiner]
US 7535916B2 · Stewart · 2009 [cited by examiner]
US 7685290B2 · Satapati · 2010 [cited by examiner]
US 7733914B2 · Baker · 2010 [cited by examiner]
US 7738495B2 · Dalal · 2010 [cited by examiner]
US 7885264B2 · Tateno · 2011 [cited by examiner]
US 7903546B2 · Dalal · 2011 [cited by examiner]
US 7929422B2 · Ramalho · 2011 [cited by examiner]
US 7970402B2 · Wu · 2011 [cited by examiner]
US 7974186B2 · Yonezawa · 2011 [cited by examiner]
US 7996517B2 · Carter · 2011 [cited by examiner]
US 9118521B2 · Bruss · 2015 [cited by examiner]
US 9225645B2 · Coene · 2015 [cited by examiner]
US 9332092B2 · Chen · 2016 [cited by examiner]
US 9438517B2 · Chan · 2016 [cited by examiner]
US 9451018B2 · Tremblay · 2016 [cited by examiner]
US 9495378B2 · Sundaram · 2016 [cited by examiner]
US 9503355B2 · Honda · 2016 [cited by examiner]
US 9660912B2 · Gouache · 2017 [cited by examiner]
US 9736039B2 · Chan · 2017 [cited by examiner]
US 10129294B2 · Vengalil · 2018 [cited by examiner]
US 10230563B2 · Porfiri · 2019 [cited by examiner]
US 10419969B2 · Laselva · 2019 [cited by examiner]
US 10505677B2 · Shpiner · 2019 [cited by examiner]
US 10757147B2 · Campbell · 2020 [cited by examiner]
US 10999200B2 · Vedam · 2021 [cited by examiner]
US 11218578B2 · Hooker et al. · 2022 [cited by applicant]
US 11336568B2 · Patil · 2022 [cited by examiner]
US 20010037326A1 · Bamford et al. · 2001 [cited by applicant]
US 20040042505A1 · Oh · 2004 [cited by applicant]
US 20040197079A1 · Latvala · 2004 [cited by examiner]
US 20060153202A1 · Dantu · 2006 [cited by examiner]
US 20060159011A1 · Dalal et al. · 2006 [cited by applicant]
US 20060253575A1 · Carter et al. · 2006 [cited by applicant]
US 20070168823A1 · Carter et al. · 2007 [cited by applicant]
US 20100091710A1 · Jung · 2010 [cited by examiner]
US 20140293879A1 · Chen et al. · 2014 [cited by applicant]
US 20150019705A1 · Suryanaryanan et al. · 2015 [cited by applicant]
US 20150063113A1 · Yoshida · 2015 [cited by examiner]
US 20150063350A1 · Sundaram et al. · 2015 [cited by applicant]
US 20170237838A1 · Vandevoorde · 2017 [cited by examiner]
US 20200252489A1 · Hooker et al. · 2020 [cited by applicant]
US 20210328928A1 · Vedam · 2021 [cited by examiner]
US 20220094771A1 · Hooker et al. · 2022 [cited by applicant]
CN 1756261A · 2006 [cited by applicant]
CN 101517988A · 2009 [cited by applicant]
CN 104012021A · 2014 [cited by applicant]
CN 107113178A · 2017 [cited by applicant]
CN 107872675A · 2018 [cited by applicant]
CN 108334424A · 2018 [cited by applicant]
CN 108702671A · 2018 [cited by applicant]
JP 2000078195A · 2000 [cited by applicant]
JP 2006101428A · 2006 [cited by applicant]
JP 2010045760A · 2010 [cited by applicant]
JP 2018535582A · 2018 [cited by applicant]
WO WO2005060200A1 · 2005 [cited by applicant]
Extended European Search Report dated Jun. 28, 2022 for European Application No. 20753130.2. [cited by applicant]
International Search Report and Written Opinion mailed Apr. 30, 2020 for International Application No. PCT/US2020/016548. [cited by applicant]