Chapter 7 Application layer Application Layer Domain name

  • Slides: 40
Download presentation
Chapter 7: Application layer • Application Layer – Domain name system (DNS) – Electronic

Chapter 7: Application layer • Application Layer – Domain name system (DNS) – Electronic Mail – World Wide Web (WWW) • Readings – Sections 7. 1 -7. 3 1

Applications and application-layer protocols Application: communicating, distributed processes – running in network hosts in

Applications and application-layer protocols 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 2

Client-server paradigm Typical network app has two pieces: client and server Client: initiates contact

Client-server paradigm Typical network app has two pieces: client and server 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 application transport network data link physical request reply application transport network data link physical 3

What transport service does an app need? Data loss • • some apps (e.

What transport service does an app need? Data loss • • some apps (e. g. , audio) can tolerate some loss other apps (e. g. , file transfer, telnet) require 100% reliable data transfer Delay • 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 some apps (e. g. , Internet telephony, interactive games) require low delay to be “effective” 4

Transport service requirements of common apps Data loss Bandwidth Time Sensitive file transfer e-mail

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

Internet apps: their protocols and transport protocols Application e-mail remote terminal access Web file

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

DNS: Domain Name System DNS services • Hostname to IP address translation • Host

DNS: Domain Name System 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 7

Distributed, Hierarchical Database Root DNS Servers` com DNS servers yahoo. com amazon. com DNS

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

DNS: Root name servers • • contacted by local name server that cannot resolve

DNS: Root name servers • • 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 k RIPE London (also Amsterdam, g US Do. D Vienna, VA Frankfurt) Stockholm (plus 3 i Autonomica, h ARL Aberdeen, MD other locations) j Verisign, ( 11 locations) 13 root name servers worldwide 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 9

TLD and Authoritative Servers • Top-level domain (TLD) servers: responsible for com, org, net,

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 10

Local Name Server • Each ISP (residential ISP, company, university) has one. – Also

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

root DNS server Iterative Queries 2 4 iterated query: • • contacted server replies

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

Recursive queries root DNS server 2 3 7 recursive query: puts burden of name

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

DNS: caching and updating records • once (any) name server learns mapping, it caches

DNS: caching and updating records • 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 14

DNS records DNS: distributed db storing resource records (RR) RR format: • Type=A name

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

 • Example: Aix 86400 Aix-4 86400 ftp 86400 www 86400 • • IN

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

Electronic Mail user mailbox Three major components: • user agents • mail servers •

Electronic Mail user mailbox 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 outgoing message queue user agent mail server user agent SMTP mail server user agent 17

Electronic Mail: mail servers user agent Mail Servers • mailbox contains incoming messages (yet

Electronic Mail: mail servers user agent 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 SMTP mail server user agent 18

Electronic Mail: SMTP [RFC 821] • uses tcp to reliably transfer email msg from

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 • 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 19

Sample SMTP interaction S: 220 hamburger. edu C: HELO crepes. fr S: 250 Hello

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 20

try smtp interaction for yourself: • telnet servername 25 • see 220 reply from

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/Sender. ID proposed to verify if sender mail server is authorized to send email for the sender email address 21

smtp: final words • smtp uses persistent connections – keep-alive connections, more than one

smtp: final words • 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 persistent TCP connection • smtp requires that message (header & body) be in 7 -bit ascii • certain character strings are not permitted in message (e. g. , CRLF). Thus message has to be encoded (usually into either base-64 or quoted printable) • smtp server uses CRLF to determine end of message 22

Mail message format smtp: protocol for exchanging email msgs RFC 822: standard for text

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

Message format: multimedia extensions • MIME: multimedia mail extension, RFC 2045, 2056 – Multipurpose

Message format: multimedia extensions • 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 MIME version method used to encode data multimedia data type, subtype, parameter declaration encoded data From: alice@crepes. fr To: bob@hamburger. edu Subject: Picture of yummy crepe. MIME-Version: 1. 0 Content-Transfer-Encoding: base 64 Content-Type: image/jpeg base 64 encoded data. . . . . base 64 encoded data 24

MIME types Content-Type: type/subtype; parameters Text • example subtypes: plain, html Image • example

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

Multipart Type From: alice@crepes. fr To: bob@hamburger. edu Subject: Picture of yummy crepe. MIME-Version:

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: base 64 Content-Type: image/jpeg base 64 encoded data. . . . . base 64 encoded data --98766789 -- 26

Mail access protocols SMTP user agent • • SMTP POP 3 or IMAP user

Mail access protocols SMTP user agent • • SMTP POP 3 or IMAP user agent receiver’s mail sender’s mail server 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. 27

POP 3 protocol authorization phase • client commands: – user: declare username – pass:

POP 3 protocol 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 S: C: S: +OK POP 3 server ready user alice +OK pass hungry +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 POP 3 server signing off 28

Web and HTTP First some jargon • Web page consists of objects • Object

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: www. someschool. edu/some. Dept/pic. gif host name path name

HTTP overview HTTP: hypertext transfer protocol • Web’s application layer protocol • client/server model

HTTP overview 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 HT TP req ues PC running HT t TP res Explorer pon se st ue q e r P nse Server T o p running HT es r P T Apache Web HT server Mac running Navigator

HTTP overview (continued) Over TCP: • client initiates TCP connection (creates socket) to server,

HTTP overview (continued) 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 request message • two types of HTTP messages: request, response • HTTP request

HTTP request message • two types of HTTP messages: request, response • HTTP request message: – ASCII (human-readable format) request line (GET, POST, HEAD commands) header lines Carriage return, line feed indicates end of message 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)

HTTP request message: general format

HTTP request message: general format

HTTP response message status line (protocol status code status phrase) header lines data, e.

HTTP response message status line (protocol status code status phrase) header lines data, e. g. , requested HTML file 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. . .

Trying out HTTP (client side) for yourself 1. Telnet to your favorite Web server:

Trying out HTTP (client side) for yourself 1. Telnet to your favorite Web server: telnet www. cs. fsu. edu 80 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 2. Type in a GET HTTP request: GET index. html / HTTP/1. 1 Host: www. cs. fsu. edu By typing this in (hit carriage return twice), you send this minimal (but complete) GET request to HTTP server 3. Look at response message sent by HTTP server!

telnet www. cs. fsu. edu 80 Trying 192. 168. 23. 10. . . Connected

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: "1 defce 0 -29 c 5 -4 cd 2 a 4 c 0" 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, Internet 2, CS"> <meta NAME="distribution" CONTENT="global"> <meta NAME="author" CONTENT="Kendal Van Dyke"> 36

User-server state: cookies • HTTP is stateless. – two requests are treated independently. –

User-server state: cookies • 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

Cookies: keeping “state” (cont. ) client ebay: 8734 Cookie file amazon: 1678 ebay: 8734

Cookies: keeping “state” (cont. ) client ebay: 8734 Cookie file amazon: 1678 ebay: 8734 usual http request msg usual http response + Set-cookie: 1678 usual http request msg cookie: 1678 usual http response msg Cookie file amazon: 1678 ebay: 8734 cookiespecific action ss acce ac ce one week later: e n server da try i tab n b creates ID as ac e ke nd 1678 for user ss Cookie file server usual http request msg cookie: 1678 usual http response msg cookiespectific action

Cookies (continued) aside What cookies can bring: • authorization • shopping carts • recommendations

Cookies (continued) aside What cookies can bring: • authorization • shopping carts • recommendations • user session state (Web e-mail) 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

 • Some issues in HTTP: • Mainly due to its popularity – Cache

• 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