IP Library › Granted Patent US 10,153,964
Granted Patent B2
US 10,153,964 · App. 15/259,285 · Granted Dec 11, 2018

Network routing using dynamic virtual paths in an overlay network

Inventor: Praveen R. Dhanabalan (Bangalore, IN)
Assignee: Citrix Systems, Inc.
H04L45/124H04L43/08H04L45/586H04L45/64H04L47/724
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,153,964
App. No.
15/259,285
Granted
Dec 11, 2018
Kind
B2
Abstract

A computer networking appliance includes a networking device to route data through an overlay network. The networking device is connected to a first computer network and receives a data packet to be communicated to a destination computing device. The networking device analyzes the packet to determine a minimum bandwidth requirement corresponding to the data packet, and the destination computing device connected to a second computer network. The networking device then dynamically identifies a plurality of paths to the destination computing device, uses the minimum bandwidth requirement to obtain path information for each of the plurality of paths, and chooses an optimal path to the destination computing device from among the plurality of paths based on a plurality of path metrics associated with each of the plurality of paths.

Claims (100)

1. A method for routing packet data through an overlay network based on application needs and network conditions, comprising:

receiving, at a computer networking device connected to a first computer network, a data packet to be communicated to a destination computing device;

analyzing, by the computer networking device, the data packet to determine:

a minimum bandwidth requirement corresponding to the data packet, and

the destination computing device connected to a second computer network;

dynamically identifying a plurality of paths between the computer networking device and the destination computing device, wherein each of the plurality of paths traverse one or more peer nodes;

using the minimum bandwidth requirement to obtain at the computer networking device, path information for each of the plurality of paths, the path information comprising a plurality of path metrics specifying dynamic characteristics for each of the plurality of paths; and

choosing an optimal path to the destination computing device from among the plurality of paths based on the plurality of path metrics associated with each of the plurality of paths;

wherein the computer networking device and a plurality of peer nodes comprise the second computer network which is an overlay upon the first computer network;

wherein the plurality of paths traverse paths that include network nodes other than the plurality of peer nodes; and

wherein each of the plurality of path metrics has accorded thereto at least one level of significance or weight that is selectively variable based on a type of data contained in the data packet.

2. The method according to claim 1 , wherein the plurality of path metrics comprise at least one of data latency associated with the particular path, lease time associated with the particular path, and link quality associated with the particular path.

3. The method according to claim 1 , further comprising:

determining a type of data contained in the data packet; and

selectively varying the at least one level of significance or weight accorded to each of the plurality of path metrics based on the type of data contained in the data packet for purposes of choosing the optimal path to the destination computing device.

4. The method according to claim 3 , wherein the type of data packet implies a type of application which communicated the data packet, and the optimal path is chosen to facilitate optimal performance of the type of application which is implied.

5. The method according to claim 4 , wherein the optimal performance is obtained by more heavily weighting importance associated with one or more metrics from among the plurality of path metrics for purposes of choosing the optimal path to the destination computing device from among the plurality of paths.

6. The method according to claim 3 , further comprising selectively varying an optimal path which is chosen for a subsequently received second data packet which is of the same type as the at least one data packet.

7. The method according to claim 6 , wherein the optimal path is varied when a change occurs in one or more of the plurality of paths with respect to one or more of the path metrics which are predetermined to be of importance for communicating the type of data.

8. A method for routing packet data through an overlay network based on application needs and network conditions, comprising:

receiving, at a computer networking device connected to a first computer network, a data packet to be communicated to a destination computing device;

analyzing, by the computer networking device, the data packet to determine:

a minimum bandwidth requirement corresponding to the data packet, and

the destination computing device connected to a second computer network;

dynamically identifying a plurality of paths between the computer networking device and the destination computing device, wherein each of the plurality of paths traverse one or more peer nodes;

using the minimum bandwidth requirement to obtain at the computer networking device, path information for each of the plurality of paths, the path information comprising a plurality of path metrics specifying dynamic characteristics for each of the plurality of paths; and

choosing an optimal path to the destination computing device from among the plurality of paths based on the plurality of path metrics associated with each of the plurality of paths;

wherein the computer networking device and a plurality of peer nodes comprise the second computer network which is an overlay upon the first computer network;

wherein the plurality of paths traverse paths that include network nodes other than the plurality of peer nodes; and

