Today’s Topics* ICMP DHCP Domain Naming DNS Byte ordering * Based in part on slides by Paul D. Paulson. 1 Error detection IP provides best-effort delivery Internet layer can detect a variety of errors: Checksum TTL expires No route to destination network Can't deliver to destination host (e.g., no ARP reply) Internet layer discards datagrams with certain types of problems 2 ICMP Some types of errors can be detected and reported Internet Control Message Protocol (ICMP) provides error-reporting mechanisms Router sends control message back to source Encapsulated in IP datagram Contains coded information about the type of problem 3 ICMP Header Example Type Code 3 0 = net unreachable 1 = host unreachable 2 = protocol unreachable 3 = port unreachable 4 = fragmentation needed and DF set 5 = source route failed Checksum the 16-bit one's complement of the one's complement sum of the ICMP message starting with the ICMP Type. Original IP Header + 64 bits of Data Datagram IP header is at least 20 bytes. Remainder is used by host to match message to appropriate process. 4 ICMP message types 5 Types of messages Internet Control Message Protocol (ICMP) defines 2 classes of messages error messages informational messages 6 Error message examples Destination unreachable router sends when it determines that a datagram cannot be delivered to its final destination Fragmentation required Router sends when it determines datagram is too large for outbound network Time exceeded message is sent in two cases 1. router sends when the TTL is reduced to zero 2. destination host sends when the reassembly timer expires before all fragments arrive. 7 Informational messages Echo request/reply Sent to ICMP software on any computer In response to a request, the ICMP software is required to send an ICMP echo reply message. Address mask request/reply Broadcast when a host boots Router replies with the mask used in that subnet Router path MTU discovery Distributed path discovery 8 ICMP Applications ping echo traceroute Discovery path, MTU, etc. etc. 9 Reachability An internet host, A, is reachable from another host, B, if datagrams can be delivered from A to B ping program tests reachability - sends datagram from B to A and A echoes it back to B Uses ICMP “echo request” and “echo reply” messages Internet layer includes code to reply to incoming ICMP “echo request” messages • Does not have to go to application layer / port 10 traceroute Uses UDP with TTL field set and sends to a non-existent port Finds route via expanding ring search Sends ICMP “echo” messages with increasing TTL Router that decrements TTL to 0 sends ICMP “time exceeded” ICMP message, with router's address as source address 11 Expanding ring search First datagram TTL = 1 gets to first router is discarded and ICMP “time exceeded” message is returned Next datagram TTL = 2 gets through first router to second router is discarded and ICMP “time exceeded” message is returned Continue until message from destination received 12 ”Path MTU” discovery Fragmentation should be avoided if possible Source can determine path MTU - smallest MTU on path from source to destination Probes path using IP datagrams with don't fragment flag set Router responds with ICMP “fragmentation required” message Source sends smaller probes until destination reached 13 Today’s Topics ICMP DHCP Domain Naming DNS Byte ordering 14 IP addresses: how to get one? Q: How does a host get IP address? hard-coded by system admin in a file Windows: control-panel->network->configuration>tcp/ip->properties UNIX: /etc/rc.config DHCP: Dynamic Host Configuration Protocol: dynamically get address from as server “plug-and-play” 15 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 16 DHCP client-server scenario A B 223.1.2.1 DHCP server 223.1.1.1 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 223.1.3.2 E arriving DHCP client needs address in this network 17 DHCP client-server scenario DHCP server: 223.1.2.5 DHCP discover 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 arriving client yiaddr is “your internet address” 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 18 Today’s Topics ICMP DHCP Domain Naming DNS Byte ordering 19 The need for naming IP assigns 32-bit addresses to host interfaces All applications use IP addresses through the TCP/IP protocol software Binary addresses easy for computers to manage … but difficult for humans to remember: E.G.: telnet 134.82.11.70 20 The Domain Name System The computer needs 32-bit binary addresses Humans "need" mnemonics DNS provides translation between symbolic names and IP addresses 21 Structure of DNS names Each name consists of a sequence of alphanumeric components separated by periods Examples: comcast.com www.oregonstate.edu www.cnn.com classes.engr.oregonstate.edu Note: There is not a correspondence between the DNS name components and the fields of an IP address (dotted decimal notation) 22 Structure of DNS names Names are hierarchical, with most significant component on the right Top-Level Domain (TLD) Second from right is the domain name within the TLD Approved by a global authority 23 Structure of DNS names Other names may be added by the organization that owns the name hierarchical structure Left-most component is computer name NOTE: www does not necessarily imply web services. It’s just a computer name in a domain. 24 Structure of DNS names Organizations apply for names in a TLD. E.G.: oregonstate.edu mozilla.com Organizations determine own internal structure. E.G.: eecs.oregonstate.edu classes.eecs.oregonstate.edu www.mozilla.com en-US.www.mozilla.com 25 Top-level domains (TLD) 26 Geographic structure http://www.iana.org/cctld/cctld-whois.htm TLDs are USA-centric Geographic TLDs (ccTLD) are used for organizations in other countries. Examples: TLD Country .uk United Kingdom .cn China .in India .jp Japan .pg Papua New Guinea .cl Chile .ke Kenya 27 Geographic structure Countries define their own internal hierarchy: .ac.jp and .edu.au are used for academic organizations in Japan and Australia, respectively 28 Internal names Authority for creating new subdomains is delegated to each domain Administrator of oregonstate.edu has authority to create classes.engr.oregonstate.edu does not have to contact any central naming authority 29 Physical location DNS domains are logical concepts and need not correspond to physical location of organizations E.G., chinatoday.com is hosted partly in Beijing, partly in San Francisco Note: some countries sell domain names in their ccTLDs e.g. www.verisign.tv 30 DNS: Domain Name System Internet routers: Use IP addresses to forward/route datagrams (e.g., 123.14.44.2) People: Use names (e.g., www.amazon.com) Question: Domain Name System: distributed database: implemented in hierarchy of many name servers application-layer protocol: running at host, routers, & name servers to resolve names (address/name translation) How to map between IP addresses and name ? Answer: DNS 31 DNS DNS services hostname to IP address translation Web server aliasing Canonical, alias names mail server aliasing Why not centralize DNS? single point of failure traffic volume distant centralized database maintenance doesn’t scale! load distribution replicated Web servers: set of IP addresses for one canonical name 32 Distributed, Hierarchical Database Root DNS Servers com DNS servers yahoo.com DNS servers amazon.com DNS servers org DNS servers pbs.org DNS servers edu DNS servers poly.edu umass.edu DNS servers DNS servers Client wants IP for www.amazon.com; 1st approx: client queries a root server to find com DNS server client queries com DNS server to get amazon.com DNS server client queries amazon.com DNS server to get IP address for www.amazon.com 33 DNS: Root name servers contacted by local name server that can not resolve name a Verisign, Dulles, VA c Cogent, Herndon, VA (also LA) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 21 locations) e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 36 other locations) k RIPE London (also 16 other locations) i Autonomica, Stockholm (plus 28 other locations) m WIDE Tokyo (also Seoul, Paris, SF) 13 root name servers worldwide b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA 34 TLD and Authoritative Servers Top-level domain (TLD) servers: responsible for com, org, net, edu, etc, and all top-level country domains uk, fr, ca, jp. Network Solutions maintains servers for 'com' TLD Authoritative DNS servers: organization’s DNS servers, providing authoritative hostname to IP mappings for organization’s servers (e.g., Web, mail). can be maintained by organization or service provider 35 Local Name Server does not strictly belong to hierarchy each ISP (residential ISP, company, university) has one. also called “default name server” when host makes DNS query, query is sent to its local DNS server acts as proxy, forwards query into hierarchy 36 DNS name resolution example root DNS server iterated query: 2 3 Host at eecs.oregonstate.edu wants IP address for gaia.cs.umass.edu Each server replies with name of server to contact TLD DNS server 4 5 local DNS server dns1.oregonstate.edu 1 8 requesting host 7 6 authoritative DNS server dns.cs.umass.edu eecs.oregonstate.edu gaia.cs.umass.edu 37 DNS name resolution example recursive query: puts burden of 2 name resolution on contacted name server heavy load? root DNS server 3 7 local DNS server dns1.oregonstate.edu 1 6 TLD DNS server 5 4 8 requesting host authoritative DNS server dns.cs.umass.edu eecs.oregonstate.edu gaia.cs.umass.edu 38 DNS: caching and updating records name servers cache mappings as they learn them cache entries timeout (disappear) after some time TLD servers typically cached in local name servers • Thus root name servers not often visited 39 Today’s Topics ICMP DHCP Domain Naming DNS Byte ordering 40 Byte-ordering In all modern computer architectures, strings are stored in contiguous memory addresses in byte (character) order However … storage of numeric values is architecture dependent 16-bit integer (2 bytes) 32-bit integer (4 bytes) etc. Different architectures store numeric values in different byte order 41 Big-endian, Little-endian Big-endian Numeric (multi-byte) values are stored in "normal" byte order • most significant byte first Example: Decimal 1523 = 05F3 (hex) Big-endian byte order is 05 F3 Little-endian Numeric (multi-byte) values are stored in "reverse" byte order • least significant byte first Example: Decimal 1523 = 05F3 (hex) Little-endian byte order is F3 05 NOTE: this refers to byte-order, NOT to the order of bits within the bytes. 42 Big-endian, Little-endian Example: 32-bit dotted-decimal 128.193.35.203 = 80C123CB (hex) Big-endian byte order is 80 C1 23 CB Little-endian byte order is CB 23 C1 80 43 Big-endian, Little-endian Intel architectures use little-endian Sparc, Solaris (and other) architectures use big-endian Problem with communication among various architectures. Data sent over a network is a sequence of bytes (characters, integers, etc.) Network order is always Big-endian 44