IP Library Granted Patent US 7,200,117
Granted Patent B2
US 7,200,117 · App. 10/066,430 · Granted Apr 3, 2007

Method of optimizing network capacity and fault tolerance in deadlock-free routing

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 7,200,117
App. No.
10/066,430
Granted
Apr 3, 2007
Kind
B2
Abstract

A system for selecting routing information from a routing table describing alternative routes between end nodes. The routing table represents a set of minimum cost, deadlock-free routes between end nodes. The selected routing information is included in forwarding tables, and sent to networking devices in the network. The selected routing information is optimized for at least one network performance metric, such as overall network capacity or fault tolerance. Capacity optimization is obtained by selecting from alternative routes stored within the routing table such that the standard deviation of the number of routes flowing over each link in the network is minimized. Fault tolerance optimization is achieved by selecting from the alternative routes stored in the routing table such that the selected route for a given end node pair has a “failover” route with a maximum number of dissimilar links from the selected route.

Claims (64)

1. A method for selecting routing information to be provided to forwarding devices in a communication network, comprising:

obtaining information describing a plurality of alternative routes between forwarding devices of said communication network from a single routing table, wherein said plurality of alternative routes is deadlock free;

selecting a final enabled routing from said plurality of alternative routes, wherein said selecting optimizes a performance metric, wherein said Performance metric is network capacity, wherein selecting the final enabled routing further comprises:

determining a first set of data flows between end nodes attached to said communication network, wherein said first set of data flows is determined, at least in part, responsive to a first one of said alternative routes;

determining, responsive to said first set of data flows, a first standard deviation, wherein said first standard deviation describes a distribution of said first set of data flows across links in said communication network;

determining a second set of data flows between end nodes attached to said communication network, wherein said second set of data flows is determined response to a second one of said alternative routes;

determining, responsive to said second set of data flows, a second standard deviation, wherein said second standard deviation describes a distribution of said second set of data flows across links in said communication network;

comparing said first standard deviation and said second standard deviation;

selecting said first one of said alternative routes in the event that said first standard deviation is lower than said second standard deviation; and

selecting said second one of said alternative routes in the event that said second standard deviation is lower than said first standard deviation; and

delivering a forwarding table to each forwarding device in said communication network, the forwarding tables containing no alternative routes and causing the forwarding devices to implement the final enabled routing.

2. The method of claim 1 , wherein said performance metric is fault tolerance.

3. The method of claim 2 , wherein said step of selecting a final enabled routing comprises:

determining a first difference measure, said first difference measure reflecting a number of differing links between a first pair of said alternative routes;

determining a second difference measure, said second difference measure reflecting a number of differing links between a second pair of said alternative routes;

comparing said first difference measure and said second difference measure;

determining a selected pair of said alternative routes, wherein said selected pair of said alternative routes comprises said first pair of said alternative routes in the event said first difference measure is greater than said second difference measure, and wherein said selected pair of alternative routes comprises said second pair of alternative routes in the event said second difference measure is greater than said first difference measure; and

designating a first one of said selected pair of said alternative routes as an enabled route, and designating a second one of said selected pair of said alternative routes as a backup route.

4. The method of claim 3 , further comprising: detecting a failure of said enabled route; and

replacing said enabled route with said backup route.

5. A system for selecting routing information to be provided to forwarding devices in a communication network, comprising routing logic operable to:

obtain information describing a plurality of alternative routes between forwarding devices of said communication network from a single routing table, wherein said plurality of alternative routes is deadlock free;

select a final enabled routing from said plurality of alternative routes, wherein said selecting optimizes a performance metric, wherein said performance metric is network capacity, wherein said routing logic is further operable to:

determine a first set of data flows between end nodes attached to said communication network, wherein said first set of data flows is determined, at least in part, responsive to a first one of said alternative routes;

determine, responsive to said first set of data flows, a first standard deviation, wherein said first standard deviation describes a distribution of said first set of data flows across links in said communication network:

determine a second set of data flows between end nodes attached to said communication network, wherein said second set of data flows is determined response to a second one of said alternative routes:

determine, responsive to said second set of data flows, a second standard deviation, wherein said second standard deviation describes a distribution of said second set of data flows across links in said communication network;

compare said first standard deviation and said second standard deviation;

select said first one of said alternative routes in the event that said first standard deviation is lower than said second standard deviation: and

select said second one of said alternative routes in the event that said second standard deviation is lower than said first standard deviation; and

