Presentation is loading. Please wait.

Presentation is loading. Please wait.

Berkeley slides were used for this tutorial1 Internet Networking Spring 2006 Tutorial 2 DUAL Algorithm.

Similar presentations


Presentation on theme: "Berkeley slides were used for this tutorial1 Internet Networking Spring 2006 Tutorial 2 DUAL Algorithm."— Presentation transcript:

1 Berkeley slides were used for this tutorial1 Internet Networking Spring 2006 Tutorial 2 DUAL Algorithm

2 2 Counting to Infinity – A Reminder Before the change: R1: cost-1, via- R0. R2: cost-2, via- R1. R3: cost-2, via- R1. Immediately after the change: R1: cost-10, via- R0. R2: cost-2, via- R1. R3: cost-2, via- R1. R3R2 R1 R0 Net-A 1 -> 10 1 1 1

3 3 Counting to Infinity – A Reminder After R1 and R2 sent an update: R1: cost-10, via- R0. R2: cost-11, via- R1. R3: cost-3, via- R2. After R3 sent an update: R1: cost-4, via- R3. R2: cost-11, via- R1. R3: cost-3, via- R2. R3R2 R1 R0 Net-A 1 -> 10 1 1 1

4 4 Counting to Infinity : Different Solutions Triggered Updates. Split Horizon: not good for triangles. Path vector (as in BGP). Not supported by the routing protocols. DUAL Algorithm.

5 5 Diffusion 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.

6 6 Avoiding transient loops Transient loop is created when a node changes its next hop to an “upstream” node. Observation: If a neighbor of a node advertises a distance that is smaller than the last distance the node has known, then it is safe to choose the neighbor as a next hop. If the above condition does not hold a diffusion of the new cost begins while “freezing” the next hop.

7 7 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

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

9 9 Path Selection If after an update the new minimum is larger than old one, Look for an acceptable neighbor. Acceptable neighbors are: Any k for which d[k,j] is less than the local cost to j prior to the update = l[x]+d[x,j]. Note that this condition is due the observation presented earlier on loop avoidance.

10 10 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).

11 11 Diffusion Process Routing entry frozen (like holddown - no loops, but black hole to destination). Send a query message to all neighbors: contains (l’[x] + d’[x,j]), the new distance of the frozen next hop. wants to know d’[k,j] for each neighbor k. Every neighbor checks his set of acceptable neighbors. If necessary, reinitiates the diffusion process to all of its neighbors.

12 12 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.

13 13 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. Eventually, reply will arrive at the originating router, completing the diffusion computation. An update concludes the process. Once the diffusion process is complete the node can be sure that all upstream nodes: Modified their distance; Or, Stopped being an upstream node.

14 14 Formal Proof 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. Lemma 2: After node v becomes passive it must be true that, D v < D u, where u is the successor of node v. Theorem 1: In every iteration the routing graph is loop-free.

15 15 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)

16 16 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)

17 17 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).

18 18 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 tutorial1 Internet Networking Spring 2006 Tutorial 2 DUAL Algorithm."

Similar presentations


Ads by Google