IP Library Granted Patent US 10,447,590
Granted Patent B2
US 10,447,590 · App. 14/549,248 · Granted Oct 15, 2019

Systems and methods for dynamic connection paths for devices connected to computer networks

Inventor: William L. White (Georgetown, CA)
Assignee: Oath Inc.
H04L45/70H04L45/308
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 10,447,590
App. No.
14/549,248
Granted
Oct 15, 2019
Kind
B2
Abstract

Systems and methods are disclosed for dynamically selecting a connection path between a client device and a server. One method includes receiving, over a network at a server, a connection request from a client device; authenticating, by the server, the connection request from the client device; determining, by the server, a connection path for the authenticated client device based on the connection request; determining, by the server, whether the connection path for the authenticated client device is a new connection path based on the connection request; and storing, by the server, the connection path to a connection database in association with the authenticated client device when the connection path is determined to be new, the connection database including a plurality of connection paths between the client device and the server.

Claims (72)

1. A computer-implemented method for dynamically selecting a connection path between a client device and a server, the method comprising:

receiving, over a network at a server, a connection request from a client device;

authenticating, by the server, the connection request from the client device, wherein the server authenticates the connection request by using a digital certificate stored on the client device, and wherein a copy of the digital certificate is stored in an authentication table;

determining, by the server, a first connection path for the authenticated client device based on the connection request, wherein the first connection path is determined based on a network congestion, wherein the network congestion includes latency and bandwidth measurements, and wherein the network congestion is determined by call-backs into a protocol stack;

establishing, by the server, a virtual tunnel between the authenticated client device and the server based on the first connection path;

determining, by the server, whether the first connection path for the authenticated client device is a new connection path based on the connection request;

storing, by the server, the first connection path to a connection database in association with the authenticated client device when the first connection path is determined to be new, the connection database including a plurality of connection paths between the client device and the server;

transferring data between the client device and the server using the first connection path; and

rerouting the transferring of data between the client device and the server using a second connection path based on determining an optimal connection path during the transferring of data.

2. The method of claim 1 , further comprising:

receiving, at the server, a web request from the authenticated client device;

retrieving, by the server, a web request response based on the web request from the authenticated client device;

determining, by the server, a return connection path from the plurality of connection paths in the connection database; and

transmitting, by the server, the web request response via the determined return connection path.

3. The method of claim 2 , wherein determining the return connection path includes:

determining, by the server, whether a connection path of the plurality of connection paths is available; and

determining, by the server, the return connection path based on availability of a connection path and on criteria of the connection path.

4. The method of claim 2 , wherein determining the return connection path from the plurality of connection paths includes:

monitoring the plurality of connection paths to determine to determine a bandwidth of each connection path; and

selecting, by the server, the connection path with the highest bandwidth.

5. The method of claim 1 , further comprising:

monitoring, by the server, a connection path for changes in the connection path.

6. The method of claim 1 , wherein authenticating the connection request from the client device includes:

determining, by the server, whether the client device has previously connected to the server.

7. A system for dynamically selecting a connection path between a client device and a server, the system including:

a data storage device storing instructions for dynamically selecting a connection path between a client device and a server; and

a processor configured to execute the instructions to perform a method including:

receiving, over a network at a server, a connection request from a client device;

authenticating, by the server, the connection request from the client device, wherein the server authenticates the connection request by using a digital certificate stored on the client device, and wherein a copy of the digital certificate is stored in an authentication table;

determining, by the server, a first connection path for the authenticated client device based on the connection request, wherein the first connection path is determined based on a network congestion, wherein the network congestion includes latency and bandwidth measurements, and wherein the network congestion is determined by call-backs into a protocol stack;

establishing, by the server, a virtual tunnel between the authenticated client device and the server based on the first connection path;

determining, by the server, whether the first connection path for the authenticated client device is a new connection path based on the connection request;

