IP Library Granted Patent US 11,943,326
Granted Patent B2
US 11,943,326 · App. 18/121,437 · Granted Mar 26, 2024

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/14H04L12/4641H04L43/08H04L43/0811H04L43/16H04L43/50H04L67/141H04L67/143H04L69/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 11,943,326
App. No.
18/121,437
Granted
Mar 26, 2024
Kind
B2
Abstract

One example may include a process that includes establishing a transmission control protocol (TCP) connection between a client device and a server to form a virtual private network (VPN), permitting communication between the client device and the server on the TCP connection, monitoring, via the VPN server, communication over the TCP connection to identify one or more connection parameters, establishing a second connection between the client device and the server when the one or more connection parameters indicate a slowing of the TCP connection below a threshold and below a previously measured connection rate, receiving, via the TCP connection, application data used by one of the applications operating on the client device, and receiving, via the second connection, application data used by another application of the applications.

Claims (60)

1. A method comprising:

establishing, via a virtual private network (VPN) server, a transmission control protocol (TCP) connection between a client device and the VPN server;

monitoring, via the VPN server, communication over the TCP connection between the client device and the VPN server to identify one or more connection parameters;

establishing, via the VPN server, a second connection between the client device and the server when the one or more connection parameters indicate a slowing data rate of the TCP connection below a threshold and below a previously measured data rate;

bonding, via the VPN server, the TCP connection and the second connection permitting data packets associated with an application used by the client device to be split between the TCP connection and the second connection; and

forwarding, via the VPN server, a portion of the data packets associated with the application to the client device over the TCP connection and concurrently forwarding a remaining portion of the data packets associated with the application over the second connection.

2. The method of claim 1 , wherein the one or more connection parameters comprise one or more of a data rate, an error rate, and a latency value, and wherein the threshold is a data rate threshold, an error rate threshold, or a latency threshold.

3. The method of claim 1 , wherein the second 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 first, second and third connections together as a single bonded channel.

7. The method of claim 6 , comprising

determining the first or second connections has resumed the one or more connection parameters to be above the threshold; and

removing one of the three connections.

8. A virtual private network (VPN) server comprising: a processor configured to

establish a transmission control protocol (TCP) connection between a client device and the VPN server;

monitor communication over the TCP connection between the client device and the VPN server to identify one or more connection parameters;

establish a second connection between the client device and the VPN server when the one or more connection parameters indicate a slowing data rate of the TCP connection below a threshold and below a previously measured data rate;

bond the TCP connection and the second connection to permit data packets associated with an application used by the client device to be split between the TCP connection and the second connection; and

forward a portion of the data packets associated with the application to the client device over the TCP connection and concurrently forward a remaining portion of the data packets associated with the application over the second connection.

9. The VPN server of claim 8 , wherein the one or more connection parameters comprise one or more of a data rate, an error rate, and a latency value, and wherein the threshold is a data rate threshold, an error rate threshold, or a latency threshold.

10. The VPN server of claim 8 , wherein the second connection is a user datagram protocol (UDP) connection.

11. The VPN 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 VPN 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 VPN server of claim 8 , wherein the processor is further configured to

add at least one third connection; and

bond the first, second and third connections together as a single bonded channel.

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

determine the first or second connections has resumed the one or more connection parameters to be above the threshold; 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, via a virtual private network (VPN) server, a transmission control protocol (TCP) connection between a client device and the VPN server;

monitoring, via the VPN server, communication over the TCP connection between the client device and the VPN server to identify one or more connection parameters;

establishing, via the VPN server, a second connection between the client device and the server when the one or more connection parameters indicate a slowing data rate of the TCP connection below a threshold and below a previously measured data rate;

bonding, via the VPN server, the TCP connection and the second connection permitting data packets associated with an application used by the client device to be split between the TCP connection and the second connection; and

forwarding, via the VPN server, a portion of the data packets associated with the application to the client device over the TCP connection and concurrently forwarding a remaining portion of the data packets associated with the application over the second connection.

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

17. The non-transitory computer readable storage medium of claim 15 , wherein the second 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 17 , 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 first, second and third connections together as a single bonded channel.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2023
From: PRODOEHL, BRIAN; GIZIS, ALEXANDER; CUNNINGHAM, KEVIN; VOLEK, HARRY
To: CONNECTIFY, INC.
Reel/Frame 062980/0793 →
Continuity (3)
Continuation 17499833 · Oct 12, 2021
Provisional Application 63091369 · Oct 14, 2020
Related Publication 20230224234A1 · Jul 13, 2023