You are on page 1of 18

The Diffusing Update Algorithm

Presented by Anil K.C (Roll: 12)

Central Department of Computer Science and Information Technology, T.U.

Objective
To present a routing algorithm that is loop free To illustrate the underlying principle of popular routing protocol, the EIGRP

Overview
Routing loops Sufficient conditions for loop avoidance Diffusing Update Algorithm (DUAL) Example Conclusion

Routing Loops
Fundamental routing algorithms
Distance vector routing (Distributed Bellman ford algorithm)[3] Link state routing (Dijkstras algorithm)[4]

Loop formation in distance vector routing

Fig 1: Two-node instability [5]


5

Solutions to these instability


Two node instability
Defining Infinity Split Horizon Split Horizon and Poison Reverse Three node instability Stability cannot be guaranteed

Loop formation in link state routing


due to the timing differences, B calculates and installs its new best path through A before A has a chance to switch from B to E, a microloop will form between A and B for the duration of time required for A to complete its routing table update.

Fig 3: Microloop Example

How can routing loops be avoided at all ?


By properly choosing the successor after a change in link cost or link failure has been detected

Sufficient Conditions for Loop freedom (Feasibility Conditions, FC)


Distance Increase Condition (DIC) Current Successor Condition (CSC) Source Node Condition (SNC)
8

G = (V, E): Network Model and Notation


G: a connected network of arbitrary topology E: The set of links in G N: The set of nodes in G j: The identifier of destination node j N (i,x): The link in E between nodes i and x sij(t): The successor (or next hop) in the path to node j currently chosen by node i at time t lik(t): The cost of the link from node i 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 Ni(t): The set of nodes connected through a link with node i at time tmore formally, Ni(t) = {x| (i,x), lix(t) < }; a node in that set is said to be a neighbor of node i.
9

Contd.
Dij(t): The current distance from node i to node j as known by node i at time t Dijk(t): The distance from node k to node j as known by node i at time t D*ij(t): The smallest value assigned to Dij up to time t D*ijk(t): The smallest value of Dkj known by node i up to time t RDij(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 Dij(t)) FDij(t): The distance value used by node i to evaluate whether a feasibility condition is satisfied at time t; depending on the condition used, it can be equal to either D*ij(t) or D*ijk(t).
10

Source Node Condition (SNC)


If at time t node i needs to change its current successor, it can choose as its new successor any neighbor q Ni(t) for which Dijq(t) + liq(t) = Min{Dijx(t) + lix(t) | x Ni(t)} and Dijq(t) FDij(t), where FDij(t) = D*ij(t). If no such neighbor exists, then node i must maintain its old successor if it has any. The variable FDij(t) is called the feasible distance of node i for destination j. Feasibility Condition, FC.
11

Contd
DIC, CSC and SNC ensures loop freedom at every instant, But none of them guarantees shortest path Routing algorithms has to be derived based on these FCs to achieve both
Loop Freedom at every instant Shortest paths for each destination

Goal: For each destination, successor entries of the routing table should define another graph that is a dag or ASG.
12

The DUAL
Uses the concept of Diffusing Computations[2]
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.

Input Events for a node


Reply Query Update

Computation Types: Depends whether FC is satisfied


Local Diffusing
13

DUAL Contd.
States of a node on a macro level
Active by commencing a DC Passive after termination of DC

States of a node on a micro level is specified by


Reply status flag: rijk to remember whether node k has sent a reply to node i's query (0 or 1) Query origin flag: oij (0, 1, 2, 3)
14

States in DUAL

Fig 4: Active and Passive States in DUAL [1]

15

Example
The label of parentheses assigned to each node [Dxj, FDxj, Oxj]

Fig 5: Example of DUALs operation [1]


16

Conclusion
The DUAL is basically a concept that can be adapted by either of distance vector routing algorithms or the link state ones. That is, either of two well-known algorithms can be used at each node to compute shortest paths once topology information is gathered and updated using DUAL.

17

References
1. J. J. Garcia-Luna-Aceves, "Loop free routing using diffusing computations", IEEE/ACM Transactions on Networking , Vol 1, No. 1, February 1993. 2. E. W. Dijkstra and C. S. Scholten. Termination detection for diffusing computations, Inform Process. Lett., vol. 11, no. 1, pp. 1-4, Aug. 1980 3. C. Hedrick, Routing information protocol, RFC 1058, Netw. Inform. Cent., SRI Int., Menlo Park. CA, June 1988. 4. R. Coltun, OSPF: An internet routing protocol, ConneXions, vol. 3, no. 8, pp. 19-25, Aug. 1989 5. A. F. Behrouz,Data Communications and Networking, fourth edition, pp. 663-665, 2006

18

You might also like