350 likes | 490 Views
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
E N D
Chapter 4Distance Vector Problems, andLink-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 • 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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