IP Library › Granted Patent US 10,305,807
Granted Patent B2
US 10,305,807 · App. 15/145,148 · Granted May 28, 2019

Systems and methods to choose an optimal path from multiple high latency links

Inventor: Praveen Raja Dhanabalan (Bangalore, IN)
Assignee: CITRIX SYSTEMS, INC.
H04L47/24H04L43/0852H04L43/0829
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,305,807
App. No.
15/145,148
Granted
May 28, 2019
Kind
B2
Abstract

The present invention is directed towards systems and methods for selecting a path or link from a plurality of links between intermediary devices, based on characteristics of links between the intermediary devices and end nodes of the communication flow. The link choice may be determined from latency, packet drop rates, jitter, congestion, or other characteristics of the links to the end nodes. Link selection may further be based on traffic priority or transport layer quality of service (QoS) requirements of the connection, load balancing requirements, or other such features.

Claims (58)

1. A method for path selection from a plurality of connections, comprising:

identifying, by a path selector of a first intermediary device of a pair of intermediary devices deployed between a first node and a second node, a first characteristic of a first network connection between the first node and the first intermediary device;

identifying, by the path selector, a second characteristic of a second network connection between the second node and a second intermediary device of the pair of intermediary devices;

determining, by the path selector, a maximum of the first characteristic and the second characteristic;

identifying a third characteristic of a third network connection and a fourth characteristic of a fourth network connection of a plurality of network connections between the first intermediary device and second intermediary device, by the path selector, wherein the third characteristic of the third network connection and the fourth characteristic of the fourth network connection are both less than the maximum of the first characteristic and the second characteristic;

determining, by the path selector, that the third characteristic of the third network connection is greater than the fourth characteristic of the fourth network connection;

selecting, by the path selector, the third network connection from the plurality of network connections between the first intermediary device and the second intermediary device, responsive to the determination that the third characteristic of the third network connection is greater than the fourth characteristic of the fourth network connection; and

establishing a communication flow between the first node and second node, by the path selector, via the first network connection, second network connection, and selected third network connection.

2. The method of claim 1 , wherein identifying the first characteristic of the first network connection comprises measuring a latency of the first network connection; and

wherein identifying the second characteristic of the second network connection comprises measuring a latency of the second network connection.

3. The method of claim 2 , wherein identifying the first characteristic of the first network connection further comprises measuring a packet loss rate of the first network connection; and

wherein identifying the second characteristic of the second network connection further comprises measuring a packet loss rate of the second network connection.

4. The method of claim 1 , wherein the third characteristic of the third network connection is less than the maximum of the first characteristic and the second characteristic, and further comprising:

determining, by the path selector, that a characteristic of each network connection between the first intermediary device and second intermediary device other than the third network connection exceeds the maximum of the first characteristic and the second characteristic; and

selecting the third network connection, by the path selector, responsive to the determination.

5. The method of claim 1 , wherein the pair of intermediary devices are further deployed between a third node and a fourth node, and further comprising establishing a communication flow between the third node and the fourth node, by the path selector, via a fourth connection of the plurality of network connections between the first intermediary device and second intermediary device, a throughput of the fourth connection exceeding a throughput of the third connection.

6. A method for path selection from a plurality of connections, comprising:

identifying, by a path selector of a first intermediary device of a pair of intermediary devices deployed between a first node and a second node, a first characteristic of a first network connection between the first node and the first intermediary device;

identifying, by the path selector, a second characteristic of a second network connection between the second node and a second intermediary device of the pair of intermediary devices;

selecting, by the path selector, a third network connection from a plurality of network connections between the first intermediary device and second intermediary device, based on the identified first characteristic of the first network connection and identified second characteristic of the second network connection, by determining, by the path selector, a maximum of a latency of the first network connection multiplied by a packet loss rate of the first network connection, and a latency of the second network connection multiplied by a packet loss rate of the second network connection; and

establishing a communication flow between the first node and second node, by the path selector, via the first network connection, second network connection, and selected third network connection.

7. A system for path selection from a plurality of connections, comprising:

a first intermediary device of a pair of intermediary devices deployed between a first node and a second node and between a third node and a fourth node, the first intermediary device comprising:

a first network interface connected via a first network connection to the first node;

