1 / 35

Chapter 4 Distance Vector Problems, and Link-State Routing

Chapter 4 Distance Vector Problems, and Link-State Routing. Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu. Announcements. Handing back HW #1, TA OH, solutions online later today Homework #2 available on Web site, due Feb. 26

halil
Download Presentation

Chapter 4 Distance Vector Problems, and Link-State Routing

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. Chapter 4Distance Vector Problems, andLink-State Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

  2. Announcements • Handing back HW #1, TA OH, solutions online later today • Homework #2 available on Web site, due Feb. 26 • Last week’s lectures are now on Web site • Midterm for the week of March 12 • Next, Distance vector problems, and link-state routing, … Prof. Rick Han, University of Colorado at Boulder

  3. Recap of Previous Lecture • Distributed Bellman-Ford = Distance Vector • Bellman-Ford Equation • D(i,j) = min {d(i,k) + D(k,j)} for all i<>j • k neighbors • Bellman-Ford Algorithm [Ford & Fulkerson] • D(i,j)[h+1] = min {d(i,k) + D(k,j)[h]} for all i<>j, h=0,1, … • k neighbors • Distributed Bellman-Ford Algorithm • Physically distribute the calculation of D(i,j)[h] to router i only, and • Exchange the results of your D(i,j)[h] with neighboring routers at each iteration h Prof. Rick Han, University of Colorado at Boulder

  4. RIP is simple • At each step, exchange distance vectors with each neighbor • Update distance table with new distance vector, adding one (all link costs are one) • Calculate minimum hop path to each destination by looking at minimum in the row Distance table at B A B Via Port/Link C Prof. Rick Han, University of Colorado at Boulder

  5. Link Failure Causes “Bouncing” Effect dest cost dest cost via via 1 X A B B A 1 1 B A C 2 C 1 B C 1 25 C dest cost via A 2 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  6. B notices failure, resets cost via A to infinity in distance table (not shown), & knows cost via C is 26 B Notices A-B Link Failure dest cost dest cost via via A B B A 26 1 B C C 2 C 1 B C 1 25 C dest cost via A 2 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  7. C sends routing update to B C Sends Dist. Vector to B dest cost dest cost via via A B B A 3 1 B C C 2 C 1 B C 1 25 C dest cost via A 2 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  8. B Updates Distance to A dest cost dest cost via via A B B A 3 C 1 B C 2 C 1 B C Packet sent from C to A bounces between C and B until TTL=0! 1 25 C dest cost via A 2 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  9. B Sends Dist. Vector to C dest cost dest cost via via A B B A 3 C 1 B C 2 C 1 B C C adds one to B’s advertised distance to A. (Why does C override its stored distance of 2 to A with 4, larger value?) 1 25 C dest cost via A 4 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  10. C Sends Dist. Vector to B dest cost dest cost via via A B B A 5 C 1 B C 2 C 1 B C B adds one to C’s advertised distance to A. (overrides its stored distance of 3 to A with 5, larger value) 1 25 C dest cost via A 4 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  11. Link Failure: Bad News Travels Slowly dest cost dest cost via via A B B A 25 C 26 C C 25 C 1 C C After 20+ exchanges, routing tables look like this: 1 25 Assume A has advertised its link cost of 25 to C during B<->C exchanges. C stores this cost in its distance table (not shown) C dest cost via A 24 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  12. Bad News Travels Slowly (2) dest cost dest cost via via A B B A 25 C 26 C C 25 C 1 C C C increments B’s update by 1, and chooses 25 via A to A, instead of 26 Via B to A 1 25 C dest cost via A 25 A B 1 B Prof. Rick Han, University of Colorado at Boulder

  13. Bad News Travels Slowly (3) dest cost dest cost via via A B B A 26 C 26 C C 25 C 1 C C After 25 B-C exchanges, finally converge to stable routing 1 25 C dest cost via A 25 A B 1 B Prof. Rick Han, University of Colorado at Boulder

  14. Link Failure Causes “Counting to Infinity” Effect dest cost dest cost via via 1 X A B B A 1 1 B A C 2 C 1 B C 1 25 C dest cost via A 2 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  15. B notices failure, resets cost to 26 B Notices A-B Link Failure dest cost dest cost via via A B B A 26 1 B C C 2 C 1 B C 1 25 C dest cost via A 2 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  16. C sends routing update to B C Sends Dist. Vector to B dest cost dest cost via via A B B A 3 C 1 B C 2 C 1 B C 1 25 C dest cost via A 2 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  17. A-C Link Fails dest cost via A B A 3 C C 1 C 1 C detects link to A has failed, but no change in C’s routing table (why?) C dest cost via A 2 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  18. Now, B and C Count to Infinity dest cost via A B A 3 C C 1 C 1 C dest cost via A 4 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  19. B and C Count to Infinity (2) dest cost via A B A 5 C C 1 C 1 C dest cost via A 4 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  20. Some “Solutions” • Split horizon • C does not advertise route to B when it sends its distance vector • Poisoned reverse • C advertises route to B with infinite distance in its distance vector • Works for two node loops • Does not work for loops with more nodes Prof. Rick Han, University of Colorado at Boulder

  21. B notices failure, resets cost to 26 B Notices A-B Link Failure dest cost dest cost via via A B B A 26 1 B C C 2 C 1 B C 1 25 C dest cost via A 2 B B 1 B Prof. Rick Han, University of Colorado at Boulder

  22. C sends routing update to B Split Horizon dest cost dest cost via via A B B A 26 C 1 B C 2 C 1 B C 1 25 dest cost C dest cost via B 1 A 2 B B 1 No need to send dest A via B, since B should already know this B Prof. Rick Han, University of Colorado at Boulder

  23. C sends routing update to B Split Horizon With Poisoned Reverse dest cost dest cost via via A B B A ~ -- 1 B C 2 C 1 B C 1 25 dest cost C dest cost via A ~ A 2 B B 1 B 1 B If lowest cost path is via B, then when updating B send infinite cost Prof. Rick Han, University of Colorado at Boulder

  24. Example Where Split Horizon Fails 1 • When link breaks, C marks D as unreachable and reports that to A and B • Suppose A learns it first • A now thinks best path to D is through B • A reports D unreachable to B and a route of cost=3 to C • C thinks D is reachable through A at cost 4 and reports that to B • B reports a cost 5 to A who reports new cost to C • etc... A B 1 1 C X 1 D Prof. Rick Han, University of Colorado at Boulder

  25. Alternative Shortest Path Calc. • Compute a shortest path tree • Observation: • shortest path to nodes further from the root must go through a branch of the shortest path tree closer to the root • Strategy: expand outwards, calculating the shortest path tree from the root (B) Prof. Rick Han, University of Colorado at Boulder

  26. Dijkstra’s Shortest Path Algorithm • Let N = set of nodes in graph • l(i,j) = link cost between i,j (= infinity if not neighbors) • SPT = set of nodes in shortest path tree thus far • S = source node • C(n) = cost of path from • S to node n Prof. Rick Han, University of Colorado at Boulder

  27. Dijkstra’s Shortest Path Algorithm (2) • Initialize shortest path tree SPT = {S} • For each n not in SPT, C(n) = l(s,n) • While (SPT<>N) • SPT = SPT U {w} such that C(w) is minimum for all w in (N-SPT) • For each n in (N-SPT) • C(n) = MIN (C(n), C(w) + l(w,n)) Prof. Rick Han, University of Colorado at Boulder

  28. Dijkstra’s Shortest Path Algorithm (3) • Initialize shortest path tree SPT = {B} • For each n not in SPT, C(n) = l(s,n) • C(E) = 1, C(A) = 3, C(C) = 4, C(others) = infinity • Add closest node to the tree: SPT = SPT U {E} since C(E) is minimum for all w not in SPT. • No shorter path to E can ever be found via some other roundabout path. • Shortest path tree SPT = {B, E} Prof. Rick Han, University of Colorado at Boulder

  29. Dijkstra’s Shortest Path Algorithm (4) • Recalculate C(n) = MIN (C(n), C(E) + l(E,n)) for all nodes n not yet in SPT • C(A) = MIN( C(A)=3, 1 + 1) = MIN(3,2) = 2 • C(D) = MIN( infinity, 1 + 1) = 2 • C(F) = MIN( infinity, 1 + 2) = 3 • C(C ) = MIN( 4, 1 + infinity) = 4 • Each new node in tree, could create a lower cost path, so redo costs Prof. Rick Han, University of Colorado at Boulder

  30. Dijkstra’s Shortest Path Algorithm (5) • Loop again, select node with the lowest cost path: • C(A) = 2, C(D) = 2, C(F) = 3, C(C ) = 4 • SPT = SPT U {A} = {B, E, A} • No shorter path can be found from B to A, regardless of any new nodes added to tree • Recalc: C(n) = MIN (C(n), C(A) + l(A,n)) for all n not yet in SPT • C(D) = MIN(2, 2+inf) = 2 • C(F) = 3, C(C) = 4 Prof. Rick Han, University of Colorado at Boulder

  31. Dijkstra’s Shortest Path Algorithm (6) • Continue to loop, adding lowest cost node at each step and updating costs • SPT crawls outward • Remember to store the links in SPT as they are added (each node’s predecessor is stored) • Each node has to store the entire topology, or database of link costs Prof. Rick Han, University of Colorado at Boulder

  32. Link-State Routing = Reliable Flooding + Dijkstra SPT • Start condition • Each node assumed to know state of links to its neighbors • Step 1 • Each node broadcasts its state to all other nodes • Reliable flooding mechanism • Step 2 • Each node locally computes shortest paths to all other nodes from global state • Dijkstra’s shortest path tree (SPT) algorithm Prof. Rick Han, University of Colorado at Boulder

  33. Link State Packets (LSPs) • Periodically, each node creates a link state packet containing: • Node ID • List of neighbors and link cost • Sequence number • Needed to avoid stale information from flood • Time to live (TTL) • Node outputs LSP on all its links Prof. Rick Han, University of Colorado at Boulder

  34. Reliable Flooding of LSPs • When node J receives LSP from node K • If LSP is the most recent LSP from K that J has seen so far, J saves it in database and forwards a copy on all links except link LSP was received on • Otherwise, discard LSP • How to tell more recent • Use sequence numbers • Same method as sliding window protocols Prof. Rick Han, University of Colorado at Boulder

  35. OSPF – Open Shortest Path First • A particular realization of link-state routing, used for intra-domain routing in the Internet • Additional support for: • Authentication of routing updates • Support for broadcast networks • Different cost metrics • Periodic and event-triggered flooding of LSP routing updates, like RIP Prof. Rick Han, University of Colorado at Boulder

More Related