1 / 40

Chapter 7: Application layer

Chapter 7: Application layer. Application Layer Domain name system (DNS) Electronic Mail World Wide Web (WWW) Readings Sections 7.1-7.3. Application: communicating, distributed processes running in network hosts in “user space” exchange messages to implement app

nishan
Download Presentation

Chapter 7: Application layer

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. Chapter 7: Application layer • Application Layer • Domain name system (DNS) • Electronic Mail • World Wide Web (WWW) • Readings • Sections 7.1-7.3

  2. Application: communicating, distributed processes running in network hosts in “user space” exchange messages to implement app e.g., email, file transfer, the Web Application-layer protocols one “piece” of an app define messages exchanged by apps and actions taken user services provided by lower layer protocols application transport network data link physical application transport network data link physical application transport network data link physical Applications and application-layer protocols

  3. Typical network app has two pieces: client and server request reply application transport network data link physical application transport network data link physical Client-server paradigm Client: initiates contact with server (“speaks first”) typically requests service from server, for Web, client is implemented in browser; for e-mail, in mail reader Server: provides requested service to client e.g., Web server sends requested Web page, mail server delivers e-mail

  4. Data loss some apps (e.g., audio) can tolerate some loss other apps (e.g., file transfer, telnet) require 100% reliable data transfer Delay some apps (e.g., Internet telephony, interactive games) require low delay to be “effective” What transport service does an app need? Bandwidth some apps (e.g., multimedia) require minimum amount of bandwidth to be “effective” other apps (“elastic apps”) make use of whatever bandwidth they get

  5. Transport service requirements of common apps Time Sensitive no no no yes, 100’s msec yes, few secs yes, 100’s msec yes and no Application file transfer e-mail Web documents real-time audio/video stored audio/video interactive games financial apps Data loss no loss no loss loss-tolerant loss-tolerant loss-tolerant loss-tolerant no loss Bandwidth elastic elastic elastic audio: 5Kb-1Mb video:10Kb-5Mb same as above few Kbps up elastic

  6. Internet apps: their protocols and transport protocols Application layer protocol smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] proprietary (e.g. RealNetworks) NFS proprietary (e.g., Vocaltec) Underlying transport protocol TCP TCP TCP TCP TCP or UDP TCP or UDP typically UDP Application e-mail remote terminal access Web file transfer streaming multimedia remote file server Internet telephony

  7. DNS services Hostname to IP address translation Host aliasing Canonical and alias names Mail server aliasing Load distribution Replicated Web servers: set of IP addresses for one canonical name DNS: Domain Name System

  8. Root DNS Servers` org DNS servers edu DNS servers com DNS servers fsu.edu DNS servers umass.edu DNS servers pbs.org DNS servers yahoo.com DNS servers amazon.com DNS servers Distributed, Hierarchical Database

  9. contacted by local name server that cannot resolve name root name server: contacts authoritative name server if name mapping not known gets mapping returns mapping to local name server a Verisign, Dulles, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 11 locations) k RIPE London (also Amsterdam, Frankfurt) i Autonomica, Stockholm (plus 3 other locations) m WIDE Tokyo e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 17 other locations) b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA DNS: Root name servers 13 root name servers worldwide

  10. TLD and Authoritative Servers • Top-level domain (TLD) servers: responsible for com, org, net, edu, etc, and all top-level country domains cn, ca, fr, jp, uk etc. • Network solutions maintains servers for com TLD • Educause for edu TLD • Authoritative DNS servers: organization’s DNS servers, providing authoritative hostname to IP mappings for organization’s servers (e.g., Web and mail). • Can be maintained by organization or service provider

  11. Local Name Server • Each ISP (residential ISP, company, university) has one. • Also called “default name server” • When a host makes a DNS query, query is sent to its local DNS server • Acts as a proxy, forwards query into hierarchy.

  12. iterated query: contacted server replies with name of server to contact “I don’t know this name, but ask this server” local DNS server dns.poly.edu Iterative Queries root DNS server 2 3 TLD DNS server 4 5 6 7 1 8 authoritative DNS server dns.cs.umass.edu requesting host cis.poly.edu gaia.cs.umass.edu

  13. root DNS server 2 3 6 7 TLD DNS server 4 local DNS server dns.poly.edu 5 1 8 authoritative DNS server dns.cs.umass.edu requesting host cis.poly.edu gaia.cs.umass.edu Recursive queries recursive query: puts burden of name resolution on contacted name server heavy load?

  14. once (any) name server learns mapping, it caches mapping 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

  15. DNS: distributed db storing resource records (RR) Type=NS name is domain (e.g. foo.com) value is IP address of authoritative name server for this domain RR format: (name, ttl, class, type, value DNS records • Type=A • name is hostname • value is IP address • Type=CNAME • name is alias name for some “canonical” (the real) name • www.ibm.com is really • servereast.backup2.ibm.com • value is canonical name • Type=MX • value is name of mail server associated with name

  16. Example: Aix 86400 IN A 192.168.42.2 86400 IN MX 5 aix.unpbook.com. 86400 IN MX 10 mailhost.unpbook.com. Aix-4 86400 IN A 192.168.42.2 ftp 86400 IN CNAME linux.unpbook.com www 86400 IN CNAME linux.unpbook.com • DNS uses UDP to exchange information • Query is initiated from a system call: gethostbyname, gethostbyaddr.

  17. 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., pine, 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 Electronic Mail

  18. 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 Electronic Mail: mail servers

  19. uses tcp to reliably transfer email msg from client to server, port 25 direct transfer: sending server to receiving server three phases of transfer handshaking (greeting) transfer of messages closure command/response interaction commands: ASCII text response: status code and phrase messages must be in 7-bit ASCII Electronic Mail: SMTP [RFC 821]

  20. 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

  21. 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) • The current SMTP-based email system cannot verify the identity of sender • Sender Policy Framework/SenderID proposed to verify if sender mail server is authorized to send email for the sender email address

  22. smtp uses persistent connections keep-alive connections, more than one request-response per TCP/IP connection if there are more messages – they are sent via a persistentTCPconnection 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 smtp: final words

  23. 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 Mail message format header blank line body

  24. MIME: multimedia mail extension, RFC 2045, 2056 Multipurpose Internet Mail Extensions Support for non-ASCII messages, non-textual messages, multipart messages, non-ASCII message headers, etc 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 Message format: multimedia extensions MIME version method used to encode data multimedia data type, subtype, parameter declaration encoded data

  25. Text example subtypes: plain, html Image example subtypes: jpeg, gif Audio example 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 MIME typesContent-Type: type/subtype; parameters

  26. 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--

  27. SMTP: delivery/storage to receiver’s server 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, etc. user agent user agent sender’s mail server SMTP Mail access protocols SMTP POP3 or IMAP receiver’s mail server

  28. authorization phase client commands: user: declare username pass: password server responses +OK -ERR transaction phase, client: list: list message numbers retr: retrieve message by number dele: delete quit POP3 protocol 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

  29. www.someschool.edu/someDept/pic.gif path name host name Web and HTTP First some jargon • Web page consists of objects • Object can be HTML file, JPEG image, Java applet, audio file,… • Web page consists of base HTML-file which includes several referenced objects • Each object is addressable by a URL • Example URL:

  30. HTTP: hypertext transfer protocol Web’s application layer protocol client/server model client: browser that requests, receives, “displays” Web objects server: Web server sends objects in response to requests HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2068 HTTP overview HTTP request PC running Explorer HTTP response HTTP request Server running Apache Web server HTTP response Mac running Navigator

  31. Over TCP: client initiates TCP connection (creates socket) to server, port 80 server accepts TCP connection from client HTTP messages (application-layer protocol messages) exchanged between browser (HTTP client) and Web server (HTTP server) TCP connection closed HTTP overview (continued)

  32. HTTP request message • two types of HTTP messages: request, response • HTTP request message: • ASCII (human-readable format) request line (GET, POST, HEAD commands) GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr (extra carriage return, line feed) header lines Carriage return, line feed indicates end of message

  33. HTTP request message: general format

  34. HTTP response message status line (protocol status code status phrase) HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html data data data data data ... header lines data, e.g., requested HTML file

  35. 1. Telnet to your favorite Web server: Trying out HTTP (client side) for yourself Opens TCP connection to port 80 (default HTTP server port) at www.cs.fsu.edu. Anything typed in sent to port 80 at cis.poly.edu telnet www.cs.fsu.edu 80 • 2. Type in a GET HTTP request: By typing this in (hit carriage return twice), you send this minimal (but complete) GET request to HTTP server GET index.html / HTTP/1.1 Host: www.cs.fsu.edu 3. Look at response message sent by HTTP server!

  36. telnet www.cs.fsu.edu 80 Trying 192.168.23.10... Connected to www.cs.fsu.edu (192.168.23.10). Escape character is '^]'. GET /index.html /HTTP/1.1 Host: www.cs.fsu.edu HTTP/1.1 200 OK Date: Wed, 28 Nov 2007 18:34:29 GMT Server: Apache/2.0.52 (Scientific Linux) Last-Modified: Mon, 29 Aug 2005 18:02:35 GMT ETag: "1defce0-29c5-4cd2a4c0" Accept-Ranges: bytes Content-Length: 10693 Connection: close Content-Type: text/html; charset=ISO-8859-1 <html> <head> <title>Computer Science @ Florida State University</title> <base HREF="http://www.cs.fsu.edu/"> <meta NAME="resource-type" CONTENT="document"> <meta NAME="description" CONTENT="Website for the Computer Science Department at Florida State University"> <meta NAME="keywords" CONTENT="Florida State University, Computer Science, Internet2, CS"> <meta NAME="distribution" CONTENT="global"> <meta NAME="author" CONTENT="Kendal Van Dyke">

  37. HTTP is stateless. two requests are treated independently. Why stateless? What is the problem with a stateless http? E-commence: People buy things by making many requests. Need the ability to bind the requests from the same customer together. Solution: cookies User-server state: cookies

  38. client server usual http request msg usual http response + Set-cookie: 1678 Cookie file Cookie file Cookie file amazon: 1678 ebay: 8734 ebay: 8734 amazon: 1678 ebay: 8734 cookie- specific action usual http request msg cookie: 1678 usual http request msg cookie: 1678 usual http response msg usual http response msg cookie- spectific action Cookies: keeping “state” (cont.) server creates ID 1678 for user entry in backend database access access one week later:

  39. What cookies can bring: authorization shopping carts recommendations user session state (Web e-mail) Cookies (continued) aside • Cookies and privacy: • cookies permit sites to learn a lot about you • you may supply name and e-mail to sites • search engines use redirection & cookies to learn yet more • advertising companies obtain info across sites

  40. Some issues in HTTP: • Mainly due to its popularity • Cache support. • Insufficient in http/1.0, improved in http/1.1 • Intermediate nodes, encoding, etc • Dynamically generated date • Not reliable in http/1.0 • Performance • Persistent or non-persistent TCP connection • Download the whole file or part of a file • User preference • Security

More Related