Method and apparatus for performance and cost optimization in an internetwork
First Claim
1. A method of routing a data flow traversing one or more routers in an internetwork, wherein the one or more routers are coupled to a plurality of service provider access links, the method comprising:
- determining a prefix for the data flow;
calculating a plurality of performance scores for the plurality of service provider access links, each of the plurality of performance scores indicating performance of a route from a router of the one or more routers to the prefix via a distinct service provider access link from the plurality of service provider access links;
detecting a current service provider access link for the prefix, the current service provider access link corresponding to a current route to the prefix specified by a routing protocol, the current service provider access link having a performance score from the plurality of service provider access links; and
selecting a new service provider access link from the plurality of service provider access links for routing the data flow to the prefix, wherein the new server provider access link has a performance score from the plurality of performance scores superior to the performance score for the current service provider access link.
26 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are described for supporting routing intelligence for evaluating routing paths based on performance measurements. The routing intelligence may include processes executed in a self-contained device. This device may control one or more edge routers, based on performance data from end users. In other embodiments, the routing intelligence device may be used solely to monitor one or more edge routers, producing reports but not effecting any changes to routing. Routing decisions may be injected to the edge routers via BGP updates. The devices may be stationed at the premises of a multihomed organization, such as an enterprise, ISP, government organization, university, or other organization supporting a sub-network coupled to an internetwork. In other embodiments, the routing intelligence comprises processes executed on a router.
-
Citations
22 Claims
-
1. A method of routing a data flow traversing one or more routers in an internetwork, wherein the one or more routers are coupled to a plurality of service provider access links, the method comprising:
-
determining a prefix for the data flow;
calculating a plurality of performance scores for the plurality of service provider access links, each of the plurality of performance scores indicating performance of a route from a router of the one or more routers to the prefix via a distinct service provider access link from the plurality of service provider access links;
detecting a current service provider access link for the prefix, the current service provider access link corresponding to a current route to the prefix specified by a routing protocol, the current service provider access link having a performance score from the plurality of service provider access links; and
selecting a new service provider access link from the plurality of service provider access links for routing the data flow to the prefix, wherein the new server provider access link has a performance score from the plurality of performance scores superior to the performance score for the current service provider access link. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A networking device for improving performance of one or more edge routers in communication with the networking device, the networking device comprising:
-
a prefix database including a plurality of network prefixes;
a priority queue, the priority queue including a plurality of entries for a subset of the plurality of network prefixes, such that the subset of the plurality of network prefixes is arranged in the priority queue in order of relative improvement in routing performance;
an asynchronous thread executing on the networking device, wherein the asynchronous thread retrieves the subset of the plurality of network prefixes from the prefix database and inserts the subset of the plurality of network prefixes in the priority queue in the order of relative improvement in routing performance; and
a synchronous thread executing on the networking device concurrently with the asynchronous thread, wherein the synchronous thread retrieves the subset of the plurality of network prefixes from the priority queue in the order of relative improvement in routing performance. - View Dependent Claims (12, 13, 15, 16, 17, 18, 19)
-
-
14. A routing intelligence device for controlling a plurality of routers, wherein each of the plurality of routers is coupled to a plurality of service provider access links (SPALs), such that each of the plurality of routers is coupled to a distinct subset of the plurality of service provider access links, the routing intelligence device comprising:
an internal database, the internal database including a plurality of records including;
a key field storing one or more network prefixes;
a service provider access link field storing one or more identifiers for one or more current service provider access links from the plurality of service provider access links for linking the plurality of routers to the one or more network prefixes;
an update flag indicating whether the service provider access link field was recently updated; and
one or more performance scores for the one or more current service provider access links.
-
20. A routing intelligence device comprising:
an internal database, the internal database including a plurality of records including;
a key field storing one or more network prefixes;
a service provider access link field storing one or more identifiers for one or more current service provider access links from a plurality of service provider access links for communicating with the one or more network prefixes;
an update flag indicating whether the service provider access link field was recently updated; and
one or more performance scores for the one or more current service provider access links. - View Dependent Claims (21, 22)
Specification