IP Library Granted Patent US 12,445,540
Granted Patent B2
US 12,445,540 · App. 18/581,683 · Granted Oct 14, 2025

Providing multiple TCP connections between a client and server

Inventors: Kevin Cunningham (Swarthmore, PA); Harry Volek (Philadelphia, PA); Brian Prodoehl (Plymouth Meeting, PA); Alexander Gizis (Philadelphia, PA)
Assignee: CONNECTIFY, INC.
H04L69/161H04L12/4641H04L43/0811H04L43/16H04L43/50H04L67/141H04L67/143H04L69/14H04L69/165
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,445,540
App. No.
18/581,683
Granted
Oct 14, 2025
Kind
B2
Abstract

One example may include a process that includes establishing a connection between a client device and a server, monitoring communication over the connection to identify whether there is a communication delay based on one or more communication thresholds, establishing another connection between the client device and the server when a communication delay is detected based on the one or more communication thresholds, bonding the connection and the another connection permitting data packets associated with an application used by the client device to be split between the connection and the another connection, and forwarding a portion of the data packets associated with the application to the client device over the connection and concurrently forwarding a remaining portion of the data packets associated with the application over the another connection.

Claims (61)

1. A method comprising:

establishing a connection between a client device and a server;

establishing another connection between the client device and the server when a communication delay exceeding one or more monitored communication thresholds is detected on the connection;

bonding the connection and the another connection causing a portion of data packets associated with an application used by the client device to be sent over the connection and a remaining portion of the data packets to be concurrently sent over the another connection;

determining the one or more monitored communication thresholds are met by one or more of the connection and the another connection over a period of time; and

removing one of the connection and the another connection based on the met one or more monitored communication thresholds.

2. The method of claim 1 , wherein the one or more monitored communication thresholds comprise one or more of a data rate threshold, an error rate threshold, and a latency threshold.

3. The method of claim 1 , wherein the connection is a transmission control protocol (TCP) connection and the another connection is a user datagram protocol (UDP) connection.

4. The method of claim 3 , comprising

identifying UDP packets created by another application on the client device;

receiving the UDP packets identified from the client device on the UDP connection; and

receiving TCP packets identified from the application on the client device via the TCP connection.

5. The method of claim 4 , comprising

determining no UDP packets are being sent by the client device for a period of time; and

closing the UDP connection.

6. The method of claim 1 , comprising

adding at least one third connection; and

bonding the connection, the another connection and the third connection together as a single bonded channel.

7. The method of claim 6 , comprising

determining the connection or the another connection has resumed to be above the one or more monitored communication thresholds; and

removing one of the three connections.

8. A server comprising:

a processor configured to

establish a connection between a client device and the server;

establish another connection between the client device and the server when a communication delay exceeding one or more communication thresholds is detected on the connection or more communication thresholds;

bond the connection and the another connection to cause a portion of data packets associated with an application used by to the client device to be sent over the connection and a remaining portion of the data packets to be concurrently sent over the another connection;

determine the one or more monitored communication thresholds are met by one or more of the connection and the another connection over a period of time; and

remove one of the connection and the another connection based on the met one or more monitored communication thresholds.

9. The server of claim 8 , wherein the one or more monitored communication thresholds comprise one or more of a data rate threshold, an error rate threshold, and a latency threshold.

10. The server of claim 8 , wherein the connection is a transmission control protocol (TCP) connection and the another connection is a user datagram protocol (UDP) connection.

11. The server of claim 10 , wherein the processor is further configured to

identify UDP packets created by another application on the client device;

receive the UDP packets identified from the client device on the UDP connection; and

receive TCP packets identified from the application on the client device via the TCP connection.

12. The server of claim 11 , wherein the processor is further configured to

determine no UDP packets are being sent by the client device for a period of time; and

close the UDP connection.

13. The server of claim 8 , wherein the processor is further configured to

add at least one third connection; and

bond the connection, the another connection and the third connection together as a single bonded channel.

14. The server of claim 13 , wherein the processor is further configured to

determine the connection or the another connection has resumed to be above the one or more monitored connection thresholds; and

remove one of the three connections.

15. A non-transitory computer readable storage medium configured to store instructions that when executed cause a processor to perform:

establishing a connection between a client device and a server;

establishing another connection between the client device and the server when a communication delay exceeding one or more monitored communication thresholds is detected on the connection;

bonding the connection and the another connection causing a portion of data packets associated with an application used by the client device to be sent over the connection and a remaining portion of the data packets to be concurrently sent over the another connection;

determining the one or more monitored communication thresholds are met by one or more of the connection and the another connection over a period of time; and

removing one of the connection and the another connection based on the met one or more monitored communication thresholds.

16. The non-transitory computer readable storage medium of claim 15 , wherein the one or more monitored communication thresholds comprise one or more of a data rate threshold, an error rate threshold, and a latency threshold.

17. The non-transitory computer readable storage medium of claim 15 , wherein the connection is a transmission control protocol (TCP) connection and the another connection is a user datagram protocol (UDP) connection.

18. The non-transitory computer readable storage medium of claim 17 , wherein the processor is further configured to perform:

identifying UDP packets created by another application on the client device;

receiving the UDP packets identified from the client device on the UDP connection; and

receiving TCP packets identified from the application on the client device via the TCP connection.

19. The non-transitory computer readable storage medium of claim 18 , wherein the processor is further configured to perform:

determining no UDP packets are being sent by the client device for a period of time; and

closing the UDP connection.

20. The non-transitory computer readable storage medium of claim 15 , wherein the processor is further configured to perform:

adding at least one third connection; and

bonding the connection, the another connection and the third connection together as a single bonded channel.

Assignments (3)
CHANGE OF ASSIGNEE ADDRESS Recorded Apr 19, 2025
From: CONNECTIFY, INC.
To: CONNECTIFY, INC.
Reel/Frame 070892/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2024
From: PRODOEHL, BRIAN; GIZIS, ALEXANDER; CUNNINGHAM, KEVIN; VOLEK, HARRY
To: CONNECTIFY, INC.
Reel/Frame 067628/0578 →
CHANGE OF ASSIGNEE ADDRESS Recorded Jun 5, 2024
From: CONNECTIFY, INC.
To: CONNECTIFY, INC.
Reel/Frame 067635/0475 →
Continuity (4)
Continuation 18121437 · Mar 14, 2023
Continuation 17499833 · Oct 12, 2021
Provisional Application 63091369 · Oct 14, 2020
Related Publication 20240314221A1 · Sep 19, 2024
References Cited (4)
US 20120005276A1 · Guo · 2012 [cited by examiner]
US 20140258461A1 · L'Heureux · 2014 [cited by examiner]
US 20190312815A1 · Altman · 2019 [cited by examiner]
US 20210235521A1 · Sung et al. · 2021 [cited by applicant]