CMPE 150 – Winter 2009 Lecture 10 February 10, 2009 P.E. Mantey CMPE 150 -- Introduction to Computer Networks Instructor: Patrick Mantey mantey@soe.ucsc.edu http://www.soe.ucsc.edu/~mantey/ Office: Engr. 2 Room 595J Office hours: Tues 3-5 PM, Mon 5-6 PM* TA: Anselm Kia akia@soe.ucsc.edu Web site: http://www.soe.ucsc.edu/classes/cmpe150/Winter09/ Text: Tannenbaum: Computer Networks (4th edition – available in bookstore, etc. ) Syllabus Reading Assignment Thursday, February 12 Chapter 5, sections 5.3, 5.4.1-5.4.3, 5.5 Today’s Agenda Link Layer Bridge Routing Network Layer Functions / IP Routing Text: Chapter 5, sections 5.1, 5.2.1-5.2.8 (pp. 343-370) Internet Layering Level 4 -- Application Layer (rlogin, ftp, SMTP, POP3, IMAP, HTTP..) -- Transport Layer(a.k.a Host-to-Host) Level 3 Level 2 (TCP, UDP, ARP, ICMP, etc.) -- Network Layer (a.k.a. Internet) (IP) -- (Data) Link Layer / MAC sub-layer Level 1 (a.k.a. Network Interface or Network Access Layer) -- Physical Layer Level 5 Bridging (802.x) Fixed Route Bridging Source Route Bridging Transparent Bridging “Plug ‘n Play”: Flooding algorithm Backward Learning Spanning Tree (avoids loops) Ref: http://en.wikipedia.org/wiki/Bridging_%28networking%29 Spanning Tree Approach- Uses: IEEE 802.1 Frame Forwarding Each bridge maintains Forwarding Table List of stations on the “side” of each port Forwards to port and on to LAN corresponding to Table Unless blocked Floods those whose MAC address not in Table Address Learning Spanning Tree Algorithm Address Learning When frame arrives on a port, table records source address as being on that port. (Backward learning) Timer set for each entry Timer expires, entry is deleted Timer reset if new frame gives same info. Spanning Tree Algorithm Algorithm to avoid Loops (not needed if topology is a “tree”) Root of tree is lowest serial number (all bridges broadcast their serial number) Tree constructed from root to every bridge with shortest path Algorithm runs “continually” to detect topology changes (801.1D) http://www.cisco.com/warp/public/473/lan-switch-transparent.swf Network Layer Topics Network Layer (Layer 3) Services for the Transport Layer Uses the Link Layer Datagrams (Packets) Internet Protocol (IP) Addressing (IP Address) Communication challenges Information Audio Video Text Data Images Signals Analog Digital Channels Analog Digital Networks Circuit Datagram Analog - continuously varying value Digital - sequence of symbols from a finite set Network challenge - transmission of information across interconnected channels Circuit - think telephone call Datagram - think telegram First networks Which came first, analog or digital? Digital(!) Signal fires - 1200 BC Optical telegraph - 1791 Electronic telegraph - 1836 First analog telecommunication was telephone - 1875 Telephone network Originally all analog Internal links replaced with digital in 1962 Internal links shared with FDM Allowed sharing with more efficient TDM Circuit-switched Simple, hierarchical (static) topology and routing First done by human operators… …then automatic relays Provide guaranteed Quality-of-Service (QoS) Dedicate resources to each connection Packet-switched networks Defining characteristics Virtual-circuit Data and addressing in packets Statistical multiplexing Dynamic topology and routing X.25 (1974), Frame Relay (1984), ATM (1988) Datagram ARPAnet (1966), Internet (1977) Virtual-circuit networks Generalization of telephone model “Smart net” architecture Compute route on-demand at flow setup Per-flow state in routers Assumes need of resource reservation for some flows Datagram networks Three inventors Defining characteristics Kleinrock (1961) - efficiency Baran (1962) - survivability Davies (1964) - commercial service Controversy over who invented Pre-compute routes to all destinations No per-flow state Assumes best-effort will be good enough ARPAnet First datagram network Modified “smart net” architecture 1966 - project proposed September, 1969 - first “IMP” installed Built on reliable link technology Hop-by-hop reliability, congestion and flow control Some end-to-end flow control (“RFNM”) Much redundant functionality E.g. reliability and flow control Led to the “end-to-end argument” End-to-end argument If a function can completely and correctly be implemented only with the knowledge and help of the application end-points of a communication system, then the function should not be implemented in the communication system itself (although sometimes it may be useful to implement an incomplete version of the function in the communication system as a performance enhancement). J. Saltzer, D. Reed and D. Clark: “End-to-end arguments in system design”, ACM Trans. Comp. Sys., 2(4):277-88, Nov. 1984 The Internet Goal - encourage development of new network technologies Make minimal assumptions about links Attach many computers Transport datagrams Quickly send datagrams to different destinations Best-effort delivery (drop or out of order) “Smart host” architecture End-to-end argument Network layer summary Communication across interconnected channels Two styles: circuit vs packet-switched Packet-switching characteristics Data and addressing in packets Statistical multiplexing Dynamic topology and routing Datagram - pre-compute routes, no flow state VC - on-demand routing, per flow state Datagram vs VC Setup Addressing State Routing Router failure QoS Cong Control Datagram VC No Yes Full source and destination address Virtual Circuit ID All destination Per flow and all destination (why?) Pre-compute On-demand Loss of buffered packets Loss of buffered packets and VC state “Difficult” Easy “Difficult” Easy Network Layer Design Issues Store-and-Forward Packet Switching Providing Services to the Transport Layer Implementation of Connectionless Service Implementation of Connection-Oriented Service Comparison of Virtual-Circuit and Datagram Subnets Routers (or Level 3 Switches) Determing route Run routing algorithms to build table Routing tables determine packet path = output line Forwarding packets Routing Algorithms Attributes of Good algorithms for routing Correct Fair Simple Robust Stable Optimal Routing “Flavors” Non-Adaptive “static” Adaptive “dynamic” Static Algorithms (Non-Adaptive) Shortest-path routing. 2. Flooding. 1. Non-adaptive Routing Fixed routing, static routing. Do not take current state of the network (e.g., load, topology) into decision Routes are computed in advance, off-line, and downloaded to routers when booted. Flooding Algorithm (Static) Every incoming packet forwarded on every outgoing link except the one it arrived on. Problem: duplicates. Constraining the flood: Hop count. Keep track of packets that have been flooded. Robust, shortest delay (picks shortest path as one of the paths). Flooding Stallings Figure 12.4 (hop-count=3) Adaptive Routing Routes change dynamically as function of current state of network. Algorithms vary on how they get routing information, metrics used, and when they change routes. Adaptive Routing Dynamic Routing Algorithms Distance vector routing. Bellman – Ford (or Ford-Fulkerson) Link state routing. Adaptive routing Needed in both datagram and VC networks Based on Shortest-Path algorithms When run in different architectures? Find minimum cost of paths between src and dst Dijkstra - search paths by increasing cost Bellman-Ford - search paths by increasing hop count Dijkstra used for Link-State Bellman-Ford basis of Distance-Vector Optimality Principle General statement about optimal routes (topology, routing algorithm independent). If router J is on optimal path between I and K, then the optimal path from J to K also falls along the same route. Proof by contradiction. Optimality Principle Corollary: Set of optimal routes from all sources to destination form a tree rooted at destination. Sink tree. Shortest Path Routing 1 Dijkstra (1959). Network represented by graph G(V, E), where V is set of nodes and E is set of links connecting nodes. What is “shortest”? Different metrics. Example: number of hops (static), geographic distance (static), delay, bandwidth (raw versus available), combination of a subset of these. Dijkstra’s Shortest Path Nodes labeled with distance to source through best known path. At start, no known paths so all nodes labeled with infinity. As algorithm progresses, nodes are labeled; “tentative” labels may change, while “permanent” labels don’t change. Label made permanent when it’s known to be in the shortest path to source. Dijkstra algorithm Network represented by graph: G(V,E) V contains vertices i,j,… E contains edges (i,j), … Algorithm data structures “s” - source vertex “dij” - cost of the edge (i,j); dij = ∞ if (i,j) E “Di” - cost of the shortest path from s to i “P” - set of routes with final (“permanent”) labels Dijkstra algorithm P = {s} Ds = 0 Dj = dsj for all {j V | j s} Do Di = Min {Dj for all j P} P = P {i} For each {j | (i,j) E, j P} Dj = Min {Dj, Di+dij} Until (|P| = |V|) Dijkstra illustrated B(2,A) 2 A 6 7 2 2 1 E G(6,A) 4 B (2,A) 3 B(2,A) C 3 F 2 2 D 2 H C (9,B) 2 3 3 (4,B) 2 2 (6,E) D A E F 2 6 1 2 G (5,E) 4 H 7 B (2,A) 7 C (9,B) 2 3 3 (4,B) 2 2 A (6,E) D E F 2 6 1 2 H(8,F) G(5,E) 4 A 6 2 1 7 (4,B) 2 E G (6,A) B (2,A) 4 3 C (9,B) 3 D F2 2 H C (9,B) 3 3 2 (4,B) 2 2 (6,E) A D F2 1 E 6 2 G(5,E) 4 H(9,G) 7 B (2,A) 7 C (9,B) 3 2 3 (4,B) 2 2 A (6,E) D(10,H) F 2 1 E 6 2 H(8,F) G(5,E) 4 Distance-Vector protocol Initialize routing table with local links Flood routing table to all routers Do Compute local routing table from graph Wait for update or link cost change or timer Update network graph If link cost change Flood updated link to all routers Else if timer expired Flood routing table to all routers Forever Distance Vector Routing (a) A subnet. (b) Input from A, I, H, K, and the new routing table for J.