* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download lecture01-introduction-and-logistics
Point-to-Point Protocol over Ethernet wikipedia , lookup
Dynamic Host Configuration Protocol wikipedia , lookup
Distributed firewall wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
Deep packet inspection wikipedia , lookup
IEEE 802.1aq wikipedia , lookup
List of wireless community networks by region wikipedia , lookup
Computer network wikipedia , lookup
Asynchronous Transfer Mode wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Network tap wikipedia , lookup
Airborne Networking wikipedia , lookup
Internet protocol suite wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Packet switching wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Routing & Switching Umar Kalim Dept. of Communication Systems Engineering [email protected] http://www.niit.edu.pk/~umarkalim 16/03/2007 Spring 2007 Ref: CSci5211 Univ. of Minnesota 1 Agenda Logistics Introduction Spring 2007 2 Who am I? Umar Kalim – Lecturer Department of Communication Systems Engineering R # 15, AB # 3, St # 9 9280439 x 134 http://www.niit.edu.pk/~umarkalim Spring 2007 3 What is “Routing & Switching’ about? Graduate-Level Introductory Networking Course We’ll learn about Fundamental principles and concepts of routing in computer networks How Internet works Introduce some relevant tools used to study networks Attempt hands-on experience Discuss relevant papers Who is it for? CSci, CE or EE graduate students who have some basic understanding of computer networks Spring 2007 4 Reading material Text books: – None Reference books: – Computer Networks: A Systems Approach by Larry L. Peterson. – Kurose and Ross “Computer Networking: A Top-Down Approach Featuring the Internet”, 3rd Edition, 2004. – TCP/IP Illustrated, Volume 1: The Protocols by W. Richard Stevens – W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff, "UNIX Network Programming, Volume I: The Sockets Networking API", 3rd edition, 2003. – TCP/IP Protocol Suite by Behrouz A. Forouzan (3rd Edition) – Computer Networks by Andrew S. Tanenbaum Reference material – Selected publications and standards Spring 2007 5 Logistics & Pre-requisites Lectures & Handouts Computer Networks – Will be available online Office hours: – Tuesday: – 6:00 pm- 7:00 pm Spring 2007 Programming Experience – Java, C, C# or C++ 6 Grading policy Assignments 5% Quizzes 10% Class participation 15% OHT 30% End-term 40% Spring 2007 Assignments – Individual – No late submission Quizzes – Mostly unannounced – Occasionally announced 7 Lets begin! Spring 2007 8 Hubs vs. Bridges vs. Routers Hubs (aka Repeaters): Layer 1 devices – repeat (i.e., regenerate) physical signals don’t understand MAC protocols! LANs connected by hubs belong to same collision domain Bridges (and Layer-2 Switches): Layer 2 devices – store and forward layer-2 frames based on MAC addresses speak and obey MAC protocols bridges segregate LANs into different collision domains Routers (and Layer 3 Switches): Layer 3 devices – store and forward layer-3 packets based on network layer addresses (e.g., IP addresses) rely on data link layer to deliver packets to (directly connected) next hop network layer addresses are logical (i.e. virtual), need to map to MAC addresses for packet delivery Spring 2007 9 Switching and Forwarding Bridges and Routers: store-and forward devices! Function Division: input interfaces (input ports): perform forwarding – need to know to which output ports to send frames/packets – may enqueue packets and perform scheduling switching Fabric: – move frames or packets from input ports to output ports output interfaces (output ports): – may enqueue packets and perform scheduling – Perform MAC to transmit frames/packets to next hop Spring 2007 control plane Generic Switch Architecture 10 Input Port Functions Physical layer: bit-level reception Data link layer: e.g., Ethernet Spring 2007 Decentralized switching: given datagram dest., lookup output port using forwarding table in input port memory goal: complete input port processing at ‘line speed’ queuing: if datagrams arrive faster than forwarding rate into switch fabric 11 Output Ports Buffering required when datagrams arrive from fabric faster than the transmission rate Scheduling discipline chooses among queued datagrams for transmission Spring 2007 12 Generic Switch Architecture Input and output interfaces are connected through a switching fabric (backplane) A backplane can be implemented by – shared memory input interface output interface Interconnection Medium (Backplane) bridges or low capacity routers (e.g., PC-based routers) – shared bus E.g., “low end” routers – point-to-point (switched) interconnection switching fabric high perform switches (e.g., as used in high capacity routers Spring 2007 C RI B RO C 13 Three Types of Switching Fabrics Spring 2007 14 Switching Via Memory First generation routers: traditional computers with switching under direct control of CPU packet copied to system’s memory speed limited by memory bandwidth (2 bus crossings per datagram) Input Port Memory Output Port System Bus Spring 2007 15 Switching Via a Bus datagram from input port memory to output port memory via a shared bus bus contention: switching speed limited by bus bandwidth 1 Gbps bus, Cisco 1900: sufficient speed for access and enterprise routers (not regional or backbone) Spring 2007 16 Switching Via An Interconnection Network overcome bus bandwidth limitations Banyan networks, other interconnection nets initially developed to connect processors in multiprocessor Advanced design: fragmenting datagram into fixed length cells, switch cells through the fabric. Cisco 12000: switches Gbps through the interconnection network Spring 2007 17 More on Bridges/Layer 2 Switches Forwarding: – look up forwarding table using destination MAC address in a layer-2 frame – forwarding table: constructed using “self-learning” algo. “Cut-through” switching optimization – only buffer frame header (for output port lookup) – then forward remaining bits directly – reduced latency, but may forward “bad” packets (why?) Backpressure flow control – input port: 1 Gpbs, output port: 100 Mpbs – buffer can only absorb temporary bursts – send JAM signal on input power when buffer gets too full! Spring 2007 18 A Few Words about VLAN Virtual LAN (VLAN) – defined in IEEE 802.1q – Partition a physical LAN into several “logically separate” LANs reduce broadcast traffic on physical LAN! provide administrative isolation – Extend over a WAN (wide area network), e.g., via layer 2 tunnels (e.g., L2TP, MPLS) over IP-based WANs! Two types: port-based or MAC address-based – each port optionally configured with a VLAN id – inbound packets tagged with this “VLAN” id require change of data frames, carry “VLAN id” tags tagged and untagged frames can co-exist – “VLAN-aware” switches forward on ports part of same VLAN More complex ! - require administrative configuration – static (“manual”) configuration – more for info: google search on “VLAN tutorial” Spring 2007 19 Forwarding in Layer 3 Putting in context What does layer-3 (network layer) do? – deliver packets “hop-by-hop” across a network – rely on layer-2 to deliver between neighboring hops Key Network Layer Functions – Addressing: need a global (logical) addressing scheme – Routing: build “map” of network, find routes, … – Forwarding: actual delivery of packets! Two basic network layer service models – datagram: “connectionless” – virtual circuit (VC): connection-oriented Spring 2007 20 What Does Network Layer Do? End-to-end deliver packet from sending to receiving hosts, “hop-by-hop” thru network – A network-wide concern! – Involves every router, host in the network Compare: – Transport layer between two end hosts – Data link layer application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical over a physical link directly connecting two (or more) hosts Spring 2007 21 Network Layer Functions Addressing – Globally unique address for each routable device Logical address, unlike MAC address (as you’ve seen earlier) – Assigned by network operator Need to map to MAC address (as you’ll see later) Routing: building a “map” of network – Which path to use to forward packets from src to dest Forwarding: delivery of packets hop by hop – From input port to appropriate output port in a router Routing and forwarding depend on network service models: datagram vs. virtual circuit Spring 2007 22 Routing & Forwarding: Logical View of a Router 5 A 2 1 B 2 D Spring 2007 3 3 1 C 5 1 E F 2 23 Network Service Model Q: What service model for “channel” transporting packets from sender to receiver? guaranteed bandwidth? preservation of inter-packet timing (no jitter)? loss-free delivery? in-order delivery? congestion feedback to sender? Spring 2007 The most important abstraction provided by network layer: ? ? ? virtual circuit or datagram? 24 Virtual Circuit vs. Datagram Objective of both: move packets through routers from source to destination Datagram Model: – Routing: determine next hop to each destination a priori – Forwarding: destination address in packet header, used at each hop to look up for next hop routes may change during “session” – analogy: driving, asking directions at every corner gas station, or based on the road signs at every turn Virtual Circuit Model: – Routing: determine a path from source to each destination – “Call” Set-up: fixed path (“virtual circuit”) set up at “call” setup time, remains fixed thru “call” – Data Forwarding: each packet carries “tag” or “label” (virtual circuit id, VCI), which determines next hop – routers maintain ”per-call” state Spring 2007 25 Virtual Circuit Switching Explicit connection setup (and tear-down) phase Subsequence packets follow same circuit Sometimes called connection-oriented model still packet switching, not circuit switching! Analogy: phone call 0 0 3 1 2 Spring 2007 3 11 3 1 Switch 1 Switch 2 2 5 Each switch maintains a VC table 2 0 Switch 3 1 7 3 Host A 0 2 4 Host B 26 Datagram Switching No connection setup phase Each packet forwarded independently Sometimes called connectionless model Host D Analogy: postal system Each switch maintains a forwarding (routing) table 0 3 Host C 2 Host E Sw itch 1 1 Host F 3 2 Sw itch 2 1 0 Host A Host G 1 0 Sw itch 3 Host B 3 2 Host H Spring 2007 27 Forwarding Tables: VC vs. Datagram Virtual Circuit Forwarding Table Datagram Forwarding Table a.k.a. VC (Translation) Table (switch 1, port 2) VC In VC Out Port Out 5 6 … Spring 2007 11 8 … 1 1 … (switch 1) Address A C F G … Port 2 3 1 1 … 28 More on Virtual Circuits “source-to-dest path behaves much like telephone circuit” (but actually over packet network) call setup/teardown for each call before data can flow – need special control protocol: “signaling” – every router on source-dest path maintains “state” (VCI translation table) for each passing call – VCI translation table at routers along the path of a call “weaving together” a “logical connection” for the call link, router resources (bandwidth, buffers) may be reserved and allocated to each VC – to get “circuit-like” performance Spring 2007 29 Virtual Circuit: Signaling Protocols used to setup, maintain teardown VC used in ATM, frame-relay, X.25 used in part of today’s Internet: Multi-Protocol Label Switching (MPLS) operated at “layer 2+1/2” (between data link layer and network layer) for “traffic engineering” purpose application transport 5. Data flow begins network 4. Call connected data link 1. Initiate call physical Spring 2007 6. Receive data application 3. Accept call 2. incoming call transport network data link physical 30 Virtual Circuit Setup/Teardown Call Set-Up: Source: select a path from source to destination – Use routing table (which provides a “map of network”) Source: send VC setup request control (“signaling”) packet – Specify path for the call, and also the (initial) output VCI – perhaps also resources to be reserved, if supported Each router along the path: – Determine output port and choose a (local) output VCI for the call need to ensure that no two distinct VCs leaving the same output port have the same VCI! – Update VCI translation table (“forwarding table”) add an entry, establishing an mapping between incoming VCI & port no. and outgoing VCI & port no. for the call Call Tear-Down: similar, but remove entry instead Spring 2007 31 green call four “calls” going thru the router, each entry corresponding one call purple call blue call orange call VCI translation table (aka “forwarding table”), built at call set-up phase 1 2 3 2 1 1 1 2 During data packet forwarding phase, input VCI is used to look up the table, and is “swapped” w/ output VCI (VCI translation, or “label swapping”) Spring 2007 32 Virtual Circuit: Example “call” from host A to host B along path: host A router 1 router 2 router 3 host B •each router along path maintains an entry for the call in its VCI translation table • the entries piece together a “logical connection” for the call Router 4 0 Router 1 1 3 2 Router 2 2 5 3 1 11 0 Host A 7 0 Router 3 1 3 4 2 Spring 2007 Host B 33 Virtual Circuit Model: Pros and Cons Full RTT for connection setup – before sending first data packet. Setup request carries full destination address – each data packet contains only a small identifier If a switch or a link in a connection fails – new connection needs to be established. Provides opportunity to reserve resources. Spring 2007 34 ATM Networks Study for Reference Spring 2007 35 Datagram Networks: the Internet model no call setup at network layer routers: no state about end-to-end connections – no network-level concept of “connection” packets forwarded using destination host address – packets between same source-dest pair may take different paths, when intermediate routes change! application transport network data link 1. Send data physical Spring 2007 application transport network 2. Receive data data link physical 36 Datagram Model There is no round trip delay waiting for connection setup; a host can send data as soon as it is ready. Source host has no way of knowing if the network is capable of delivering a packet or if the destination host is even up. Since packets are treated independently, it is possible to route around link and node failures. Since every packet must carry the full address of the destination, the overhead per packet is higher than for the connection-oriented model. Spring 2007 37 Network Layer Service Models: Network Architecture Internet Service Model Guarantees ? Congestion Bandwidth Loss Order Timing feedback best effort none ATM CBR ATM VBR ATM ABR ATM UBR constant rate guaranteed rate guaranteed minimum none no no no yes yes yes yes yes yes no yes no no (inferred via loss) no congestion no congestion yes no yes no no Internet model being extended: MPLS, Diffserv Spring 2007 38 Datagram or VC: Why? Internet data exchange among computers – “elastic” service, no strict timing req. “smart” end systems (computers) – can adapt, perform control, error recovery – simple inside network, complexity at “edge” many link types – different characteristics – uniform service difficult Spring 2007 ATM evolved from telephony human conversation: – strict timing, reliability requirements – need for guaranteed service “dumb” end systems – telephones – complexity inside network MPLS evolve from ATM – traffic engineering, fast path restoration (a priori “backup” paths) 39 IP Addressing: Basics Globally unique (for “public” IP addresses) IP address: 32-bit identifier for host, router interface Interface: connection between host/router and physical link – router’s typically have multiple interfaces – host may have multiple interfaces – IP addresses associated with each interface Dot notation (for ease of human reading) 223.1.1.1 = 11011111 00000001 00000001 00000001 223 Spring 2007 1 1 1 40 IP Addressing: Network vs. Host 223.1.1.2 multi-access LAN Two-level hierarchy 223.1.1.1 223.1.1.4 – network part (high order bits) 223.1.1.3 – host part (low order bits) What’s a network ? 223.1.7.0 223.1.9.2 point-to-point (from IP address perspective) link – device interfaces with same network part of IP 223.1.9.1 223.1.7.1 223.1.8.1 223.1.8.0 address – can physically reach each 223.1.2.6 223.1.3.27 other without intervening 223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2 router Spring 2007 41 “Classful” IP Addressing class 77 A 0 network B 10 C 110 D 1110 15 23 31 host network 128.0.0.0 to 191.255.255.255 host network multicast address 1.0.0.0 to 127.255.255.255 host 192.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255 32 bits • Disadvantage: inefficient use of address space, address space exhaustion • e.g., class B net allocated enough addresses for 65K hosts, even if only 2K hosts in that network Spring 2007 42 Classless Addressing: CIDR CIDR: Classless InterDomain Routing Network portion of address is of arbitrary length Addresses allocated in contiguous blocks – Number of addresses assigned always power of 2 Address format: a.b.c.d/x – x is number network of bits in network portion of host part part address 11001000 00010111 00010000 00000000 200.23.16.0/23 Spring 2007 43 Representation of Address Blocks “Human Readable” address format: a.b.c.d/x – x is number of bits in network portion of address machine representation of a network (addr block): using a combination of – first IP of address blocks of the network – network mask ( x “1”’s followed by 32-x “0”’s network w/ address block: 200.23.16.0/23 first IP address of address block: 11001000 00010111 00010000 00000000 network mask: 11111111 11111111 11111110 00000000 Spring 2007 44 More Examples Three Address Blocks: first IP address: 11001000 00010111 00010000 00000000 network mask: 11111111 11111111 11111000 00000000 first IP address: 11001000 00010111 00011000 00000000 network mask: 11001000 00010111 00011000 00000000 first IP address: 11001000 00010111 00011001 00000000 network mask: 11001000 00010111 00011111 11111111 Spring 2007 Given an IP address, which network (or address block) does it belong to? Example 1: 11001000 00010111 00010110 10100001 Example 2: 11001000 00010111 00011000 10101010 Use longest prefix matching! 45 Special IP Addresses Network address: host id = all 0’s Directed broadcast address: host id = all 1’s Local broadcast address: all 1’s Local host address (this computer): all 0’s Loopback address – network id = 127, any host id (e.g. 127.0.0.1) Spring 2007 46 IP Addresses: How to Get One? Q: How does host get IP address? “static” assigned: i.e., hard-coded in a file – Wintel: control-panel->network->configuration>tcp/ip->properties – UNIX: /etc/rc.config Dynamically assigned: using DHCP (Dynamic Host Configuration Protocol) – dynamically get address from as server – “plug-and-play” Spring 2007 47 DHCP: Dynamic Host Configuration Protocol Goal: allow host to dynamically obtain its IP address from network server when it joins network Can renew its lease on address in use Allows reuse of addresses (only hold address while connected an “on” Support for mobile users who want to join network (more shortly) DHCP overview: – host broadcasts “DHCP discover” msg – DHCP server responds with “DHCP offer” msg – host requests IP address: “DHCP request” msg – DHCP server sends address: “DHCP ack” msg Spring 2007 48 DHCP Client-Server Scenario A 223.1.2.1 DHCP server 223.1.1.1 223.1.1.2 B 223.1.1.4 223.1.2.2 223.1.1.3 223.1.3.1 Spring 2007 223.1.2.9 223.1.3.27 223.1.3.2 E arriving DHCP client needs address in this network 49 DHCP Client-Server Scenario DHCP server: 223.1.2.5 DHCP discover arriving client src : 0.0.0.0, 68 dest.: 255.255.255.255,67 yiaddr: 0.0.0.0 transaction ID: 654 DHCP offer src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 654 Lifetime: 3600 secs DHCP request time src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs DHCP ACK src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs Spring 2007 50 IP Addresses: How to Get One? … Q: How does network get network part of IP addr? A: gets allocated portion of its provider ISP’s address space ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20 Organization 0 Organization 1 Organization 2 ... 11001000 00010111 00010000 00000000 11001000 00010111 00010010 00000000 11001000 00010111 00010100 00000000 ….. …. 200.23.16.0/23 200.23.18.0/23 200.23.20.0/23 …. Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23 Spring 2007 51 IP Addressing: the Last Word... Q: How does an ISP get block of addresses? A: ICANN: Internet Corporation for Assigned Names and Numbers – allocates addresses – manages DNS – assigns domain names, resolves disputes Spring 2007 52 IP Forwarding & IP/ICMP Protocol Transport layer: TCP, UDP IP protocol •addressing conventions •packet handling conventions Routing protocols •path selection •RIP, OSPF, BGP Network layer routing table ICMP protocol •error reporting •router “signaling” Data Link layer (Ethernet, WiFi, PPP, …) Physical Layer (SONET, …) Spring 2007 53 IP Service Model and Datagram Forwarding Connectionless (datagram-based) – Each datagram carries source and destination Best-effort delivery (unreliable service) – packets may be lost – packets can be delivered out of order – duplicate copies of a packet may be delivered – packets can be delayed for a long time Forwarding and IP address – forwarding based on network id Delivers packet to the appropriate network Once on destination network, direct delivery using host id IP destination-based next-hop forwarding paradigm – Each host/router has IP forwarding table Entries like <network prefix, next-hop, output interface> – Try out “netstat –rn” command Spring 2007 54 IP Datagram Format IP protocol version number header length (bytes) “type” of data max number remaining hops (decremented at each router) upper layer protocol to deliver payload to how much overhead with TCP? 20 bytes of TCP 20 bytes of IP = 40 bytes + app 32 bits head. type of length ver len service fragment 16-bit identifier flgs offset upper time to Internet layer live checksum 32 bit source IP address total datagram length (bytes) for fragmentation/ reassembly 32 bit destination IP address Options (if any) data (variable length, typically a TCP or UDP segment) E.g. timestamp, record route taken, specify list of routers to visit. layer overhead Spring 2007 55 IP Datagram Forwarding Model forwarding table in A Dest. Net. next router Nhops 223.1.1 223.1.2 223.1.3 IP datagram: misc source dest fields IP addr IP addr data datagram remains unchanged, as it travels source to destination addr fields of interest here A B 223.1.1.1 223.1.1.2 223.1.1.4 223.1.2.1 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.1 Spring 2007 223.1.1.4 223.1.1.4 1 2 2 223.1.3.27 E 223.1.3.2 56 IP Forwarding Table 4 billion possible entries! (in reality, far less, but can still have millions of “routes”) forwarding table entry format destination network (1st IP address , network mask ) next-hop (IP address) link interface 11001000 00010111 00010000 00000000, 200.23.16.1 0 11001000 00010111 00011000 00000000, 11111111 11111111 11111111 00000000 - (direct) 1 11001000 00010111 00011001 00000000, 11111111 11111111 11111000 00000000 200.23.25.6 2 otherwise 128.30.0.1 3 11111111 11111111 11111000 00000000 Spring 2007 57 Forwarding Table Lookup using Longest Prefix Matching Prefix Match 11001000 00010111 00010 11001000 00010111 00011000 11001000 00010111 00011 otherwise Next Hop 200.23.16.1 200.23.25.6 128.30.0.1 Link Interface 0 1 2 3 Examples DA: 11001000 00010111 00010110 10100001 Which interface? DA: 11001000 00010111 00011000 10101010 Which interface? Spring 2007 58 IP Forwarding: Destination in Same Net forwarding table in A Dest. Net. next router Nhops misc data fields 223.1.1.1 223.1.1.3 Starting at A, send IP datagram addressed to B: look up net. address of B in forwarding table find B is on same net. as A link layer will send datagram directly to B inside link-layer frame – B and A are directly connected Spring 2007 223.1.1 223.1.2 223.1.3 A B 223.1.1.4 223.1.1.4 1 2 2 223.1.1.1 223.1.1.2 223.1.1.4 223.1.2.1 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.1 223.1.3.27 E 223.1.3.2 59 IP Datagram Forwarding on Same LAN: Interaction of IP and data link layers Starting at A, given IP datagram addressed to B: A look up net. address of B, find B on same net. as A link layer send datagram to B inside link-layer frame frame source, dest address B’s MAC A’s MAC addr addr 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 B 223.1.1.3 223.1.3.27 datagram source, 223.1.3.1 dest address A’s IP addr B’s IP addr 223.1.2.2 E 223.1.3.2 IP payload datagram frame Spring 2007 60 MAC (Physical) Addresses used to get frames from one interface to another physically-connected interface (same physical network, i.e., p2p or LAN) 48 bit MAC address (for most LANs) – fixed for each adaptor, burned in the adapter ROM – MAC address allocation administered by IEEE 1st bit: 0 unicast, 1 multicast. all 1’s : broadcast MAC flat address -> portability – can move LAN card from one LAN to another MAC addressing operations on a LAN: – each adaptor on the LAN “sees” all frames – accept a frame if dest. MAC address matches its own MAC address – accept all broadcast (MAC= all1’s) frames – accept all frames if set in “promiscuous” mode – can configure to accept certain multicast addresses (first bit = 1) Spring 2007 61 MAC vs. IP Addresses 32-bit IP address: network-layer address, logical – i.e., not bound to any physical device, can be re-assigned IP hierarchical address NOT portable – depends on IP network to which an interface is attached – when move to another IP network, IP address re-assigned used to get IP packets to destination IP network – Recall how IP datagram forwarding is performed IP network is “virtual,” actually packet delivery done by the underlying physical networks – from source host to destination host, hop-by-hop via IP routers – over each link, different link layer protocol used, with its own frame headers, and source and destination MAC addresses Underlying physical networks do not understand IP protocol and datagram format! Spring 2007 62 ARP: Address Resolution Protocol Question: how to determine Each IP node (host, router) MAC address of B on LAN has ARP table knowing B’s IP address? ARP Table: IP/MAC address mappings for some LAN nodes < IP address; MAC address; timer> – timer: time after which address mapping will be forgotten (typically 20 min) Spring 2007 63 ARP Protocol A wants to send datagram to B, and A knows B’s IP address. A looks up B’s MAC address in its ARP table Suppose B’s MAC address is not in A’s ARP table. A broadcasts (why?) ARP query packet, containing B's IP address – all machines on LAN receive ARP query Spring 2007 B receives ARP packet, replies to A with its (B's) MAC address – frame sent to A’s MAC address (unicast) A caches (saves) IP-to-MAC address pair in its ARP table until information becomes old (times out) – soft state: information that times out (goes away) unless refreshed ARP is “plug-and-play”: – nodes create their ARP tables without intervention from net administrator 64 ARP Messages Hardware Address Type: e.g., Ethernet Protocol address Type: e.g., IP Operation: ARP request or ARP response Spring 2007 65 ARP Request & Response Processing The requester broadcasts ARP request The target node unicasts (why?) ARP reply to requester – With its physical address – Adds the requester into its ARP table (why?) On receiving the response, requester – updates its table, sets timer Other nodes upon receiving the ARP request – Refresh the requester entry if already there – No action otherwise (why?) Some questions to think about: – Shall requester buffer IP datagram while performing ARP? – What shall requester do if never receive any ARP response? Spring 2007 66 ARP Operation Illustration Spring 2007 67 IP Forwarding: Destination in Diff. Net misc data fields 223.1.1.1 223.1.2.3 forwarding table in A Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 Starting at A, dest. E: look up network address of E in forwarding table E on different network – A, E not directly attached routing table: next hop router to E is 223.1.1.4 link layer sends datagram to router 223.1.1.4 inside link-layer frame datagram arrives at 223.1.1.4 continued….. Spring 2007 A B 223.1.1.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.1 223.1.2.9 223.1.2.2 223.1.3.27 E 223.1.3.2 68 IP Forwarding: Destination in Diff. Net … misc data fields 223.1.1.1 223.1.2.3 Arriving at 223.1.4, destined for 223.1.2.2 look up network address of E in router’s forwarding table E on same network as router’s interface 223.1.2.9 – router, E directly attached link layer sends datagram to 223.1.2.2 inside link-layer frame via interface 223.1.2.9 datagram arrives at 223.1.2.2!!! (hooray!) Spring 2007 forwarding table in router Dest. Net router Nhops interface 223.1.1 223.1.2 223.1.3 A - 1 1 1 223.1.1.4 223.1.2.9 223.1.3.27 223.1.1.1 223.1.2.1 B 223.1.1.2 223.1.1.4 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.1 223.1.3.27 E 223.1.3.2 69 Forwarding to Another LAN: Interaction of IP and Data Link Layer walkthrough: send datagram from A to B via R assume A knows B IP address A R B Two ARP tables in router R, one for each IP network (LAN) In routing table at source host, find router 111.111.111.110 In ARP table at source, find MAC address E6-E9-00-17-BB-4B, etc Spring 2007 70 A R B A creates datagram with source A, destination B A uses ARP to get R’s MAC address for 111.111.111.110 A creates link-layer frame with R's MAC address as dest, frame contains A-to-B IP datagram A’s data link layer sends frame R’s data link layer receives frame R removes IP datagram from Ethernet frame, sees its destined to B R uses ARP to get B’s physical layer address R creates frame containing A-to-B IP datagram sends to B Spring 2007 71 IP Datagram Format Again IP protocol version number header length (bytes) “type” of data max number remaining hops (decremented at each router) upper layer protocol to deliver payload to how much overhead with TCP? 20 bytes of TCP 20 bytes of IP = 40 bytes + app 32 bits head. type of length ver len service fragment 16-bit identifier flgs offset upper time to Internet layer live checksum 32 bit source IP address total datagram length (bytes) for fragmentation/ reassembly 32 bit destination IP address Options (if any) data (variable length, typically a TCP or UDP segment) E.g. timestamp, record route taken, specify list of routers to visit. layer overhead Spring 2007 72 Fields in IP Datagram IP protocol version: current version is 4, IPv4, new: IPv6 Header length: number of 32-bit words in the header Type of Service: – 3-bit priority,e.g, delay, throughput, reliability bits, … Total length: including header (maximum 65535 bytes) Identification: all fragments of a packet have same identification Flags: don’t fragment, more fragments Fragment offset: where in the original packet (count in 8 byte units) Time to live: maximum life time of a packet Protocol Type: e.g., ICMP, TCP, UDP etc IP Option: non-default processing, e.g., IP source routing option, etc. Spring 2007 73 IP Fragmentation & Reassembly: Why network links have MTU (max.transfer size) - largest possible link-level frame. – different link types, different MTUs fragmentation: in: one large datagram out: 3 smaller datagrams large IP datagram divided (“fragmented”) within net – one datagram becomes several datagrams – “reassembled” only at final destination – IP header bits used to identify, order related fragments Spring 2007 reassembly 74 IP Fragmentation & Reassembly: How An IP datagram is chopped by a router into smaller pieces if – datagram size is greater than network MTU – Don’t fragment option is not set Each datagram has unique datagram identification – Generated by source hosts – All fragments of a packet carry original datagram id All fragments except the last have more flag set – Fragment offset and Length fields are modified appropriately Fragments of IP packet can be further fragmented by other routers along the way to destination ! Reassembly only done at destination host (why?) – Use IP datagram id, fragment offset, fragment flags. Length – A timer is set when first fragment is received (why?) Spring 2007 75 IP Fragmentation and Reassembly: Exp Example 4000 byte datagram MTU = 1500 bytes length ID fragflag offset =4000 =x =0 =0 One large datagram becomes several smaller datagrams length ID fragflag offset =1500 =x =1 =0 length ID fragflag offset =1500 =x =1 =1480 length ID fragflag offset =1040 =x =0 =2960 Spring 2007 76 ICMP: Internet Control Message Protocol used by hosts, routers, gateways Type Code description to communication network-level 0 0 echo reply (ping) information 3 0 dest. network unreachable – error reporting: unreachable host, network, port, protocol – echo request/reply (used by ping) network-layer “above” IP: – ICMP msgs carried in IP datagrams ICMP message: type, code plus first 8 bytes of IP datagram causing error Spring 2007 3 3 3 3 3 4 1 2 3 6 7 0 8 9 10 11 12 0 0 0 0 0 dest host unreachable dest protocol unreachable dest port unreachable dest network unknown dest host unknown source quench (congestion control - not used) echo request (ping) route advertisement router discovery TTL expired bad IP header 77 ICMP Message Transport & Usage ICMP messages carried in IP datagrams Treated like any other datagrams – But no error message sent if ICMP message causes error Message sent to the source – 8 bytes of the original header included ICMP Usage (non-error, informational): Examples – Testing reachability: ICMP echo request/reply ping – Tracing route to a destination: Time-to-live field traceroute – Path MTU discovery Don’t fragment bit – IP direct (for hosts only): inform hosts of better routes Spring 2007 78 Questions? That’s all for today! Spring 2007 79