1 / 41

CSE 524: Lecture 15

CSE 524: Lecture 15. Application layer (Part 2). Administrative. Homework #5 Due today Programming assignment Due Monday, 12/1 Reading assignment Chapter 2 Due Monday, 11/24 Thanksgiving holiday Lecture on Wednesday 11/26 Potentially optional Who will be here?

villarrealg
Download Presentation

CSE 524: Lecture 15

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE 524: Lecture 15 Application layer (Part 2)

  2. Administrative • Homework #5 • Due today • Programming assignment • Due Monday, 12/1 • Reading assignment Chapter 2 • Due Monday, 11/24 • Thanksgiving holiday • Lecture on Wednesday 11/26 • Potentially optional • Who will be here? • What would you like to hear more about?

  3. Application Layer • So far • Application layer functions • Specific applications • HTTP • Today • More applications • DNS • FTP • SMTP/POP • P2P

  4. AL: Domain Name System (DNS) • Internet hosts, routers like to use fixed length addresses (numbers) • IP address (32 bit) - used for addressing datagrams • Humans like to use names • www.cse.ogi.edu • keywords • DNS, keywords, naming protocols • Map from IP addresses to names • Map from names to IP addresses

  5. AL: Original Name to Address Mapping • Flat namespace • /etc/hosts • SRI kept main copy • Downloaded regularly • Problems • Count of hosts was increasing: machine per domain  machine per user • Many more downloads • Many more updates

  6. AL: Goals for a new naming system • Implement a wide area distributed database • Scalability • Decentralized maintenance • Robustness, fault-tolerance • Global scope • Names mean the same thing everywhere • Don’t need • Atomicity • Strong consistency

  7. AL: Goals for a new naming system Why not centralize DNS? • Single server with all name-to-IP address mappings • single point of failure • traffic volume • distant centralized database (performance) • maintenance • doesn’t scale!

  8. AL: DNS (Domain Name System) • http://www.rfc-editor.org/rfc/rfc1034.txt • http://www.rfc-editor.org/rfc/rfc1035.txt • distributed database implemented in hierarchy of many name servers • decentralized control and management of data • application-layer protocol used by hosts and name servers • communicate to resolvenames (address/name translation) • core Internet function implemented as application-layer protocol • complexity at network’s “edge” • compare to phone network naming

  9. AL: DNS nutshell solution • Hierarchical canonical name space • www.cse.ogi.edu root edu com uk net org ca ogi bu mit ucb gwu cse ece www

  10. AL: DNS nutshell solution • Authoritative name servers store parts of the database • Names assigned to authoritative name servers • For a host, authority stores that host’s IP address, name • Responds to queries for host’s IP address • Perform name/address translation for that host’s name • Root name server knows authoritative servers for particular subdomains • Hierarchy organizes authoritative name servers • Reserving a domain gives you control of entry in root name server for particular names • DNS hierarchical lookup • Each host has a pointer to a local name server for which to query for unknown names • Each local name server knows root of hierarchy • Root points to sub-levels, sub-levels point to deeper sub-levels, … , deeper sub-levels point to leaf name server representing authority for unknown name

  11. AL: DNS nutshell figure Root name servers: may not know authoratiative name server may know intermediate name server: who to contact to find authoritative name server multiple root name servers for fault-tolerance Example: surf.eurecom.fr wants to talk to gaia.cs.umass.edu contact local dns server local dns contacts root root contacts authoritative (or next level to authoritative) local name server dns.eurecom.fr intermediate name server dns.umass.edu root name server 6 2 3 7 5 4 1 8 authoritative name server dns.cs.umass.edu requesting host surf.eurecom.fr gaia.cs.umass.edu

  12. AL: DNS: Root name servers contacted by local name server that can not resolve any part of the name root name server: contacts authoritative name server if name mapping not known gets mapping returns mapping to local name server a NSI Herndon, VA c PSInet Herndon, VA d U Maryland College Park, MD g DISA Vienna, VA h ARL Aberdeen, MD j NSI (TBD) Herndon, VA k RIPE London i NORDUnet Stockholm m WIDE Tokyo e NASA Mt View, CA f Internet Software C. Palo Alto, CA b USC-ISI Marina del Rey, CA l ICANN Marina del Rey, CA 13 root name servers worldwide (all that fit in a 512 octet SOA record)

  13. AL: DNS server name database • DB contains tuples called resource records (RRs) • RR contains type, class and application data • Before types added, only one record type (A) • Classes = Internet (IN), Chaosnet (CH), etc. • Each class defines types, e.g. for IN: • A = address • NS = name server • CNAME = canonical name (for aliasing) • HINFO = CPU/OS info • MX = mail exchange • PTR = pointer for reverse mapping of address to name • nslookup example

  14. AL: DNS MX record type • MX records point to mail exchanger for a name • E.g. mail.acm.org is MX for acm.org • Addition of MX record type proved to be a challenge • How to get mail programs to lookup MX record for mail delivery rather than A record? • Needed critical mass of such mailers

  15. AL: DNS record types Resource records (RR) and their types Type=NS name is domain (e.g. foo.com) value is IP address of authoritative name server for this domain RR format: (name, value, type,ttl) • Type=CNAME • name is an alias name for some “cannonical” (the real) name • value is cannonical name • Type=A • name is hostname • value is IP address • Type=MX • value is hostname of mailserver associated with name

  16. AL: DNS server database distribution • Administrative hierarchy • Organized into regions known as “zones” • “.” as separator • zone = contiguous section of name space • Zones created by convincing owner node to delegate a subzone • umass.edu zone delegates cs.umass.edu to a different set of authoritative name servers • Each zone contains multiple redundant servers • Primary (master) name server updated manually • Secondary (redundant) servers updated by zone transfer of name space • Provides fault-tolerance within zone • Host name to address section • Top-level domains  edu, gov, ca, us, etc. • Sub-domains = subtrees • Human readable name = leaf  root path

  17. AL: DNS client lookups • Each host has a resolver • Typically a library that applications can link gethostbyname() • Local name servers hand-configured (e.g. /etc/resolv.conf) or automatically configured (DHCP) • Can specify a file /etc/hosts • Can specify a name server by its IP address (i.e. 129.95.50.2) • Host queries local name server for unknown names • Name servers • Configured with well-known root servers • Currently {a-m}.root-servers.net • Local servers • Typically answer queries about local zone • Typically do a lookup of distant host names for local hosts

  18. AL: Lookup Methods • Recursive queries • Server goes out and searches for more info on behalf of the client (recursive) • Only returns final answer or “not found” • Puts burden of name resolution on contacted name server • Heavy load? • Root server implosion • Iterative • Server responds with as much as it knows (i.e. name of server to contact next) • “I don’t know this name, but ask this server” • Client iteratively queries additional servers

  19. AL: All recursive DNS example host surf.eurecom.fr wants IP address of gaia.cs.umass.edu 1. Contacts its local DNS server, dns.eurecom.fr 2.dns.eurecom.fr contacts root name server, if necessary 3. root name server contacts authoritative name server, dns.umass.edu, if necessary local name server dns.eurecom.fr root name server 2 4 3 5 authorititive name server dns.umass.edu 1 6 requesting host surf.eurecom.fr gaia.cs.umass.edu

  20. AL: DNS: iterated queries recursive query: puts burden of name resolution on contacted name server heavy load? root servers now disable recursive queries (RFC 2010) iterated query: contacted server replies with name of server to contact “I don’t know this name, but ask this server” local name server dns.eurecom.fr intermediate name server dns.umass.edu root name server iterated query 2 3 4 7 5 6 1 8 authoritative name server dns.cs.umass.edu requesting host surf.eurecom.fr gaia.cs.umass.edu

  21. AL: Typical Resolution • Client does recursive request to local name server • Local name server does iterative requests to find name • Local name server has knowledge of root servers • Steps for resolving www.ogi.edu • Application calls gethostbyname() • Resolver contacts local name server (S1) • S1 queries root server (S2) for (www.ogi.edu) • S2 returns NS record for ogi.edu (S3) • S1 queries S3 for www.ogi.edu • S3 returns A record for www.ogi.edu • Can return multiple addresses  what does this mean? • nslookup, named example • iterative query with tcpdump

  22. AL: DNS Caching • DNS responses are cached • Quick response for repeated translations • Other queries may reuse some parts of lookup • NS records for domains • DNS negative queries are also cached • Don’t have to repeat past mistakes • E.g. misspellings • Cached data periodically times out • Soft state • Lifetime (TTL) of data controlled by owner of data • TTL passed with every record • TTL affects DNS-based load balancing techniques • update/notify mechanisms under design by IETF • RFC 2136 • http://www.ietf.org/html.charters/dnsind-charter.html

  23. AL: DNS Lookup Example root & edu DNS server www.cse.ogi.edu www.cse.ogi.edu NS ogi.edu ogi.edu DNS server Local DNS server NS cs.ogi.edu Client cse.ogi.edu DNS server www=IPaddr

  24. AL: Subsequent Lookup Example cse.ogi.edu entry cached root & edu DNS server ftp.cse.ogi.edu ogi.edu DNS server Local DNS server Client ftp.cse.ogi.edu cse.ogi.edu DNS server ftp=IPaddr

  25. AL: A word about iterated queries and caching • Recall • Recursive query to local DNS server • Iterative query from local DNS server on • Why not do iterative queries from host? • Win2k client • Does iterative queries from host • Caching implications?

  26. AL: DNS/nslookup example • Real example using nslookup and named • Shows iterative • Shows root name servers • Shows recursive • Shows negative caching • nslookup • Set iterative • Lookup bogus name • Get list of root servers • Set recursive • Lookup same bogus name • Get negative response • Set iterative • Lookup bogus name • Get negative response

  27. AL: DNS protocol, messages DNS protocol :queryand repy messages, both with same message format msg header • identification: 16 bit # for query, repy to query uses same # • flags: • query or reply • recursion desired • recursion available • reply is authoritative

  28. AL: DNS protocol, messages Name, type fields for a query RRs in reponse to query records for authoritative servers additional “helpful” info that may be used

  29. AL: DNS issues • Poor static configuration (root server list) • Lack of exponential backoff • No centralized caching per site • Each machine runs on caching local server • UDP used for queries • Need reliability  Why not TCP? • Vulnerability of 13 TLD servers • See past year

  30. AL: Electronic Mail Three major components: user agents mail servers simple mail transfer protocol: smtp User Agent a.k.a. “mail reader” composing, editing, reading mail messages e.g., Eudora, Outlook, elm, Netscape Messenger outgoing, incoming messages stored on server user agent user agent user agent user agent user agent user agent SMTP SMTP SMTP mail server mail server mail server outgoing message queue user mailbox

  31. AL: Electronic Mail: mail servers Mail Servers mailbox contains incoming messages (yet to be read) for user message queue of outgoing (to be sent) mail messages smtp protocol between mail servers to send email messages client: sending mail server “server”: receiving mail server user agent user agent user agent user agent user agent user agent SMTP SMTP SMTP mail server mail server mail server

  32. AL: Electronic Mail: smtp [RFC 821] uses tcp to reliably transfer email msg from client to server, port 25 direct transfer: sending server to receiving server relay: intermediate server transfer three phases of transfer handshaking (greeting) transfer of messages closure command/response interaction commands: ASCII text response: status code and phrase

  33. AL: Sample smtp interaction S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection

  34. AL: try smtp interaction for yourself: • telnet servername 25 • see 220 reply from server • enter HELO, MAIL FROM, RCPT TO, DATA, QUIT commands above lets you send email without using email client (reader)

  35. AL: smtp: final words smtp uses persistent connections smtp requires that message (header & body) be in 7-bit ascii certain character strings are not permitted in message (e.g., CRLF.CRLF). Thus message has to be encoded (usually into either base-64 or quoted printable) smtp server uses CRLF.CRLF to determine end of message Comparison with http http: pull email: push both have ASCII command/response interaction, status codes http: each object is encapsulated in its own response message smtp: multiple objects message sent in a multipart message

  36. AL: Mail message format smtp: protocol for exchanging email msgs RFC 822: standard for text message format: header lines, e.g., To: From: Subject: differentfrom smtp commands! body the “message”, ASCII characters only header blank line body

  37. AL: Message format: multimedia extensions MIME: multimedia mail extension, RFC 2045, 2056 additional lines in msg header declare MIME content type From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data MIME version method used to encode data multimedia data type, subtype, parameter declaration encoded data

  38. AL: MIME typesContent-Type: type/subtype; parameters Text example subtypes: plain, html Image example subtypes: jpeg, gif Audio exampe subtypes: basic (8-bit mu-law encoded), 32kadpcm (32 kbps coding) Video example subtypes: mpeg, quicktime Application other data that must be processed by reader before “viewable” example subtypes: msword, octet-stream

  39. AL: Multipart Type From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data --98766789--

  40. AL: Mail access protocols Mail delivery/transfer protocol SMTP Mail access protocol: retrieval from server POP: Post Office Protocol [RFC 1939] authorization (agent <-->server) and download IMAP: Internet Mail Access Protocol [RFC 1730] more features (more complex) manipulation of stored msgs on server HTTP: Hotmail , Yahoo! Mail, Horde/IMP etc. user agent user agent user agent user agent sender’s mail server SMTP SMTP SMTP POP3 or IMAP receiver’s mail server POP3 or IMAP web server web server HTTP HTTP

  41. AL: POP3 protocol authorization phase client commands: user: declare username pass: password server responses +OK -ERR transaction phase, client: list: list message numbers top: get head of message retr: retrieve message by number dele: delete quit S: +OK POP3 server ready C: user alice S: +OK C: pass hungry S: +OK user successfully logged on C: list S: 1 498 S: 2 912 S: . C: retr 1 S: <message 1 contents> S: . C: dele 1 C: retr 2 S: <message 1 contents> S: . C: dele 2 C: quit S: +OK POP3 server signing off

More Related