440 likes | 547 Views
Today’s Topics*. ICMP DHCP Domain Naming DNS Byte ordering. * Based in part on slides by Paul D. Paulson. Error detection. IP provides best-effort delivery Internet layer can detect a variety of errors: Checksum TTL expires No route to destination network
E N D
Today’s Topics* • ICMP • DHCP • Domain Naming • DNS • Byte ordering * Based in part on slides by Paul D. Paulson.
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
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
ICMP Header Example • Type3 • Code0 = 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.
Types of messages • Internet Control Message Protocol (ICMP) defines 2 classes of messages • error messages • informational messages
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 • router sends when the TTL is reduced to zero • destination host sends when the reassembly timer expires before all fragments arrive.
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
ICMP Applications • ping • echo • traceroute • Discovery • path, MTU, etc. • etc.
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
traceroute • Uses UDP with TTL field set and sends to a non-existent port • Finds route via expanding ringsearch • 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
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
”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
Today’s Topics • ICMP • DHCP • Domain Naming • DNS • Byte ordering
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”
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
E B A DHCP client-server scenario 223.1.2.1 DHCP 223.1.1.1 server 223.1.1.2 223.1.2.9 223.1.1.4 223.1.2.2 arriving DHCP client needs address in this network 223.1.1.3 223.1.3.27 223.1.3.2 223.1.3.1
DHCP discover src : 0.0.0.0, 68 dest.: 255.255.255.255,67 yiaddr: 0.0.0.0 transaction ID: 654 DHCP client-server scenario arriving client DHCP server: 223.1.2.5 yiaddr is “your internet address” 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 src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs time 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
Today’s Topics • ICMP • DHCP • Domain Naming • DNS • Byte ordering
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
The Domain Name System • The computer needs 32-bit binary addresses • Humans "need" mnemonics • DNS provides translation between symbolic names and IP addresses
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)
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
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.
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
Geographic structurehttp://www.iana.org/cctld/cctld-whois.htm • TLDs are USA-centric • Geographic TLDs (ccTLD) are used for organizations in other countries. Examples:
Geographic structure • Countries define their own internal hierarchy: • .ac.jp and .edu.au are used for academic organizations in Japan and Australia, respectively
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
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
Internet routers: Use IP addresses to forward/route datagrams (e.g., 123.14.44.2) People: Use names (e.g., www.amazon.com) Question: How to map between IP addresses and name ? Answer: DNS Domain Name System: distributed database: implemented in hierarchy of many name servers application-layer protocol: running at host, routers, & name servers to resolvenames (address/name translation) DNS: Domain Name System
Why not centralize DNS? single point of failure traffic volume distant centralized database maintenance doesn’t scale! DNS services hostname to IP address translation Web server aliasing Canonical, alias names mail server aliasing load distribution replicated Web servers: set of IP addresses for one canonical name DNS
Root DNS Servers org DNS servers edu DNS servers com DNS servers poly.edu DNS servers umass.edu DNS servers pbs.org DNS servers yahoo.com DNS servers amazon.com DNS servers Distributed, Hierarchical Database 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
contacted by local name server that can not resolve name DNS: Root name servers k RIPE London (also 16 other locations) 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) iAutonomica, Stockholm (plus 28 other locations) e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 36 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
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
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
Host at eecs.oregonstate.edu wants IP address for gaia.cs.umass.edu local DNS server dns1.oregonstate.edu DNS name resolution exampleiterated query: root DNS server 2 3 TLD DNS server 4 5 6 7 • Each server replies with name of server to contact 1 8 authoritative DNS server dns.cs.umass.edu requesting host eecs.oregonstate.edu gaia.cs.umass.edu
root DNS server 2 3 6 7 TLD DNS server 4 local DNS server dns1.oregonstate.edu 5 1 8 authoritative DNS server dns.cs.umass.edu requesting host eecs.oregonstate.edu gaia.cs.umass.edu DNS name resolution examplerecursive query: • puts burden of name resolution on contacted name server • heavy load?
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 DNS: caching and updating records
Today’s Topics • ICMP • DHCP • Domain Naming • DNS • Byte ordering
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
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.
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
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