storing, by the server, the first connection path to a connection database in association with the authenticated client device when the first connection path is determined to be new, the connection database including a plurality of connection paths between the client device and the server;

transferring data between the client device and the server using the first connection path; and

rerouting the transferring of data between the client device and the server using a second connection path based on determining an optimal connection path during the transferring of data.

8. The system of claim 7 , wherein the processor is further configured to execute the instructions to perform the method including:

receiving, at the server, a web request from the authenticated client device;

retrieving, by the server, a web request response based on the web request from the authenticated client device;

determining, by the server, a return connection path from the plurality of connection paths in the connection database; and

transmitting, by the server, the web request response via the determined return connection path.

9. The system of claim 8 , wherein determining the return connection path includes:

determining, by the server, whether a connection path of the plurality of connection paths is available; and

determining, by the server, the return connection path based on availability of a connection path and on criteria of the connection path.

10. The system of claim 8 , wherein determining the return connection path from the plurality of connection paths includes:

monitoring the plurality of connection paths to determine to determine a bandwidth of each connection path; and

selecting, by the server, the connection path with the highest bandwidth.

11. The system of claim 7 , wherein the processor is further configured to execute the instructions to perform the method including:

monitoring, by the server, a connection path for changes in the connection path.

12. The system of claim 7 , wherein authenticating the connection request from the client device includes:

determining, by the server, whether the client device has previously connected to the server.

13. A non-transitory computer-readable storage medium storing program instructions for dynamically selecting a connection path between a client device and a server, wherein the program instructions are computer-executable to implement:

receiving, over a network at a server, a connection request from a client device;

authenticating, by the server, the connection request from the client device, wherein the server authenticates the connection request by using a digital certificate stored on the client device, and wherein a copy of the digital certificate is stored in an authentication table;

determining, by the server, a first connection path for the authenticated client device based on the connection request, wherein the first connection path is determined based on a network congestion, wherein the network congestion includes latency and bandwidth measurements, and wherein the network congestion is determined by call-backs into a protocol stack;

establishing, by the server, a virtual tunnel between the authenticated client device and the server based on the first connection path;

determining, by the server, whether the first connection path for the authenticated client device is a new connection path based on the connection request;

storing, by the server, the first connection path to a connection database in association with the authenticated client device when the first connection path is determined to be new, the connection database including a plurality of connection paths between the client device and the server;

transferring data between the client device and the server using the first connection path; and

rerouting the transferring of data between the client device and the server using a second connection path based on determining an optimal connection path during the transferring of data.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the program instructions are further computer-executable to implement:

receiving, at the server, a web request from the authenticated client device;

retrieving, by the server, a web request response based on the web request from the authenticated client device;

determining, by the server, a return connection path from the plurality of connection paths in the connection database; and

transmitting, by the server, the web request response via the determined return connection path.

15. The non-transitory computer-readable storage medium of claim 14 , wherein determining the return connection path includes:

determining, by the server, whether a connection path of the plurality of connection paths is available; and

determining, by the server, the return connection path based on availability of a connection path and on criteria of the connection path.

16. The non-transitory computer-readable storage medium of claim 13 , wherein the program instructions are further computer-executable to implement:

monitoring, by the server, a connection path for changes in the connection path.

17. The non-transitory computer-readable storage medium of claim 16 , wherein determining the return connection path from the plurality of connection paths includes:

monitoring the plurality of connection paths to determine to determine a bandwidth of each connection path; and

selecting, by the server, the connection path with the highest bandwidth.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2021
From: VERIZON MEDIA INC.
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 057453/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: OATH INC.
To: VERIZON MEDIA INC.
Reel/Frame 054258/0635 →
CHANGE OF NAME Recorded Jun 29, 2017
From: AOL INC.
To: OATH INC.
Reel/Frame 043052/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2014
From: WHITE, WILLIAM L.
To: AOL INC.
Reel/Frame 034309/0139 →
Continuity (1)
Related Publication 20160150024A1 · May 26, 2016