1 / 48

Network Layer: Routing

Network Layer: Routing. UIUC CS438: Communication Networks Summer 2014 Fred Douglas Slides: Fred, Caesar&many others (edited ). 5. 3. 5. 2. 2. 1. 3. 1. 2. 1. C. D. B. A. E. F. Routing Protocols . Routing protocols implement the core function of a network

ciro
Télécharger la présentation

Network Layer: 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. Network Layer: Routing UIUC CS438: Communication Networks Summer 2014 Fred Douglas Slides: Fred, Caesar&manyothers (edited)

  2. 5 3 5 2 2 1 3 1 2 1 C D B A E F Routing Protocols • Routing protocols implement the core function of a network • Establish paths between nodes • Part of the network’s “control plane” • Network modeled as a graph • Routers are graph vertices • Links are edges • Edges have an associated “cost” • e.g., distance, loss • Goal: compute a “good” path from source to destination • “good” usually means the shortest (least cost) path

  3. Addressing (for now) • Assume each host has a unique ID (address) • No particular structure to those IDs • Later in course will talk about real IP addressing

  4. Dijkstra’s Shortest-path Algorithm • Assumption: we are a central entity that sees the entire network • Input: a graph, with costs assigned to edges • (Theoryland assumption: non-negative costs) • Goal: for a single node, compute that node’s cheapest paths to all other nodes

  5. Dijkstra’s Intuition • Among our neighbors, the direct link is the shortest path to at least one of them • This holds inductively if we compute best paths to be a connected group, and consider the group to be a single entity • Maintain two groups: • The “already know shortest path” core • The “frontier”: the core’s neighbors • One by one, move a frontier node to the core

  6. S

  7. 1 1 1 4 1 2 4 1 3 3 3 2 2 2 3 2 3 1 2 4 3 3 3 1 5 2 3 1 1 1 S 7 8

  8. c(i,j): link cost from node ito j; cost is infinite if not direct neighbors; ≥ 0 D(v):total cost of the current least cost path from source to destination v p(v):v’s predecessor along path from source to v S: set of nodes whose least cost path definitively known D C A E B F 5 3 5 2 2 1 3 1 2 1 (BEGIN: for offline studying) Notation Source

  9. Dijkstra’s Algorithm • c(i,j): link cost from node i to j • D(v): current cost source v • p(v): v’s predecessor along path from source to v • S: set of nodes whose least cost path definitively known 1 Initialization: 2 S = {A}; 3 for all nodes v 4 if v adjacent to A 5 then D(v) = c(A,v); 6 else D(v) = ; 7 8 Loop 9 find w not in S such that D(w) is a minimum; 10 add w to S; 11 update D(v) for all v adjacent to w and not in S: 12 if D(w) + c(w,v) < D(v) then // w gives us a shorter path to v than we’ve found so far 13 D(v) = D(w) + c(w,v); p(v) = w; 14 until all nodes in S;

  10. D C A E B F 5 3 5 2 2 1 3 1 2 1 Example: Dijkstra’s Algorithm D(B),p(B) 2,A D(D),p(D) 1,A D(C),p(C) 5,A D(E),p(E) Step 0 1 2 3 4 5 set S A D(F),p(F) 1 Initialization: 2 S = {A}; 3 for all nodes v 4 if v adjacent to A 5 then D(v) = c(A,v); 6 else D(v) = ; …

  11. • 8 Loop • 9 find w not in Ss.t. D(w) is a minimum; • 10 add w to S; • update D(v) for all v adjacent • to w and not in S: • If D(w) + c(w,v) < D(v) then • D(v) = D(w) + c(w,v); p(v) = w; • 14 until all nodes in S; D C A E B F 5 3 5 2 2 1 3 1 2 1 Example: Dijkstra’s Algorithm D(B),p(B) 2,A D(D),p(D) 1,A D(C),p(C) 5,A D(E),p(E) Step 0 1 2 3 4 5 set S A D(F),p(F)

  12. • 8 Loop • 9 find w not in Ss.t. D(w) is a minimum; • 10 add w to S; • update D(v) for all v adjacent • to w and not in S: • If D(w) + c(w,v) < D(v) then • D(v) = D(w) + c(w,v); p(v) = w; • 14 until all nodes in S; C D E A B F Example: Dijkstra’s Algorithm D(B),p(B) 2,A D(D),p(D) 1,A D(C),p(C) 5,A D(E),p(E) Step 0 1 2 3 4 5 set S A AD D(F),p(F) 5 3 5 2 2 1 3 1 2 1

  13. • 8 Loop • 9 find w not in Ss.t. D(w) is a minimum; • 10 add w to S; • update D(v) for all v adjacent • to w and not in S: • If D(w) + c(w,v) < D(v) then • D(v) = D(w) + c(w,v); p(v) = w; • 14 until all nodes in S; C D E A B F Example: Dijkstra’s Algorithm D(B),p(B) 2,A D(D),p(D) 1,A D(C),p(C) 5,A 4,D D(E),p(E) 2,D Step 0 1 2 3 4 5 set S A AD D(F),p(F) 5 3 5 2 2 1 3 1 2 1

  14. • 8 Loop • 9 find w not in Ss.t. D(w) is a minimum; • 10 add w to S; • update D(v) for all v adjacent • to w and not in S: • If D(w) + c(w,v) < D(v) then • D(v) = D(w) + c(w,v); p(v) = w; • 14 until all nodes in S; C D E A B F Example: Dijkstra’s Algorithm D(B),p(B) 2,A D(D),p(D) 1,A D(C),p(C) 5,A 4,D 3,E D(E),p(E) 2,D Step 0 1 2 3 4 5 set S A AD ADE D(F),p(F) 4,E 5 3 5 2 2 1 3 1 2 1

  15. • 8 Loop • 9 find w not in Ss.t. D(w) is a minimum; • 10 add w to S; • update D(v) for all v adjacent • to w and not in S: • If D(w) + c(w,v) < D(v) then • D(v) = D(w) + c(w,v); p(v) = w; • 14 until all nodes in S; C D E A B F Example: Dijkstra’s Algorithm D(B),p(B) 2,A D(D),p(D) 1,A D(C),p(C) 5,A 4,D 3,E D(E),p(E) 2,D Step 0 1 2 3 4 5 set S A AD ADE ADEB D(F),p(F) 4,E 5 3 5 2 2 1 3 1 2 1

  16. • 8 Loop • 9 find w not in Ss.t. D(w) is a minimum; • 10 add w to S; • update D(v) for all v adjacent • to w and not in S: • If D(w) + c(w,v) < D(v) then • D(v) = D(w) + c(w,v); p(v) = w; • 14 until all nodes in S; C D E A B F Example: Dijkstra’s Algorithm D(B),p(B) 2,A D(D),p(D) 1,A D(C),p(C) 5,A 4,D 3,E D(E),p(E) 2,D Step 0 1 2 3 4 5 set S A AD ADE ADEB ADEBC D(F),p(F) 4,E 5 3 5 2 2 1 3 1 2 1

  17. • 8 Loop • 9 find w not in Ss.t. D(w) is a minimum; • 10 add w to S; • update D(v) for all v adjacent • to w and not in S: • If D(w) + c(w,v) < D(v) then • D(v) = D(w) + c(w,v); p(v) = w; • 14 until all nodes in S; C D E A B F 5 3 5 2 2 1 3 1 2 1 Example: Dijkstra’s Algorithm D(B),p(B) 2,A D(D),p(D) 1,A D(C),p(C) 5,A 4,D 3,E D(E),p(E) 2,D Step 0 1 2 3 4 5 set S A AD ADE ADEB ADEBC ADEBCF D(F),p(F) 4,E

  18. (END: for offline studying) C D E A B F 5 3 5 2 2 1 3 1 2 1 Example: Dijkstra’s Algorithm D(B),p(B) 2,A D(D),p(D) 1,A D(C),p(C) 5,A 4,D 3,E D(E),p(E) 2,D Step 0 1 2 3 4 5 set S A AD ADE ADEB ADEBC ADEBCF D(F),p(F) 4,E To determine path A  C (say), work backward from C via p(v)

  19. Link-State Routing

  20. Link State Intuition • A central view of the entire network lets you run Dijkstra’s algorithm… • So give everyone a central view! • Propagate information on the state of the links that you can directly see • Whether they exist • How much they cost • Run Dijkstra’s algorithm when your view of the topology changes

  21. Link state: update propagation Each node maintains a “topology database” F tells all routers: there is a link between F and E [B,D] [D,F] [E,F] [C,E] [C,A] [C,B] [A,B] [D,E] [C,E] [D,F] [A,B] [C,B] [C,A] [D,E] [B,D] [E,F] [B,D] [D,E] [D,F] [C,B] [C,A] [A,B] [C,E] [E,F] [C,B] [C,A] [C,E] [B,D] [A,B] [E,F] [D,F] [D,E] [C,E] [C,B] [A,B] [D,F] [E,F] [B,D] [D,E] [C,A] [E,F] [D,F] [C,A] [C,E] [C,B] [B,D] [D,E] [A,B] [E,F] [B,D] [D,F] [A,B] [C,A] [D,E] [C,B] [C,E] [D,F] [C,B] [C,A] [D,E] [B,D] [A,B] [C,E] [E,F] [A,B] [D,F] [C,A] [C,E] [E,F] [D,E] [B,D] [C,B] [D,F] [C,A] [E,F] [A,B] [C,E] [C,B] [B,D] [D,E] B D A F C E • How to prevent update loops: (seq numbers) • How to bring up new node: (load TDB from neighbor)

  22. Link state: route computation B D A F C E • Each router computes shortest path tree, rooted at that router • Determines next-hop to each dest, publish to forwarding table • Operators can assign link costs to control path selection

  23. D C A E B F 5 3 5 2 2 1 3 1 2 1 Forwarding table: the goal • Running Dijkstra at node A gives the shortest path from A to all destinations • We then construct the forwarding table

  24. Issue #1: Scalability • How many messages needed to flood link state messages? • O(N x E), where N is #nodes; E is #edges in graph • Processing complexity for Dijkstra’s algorithm? • O(N2), because we check all nodes w not in S at each iteration and we have O(N) iterations • more efficient implementations: O(N log(N)) • (heap) • How many entries in the LS topology database? • O(E) • How many entries in the forwarding table? • O(N)

  25. D B O H I M E A C G J P In regular link-state, routers maintain map of entire topology Solution #1: Hierarchical routing D B O H I M E A C G J P

  26. O H I M A Routers summarize paths across areas as “virtual links” G J P Aggregate groups of routers into “areas” “Border routers” generate “summary LSPs” to reach other border routers Solution #1: Hierarchical routing D B O H I M E A C G J P

  27. Solution #2: Fewer Nodes! • Problem: Scaling problems at internet scale • Solution: Just don’t scale that far  • Another level of hierarchy: autonomous systems • One company’s network = 1 AS • Don’t even look inside other ASes. Just find a path at the AS level: the graph where 1 node = 1 AS • Much more detail a few lectures later

  28. Distance Vector Routing

  29. Distance Vector Intuition • Think in terms of one destination at a time. • Implementation reality: the “vector” is because we actually do all of the destinations in parallel • Advertise your paths. • Use the best path you currently know of. • Send the advertisements when your best path cost changes (for better or worse) I have a cost 6 path to A I have a cost 4 path to A 2 3 A 4 B C D

  30. Distance Vector Algorithm (for offline studying) 1 Initialization: 2 for allneighbors V do 3 ifV adjacent to A 4 D(A, V) = c(A,V); else D(A, V) = ∞; send D(A, Y) to all neighbors loop: 8 wait (until A sees a link cost change to neighbor V /* case 1 */ 9 or until A receives update from neighbor V) /* case 2 */ 10 if (c(A,V) changes by ±d) /*  case 1 */ 11 for all destinations Y that go through Vdo 12 DV(A,Y) = DV(A,Y) ± d 13 else if (update D(V, Y) received from V) /*  case 2 */ /* shortest path from V to some Y has changed */ 14 DV(A,Y) = DV(A,V) + D(V, Y); /* may also change D(A,Y) */ 15 if (there is a new minimum for destination Y) 16 send D(A, Y) to all neighbors 17 forever • c(i,j): link cost from node i to j • DZ(A,V): cost from A to V via Z • D(A,V):cost of A’s best path to V

  31. Distance Vector Example I have a cost 6 path to A I have a cost 4 path to A 2 3 A 4 B C D 1 1 I have a cost 7 path to A I have a cost 5 path to A E F G 1 1 I have a cost 6 path to A

  32. Count-to-Infinity Problem 1 A B 14 1 C

  33. Count-to-Infinity Problem 1 A B 14 1 C

  34. Count-to-Infinity Problem A B 14 1 C

  35. Count-to-Infinity Problem A B ~ 14 1 C

  36. Count-to-Infinity Problem A B ~ 14 1 C

  37. Count-to-Infinity Problem A B ~ 3 14 1 C

  38. Count-to-Infinity Problem A B ~ 3 14 1 C

  39. Count-to-Infinity Problem A B ~ 3 14 1 C 4

  40. Count-to-Infinity Problem A B ~ 3 14 1 C 4

  41. Count-to-Infinity Problem A B ~ 3 5 14 1 C 4 (we are not going to go through the whole process  )

  42. Count-to-infinity Solutions • Let ∞ = 16 • (This is real: Routing Information Protocol) • “Poison reverse”: advertise a distance of “infinity” back to the neighbor whose path you use • Just specify the path you’re talking about…

  43. Will Poison-Reverse Completely Solve the Count-to-Infinity Problem? (destination is D) D 100 1 ∞ 4 B 4 100 ∞ 1 100 1 1 1 6 3 ∞ ∞ 2 2 ∞ 5 A C 1 (we are not going to go through the whole process  )

  44. Link State vs Distance Vector • Conclusion: link state is just better! • Scalability • Convergence time • However, link state assumes all nodes are “working together” under the same entity… • In the real world: • RIP (distance vector) came first • OSPF, IS-IS (link state) are today’s choice

  45. Path Vector Routing

  46. Path Vector Intuition • In your DV ads, specify the path • We can • include the total cost (like above) • just let the # of hops in the path be the cost • How does it solve count-to-infinity? • Knowing if you are already part of the path your neighbor is offering Path to A: CBA, cost 6 Path to A: BA, cost 4 2 3 A 4 B C D

  47. Count-to-infinity revisited: path vector (destination is D) D 1 100 B BD, cost 100 BD, cost 100 BD, cost 1 BD, cost 1 1 1 ACBD, cost 102 ACBD, cost 3 CABD, cost 102 CABD, cost 3 1 A C ABD, cost 2 CBD, cost 2 ABD, cost 101 CBD, cost 101 Converged!

  48. Routing Summary • Goal: compute optimal paths • In real world terms: establish forwarding table • Link State: learn exactly what the network looks like, run a centralized algorithm • Distance/Path Vector: pass around news of usable paths to various destinations

More Related