IP Library Granted Patent US 9,525,638
Granted Patent B2
US 9,525,638 · App. 14/081,601 · Granted Dec 20, 2016

Routing system for internet traffic

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 9,525,638
App. No.
14/081,601
Granted
Dec 20, 2016
Kind
B2
Abstract

A deterministic approach for route selection in the Internet and other multi-homed networks is presented that is based upon a mathematical model that takes into consideration performance and costs while satisfying commitment constraints. The approach is expressed with a linear programming formulation that can be solved with conventional linear programming solver software. Performance metrics can be defined and combined in order to achieve the best route selection depending on requirements. Some of the potential benefits of the approach include: a global optimal solution for routing traffic (using metrics such as performance, cost, and other constraints), a dynamic weight assignment for performance metrics, and a flexible problem definition to add routing rules (e.g. static and restricted routes) to the model.

Claims (59)

1. A method of routing computer network traffic from a multi-homed location to a plurality of routes wherein each route has capacity associated therewith, said method comprising:

determining a first, second, and third traffic flow demand for a first, second, and third prefix, respectively, in a network prefix set;

gathering performance data for each of said first, second, and third prefixes along each of said plurality of routes;

making first, second, and third routing decisions in a computer for routing each of said first, second, and third prefixes, respectively, along one of said plurality of routes,

said computer using a linear programming technique to make said first, second, and third routing decisions, said linear programming technique including solving an objective function subject to a plurality of constraints, wherein said plurality of constraints includes said capacity, as well as prices associated with said routes; wherein:

said first routing decision takes into account said first, second, and third flow demands, as well as said capacity of said plurality of routes;

said second routing decision takes into account said first, second, and third flow demands, as well as said capacity of said plurality of routes;

said third routing decision takes into account said first, second, and third flow demands, as well as said capacity of said plurality of routes; and

forwarding Internet Protocol (IP) packets along said plurality of routes in accordance with said first, second, and third routing decisions.

2. The method of claim 1 further including:

determining a plurality of additional traffic flow demand for a plurality of additional prefixes in the network prefix set;

gathering performance data for each of said plurality of additional prefixes along each of said plurality of routes;

making a plurality of additional routing decisions in the computer for routing each of the plurality of additional prefixes along one of said plurality of routes, wherein:

said first routing decision also takes into account said plurality of additional traffic flow demand;

said second routing decision also takes into account said plurality of additional traffic flow demand;

said third routing decision also takes into account said plurality of additional traffic flow demand; and

said plurality of additional routing decisions each take into account said first, second, and third flow demands, as well as said capacity of said plurality of routes.

3. The method of claim 1 further including;

inputting a route-specific constraint into said computer for a specific prefix, said route specific constraint identifying at least one route to be avoided or used for the specific prefix; and

using said route-specific constraint when determining the first, second, and third routing decisions for each prefix in said network prefix set.

4. The method of claim 3 further including:

inputting a minimum commitment level into said computer for each of said plurality of routes, said minimum commitment level identifying a level of traffic for each route above which additional charges are incurred;

inputting a price weighting into said computer, said price weighting being indicative of an importance of routing traffic in a manner that reduces price;

inputting a capacity relaxation value into said computer for a first one of said routes, said capacity relaxation value identifying an acceptable degree to which traffic routed to said first one of said routes may exceed the minimum commitment level for said first one of said routes;

using said minimum commitment level and said price weighting when making each of said first, second, and third routing decisions; and

using an increased capacity for said first one of said routes when determining routing decisions for said first, second, and third prefixes, said increased capacity corresponding to said capacity relaxation value.

5. The method of claim 4 further including:

using a first linear programming iteration to determine said first routing decision;

subsequently using a second linear programming iteration to determine said second routing decision, wherein said second linear programming iteration is based on a first reduced capacity, said first reduced capacity accounting for an amount of the capacity consumed by the traffic flow demand of said first prefix; and

subsequently using a third linear programming iteration to determine said third routing decision, wherein said third linear programming iteration is based on a second reduced capacity, said second reduced capacity accounting for an amount of the capacity consumed by the traffic flow demand of said first and second prefixes.

6. A system for routing computer network traffic from a multi-homed location to a plurality of routes wherein each route has a capacity associated therewith, said system comprising:

memory;

a processor configured to execute instructions in the memory to carry out the following functions;

a traffic estimator adapted to determine a traffic flow demand for a first, second, and third prefix in a network prefix set;

a performance evaluator adapted to gather performance data for each of said first, second, and third prefixes along each of said plurality of routes;

a routing engine adapted to make first, second, and third routing decisions for routing each of said first, second, and third prefixes, respectively, along one of said plurality of routes, wherein:

said first routing decision takes into account said first, second, and third flow demands, as well as said capacity of said plurality of routes;

said second routing decision takes into account said first, second, and third flow demands, as well as said capacity of said plurality of routes;

