IP Library › Granted Patent US 12,348,489
Granted Patent B2
US 12,348,489 · App. 18/089,354 · Granted Jul 1, 2025

Automatic selection of encrypted network connection based on predicted latency

Inventors: Gunjan Bansal (San Jose, CA); Abhishek Gupta (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L63/0272H04L41/16H04L43/0864H04L63/0435
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,348,489
App. No.
18/089,354
Granted
Jul 1, 2025
Kind
B2
Abstract

Automatically selecting an encrypted network connection (such as a VPN tunnel) to use when communicating through another encrypted connection node with which there are multiple encrypted network connections with the computing system. The selection is based predicted latency of that encrypted network connection. The prediction is based on round-trip times of communications over the respective encrypted network connection. This is quite difficult since the encrypted network connection itself is not the entire path of the outgoing message and corresponding incoming message.

Claims (51)

1. A computing system that automatically selects an encrypted network connection, the computing system being a first network node and comprising:

one or more processors; and

one or more computer-readable media having thereon computer-executable instructions that are executable by the one or more processors to cause the computing system to:

access a first encrypted network connection that is established between the first network node and a second network node;

access a second encrypted network connection that is also established between the first network node and the second network node;

generate a first time set by timing a first set of round-trip communications between the first network node and the second network node, the first set of round-trip communications using the first encrypted network connection;

generate a second time set by timing a second set of round-trip communications between the first network node and the second network node, the second set of round-trip communications using the second encrypted network connection;

input at least some of the first time set to a latency prediction model, the latency prediction model using the at least some of the first time set to predict a first predicted latency of the first encrypted network connection;

input at least some of the second time set to the latency prediction model, the latency prediction model using the at least some of the second time set to predict a second predicted latency of the second encrypted network connection; and

select one of the first encrypted network connection or the second encrypted network connection for use between the first network node and the second network node, said selecting being based on the first predicted latency and the second predicted latency.

2. The computing system in accordance with claim 1 , the latency prediction model comprising a rules-based prediction model.

3. The computing system in accordance with claim 1 , the latency prediction model comprising a trained neural network.

4. The computing system in accordance with claim 1 , the first encrypted network connection comprising a Virtual Private Network (VPN) tunnel.

5. The computing system in accordance with claim 1 , the first encrypted network connection being a connection that is below a network level.

6. The computing system in accordance with claim 1 , the computer-executable instructions being further executable to cause the computing system to:

use the selected one of the first or second encrypted network connection to facilitate communications between the first network node and the second network node.

7. The computing system in accordance with claim 1 , the computer-executable instructions being further executable to cause the computing system to:

determine that the first time set includes (i) a first subset of time data whose age exceeds a threshold age and (ii) a second time set of time data whose age does not exceed the threshold age; and

exclude the first subset of time data from being included in the at least some of the first time set that is input to the latency prediction model.

8. The computing system in accordance with claim 1 , the computer-executable instructions being further executable to cause the computing system to:

determine that the first time set includes (i) a first subset of time data comprising outlier data and (ii) a second time set of time data that omits outlier data; and

exclude the first subset of time data from being included in the at least some of the first time set that is input to the latency prediction model.

9. The computing system in accordance with claim 1 , the latency prediction model configured to apply a window of time to data inputted thereto such that any of the data inputted thereto falling outside of the window of time are excluded or given less weight by the latency prediction model.

10. The computing system in accordance with claim 1 , the latency prediction model configured to exclude or give less weight to outlier round-trip times.

11. The computing system in accordance with claim 1 , the computer-executable instructions being further executable to cause the computing system to repeatedly perform said selection.

12. The computing system in accordance with claim 11 , the computer-executable instructions being further executable to cause the computing system to establish a network connection using the first encrypted network connection.

13. A method for automatically selecting an encrypted network connection, said method comprising:

accessing a first encrypted network connection that is established between the first network node and a second network node;

accessing a second encrypted network connection that is also established between the first network node and the second network node;

generating a first time set by timing a first set of round-trip communications between the first network node and the second network node, the first set of round-trip communications using the first encrypted network connection;

generating a second time set by timing a second set of round-trip communications between the first network node and the second network node, the second set of round-trip communications using the second encrypted network connection;

inputting at least some of the first time set to a latency prediction model, the latency prediction model using the at least some of the first time set to predict a first predicted latency of the first encrypted network connection;

inputting at least some of the second time set to the latency prediction model, the latency prediction model using the at least some of the second time set to predict a second predicted latency of the second encrypted network connection; and

selecting one of the first encrypted network connection or the second encrypted network connection for use between the first network node and the second network node, said selecting being based on the first predicted latency and the second predicted latency.

14. The method in accordance with claim 13 , the latency prediction model comprising a rules-based prediction model.

15. The method in accordance with claim 13 , the latency prediction model comprising a trained neural network.

16. The method in accordance with claim 13 , the second encrypted network connection comprising a Virtual Private Network (VPN) tunnel.

17. The method in accordance with claim 13 , further comprising:

use the selected one of the first or second encrypted network connections to facilitate communications between the first network node and the second network node.

18. The method in accordance with claim 13 , the method being repeatedly performed.

19. The method in accordance with claim 18 , the method further comprising using the first encrypted network connection to facilitate communications between the first network node and the second network node.

20. A computing system comprising:

one or more processors; and

one or more hardware storage devices that store instructions that are executable by the one or more processors to cause the computing system to:

access a first encrypted network connection that is established between the first network node and a second network node;

access a second encrypted network connection that is also established between the first network node and the second network node;

generate a first time set by timing a first set of round-trip communications between the first network node and the second network node, the first set of round-trip communications using the first encrypted network connection;

generate a second time set by timing a second set of round-trip communications between the first network node and the second network node, the second set of round-trip communications using the second encrypted network connection;

input at least some of the first time set to a latency prediction model, the latency prediction model using the at least some of the first time set to predict a first predicted latency of the first encrypted network connection;

input at least some of the second time set to the latency prediction model, the latency prediction model using the at least some of the second time set to predict a second predicted latency of the second encrypted network connection;

select the first encrypted network connection to transmit communications between the first network node and the second network node, said selecting being based on the first predicted latency and the second predicted latency.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2023
From: BANSAL, GUNJAN; GUPTA, ABHISHEK
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 063667/0584 →
Continuity (1)
Related Publication 20240214353A1 · Jun 27, 2024
References Cited (6)
US 10601779B1 · Matthews · 2020 [cited by examiner]
US 11063881B1 · Vijayasuganthan et al. · 2021 [cited by applicant]
US 20120027002A1 · Jones · 2012 [cited by examiner]
US 20200287976A1 · Theogaraj · 2020 [cited by applicant]
“GetPerTcpConnectionEStats Function (iphipapi.h)”, Retrieved from: https://learn.microsoft.com/en-us/windows/win32/api/iphipapi/nf-iphipapi-getpertcpconnectionestats, Oct. 13, 2021, 9 Pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US23/081714, (MS# 412332-PCT01) mailed on Mar. 4, 2024, 16 pages. [cited by applicant]