wherein said using comprises, for each of the plurality of paths sending a reservation message to a peer node adjacent to the computer networking device in that path, wherein the reservation message comprises:

the minimum bandwidth requirement;

information relating to subsequent peer nodes in that path; and

instructions for each peer node in that path to, upon receipt of a reservation message, perform the following:

determine whether that peer node can fulfill the minimum bandwidth requirement, and

if that peer node cannot fulfill the minimum bandwidth requirement, send a request denial message to the computer networking device.

9. The method according to claim 8 , wherein the reservation message further comprises instructions for each peer node in the path to, if that peer node can fulfill the minimum bandwidth requirement:

update the reservation message to include in the reservation message information relating to at least one of: a lease time associated with that peer node, a latency associated with a link between that peer node and a peer node from which the reservation message was received, and a link quality associated with the link;

determine whether that peer node is the destination computing device;

if that peer node is the destination computing device, send a confirmation message to the computer networking device, the confirmation message comprising the updated reservation message; and

if the peer node is not the destination computing device, forward the updated reservation message to a next peer node in the path.

10. The method according to claim 9 , further comprising: upon receipt of a confirmation message corresponding to a path, at the computer networking device, using information included in the confirmation message to determine the plurality of path metrics for the path.

11. The method according to claim 10 , wherein the plurality of path metrics are determined based on:

a data latency associated with the path, the data latency being a sum of a plurality of data latencies associated with a plurality of links in the path;

a lease time associated with the path, the lease time corresponding to a minimum lease times of a plurality lease times associated with the plurality of links in the path; or

link quality associated with the particular path, the link quality corresponding to a minimum link quality of a plurality link qualities associated with the plurality of links in the path.

12. The method according to claim 8 , further comprising: upon receipt of a request denial message corresponding to a path, at the computer networking device, discarding the path.

13. The method according to claim 12 , further comprising storing, at the computer networking device, route information for the discarded path, including the plurality of route metrics for the discarded path.

14. The method according to claim 8 , wherein the reservation message further comprises instructions for each peer node in the path to, if that peer node can fulfill the minimum bandwidth requirement: identify an optimal link, of a plurality of links, between that peer node and a peer node from which the reservation message was received based on one or more link characteristics associated with each of the plurality of links, the one or more link characteristics selected from the group consisting of the available bandwidth, data latency, data loss characteristics, and jitter.

15. The method according to claim 14 , wherein information concerning the one or more link characteristics for each of the plurality of links is determined based on data traffic communicated between that peer node and the peer node from which the reservation message was received.

16. A network appliance for routing packet data through an overlay network, comprising:

a computer networking device including at least one processing circuit and configured to:

receive, from a first computer network, a data packet to be communicated to a destination computing device,

analyze the data packet to determine:

a minimum bandwidth requirement corresponding to the data packet, and

the destination computing device connected to a second computer network,

dynamically identify a plurality of paths between the computer networking device and the destination computing device, wherein each of the plurality of paths traverse one or more peer nodes,

use the minimum bandwidth requirement to obtain path information for each of the plurality of paths, the path information comprising a plurality of path metrics specifying dynamic characteristics for each of the plurality of paths, and

choose an optimal path to the destination computing device from among the plurality of paths based on the plurality of path metrics associated with each of the plurality of paths;

wherein the computer networking device and a plurality of peer nodes comprise the second computer network which is an overlay upon the first computer network;

wherein the plurality of paths traverse paths through network nodes other than the peer nodes; and

wherein each of the plurality of path metrics has accorded thereto at least one level of significance or weight that is selectively variable based on a type of data contained in the data packet.

17. The network appliance according to claim 16 , wherein the plurality of path metrics comprise at least one of data latency associated with the particular path, lease time associated with the particular path, and link quality associated with the particular path.

18. The network appliance according to claim 16 , further comprising:

determining a type of data contained in the data packet; and

selectively varying the at least one level of significance or weight accorded to each of the plurality of path metrics based on the type of data contained in the data packet for purposes of choosing the optimal path to the destination computing device.

19. The network appliance according to claim 18 , wherein the type of data packet implies a type of application which communicated the data packet, and the optimal path is chosen to facilitate optimal performance of the type of application which is implied.

