MULTI-PATH DYNAMIC ROUTING ALGORITHM

Abstract: Disclosed is a routing algorithm that uses a new concept of node metric system. The nodes (210) in the network (200) to which this node metric system of the present invention applies are characterized by their limited bandwidths. These nodes can communicate with only one neighbor at a time. The sum of the rates of traffic on the links of a node is less than or equal to the maximum bandwidth (capacity) of the node. The measure of congestion of a path in the network is represented by a path metric which is computed by summing the node metrics of the intermediate nodes on the path. Factors used in computing node metrics include the following: 1. future traffic from neighboring nodes to the node; and 2. future traffic from the node to the neighboring nodes.

Description: Description MULTI-PATH DYNAMIC ROUTING ALGORITHM TECHNICAL FIELD The invention relates to a method for improving routing in data networks. In particular, the invention discloses a method for routing data in networks where processing speed of the routers is a limiting factor. BACKGROUND ART Fig. 1 illustrates the structure of a typical network 100 of the prior art. Network 100 comprises a • plurality of hosts 110 intended to run application pro- grams. Network 100 also includes a subnet 140 linking hosts 110 and carrying messages between them. Subnet 140 typically comprises two basic components: routers 120 (also called switching elements, nodes, or interface message processors) and links 130 (also called transmis- sion lines) . Each host 110 is connected to one, or occasionally several routers 120. A metric is a number that allows comparison of the paths connecting the same pair of source-destination routers 120. A path comprises a set of links 130 con- necting a pair of source-destination routers 120. A designer selects the metrics so that traffic takes the most efficient path defined by the minimum path metric. Routers 120 can actually evaluate the metric of the entire path connecting a pair of source-destination routers 120. Routing algorithms can compute a metric as a value that applies to an end-to-end path. With this use, metrics allow comparisons of the paths to the same destination router 120. Another use of metrics is to determine the cost associated with outgoing links 130 from a router 120. In many routing algorithms, the end-to-end metric (path metric) is the sum of link metrics. Prior art routing protocols use different methods of computing the metric. Some, like Routing Infor- mation Protocol (RIP) , count the hops (number of routers 120 on the path) between the pair of source-destination routers 120. Others have no standard way of computing a metric, making its computation a local choice. Factors used in computing metrics include the following: 1. link bandwidth; 2. link delay; 3. administrative preference, such as monetary cost; 4. link error rate; 5. link utilization. Not all these factors are useful in the real networks. In particular, improper use of link utiliza- tion in link metrics may create path oscillation. For instance, suppose there is traffic on Path 1 (not shown) to a destination. Then, Path 2 (not shown) is created and also has connectivity to the same destination. Assume that both Paths 1 and 2 have equal bandwidth. Path 2 becomes more attractive than the more heavily loaded Path 1. Traffic then migrates to Path 2, making Path 1 less loaded and now more attractive than more heavily loaded Path 2. This leads to the best path choice alternating between Path 1 and Path 2. Metrics are generally comparable only within the same dynamic routing protocol. RIP uses hop count, whereas IGPR (Interior Gateway Routing Protocol) and EIGPR (Enhanced IGPR) use the same complex formula that, in practice, generally is bandwidth based. OSPF (Open Shortest Path First) use an arbitrary interface cost that, in practice, like IGPR and EIGPR, is bandwidth based. Fig. 2 shows a structure of a network 200 in accordance with the present invention. For illustrative purposes, network 200 is a broadband wireless mesh topology network. Each node 210 can be a Subscriber Radio (SR) having unique capability to communicate at high frequency (above say 6 GHz) with other SR nodes 210 with whom line of sight (LOS) exists via wireless medium link 220. There is an independent scheduling algorithm that provides media access for network 200. Basically, each node communicates its future scheduled transmitting times to other nodes, informing other nodes of slots available for receipt of data. The schedule is continuous updated. In this way, communicating nodes reach an agreement on future times available for the exchange of data. Each node 210 in network 200 can communicate with only one of its neighboring nodes 210 at any one time. For instance, assuming Node 4 has a bandwidth of 100Mbps, the sum of the communication rates (in Mbps) at which Node 4 communicates with its neighboring Nodes 1, 2, 5, and 6 must be 100 Mbps or less. This means that a traffic flow from Node 1 to Node 5 via Node 4 affects the bandwidth left for another traffic flow from Node 2 to Node 6 via Node 4, and vice versa. Specifically, if Node 4 uses 40 Mbps of its bandwidth to receive packets from Node 2 and another 40 Mbps of it bandwidth to forward the packets to Node 6, it has only 20 Mbps of bandwidth left to handle traffic from Node 1 to Node 5. It may use 10 Mbps of the remaining bandwidth of 20 Mbps to receive packets from Node 1 and uses the last 10 Mbps of its available bandwidth to forward the packets to Node 5. For network 200 of Fig. 2, typical metric assignments of the prior art would have disadvantages. First, a hop count metric does not reflect the merit of the path. For example, assuming Node 4 uses 40 Mbps of its bandwidth of 100 Mbps for receiving packets from Node 2 and uses 40 Mbps for forwarding the packets to Node 6, if Node 1 wants to send a flow at 40 Mbps to Node 5, relying on hop count metrics, it will split the load 50- 50 between the two paths via Node 3 and Node 4, assuming load balancing is applicable here. This means that Node 4 uses its last 20 Mbps of bandwidth for receiving packets from Node 1. With input rate at 60 Mbps (40 Mbps from Node 2 and 20 Mbps from Node 1) and output rate at only 40 Mbps (to Node 6) , Node 4 has to use a buffer to store packets for later forwarding to Node 5. Soon, the queue in this buffer will overflow and Node 4 has to drop packets. This is called node congestion. Therefore, hop count metrics do not reflect the need for Node 1 to divert its traffic to Node 3. Secondly, metric assignments based on link bandwidth also have disadvantages if applied to network 200. Assuming that link 1-4 (connecting Node 1 and Node 4) and link 4-5 (connecting Node 4 and Node 5) have very high bandwidth, and therefore, have low metrics, it follows that the path from Node 1 to Node 5 via Node 4 will be preferred. However, in network 200 of the present invention, Node 4 is the limiting factor, not links 1-4 and 4-5. Typical metrics for links 1-4 and 4-5 will not change and hence path metric for the path including these two links will also not change even when Node 4 runs out of bandwidth handling traffic from Node 2 to Node 6 via Node 4. As a result, if Node 1 wants to send a flow at 40 Mbps to Node 5, the path via Node 4 is an attractive one, while the path is in fact congested at Node 4. An object of the present invention is to provide a new metric system to better reflect the status of the paths between any pair of source-destination routers in network 200 of the present invention. SUMMARY OF THE INVENTION The present invention achieves the stated object by using a new measure of merit, termed a node metric. With this technique, the status of a path is repre- sented by a path metric which is computed by summing the node metrics of the intermediate nodes on the path. Factors used in computing node metrics include the following: 1. future traffic from neighboring nodes to the node; and 2. future traffic from the node to the neigh- boring nodes. The future traffic is known from a broadcast of traffic scheduling. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a plan of a typical network of the prior art. Fig. 2 is a plan of a network in accordance with the present invention. BEST MODE FOR CARRYING OUT THE INVENTION With reference to Fig. 2, the metric of the path from Node 1 to Node 5 via Node 4 will be computed by summing the node metrics of all intermediate nodes . Here, Node 4 is the only intermediate node of the path, therefore, its metric is also the path metric of the path. Other methods of combining the node metrics of the intermediate nodes along the path may be used to compute the path metric. The node bandwidth of node 210 is the maximum processing rate of the node 210 in network 200. Because a node 210 can communicate with only one other node 210 at any one time, the bandwidth of the node 210 is shared among its links. Assuming that Node 4 has a bandwidth of 100 Mbps, this bandwidth can be shared among its four links to Nodes 1, 2, 5, and 6. In other words, the sum of traffic rates on the four links of Node 4 must be 100 Mbps or less. In general, let R(i,j) denote the traffic rate on link i-j , then R(4,l) + R(4,2) + R(4,5) + R(4,β) <= 100 Mbps, where the symbol <= denotes less than or equal. Similarly, for Node 3, R(3,l) + R(3,5) <= 100 Mbps, assuming the maximum bandwidth of Node 3 is 100 Mbps . Traffic on the four links of Node 4 can be input traffic if the packets are coming to Node 4, or output traffic if the packets are coming out of Node 4. If input traffic rates exceed output traffic rates, some input packets must be queued in buffer of Node 4. The length of this queue is a component in the computation of Node 4's metric. If output traffic rates exceed input traffic rates, some packets previously stored in the queue are now forwarded to the predetermined destination. The node metric of a node in accordance to the present invention has the following components: a from- neighbor component and a to-neighbor component. The from-neighbor component of the metric of the node reflects the bandwidth of the node needed to handle the data transfer demand from the node's neighboring nodes. If the node's neighbors have big queues of packets to be sent to the node and these neighbors have available bandwidths to send these packets to the node, then the node will have to use much of its bandwidth to receive these packets from the neighbors. In other words, if the queues in the neighbors for packets to be sent to the node grow longer and these neighbors have a lot of available bandwidths to send these packets to the node, the node metric of the node should be increased to show that the node will be busier handling the growing data transfer demand from the node ' s neighboring nodes . The to-neighbor component of the metric of the node reflects the bandwidth of the node needed to handle the data transfer demand from the node to its neighbors . If the node has large queues of packets to be sent to its neighbors, then the node will have to use much of its bandwidth to send these packets to the neighbors. In other words, if the queues in the node for packets to be sent to the neighbors grow longer, the node metric of the node should be increased to show that the node will be busier handling the growing data transfer demand from the node to the neighbors . Future traffic on a link of a node is represented by the number of packets to be sent either from the node to the neighbor at the other end of the link or from the neighbor to the node . These packets may be in queue in the node waiting for the neighbor to receive them. These packets may also be in queues in the neighbors waiting for the node to receive them. With refer- ence to Fig. 2, assuming Node 4 is using its entire capacity and then Node 1 has packets to be sent to Node 4, Node 1 has to put these packets in its queue to be sent to Node 4 later when Node 4 has some available bandwidth. The from-neighbor component and the metric of Node 4 should be increased to reflect the effect that some of Node 4's bandwidth will have to be used in the future to empty the queue in Node 1 (i.e., to receive the packets from the queue in Node 1) . An exception applies if Node 1 is also busy and will not be able to send the packets from its queue to Node 4 even if Node 4 has available bandwidth to receive them. In this case, the metric of Node 4 should not be increased because the packets in the queue will not be a burden for Node 4 as long as Node 1 has no bandwidth available to send them to Node 4. In other words, either the length of the queue in Node 1 or the bandwidth available for Node 1 to empty the queue is the limiting factor contributing to the metric of Node 4. When one is the limiting factor, the other has no effect even if it increases. On a periodic basis, say every microsecond, the node metrics are updated (recomputed) . The node metric components may be added together to yield the metric for the node or they may be multiplied by a coefficient before adding together, depending on the designer's desired characteristics for the network. Node metrics have the essential property that if the traffic on some path increases the node's load, the node's metric will increase. A node can have a high metric that contributes to a path metric of a path even if there is no traffic on any link of the path. The measure of congestion at each node (node metric) , described below, needs to be propagated back towards the source. This is easily done through special routing packets that are sent periodically or through piggybacking the information on other control or data packets . The following example will illustrate the com- putation of the node metrics using the present invention. Node n computes its own node metric M(n) , using the formula : M(n) = Σ ieN A A (n) + Σ ieN B, (n) , where N is the set of all neighbors of Node n, Ai(n) = Min [Qi(n), BWAi (n) ] , B j di) = BWGi(n) if BWA n (i) > Q n (i) or BWA„(i) Q n (i) otherwise, where Qi(n) is the queue length at Node i for packets to be sent to Node n. Q n (i) is the queue length at Node n for packets to be sent to Node i. BWG j i(n) is the bandwidth granted by Node i for receiving packets from Node n divided by the period over which the bandwidth is granted. BWA j^ (n) i- s e bandwidth available at Node i for sending packets to Node n divided by the period over which the bandwidth is granted. BWA n (i) is the bandwidth available at Node n for sending packets to Node i divided by the period over which the bandwidth is granted. Σ iεN A A (n) is the from-neighbor component of the node metric of Node n. A i (n) reflect the future traffic on link i-n, from Node i to Node n, that Node n will have to use some or all of its bandwidth to handle. A^n) has two components: Q ± (n) and BWAi (n) . If Q (n) is short, i.e., the queue length at Node i for packets to be sent to Node n is short, or in other words, there are not many packets to be sent to Node n, Node n's metric should be low reflecting this good news for any path passing Node n. If BWAi( ) is small, i.e., the bandwidth available at Node i for sending to Node n divided by the period over which the bandwidth is granted is small, Node i can send only a small number of packets to Node n, Node n's metric should be low to reflect this good news for any path passing Node n. Either one of these two terms will be a limiting factor. For example, if Node i is busy and has no available bandwidth to send packets to Node n, i.e., , BWA ± (n)] = 0 regardless of however large Q A (n) is. Here, BW i (n) is the limiting factor. ∑ ieN Bi (n) is the to-neighbor component of the node metric of Node n. B^n) reflects how much bandwidth Node n will have to use to handle its need to send packets to its neighbor Node i. Generally, Bi(n) = Q n (i) . This means that generally, Node n will have to use as much bandwidth as necessary to empty its queue of packets to be sent to neighboring Node i. However, situations exist that Node i is busy and therefore cannot receive these packet. If so, Node n will not use its bandwidth to empty the queue. As the result, the metric of Node n should not depend on Q n (i) in these situation, but should depend on the rate at which Node i is committed to receiving packets from Node n (bandwidth granted/committed) . These situations occurs approxi- mately when BWA^i) > Q n (i) or BWA i) > 1.2* BWG ± (n). The BWA n (i) > Q n (i) situation means that when Node n has much available bandwidth to empty the queue Q n (i), then the bandwidth that Node i granted/committed to receiving from Node n should be the limiting factor and therefore should represent B ± (n) . Similarly, the BWA„(i) > 1.2* BWGi (n) situation means that if Node n has more bandwidth available than the bandwidth Node i has granted for receiving from Node n, then BWG^n) is the limiting factor and should repre- sent Bi (n) . The node metric of a node can be rewritten as: where Ai( ) + B ± (n) is the metric contribution corresponding to the node pair i-n including Node i and Node n. After computing all metric contributions, Node n combines them to yield its metric. In the formula above, combines means adds together. The congestion of a route represented by the route's path metric is determined by summing the measure of congestion of all the intermediate nodes (node met- rics) excluding the source and destination nodes. The congestion of a route (path) can also be determined by weighted sum method, sum of exponential method, maximum method, or their combination. The weighted sum method means each of the node metrics of the nodes on the path excluding the source and destination nodes is multiplied by a coefficient before adding together. Sum of exponential method means each of the node metrics of the nodes on the path excluding the source and destination nodes is raised to some exponential before adding together. Maximum method means the highest node metric among the node metrics of the nodes on the path excluding the source and destination nodes is used as the path metric. After the source node compute the path metrics of all available paths from the source node to the destination node, the source node can allocate its traffic to the destination node in the following ways: 1. Always use the path having lowest path metric. 2. Use all available paths with the amount of traf- fie on each path being inverse proportional to the path metric . 3. Use only the best N paths, where N can be fixed of variable. The allocation of traffic between these paths can be equal or dependent on the path metrics of these paths. 4. Allocate traffic equally among the available paths and then shift the load from the most congested paths to the least congested paths. The shift amount may be a fixed amount (in percentage) or dependent on the differences in congestion. For example, with reference to Fig. 2, assuming that each node 210 of network 200 has a maximum bandwidth (capacity) of 120 Mbps. Node 2 generates data to Node 6 via Node 4 at a rate of 54 Mbps, as the result, Node 4 uses 54 Mbps of its 120 Mbps bandwidth for receiving packets from Node 2, and another 54 Mbps for forwarding these packets to Node 6. As a result, Node 4 has only 12 Mbps of its bandwidth left (120 - 2*54) . Now, assuming that, Node 1 starts sending data to Node 5 at a rate of 54 Mbps. There are two available paths for this traffic. The first path goes through Node 3, and the second path goes through Node 4 (assuming further that no looping allowed) . According to the node metric system of the present invention, Node 4 has a high metric because its bandwidth is largely utilized (108/120) . Therefore, the second path has a much higher path metric than that of the first path (Node 3 has no load at all before Node 1 starts sending) . Initially, the load from Node 1 is split 50-50 between the two paths, i.e., the first packet is sent to Node 3, the second packet to Node 4, the third packet to Node 3, and so on. This is equivalent to 27 Mbps from Node 1 to Node 4. But , Node 4 has only 12 Mbps left to receive this. As a result, Node 4 uses all of its remaining 12 Mbps for receiving packets from Node 1 and part of the packets from Node 1 intended for Node 4 must be put in a queue in Node 1. There are several events leading to the further increase of Node 4 ' s node metric. First, the length Q x (4) of the queue in Node 1 that holds packets to be sent to Node 4 increases. Second, the length Q 4 (5) of the queue in Node 4 that holds packets to be sent to Node 5 increases because Node 4 has no bandwidth left for forwarding packets from Node 1 to Node 5. Third, Node 1 has much available bandwidth BWAi (4) to send to Node 4. All of these events contribute to increase the metric of Node 4 when the metric of Node 4 is updated every micro second. Node 1 promptly realizing the low path metric for the first path and a very high path metric for the second path will shift most of its load to the first path. The metric of Node 4 stops increasing when traffic from Node 1 to Node 4 decreases 12 Mbps down to 6 Mbps. At this time, Node 4 uses 6 Mbps for forwarding packets from Node 1 to Node 5 , the queue in Node 4 for packets from Node 1 to be sent to Node 5 stops growing, and the queue in Nodes 1 also stops growing. However, Node 1 continues to shift load from the second path to the first path. At steady state, Node 1 sends 89% (48.1 Mbps) through the first path and 11% (5.9 Mbps) through the second path. This results in a total of 119.9 Mbps (54 + 54 + 5.9 + 5.9) which is within the capacity of Node 4. The node metric system of the present invention does not rely on any particular scheduling/bandwidth allocation algorithm. The scheduling algorithm used with the node metric system of the present invention does not have to be capable of dynamic allocation of bandwidth. The node metric system of the present invention, when examining the merit of a path (path metric) , takes into account the traffics on other paths that share the same node(s) with the path under examination. Therefore, the node metric system of the present inven- tion has an advantage over prior art link metric systems, especially for wireless mesh topology networks of the type described.