said third routing decision takes into account said first, second, and third flow demands, as well as said capacity of said plurality of routes; and

wherein said routing engine performs the following:

(a) determines a performance value for each of said first, second, and third prefixes based upon said performance data, said performance values including a weighted sum of a latency metric and a loss metric;

(b) receives from a user a plurality of weights to be used in computing said weighted sum;

(c) determines a set of said first, second, and third routing decisions that maximizes a sum of said performance values;

(d) forwards Internet Protocol (IP) packets along said plurality of routes in accordance with said set of first, second, and third routing decisions; and

(e) uses a linear programming technique to make said first, second, and third routing decisions, wherein said linear programming technique includes solving an objective function subject to a plurality of constraints including said capacity of said plurality of routes, as well as prices associated with said routes.

7. The system of claim 6 wherein:

said traffic estimator determines a plurality of additional traffic flow demand for a plurality of additional prefixes in the network prefix set;

said performance evaluator gathers performance data for each of said plurality of additional prefixes along each of said plurality of routes; and

said routing engine makes a plurality of additional routing decisions for routing each of the plurality of additional prefixes along one of said plurality of routes; wherein:

said first routing decision also takes into account said plurality of additional traffic flow demand;

said second routing decision also takes into account said plurality of additional traffic flow demand;

said third routing decision also takes into account said plurality of additional traffic flow demand; and

said plurality of additional routing decisions each take into account said first, second, and third flow demands, as well as said capacity of said plurality of routes.

8. The system of claim 6 wherein said routing engine is adapted to receive a route-specific constraint for a specific prefix and use said route-specific constraint when determining the routing decisions for each prefix in said network prefix set, wherein said route-specific constraint identifies a specific route either be used or avoided for the specific prefix.

9. The system of claim 6 wherein said routing engine is configured to receive from a user a minimum commitment level for each of said plurality of routes, said minimum commitment level identifying a level of traffic for each route above which additional charges are incurred; and said routing engine is further adapted to receive a capacity relaxation value for a selected one of said routes, said capacity relaxation value identifying an acceptable degree to which traffic routed to said selected one of said routes may exceed the minimum commitment level for said selected one of said routes; and said routing engine being is further configured to use an increased capacity for said selected one of said routes when determining routing decisions for said first, second, and third prefixes, said increased capacity corresponding to said capacity relaxation value.

10. The system of claim 9 wherein:

said traffic estimator updates said traffic flow demand for said first, second, and third prefixes;

said performance evaluator updates performance data for said first, second, and third prefixes along each route; and

said routing engine determines a revised routing decision for each of said first, second, and third prefixes, wherein each of said revised routing decisions is based upon said updated traffic flow demand, said updated performance data, and the capacity associated with each route.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded May 10, 2022
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: INTERNAP HOLDING LLC
Reel/Frame 059884/0443 →
CHANGE OF NAME Recorded Dec 29, 2020
From: INTERNAP CORPORATION
To: INTERNAP HOLDING LLC
Reel/Frame 054868/0048 →
RELEASE OF SECURITY INTEREST Recorded May 11, 2020
From: JEFFERIES FINANCE LLC
To: INTERNAP CORPORATION
Reel/Frame 052628/0018 →
SECURITY INTEREST Recorded May 8, 2020
From: INTERNAP HOLDING LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 052616/0515 →
RELEASE OF PATENT SECURITY AGREEMENT RECORDED AT REEL 044547/FRAME 0029 Recorded May 8, 2020
From: JEFFERIES FINANCE LLC
To: INTERNAP CORPORATION
Reel/Frame 052617/0103 →
SECURITY INTEREST Recorded Jan 5, 2018
From: INTERNAP CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 044547/0029 →
RELEASE OF SECURITY INTEREST Recorded Apr 7, 2017
From: JEFFERIES FINANCE LLC
To: INTERNAP CORPORATION
Reel/Frame 041929/0328 →
CHANGE OF NAME Recorded Feb 16, 2015
From: INTERNAP NETWORK SERVICES CORPORATION
To: INTERNAP CORPORATION
Reel/Frame 035000/0349 →
SECURITY AGREEMENT Recorded Dec 5, 2013
From: INTERNAP NETWORK SERVICES CORPORATION
To: JEFFERIES FINANCE LLC (AS COLLATERAL AGENT)
Reel/Frame 031765/0527 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2013
From: VALERO, MARCO A.; BANCROFT, CHARLES VICTOR, II; HAMMOND, WILLIAM BRIAN; ROTHSCHILD, ADAM S.; GWYN, CHARLES R, IV; FREAS, CHRISTOPHER B.; PALLADINO, MICHAEL W.; SHILLCUTT, GILBERT L.
To: INTERNAP NETWORK SERVICES CORPORATION
Reel/Frame 031636/0254 →