15 441 641 computer networks intradomain routing
play

15-441/641: Computer Networks Intradomain Routing 15-441 Spring - PowerPoint PPT Presentation

15-441/641: Computer Networks Intradomain Routing 15-441 Spring 2019 Profs Peter Steenkiste & Justine Sherry Talk with a friend You send 2000 bytes to your friend over a direct link which has a 40ms delay and 100Mbps capacity. How


  1. Distributed Spanning Tree Overview Embed a tree that provides a single unique default path to each destination: • Bridges designate ports over which they will or will not forward frames • By removing ports, networks is reduced to a tree • Addresses the broadcast storm; but tree is not resilient • When switch/link fails, rerun protocol to converge to new tree

  2. Distributed Spanning Tree Algorithm • Bridge with lowest ID (MAC address) is the “root” – All ports are part of tree • Each bridge finds shortest path to the root. – Remembers port that is on the shortest path

  3. Everyone keeps a simple data structure • (Root, Path Length, Next Hop) • Root: the root of the tree • Path Length: the number of switches you have to go to to reach the root • Next Hop: The switch you should forward packets to for them to reach the root.

  4. Basic Algorithm, if you are a switch • Look at your ID (MAC address). That is your ID. Assume you are the root. Store (Me, 0, Me) in your data structure. • do{ • Tell your neighbors (root, pathLength, yourID) • Listen to your neighbors when they tell you their path to the root. • If their ID number is smaller, replace root/path with their root/path, incrementing PathLength by one • If their ID number is the same but their path length is shorter, replace your root/path with theirs, incrementing PathLength by 1 • If neighbor A and neighbor B both tell you the same ID and path length, choose to route through A since A is lower than B. while(I keep getting new updates)

  5. Basic Algorithm, if you are a switch • Now that you know where the root is and how to get it: • Disable all ports that do not • (a) Connect you to the root • (b) Connect someone to you who uses you to get to the root.

  6. 1, 0, 1 5, 0, 5 2, 0, 2 4, 0, 4 1 5 3, 0, 3 2 4 3 Note: these are special control messages which are not broadcast

  7. Things are about to get weird • This is a distributed algorithm • That means that all of the nodes operate on their own time scales, at the same time • This makes it hard to reason about the order things happen in across the whole system • It’s easiest to think about the system just one node at a time.

  8. 1, 0, 1 5, 0, 5 2, 0, 2 4, 0, 4 1 5 3, 0, 3 2 4 3

  9. 1, 0, 1 5, 0, 5 2, 0, 2 4, 0, 4 1 5 3, 0, 3 2 4 3

  10. 2, 0, 2 2

  11. Root node 2, 0, 2 ID for this new route is higher than the current node ID. I should keep my old route. 2 3, 1, 3

  12. 1, 1, 1 Root node 2, 0, 2 ID for this new route is lower than the current node ID. I should update my route! 2

  13. I 1, 1, 1 should tell my neighbors about the change!! 2

  14. 1, 1, 1 1, 2, 2 2 1, 2, 2 1, 2, 2

  15. 1, 0, 1 5, 0, 5 1, 1, 1 4, 0, 4 1 5 3, 0, 3 2 4 3 It’s hard to predict what order things will happen in: everyone is sending and updating at the same time — the only place it is easy to reason about order is at an individual node!

  16. 1, 0, 1 5, 0, 5 1, 1, 1 4, 0, 4 4,1,4 1 5 3, 0, 3 2 4 3

  17. 1, 0, 1 4,1,4 1, 1, 1 4, 0, 4 1 5 3, 0, 3 2 4 3

  18. 1, 0, 1 4,1,4 1, 1, 1 4, 0, 4 4,1,4 1 5 3, 0, 3 2 4 3

  19. 1, 0, 1 1,2,4 1, 1, 1 1,1,1 1 5 1,2,2 2 4 3

  20. What does this mean? 1, 0, 1 1,2,4 1, 1, 1 1,1,1 1 5 1,2,2 2 4 3

  21. Eventually… • We stop receiving “new” updates • We say that the protocol has converged. • Now: remove all links that don’t connect someone on their path to the root node.

  22. What should I remove? 1, 0, 1 1,2,4 1, 1, 1 1,1,1 1 5 1,2,2 2 4 3

  23. What should I remove? 1, 0, 1 1,2,4 1, 1, 1 1,1,1 1 5 1,2,2 2 4 3

  24. Let’s try it now • Your node ID is your full name. • Your neighbors are your neighbors. • Quiet down when you think you have converged.

  25. Who is the root?

  26. Broadcast Network w/ Trade-Offs Learning Switches and Broadcast Network w/ Spanning Tree Learning Switches If there is a route, the Need to recompute Resilience packet will reach dest! spanning tree if failure Resilience : the ability to provide and maintain an acceptable level of service in the face of faults and challenges to normal operation

  27. Broadcast Network w/ Trade-Offs Learning Switches and Broadcast Network w/ Spanning Tree Learning Switches If there is a route, the Need to recompute Resilience packet will reach dest! spanning tree if failure Fully Distributed Yes Yes Fully Distributed: does not assume the previous existence of a central coordinator.

  28. Broadcast Network w/ Trade-Offs Learning Switches and Broadcast Network w/ Spanning Tree Learning Switches If there is a route, the Need to recompute Resilience packet will reach dest! spanning tree if failure Fully Distributed Yes Yes Learning Switch: Learning Switch: State per Node O(#nodes) O(#nodes) + Path to Root: O(constant) State: The amount of memory each node uses

  29. Broadcast Network w/ Trade-Offs Learning Switches and Broadcast Network w/ Spanning Tree Learning Switches If there is a route, the Need to recompute Resilience packet will reach dest! spanning tree if failure Fully Distributed Yes Yes We will only talk about convergence in “big picture” terms — but analyzing convergence for routing protocols and other distributed algorithms Learning Switch: Learning Switch: State per Node is a fascinating area of theoretical computer O(#nodes) O(#nodes) + Path to science. If you’re curious about this stuff, take a Root: O(constant) class from Prof. Haeupler Need to run spanning Convergence No setup time at all! tree protocol before routing Convergence: the process of routers/switches agreeing on optimal routes for forwarding packets and thereby completing the updating of their routing table

  30. Broadcast Network w/ Trade-Offs Learning Switches and Broadcast Network w/ Spanning Tree Learning Switches If there is a route, the Need to recompute Resilience packet will reach dest! spanning tree if failure Fully Distributed Yes Yes Do the packets go where they Learning Switch: Learning Switch: State per Node O(#nodes) need to get efficiently — without O(#nodes) + Path to Root: O(constant) wasting resources at switches? Need to run spanning Convergence No setup time at all! tree protocol before routing Still sends new Routing Efficiency Broadcast Storms connections everywhere.

  31. Broadcast Network w/ Trade-Offs Learning Switches and Broadcast Network w/ Spanning Tree Learning Switches If there is a route, the Need to recompute Resilience packet will reach dest! spanning tree if failure We know Fully Distributed Yes Yes packets will Learning Switch: reach their Learning Switch: State per Node O(#nodes) O(#nodes) + Path to destination… Root: O(constant) but do they take the Need to run spanning Convergence No setup time at all! tree protocol before shortest path to routing get there? Still sends new Routing Efficiency Broadcast Storms connections everywhere. Shortest Path? Not Necessarily… Not Necessarily…

  32. What if 3 wants to communicate with 4? What if 5 wants to communicate with 3? 1, 0, 1 1,2,4 1, 1, 1 1,1,1 1 5 1,2,2 2 4 3

  33. Time check…

  34. Real World • We only use broadcast routing in very small networks. • One rack in the machine room. • A wing of one floor in GHC. • To orchestrate the bigger network — across campus — we use other algorithms. • Why do you think that is?

  35. Broadcast Network w/ Distance Vector Learning Switches and Broadcast Network w/ e.g RIP Spanning Tree Learning Switches If there is a route, the Need to recompute Resilience packet will reach dest! spanning tree if failure Fully Distributed Yes Yes Learning Switch: Learning Switch: State per Node O(#nodes) O(#nodes) + Path to Root: O(constant) Need to run spanning Convergence No setup time at all! tree protocol before routing Still sends new Packets sent directly to Routing Efficiency Broadcast Storms connections everywhere. their destination. Shortest Path? Not Necessarily… Not Necessarily… Yes

  36. Recall: Spanning Tree There is exactly one node that every does have the shortest path to. 1, 0, 1 1,2,4 1, 1, 1 1,1,1 1 5 1,2,2 2 4 3

  37. How Distance-Vector (DV) Works Each router maintains its shortest distance to every destination via each of Neighbor its neighbors (next-hop) A’s Route Table via B viaC A to B Destinations to C dist C (A, D): shortest 
 to D distance from A to D via C Each router computes its shortest distance to every destination via any of its neighbors

  38. How Distance-Vector (DV) Works B D A C

  39. How Distance-Vector (DV) Works Each router maintains its shortest distance to every destination via each of its neighbors A’s Route Table via B viaC A to B 1 to C 1 to D Each router computes its shortest distance to every destination via any of its neighbors

  40. How Distance-Vector (DV) Works B 1 ms 3 ms D A 3 ms 2 ms 1 ms C Link distance doesn’t have to be 1! Could be some other value — e.g., latency of the link

Recommend


More recommend