Routing: Cores, Peers, and Algorithms Chapter 13 Have looked at: TCP/IP network level services Details of protocols in hosts and routers Assumed routers contain correct routes This chapter asks: What values should routing tables contain? How can those values be obtained? Origin of Routing Tables Router Review – Chap 3 Routers attach to 2 or more physical networks Forward IP datagrams among them Hosts pass all IP traffic to routers Except for destinations on attached networks Datagrams travel from router to router Router system forms internet architectural basis Router Review – Chap 7 IP routing algorithm Uses table to make forwarding decisions Each entry specifies: Network portion of destination address Address of next machine to use to get there Direct delivery Like hosts, routers deliver datagrams directly to destinations on networks to which they are attached Still not said how hosts/routers get the information for their routing tables What values should be there How the values are obtained Establishing routes Generally involves initialization and update Initialization Depends on OS May read an initial table from secondary storage May start empty and use commands (startup script) May deduce some and ask for others Update Must accommodate changes Small and slowly changing internets: Establish and modify by hand Large systems: Must use automated methods Will look at automatic routing table update protocols First look at some underlying ideas Forwarding With Partial Information Hosts usually know little about the network Rely on routers Some only have two routes: Route for local network Default route for nearby router Can routers route with partial information? Yes, but only under certain circumstances Routing tables must be consistent and complete Cannot have central router with all routes A central intersection (star-shaped topology) Cannot have all routes at every router All intersections list all routes to everywhere Third topology Divide space in half Some destinations in west; other destinations in east Single bridge connecting the two halves In east, list local destinations and point to bridge In west, do opposite Original Internet Architecture Initially, ARPANET was Internet backbone Tables installed and managed by hand As it grew, this became unmanageable Original automated architecture: Small, central set of routers Kept information about all possible destinations Larger set of outlying routers Kept partial information and route to a central router Advantage: Local administrators manage change without affecting other parts of the Internet Disadvantage: Potential for inconsistency Error in outlying router makes some destinations unreachable Get inconsistencies from Errors in the algorithms computing routing tables Incorrect data given to the algorithms Errors from transmissions to other routers Want protocols to Detect and correct errors quickly Constrain the effect of errors Core Routers Had two groups: core and noncore routers Noncore had to advertise address to core Cores communicated among themselves Evolved due to building on top of ARPANET Did not lend itself to routing with partial information Figure 13.1 The early Internet core router system viewed as a set of routers that connect local area networks to the ARPANET. Hosts on the local networks pass all nonlocal traffic to the closest core router. Needed to avoid default route inefficiencies Arranged for core routers to exchange info All have complete, optimal routes Core routers did not have default routes “Destination unreachable” if destination not in table Easy to do because all connected to single backbone network This picture illustrates why the early system of core routers did not allow default routes. With default routes, a local router would check for an explicit route and if it did not have one, it would use the default route. To ensure global consistency, the chain of default routes must reach every router in a giant cycle. The sites had to coordinate the default routes, and forwarding could be extremely inefficient. Beyond the Core Architecture NSFNET backbone added new complexity Initially, connection was like any site NSFNET attached to ARPANET via 1 core router Core had explicit routes to all destinations in NSFNET NSFNET routers knew about local destinations Had default route to non-NSFNET traffic via core NSFNET grew Multiple connections between the two were added Became peers Figure 13.2 An example of two peer backbones interconnected by multiple routers. The Internet had such an architecture in 1989. Difficult to route among peer backbones Consider route from Host 3 to Host 2 3 on West Coast; 2 on East Coast Go thru R1and then over ARPANET backbone, or Go thru R2 and then to ARPANET, or Go thru R3 and then to ARPANET, or Up R1, down R2, back up R3 to host!! Usually try to take shortest path Easy to say; hard to implement Optimal forwarding in a peer backbone requires individual routes for individual hosts Managers must agree to consistent routes or get loops Automatic Route Propagation Core routers exchanged information Propagated complete route information Many corporate internets do that Look at two types of algorithms that compute & propagate routing information Later – discuss protocols that use them Routing protocols serve two functions Compute set of shortest paths Respond to failures or topology changes by updating the routing information (dynamic) Distance Vector Routing Also called Bellman-Ford routing Class of algorithms that propagate routing info Simple Router keeps list of all known routes On boot, initializes to entry for each directly connected network Figure 13.3 Periodically, exchange routing tables Sends to routers it can reach directly Updates information If other router knows shorter route If other router lists destination not have an entry for If other router has longer destination for routes used thru it Figure 13.4 Routes thru J will be N+1 Message contains list of pairs (V, D) V identifies destination (called the vector) D is the distance to the destination Ok in completely static environment Poor when routes change rapidly New connections appear; old ones fail Information propagates slowly Discuss further later; ignore problems for now Reliability and Routing Protocols Routing protocols use IP or (mostly) UDP Can lose, delay, duplicate, etc. messages Routing protocol must compensate for failures Several ways Checksums for corruption Loss by soft state or positive ACK with retrans Sequence numbers for out of order delivery Link-State (SPF) Routing Distance-Vector algorithm does not scale Update size proportional to total # of networks Lots of volume due to all routers participation Primary alternative Class of algorithms called Shortest Path First Each participating router must have complete topology information Graph: routers are nodes; networks are edges Edge between nodes only if routers communicate SPF routers perform two tasks (vs sending msgs) Actively tests status of neighbor routers Sends short msg to see if link is up Propagates the link status info to all other routers Not report routes Says if communication possible between pairs of routers Routers update with the link status messages Recompute paths if status changes Use Dijkstra’s shortest path algorithm Each router computes routes independently Use same original link status information Easy to debug Guaranteed to converge (since done locally) Scale better; message size not depend on number of networks Summary Internet must provide globally consistent routing Hosts and most routers have partial info Depend on default routes Originally, used core routers Cores traded information No default routes to prevent loops Core system not work well for peer backbones To exchange info, routers use either: Distance-vector algorithms Perform distributed shortest-path computations May not converge in continually changing environment Update messages grow as number of nets increases SPF Converges due to local computations Scales better since message size not dependent on the number of networks