Distributed architecture and associated protocols for efficient quality of service-based route computation
First Claim
1. A method for selecting a route between a source node and a destination node wherein the route satisfies a QoS profile, wherein the source node stores in a route cache a plurality of pre-computed routes originating at the source node, and wherein the source node is connected to a route server, the method comprising:
- searching the route cache for a route satisfying the QoS profile; and
if no satisfying route is found in the route cache, obtaining a route from the server satisfying the QoS profile updating the contents of the route cache based on network usage, wherein updating includes adding the route computed at the server to the route cache wherein the step of updating further includes;
for each pre-computed route in the route cache, measuring time since the pre-computed route was added to the route cache to provide a stored time;
comparing the stored times to a predetermined route lifetime; and
purging from the route cache the pre-computed routes whose stored time exceeds the route lifetime.
8 Assignments
0 Petitions
Accused Products
Abstract
In a packet switching network, a distributed architecture provides efficient computation of routes in Quality of Service (QoS)-based routing scenarios. Using a client-server model, only designated route servers store and maintain a database containing the entire network topology, so that each network node is not required to store and maintain the network topology. Client nodes maintain a cache containing pre-computed routes so that they can often make routing decisions autonomously. A client contacts a designated route server only when the client cannot obtain from its local cache a route to a given destination that meets the performance requirements. A client cache may contain pre-computed routes with designated QoS profiles to all destinations or to a subset of destinations. Route servers may also contain caches, which may contain pre-computed routes to all destinations in the network with all QoS profiles, or may contain only a subset of such routes.
Each client node may also be provided with intelligence to learn, maintain and adapt local information based on the statistical usage of the network. Client caches may learn statically, i.e, the cache contains routes based on a QoS profile provided by the network service provider, or they may learn dynamically, i.e., routes are modified based on ongoing network usage statistics. The goal is to minimize the need to contact the route server as much as possible. Protocols are defined to maintain synchronization between the route server and its clients distributed across the network. These protocols need to be observed to ensure that all nodes have the latest view of the network topology stored at the route server.
113 Citations
18 Claims
-
1. A method for selecting a route between a source node and a destination node wherein the route satisfies a QoS profile, wherein the source node stores in a route cache a plurality of pre-computed routes originating at the source node, and wherein the source node is connected to a route server, the method comprising:
-
searching the route cache for a route satisfying the QoS profile; and
if no satisfying route is found in the route cache, obtaining a route from the server satisfying the QoS profile updating the contents of the route cache based on network usage, wherein updating includes adding the route computed at the server to the route cache wherein the step of updating further includes;
for each pre-computed route in the route cache, measuring time since the pre-computed route was added to the route cache to provide a stored time;
comparing the stored times to a predetermined route lifetime; and
purging from the route cache the pre-computed routes whose stored time exceeds the route lifetime.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
If the route cache is full before the computed route is added, removing one of the pre-computed routes from the route cache.
-
-
3. The method of claim 1 wherein the step of updating further includes:
-
for each pre-computed route in the route cache, measuring a last accessed time since the pre-computed route was selected as the route between the source node and the destination node;
comparing the last accessed measured times;
if the route cache is full before the computed route is added, choosing one of the pro-computed routes to be removed from the route cache based on the comparison of last accessed measured times; and
removing the chosen one of the pre-computed routes from the route cache.
-
-
4. The method of claim 1 wherein the step of updating further includes:
-
for each pre-computed route in the route cache, maintaining a count of the number of times a pre-computed route is selected as the route between the source and the destination node;
comparing the counts;
if the route cache is fall before the computed route is added, choosing one of the pre-computed routes to be removed from the route cache based on the comparison of counts; and
removing the chosen one of the pre-computed routes from the route cache.
-
-
5. The method of claim 1, wherein the step of updating further includes:
-
for each pre-computed route in the route cache, measuring the time since the pre-computed route was selected as the route between the source node and the destination node;
for each pre-computed route in the route cache, maintaining a count of the number of times a pre-computed route is selected as the route between the source node and the destination node;
weighting the counts by the measured times;
comparing the weighted counts;
if the route cache is full before the computed route is added, choosing one of the pre-computed routs to be removed from the route cache based on the comparison of the weighted counts; and
removing the chosen one of the pre-computed routes from the cache.
-
-
6. The method of claim 5 wherein the step of weighting the counts by the measured times includes the substep of
calculating a holding priority during the kth time interval according to the equation Hk=w*Hk− - 1+(1−
w) Uk−
1, where Uk−
1 is the count during the (k−
1)st interval, and w is a number such that 0<
=w<
=1; and
wherein the step of choosing one of the pre-computed routes to be removed includes the substep ofduring the time period p, choosing the one of the pre-computed routes with the lowest Hp.
- 1+(1−
-
7. The method of claim 1 wherein the step of updating further includes:
-
for each pre-computed route in the route cache, measuring time since the pre-computed route was added to the route cache;
choosing one of the pro-computed routes to be purged from the mute cache based on the measured time; and
purging the chosen one of the pre-computed routes from the route cache.
-
-
8. The method of claim 1 wherein the step of updating further includes:
-
for each pre-computed route in the route cache, maintaining a count of the number of times a pre-computed route is selected as the route between the source node and the destination node;
updating the purged route based on a current state of the network; and
adding the updated route to the route cache if the count before purging exceeds a threshold.
-
-
9. A packet switching network comprising:
-
a route server;
a source node connected to a route server;
a destination node;
a route cache connected to the source node, the route cache containing a plurality of pre-computed routes originating at the source node; and
means for selecting a route between the source node and the destination node that satisfies a QoS profile, the means comprising;
means for searching the route cache for a route satisfying to the QoS profile;
means for obtaining a route from the server that satisfies the QoS profile if no satisfying route is found in the route cache;
means for updating the route cache based on network usage, wherein the means for updating includes means for adding lee route computed at the server to the route cache, wherein the means for updating further includes;
for each pre-computed route in the route cache, means for measuring time since the pre-computed route was added to the route cache;
means for comparing the measured times to a predetermined route lifetime; and
means for purging from the route cache the pre-computed routes whose measured time exceeds the route lifetime. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
means for removing one of the pre-computed routes from the route cache if the route cache is full before the computed route is added, means for choosing one of the pre-computed routes to be removed from the route cache based on the comparison of counts if the route cache is full before the computed route is added; and
means for removing the chosen one of the pre-computed routes from the route cache.
-
-
11. The network of claim 9 wherein the means for updating further includes:
-
means for measuring time since each pre-computed route was selected as the route between the source node and the destination node;
means for comparing the measured times;
means for choosing one of the pre-computed routes to be removed from the route cache based on the comparison of measured times if the route cache is fall before the computed route is added; and
means for removing the chosen one of the pre-computed routes from the route cache.
-
-
12. The network of claim 9 wherein the means for updating further includes:
-
means for maintaining a count of the number of times each pre-computed route is selected as the route between the source node and the destination node;
means for comparing the counts;
means for choosing one of the pre-computed routes to be removed from the route cache based on the comparison of counts if the route cache is fall before the computed route is added; and
means for removing the chosen one of the pre-computed routes from the route cache.
-
-
13. The network of claim 9 wherein the means for updating further includes:
-
means for measuring time since each pre-computed route was selected as the route between the source node and the destination node;
means for maintaining a count of the number of times each pre-computed route is selected as the route between the source node and the destination node;
means for weighting the counts by the measured times;
means for comparing the weighted counts;
means for choosing one of the pre-computed routes to be removed from the route cache based on the comparison of weighted counts if the route cache is full before the computed route is added; and
means for removing the chosen one of the pre-computed routes from the route cache.
-
-
14. The network of claim 13 wherein the means for weighting tie counts by the measured times includes
means for calculating a holding priority during he kth time interval according to the equation Hk=w* Hk− - 1+(1−
w) Uk−
1, where Uk−
1 is the count during the (k−
1)st interval, and w is a number such that 0<
=w<
=1;
and wherein the means for choosing one of the pre-computed routes to be removed includes means for choosing, during the time period p, the one of the pre-computed routes with the lowest Hp.
- 1+(1−
-
15. The network of claim 9 further comprising:
means for purging a pre-computed route from the route cache.
-
16. The network of claim 9 wherein the means for updating further includes:
-
for each pre-computed route in the route cache, means for measuring time since the pre-computed route was added to the route cache;
means for choosing one of the pre-computed routes to be purged from the route cache based on the measured time; and
means for purging the chosen one of the pre-computed routes from the route cache.
-
-
17. The network of claim 9 wherein the means for updating further includes:
-
for each pre-computed route in the route cache, means maintaining a count of the number of times a pre-computed route is selected as the route between the source node and the destination node;
means for updating the purged route based on a current state of the network; and
means for adding the updated route to the route cache if the count before purging exceeds a threshold.
-
-
18. A packet switching network comprising:
-
a plurality of route servers;
a plurality of client network nodes, each client node connected to a route server;
a route cache connected to each client node, the route cache containing a plurality of pre-computed routes originating at the client node;
a route cache connected to each route server containing a second plurality of pre-computed routes;
means for selecting a route between a first node and a second node that satisfies a QoS profile, the means comprising;
means for searching the client route cache for a route satisfying the QoS profile;
means for searching the server route cache for a route satisfying the QoS profile if no satisfying route is found in the client route cache; and
means for computing a route at the server that satisfies the QoS profile if no satisfying route is found in the server route cache.
-
Specification