1 10. DNS, HTTP, Unix Socket Programming DNS (Domain Name Service) Domain Name Name Resolution HTTP (Hyper Text Transfer Protocol) Request Response Persistent Connection Socket Programming API
2 DNS Overview Attributes of an object –name –address –itself Name space –defines set of possible names –consists of a set of name to value bindings
3 Properties Names versus addresses Location transparent versus location-dependent Flat versus hierarchical Global versus local Absolute versus relative Unique versus ambiguous
4 Examples Hosts cheltenham.cs.princeton.edu :23:A8:33:5B:9F Files /usr/llp/tmp/foo (server, fileid) Users Larry Peterson
5 Examples (cont) Mailboxes Services nearby ps printer with short queue and 2MB Name server Mail program User TCP IP 2 cs.princeton.edu cs.princeton.edu
6 Domain Naming System Hierarchy Name chinstrap.cs.princeton.edu
7 Name Servers Partition hierarchy into zones 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 … … Each zone implemented by two or more name servers
8 Resource Records Each name server maintains a collection of resource records (Name, Value, Type, Class, TTL) Name/Value: not necessarily host names to IP addresses Type –NS: Value gives domain name for host running name server that knows how to resolve names within specified domain. –CNAME: Value gives canonical name for particle host; used to define aliases. –MX: Value gives domain name for host running mail server that accepts messages for specified domain. Class: allow other entities to define types TTL: how long the resource record is valid
9 Root Server (princeton.edu, cit.princeton.edu, NS, IN) (cit.princeton.edu, , A, IN) (cisco.com, thumper.cisco.com, NS, IN) (thumper.ciscoe.com, , A, IN) …
10 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) (venus.physics.princeton.edu, , A, IN)
11 CS Server (cs.princeton.edu, optima.cs.princeton.edu, MX, IN) (cheltenham.cs.princeton.edu, , A, IN) (che.cs.princeton.edu, cheltenham.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)
12 Name Resolution Strategies –iterative –recursive Local server –need to know root at only one place (not each host) –site-wide cache 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,
13 HTTP Message format: Request START_LINE MESSAGE_HEADER MESSAGE_BODY GET HTTP/1.0http:// GET /index.html HTTP/1.1 Host:
14 HTTP Methods in Request –GET: retrieve document –HEAD: retrieve meta-information –POST: give information to server –PUT: store document under specified URL –DELETE: delete specified URL –TRACE: loopback request message –CONNECT: for use by proxies –OPTIONS: request information about available options
15 HTTP Response HTTP/ Not Found HTTP/ OK Server: Netscape-Enterprise/4.1 Date: … Expires: … CONTENTS of the FILE
16 HTTP Persistent Connection in HTTP/1.1 –Image files –Cost of TCP connections –Persistent connection: KEEP-ALIVE
17 Socket Programming API Server Side (passive open) –Bind –Listen –Accept –Close Client Side (active open) –Bind –Connect –Close