Claims: Claims 1. A method of routing traffic from a source node to a destination node in a network, said network having a plurality of nodes including said source node and said destination node and a plurality of links connecting said nodes, the method comprising the steps of: (a) computing a node metric for each node of said nodes by: (i) calculating a from-neighbor component of said node metric, said from-neighbor component reflecting the future traffic from all neighbors of said node to said node; (ii) calculating a to-neighbor component of said node metric, said to-neighbor component reflecting the future traffic from said node to said neighbors; and (iii) combining said from-neighbor component with said to-neighbor component to yield said node metric; (b) determining a path metric for each path of all available paths from said source node to said destination node by combining the node metrics of the intermediate nodes along said path; and (c) allocating the load from said source node to said destination node to said available paths according to the path metric of each path of said available paths. 2. The method of claim 1 wherein said calculating said from-neighbor component of said node metric comprises the steps of: determining the future traffic for each link of all the links said node; and combining the future traffic of the links of said node. 3. The method of claim 2 wherein said determining the future traffic for each link of all the links of said node comprises the steps of: determining the length of the queue in the neighbor at the other end of said link, said queue storing the packets to be sent to said node; determining the available bandwidth of said neighbor for sending data to said node; and comparing said length of the queue and said available bandwidth of said neighbor to yield the future traffic for said link. 4. The method of claim 3 wherein said calculating the to-neighbor component of said node metric comprises the steps of: determining bandwidths granted by said neighbors for receiving data from said node; and combining said bandwidths granted by said neighbors to yield to-neighbor component if the available bandwidths at said neighbors are a limiting factor. 5. The method of claim 2 wherein said calculating the to-neighbor component of said node metric comprises the steps of: determining bandwidths granted by said neighbors for receiving data from said node; and combining said bandwidths granted by said neighbors to yield to-neighbor component if the available bandwidths at said neighbors are a limiting factor . 6. The method of claim 5 wherein said combining the node metrics of the intermediate nodes along said path comprises the step of summing said node metrics of said intermediate nodes along said path. 7. The method of claim 6 wherein said allocating the load from said source node to said destination node comprises the steps of: allocating said load equally to said available paths ; and shifting the load from the most congested paths to the least congested paths. 8. The method of claim 2 wherein said calculating the to-neighbor component of said node metric comprises the steps of: determining the lengths of the queues in said node, said queues storing packets to be sent to said neighbors; and combining said lengths of the queues to yield to-neighbor component if the available bandwidths at said neighbors are not a limiting factor. 9. The method of claim 8 wherein said combining the node metrics of the intermediate nodes along said path comprises the step of summing said node metrics of said intermediate nodes along said path. 10. The method of claim 9 wherein said allocating the load from said source node to said destination node comprises the steps of: allocating said load equally to said available paths ; and shifting the load from the most congested paths to the least congested paths. 11. A method of routing traffic from a source node to a destination node in a network, said network having a plurality of nodes including said source node and said destination node and a plurality of links connecting said nodes, the method comprising the steps of: (a) computing a node metric for each node of said nodes by (i) calculating a metric contribution for each link of all links of said node; and (ii) combining said metric contributions to yield said node metric; (b) determining a path metric for each path of all available paths from said source node to said destination node by combining the node metrics of the intermediate nodes along said path; and (c) allocating the load from said source node to said destination node to said available paths according to the path metric of each path of said available paths. 12. The method of claim 11 wherein said calculating said metric contribution for said link comprises the steps of: determining a first future traffic along said link from a neighbor to said node; determining a second future traffic from said node to said neighbor; and combining said first future traffic and said second future traffic to yield said metric contribution for said link. 13. The method of claim 12 wherein said determining a first future traffic comprises the steps of: determining the length of the queue in said neighbor for storing packets to be sent to said node; determining available bandwidth of said neighbor; and comparing said length of the queue and said available bandwidth in said neighbor to yield said first future traffic. 14. The method of claim 13 wherein said combining the node metrics of the intermediate nodes along said path comprises the step of summing said node metrics of said intermediate nodes along said path. 15. The method of claim 14 wherein said allocating the load from said source node to said destination node comprises the steps of: allocating said load equally to said available paths; and shifting the load from the most congested paths to the least congested paths . 16. The method of claim 12 wherein said determining said second future traffic comprises the steps of: determining a bandwidth granted by said neighbor for receiving data from said node; and combining said bandwidths granted by said node's neighbors to yield said second future traffic if the available bandwidths at said neighbors are a limiting factor . 17. The method of claim 16 wherein said combining the node metrics of the intermediate nodes along said path comprises the step of summing said node metrics of said intermediate nodes along said path. 18. The method of claim 17 wherein said allocating the load from said source node to said destination node comprises the steps of: allocating said load equally to said available paths ; and shifting the load from the most congested paths to the least congested paths. 19. The method of claim 12 wherein said combining the node metrics of the intermediate nodes along said path comprises the step of summing said node metrics of said intermediate nodes along said path. 20. The method of claim 19 wherein said allocating the load from said source node to said destination node comprises the steps of: allocating said load equally to said available paths; and shifting the load from the most congested paths to the least congested paths .

Inventors: AARONSON ITAI, PLOTKIN SERGE, RAVID-RABINOVITZ SHMUEL, WORFOLK PATRICK A, AARONSON, ITAI, PLOTKIN, SERGE, RAVID-RABINOVITZ, SHMUEL, WORFOLK, PATRICK, A.
Applicants: CALY CORP, CALY CORPORATION
Application year: 2001
Main classification: H04Q
IPC codes: H04L12