• • Switching and Forwarding Network Layer Part I Routing & Forwarding: Logical View of a Router Switching and Forwarding – – Generic Router Architecture Forwarding Tables: • Bridges/Layer 2 Switches; VLAN • Routers and Layer 3 Switches Forwarding in Layer 3 (Network Layer) – Network Layer Functions – Network N k Service i Models: M d l VC vs. Datagram D • ATM and IP Datagram Forwarding – IP Addressing • Network vs. host: address blocks, longest prefix matching • Address allocation and DHCP – IP Datagram Forwarding Model and ARP Protocol – IP and ICMP Protocols, IP Fragmentation and Re-assembly 5 A 2 1 3 B 2 D 3 1 C 5 1 E F 2 Readings: Textbook: Chapter 4: Section 4.1; Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 1 IP Addressing: Basics – network part (high order bits) – host part (low order bits) – router router’ss typically have multiple interfaces – host may have multiple interfaces – IP addresses associated with each interface 223.1.1.1 = 11011111 00000001 00000001 00000001 1 3 “Classful” IP Addressing class 77 A 0 network B 10 C 110 D 1110 15 23 31 host network network host multicast address Csci 183/183W/232: Computer Networks point-to-point li k link 223.1.7.1 223.1.8.0 223.1.3.27 223.1.3.1 223.1.3.2 Forwarding and Routing Network Layer Part I 4 • Network portion of address is of arbitrary length • Addresses allocated in contiguous blocks – Number of addresses assigned always power of 2 192.0.0.0 to 223.255.255.255 • Address format: a.b.c.d/x a b c d/x 224.0.0.0 to 239.255.255.255 – x is number of bits in network portion of address network part • 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 Forwarding and Routing Network Layer Part I 223.1.7.0 CIDR: Classless InterDomain Routing 1.0.0.0 to 127.255.255.255 32 bits Csci 183/183W/232: Computer Networks 223.1.9.2 Classless Addressing: CIDR 128.0.0.0 to 191.255.255.255 host 223.1.1.4 223.1.1.3 – device interfaces with same network part of IP 223.1.9.1 address 223.1.8.1 – can physically reach each 223.1.2.6 other without intervening router 223.1.2.1 223.1.2.2 • Dot notation (for ease of human reading) Forwarding and Routing Network Layer Part I 223.1.1.1 • What’s a network ? (from IP address perspective) physical link Csci 183/183W/232: Computer Networks multi-access LAN 223.1.1.2 interface • Interface: connection between host/router and 1 2 • Two-level hierarchy • IP address: 32-bit identifier for host, router 1 Forwarding and Routing Network Layer Part I IP Addressing: Network vs. Host • Globally unique (for “public” IP addresses) 223 Csci 183/183W/232: Computer Networks host part 11001000 00010111 00010000 00000000 200.23.16.0/23 5 Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 6 1 More Examples Representation of Address Blocks Three Address Blocks: First IP address: 11001000 00010111 00010000 00000000 Network mask: 11111111 11111111 11111000 00000000 • “Human Readable” address format: a.b.c.d/x – x is number of bits in network portion of address, the network portion is also called the network prefix • 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 11001000 00010111 00010000 00000000 network mask: 11111111 11111111 11111110 00000000 Forwarding and Routing Network Layer Part I 7 Consider a datagram network using 32-bit host addresses, suppose a router has four links, numbered 0 through 3, and packets are to be forwarded to the link interfaces as follows: Destination Addr Range 11100001 00000000 00000000 00000000 through 11100001 00000000 11111111 11111111 1 11100001 00000001 00000000 00000000 through 11100001 11111111 11111111 11111111 2 O.W. 3 Forwarding and Routing Network Layer Part I 8 Q: How does host get IP address? Link Interface 0 Csci 183/183W/232: Computer Networks Use longest prefix matching! IP Addresses: How to Get One? Another Example 11100000 00000000 00000000 00000000 through 11100000 11111111 11111111 11111111 Example 2: 11001000 00010111 00011000 10101010 First IP address: 11001000 00010111 00011001 00000000 Last IP address: 11001000 00010111 00011111 11111111 what is the network prefix? 11001000 00010111 00011 first IP address of address block: • Example 1: 11001000 00010111 00010110 10100001 First IP address: 11001000 00010111 00011000 00000000 Last IP address: 11001000 00010111 00011000 11111111 what is the network prefix? 11001000 00010111 00011000 network w/ address block: 200.23.16.0/23 Csci 183/183W/232: Computer Networks Given an IP address, which network (or address block) does it belong to? • “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 a server – “plug-and-play” Provide the forwarding table – a table containing the network prefix and the outgoing interface. Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 9 DHCP: Dynamic Host Configuration Protocol Goal: allow host to dynamically obtain its IP address from network DHCP server when it joins network DHCP overview: Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 223.1.1.2 B 223.1.1.4 223.1.2.9 223 1 2 2 223.1.2.2 223.1.3.1 11 10 223.1.2.1 DHCP server 223.1.1.1 223.1.1.3 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 Forwarding and Routing Network Layer Part I DHCP Client-Server Scenario A Can renew its lease on address in use Allows reuse of addresses (only hold address while connected as “on”) Support for mobile users who want to join network (more shortly) – – – – Csci 183/183W/232: Computer Networks Csci 183/183W/232: Computer Networks 223.1.3.27 E 223.1.3.2 Forwarding and Routing Network Layer Part I arriving i i DHCP client needs address in this network 12 2 DHCP Client-Server Scenario DHCP server: 223.1.2.5 DHCP discover IP Addresses: How to Get One? … arriving client Q: How does a network get network part of IP addr? A: gets an allocated portion of its provider ISP’s address space 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 requestt 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 Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 13 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 Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 14 NAT: Network Address Translation IP Addressing: the Last Word... Q: How does an ISP get block of addresses? A: ICANN: Internet Corporation for Assigned Names and Numbers rest of Internet local network (e.g., home network) 10.0.0/24 10.0.0.4 – allocates addresses – manages DNS – assigns domain names, resolves disputes 10.0.0.1 10.0.0.2 138 76 29 7 138.76.29.7 10.0.0.3 All datagrams leaving local network have same single source NAT IP address: 138.76.29.7, different source port numbers Datagrams with source or destination in this network have 10.0.0/24 address for source, destination (as usual) 10.0.0.0/8 has been reserved for private networks! Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 15 NAT: Network Address Translation • Motivation: local network uses just one IP address as far as outside world is concerned: – no need to be allocated range of addresses from ISP: - just one IP address is used for all devices – can change addresses of devices in local network without notifying outside world – can change ISP without changing addresses of devices in local network – devices inside local net not explicitly addressable, visible by outside world (a security plus). Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 17 Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 16 NAT: Network Address Translation Implementation: NAT router must: – outgoing datagrams: replace (source IP address, port #) of every outgoing datagram to (NAT IP address, new port #) . . . remote clients/servers will respond using (NAT IP address, new port #) as destination addr. – remember (in NAT translation table) every (source IP address, address port #) to (NAT IP address, new port #) translation pair – incoming datagrams: replace (NAT IP address, new port #) in dest fields of every incoming datagram with corresponding (source IP address, port #) stored in NAT table Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 18 3 NAT: Network Address Translation NAT translation table WAN side addr LAN side addr 2: NAT router changes datagram source addr from 10.0.0.1, 3345 to 138.76.29.7, 5001, updates table 2 138.76.29.7, 5001 10.0.0.1, 3345 …… …… S: 10.0.0.1, 3345 D: 128.119.40.186, 80 1 S: 138.76.29.7, 5001 D: 128.119.40.186, 80 S: 128.119.40.186, 80 D: 10.0.0.1, 3345 3 10 0 0 1 10.0.0.1 • NAT is controversial: – routers should only process up to layer 3 – violates end-to-end argument 10.0.0.2 • NAT possibility must be taken into account by app designers, eg, P2P applications 4 10.0.0.3 4: NAT router changes datagram dest addr from 138.76.29.7, 5001 to 10.0.0.1, 3345 3: Reply arrives dest. address: 138.76.29.7, 5001 Csci 183/183W/232: Computer Networks • 16-bit port-number field: – 60,000 simultaneous connections with a single LAN-side address! 10.0.0.4 138.76.29.7 S: 128.119.40.186, 80 D: 138.76.29.7, 5001 NAT: Network Address Translation 1: host 10.0.0.1 sends datagram to 128.119.40, 80 Forwarding and Routing Network Layer Part I 19 IP Forwarding & IP/ICMP Protocol – address shortage should instead be solved by IPv6 Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 20 IP Service Model and Datagram Forwarding • Connectionless (datagram-based) – Each datagram carries source and destination • Best-effort delivery (unreliable service) Transport layer: TCP, UDP Network N t k layer – – – – IP protocol •addressing conventions •packet handling conventions Routing protocols •path selection •RIP, OSPF, BGP • Forwarding F r rdin and nd IP address ddr ss routing table – forwarding based on network id ICMP protocol •error reporting •router “signaling” • Delivers packet to the appropriate network • Once on destination network, direct delivery using host id • IP destination-based next-hop forwarding paradigm Data Link layer (Ethernet, WiFi, PPP, …) – Each host/router has IP forwarding table • Entries like <network prefix, next-hop, output interface> Physical Layer (SONET, …) Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 21 IP Datagram Format IP protocol version number header length (32-bit words) “type” of data max number remaining hops (decremented at each router)) 32 bits ver head. type of len service length fragment 16-bit identifier flgs offset time to upper Internet layer live checksum upper layer protocol to deliver payload to how much overhead with TCP? • 20 bytes of TCP • 20 bytes of IP • = 40 bytes + app layer overhead Csci 183/183W/232: Computer Networks 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 Routing Network Layer Part I 22 IP Datagram Forwarding Model for fragmentation/ reassembly forwarding table in A Dest. Net. next router Nhops E.g. timestamp, record route taken, specify list of routers to visit. 223.1.1 223.1.2 223.1.3 IP datagram: misc source dest fields IP addr IP addr 32 bit source IP address data (variable length, typically a TCP or UDP segment) Forwarding and Routing Network Layer Part I total datagram length (bytes) 32 bit destination IP address Options (if any) Csci 183/183W/232: Computer Networks data • datagram remains unchanged, as it travels source to destination • addr fields of interest here A B Csci 183/183W/232: Computer Networks 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 23 223.1.1.4 223.1.1.4 Forwarding and Routing Network Layer Part I 223.1.3.27 E 223.1.3.2 24 4 Forwarding Table Lookup using Longest Prefix Matching IP Forwarding Table 4 billion possible entries! (in reality, far less, but can still have millions of “routes”) Prefix Match forwarding table entry format destination network (1st IP address , network mask ) next-hop (IP address) 11001000 00010111 00010000 00000000, 11111111 11111111 11111000 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 Next Hop 11001000 00010111 00010 11001000 00010111 00011000 11001000 00010111 00011 otherwise link interface Link Interface 200.23.16.1 200.23.25.6 128.30.0.1 0 1 2 3 Examples otherwise 128.30.0.1 Csci 183/183W/232: Computer Networks 25 forwarding table in A Dest. Net. next router Nhops Starting at A, send IP datagram addressed to B: • look up p 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 A B – B and A are directly connected 223.1.1.4 223.1.1.4 1 2 2 Starting at A, given IP datagram addressed to B: 223.1.2.1 frame source, dest address 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.27 223.1.3.1 Forwarding and Routing Network Layer Part I • look up net. address of B, find B on same net. as A • link layer send datagram to B inside link-layer frame 223.1.1.1 223.1.1.2 223.1.1.4 Csci 183/183W/232: Computer Networks 26 IP Datagram Forwarding on Same LAN: Interaction of IP and data link layers IP Forwarding: Destination in Same Net 223.1.1 223.1.2 223.1.3 Which interface? DA: 11001000 00010111 00011000 10101010 3 Forwarding and Routing Network Layer Part I misc data fields 223.1.1.1 223.1.1.3 Which interface? DA: 11001000 00010111 00010110 10100001 E 223.1.3.2 A 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 datagram source, 223.1.3.1 dest address A’s IP addr B’s MAC A’s MAC addr addr B’s IP addr 223.1.2.2 223.1.3.27 E 223.1.3.2 IP payload datagram frame Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 27 Csci 183/183W/232: Computer Networks – 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 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 • MAC flat address ->> portability • used to get IP packets to destination IP network • MAC addressing operations on a LAN: • IP network is “virtual,” actually packet delivery done by the underlying physical networks – Recall how IP datagram forwarding is performed – can move LAN card from one LAN to another – – – – – 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) Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 28 MAC vs. IP Addresses MAC (Physical) Addresses -- Revisited • used to get frames from one interface to another physicallyconnected interface (same physical network, i.e., p2p or LAN) • 48 bit MAC address (for most LANs) Forwarding and Routing Network Layer Part I 29 – 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! Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 30 5 ARP: Address Resolution Protocol ARP Protocol Question: how to determine • Each IP node (host, router) on LAN has ARP table MAC address of B • ARP Table: IP/MAC address knowing B’s IP address? mappings for some LAN nodes < IP address; MAC address; timer> – timer: time after which address mapping will be forgotten (typically 15 min) Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 31 ARP Messages • 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 pp B’s MAC address • Suppose 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 Csci 183/183W/232: Computer Networks • 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 Forwarding and Routing Network Layer Part I 32 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 g the response, p , requester q – updates its table, sets timer • Other nodes upon receiving the ARP request – Refresh the requester entry if already there – No action otherwise (why?) Hardware Address Type: e.g., Ethernet Protocol address Type: e.g., IP Operation: ARP request or ARP response Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I • Some questions to think about: – Shall requester buffer IP datagram while performing ARP? – What shall requester do if never receive any ARP response? 33 Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 34 IP Forwarding: Destination in Diff. Net ARP Operation Illustration 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 223.1.1.1 – A, A E not n t di directly tl attached tt h d • routing table: next hop router to E is 223.1.1.4 • link layer sends datagram to router 223.1.1.4 inside linklayer frame • datagram arrives at 223.1.1.4 • continued….. Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 35 Csci 183/183W/232: Computer Networks B 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 Forwarding and Routing Network Layer Part I 223.1.2.1 223.1.2.9 223.1.2.2 223.1.3.27 E 223.1.3.2 36 6 Forwarding to Another LAN: IP Forwarding: Destination in Diff. Net … forwarding table in router misc data fields 223.1.1.1 223.1.2.3 Dest. Net router Nhops interface 223.1.1 223.1.2 223.1.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 t k as router’s t ’ interface 223.1.2.9 A 1 1 1 223.1.1.4 223.1.2.9 – router, E directly attached B walkthrough: send datagram from A to B via R assume A knows B IP address 223.1.3.27 223.1.1.1 A 223.1.2.1 • 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!) Csci 183/183W/232: Computer Networks - Interaction of IP and Data Link Layer 223.1.1.2 223.1.1.4 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.27 223.1.3.1 • • • 223.1.3.2 Forwarding and Routing Network Layer Part I R E 37 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 Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 38 IP Datagram Format Again A R IP protocol version number header length (bytes) “type” of data B max number remaining hops (decremented at each router)) • 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 Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I how much overhead with TCP? • 20 bytes of TCP • 20 bytes of IP • = 40 bytes + app layer overhead 39 Fields in IP Datagram for fragmentation/ reassembly 32 bit source IP address 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. Forwarding and Routing Network Layer Part I • network links have MTU (maximum transmission unit) - largest possible data gram. – different link types, different MTUs • large IP datagram divided (“f (“fragmented”) d”) within i hi net – one datagram becomes several datagrams – “reassembled” only at final destination – IP header bits used to identify, order related fragments 3-bit priority,e.g, delay, throughput, reliability bits, … Forwarding and Routing Network Layer Part I Csci 183/183W/232: Computer Networks total datagram length (bytes) 40 IP Fragmentation & Reassembly: Why • 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. Csci 183/183W/232: Computer Networks length fragment 16-bit identifier flgs offset time to upper Internet layer live checksum upper layer protocol to deliver payload to • IP protocol version: current version is 4, IPv4, new: IPv6 • Header length: number of 32-bit words in the header • Type of Service: – 32 bits ver head. type of len service 41 Csci 183/183W/232: Computer Networks fragmentation: in: one large datagram out: 3 smaller datagrams reassembly Forwarding and Routing Network Layer Part I 42 7 IP Fragmentation and Reassembly: Exp 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 Example • 4000 byte datagram • MTU = 1500 bytes • 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 • Fragments of IP packet can be further fragmented by other routers along the way to destination ! • Reassembly only done at destination host (why?) length ID fragflag offset =1500 =x =1 =185 length ID fragflag offset =1040 =x =0 =370 – Use IP datagram id, fragment offset, fragment flags. Length Forwarding and Routing Network Layer Part I 43 Csci 183/183W/232: Computer Networks Csci 183/183W/232: Computer Networks Type 0 3 3 3 3 3 3 4 Code 0 0 1 2 3 6 7 0 8 9 10 11 12 0 0 0 0 0 Forwarding and Routing Network Layer Part I description echo reply (ping) dest. network unreachable 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 45 Forwarding and Routing Network Layer Part I 44 ICMP Message Transport & Usage ICMP: Internet Control Message Protocol • used by hosts, routers, gateways to communicate network-level information – 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 One large datagram becomes several smaller datagrams length ID fragflag offset =1500 =x =1 =0 – Fragment offset and Length fields are modified appropriately Csci 183/183W/232: Computer Networks length ID fragflag offset =4000 =x =0 =0 • 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 U (non-error, ( i f informational): ti l) E Examples l – 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 Csci 183/183W/232: Computer Networks Forwarding and Routing Network Layer Part I 46 8