a plurality of network interfaces connected via a corresponding plurality of network connections to a second intermediary device of the pair of intermediary devices, the second intermediary device connected via a second network connection to the second node; and

a path selector, configured to:

identify a first characteristic of the first network connection between the first node and the first intermediary device,

identify a second characteristic of the second network connection between the second node and the second intermediary device,

determine a maximum of the first characteristic and the second characteristic,

identify a third characteristic of a third network connection and a fourth characteristic of a fourth network connection of a plurality of network connections between the first intermediary device and second intermediary device, wherein the third characteristic of the third network connection and the fourth characteristic of the fourth network connection are both less than the maximum of the first characteristic and the second characteristic,

determine that the third characteristic of the third network connection is greater than the fourth characteristic of the fourth network connection,

select the third network connection from the plurality of network connections to the second intermediary device, responsive to the determination that the third characteristic of the third network connection is greater than the fourth characteristic of the fourth network connection, and connection,

establish a communication flow between the first node and second node, via the first network connection, second network connection, and selected third network connection.

8. The system of claim 7 , wherein the path selector is further configured to measure a latency of the first network connection and measure a latency of the second network connection.

9. The system of claim 8 , wherein the path selector is further configured to measure a packet loss rate of the first network connection and measure a packet loss rate of the second network connection.

10. The system of claim 7 , wherein the third characteristic of the third network connection is less than the maximum of the first characteristic and the second characteristic, and wherein the path selector is further configured to:

determine that a characteristic of each network connection between the first intermediary device and second intermediary device other than the third network connection exceeds the maximum of the first characteristic and the second characteristic; and

select the third network connection, responsive to the determination.

11. The system of claim 7 , wherein the pair of intermediary devices are further deployed between a third node and a fourth node, and wherein the path selector is further configured to establish a communication flow between the third node and the fourth node, via a fourth connection of the plurality of network connections between the first intermediary device and second intermediary device, a throughput of the fourth connection exceeding a throughput of the third connection.

12. A system for path selection from a plurality of connections, comprising:

a first intermediary device of a pair of intermediary devices deployed between a first node and a second node, the first intermediary device comprising:

a first network interface connected via a first network connection to the first node;

a plurality of network interfaces connected via a corresponding plurality of network connections to a second intermediary device of the pair of intermediary devices, the second intermediary device connected via a second network connection to the second node; and

a path selector, configured to:

identify a first characteristic of the first network connection between the first node and the first intermediary device,

identify a second characteristic of the second network connection between the second node and the second intermediary device,

determine a maximum of a latency of the first network connection multiplied by a packet loss rate of the first network connection, and a latency of the second network connection multiplied by a packet loss rate of the second network connection,

select a third network connection from the plurality of network connections to the second intermediary device, based on the determined maximum, and

establish a communication flow between the first node and second node, via the first network connection, second network connection, and selected third network connection.

13. A method for path selection from a plurality of connections, comprising:

identifying, by a path selector of a first intermediary device of a pair of intermediary devices deployed between a first node and a second node, a first characteristic of a first network connection between the first node and the first intermediary device;

identifying, by the path selector, a second characteristic of a second network connection between the second node and a second intermediary device of the pair of intermediary devices;

determining, by the path selector, a maximum of the first characteristic and the second characteristic;

identifying a third characteristic of a third network connection and a fourth characteristic of a fourth network connection from a plurality of network connections between the first intermediary device and second intermediary device;

selecting, by the path selector, the third network connection, responsive to either:

(i) the third characteristic of the third network connection and the fourth characteristic of the fourth network connection both less than the maximum of the first characteristic and the second characteristic, and the third characteristic of the third network connection exceeding the fourth characteristic of the fourth network connection, or

(ii) the third characteristic of the third network connection being less than the maximum of the first characteristic and the second characteristic, and a characteristic of each network connection between the first intermediary device and second intermediary device other than the third network connection exceeding the maximum of the first characteristic and the second characteristic; and

establishing a communication flow between the first node and second node, by the path selector, via the first network connection, second network connection, and selected third network connection.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2016
From: DHANABALAN, PRAVEEN RAJA
To: CITRIX SYSTEMS, INC.
Reel/Frame 038445/0811 →
Continuity (1)
Related Publication 20170324628A1 · Nov 9, 2017