ArticlePDF Available

Abstract

A family of distributed algorithms for the dynamic computation of the shortest paths in a computer network or internet is presented, validated, and analyzed. According to these algorithms, each node maintains a vector with its distance to every other node. Update messages from a node are sent only to its neighbors; each such message contains a distance vector of one or more entries, and each entry specifies the length of the selected path to a network destination, as well as an indication of whether the entry constitutes an update, a query, or a reply to a previous query. The new algorithms treat the problem of distributed shortest-path routing as one of diffusing computations, which was first proposed by Dijkstra and Scholten (1980). They improve on a number of algorithms introduced previously. The new algorithms are shown to converge in finite time after an arbitrary sequence of link cost or topological changes, to be loop-free at every instant, and to outperform all other loop-free routing algorithms previously proposed from the standpoint of the combined temporal, message, and storage complexities
130
IEEIYACM TRANSACTIONS ON
NETWORKING, VOL. 1, NO, 1, FEBRUARY 1993
Loop-Free Routing Using Diffusing Computations
J. J. Garcia-Lunes-Aceves, Member, IEEE
Abstract-A family of distributed algorithms for the dynamic
computation of the shortest paths in a computer network or
Memet is presented, validated, and analyzed. According to these
algorithms, each node maintains a vector with its distance to
every other
node. Update messages from a node are sent only
to its neighbors; each such message contains a dktance vector
of one or more entries, and each entry specifies the length
of the selected path to a network destination, as well as m
indication of whether the entry constitutes an update, a query,
or a reply to a previous query. The new algorithms treat the
problem of distributed shortest-path routing as one of diffusing
computations, which was firzt proposed by Dijkztra and Scholten.
They improve on algorithms introduced previously by Chandy
and Misra, JatYe and Moss, Merlin and Segatl, and the author.
The new algorithms are shown
to converge in finite time after
an arbitrary sequence of
link coat or topological changes, to be
loop-free at every instan~ and to outperform all other loop-free
routing algorithms previously proposed from the standpoint of
the combined temporal, message, and storage complexities.
I. INTRODUCTION
T
HE routing protocols used in most of today’s computer
networks are based on shortest-path algorithms that can
be classified as distance-vector or link-state algorithms. In a
distance-vector algorithm, a node knows the length of the
shortest path from each neighbor node to every network
destination, and uses this information to compute the shortest
path and next node in the path to each destination.
A node
sends update messages to its neighbors, who in turn process
the messages and send messages of their own if needed. Each
update message contains a vector of one or more entries,
each of which specifies, as a minimum, the distance to a
given destination. In contrast, in a link-state algorithm, also
called topology-broadcast algorithm, a node must know the
entire network topology, or at least receive that information,
to compute the shortest path to each network destination.
Each node broadcasts update messages, containing the state
of each of the node’s adjacent links, to every other node in
the network.
Several routing protocols based on distance-vector algo-
rithms, called distance-vector protocols or DVP’s in this
paper, have been proposed for and implemented in computer
Manuscript
received June 1991; revised January 1992; recommended
for transfer from the IEEE TRANSACTIONS ON COMMUNICATIONS by
IEHYACM TRANSACTIONS ON NETWORKING Editor Jeffrey Jtie. This
work was supported by SRI IR&D funds, by the U.S. Army Research Office
under contract DAM03-88-K-0054, and by the USAF-AFSC Rome Air
Development Center, and the Defense Advanced Research Projects Agency
under Contracts F30602-85-C-0186 and F30602-89-C-0015. This paper was
presented in part at the ACM SIGCOMM 89 Conference, Austin, lX, Sept.
19-22, 1989.
The author is with the Department of Computer Engineering, University of
Crdifomi% Santa Cruz, CA 95064, and with SRI International, Menlo Park,
CA 94025. (email: joaquin@NISC.SfU, COM)
IEEE Log
Number 9206160.
networks including the old ARPANET routing protocol [18]
and the NETCHANGE protocol of the MERIT network [26].
Well-known examples of DVP’S implemented in intemetworks
are the Routing Information Protocol (RIP) [10], the Gateway-
to-Gateway Protocol (GGP) [11], and the Exterior Gateway
Protocol (EGP) [20]. All of these DVP’S have used variants
of the distributed Bellman-Ford algorithm (DBF) for shortest
path computation [4]. The primary disadvantages of this
algorithm are routing-table loops and counting to infinity [13].
A routing-table loop is a path specified in the nodes’ routing
tables at a particular point in time, such that the path visits
the same node more than once before reaching the intended
destination. A node counts to infinity when it increments its
dhwtce to a destination until it reaches a predefine maximum
distance value.
A number of attempts have been made to solve the counting-
to-infinity and routing-table looping problems of distance-
vector algorithms by increasing the amount of information
exchanged among nodes, or by making nodes to hold down
the updating of their routing tables for some period of time
after detecting distance increases. However, none of those
approaches solves these problems satisfactorily [6], [7], A
recent DVP developed for intemetwork routing, called the
Border Gateway Protocol (BGP) [16], specifies the entire path
from source to destination in update messages, as proposed by
Shin and Chen [25], to detect the occurrence of loops.
On the other hand, link-state algorithms are free of the
counting-to-infinity problem. However, they need to maintain
an up-to-date version of the entire network topology at every
node, which may constitute excessive storage and communi-
cation overhead in a large, dynamic network [24]. It is also
interesting to note that the routing protocols using link-state
algorithms, called link-state protocols (LSP), which have been
implemented to date do not eliminate the creation of temporary
routing-table loops [7]. Well-known examples of LSP’s are the
new ARPANET routing protocol [19], the 0S1 intradomain
routing protocol [12], and the Open Shortest Path First (OSPF)
protocol [2].
Whether link states or distance veetors are used, the exis-
tence of routing-table loops, even temporarily, is a detriment
to the overall performance of an intemet. This paper unifies
new and previous results on loop-free routing using distance
vectors into a new family of distance-vector algorithms [9]
that are always loop-free, operate with arbitrary transmission
or processing delays, assume arbitrary positive link costs, and
provide shortest paths within a finite time after the occurrence
of an arbitrary sequence of link-cost or topological changes.
The approach used in these algorithms treats the distributed
shortest-path routing problem as one of difising computations
1063-6693/92 $03C0 0 1993 IEEE
GARCIA-LUNES-ACEVES: LOOP-FREE ROUTING USING DIFFUSING COMPUTATIONS
131
[3], and matches or improves on the performance of previous
loop-free distance-vector algorithms [5], [13], [17], [23].
This paper refers to routing-table loops simply as loops,
and refers to a routing algorithm that is free of routing-
table loops as a loop-free routing algorithm. The following
sections introduce sufficient conditions for loop freedom using
arbitrary routing algorithms, explain the application of dif-
fusing computations to routing, describe and verify the new
family of algorithms, and compare their performance with the
performance of other algorithms in terms of their complexity
and average response to topological changes.
II. NETWORK MODEL AND NOTATION
A network is modeled as an undirected connected graph
in which each link has two lengths or costs associated with
it-one for each direction—and in which any link of the
network exists in both directions at any one time. A link-level
protocol assures that:
Every node knows its neighbors, which implies that a
node detects within a Finite time the existence of a new
neighbor or the loss of connectivity with a neighbor.
All packets transmitted over an operational link are re-
ceived correctly and in the proper sequence within a finite
time.
All messages, changes in the cost of a link, link failures,
and new-neighbor notifications are processed one at a
time within a finite time and in the order in which they
occur.
Each node has a unique identifier, and link costs can vary in
time but are always positive. The distance between two nodes
is measured as the sum of the link costs in the path of least cost
or shorresfpath between them. This same model can be applied
to an intemet in which routers are the nodes of the graph and
networks are the edges of the graph [20]. For this case, the
three services listed above are provided by a datagram service
at the network level and a transport-level protocol similar to
the transmission control protocol (TCP) [21].
Throughout this paper, the following notation is used:
G: a connected network of arbitrary topology
E: The set of links in G
.V: The set of nodes in G
j: The identifier of destination node j c IV
(i, z-): The link in E between ‘nodes i and z
s}(t): The successor (or next hop) in the path to node j
currently chosen by node i at time t
l:(t): The cost of the link from node z to neighbor node k.
as known by node i at time t; the cost of a nonexistent link
or a failed link is considered to be infinity
Vi(t): The set of destination nodes node i knows at time t
lVi(t): The set of nodes connected through a link with node i
at time t—more formally, JVz(t) = {x13(2,x), l~(t) < w}:
a node in that set is said to be a neighbor of node i.
D;(t): The cument distance from node z to node j as known
by node i at time t
D;k (t): The distance from node k to node j as known by
node i at time t
ll~a (t): The smallest value assigned to D; up to time
t
D~~(t): The smallest value of D} known by node i up to
time t
RDj (t): The distance from node i to node j that node i
can report to its neighbors at time t (and which need not
equal D;(t))
FD; (t): The distance value used by node i to evaluate
whether a feasibility condition is satisfied at time t;depend-
ing on the condition used, it can be equal to either D;i (t)
or D;~ (t) (see Section HI)
Plj (t): The path from node x to node j implied by the s; (t)
entries for all r’ E G at time t.
The time at which the value of a variable applies is specified
only when it is necessary.
III.
SUffiCient CONDITIONS FOR LooP FREEDOM
Assume that an arbitrary link-state or distance-vector algo-
rithm is used in G. such that a node updates its routing table
independently of other nodes upon reception of messages or
detection of changes in the status or cost of links. Also assume
that each node maintains at least a routing table and a topology
table. At time t, the routing table of node i consists of a
column vector of IVi (t) I row entries; the entry for destination
node j specifies at least s~ (t)and D~ (t). The topology table
of a node i has enough information for node i to be able to
compute D$k. where k E .V1(t).
Accordingly, for each destination j. the successor entries of
the nodal routing tables in G define another graph, denoted
S,(G), whose nodes are the same nodes of G. and in which a
directed edge exists from node i to node k if and only if node
k is s;, Obviously, loop freedom is guaranteed at all times in
G if Sj (G) is always a directed acyclic graph, which is called
the acyclic successor graph (ASG) of G for destination j. In
steady state, when all routing tables are correct, SJ (G) must
be a tree.
Node i is said to be upstream of node k in SJ (G) if the
directed chain P,j from node i to node j includes node
k.
Similarly, node k is downstream of node i. A node x is said
to be the predecessor of another node y for destination j if
node y is node x’s successor.
Unless specified otherwise, any mention to entries in nodal
tables or update messages refers to destination node j. Sim-
ilarly, references will be made to node j. distance to node
j. ASC for node j, and successor toward node j simply by
destination, distance, ASG, and successor, respectively.
Consider a node i for whom either s; (t’) = s # null
and D$(t’) < x, or s~(f’) = null and D;(f) = x.
Assume that node i makes no changes to such distance or
successor entries, until time t > t’, Each one of the following
three conditions, which we call feasibili~ conditions for loop
freedom, is suficient to ensure loop freedom at every instant
in G.
DIC: Distance increase condition. If at time t node i detects
a link-cost decrease or a decrease in the distance reported by
a neighbor, then node i is free to choose as its new successor
any neighbor
q c Ni(t) for whom D~q(t) + l;(t) = Min
{D~,(t) + ~~(t)l~ c
l~i(~)} and D~q(~) + 1~(~) < X. On
the other
hand,
if node i detects an increase in the cost of
132
IEEIYACM ‘rRANSAC’lTONSON NETWORKING, VOL. 1,NO.
1,FEBRUARY1993
a link or the distance reported by a neighbor, then it must
maintain its current successor if it has any.
A less restrictive version of DIC is stating that at time tnode
i can choose as its new successor any neighbor
q E IVi (t) for
which Djq(t) + Zj(t) = Min {Djz(t) + lj(t)lz E J’Vi(t)} and
~~q(t) + Zj(t) S ~D~(t), where FDj(t) = D;i(t). Note that
tlis version of DIC behaves the same way as the previous
versin as long as distances or link costs do not increase. On
the other hand, when a node detects a distance or link-cost
increase, the new version of DIC allows the node to change
successors in some cases, while the previous version forces it
to maintain the same successor in all cases.
CSC: Current successor condition. If at time t > t’node z
needs to change its current successor, it can choose as its new
successor any neighbor
q c ~i (t) for which D~q(t) +,1:(t) =
Min {Djz(t) + l~(t)lzE Ni(t)}and, if sj(t’) = s, Djq(t) S
FD~ (t), where FD~ (t) = D~~(t). If no such neighbor exists,
then node i must maintain its current successor if it has any.
SNC: Source node condition.
If at time t node z needs to
change its cument
successor, it can choose as its new successor
any neighbor
q ~ Ni (t) for which D~q(t) + l:(t) = Min
{~~:(t) + i~(t)l~ c Ni(t)} ~d D~q(t) < FD;(t), where
FDJ (t) = D~’ (t). If no such neighbor exists, then node i
must maintain its old successor if it has any.
The variable FD~ is called the feasible distance of node z
for destination j.
While condition DIC was discussed in the literature prior
to the work by Jaffe and Moss, they were the first to prove
that DIC is sufficient for loop freedom [13] in DBF. The same
proof applies to an arbitrary routing algorithm. Condition CSC
has been previously proposed and proven by this author [8].
The following theorem proves SNC.
Proposition 1: If a loop Lj (t) is formed in Sj (G) for the
first time at time t, then some node z E Lj (t) must choose an
upstream node as its successor at time t.
•1
This is evident from the fact that Sj (G) is dkected and
acyclic before Lj (t) is created.
Theorem 1: Using SNC when nodes choose their succes-
sors is sufficient to ensure that Sj (G) is loop free at every
instant,
F’roofi Note that because the theorem must apply to any
distance-vector or link-state algorithm, each node in G can be
assumed to know an entire path from any other node to the
destination. However, even if this is the case, the information
maintained at a given node may be out of date. This forms the
basis of the proof, which is by contradiction.
Assume that, before time
t, Sj (G) is loop free at every
instant and a loop Lj (t) is formed in Sj (G) at time t. It
is evident that no loop can be created unless nodes change
successors and modify Sj (G), and it follows from Proposition
1 that at least one node must change its successor at time t
and choose an upstream neighbor for a loop to be formed.
Therefore, this proof needs to show only that SNC is sufficient
to ensure loop freedom when at least one node in G changes
its successor at time t.
Assume that Lj (t) is formed when node i makes node a its
new
successors;
(t) after
detecting
a
change
in
D;
= D~b+ i~
‘[47
..’:4s’+
\
.
s [2M
b-s[l.dd]
,+”””
Fig. 1, Loop in G.
at time t, where b = 5~(t6) # a and ttj < t. Because of
Lj(t), P~j (t) must include P~i(t).
LetPaz(t)consist of the chain of nodes {a = s[l, new], s[2,
new], ,.0 ,
s[k, new], .0. , i}, as shown in Fig. 1. According to
this notation, node s[k, new] is the kth hop in the path
I’ai(t
at time t and has node s[k + 1, new] as its successor at time t.
The last time that node s k, new] updates its routing-table
\
s k,new]
entry up to time t and sets Sj = s[k + 1,new] is denoted
by t,[~+l,.e.l, where t.[~+l,n,~l S t. Therefore, it is true that
;[@wl (t,p+l,new]) = 9;[~’newl
(t)
9.
and
DS[~’new](t~[~+l ~eWl)= Dj[k’new] (t)
3
The time when node
s[k, new] sends an update that con-
stitutes the last update from such a node that is processed by
node s[k 1, new] up to time t is denoted by ts(~+l,.ld].
Node s[k, new]’s successor at time t,[~+l,O1dl is denoted by
s[k + 1, old]. Note that
ts[k+l,old] < ~s[k+l,new] < f!
and that s[k + 1, old] need not be the same as s[k + 1, new].
Lastly
9;[’1(t)= i, +(tb)= b,
and tb < t.
Note that D~i(ti) < D~(ti) at any time ta, and DJi(t2) <
D~i(t 1) if tl < tz. Also note that, because SNC must be
satisfied, when node s[k, new] G Paj (t) makes node s[k + 1,
new]
P~j (t) its successor at time t~I~+l,neWl it must be true
that
j.[k+l,new] (t) ‘Dj$iY~L] (ts+l,new])
D:[k,new]
Accordingly, because
must be satisfied by
< FDf[k’new](~.[k+ l,new]).
all link costs are positive and SNC
every node in Pai (t), traversing the
GARCIA-LUNES-ACEVES: LOOP-FREE ROUTING USING DIFFUSING COMPUTATIONS
133
directed path P.i (t) c P.j (t) at time t leads to the following
inequalities:
~~j(t) = ~ji(t) > ~;.(t) =
~;(~.[2,01d])
~~(~~[z,old]) Z ~ja(fs[2,01dj) > ~ja(~s[2,new])
= FDj (t.[2,ne\,r])
D=[~-l,ney](t) = D~[~’neW’j(t,I~+lOld])
js[~,ne~,~
>
Dyhewl (t~lk+l ~)dl)
.
~ ~~s[k’ne’’’](~s[k+ l,new])
F@kJIew’] (t~[~+l,neW] >
Because these inequalities lead to the erroneous conclusion
that FDj (t) > FDj (t), it follows that no loop can be formed
in S3(G). and SNC is sufficient in this case.
The operation of any routing algorithm can be defined to be
such that when the nodes in G are first initialized, each node
knows only how to reach itself. This is equivalent to saying
that a node has a routing table entry for each of the other
nodes in the graph with infinite distance and no successors to
them. Hence, at time O, Sj (G) is a disconnected graph of one
or more components, each with a single node, and must be
loop-free. Therefore, SNC is sufficient.
•1
From the above proof of SNC, it is clear that other similar
feasibility conditions can be defined using a feasible distance
that can only decrease. Although DIC, CSC, and SNC ensure
loop freedom at every instant, none of them guarantees shortest
paths in the resulting ASG. Deriving routing algorithms based
on these feasibility conditions to achieve both loop freedom
at every instant and shortest paths for each destination is the
subject of the next section.
IV.
DIFFUSING COMPUTATIONS
Dijkstra and Scholten [3] introduced the concept of d@s-
ing computations
to check the termination of a computation
distributed among several nodes, such that the process starting
a computation is informed when it is completed and such that
there are no false terminations. The diffusing computation
started by a node grows by sending queries and shrinks by
receiving
replies along an acyclic graph rooted at the source of
the computation. The algorithm itself can be used to construct
the acyclic graph.
The new family of routing algorithms presented in this
paper is based on an adaptation of diffusing computations to
distance-vector routing inspired on the distance-vector algo-
rithm proposed by Jaffe and Moss [13]. It allows a given node
i
to modify FD~. in such a way that loop freedom and shortest
paths are achieved when it changes the values of D; or s;.
The rest of this paper refers to any algorithm in this family
simply as a di~using update algorithm or DUAL. Reference
[9] provides a formal description of DUAL, whose operation
is discussed in the rest of this section.
For each destination j, a change in the cost or status of a link
that affects Sj (G) causes one or more computations aimed at
updating Sj (G). A computation can be carried out by a node
independently of others, which is called a local computation,
or it can be a di~using computation in which the node that
originates the computation coordinates with upstream nodes
in Sj (G) before making any updates to the ASG.
At time t. node i is assumed to maintain 1~and Djk for all
k ~ N,(t) as well as s~, D;. RD~. and FD; .
A. A Single Computation
Initially, no node in G is engaged in a diffusing compu-
tation for a new Sj (G). A node not engaged in a diffusing
computation is said to be passive (with respect to destination
j). When a passive node i detects a change in a link cost or
status at time tthat changes the value of D; or s;. it first tries
to obtain a new successor that satisfies a feasibility condition
(DIC, CSC, SNC, or others), which is denoted by FC. Such a
successor is called a feasible successor.
If node i finds a feasible successor at time t.
DUAL behaves
much like DBF; that is, node i carries out a
local computation
to update its distance and successor. More specifically, node
z first computes the minimum of D~q(t) + l;(t) = Dmin for
all
q E ~L (t). Secondly, node i updates D; = Dmin, RD~ =
llmi..g~ =
klk ~ Ni(t). D~k(t) + l~(t) = Dmin. and FD~
equal to the smaller of its previous value or D~k (t) if CSC
is used, or D; (t)if SNC or DIC is used. Finally, if node i’s
updated distance is different than its previous distance, it sends
an update to all its neighbors specifying RD~ (t). Note that
node i establishes no coordination with its neighbors before
updating D; and s;.
On the other hand, if node i cannot find a feasible successor,
then it sets D; and RD; equal to Df.8(t) + l;(t). where s is
its current successor. In addition, node i sets FD; = Dj, (t)
if CSC is used, or sets FD~ = D; (t) if SNC or DIC is
used. After performing these updates, node i commences a
d;~using computation by sending a query to all its neighbors
in fV~(t).Such a query simply contains RD~ (t ). i.e., node i’s
new distance through its current successor in Sj (G). Node i
is then said to be
active, and cannot change its successor [i.e.,
it cannot change Sj (G)] or the values of RD~ and FD~ until
it receives all the replies to its query.
Node i follows the same procedure outlined above for a
local or diffusing computation after receiving an update from
a neighbor while it is passive. If node i receives a query from
a neighbor while it is passive, then node i attempts to find a
feasible successor and sends a reply to its neighbor with D;
if it succeeds. Node i also sends an update to the rest of its
neighbors if the value of D; changes. If node i fails to find a
feasible successor after processing its neighbor’s query, then
it becomes active by sending a query to all its neighbors; the
value of RD~ in the query specifies node i’s new distance
through its current successor.
When at time tp
a node receives all the replies to the query
it sent
out,
it becomes passive once
more,
At that
time,
node
134
IEEWACM TRANSACTIONS ON NETWORKING, VOL. 1,NO. 1,
FEBRUARY1993
i can be certain that all nodes that were upstream in
Sj (G)
at time tP have either modified their distances as a result of
the distance reported by node z’s query, or stopped being
upstream nodes. Node i is, therefore, free to choose as its
successor a neighbor that offers the shortest distance at time
tP.
Accordingly, at time tp,node i “resets” the value of ~~~
to OC, which ensures that FC will be satisfied by a node
n c Ni (tp ) that offers tie shofiest ~lst~ce. After node z
makes node n its new successor, it sets RD~. = D; (tP). If
SNC or DIC is used, it also sets FD~ = D;(tP); if CSC is
used, it sets FDj = Djn(tp).
Node i uses a repfy status jag, denoted Tjk to remember
whether node
k has sent a reply to node z‘s query. Node z
is passive at time t if r~k(t) = O for all k c iVi(t). Node z
becomes active at time t by setting r~k = 1 for all k E IVi(t).
Routing information is exchanged among neighbor nodes by
means of update messages. Each update message consists of
a distance vector of one or more entries, and each such entry
consists of the identifier of a destination node j, RD$, and a
flag that specifies that the entry is an update (flag equals O), a
query (flag equals 1), or a reply (flag equals 2).
Obviously, the basic algorithm described above needs to
be extended to handle multiple diffusing computations and
topological changes.
The Jaffe-Moss algorithm behaves essentially like DUAL
using DIC for the case in which a single diffusing computation
exists,
Chandy and Misra proposed a distance-vector algorithm
aimed at obtaining the shortest paths from a source to the
rest of the network nodes. This algorithm is based on a
simpler adaptation of Dijkstra and Scholten’s algorithm than
the one just described [1], and performs correctly only in fixed
topologies.
Merlin and Segall [17], [23] proposed a distance-vector
algorithm that propagates messages along an ASG much like
queries and replies do in DUAL. However, critical differences
between the two approaches stem from the way in which
messages are processed. In the Merlin–Segall algorithm, a
node z that receives a message from a node
k E Ni other than
its successor simply updates D~k with the distance reported
by node k. Node i keeps track of which neighbor has sent a
message using a flag similar to the reply status flag of DUAL.
Node i does not update its own distance until it receives a
message from its successor; when that happens, node i sets
D; equal to Min {D~.k + 1~Ik E N~, message from k was
received} and sends a message reporting that distance to all
its neighbors, except its successor, When node i receives a
message from all its neighbors, it sends a message reporting
the current value of D; to its current successor, computes
a new shortest distance, and sets its new successor equal to
that neighbor that provides the shortest distance. Because the
messages a node sends to its successor or its other neighbors
need not report its shortest distance, multiple iterations or
cycles can be required for the Merlin–Segall algorithm to
converge. Each update cycle is initiated by the destination
node, and unbounded counters are used to keep track of cycle
numbers.
The need for the destination node to control each
update cycle creates substantial communication overhead [22].
B. Multiple Computations
The Jaffe-Moss algorithm [13] supports multiple diffusing
computations concurrently by maintaining bit vectors at each
node. Bit vectors specify, for each neighbor and for each
destination, how many queries need to be answered by the
neighbor node and which one of such queries was originated
by the node maintaining the bit vector. Unfortunately, the bit
vectors used in the Jaffe-Moss algorithm can become exceed-
ingly large in a large network with dynamic link costs and
topology. The Merlin-Segall algorithm relies on unbounded
sequence numbers to keep track of multiple computations that
can occur concurrently from the standpoint of a node in the
ASG.
Rather than handling multiple diffusing computations con-
currently, DUAL makes sure that a node participates (i.e., is
active) in at most one diffusing computation per destination
at any given time. This is accomplished by means of the
algorithm represented in Fig. 2, which assumes a stable
topology. The state diagram of Fig. 2 shows the transition
to a new state for node i, given its current state, the input
event it receives, and whether or not FC is satisfied. An input
event can be a change in the cost or status of a link, an update,
a query, or a reply to a query.
The current state of node i is specified by the query origin
flag, denoted o;, and by the reply status flags. The possible
states for node i are the following:
Node z becomes active by relaying the query received
from its successor, and experiences no distance increases
after becoming active (o} = 3 and r; ~ = 1 for some
k c Ni(t)).
Node i is active and either relayed the query in progress
from its successor and has experienced at least one
distance increase after becoming active, or is the origin
of the query in progress and received another query from
its successor after becoming active (o$ = 2 and ?+k = 1
for some
k E Ni(t)).
Node i becomes active by originating a query, and
experiences no distance increase and receives no query
from its successor while it is active with its query (o; = 1
and +k = 1 for some k C Nz(t)).
Node i is the origin of a query in progress and has
experienced at least one distance increase after becoming
active because of updates from its successor or link-cost
increases [oj = O and rjk = 1 for some k
Nz(t)).
Node i is passive. Because r$k(t) = O for all k E N~(t)
for node i to be passive, o~ is set equal to 1 in this state.
When node
i is passive and processes a query from a node
k other than its current successor 8$, if FC is not satisfied, it
sends a reply to its neighbor with the current value of RD~
before it starts its own query. ‘I%is way, node z can create
a new diffusing computation without having to remember to
send a reply to both
k and s; when it becomes passive.
When node i transitions from active to passive state and
o; = 1 or 3, then it “resets” the value of its feasible distance
FD~ to cc before computing D;
ands;. Hence,
node i simply
GARCIA-LUNES-ACEVES: LOOP-FREE ROUTING USINGDIFFUSINGCOMPUTATIONS
I35
input event related to neighbor k;
FC satisfied or Dji = - and Djk = -
R
passive
~ji ~ 1
last reply; =
\
/’21N
last reply
FC satisfied with
-
set FD/ = =
current }--’ - “‘-;
input event input event other than
input event other
input event
other than last reply
last reply, increase in D,
than last reply
other than
last reply
or query from sji
or query from
Sji
D = Dji~,i+~iSji
or increase in D
I
Fig, 2. Active and passive states in’ DUAL
chooses the shortest path in this case. hr contrast, when node
i becomes passive and o; = O or 2, it uses the value of FD~
at the time it became active to determine whether or not a
feasible successor exists before computing D; and s;. Hence,
node i processes any pending query or distance increases that
occurred while it was active.
C. Handling Special Conditions and Topological Changes
Ensuring that updates will stop being sent in G when some
destination is unreachable is easily done. If node i has set
D; = x already and receives an input event (a change in cost
or status of link (i. k). or an update or query fron node k)
such that D;k + 1~= x. then node i simply updates D~k or
1~. and sends a reply to node k with RD~ = x if the input
event is a query from node k.
A node initializes itself in passive state and with an infinite
distance for all its known neighbors, and with a zero distance
to itself, After initialization, it sends an update containing the
distance to itself to all its known neighbors.
When node i establishes a link with a neighbor k, it updates
the value of ]: and assumes that node k has reported infinite
distances to all destinations and has replied to any query for
which node i is active, Furthermore, if node k is a previously
unknown
destination,
node i sets o~ =
1,
s~ =
null,
and
D; = RD; = FD~ = x. Node i also sends to its new
neighbor k an update for each destination for which it has a
finite distance,
When node i is passive and detects that link (i. k) has failed,
it sets 1~ = x and D~k = x. After that,
node i carries out
the same steps used for the reception of a link-cost change in
the passive state.
For a given destination, a node can become active in only
one diffusing computation at a time and can, therefore, expect
at most one reply from each neighbor. Accordingly, when an
active node i loses connectivity with a neighbor
n. node i can
set
r~~
=
O and D;~ = x. i.e., assume that its neighbor n
sent any required reply reporting an infinite distance. If node
n is s;. node ialso sets o; = O. When node
i becomes passive
again and o; = O. it cannot simply choose a shortest distance;
rather, it must find a neighbor that satisfies FC using the value
of FD; set at the time node
i became active in the first place.
In effect, this is equivalent to deferring the processing of the
failure of link (i.s; ) that took place while node i was active,
which may create another diffusing computation.
It, thus, follows that the FIFO order in which node i
processes diffusing computations does not change with the
establishment of new links or link failures. Note that the
addition or failure of a node is handled by its neighbors as
link additions or
failures.
136 lEEWACM TRANSACTIONS ON NETWORKING, VOL. 1, NO. 1, FEBRUARY 1993
(4,4,1 ) ,
(3,3,1 )
X
c
b
20
1
(2,2,1)
10+2 a 1
i
d
(0,0,1) 4 (3,3,1)
(12,1 2,3) C&
(11,11,3)
x
c
b
‘x 20 flR(lO)
(20,10,0)
20 a
i
d
(0,0,1) 4
(4,3,1 )
(12,12,1)
(11,11,1)
X
c b
R(n)
20
(15,10,0)
15 a
i
d
(0,0,1) 4
(4,3,1)
(4,4,1)
(3,3,1)
X
&20 bQ
(10,10,1)
‘k
a \“
i d
(0,0,1) 4
(3,3,1)
(12,1 2,3)
WIJ) (11,11 ,3)
x
c b
20
R(I 0)~
(20,10,0)
20 a
i d
(0,0,1 ) 4
(4,3,1 )
(12,12,1) (11,11,1)
x
“i;“
(5,5,1)
u/ a ~u
j
d
(0,0,1) 4
(4,3,1)
(4,4,1 )
& (11,11,3)
x
c
b
R(4)% 20 / Q
20610
(10,10,1)
R(0)fl a
RR(4)
j
d
(0,0,1
)
4 ~ (4,3,1)
(12,12,1) Ft(12)
(11,11,3)
+“
x
c
b
20
(20,10,0)
15-20 a
i
d
(0,0,1 ) 4
(4,3,1)
(12,12,1) I& (6,6,1)
x
c
20
b~u
(5,5,1)
15 a
i
d
(0,0,1)
4
(4,3,1)
(7,7,1 ) u
(6,6,1 )
+1
x
UMC :
20
(5,5,1)
15 a ,
i d
(0,0,1) 4
(4,3,1 )
Fig. 3, Example of DUAL’s operation using SNC.
V. EXAMPLE
Consider the five-node network depicted in Fig. 3(a), in
which DUAL is
used with SNC. In this network, links and
nodes have the same propagation or processing delays; link
(a, j) first changes its cost from 2 to 10, then from 10 to
20 [Fig. 3(c)], and finally from 20 to 15 [Fig. 3(f)], and
focuses on destination node j. In the figure, an arrowhead
in the directed link from node z to node g indicates that node
y is the successor toward node j (i.e., s; = y). The label
in parentheses assigned to node z indicates the value of D:,
followed by the value of FDf and O;. Fig. 3(bj(j) show the
changes in the routing table entry for node j at each node.
An update
or a query is indicated by an arrow adjacent to
the link where it is transmitted, followed by a “U” or a “Q,”
respectively. A reply from node z is similarly identified with
an “R’ followed by the value of RD; in parentheses.
GARCIA-LUNES-ACEVES: LOOP-FREE ROUTING USING DIFFUSING COMPUTATIONS
137
When node a detects the cost increase of link (a, j), it
determines that it has no feasible successor because none of its
neighbors has a distance smaller than FD; = 2. Accordingly,
it becomes active by setting r~~, r~c, r~d, md r~j equal to 1,
and sends a query to all its neighbors [Fig. 3(b)].
Node b forwards node
a’s query, because it has no feasible
successor [Fig. 3(c)], while node d is able to find a feasible
successor (node ~ itself, because Dfj < FDf = 3 and
D;, + l? < Dfa + l:). While this is happening, link (a, j)
increases its cost to 20, which makes node a set D; = 20 and
o; = O. The latter makes sure that node a uses FD~ = 10, not
~. when it becomes passive and computes a new distance and
successor. Note that node a replies to node b with RD; = 10.
which equals node [1’s distance when it became active in the
first place [Fig. 3(d)]; this prevents node
b from creating a
loop through node c when it becomes passive [Fig. 3(g)].
When node c receives node a’s query, it simply sends a
reply [Fig. 3(c)] because it has a feasible successor. However,
it becomes active when it receives the query from node
b.
Because o; = 3 when node c receives all the replies to its
query [Fig. 3(e)], it resets FD; = w to compute its new
distance and successor, and sets D; = FD; = 12 accordingly
[Fig. 3(f)]. Node
b operates in a similar manner when it
receives all the replies to its query [Fig. 3(g)].
When node o receives all the replies to its query [Fig. 3(h)],
it applies SNC using the value FD; = 10, which
was set when
node
a became active in the first place. Because D~d = 4< 10
and D;d + 13 is the minimum for all of node a’s neighbors,
node a becomes passive, sends an update with RD; =
5, and
sets o; = 1 and
D: = FD; = 5. Nodes b and c eventually
reach their shortest paths through uncoordinated updates.
Note that the cost changes in link (a. j ) that occur while
node a is active have no impact in the information conveyed
by node a to its neighbors, until it becomes passive.
VI. CORRECTNESSOF DUAL
Once DUAL is proven to be loop-free, showing that it
converges is simple. The details of the convergence proof for
DUAL are presented in [9]; the proof is similar to the one
shown in [5]. The rest of this section proves that DUAL is
loop-free.
Because a routing-table loop is created with respect to
a particular destination and because nodes coordinate with
respect to the same ASG, loop freedom can be proven by
focusing on a single ASG. The following theorem considers
a graph G with stable topology in which DUAL is used
with SNC, and demonstrates that DUAL is loop-free at every
instant. Because topological changes do not affect DUAL’s
operation, this theorem suffices to prove loop freedom in an
arbitrary network or intemet in which topological changes can
occur. The proof is essentially the same if DIC or CSC is used.
The graph consisting of the set of nodes upstream of node
i that become active because of a query originated at node i
is called the arrive ASG of node i and is denoted by Sji (G).
The notation adopted in the proof of Theorem 1 is assumed
in the rest of this section.
Theorem 2: S1(G) is loop-free at every instant if DUAL
is used in G.
Proof The proof follows directly from the lemmas be-
low .
Lemma 1: When a node becomes passive, it must send a
reply to its successor if it is not the origin of the diffusing
computation.
Proof If node i receives a query from its successor (s;)
while it is passive, it sends a reply to its successor and sets
o; = 1 if it finds a feasible successor. Otherwise, if node i finds
no feasible successor, it propagates the diffusing computation
to all its neighbors, sets o; = 3. and becomes active. Node
,9; cannot send another query to node i until it receives node
i’s reply, and node i must send such a reply when it becomes
passive because o; = 3.
If node
i receives a query from its successor while it is
already active, node
i must be the origin of the diffusing com-
putation for which it is active (o; = 1) because its successor
cannot send two consecutive queries without receiving node
i’s reply. After processing its successor’s query, node i must
set o; = 2. When node i becomes passive, it either sends a
reply to its successor and sets O; = 1 after finding a feasible
successor, or forwards its successor’s query
and sets o; = 3
if no feasible successor is found. Hence, if node i receives a
query from its successor while it is active, node i must send a
reply to its successor when it becomes passive. Therefore, the
lemma is true.
Lemma 2: Consider that only a single diffusing computa-
tion takes place in G and that Sj (G) is loop-free before an
arbitrary time t. Then, independently of the state of other nodes
in Paj(t). if node
!9[k. new] is passive at time t (i.e., either
it is passive immediately before time t or it becomes passive
during time t). it must be true that
‘~k’newl(t).
‘;$:::’”](t)> ‘p!k~l,new]
(1)
Proof Let node s[k. new] E Pal(t) be passive at time t.
Consider the case in which that node does not reset FDj[k’””w]
when it updates its distance or successor to join Pa,(t) at time
t,[k+l ,n,,vl ~ t. then according
to SNC it must be true that
Hence, if node s[k 1. new] processed the message that node
s[k, new] sent last before time t, then
simply because all link costs are positive. On the other
hand,
if s [k 1, new] did not process the message that node s [k.
new] sent last before time t. then
because SNC must be satisfied. Therefore, the lemma is true
for this case.
On the other hand, if node s(k, new] is passive at time t and
resets FDf[k’new]
< t.
when it joins Paj (t) at time
~s[k+l, new]
I
138
IEEWACM TRANSACTIONS ON NETWORKING, VOL.
1, NO. 1, FEBRUARY 1993
then o~[&’new]
must have been equal to 1 or 3, and node s [k,
new]’s distance through
its new successor must be the shortest.
Therefore
~:k,new] (t) = D:Wn’Wl(t~[~+l ~,W1)~
J
3
(2)
‘~$flf~ld] (ts[k+l,new] ) + ‘g~~fl~ld] (t~[k+l,new] ).
Also, from time tk when node S[k: new] becomes active
to time
t~[k+l,new]when it becomes passive, node s[k, new]
cannot change its successor, node s[k + 1, old], and it cannot
experience any increments in its distance through nodes [k+ 1,
‘[k’new] = O or 2.
old], for otherwise it would have set 03
Therefore,
~s[k’new](tk) = ~j$~~:~ld] (tk) + ‘:~:fl:~d] ‘tk)
J
=
~~$~~~’l~j
(~s[k+l,new])
+ l:~:~o;dl
(ts[k+l,new]).
Substituting this result into (2), it follows that
@%newl(~) ~
@knew].
(3)
Furthermore,
node s[k, new] must notify all its neighbors
about its distance at time tk, and all of them must reply to
node s[k, new] before time
t~[k+l,newl,which follows from
the correctness proof of Dijkstra and Scholten’s algorithm [3]
(see also the proof of PIF [23]).
When node s[k 1, new] updates its distance and makes
node s[k, new] its successor when it joins
P.j (t) at time
t,[k,~,wl < t, it
may or may not have processed any message
sent by node
s[k, new] at time t.[~+l,.,W1 < i?when that node
joins
Paj(t). Therefore, it must be true that either
Dj$~:::’”] (t) = @[k’new](t,[k+~ ~eW])
=
js[k+l,rwv](’)
~~[k,newl (t) > @@ew]
J
or
~j$:::](t) = L$[k’new](tk).
In either case, it follows from (3) that
~;$;:s:;] (~) > ~;&:iew] (~)
and the lemma is true in all cases.
•1
Lemma 3: If only a single diffusing computation takes
place in G, then Sj (G) is loop-free at every instant,
Proof By contradiction, assume that Sj (G) is loop-free
before an arbitrary time t and that node i is the first node in
G to create a loop
Lj (t) c Sj (G) at time t after processing
an input event, i.e., it establishes the last hop of the loop.
Let node b =
s~when node zdecides to change its successor
at time
t.Because an active node cannot change its successor
after processing an input event, it follows that, for node i to
create Lj (t)
at time t,it must be passive at time t and it must
change its successor to s;(t) = a #
b.
When node i creates L3 (t) at time t,it must be true that
P.i (t) C Pij (t). If all the nodes in P.i (t) are passive at time
t, either all of them have always been passive before time t,
or at least one of them was temporarily active before time t,
If no node in
P.i (t) was ever active before time t,it follows
from Theorem 1 that node z cannot create
Lj (t) by making
a = s:(t). Therefore, for node i to create
Lj (t) at time tin this
case, at least one node in
P.i (t) must have been temporarily
active before time
t.
Assume that all nodes in Pai (t) are
passive at time t.
The
inequality in (1) leads to the erroneous conclusion that
D;=
(t)> D~a(t) when P.i (t) is traversed at time t. Accord-
ingly, node i cannot create Lj (t)
if al} nodes in Pai(t) are
passive at time t.
Now
assume that node s[k+n, new] (n z O)is the origin of
the only diffusing computation in G and that the computation
started at time
tk+n < t.Further assume that the nodes in the
chain
‘s[k,new] s[k+n,new] (t) C Psi(t) KTOaitI active at time t.
Because node z must create
Lj (t) at time t, it must be true
that s[k, new] # z # s[k + n, new].
Because all the nodes in Ps[k,n.w] s[k+n,n.w] (t) are active,
all of them must have received a query reflecting the change
s[k-+n,new]
in Dj
made by node s[k + n, new] at time tk+n.
Hence, from the correctness proof of Dijkstra and Scholten’s
algorithm [3] and the facts that all link costs are positive and
a single diffusing computation exists in G, it follows that
,,[~+l,~,~l(t) >
Dj[k+l’new](t)>... > D:Ik+~’new](t)
D:[k,new]
1
s[k+n, new]
= D~[k+’’’new] (tk+n) > ‘j~[k+n+l,new](t)
(4)
Because there is only one diffusing computation up to time
t and at that time node s[k + n + 1, new] is passive and is the
successor of the source of the diffusing computation, it follows
that the nodes in P~[k+n+l,neW,]i(t), who are downstream of
the source of the diffusing computation (node s[k + n, new]),
have always been passive. Therefore, the proof of Theorem
1 implies that
‘%::::G$(’) > Dj(’b).
Furthermore, (1) implies that
js[k+n+l,new]~t) > ‘j![k+n+2,new]
D:[k+n,new]
‘+n+l’newl (t).
Substituting these two results in (4) yields
‘~~~~~~e~] (t) > D~(tb).
(5)
Because d] of the nodes in Psi(t) -
P~[k,neW1~[k+n,new](t)
and node z must be passive at time t,it follows from (1) that
D;a(t) >
~:[k-l,newl
~s[k, new]
(t).
(6)
If node s[k 1, new] processes the query sent by node
s[k, new] at time tk, whether or not node s[k 1, new]
resets
FD~ ‘k’new]
to update its distance for the last time before
joining
Lj (t), it must be true that
~;$;:~yl (t)= ll;[~’”’wl(~k)
=
D:[JW4 (’) > Ddknewl
J
je[k+l,new](t)o
GARCIA-LUNES-ACEVES: LOOP-FREE ROUTING USING DIFFUSING COMPUTATIONS
I39
Together with (5) and (6), this result leads to the conclusion
that ll~a(t) > D; (t~). However, as the next paragraph shows,
this is a contradiction.
If node i does not reset FD; when it updates its successor
when it creates Lj (t) at time t. then according to SNC, this
means that node i can choose node
a as its new successor
at time t only if D~Q(t) < D$(tb) is true, which contradicts
the result of the previous paragraph. On the other hand, if
node i resets FDj to create LJ (t), then it must be true that
node i was active just before time t. that o; equals 1 or 3
when it decides to make node
a its new successor, and that
it processed no query from node b or any input event that
increased Di. or 1: while it was active, for otherwise it must
jb
have set o; equal to 2 or O.Because in this case node i becomes
passive at time t and node a is upstream of node i at that
time, it follows from the comectness proof of Dijkstra and
Scholten’s algorithm that all the nodes in the path P.PI,I (t)
must be passive immediately before time t. where p[i] is the
predecessor of node i at time t. Hence, (1) can be used to
show that ll~a(t) > D~~](t) = Dj(ti), where ti < t is the
time when node i becomes active. Furthermore, because Dj~
or l; cannot increase between times tiand t.it must be true
that D:a(t) > D~(tl) = D~.b(t)+l~(t). This is in contradiction
to SNC, which states that node i can set a = S;(t) only if
Dja(t) + Zj(t) < D;b(t) + ~i(t)
Alternatively, if by time t node s [k 1. new] has not
processed the query sent by node s[ki new] at time tk, then
whether or not node s [k 1, new] resets F’D~[k– 1‘new] to
update its distance for the last time before time t. node s[k,
tIeW] was ak’ays passive before time fk and therefore cannot
reset FD~[k’n’W’l
to select s (k + 1, new] as its successor before
it becomes active at time tk, Given that node s[k + n + 1. new]
has always been passive, and that no node
S[k + Tn, IIeW] p~[k,new] ,s[k+n,netv]
(t)
(l<m<n)
could have reset F’D~[k+m ‘“’W’]to make node s[k + m, + 1.
new] its successor at time t~[k+~+l,~~~!]
< tk+~, the path-
traversal technique used in Theorem 1 leads to the following
inequality:
s ‘+n+’’newl (t).
‘~~k~~~~](t) >
‘~![k+n+2,new]
(7)
Because the nodes in ~,[k+~+l.n,~]l (t) have
dWayS
been passive, the proof of Theorem 1 implies that
D~$~~~~&~,l (t) > D; (tb).Combining this result with (7)
and (6) leads again to the erroneous conclusion that D$a(t) >
D; (tb), Therefore, node i cannot create a loop when it is
passive at time t and a set of nodes in Pa,(t) are still active
at that time.
It follows from the above that no loop can be formed
when Sj (G) is loop-free before time t and a single diffusing
computation occurs. However, as pointed out in the proof of
Theorem 1, Sj (G) must be loop-free at time t = O, and so the
lemma is true.
Lemma 4: DUAL considers each computation individually
and in the proper
sequence,
Proofi Consider the case in which node i is the only
node that can start diffusing computations. If node i generates
a single diffusing computation, the proof is immediate. If node
i generates multiple diffusing computations, no node in SJi (G)
can send a new query before it receives all the replies to the
query for which it is currently active, Therefore, because all
the nodes in SYi(G) process each input event in FIFO order,
because all links transmit in FIFO order, and because each
node that becomes passive must send the appropriate reply
to its successor if it has any (Lemma 1), it follows that all
the nodes in Sj i(G) must process each diffusing computation
individually and in the proper sequence.
Consider now the case in which multiple sources of diffus-
ing computations exist in
G. Note that once a node sends a
query, it must become passive before it can send another query.
Hence, a node can be part of only one active ASG at any given
time. Furthermore, when node
i becomes active as a result of
a query from a neighbor k. only two things can happen. If
k =
.9; . then node i is not the origin of the query, forwards
node
k’s query, and becomes part of the same active ASG
to whom
k already belongs. If k # .9; , then node i sends a
reply to node
k before creating a diffusing computation, which
means that .Sji (G) is not part of the active ASG to whom
k belongs. Because the active ASGS of G have an empty
intersection at any given time, it follows from the previous
case that the lemma is true.
VII. PERFORMANCE COMPARISON
A. Complexity of Algorithms
This section compares DUAL’s performance with the per-
formance of DBF, an ideal link-state algorithm (ILS), and the
Merlin–Segall algorithm. This comparison is made in terms of
the time and communication overhead required by the various
algorithms to converge to correct routing tables. Unfortunately,
the time required for a given state of a distributed algorithm to
occur depends on the timing with which the nodes execute the
algorithm and on the delays incurred in intemodal communica-
tion [3]. Consequently, this section assumes that the algorithms
under study behave synchronously, so that every node in
the network executes a step of the algorithm simultaneously
at fixed points in time. At each step, a node receives and
processes all input events originated during the preceding step
and, if needed, creates an update message after processing
each input event; all these update messages are transmitted in
the same step. The first step occurs when at least one node
detects a topological change and issues update messages to its
neighbors. During the last step, at least one node receives and
processes updates from its neighbors, after which all routing
tables are correct and nodes stop transmitting updates until
a new topological change takes place [13], [14]. Using this
assumption, the performance of an algorithm is quantified in
terms of the number of steps called time complexity or TC’.
and the number of messages called communication complexity
or CC’, required by each algorithm after a single change in
the cost or status of a link.
Because of its looping problems [7]. DBF performs very
poorly after a link failure or a link-cost
increase,
namely
140
tEEE/ACMTMNSACTSONS ON NETWORKING, VOL. 1, NO. 1, FEBRUARY 1993
TC = O(N), CC = 0(N2) [14], where N is the number
of network nodes. On the
other hand, because tm loops can
exist in DBF after the addition of a link or a reduction in the
cost of a link [13], it has
TC = O(d) and CC = 0(-/2) in
this case [15],
where E is the number of links in the network
and d is the diameter of the network.1
ILS requires that each change in the topology of the network
be transmitted to every
node; accordingly, it has TC = O(d)
and CC = 0(2E) after a single change in the cost or status
of a link because each link-state update traverses each link
at most once in each direction and there are two link costs
per link.
The Merlin-Segall
algorithm has TC = 0(d2) [13], and
its required update coordination results in a large number of
update messages: CC = 0(N2) [22].
In the worst case, DUAL has the same time and communica-
tion complexity as the Jaffe-Moss algorithm after a single link
failure or link-cost increase, i.e.,
TC = O(z) [13], where z is
the number of nodes affected by the routing table perturbation.
To verify this, we note that in the worst case all nodes upstream
of a destination node j in Sj (G) must freeze their routing-table
entries for node j, which corresponds to the operation of the
Jaffe-Moss algorithm. DUAL’s communication complexity is
CC = 0(6D.z) after a single link failure or link-cost increase,
where D is the maximum degree of a node. This value is
derived from the fact that each adjacent link to a node affected
by the perturbation may have to transmit a query, a reply, and
an update in each direction. DUAL has the same complexity
as DBF after a single link addition or link-cost reduction. To
verify this, note that any node that receives a query reporting
a distance decrease must be able to find a feasible successor.
Accordingly, a node that sends a query after its distance de-
creases must receive immediate replies from all its neighbors,
without those neighbors having to forward the query.
It is clear from the above results that DUAL’s complexity
is comparable to
or better than the complexity of all previous
distance-vector algorithms and comparable to the complexity
of ILS. The only concern with DUAL’s performance is when
nodes fail or the network partitions because, in such cases,
x=N.
B. Simulation Results
To obtain insight on the average performance of DUAL,
DBF, and ILS in a real network, they were analyzed by
simulation
using the topologies of typical networks; SNC
was used in DUAL. The simulation uses link weights of
equal cost, zero link transmission delays, and the synchronous
operation of DUAL described in the previous section. During
each simulation step, a node processes input events received
during the previous step one at a time, and generates messages
as needed for each input event it processes. To obtain the
average figures, the simulation makes each link (node) in the
network fail, and counts the steps and messages needed for
each algorithm to recover. It then makes the same link (node)
recover and repeats the process. The average is then taken
over all link (node) failures and recoveries. The results of this
IThedi~eter
of a network is the length of the longest shortest Path in
hops between any two of its
podes.
TABLE I
SIMULATIONRESULTSFORMILNET
Node Failure
Parameter
DUAL
DBF
ILS
mean
sdev
mean
sdev
mean
I
sdev
event count
4500 I 4070 79300 [ 51400
686 I
284
message count
1480 720 60500 335
680 282
steps
31.6 21.8 144 0
10.1
1.31
operation count
5370 4420 80200 51600
492000 204000
Node Recoverv
J
Parameter
DUAL
I
D~F
lLS
mean sdev mean sdev
mean
I
sdev
event count
2390 I 1680 I 2850 ]
1900
854 I
309
message count
II
644 166 743 259
I
848 307
steDs
10.2 1.11 9.32 1.11
10.4
1.18
operation count
3260 I 2080 II 3720 I
2300
625000 227000
Link Failure
Parameter DUAL
DBF
ILS
mean sdev mean sdev
I
mean
I
sdev
event count
2540 I 2120 11300 I 35200
506 I 90.2
-12”~ ‘1
“1
T :-1. D-_--.-
0 I 35200 II 366000 I
66000
I
UIIK EWW
.ery
Parameter
I
DU.4L
DBF
ILS
II
mean sdev
mean sdev
mean
sdev
1200 I 698
510 1 90.8
I
,,
. .
event count
II
1180 I 704
message count
232 118
341
168
508 90.8
steps
8.71 1.67 8.17 1.61
9.36 1.05
operation count 1460
704
1480 698
371000
66000
simulation for
MILNET are shown in Table I. The table shows
the total number of events (updates and link-status changes
processed by nodes), the total number of update messages
transmitted, the total number of steps needed for the algorithms
to converge, and the total number of operations performed by
all the nodes in the network.
The details of the simulation analysis appear elsewhere [27],
[28]. However, it is worth noting that, as expected, DBF and
DUAL have better overall average performance than ILS after
the recovery of a single node or link. As it was also expected,
DBF performs very poorly after a node failure because of
the counting-to-infinity and looping problems. The simulation
results of Table I also indicate that, insofar as overhead traffic
and number of steps needed for convergence, the average
performance of DUAL is comparable to the performance of
ILS. In this respect, the only concern with DUAL is its
performance after nodal failures; in this case, it requires almost
twice as many messages and more than twice as many steps
as ILS. On the other hand, the CPU utilization in ILS is two
orders of magnitude larger than in DUAL. Accordingly, DUAL
appears to be a more scalable solution for routing in large
networks and intemets than ILS.
VIII.
SUMMARY AND CONCLUSIONS
The preceding sections described a new family of algorithms
for distributed shortest-path routing called diffusing update
algorithms or DUAL and proved that it provides loop-free
paths at every instant regardless of the operational conditions
of the network or intemet. These results unify previous work
on loop-fres distance-vector algorithms by Jaffe and Moss and
thk
author,
and
present
a
complete proof
of
loop
freedom
GARCIA-LUNES-ACEVE.S LOOP-FREE ROUTING USING DIFFUSING COMPUTATIONS
141
for these types of algorithm for the first time in a journal
publication.
The previous section showed that DUAL matches or out-
performs previous loop-free distance-vector algorithms, and
that a practical DVP based on DUAL can be implemented in
a network or intemet with a performance comparable to or
better than that of an LSP.
The only concern regarding DUAL’s performance is after
node failures and network partitions, because in such cases
all network nodes have to be involved in the same diffus-
ing computation. Fortunate y, the performance degradation of
DUAL after node failures and network partitions can be easily
dealt with in practice. A solution is to require that a node wait
for a fixed “hold down” time to allow the node to receive
updated information from any downstream neighbors that can
be taken as feasible successors before the node is allowed to
update its routing table. No hold-down time is needed when no
feasible successors are found. The time complexity of DUAL
with hold-down time is TC = O(h), where h < z is the
length of the longest chain of the nodes participating in the
diffusing computation, This is easily verified by noting that,
with the synchrony assumption, a node that waits for a hold-
down time must receive and process the update messages
from all its downstream neighbors before it can send its
own update message. In most networks and intemets, a hold-
down time proportional to the transmission delay incurred
between two adjacent routers is enough to let a router near
a destination receive updated information from all neighbors
downstream before it is allowed to update its routing table.
However, estimating an effective hold-down time depends on
such factors as the topology of the network and the average
link and processing delays experienced by control messages.
ACKNOWLEDGMENT
The author wishes to thank Z. S. Su for many fruitful
discussions that helped in the design of
DUAL, and W.T.
Zaumen for all the
work that went into DUAL’s simulation.
REFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[81
[9]
[10]
K. M. Chandy and J.
Misra, “Distributed computation on graphs:
Shottest path algorithms,” Commun. ACM, vol.
25, no. 11, pp. 833-837,
Nov. 1982.
R. Coltun, “OSPF: An intemet routing protocol,”
CormeXions, vol. 3,
no. 8, pp. 19-25, Aug. 1989.
E. W. Dijkstra and C. S. Scholten.
“Termination detection for diffusing
computations,” hr~orrn. F’roce$s. Lerf., vol. 11, no, 1, pp. 1-4, Aug. 1980.
L, R, Ford and D. R. Fulkerson, Flows in Networks, Princeton, NJ:
Princeton Univ Press, 1962,
J. J. Garcia-Luna-Aceves, “A distributed loop-free, shortest-path routing
algorithm,” Proc. IEEE INFOCOM ’88, Mar. 1988.
“A
minimum-hop routing afgorithm based on distributed infor-
xn’,” Compur. New. and ISDN Syst., vol. 16, no. 5, pp.367-382,
May 1989.
“Loop-free intemet routing and related issues,” CormeXiorrs,
~,’ no. 8, pp. 8-18, Aug. 1989,
—, “A unified approach for loop-free routing using link
states or
distance vectors,” ACM C’ompuf. Commun. Re\,., vol. 19, no. 4, pp.
212-223, Sept. 1989,
—,
“Diffusing update algorithms for message routing in computer
networks and intemetworks,” Invention Disclosure P-3089, SRI Int.,
Menlo Park, CA, Sept. 1991,
C. Hedrick, “Routing information protocol,” RFC 1058, Netw. Inform.
Cent., SRI Int., Menlo Park. CA, June 1988.
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
R.
Hinden and A, Sheltzer, “DARPA intemet gateway,” RFC 823, Netw,
Inform. Cent., SRI Int,, Menlo Pwk, CA, Sept. 1982,
Int. Stand. Org.,
%ttra-domain IS-IS routing protocol,” ISO/IEC
JTC l/SC6 WG2 N323, Sept. 1989,
J. M. Jaffe and F. M. Moss, “A responsive routing algorithm for
computer networks,” IEEE
Trans. Ccmrmun., vol. COM-30, no. 7, pp.
1758-1762,
Jtdy 1982.
M. J. Johnson, “Updating routing tables after resource failure in a
distributed computer network,”
Networks, vol. 14, no. 3, pp. 379-392,
1984.
—, ‘<Analysis of routing table update activity after resource recovery
in a distributed computer network,”
in Proc.
Seventeenth Hawaii Irrt,
Con? Sysr. Sci.,
Honolulu, HI, 1984, pp. 96-102,
K. Lougheed and Y. RekJrter, “Border gateway protocol 3 (BGP-3),”
RFC 1267, SRI Int., Menlo Park, CA, Oct. 1991,
P. M. Merlin and A. SegaH, “A failsafe distributed routing protocol,”
IEEE Trans. Commwt., vol. COM-27, no, 9, pp. 1280-1288, Sept. 1979,
J. McQuillan, “Adaptive routing algorithms for distributed computer
networks,” BBN Rep. 2831,
Bolt Beranek and Newman Inc., Cambridge,
MA, May 1974,
J. McQuillan et al., ‘The new routing algorithm for the
ARPANET,”
IEEE Trans. Commurr., vol. COM-28,
May 1980,
D. Mills, “Exterior gateway protocol formal specification,” RFC 904,
Netw, Inform, Cent., SRI Int., Menlo Park, CA, Dec. 1983.
J, B. Postel, “Transmission Control Protocol,” RFC 793, Netw, Inform,
Cent., SRI Int., Menlo Park, CA, Sept. 1981.
M. Schwartz, Telecommunication Ne~ork.r: Protocols, Modeling and
Analysis. Menlo Park, CA, Addison-Wesley, 1986, ch, 6.
A. Segall, “Distributed network protocols,” IEEE Trans. Inform. Theory,
vol. IT-29, no, 1, pp. 23–35,
Jan, 1983.
J. Seeger and A. Khanna, “Reducing routing overhead in a grow-
ing DDN,” in Proc. MILCOM’86, Monterey, CA, Oct. 1986, pp.
15.3,1-15,3.13,
K. G. Shin and M. Chen, “Performance analysis of distributed routing
strategies free of ping-pong-t ype looping,” IEEE Trans.
Comput., vol.
COMP-36, no. 2, pp. 129-137,
Feb. 1987.
W. D. Tajibnapis, “A correctness proof of a topology information
maintenance protocol for a distributed computer network,” Commun.
ACM, VOI, 20, pp. 477485, 1977,
W, Zaumen and J. J, Garcia-Luna-Aceves, “Dynamics of distributed
shortest-path routing algorithms,”
ACM Comput. Commun, Rev., vol.
21, no. 4, pp. 31=$2, Sept. 1991.
—, “Dynamics of link-state and loop-free distance-vector routing
algorithms,” J. lntemetwork., vol. 3, pp. 161-188, 1992.
J. J. Garcia-Luna-Aceve.x Wasbum in Mexico
City, Mexico on October 20, 1955. He received
the B.S. degree in electrical engineering from the
Universidad Iberoamericana, Mexico City, Mexico,
in
1977, and the M.S. and Ph.D. degrees in elec-
trical engineering from the University of Hawaii,
Honolulu, HI, in 1980 and 1983, respectively.
He is an Associate Professor in the Department of
Computer Engineering at the University of Califor-
nia, Santa Cmz, He is also Director of the Network
Information Systems Center of SRI International,
which he joined as an SRI International-Fellow in 1982. His current research
interests include the analysis and design of distributed network control
algorithms and multimedia information systems. He has published more than
60 technical articles related to computer communication research, He has
been Guest Editor of IEEE COMPUTER (1985) and the ACM SIGCOMM
Computer Communication Review (1988), and is an Editor of the Multimedia
Sys/ems Journal (Springer International). He is General Chair of the first ACM
conference on multimedia: ACM
Multimedia ’93. He was Program Chair of
the IEEE Multimedia ’92 Workshop, General
Chair of the ACM SIGCOMNf
’88 Symposium, Program Chair of the ACM SIGCOMM Symposia of 1986
and 1987, and member of the technical program or organizing committee of
numerous IEEE and ACM SIGCOMM
conferences, IFIP 6.5 conferences, and
the High Performance Distributed Computing (HPDC) symposia of 1992 and
1993. He is ACM SIGCOMM Conference Coordinator, and is a member of the
steering committees for the ACM Multimedia Conference Series and the IEEE
Multimedia ’93 Workshop. He received the SRI Exceptional Achievement
Award in 1985 for his work on multimedia communications, and again in
1989 for his work on distributed routing algorithms,
Dr. Garcia-Luna is a member of the ACM and a pioneer member of the
Internet Society.
... An action profile µ induces a directed graph on G, which has the same set of nodes as G and directed edges from v to µ v for all v ∈ V . We call this the successor graph, using terminology from [17], and denote it by SG(µ). As we shall show, our proposed strategy produces an action profile µ which induces a directed acyclic graph. ...
... As we shall show, our proposed strategy produces an action profile µ which induces a directed acyclic graph. This is referred to as an acyclic successor graph (ASG) [17]. ...
Preprint
Consider a general path planning problem of a robot on a graph with edge costs, and where each node has a Boolean value of success or failure (with respect to some task) with a given probability. The objective is to plan a path for the robot on the graph that minimizes the expected cost until success. In this paper, it is our goal to bring a foundational understanding to this problem. We start by showing how this problem can be optimally solved by formulating it as an infinite horizon Markov Decision Process, but with an exponential space complexity. We then formally prove its NP-hardness. To address the space complexity, we then propose a path planner, using a game-theoretic framework, that asymptotically gets arbitrarily close to the optimal solution. Moreover, we also propose two fast and non-myopic path planners. To show the performance of our framework, we do extensive simulations for two scenarios: a rover on Mars searching for an object for scientific studies, and a robot looking for a connected spot to a remote station (with real data from downtown San Francisco). Our numerical results show a considerable performance improvement over existing state-of-the-art approaches.
... • Link State Routing: in a link-state algorithm, also called topology-broadcast algorithm, a node must know the entire network topology, shortest path to each network destination (Garcia J.J. et al., 1993). • Distance Vector Routing: In a distancevector algorithm, a node knows the length of the shortest path from each neighbor node to every network destination, and uses this information to compute the shortest path and next node in the path to each destination (Garcia J.J. et al., 1993). ...
... • Link State Routing: in a link-state algorithm, also called topology-broadcast algorithm, a node must know the entire network topology, shortest path to each network destination (Garcia J.J. et al., 1993). • Distance Vector Routing: In a distancevector algorithm, a node knows the length of the shortest path from each neighbor node to every network destination, and uses this information to compute the shortest path and next node in the path to each destination (Garcia J.J. et al., 1993). ...
Article
Full-text available
A Mobile Ad hoc Network (MANET) is a collection of mobile nodes, that forms on the fly a temporary wireless multi-hop network in a self-organizing way, without relying on any established infrastructure. In MANET, a pair of nodes exchange messages either over a direct wireless link, or over a sequence of wireless links including one or more intermediate nodes. For this purpose, an efficient routing protocol is required. This paper introduced performance study of three of MANET protocols (AODV, GRP and OSPFv3). This study was one of the newer studies because wireless communication played an important role in today’s application and the field of mobile ad hoc network becomes very popular for the researchers in the last years. This study was done using OPNET Modeler v14.5 and the comparison between the protocols was done in terms of throughput, routing traffic received, traffic sent, load and delay with increased number of mobile nodes from 10, 25 and 50 mobile nodes. The results showed that AODV (reactive routing protocol) was better in delay and had smaller load and smaller throughput than GRP (reactive and proactive routing protocols) and OSPFv3 (proactive routing protocols).
... Therefore, EIGRP is incorrectly referred to as a hybrid routing protocol in some works in the literature, as this behavior strongly resembles link state routing protocols. A unique feature that no other routing protocol offers is the guarantee of loop-free operation, provided that it is configured correctly [36,[40][41][42][43]. ...
Article
Full-text available
This paper proposes a novel methodology for the design of dual-stack IP routing protocols focused on neighborships and routing messages transport. The first part describes currently used dual-stack IP routing protocols, their history, and key features. The description of four identified combinations based on a number of neighbor sessions and protocol used for the transport of routing messages is presented afterward. These combinations are introduced as Protocol Integration Solution Classes (PISCs) in this paper. Colored Petri nets (CPNs) are selected as a formal method to create a model of each PISC. The following parts deal with a detailed description and analysis of the created Protocol Integration Solution Class models, which are also verified and compared with each other. Based on the comparison of each PISC model simulation step, the PISC 2 class is selected as the most efficient one. The last part of the paper formulates recommendations for the dual-stack IP routing protocol design based on the results presented in this paper.
Article
Two distributed adaptive routing algorithms are analyzed and evaluated through simulation. The total network delay is taken as the performance measure. Also the effect of applying both algorithms on an example network is investigated for the changes in routing fractions and the links flow. The resulting routing tables are discussed and analyzed.
Article
Article
In a distributed computer network each node participates in the routing process, making routing decisions based on information about network topology which is stored in tables in the node. To maintain the accuracy of these tables without interrupting the functionality of the network, they must be dynamically updated whenever there is a topology change in the network. The purpose of this paper is to analyze update activity required by a topology information maintenance scheme which has been implemented on the three-node MERIT Computer Network in Michigan. The main theorem gives upper and lower bounds on the number of update messages required after failure of a single network resource, either a node or a link.