Multiple path routing
6 claims: 3 independent, 3 dependent
- 1A method for routing a data packet from an implementing router (R) to a destination node (D) in a packet switching network, said data packet originally from a source node (S) in said packet switching network, CHARACTERIZED BY :A. determining and storing in a data structure: the shortest distance from the implementing router (R) to the destination node (D), the cost of each link from the implementing router (R) to each potential next hop (220);for each of said potential next hop (220), the shortest distance from the implementing router (R) to the destination node (D) along a path traversing that particular next hop (220);B. storing said data structure in a first memory means (303) at said implementing router (R);C. using said data structure to compute multiple viable next hops (220) from the implementing router (R) by selecting viable next hops from potential next hops lying on a path from said source node (S) to said destination node (D), each of said viable next hops being a next hop for which the shortest distance from the implementing router (R) to the destination node (D) along a path traversing that next hop (220) minus the cost of the link (1-16) from the implementing router (R) to that next hop is less than the shortest distance from the implementing router (R) to the destination node (D);D. selecting the optimal of said one or more viable next hops (220) to forward said data packet;E. upon determining that a link failure exists along the path traversing said selected optimal viable next hop, and a second viable next hop has been computed in step C, selecting a second one of said one or more viable next hops (220) to forward said data packet.
- 5A method for determining multiple loop free paths from a source node (S) to a destination node (D) in a packet switching network, said packet switching network comprising a plurality of routers (R), CHARACTERIZED BY the step of selecting at each of said routers (R) viable next hops (220) from potential next hops (220), a viable next hop being a next hop for which the shortest distance from the router (R) to the destination node (D) along a path traversing that next hop (220), minus the cost of the link (1-16) from the router (R) to that next hop (220) is less than the shortest distance from the router (R) to the destination node (D).
- 6A router (R) for use in a packet switching network for routing a data packet originating from a source node (S), to a destination node (D), CHARACTERIZED BY :storage means (303) adapted to store a data structure, said data structure comprising the shortest distance from said router (R) to a destination node (D), the cost of the link to each next hop (220) from said router (R) and, for each of said next hops (220), the distance of the shortest path from said router (R) to said destination node (D) using said next hop (220);and computer implemented means (301) dapted to determine one or more viable next hops (22) from said data structure, by selecting viable next hops (220) from potential next hops (220), a viable next hop being a next hop for which the shortest distance from the router (R) to the destination node (D) along a path traversing that next hop (220) minus the cost of the link form the router (R) to that next hop (220) is less than the shortest distance from the router (R) to the destination node (D).
Independent claims3
38 paragraphs, as filed
<u style="single">FIELD OF THE INVENTION</u>
0001The present invention relates generally to routing data packets to a destination node within a packet switching network. In particular the invention relate to a multiple path routing scheme using a novel data structure.
<u style="single">BACKGROUND OF THE INVENTION</u>
0002In packet switching networks such as the Internet, a packet from a source traverses intermediate network routers before reaching its destination. Before a packet arrives at a router, a routing protocol is used to determine the existence and status of all routers and links therebetween on the network. This information is used by the router to determine an appropriate next hop for an arriving packet with a given destination. The next hop includes the next router along the path to the destination and the outgoing port of the present router linking the next router. A widely used link-state routing protocol, is Open Shortest Path First ("OSPF")
0003Given the current link states in the network, (e.g. reduced bandwidth, increased bandwidth, disconnected, reconnected) each router S keeps track of a shortest path tree "SPT" from S to every other router in the network. Since the router retains only one shortest path from S for each destination router, the first hop from S along this path will be used as the next hop to forward any packets with the same given destination.
0004Although a router using OSPF has global information about the regional network topology, it determines only the local route of a packet, i.e., the next hop. When each router computes such next-hop information based on an SPT, each packet is guaranteed to be forwarded along a loop-free path to its destination. A loop-free path is a path that doesn't include the same router more than once. Multiple SPTs rooted at router S can co-exist in a network. In such a case there are multiple choices of next hops from S to forward a packet, each of which will lead to a different path of the same shortest distance. The packet can be forwarded to any of these next hops.
0005Routing protocols allowing for only a single shortest path suffer from several inefficiencies. For example, if immediately before dispatching a packet along its next hop, a router learns that a link along the path is down, the router must first recompute a new single shortest path and only then send the packet along the new next hop.
0006The single shortest path method also ignores network load considerations. Thus, even if a path has a lot of traffic the packet will be forwarded along that path if it is the shortest to its destination. Furthermore, it is known that finding an optimal path that satisfies certain QoS constraints is in general computationally difficult (NP-complete). Since some QoS parameters that need to be optimized may depend on the network traffic load and thus can change dynamically over a short period of time, finding an optimal path can become infeasible even for a moderate-size network. Even for QoS parameters that do not change frequently, determining the optimal path from a router may require global knowledge of these parameters in the network, and a local change in these parameters would therefore need to be disseminated to every node in the network. Hence in most cases only suboptimal paths can be computed.
0007EP-A-0 465 090 discloses a congestion control scheme for connectionless networks which relieves congestion by routing a portion of traffic on a congested primary path onto a predefined alternative path. A method of routing information packets from a first node in a network of interconnected nodes to a destination node includes forming a first routing table containing the primary route to be taken by information packets at a first node destined for a destination node and a second routing table containing an alternative route to be taken by information packets when the primary route is congested. More specifically, EP-A-0 465 090 teaches and claims monitoring congestion in a network and routing a portion of the information packets over the alternative route in the presence of congestion.
0008Ogier R G et al: "Efficient Algorithms for Optimal Alternate Routing in Communication Networks" Proceedings of the International Conference on Communications (ICC), Geneva, May 23 - 26, 1993, vol. 2, 23 May 1993, pages 676-680, XP000371172 Institute of Electrical and Electronics Engineers discloses algorithms for pre-computing shortest alternative paths in a communication network. The first algorithm addresses the problem of alternative routing around node failures when routing from a fixed source to all destinations. The second algorithm deals with alternative routing around link failures when routing from all sources to a fixed destination. The third algorithm addresses the problem of alternative routing around node and/or link failures when routing from all sources to all destinations.
<u style="single">Summary of the Invention</u>
0009Methods and a router according to the invention are as set out in the independent claims. Preferred forms are set out in the dependent claims.
0010The present invention uses a multiple path algorithm (referred to herein as "MPA") to enable a router to forward packets to multiple viable next hops that are not strictly constrained to be a part of a shortest path from the router to the packet's destination. The method of the present invention still guarantees, however, that all packets will be routed to their destination on loop-free paths. In general each path traversing a different next hop is guaranteed to be loop free if it satisfies the constraint that the shortest distance from the implementing router to the destination decreases at each next hop.
0011In a preferred embodiment of the invention, the MPA uses a novel data structure which stores information relating to each router (node) in the network that is a potential destination node. In particular, the data structure maintains at least the following attributes: the shortest distance from the implementing router to the destination node; the cost of each link from the implementing router to each potential next hop; and for each potential next hop, the shortest distance from the implementing router to the destination node along a path traversing that particular next hop.
0012Using this data structure, multiple viable next hops are computed by selecting next hops from the potential next hops whose shortest distance attribute traversing that next hop, minus the cost of the link from the implementing router to the next hop, is less than the shortest path from the implementing router to the destination node.
0013The method and data structure of the present invention can be efficiently implemented as an add-on component to existing routing protocols such as OSPF. Each MPA implementing router uses the topology information exchanged by the router protocols to compute multiple paths between a given source and a given destination. Moreover, conventional routers based on shortest path routing can co-exist in the same network with MPA implementing routers to guarantee loop-free routing for each packet. In general, an MPA implementing router can interoperate with any router whose routing protocol uses the loop-free policy.
0014By maintaining multiple viable next hops in a router for each destination, recovery from link failure is much faster than heretofore possible, since the recovery mechanism using alternate paths can be implemented locally by the router, and there is almost no delay incurred by the link failure. On the other hand, without MPA, after detecting a link failure, the router would need to broadcast throughout the network the link failure, then recompute the shortest path tree to determine a new alternative path.
<u style="single">BRIEF DESCRIPTION OF THE DRAWINGS</u>
0015<ul id="ul0001" list-style="none" compact="compact"><li>FIG. 1 is a graphical depiction of the data structure used in accordance with the present invention.</li><li>FIG. 2 is a graphical depiction of the data structure used in a conventional shortest path tree algorithm.</li><li>FIG. 3 depicts a router architecture employing the MPA algorithm as used in accordance with the present invention.</li><li>FIG. 4 is a representation of a network of routers including a source router S and a destination router D.</li></ul>
<u style="single">DETAILED DESCRIPTION OF THE INVENTION</u>
0016The packet routing method of the present invention involves making available at each router, alternative multiple next hops to forward a received packet. The only constraint in computing the multiple next hops is that the paths to the packet's destination resulting from these next hops do not return the packet to any router it previously hit. In other words, the paths of these alternative next hops should be loop free. As discussed above, the OSPF protocol well known in the art, guarantees loop-free routing to each destination by constraining each router to choose the next hop based on an SPT. However, a loop free path can be guaranteed even if it does not represent the shortest distance to a destination. For example, any path to a destination that traverses a particular next hop from a router S is loop free if the distance to the destination continues to decrease at each next hop.
0017In one preferred embodiment of the present invention viable next hops from a router S, i.e., next hops which lie on a loop free path to a destination, can be guaranteed where the shortest distance from S to the destination traversing a given next hop, minus the cost of the link (i.e., its distance) from S to that next hop is less than the absolute shortest distance from S to the destination. For example, if router R is the next hop from router S along a shortest path from S to destination router D, then the distance between R and D, i.e., d(R, D), must be less than the distance from S to D, i.e., d(S, D). Extrapolating R to any next router R<sub>i</sub>, which can even be a router not on the absolute shortest path between S and D, a loop free path from S to D is guaranteed with a next hop to R<sub>i</sub> if d(R<sub>i</sub>, D) <d(S, D).
0018Referring to FIG. 4 an example of a network of routers is shown, including source router S, destination router D and a plurality of routers R. Each link between the routers is numbered and it is assumed that each link has the same cost, or distance. In this example, it is clear that there are three shortest paths: (i) 1-2-3; (ii) 7-9-10; and (iii) 4-14-3.
0019However, in addition to these shortest paths, there are at least twenty four loop free paths. In particular, 1-5-6-14-3; 1-5-6-15-16-3; 1-5-6-15-12-13; 1-5-6-8-9-10; 1-5-6-8-9-11-16-3; 1-5-6-8-9-11-12-13; 4-5-2-3; 4-6-15-16-3; 4-6-15-12-13; 4-6-15-11-10; 4-6-8-9-10; 4-6-8-9-11-16-3; 4-6-8-9-11-12-13; 7-9-11-16-3; 7-9-11-12-13; 7-8-15-16-3; 7-8-15-11-10; 7-8-15-12-13; 7-8-6-14-3; 7-8-6-14-16-12-13; 7-8-6-14-16-11-10; 7-8-6-5-2-3; 7-8-6-5-2-16-11-10; 7-8-6-5-2-16-12-13. A non-viable loop path, however, exists for example on path 7-8-6-5-2-16-15... since link 15 will return the packet to a router previously visited between links 8 and 6.
0020In the preferred embodiment of the invention, the MPA of the present invention makes use of the data structure of FIG. 1 to compute alternate viable next hops from a router whose shortest distances to the destination are less than the shortest distance from the router to the destination.
0021During execution, a conventional SPT algorithm usually keeps track of certain state information about each node in the network. See E. Dijkstra, "A Note to Two Problems in Connection with Graphs" Numerical Mathematics, vol. 1 p. 115-126 (1959); R. Bellman, "On a Routing Problem" Quarterly of Applied Mathematics, vol. 16, p. 87-90 (1958). Typically, such information consists of a distance attribute 210, the next hop attribute from the router 220, and perhaps a parent attribute for each node 230, as shown in FIG. 2. At each hop, during the execution of the SPT algorithm in router S, the distance attribute 210 of destination node X represents the distance of the shortest path found so far from the router S to node X, while the next hop attribute and the parent attribute respectively identify the first hop from router S and the last hop to router S.
0022The data structure of FIG. 1, however, contains more state information about each node in the network, without incurring significant computational complexity. More specifically, a given router S will maintain for each destination node X the shortest distance d(S, X) from the router S to X. This information can be computed with existing SPT algorithms such as those taught in Dijkstra and Bellman, supra. In addition, the distance, or cost w(S,p) for each outgoing link connecting the router S to a potential next hop p is also maintained. Furthermore, the data structure keeps track of the length of the shortest path that uses p as the next hop from S, which is denoted by d<sub>p</sub>(S, X). When the MPA execution terminates, d<sub>p</sub>(S, X) should equal the sum of w(S,P) and the shortest distance found, d(p, X) from p to X. By maintaining this data structure, the MPA identifies viable next hops for destination X using the principles discussed above: namely a viable path using next hop p exists if d<sub>p</sub>(S, X) - w(S, p) < d(S, X).
0023While all next hops satisfying the above inequality are viable and can be revealed by the MPA, it is possible for additional viable next hops to exist which will not be revealed. By searching through paths, the data structure at every node can be updated, increasing the number of viable next hops. As long as the shortest distance to every node is computed correctly, the resulting viable next hops will not lead to a loop.
0024With the alternative viable paths for a given destination, alternate paths can be constructed by comparing the MPA data structures associated with different destinations. Most SPT algorithms known in the art constantly compare the distance attributes of two neighboring nodes. The distance attribute of a node eventually converges to the shortest distance from the source to that node. The distance attribute of node X from source S computed by the SPT algorithm is contained in the corresponding field 210 of the shortest distance from S to X and is updated by the SPT algorithm, independently of other operations of the MPA.
0025Referring to FIG. 3, the extended routing algorithm 300 in accordance with the present invention comprises these modules: MPA Algorithm 301, Conventional Routing Algorithm 302 and Routing Protocol Memory 303. The MPA and Conventional Algorithms 301 and 302, respectively, while possible to be implemented with hardware, typically comprise software executed on a standard microprocessor having the computing power of at least a Power PC or Pentium grade chip. Routing Protocol Memory 303 typically comprises at least 4 megabytes ("MB") of RAM, with 3MB typically allocated to the Conventional Algorithm 302 and 1MB allocated to the MPA Algorithm. Furthermore, it is possible to provide physically separate RAM chips for use by each of the algorithms 301 and 302. Forwarding Table 350 also typically comprises at least 4MB of RAM.
0026Every time the SPT algorithm, represented by block 302, makes a comparison between nodes a and b, the distance attribute from source S to b, d<sub>opt</sub>(b), is equal to the smaller values between its old value and the sum of d<sub>opt</sub>(a) +w(a, b).
0027Furthermore, with each comparison by the SPT algorithm 302 between nodes a and b, MPA block 301 is triggered and starts its own comparisons. For every next hop p from S, the distance from S to b is set to the minimum of its old value and d<sub>p</sub> (S, a) +w(a, b). With the termination of the SPT algorithm, the MPA also terminates and the data structure is updated in routing protocol memory 303.
0028With the availability of viable next hops the router can select the actual next hop for forwarding a packet based on a variety of criteria such as round robin, network load, or shortest distance. Those skilled in the art will be able to devise various selection criteria.
0029Indeed, one such criteria can be used to determine satisfactory approximate solutions to QoS routing by decoupling the underlying optimization problem discussed above, into local and global computations. First, multiple viable paths that satisfy the global or less frequently changed QoS constraints are computed. Then among these viable paths, one that is optimized with respect to the local or more frequently changed QoS parameters can be determined.
0030With respect to load balancing it should be noted that implementation of such a scheme may require a means to preserve the FIFO arrival of packets where FIFO is assumed by the upper layer protocol at the destination router. It may also be necessary to provide additional buffer means and processing capabilities at the destination router, especially where FIFO is not strictly adhered to.
0031In addition each router can compute and store in a forwarding table such as 350 in FIG. 3, each viable next hop for a given destination or maintain only a single viable next hop in forwarding table 350 while maintaining additional next hop information in the routing protocol memory 303.
0032By maintaining multiple viable next hops in a router for each destination, recovery from link failure is much faster than heretofore possible, since the recovery mechanism using alternate paths can be implemented locally by the router, and there is almost no delay incurred by the link failure. On the other hand, without MPA, after detecting a link failure, the router would need to broadcast throughout the network the link failure, then recompute the shortest path tree to determine a new alternative path.
0033A more exhaustive search of alternate next hops can be obtained by running a set of independent SPT algorithms in parallel. For every next hop p<sub>i</sub> any SPT algorithm including a dynamic algorithm, i.e., an algorithm which can compute a new SPT by readjusting the old SPT, is executed using only the distance attribute d<sub>p</sub>(S,X) in the data structure associated with the destination X. (While a static algorithm recomputes an entire shortest path, a dynamic algorithm recognizes that the majority of the path segments will remain the same and therefore only certain segments are recomputed). After the SPT algorithm is executed, the data structure is updated and all of the next hops p<sub>i</sub> that satisfy the above inequality are obtained.
3 sheets
Sheet 1 Sheet 2 Sheet 3
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| EP0465090A | Cites | European Patent Office (EPO) |
| OGIER R G ET AL: "EFFICIENT ALGORITHMS FOR OPTIMAL ALTERNATE ROUTING IN COMMUNICATION NETWORKS" PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC), GENEVA, MAY 23 - 26, 1993, vol. 2, 23 May 1993, pages 676-680, XP000371172 INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS | Non-patent | – |
7 members in 4 offices; this record represents the family
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 56028P | United States of America | – | |
| 5602897 | United States of America | P | |
| 5602897 | United States of America | P | |
| 56028P | – | – | – |
| US19970056028P | – | – | – |
Members7
| Document | Office | Kind | |
|---|---|---|---|
| EP0903895A2 | European Patent Office (EPO) | A2 | |
| EP0903895A3 | European Patent Office (EPO) | A3 | |
| JPH11154981A | Japan | A | |
| US6347078B1 | United States of America | B1 | |
| EP0903895B1This record | European Patent Office (EPO) | B1 | |
| DE69835261D1 | Germany | D1 | |
| DE69835261T2 | Germany | T2 |
28 legal events, as 3 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal feeWithdrawnR119 | R119 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)REGISTERED BETWEEN 20131031 AND 20131106732E | 732E | GB | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents actLapsedNLV1 | NLV1 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Designation fees paidDE GB NL SEAKX | AKX | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAL;LT;LV;MK;RO;SIAX | AX | EP | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAL;LT;LV;MK;RO;SIAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0903895
- Publication, DOCDB
- 0903895
- Publication, EPODOC
- EP0903895
- Application
- 98306787
- Application, DOCDB
- 98306787
- Application, EPODOC
- EP19980306787
Titles3
- German
- Mehrweg-Leitweglenkung
- English
- Multiple path routing
- French
- Acheminement à trajets multiples
Classification
- CPC, 5
- H04L45/22
- H04L45/122
- H04L45/18
- H04L45/30
- H04L45/00
- IPC, 1
- H04L12 56
Designated states1
- Contracting states, 1
- Sweden