20. The network appliance according to claim 19 , wherein the optimal performance is obtained by more heavily weighting importance associated with one or more metrics from among the plurality of path metrics for purposes of choosing the optimal path to the destination computing device from among the plurality of paths.

21. The network appliance according to claim 18 , further comprising selectively varying an optimal path which is chosen for a subsequently received second data packet which is of the same type as the at least one data packet.

22. The network appliance according to claim 21 , wherein the optimal path is varied when a change occurs in one or more of the plurality of paths with respect to one or more of the path metrics which are predetermined to be of importance for communicating the type of data.

23. A network appliance for routing packet data through an overlay network, comprising:

a computer networking device including at least one processing circuit and configured to:

receive, from a first computer network, a data packet to be communicated to a destination computing device,

analyze the data packet to determine:

a minimum bandwidth requirement corresponding to the data packet, and

the destination computing device connected to a second computer network,

dynamically identify a plurality of paths between the computer networking device and the destination computing device, wherein each of the plurality of paths traverse one or more peer nodes,

use the minimum bandwidth requirement to obtain path information for each of the plurality of paths, the path information comprising a plurality of path metrics specifying dynamic characteristics for each of the plurality of paths, and

choose an optimal path to the destination computing device from among the plurality of paths based on the plurality of path metrics associated with each of the plurality of paths;

wherein the computer networking device and a plurality of peer nodes comprise the second computer network which is an overlay upon the first computer network;

wherein the plurality of paths traverse paths through network nodes other than the peer nodes; and

wherein said using comprises, for each of the plurality of paths sending a reservation message to a peer node adjacent to the computer networking device in that path, wherein the reservation message comprises:

the minimum bandwidth requirement;

information relating to subsequent peer nodes in that path; and

instructions for each peer node in that path to, upon receipt of a reservation message, perform the following:

determine whether that peer node can fulfill the minimum bandwidth requirement, and

if that peer node cannot fulfill the minimum bandwidth requirement, send a request denial message to the computer networking device.

24. The network appliance according to claim 23 , wherein the reservation message further comprises instructions for each peer node in the path to, if that peer node can fulfill the minimum bandwidth requirement:

update the reservation message to include in the reservation message information relating to at least one of: a lease time associated with that peer node, a latency associated with a link between that peer node and a peer node from which the reservation message was received, and a link quality associated with the link;

determine whether that peer node is the destination computing device;

if that peer node is the destination computing device, send a confirmation message to the computer networking device, the confirmation message comprising the updated reservation message; and

if the peer node is not the destination computing device, forward the updated reservation message to a next peer node in the path.

25. The network appliance according to claim 24 , wherein the computer networking device is further configured to: upon receipt of a confirmation message corresponding to a path, use information included in the confirmation message to determine the plurality of path metrics for the path.

26. The network appliance according to claim 25 , wherein the plurality of path metrics are determined based on:

a data latency associated with the path, the data latency being a sum of a plurality of data latencies associated with a plurality of links in the path;

a lease time associated with the path, the lease time corresponding to a minimum lease times of a plurality lease times associated with the plurality of links in the path; or

link quality associated with the particular path, the link quality corresponding to a minimum link quality of a plurality of link qualities associated with the plurality of links in the path.

27. The network appliance according to claim 23 , wherein the computer networking device is further configured to: upon receipt of a request denial message corresponding to a path, discard the path.

28. The network appliance according to claim 27 , wherein the computer networking device is further configured to: store route information for the discarded path, including the plurality of route metrics for the discarded path.

29. The network appliance according to claim 23 , wherein the reservation message further comprises instructions for each peer node in the path to, if that peer node can fulfill the minimum bandwidth requirement: identify an optimal link, of a plurality of links, between that peer node and a peer node from which the reservation message was received based on one or more link characteristics associated with each of the plurality of links, the one or more link characteristics selected from the group consisting of the available bandwidth, data latency, data loss characteristics, and jitter.

30. The network appliance according to claim 29 , wherein information concerning the one or more link characteristics for each of the plurality of links is determined based on data traffic communicated between that peer node and the peer node from which the reservation message was received.

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 Sep 8, 2016
From: DHANABALAN, PRAVEEN R.
To: CITRIX SYSTEMS, INC.
Reel/Frame 039674/0452 →
Continuity (1)
Related Publication 20180069780A1 · Mar 8, 2018