1 / 15

Internet Networking Spring 2004

Internet Networking Spring 2004. Tutorial 3 DUAL Algorithm. 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.

chick
Télécharger la présentation

Internet Networking Spring 2004

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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. 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. 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. 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. 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. 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. 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 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. 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. 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. Formal Proof • 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, Sj(G), computation takes place at any one time, then Sj(G) is loop-free at every instant. • Lemma 2: Dual considers each diffused Sj(G) computation individually and in the proper sequence. • Theorem 1: In every iteration Sj(G) is loop-free • Theorem 2: The dual algorithm converge in finite time. Prove for both DV and LS cases.

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

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

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

More Related