# US 7,561,517 B2 · Passive route control of data networks

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

- Number: US 7,561,517 B2
- Document ID: US7561517B2
- Status: Granted
- Kind: B2
- Application number: 10/283,798
- Filed: 2002-10-29
- Published: 2003-07-17
- Granted: 2009-07-14
- Earliest claimed: 2001-11-02
- Assignees: Internap Network Services Corporation
- Inventors: James Eric Klinker; Steven R. McCanne
- Web page: https://patentgrep.com/patent/US7561517B2

## CPC

- H04L 65/80: Responding to QoS
- H04L 41/5003: Managing SLA; Interaction between SLA and QoS
- H04L 41/5009: Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
- H04L 43/00: Arrangements for monitoring or testing data switching networks
- H04L 45/121: by minimising delays
- H04L 45/123: {Evaluation of link metrics (techniques for monitoring network metrics H04L43/08)}
- H04L 45/124: {using a combination of metrics}
- H04L 45/125: based on throughput or bandwidth
- H04L 45/22: {Alternate routing}
- H04L 45/302: Route determination based on requested QoS
- H04L 45/306: {Route determination based on the nature of the carried application}
- H04L 45/308: {Route determination based on user's profile, e.g. premium users}
- H04L 45/38: {Flow based routing}
- H04L 47/10: Flow control; Congestion control
- H04L 47/122: by diverting traffic away from congested entities
- H04L 47/20: Traffic policing
- H04L 47/2441: relying on flow classification, e.g. using integrated services [IntServ]
- H04L 47/283: in response to processing delays, e.g. caused by jitter or round trip time [RTT]
- H04L 41/0213: Standardised network management protocols, e.g. simple network management protocol [SNMP]
- H04L 41/0631: using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
- H04L 41/0816: the condition being an adaptation, e.g. in response to network events
- H04L 41/5019: Ensuring fulfilment of SLA
- H04L 41/5025: by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
- H04L 41/5029: {Service quality level-based billing, e.g. dependent on measured service level customer is charged more or less}
- H04L 41/5087: {wherein the managed service relates to voice services (management of VoIP services H04M7/0081)}
- H04L 41/509: {wherein the managed service relates to media content delivery, e.g. audio, video or TV}
- H04L 43/026: using flow identification
- H04L 43/0829: Packet loss
- H04L 43/0852: Delays
- H04L 43/0864: Round trip delays
- H04L 43/087: Jitter
- H04L 43/0882: Utilisation of link capacity
- H04L 43/0894: Packet rate
- H04L 43/10: Active monitoring, e.g. heartbeat, ping or trace-route
- H04L 43/12: Network monitoring probes
- H04L 43/16: Threshold monitoring
- H04L 69/14: Multichannel or multilink protocols
- H04L 69/22: Parsing or analysis of headers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system and a method for controlling routing of data over multiple networks. Accordingly, a system and method are provided for routing data between a first point and a second point. The method comprises passively monitoring at least one data flow characteristic associated with a data flow on a first path, comparing the at least one data flow characteristic, associated with the data flow on the first path, to an associated data flow requirement of a policy, switching the data flow to a second path if the at least one data flow requirement is not met, passively monitoring at least one data flow characteristic associated with the data flow on the second path, and comparing the at least one data flow characteristic associated with the data flow on the second path with the associated data flow requirement of the policy.

## Claims

### Claim 1

A method of routing data between a first point and a second point, the method comprising:
routing a data flow on a first path;
passively monitoring at least one data flow characteristic associated with the data flow on the first path to determine a first value of the data flow characteristic;
after a predetermined amount of time, switching the data flow to a second path;
passively monitoring the at least one data flow characteristic associated with the data flow on the second path to determine a second value of the data flow characteristic after a second predetermined amount of time;
comparing the first value to the second value;
selecting either the first path or the second path as a default path for the data flow based on the comparison; and
routing the data flow on the default path,
wherein passively monitoring the at least one data flow characteristic associated with the data flow on the first path and passively monitoring the at least one data flow characteristic associated with the data flow on the second path do not introduce additional network traffic.

### Claim 2 (depends on 1)

The method of claim 1, further comprising after the second predetermined amount of time, switching the data flow to a third path if the second value does not represent improved performance over the first value.

### Claim 3 (depends on 1)

The method of claim 1, wherein selecting either the first path or the second path as a default path comprises selecting the second path if the second value represents improved performance over the first value.

### Claim 4 (depends on 1)

The method of claim 1, wherein the at least one data flow characteristic is a performance characteristic.

### Claim 5 (depends on 4)

The method of claim 4, wherein the performance characteristic is related to latency.

### Claim 6 (depends on 4)

The method of claim 4, wherein the performance characteristic is related to jitter.

### Claim 7

A method of routing data between a first point and a second point, the method comprising:
routing a data flow associated with a group of addresses over an initial path;
splitting the data flow associated with the group of addresses into at least a first data flow associated with a first subset of the group of addresses and a second data flow associated with a second subset of the group of addresses;
routing the first data flow and the second data flow over different paths, so that the first data flow arrives at a first final destination and the second data flow arrives at a second final destination;
passively monitoring at least one data flow characteristic associated with the first data flow on a first path and the second data flow on a second path to determine respective values of the data flow characteristic for each of the paths; and
comparing the values to each other.

### Claim 8 (depends on 7)

The method of claim 7, further comprising selecting a path having a value representing improved performance over the respective values of the other paths.

### Claim 9 (depends on 7)

The method of claim 7, wherein the passively monitoring occurs simultaneously.

### Claim 10 (depends on 7)

The method of claim 7, wherein the at least one data flow characteristic is a performance characteristic.

### Claim 11 (depends on 10)

The method of claim 10, wherein the performance characteristic is related to loss.

### Claim 12 (depends on 10)

The method of claim 10, wherein the performance characteristic is related to latency.

### Claim 13 (depends on 10)

The method of claim 10, wherein the performance characteristic is related to jitter.

### Claim 14

A method of routing data between a first point and a second point, the method comprising:
splitting a data flow associated with a group of addresses into a first data flow associated with a first subset of addresses and a second data flow associated with a second subset of addresses, so that the first data flow arrives at a first final destination and the second data flow arrives at a second final destination;
passively monitoring at least one data flow characteristic associated with the first data flow to determine a first value of a data flow characteristic;
passively monitoring at least one data flow characteristic associated with the second data flow to determine a second value of the data flow characteristic;
comparing the first value to the second value; and
selecting a path associated with the second subset of addresses for the data flow if the second value represents improved performance over the first value.

### Claim 15

An apparatus for routing data between a first point and a second point, the apparatus comprising:
means for routing a data flow on a first path for a predetermined amount of time;
means for passively monitoring at least one data flow characteristic associated with the data flow on the first path to determine a first value of the data flow characteristic;
means for switching the data flow to a second data path after the predetermined amount of time has expired;
means for passively monitoring at least one data flow characteristic associated with the data flow on the second path to determine a second value of the data flow characteristic after a second predetermined amount of time;
means for comparing the first value to the second value and for selecting either the first path or the second path as a default path for the data flow based on the comparison,
wherein the means for passively monitoring at least one data flow characteristic associated with the data flow on the first path and the means for passively monitoring at least one data flow characteristic associated with the data flow on the second path do not introduce additional network traffic.

### Claim 16

An apparatus for routing data between a first point and a second point, the apparatus comprising:
means for splitting a data flow associated with a group of addresses into at least a first data flow associated with a first subset of addresses within the group of addresses and a second data flow associated with a second subset of addresses within the group of addresses;
means for routing the first data flow and the second data flow over different paths, so that the first data flow arrives at a first final destination and the second data flow arrives at a second final destination;
means for passively monitoring at least one data flow characteristic associated with the first data flow on a first path and the second data flow on a second path to determine respective values of the data flow characteristic for each of the paths; and
means for comparing the respective values.

### Claim 17

A computer-readable media having computer-executable instructions stored thereon for routing data between a first point and a second point, comprising:
instructions for routing a data flow on a first data path for a predetermined amount of time;
instructions for passively monitoring at least one data flow characteristic associated with the data flow on the first path to determine a first value of the data flow characteristic;
instructions for switching the data flow to a second data path after the predetermined amount of time has expired;
instructions for passively monitoring at least one data flow characteristic associated with the data flow on the second path to determine a second value of the data flow characteristic after a second predetermined amount of time;
instructions for comparing the first value to the second value; and
instructions for selecting either the first path or the second path as a default path for the data flow based on the comparison,
wherein the instructions for passively monitoring at least one data flow characteristic associated with the data flow on the first path and the instructions for passively monitoring at least one data flow characteristic associated with the data flow on the second path do not introduce additional network traffic.

### Claim 18

A computer-readable media having computer-executable instructions stored thereon for routing data between a first point and a second point, comprising:
instructions for splitting a data flow associated with a group of addresses into at least a first data flow associated with a first subset of addresses within the group of addresses and a second data flow associated with a second subset of addresses within the group of addresses;
instructions for routing the first data flow and the second data flow over different paths, so that the first data flow arrives at a first final destination and the second data flow arrives at a second final destination;
instructions for passively monitoring at least one data flow characteristic associated with the first data flow on a first path and the second data flow on a second path to determine respective values of the data flow characteristic for each of the paths; and
instructions for comparing the values to each other.

### Claim 19 (depends on 7)

The method of claim 7 wherein the first subset of addresses is associated with a first address prefix that is longer than an address prefix of the group of addresses and the second subset of addresses is associated with a second address prefix that is longer than the address prefix of the group of addresses.

### Claim 20 (depends on 16)

The apparatus of claim 16, wherein the apparatus is an edge network device.

### Claim 21 (depends on 18)

The computer-readable media of claim 18 wherein the first subset of addresses is associated with a first address prefix that is longer than an address prefix of the group of addresses and the second subset of addresses is associated with a second address prefix that is longer than the address prefix of the group of addresses.
