Lecture 14 ICMP: Internet Control Message Protocol r used by hosts, routers, gateways to communication network-level information m error reporting: unreachable host, network, port, protocol m echo request/reply (used by ping) r network-layer “above” IP: m ICMP msgs carried in IP datagrams r ICMP message: type, code plus first 8 bytes of IP datagram causing error Type Code description 0 0 echo reply (ping) 3 0 dest. network unreachable 3 1 dest host unreachable 3 2 dest protocol unreachable 3 3 dest port unreachable 3 6 dest network unknown 3 7 dest host unknown 4 0 source quench (congestion control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header
Lecture 14-2 Routing in the Internet r The Global Internet consists of Autonomous Systems (AS) interconnected with each other: Stub AS: small corporation Multihomed AS: large corporation (no transit) Transit AS: provider r Two level routing: Intra-AS: administrator is responsible for choice RIP: Routing Information Protocol - distance vector OSPF: Open Shortest Path First - link-state EIGRP: Enhanced Internal Gateway Routing Protocol (Cisco proprietary successor for RIP) Inter-AS: unique standard : BGP
Lecture 14-3 Internet AS Hierarchy
Lecture 14-4 RIP ( Routing Info Protocol) r Distance vector type scheme r Included in BSD-UNIX Distribution in 1982 r Distance metric: # of hops (max = 15 hops) r Distance vector: exchanged every 30 sec via a Response Message (also called Advertisement) r Each Advertisement contains up to 25 destination nets
Lecture 14-5 RIP (from perspective of router D) Letters are routers and numbers on links are network addresses r dest net next routernumber of hops to destination r 1A2 r 20B2 r 30B7 r r ….….....
Lecture 14-6 RIP: Link Failure and Recovery r If no advertisement heard after 180 sec, neighbor/link dead r Routes via the neighbor are invalidated; new advertisements sent to neighbors r Neighbors in turn send out new advertisements if their tables changed r Link failure info quickly propagates to entire net r Poison reverse used to prevent ping-pong loops (infinite distance = 16 hops) r Routers can request info about neighbor’s cost r Advertisements are sent via UDP using port #520 as standard IP datagram
Lecture 14-7 rocessing RIP Table processing r RIP routing tables managed by an application process called routed (daemon) r routed is pronounced route-d r The application process is a part of the Unix OS and uses socket programming as we know it r Each routed exchanges information with other routed processes running on other machines r advertisements encapsulated in UDP packets (no reliable delivery required; advertisements are periodically repeated)
Lecture 14-8 RIP Table processing
Lecture 14-9 RIP Table example Destination Gateway Flags Ref Use Interface UH lo U 2 13 fa U le U 2 25 qaa U 3 0 le0 default UG Three attached class C networks (LANs) Router only knows routes to attached LANs Default router used to “go up” Route multicast address: Loopback interface (for debugging)
Lecture OSPF (Open Shortest Path First) r “open”: publicly available r uses the Link State algorithm (ie, LS packet dissemination; topology map at each node; route computation using Dijkstra’s alg) r OSPF advertisement carries one entry per neighbor router r advertisements disseminated to ENTIRE Autonomous System (via flooding)
Lecture Hierarchical OSPF in large domains; thousands of routers OSPF “advanced” features (not in RIP)
Lecture Hierarchical OSPF r Two level hierarchy: local area and backbone r Link state advertisements do not leave respective areas r Nodes in each area have detailed area topology; they only know direction (shortest path) to networks in other areas r Area Border routers “summarize” distances to networks in the area and advertise them to other Area Border routers r Backbone routers run an OSPF routing alg limited to the backbone
Lecture Inter-AS routing
Lecture Why different Intra- and Inter-AS routing ? r Scale: Inter provides an extra level of routing table size and routing update traffic reduction above the Intra layer r Policy: Inter is concerned with policies (which provider we must select/avoid, etc). Intra is contained in a single organization, so, no policy decisions necessary r Performance: Intra is focused on performance metrics; needs to keep costs low. In Inter it is difficult to propagate performance metrics efficiently (latency, privacy etc). Besides, policy related information is more meaningful. We need BOTH!
Lecture Inter-AS routing (cont) r BGP (Border Gateway Protocol): the de facto standard r Path Vector protocol: an extension of Distance Vector r Each Border Gateway broadcasts to neighbors (peers) the entire path (ie, sequence of ASes) to destination (no cost info is sent) r For example, Gwy X may store the following path to destination Z:Path (X,Z) = 102,111,120,…,2012 Path (X,Z) = 102,111,120,…,2012 m Loop Avoidance m Policy Routing
Lecture Inter-AS routing (cont) r Peers exchange BGP messages using TCP (peers are immediate neighbor ASs) r OPEN msg opens TCP connection to peer r UPDATE msg advertises new path (or withdraws old) r KEEPALIVE msg keeps connection alive in absence of UPDATES; it also serves as ACK to an OPEN request r NOTIFICATION msg reports errors in previous msg; also used to close a connection
Lecture Address Management r As Internet grows, we run out of addresses r Solution (a): subnetting. Eg, Class B Host field (16bits) is subdivided into fields r Solution (b): CIDR (Classless Inter Domain Routing): assign block of contiguous Class C addresses to the same organization; these addresses all share a common prefix
Lecture Router Architecture Overview r Router main functions: routing algorithms and protocols processing, switching datagrams from an incoming link to an outgoing link Router Components
Lecture Input and Output Port Processing r Line Termination corresponds to physical layer r Data link processing corresponds to link layer r Usually, copy of routing table is stored at each input port - avoids using one central CPU r Packet dropping occurs at input and output queues
Lecture The switching fabric r Switching via memory, a) by shared memory with processors at ports or b) via CPU & ports as IO devices r Switching via bus, only one packet at time (one bus - (but there are gigabit buses) r Switching via interconnection network - (crossbar) 2N buses for N output and N input ports
Lecture Queuing At Input and Output Ports r Queues build up whenever there is a rate mismatch or blocking. Consider the following scenarios: m Fabric speed is faster than all input ports combined; more datagrams are destined to an output port than other output ports; queuing occurs at output port m Fabric bandwidth is not as fast as all input ports combined; queuing may occur at input queues; m HOL blocking: fabric can deliver datagrams from input ports in parallel, except if datagrams are destined to same output port; in this case datagrams are queued at input queues; there may be queued datagrams that are held behind HOL conflict, even when their output port is available