Presentation is loading. Please wait.

Presentation is loading. Please wait.

Berkeley slides were used for this tutorial 1 Internet Networking Spring 2003 Tutorial 3 DUAL Algorithm.

Similar presentations


Presentation on theme: "Berkeley slides were used for this tutorial 1 Internet Networking Spring 2003 Tutorial 3 DUAL Algorithm."— Presentation transcript:

1 Berkeley slides were used for this tutorial 1 Internet Networking Spring 2003 Tutorial 3 DUAL Algorithm

2 2 Counting to Infinity : Different Solutions Triggered Update Split Horizon: not good for triangles Source Routing: -Older protocols don’t have support -Consumes calculation time Dual Algorithm

3 3 The Distributed Update Algorithm (DUAL) Based on a paper written by J.J. Garcia- Luna-Aceves [SIGCOMM’89] http://www.cse.ucsc.edu/~jj/ The paper can be downloaded at the course site Aims at removing transient loops in both DV and LS routing protocols Based on: –“diffusion” algorithm proposed by Dijkstra /Scholten –observation that one cannot create a loop by picking a shorter path to the destination

4 4 DUAL Data Structures Array d[k,j] contains distance from each neighbor k to each destination j Array l[k] contains cost of link between local router and each neighbor k d[:,:] is obtained from distance vectors advertised by neighbors l[:] is locally configured

5 5 Optimization Criteria Each router minimizes the cost to each destination by selecting a particular neighbor x that minimizes: –cost to j = l[x] + d[x,j] If an update l’[k] or d’[k,j] arrives such that (l’[k] + d’[k,j]) < (l[x]+d[x,j]): –adopt k as new next hop and announce to neighbors (shorter is always ok)

6 6 Path Selection If an update arrives that is > than the existing choice, do not take any action, unless: –Exception: if the cost is an increase using the current selected neighbor x, first look for an “acceptable neighbor”. l[x] has changed to l’[x]. In such cases, acceptable neighbors are: –any k for which d[k,j] < local cost to j prior to the update = l[x]+d[x,j]

7 7 Selecting Among Neighbors If the set of acceptable neighbors is not empty, select the acceptable neighbor k that minimizes: –l[k] + d[k,j] If the set is empty, must engage in “diffusion” computation during which route entry for the destination j is frozen (not able to be updated)

8 8 Diffusion Process Routing entry frozen (like holddown - no loops, but black hole to destination) Send a query message to all neighbors: –contains (d, l’[x] + d’[x,j]), the frozen dist (‘=new). –wants to know d’[k,j] for each neighbor k Routers in passive state (stable routing table) just reply… others become active

9 9 Active and Passive Routers Routers are “passive” if they have a stable table and do not change path selection as a result of the query message [not using sender as router or are using an alternative for next hop] If they become “active”, they propagate the query to all neighbors, and the diffusion computation continues

10 10 Ebbing the Diffusion Once a router hears a reply from all its neighbors, it can return to passive state and return a reply back to its initial querier (like propagating prunes up stream) Eventually, reply will arrive at the originating router, completing the diffusion computation. An update concludes the process.

11 11 Formal Proof (H.W. 2) Lemma 0: If there are no active but only passive neighbors, no loops are created, and the DUAL ends in 1 iteration. Lemma 1: Consider a network G in which DUAL is executed. If only a single diffused successor graph for node j, S j (G), computation takes place at any one time, then S j (G) is loop-free at every instant. Lemma 2: Dual considers each diffused S j (G) computation individually and in the proper sequence. Theorem 1: In every iteration S j (G) is loop-free Theorem 2: The dual algorithm converge in finite time. Prove for both DV and LS cases.

12 12 DUAL - Example 1 st number: My current calculation for distance to j. 2 nd number: The distance reported to other nodes. 3 rd number: The distance from me to the next node along the route to j. (4,4,4) (2,2,2) (20,10,10) (10,10,10) (20,10,10) (0,0,0) (11,11,1) (12,12,1)

13 13 DUAL – Example(cont.) Basic Shortest Path Tree after the update: Basic Shortest Path Tree before the update: (4,4,4) (15,10,10) (0,0,0)

14 14 DUAL (summary) Assures loop-free routing Routers maintain copies of neighbor costs If cheaper route arrives, use it (no loop) If cost goes up: first see if another known route may be used (acceptable neighbor)

15 15 DUAL (summary) if not, freeze table and distribute info to all neighbors –each neighbor seeing more costly route in turn freeze their tables –if all neighbors do not change, they inform sender of this –eventually, returns to original sender Called a “diffusion computation”


Download ppt "Berkeley slides were used for this tutorial 1 Internet Networking Spring 2003 Tutorial 3 DUAL Algorithm."

Similar presentations


Ads by Google