116 Views

Download Presentation
## Behind the Plug

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Behind the Plug**0101: How Do I Get There?**A Plethora of Packets**• Whew! • We now have some idea about how the data is actually carried across wires • Protocols • Packets • Sockets • But how do these packets know how to get where they need to go? • It’s like finding your way to the Church… • Where do you turn right, and where do you turn left?**How Do I Get There?**(dog driving)**How Do I Get There?**Routing: Because even dogs need directions sometimes!**How Do I Get There?**• I send a packet from Raleigh to Ashville… • How does the packet know which way to go to get there? • Remember computer networks are just like road networks…**How Do I Get There?**Suppose you’re driving down the road trying to get from Raleigh to Ashville… But the roads don’t have road signs! Which way do I go? When you get to a fork in the road, take it…**How Do I Get There?**We could hire someone to stand at the intersection and tell us which way to go… Remember, packets aren’t smart! There’s no “driver” in a packet.**How Do I Get There?**In the networking world, we call these…**How Do I Get There?**• A router is a specialized computer that… • Connects multiple physical links • Directs packets along the correct link to get to the IP address they’re trying to get to • Great! Problem solved! • Well, not so fast… • How does the guy standing in the intersection —the router— know which way to go? • Does he have to run down to the end of every road to find out?**How Do I Get There?**• This problem is solved in the Internet by routing protocols • Routing protocol rules: • The routing protocol must never build a permanent loop for traffic to follow • The routing protocol must be deterministic • From the outside, I must be able to tell how traffic would flow in the network**How Do I Get There?**• Routing protocol rules (continued) • The routing protocol must adjust dynamically to changes • A change in the connections between routers is called a topology change • When a routing protocol modifies the paths through the network to adjust to topology changes, this is called convergence • Adjustments must be made as close to “real time” as possible**Distance Vector Routing**I’m in Raleigh I can reach Greensboro (80 miles) I can reach Charlotte (180 miles) I can reach Atlanta (430 miles) I can reach Knoxville (410 miles) I’m in Greensboro I can reach Charlotte (100 miles) I can reach Atlanta (350 miles) I can reach Knoxville (330 miles) 250 miles 80 miles I’m in Atlanta 100 miles I’m in Charlotte I can reach Atlanta (250 miles) I can reach Knoxville (230 miles) 230 miles I’m in Knoxville**Distance Vector Routing**I’m in Raleigh I can reach Greensboro (80 miles) I can reach Charlotte (180 miles) I can reach Atlanta (430 miles) I can reach Knoxville (410 miles) I’m in Greensboro I can reach Charlotte (100 miles) I can reach Atlanta (350 miles) I can reach Knoxville (330 miles) 250 miles 80 miles I’m in Atlanta 100 miles My distance to Knoxville is the distance to my friend in Knoxville I’m in Charlotte I can reach Atlanta (250 miles) I can reach Knoxville (230 miles) 230 miles I’m in Knoxville**Distance Vector Routing**I’m in Raleigh I can reach Greensboro (80 miles) I can reach Charlotte (180 miles) I can reach Atlanta (430 miles) I can reach Knoxville (410 miles) I’m in Greensboro I can reach Charlotte (100 miles) I can reach Atlanta (350 miles) I can reach Knoxville (330 miles) 250 miles 80 miles I’m in Atlanta 100 miles My distance to Knoxville is the distance to my friend in Charlotte plus his distance to Knoxville I’m in Charlotte I can reach Atlanta (250 miles) I can reach Knoxville (230 miles) 230 miles I’m in Knoxville**Distance Vector Routing**I’m in Raleigh I can reach Greensboro (80 miles) I can reach Charlotte (180 miles) I can reach Atlanta (430 miles) I can reach Knoxville (410 miles) I’m in Greensboro I can reach Charlotte (100 miles) I can reach Atlanta (350 miles) I can reach Knoxville (330 miles) 250 miles 80 miles I’m in Atlanta 100 miles My distance to Knoxville is the distance to my friend in Greensboro plus his distance to Knoxville I’m in Charlotte I can reach Atlanta (250 miles) I can reach Knoxville (230 miles) 230 miles I’m in Knoxville**Distance Vector Routing**• This is essentially how distance vector routing protocols work • How do I know the path the routing protocol chooses isn’t a loop? • The shortest path can never be a loop • If it were a loop, there would be a shorter path available • This is “simple” geometry**Distance Vector Routing**• This is “simple” geometry? • The shortest path between two points is a straight line • In the absence of a straight line, the shortest path will be the path closest to a straight line • A straight line cannot circle back on itself This is always shorter than this!**Distance Vector Routing**• Bellman-Ford • In the simplest form, this is called Bellman-Ford • Named after the two inventors of the algorithm • Invented by Richard Bellman and Lester Ford in 1958 • Used in the… • Routing Information Protocol (RIP) • Spanning Tree Protocol (STP) –not technically a routing protocol**Distance Vector Routing**• Diffusing Update Algorithm (DUAL) • Invented by JJ Garcia in 1993 • So similar to Bellman-Ford almost everyone confuses the two • Calculates the shortest path in the same way • Calculates a set of alternate loop free paths, as well**Link State Routing**I’m in Greensboro I can reach Charlotte (100 miles) I can reach Raleigh (80 miles) I’m in Raleigh I can reach Greensboro (80 miles) 250 miles 80 miles I’m in Atlanta I can reach Charlotte (250 miles) 100 miles Every router discovers the distance to its friends I’m in Charlotte I can reach Atlanta (250 miles) I can reach Knoxville (230 miles) I can reach Greensboro (80 miles) 230 miles I’m in Knoxville I can reach Charlotte (230 miles)**Link State Routing**I’m in Greensboro I can reach Charlotte (100 miles) I can reach Raleigh (80 miles) I’m in Raleigh I can reach Greensboro (80 miles) 250 miles 80 miles I’m in Atlanta I can reach Charlotte (250 miles) 100 miles I’m in Charlotte I can reach Atlanta (250 miles) I can reach Knoxville (230 miles) I can reach Greensboro (80 miles) 230 miles Run Shortest Path First (SPF) I’m in Knoxville I can reach Charlotte (230 miles)**Link State Routing**I’m in Raleigh I can reach Greensboro (80 miles) I can reach Charlotte (180 miles) I can reach Atlanta (430 miles) I can reach Knoxville (410 miles) I’m in Greensboro I can reach Charlotte (100 miles) I can reach Atlanta (350 miles) I can reach Knoxville (330 miles) 250 miles 80 miles I’m in Atlanta 100 miles I’m in Charlotte I can reach Atlanta (250 miles) I can reach Knoxville (230 miles) 230 miles We wind up with the same information! I’m in Knoxville**The Dijkstra Algorithm**• Dijkstra’s SPF algorithm is not the only SPF algorithm • GPS’ often use a different SPF algorithm • Let’s walk through a Dijsktra calculation in this simple network to understand how it works • You know you want to… 10 A B 10 10 C 30 30 10 10 E D 10**There are two lists**TENT The list of tentative paths Paths under consideration to install in the PATH list PATH The list of known shortest paths The solution The Dijkstra Algorithm A B C E D PATH TENT**Insert paths to connected neighbors on the TENT list**A/B, A/C, A/D are all added to the TENT 10 10 30 The Dijkstra Algorithm A B C E D PATH TENT**Choose the lowest cost link from the TENT and place it on**the PATH A/B and A/C are equal cost, choose one of the two Place link to C on PATH Place all of C’s neighbors to the TENT C/D is added C/E is added C/B is added 10 10 10 10 10 The Dijkstra Algorithm 10 A B C 30 E D PATH TENT**Examine cost to all reachable nodes, and remove higher cost**paths D A/D == 30 A/C/D ==20 A/D is removed B A/B == 10 A/C/B == 20 A/C/B is removed 10 10 30 The Dijkstra Algorithm A B 10 C 10 10 E D PATH TENT**The shortest path on the TENT is now added to the PATH**A/B is added to the PATH 10 10 The Dijkstra Algorithm A B 10 C 10 10 E D PATH TENT**Add B’s neighbors to the TENT**B/C has already been examined, so ignore that one B/E is added Examine cost to all reachable nodes; remove duplicates with a higher cost A/B/E == 40 A/C/D == 20 A/B/E is removed 30 10 The Dijkstra Algorithm 10 A B 10 C 10 E D PATH TENT**The shortest path on the TENT is added to the PATH**A/C/D is added 10 10 The Dijkstra Algorithm 10 A B 10 C 10 E D PATH TENT**Add D’s neighbors to the TENT**D/A has already been considered, so ignore it D/E is added Examine cost to all reachable nodes; remove duplicates with a higher cost A/C/D/E == 30 A/C/E == 20 A/C/D/E is removed 10 10 The Dijkstra Algorithm 10 A B 10 C 10 E D PATH TENT**The shortest path on the TENT is added to the PATH**A/C/E is added The TENT is empty We’re done! Whew! 10 10 The Dijkstra Algorithm 10 A B 10 C 10 E D PATH TENT**Link State Routing**• Link state routing is used in… • Open Shortest Path First (OSPF) • Intermediate System to Intermediate System (IS-IS) • Developed by EdsjarDijkstra in 1956 • Edward Moore developed it independently in 1957 • They didn’t realize they’d overlapped until they both published**Path Vector Routing**• A third algorithm used in routing protocols • But we won’t go into this one in depth here… • Use by “A Border Gateway Protocol” (BGP) • This is the protocol that really connects the Internet together**Routing Concepts**• Two “types” of protocols • Interior Gateway Protocols (IGPs) • Used within a single network • Generally, the bounds of the IGP are contained by the “administrative domain” • In other words, a set of routers which are all owned and managed by the same company • RIP, OSPF, IS-IS, and EIGRP are all IGPs • IGPs are “high trust protocols” • There are very few security capabilities, and almost no policy capabilities • But… they converge very fast**Routing Concepts**• Exterior Gateway Protocols (EGPs) • Also called Interdomain Routing (IDR) • Used to connect networks together • Or rather, to connect administrative domains together • Policy and security oriented • Routing is all based on a specialized form of geometry called graph theory**How Do I Get There?**• Okay, now we’re confused about routing protocols! • But at least we have some idea of how they work… • But what do routing protocols run on? • What does a router look like? • Where are these routers physically located? • And these highways –I still don’t understand those!