# US 10,122,627 B2 · Network routing through an overlay network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,122,627 B2
- Document ID: US10122627B2
- Status: Granted
- Kind: B2
- Application number: 15/252,821
- Filed: 2016-08-31
- Published: 2018-03-01
- Granted: 2018-11-06
- Earliest claimed: 2016-08-31
- Assignees: Citrix Systems, Inc.
- Applicants: Citrix Systems, Inc.
- Inventors: Marco Murgia; Praveen R. Dhanabalan
- Web page: https://patentgrep.com/patent/US10122627B2

## CPC

- H04L 43/08: Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L 45/124: {using a combination of metrics}
- H04L 45/64: using an overlay routing layer
- H04L 67/1061: using node-based peer discovery mechanisms (static access to replicated servers H04L67/1006; service discovery H04L67/51)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 3)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 5)

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.

### Claim 7 (depends on 1)

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.

### Claim 8 (depends on 1)

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.

### Claim 9 (depends on 8)

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.

### Claim 10 (depends on 9)

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.

### Claim 11 (depends on 9)

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.

### Claim 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.

### Claim 13 (depends on 12)

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.

### Claim 14 (depends on 12)

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.

### Claim 15 (depends on 14)

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.

### Claim 16 (depends on 12)

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.

### Claim 17 (depends on 16)

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.

### Claim 18 (depends on 12)

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.

### Claim 19 (depends on 12)

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.

### Claim 20 (depends on 19)

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.

### Claim 21 (depends on 20)

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.

### Claim 22 (depends on 20)

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.
