Chapter 9 Applications Giving user-friendly names (instead of router-friendly addresses) is often the 1 st application (middleware) implemented on a network. Name space (defines the set of possible/allowable names) Consists of a set of name-to-value bindings (anything we want the naming system to return) Names versus addresses Location transparent versus location-dependent Global versus local Name Resolution mechanism returns a value when invoked with a name (done by a Name Server.) Internet has a hierarchical naming system, DNS (Domain Name System) Previously a central authority, the (Network Info Center) maintained a flat table (hosts.txt); mailed it out to sites every few days. System Administrators installed it on host. Name resolution was local. Properties Name server Mail program User TCP IP 2 cs.princeton.edu cs.princeton.edu Names translated into addresses Hosts: cheltenham.cs.princeton.edu :23:A8:33:5B:9F Files /usr/llp/tmp/foo (server, fileid) Users Larry Peterson Examples: Name: Value: 1. User presents hostname to an applic, MP, eg, embedded in an address or URL) NS MP 2-3. MP engages NS translates to host adr 4-5. MP opens a connection To the host thru TCP (& IP)
Domain Naming System DNS implements a Hierarchical Name Space Read names right-to-left Separated by.’s Visualized as a tree: - inodes are domains - leaves are hosts Hierarchy is partitioned into subtrees called zones (admin authority) Each zone implemented by 2 or more name servers –A name server is a program that can be accessed over the Internet for resource records to translate a name to a value educom princeton … mit csee ux01ux04 physics cisco … yahoonasa … nsfarpa … navyacm … ieee govmilorgnetukfr Root name server Princeton name server Cisco name server CS name server EE name server … … Example of domain hierarchy Domain hierarchy partitioned into zones Hierarchy of name servers Big six Non-US countries Managed by InterNIC doesn’t want responsibility of managing a hierarchy, so they remain in princeton zone
Resource Records and Resolution Each name server maintains a collection of resource records (Name, Value, Type, Class, TTL) Name Value: host IP_addresses (if Type=A) Type specifies how the value is to be interpreted: A:IP-addr; NS:name server that can resolve the name; CNAME:alias; MX: for a mail server Class: allow other entities (not InterNIC=IN) to define types; TTL: how long record is valid Root Server (with TTL ignored) (princeton.edu, cit.princeton.edu, NS, IN) (cit.princeton.edu, , A, IN) (cisco.com, thumper.cisco.com, NS, IN) (thumper.ciscoe.com, , A, IN)… Princeton Server (cs.princeton.edu, optima.cs.princeton.edu, NS, IN) (optima.cs.princeton.edu, , A, IN) (ee.princeton.edu, helios.ee.princeton.edu, NS, IN) (helios.ee.princeton.edu, , A, IN) (jupiter.physics.princeton.edu, , A, IN) (saturn.physics.princeton.edu, , A, IN) (mars.physics.princeton.edu, , A, IN) Root name server Princeton name server Cisco name server CS name server EE name server … … CS Server (cs.princeton.edu, optima.cs.princeton.edu, MX, IN) (cicada.cs.princeton.edu, , A, IN) (cic.cs.princeton.edu, cicada.cs.princeton.edu, CNAME, IN) (optima.cs.princeton.edu, , A, IN) (opt.cs.princeton.edu, optima.cs.princeton.edu, CNAME, IN) (baskerville.cs.princeton.edu, , A, IN) (bas.cs.princeton.edu, baskerville.cs.princeton.edu, CNAME, IN) Root name server Princeton name server CS name server Local name server Client 1 cicada.cs.princeton.edu cicada.cs.princeton.edu princeton.edu, cicada.cs.princeton.edu cicada.cs.princeton.edu, cicada.cs.princeton.edu cs.princeton.edu,