IP Library Granted Patent US 11,632,443
Granted Patent B2
US 11,632,443 · App. 17/499,833 · Granted Apr 18, 2023

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/14H04L43/08H04L43/16H04L67/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,632,443
App. No.
17/499,833
Granted
Apr 18, 2023
Kind
B2
Abstract

One example may include a process that includes establishing a first 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 first TCP connection, monitoring communication over the first TCP connection to identify one or more connection parameters, and establishing a second TCP connection between the client device and the server when the one or more connection parameters indicate a slowing of the first TCP connection below a threshold and below a previously measured connection rate.

Claims (54)

1. A method comprising:

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

permitting communication between the client device and the VPN server on the first TCP connection;

monitoring, via the VPN server, communication over the first TCP connection to identify one or more connection parameters;

establishing at least one additional TCP connection to create a plurality of TCP connections between the client device and the VPN server when the one or more connection parameters indicate a slowing of the first TCP connection below a threshold and below a previously measured connection rate;

determining the one or more connection parameters indicate a slowing of the plurality of TCP connections based on operation of a plurality of applications operating on the client device;

creating a UDP connection and assigning application data used by one of the plurality of applications operating on the client device to the UDP connection; and

transmitting and receiving data associated with another application of the plurality of applications used by the client device over the plurality of TCP connections.

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 , comprising

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

closing the UDP connection.

4. The method of claim 1 , comprising

adding at least one third TCP connection; and

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

5. The method of claim 4 , comprising

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

removing one of the three TCP connections.

6. A client device comprising:

a processor configured to

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

permit communication between the client device and the server on the first TCP connection;

monitor, via the VPN server, communication over the first TCP connection to identify one or more connection parameters;

establish at least one additional TCP connection to create a plurality of TCP connections between the client device and the VPN server when the one or more connection parameters indicate a slowing of the first TCP connection below a threshold and below a previously measured connection rate;

determine the one or more connection parameters indicate a slowing of the plurality of TCP connections based on operation of a plurality of applications operating on the client device;

create a UDP connection and assigning application data used by one of the plurality of applications operating on the client device to the UDP connection; and

transmit and receive data associated with another application of the plurality of applications used by the client device over the plurality of TCP connections.

7. The client device of claim 6 , 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.

8. The client device of claim 6 , 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.

9. The client device of claim 6 , wherein the processor is further configured to

add at least one third TCP connection; and

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

10. The client device of claim 9 , wherein the processor is further configured to

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

remove one of the three TCP connections.

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

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

permitting communication between the client device and the VPN server on the first TCP connection;

monitoring, via the VPN server, communication over the first TCP connection to identify one or more connection parameters;

establishing at least one additional TCP connection to create a plurality of TCP connections between the client device and the VPN server when the one or more connection parameters indicate a slowing of the first TCP connection below a threshold and below a previously measured connection rate;

determining the one or more connection parameters indicate a slowing of the plurality of TCP connections based on operation of a plurality of applications operating on the client device;

creating a UDP connection and assigning application data used by one of the plurality of applications operating on the client device to the UDP connection; and

transmitting and receiving data associated with another application of the plurality of applications used by the client device over the plurality of TCP connections.

12. The non-transitory computer readable storage medium of claim 11 , 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.

13. The non-transitory computer readable storage medium of claim 11 , 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.

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

adding at least one third TCP connection;

bonding the first, second and third TCP connections together as a single bonded channel;

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

removing one of the three TCP connections.

Assignments (2)
CHANGE OF ASSIGNEE ADDRESS Recorded Sep 21, 2025
From: CONNECTIFY, INC.
To: CONNECTIFY, INC.
Reel/Frame 072957/0512 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2021
From: PRODOEHL, BRIAN; GIZIS, ALEXANDER; CUNNINGHAM, KEVIN; VOLEK, HARRY
To: CONNECTIFY, INC.
Reel/Frame 057771/0644 →
Continuity (2)
Provisional Application 63091369 · Oct 14, 2020
Related Publication 20220116484A1 · Apr 14, 2022