The paper is to have a distributed routing algorithm to find, at each node \(i\), the successor set for destination \(j\) such that the routing path is loop-free at every instant even the link costs are changing with time. Such algorithm turns out finds the multipath route with unequal length.

The successor set of node \(i\) has the property that the shortest distance of any node \(k\) in the set to destination \(j\) is strictly less than that of node \(i\) to node \(j\). Therefore, this avoids loops. The algorithm works as follows

- Every node knows its neighbours, thus the shortest distance from itself to the neighbour
- Every node tells its shortest-distance knowledge to its neighbours
- When a node receive the shortest-distance data from its neighbours, it learns more about the topology. thus also updating its topology knowledge
- When a node \(i\) knows multiple ways to reach the same node \(j\), it runs Dijkstra’s algorithm to find the shortest path
- Since shortest path information is updated in node \(i\), it can send an updated message to its neighbours

In the paper, it assumes the distance may change with time. Therefore, when the shortest path distance at node \(k\) is calculated and told node \(i\), the distance may be updated and this may potentially cause loop. Thus additional constraints are needed.

When node \(i\) wants to forward packets to node \(j\), it finds a successor set,
which is a subset of its neighbours. For any node of the successor set, its
distance to node \(j\) is strictly less than the *feasible distance* (an estimate
of actual distance) of node \(i\) to node \(j\). Thus the routing is loop free.

## Bibliographic data

```
@article{
title = "MPATH: a loop-free multipath routing algorithm",
author = "S. Vutukurya and J.J. Garcia-Luna-Aceves",
journal = "Elsevier Microprocessors and Microsystems",
volume = "24",
pages = "319--327",
year = "2000",
}
```