IP Library › Granted Patent US 10,122,627
Granted Patent B2
US 10,122,627 · App. 15/252,821 · Granted Nov 6, 2018

Network routing through an overlay network

Inventors: Marco Murgia (Los Gatos, CA); Praveen R. Dhanabalan (Bangalore, IN)
Assignee: Citrix Systems, Inc.
H04L45/64H04L43/08H04L45/124H04L67/1061H04L47/12
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,122,627
App. No.
15/252,821
Granted
Nov 6, 2018
Kind
B2
Abstract

Computer networking device obtains route information including route attributes specifying characteristics for each of a plurality of routes through a first network. A routing algorithm is applied to choose an optimal route to one of a plurality of peer computer networking devices comprising a second network which is an overlay upon the first network. The optimal route is chosen based on the type of data contained in the data packet and the plurality of route attributes associated with the routes. The routes traverse paths through the first computer network which include network nodes other than the peer networking devices.

Claims (40)

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

in a computer networking device connected to a first computer network, determining a plurality of routes to a plurality of peer computer networking devices;

obtaining at the computer networking device route information for each of the plurality of routes, said route information comprising a plurality of route attributes specifying dynamic characteristics for each of the plurality of routes;

storing at the computer networking device the route information for each of the plurality of routes, including the plurality of route attributes;

receiving at least one data packet to be communicated through the computer networking device;

inspecting the at least one data packet received to determine a type of data contained therein;

selectively varying levels of significance or weight accorded to each of the plurality of route attributes within a routing algorithm based on the type of data contained in the at least one data packet;

using the routing algorithm to choose an optimal route to one of the peer computer networking devices from among the plurality of routes based on the type of data contained in the data packet and the plurality of route attributes associated with each of said plurality of routes;

wherein said computer networking device and the peer computer networking devices comprise a second computer network which is an overlay upon on the first computer network, and wherein said plurality of routes traverse paths through said first computer network which include network nodes other than said peer networking devices.

2. The method according to claim 1 , further comprising selecting said plurality of route attributes from the group consisting of the available bandwidth associate with the particular route, data latency associated with the particular route, data loss characteristics associated with the particular route and jitter corresponding to the route.

3. The method according to claim 1 , wherein the type of data packet implies a type of application which communicated said data packet, and the routing algorithm selects the optimal route to facilitate optimal performance of the type of application which is implied.

4. The method according to claim 3 , wherein said optimal performance is obtained by more heavily weighting within the routing algorithm the importance of one or more attributes from among the plurality of attributes for purposes of selecting the optimal route from among the plurality of routes.

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

6. The method according to claim 5 , wherein said optimal route is varied when a change occurs in one or more of the plurality of routes with respect to one or more of the route attributes which are predetermined to be of importance for communicating the type of data.

7. The method according to claim 1 , wherein the obtaining step further comprises receiving from one or more of the peer computer networking devices one or more route update messages specifying the one or more network routes and plurality of route attributes.

8. The method according to claim 1 , further comprising communicating to the plurality of peer computer networking devices one or more network routes to the peer computer network devices as identified by the computer networking device.

9. The method according to claim 8 , further comprising including in said communication to the plurality of peer computer networking devices the plurality of route attributes associated with said one or more network routes.

10. The method according to claim 9 , wherein the plurality of route attributes are dynamically variable and the first computer network device communicates updates to the peer computer network devices when a change exceeds a predetermined threshold.

11. The method according to claim 9 , wherein updated information concerning the plurality of route attributes for each of said network routes is determined by the computer networking device based on data traffic communicated between the computer networking device and one or more of the peer computer network devices.

12. 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

determine within a first computer network a plurality of routes to a plurality of peer computer networking devices;

obtain route information for each of the plurality of routes, said route information comprising a plurality of route attributes specifying dynamic characteristics for each of the plurality of routes;

store in a memory device the route information for each of the plurality of routes, including the plurality of route attributes;

receive at least one data packet to be communicated through the first computer network;

inspect the at least one data packet received to determine a type of data contained therein; and

apply a routing algorithm to choose an optimal route to one of the peer computer networking devices from among the plurality of routes based on the type of data contained in the data packet and the plurality of route attributes associated with each of said plurality of routes;

wherein said computer networking device and the peer computer networking devices comprise a second computer network which is an overlay upon on the first computer network;

wherein said plurality of routes traverse paths through said first computer network which include network nodes other than said peer networking devices; and

wherein said routing algorithm selectively varies a level of significance or weight accorded to each of the plurality of route attributes based on the type of data contained in the data packet.

13. The network appliance according to claim 12 , wherein said plurality of route attributes are selected from the group consisting of the available bandwidth associate with the particular route, data latency associated with the particular route, data loss characteristics associated with the particular route and jitter corresponding to the route.

14. The network appliance according to claim 12 , wherein the type of data packet implies a type of application which communicated said data packet, and the routing algorithm is configured to select the optimal route to facilitate optimal performance of the type of application which is implied.

15. The network appliance according to claim 14 , wherein said optimal performance is obtained by selectively weighting within the routing algorithm the importance of one or more attributes from among the plurality of attributes for purposes of selecting the optimal route from among the plurality of routes.

16. The network appliance according to claim 12 , wherein said routing algorithm selectively varies an optimal route which is chosen for a subsequently received second data packet which is of the same type as the at least one data packet.

17. The network appliance according to claim 16 , wherein said routing algorithm is configured to vary the optimal route when a change occurs in one or more of the plurality of routes with respect to one or more of the route attributes which are predetermined to be of importance for communicating the type of data.

18. The network appliance according to claim 12 , wherein the computer networking device is configured to receive from one or more of the peer computer networking devices one or more route update messages specifying the one or more network routes and plurality of route attributes.

19. The network appliance according to claim 12 , wherein the computer networking device is configured to communicate to the plurality of peer computer networking devices one or more network routes to the peer computer network devices as identified by the computer networking device.

20. The network appliance according to claim 19 , wherein the computer networking device is configured to include in said communication to the plurality of peer computer networking devices the plurality of route attributes associated with said one or more network routes.

21. The network appliance according to claim 20 , wherein the plurality of route attributes are dynamically variable, and the first computer network device is configured to communicate updates to the peer computer network devices when a change exceeds a predetermined threshold.

22. The network appliance according to claim 20 , wherein updated information concerning the plurality of route attributes for each of said network routes is determined by the computer networking device based on data traffic communicated between the computer networking device and one or more of the peer computer network devices.

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 Aug 31, 2016
From: MURGIA, MARCO; DHANABALAN, PRAVEEN R.
To: CITRIX SYSTEMS, INC.
Reel/Frame 039602/0919 →
Continuity (1)
Related Publication 20180062986A1 · Mar 1, 2018
Cited By (1)
US 12,598,129