IP Library Granted Patent US 11,936,522
Granted Patent B2
US 11,936,522 · App. 17/499,829 · Granted Mar 19, 2024

Selecting and operating an optimal virtual private network among multiple virtual private networks

Inventors: Kevin Cunningham (Swarthmore, PA); Brian Prodoehl (Plymouth Meeting, PA); Alexander Gizis (Philadelphia, PA)
Assignee: CONNECTIFY, INC.
H04L41/0816H04L41/5009H04L43/0811
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,936,522
App. No.
17/499,829
Granted
Mar 19, 2024
Kind
B2
Abstract

One example process may include enabling a connection between one of a plurality of client devices and one or more servers via one of a plurality of virtual private network servers (VPNs), monitoring connection performance of the connection over a period of time, modifying one or more connection parameters associated with the connection of the one client device based on the monitored connection performance, identifying whether an increase or decrease in a performance of the connection has occurred based on the modified one or more connection parameters, when an increase in performance is identified, storing a current connection status and the modified one or more modified connection parameters in a temporary data file, and transmitting the temporary data file to one or more of the other VPN servers and the plurality of client devices.

Claims (59)

1. A method comprising:

enabling a connection between a client device and one or more servers via a virtual private network (VPN) server, wherein the connection is established to have a specific data rate based on a type of application used by the client device;

monitoring, via the VPN server, connection performance of the connection over a period of time for the application used by the client device;

modifying one or more connection parameters of the connection including one or more of a data rate, data compression, a packet type and a protocol used on the connection;

identifying, via the VPN server, whether an increase or decrease in a performance of the connection has occurred based on the one or more modified connection parameters;

when an increase in performance is identified, storing, via the VPN server, a current connection status and the modified one or more modified connection parameters in a temporary data file, wherein the increase in performance is identified based on a determination the connection has maintained a data rate above a minimum data rate threshold and has not exceeded a packet loss threshold for a period of time while using the application;

determining, via the VPN server, another client device communicating with the VPN server is using a same type of application as the client device;

forwarding, via the VPN server, the temporary data file to the another client device; and

receiving, via the VPN server, data from the another client device in a communication session between the VPN server and the another client device, wherein the one or more modified connection parameters are used to update a data structure associated with the same application used by the another client device in the communication session to optimize communication between the another client device and the VPN server while using the same type of application.

2. The method of claim 1 , comprising

when a client device request to connect is received by the VPN server, forwarding the temporary data file to the requesting client device.

3. The method of claim 2 , comprising

applying one or more of the modified connection parameters to the requesting client device that sent the request; and

forwarding a new request to a different VPN server than the VPN server that received the request based on the applied one or more modified connection parameters.

4. The method of claim 3 , comprising

providing streaming content from the one or more servers via the different VPN server to the requesting client device by applying the one or more modified connection parameters.

5. The method of claim 1 , comprising transmitting the temporary data file to another VPN server among a plurality of other VPN servers, and wherein when the another VPN server is monitored for the period of time and performance of a connection associated with the another VPN server has increased, transmitting the temporary data file to all remaining VPN servers of the plurality of other VPN servers.

6. The method of claim 1 , comprising

when a decrease in performance is identified by the client device, storing a current connection status and the modified one or more connection parameters in the temporary data file;

transmitting the temporary data file to one or more other VPN servers and other client devices; and

attempting to connect to a different VPN server while using the application on the client device.

7. A virtual private network (VPN) server comprising:

a processor configured to

enable a connection between a client device and one or more servers via the VPN server, which establishes the connection to have a specific data rate based on a type of application used by the client device;

monitor connection performance of the connection over a period of time for the application used by the client device;

modify one or more connection parameters of the connection including one or more of a data rate, data compression, a packet type, and a protocol used on the connection;

identify whether an increase or decrease in a performance of the connection has occurred based on the one or more modified connection parameters;

when an increase in performance is identified, store a current connection status and the modified one or more modified connection parameters in a temporary data file, wherein the increase in performance is identified based on a determination the connection has maintained a data rate above a minimum data rate threshold and has not exceeded a packet loss threshold for a period of time while using the application;

determine another client device communicating with the VPN server is using a same type of application as the client device;

forward the temporary data file to the another client device; and

receive data from the another client device in a communication session between the VPN server and the another client device, wherein the one or more modified connection parameters are used to update a data structure associated with the same application used by the another client device in the communication session to optimize communication between the another client device and the VPN server while using the same type of application.

8. The VPN server of claim 7 , wherein when a client device request to connect is received by the VPN server, the VPN server is configured to transmit the temporary data file to the requesting client device.

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

apply one or more of the modified connection parameters to the requesting client device that sent the request; and

forward a new request to a different VPN server than the VPN server that received the request based on the applied one or more modified connection parameters.

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

provide streaming content from the one or more servers via the different VPN server to the requesting client device by applying the one or more modified connection parameters.

11. The VPN server of claim 7 , wherein the VPN server transmits the temporary data file to a another VPN server among a plurality of other VPN servers, and wherein when the another VPN server is monitored for the period of time and performance of a connection associated with the another VPN server has increased, transmitting the temporary data file to all remaining VPN servers of the plurality of other VPN servers.

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

when a decrease in performance is identified by the client device, store a current connection status and the modified one or more connection parameters in the temporary data file;

forward the temporary data file to one or more other VPN servers and plurality of other client devices; and

attempt to connect to a different VPN server while using the application on the client device.

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

enabling a connection between a client device and one or more servers via one a virtual private network (VPN) server, wherein the connection is established to have a specific data rate based on a type of application used by the client device;

monitoring, via the VPN server, connection performance of the connection over a period of time for the application used by the client device;

modifying one or more connection parameters of the connection including one or more of a data rate, data compression, a packet type and a protocol used on the connection;

identifying, via the VPN server, whether an increase or decrease in a performance of the connection has occurred based on the one or more modified connection parameters;

when an increase in performance is identified, storing, via the VPN server, a current connection status and the modified one or more modified connection parameters in a temporary data file, wherein the increase in performance is identified based on a determination the connection has maintained a data rate above a minimum data rate threshold and has not exceeded a packet loss threshold for a period of time while using the application;

determining, via the VPN server, another client device communicating with the VPN server is using a same type of application as the client device;

forwarding, via the VPN server, the temporary data file to the another client device; and

receiving, via the VPN server, data from the another client device in a communication session between the VPN server and the another client device, wherein the one or more modified connection parameters are used to update a data structure associated with the same application used by the another client device in the communication session to optimize communication for between the another client device and the VPN server while using the same type of application.

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

when a client device request to connect is received by the VPN server, forwarding the temporary data file to the requesting client device.

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

applying one or more of the modified connection parameters to the requesting client device that sent the request; and

forwarding a new request to a different VPN server than the VPN server that received the request based on the applied one or more modified connection parameters.

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

providing streaming content from the one or more servers via the different VPN server to the requesting client device by applying the one or more modified connection parameters.

17. The non-transitory computer readable storage medium of claim 13 , wherein the processor is further configured to perform transmitting the temporary data file to another VPN server among a plurality of other VPN servers, and wherein when the another VPN server is monitored for the period of time and performance of a connection associated with the another VPN server has increased, transmitting the temporary data file to all remaining VPN servers of the plurality of other VPN servers.

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: CUNNINGHAM, KEVIN; PRODOEHL, BRIAN; GIZIS, ALEXANDER
To: CONNECTIFY, INC.
Reel/Frame 057771/0623 →
Continuity (2)
Provisional Application 63091352 · Oct 14, 2020
Related Publication 20220116273A1 · Apr 14, 2022