deliver a forwarding table to each forwarding device in said communication network, the forwarding tables containing no alternative routes and causing the forwarding devices to implement the final enabled routing.

6. The system of claim 5 , wherein said performance metric is fault tolerance.

7. The system of claim 6 , wherein said routing logic is further operable to:

determine a first difference measure, said first difference measure reflecting a number of differing links between a first pair of said alternative routes;

determine a second difference measure, said second difference measure reflecting a number of differing links between a second pair of said alternative routes; compare said first difference measure and said second difference measure;

determine a selected pair of said alternative routes, wherein said selected pair of said alternative routes comprises said first pair of said alternative routes in the event said first difference measure is greater than said second difference measure, and wherein said selected pair of alternative routes comprises said second pair of alternative routes in the event said second difference measure is greater than said first difference measure; and

designate a first one of said selected pair of said alternative routes as an enabled route, and designating a second one of said selected pair of said alternative routes as a backup route.

8. The system of claim 7 , wherein said routing logic is further operable to:

detect a failure of said enabled route; and

replace said enabled route with said backup route.

9. The system of claim 5 , wherein said routing logic comprises at least one digital logic circuit.

10. The system of claim 5 , wherein said routing logic comprises program code loaded into a memory of a computer system.

11. A system for selecting routing information to be provided to forwarding devices in a communication network, comprising:

means for obtaining routing information describing a plurality of alternative routes between forwarding devices of said communication network from a single routing table, wherein said plurality of alternative routes is deadlock free;

means for selecting a final enabled routing from said plurality of alternative routes, wherein said selecting optimizes a performance metric, wherein said performance metric is network capacity, wherein means for selecting the final enabled routing further comprises:

means for determining a first set of data flows between end nodes attached to said communication network, wherein said first set of data flows is determined, at least in part, responsive to a first one of said alternative routes;

means for determining, responsive to said first set of data flows, a first standard deviation, wherein said first standard deviation describes a distribution of said first set of data flows across links in said communication network;

means for determining a second set of data flows between end nodes attached to said communication network, wherein said second set of data flows is determined response to a second one of said alternative routes;

means for determining, responsive to said second set of data flows, a second standard deviation, wherein said second standard deviation describes a distribution of said second set of data flows across links in said communication network;

means for comparing said first standard deviation and said second standard deviation:

means for selecting said first one of said alternative routes in the event that said first standard deviation is lower than said second standard deviation; and

means for selecting said second one of said alternative routes in the event that said second standard deviation is lower than said first standard deviation; and

means for delivering a forwarding table to each forwarding device in said communication network, the forwarding tables containing no alternative routes and causing the forwarding devices to implement the final enabled routing.

12. A computer program product including a computer readable medium, said computer readable medium having a computer program stored thereon, said computer program for selecting routing information for distribution to at least one forwarding device, said computer program comprising:

program code for obtaining information describing a plurality of alternative routes between forwarding devices of said communication network from a single routing table, wherein said plurality of alternative routes is deadlock free;

program code for selecting a final enabled routing from said plurality of alternative routes, wherein said selecting optimizes a performance metric, wherein said performance metric is network capacity, wherein program code for selecting the final enabled routing further comprises:

program code for determining a first set of data flows between end nodes attached to said communication network, wherein said first set of data flows is determined, at least in part, responsive to a first one of said alternative routes;

program code for determining, responsive to said first set of data flows, a first standard deviation, wherein said first standard deviation describes a distribution of said first set of data flows across links in said communication network;

program code for determining a second set of data flows between end nodes attached to said communication network, wherein said second set of data flows is determined response to a second one of said alternative routes;

program code for determining, responsive to said second set of data flows, a second standard deviation, wherein said second standard deviation describes a distribution of said second set of data flows across links in said communication network;

program code for comparing said first standard deviation and said second standard deviation;

program code for selecting said first one of said alternative routes in the event that said first standard deviation is lower than said second standard deviation; and

program code for selecting said second one of said alternative routes in the event that said second standard deviation is lower than said first standard deviation; and

program code for delivering said a forwarding table to each forwarding device in said communication network, the forwarding tables containing no alternative routes and causing the forwarding devices to implement the final enabled routing.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037302/0732 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2002
From: CHIU, DAH MING; KADANSKY, MIRIAM C.; YUKSEL, MURAT
To: SUN MICROSYSTEMS, INC.
Reel/Frame 012570/0713 →