css432: applications 1 css432 applications textbook ch 9.1 instructor: joe mccarthy (based on prof....

23
CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

Upload: jonathan-ball

Post on 04-Jan-2016

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 1

CSS432 ApplicationsTextbook Ch 9.1

Instructor: Joe McCarthy(based on Prof. Fukuda’s slides)

Page 2: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 2

Applications Client – Server Paradigm

Client: initiates contact with server Server: provides client with a

response Applications use their corresponding

protocols Defined in RFC by Internet

Engineering Task Force Implemented on top of TCP or UDP

Other documents define formats E.g., MIME, HTML

Applications Protocol RFC Port

Name service DNS 1035 53

Email SMTP

IMAP

821

3501

25

143

Web HTTP 2616 80

File transfer FTP 959 21

Remote terminal access

telnet 854 23

TCP withbuffers,variables

socket

TCP withbuffers,variables

socket

Internet

mail/webserver

SMTP, HTTP, FTP

outlookbrowser

SMTP, HTTP, FTP

Client Server

Page 3: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 3

Electronic Mail (SMTP, MIME, IMAP)Email

mail server

outgoingmail queue

User mailbox

useragent

useragent

mail server

outgoingmail queue

mail server

outgoingmail queue

User mailbox

useragent

useragent

useragent

useragent

SMTP/TCP SMTP/TCP

user agents (client) a.k.a. “mail reader” composing, editing, reading mail messages e.g., Eudora, Outlook, elm, Thunderbird

mail servers (server) outgoing, incoming messages stored on server

SMTP IMAP

Page 4: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 4

SMTPEmail

Simple Mail Transfer Protocol TCP port 25 – Persistent connection Email sending protocol

From user agent to his/her local mail server From a local to an intermediate/destination mail server (direct

transfer) From an intermediate server to a destination server (relay)

Three phases of transfer Handshaking: HELO (ELHO when authentication required) Transfer of messages: MAIL FROM, RCPT TO, and DATA Closure: QUIT

Command/response interaction Commands: ASCII text Response: status code and phrase

Page 5: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 5

Email

SMTP Example[mfukuda@uw1-320-20]$ telnet smtp.washington.edu 25Trying 140.142.33.9…Connected to smpt.washington.edu (140.142.33.9).Escape character is ‘^]’.220 smtp.washington.edu ESMTP Sendmail 8.12.11+UW04.02/8.12.11+UW04.02; Sat, 21Feb 2004 20:00:56 -0800HELO mfukuda250 smtp.washington.edu Hello UW1-320-20.bothell.washington.edu [216.186.75.195], pleased to meet youMAIL FROM:[email protected] 2.1.0 <[email protected]>... Sender okRCPT TO:[email protected] 2.1.5 [email protected]... Recipient okDATA354 Enter mail, end with “.” on a line by itselfBlah blah blah……etc. etc. etc..250 2.0.0 i1M40uc3013699 Message accepted for deliveryQUIT221 2.0.0 smtp.washington.edu closing connectionConnection closed by foreign host.[mfukuda@uw1-320-20]$ _

Note: now requires authentication

Page 6: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 6

RFC 822 Message Format

Header A series of lines, each

terminated by <CRLF> Body

ASCII characters only. Then, what about

multimedia information?

Email

HeaderTo:Subject:Date:From:Received:

Body

A blank line

Page 7: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 7

MIME MIME: multimedia mail extension, RFC 2045, 2056 Additional lines in msg header declare MIME content type

Email

MIME-Version: 1.0Content-Type: multipart/mixed; boundary=“-------417CA6E2DE4ABCAFBC5”From: [email protected]: [email protected]: promised materialDate: Mon, 01 Apr 2004 12:34:56 -0800

-------417CA6E2DE4ABCAFBC5Content-Type: text/plain; charset=us-asciiContent-Transfer-Encoding: 7bit

Dear CSS432 students,Here is the jpeg image and draft report I promised.-- Fukuda

-------417CA6E2DE4ABCAFBC5Content-Type: image/jpegContent-Transfer-Encoding: base64

… Unreadable encoding of a jpeg figure

-------417CA6E2DE4ABCAFBC5

Content-Type: application/postscript; name=“draft.ps”Content-Transfer-Encoding: 7bit

… Readable encoding of a postscript document

Type of the data

How the data is encoded

Definitions for content types

Carry more than one data type

3 bytes = 3 * 8 bits = 24 bits 4 * 6-bit chars,

each mapped onto one of 26 = 64 ASCII chars

(A~Z,a~z,0~9,+,/)

Page 8: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

Base64

CSS432: Applications 8

A quote from Thomas Hobbes' Leviathan:

Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.

represented as a byte sequence of 8-bit-padded ASCII characters is encoded in MIME's Base64 scheme as follows:

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

http://en.wikipedia.org/wiki/Base64

Page 9: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 9

Received: via tmail-2007b.22 (invoked by user joemcc) for joemcc; Tue, 22 May 2012 15:03:48 -0700 (PDT)Received: from mxout13.cac.washington.edu (mxout13.cac.washington.edu [140.142.32.202]) by cg81.u.washington.edu (8.14.4+UW11.03/8.14.4+UW12.03) with ESMTP id q4MM3YvT005956 for <[email protected]>; Tue, 22 May 2012 15:03:34 -0700Received: from mailman1.u.washington.edu (mailman1.u.washington.edu [140.142.17.220]) by mxout13.cac.washington.edu (8.14.4+UW11.03/8.14.4+UW12.03) with ESMTP id q4MM3PGq019938 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 22 May 2012 15:03:25 -0700Received: from mailman1.u.washington.edu (localhost [127.0.0.1]) by mailman1.u.washington.edu (8.14.4+UW11.03/8.14.4+UW11.03) with ESMTP id q4MM3PkL000522; Tue, 22 May 2012 15:03:25 -0700Received: from mx2.cac.washington.edu (mx2.cac.washington.edu [140.142.33.18]) by mailman1.u.washington.edu (8.14.4+UW11.03/8.14.4+UW11.03) with ESMTP id q4MM3OcS000490; Tue, 22 May 2012 15:03:24 -0700Received: from mxout12.cac.washington.edu (mxout12.cac.washington.edu [140.142.33.31]) by mx2.cac.washington.edu (8.14.4+UW11.03/8.14.4+UW12.05) with ESMTP id q4MM37FI005160 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 22 May 2012 15:03:07 -0700Received: from smtp.washington.edu (smtp.washington.edu [140.142.32.205] (may be forged)) by mxout12.cac.washington.edu (8.14.4+UW11.03/8.14.4+UW12.03) with ESMTP id q4MM24HX002038 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 22 May 2012 15:02:04 -0700X-Auth-Received: from d-69-91-211-215.dhcp4.washington.edu (D-69-91-211-215.dhcp4.washington.edu [69.91.211.215]) (authenticated [email protected]) by smtp.washington.edu (8.14.4+UW11.03/8.14.4+UW12.03) with ESMTP id q4MM22j8014843 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 22 May 2012 15:02:03 -0700

MIME headers (RFC 822)

Page 10: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 10

Message-ID: <[email protected]>Date: Tue, 22 May 2012 15:01:51 -0700From: joe McCarthy <[email protected]>User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:12.0) Gecko/20120428 Thunderbird/12.0.1MIME-Version: 1.0To: [email protected], [email protected]: text/plain; charset=ISO-8859-1; format=flowedContent-Transfer-Encoding: 7bitX-PMX-Version: 6.0.0.2142326, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2012.5.22.215414X-PMX-Server: mxout13.cac.washington.eduX-Uwash-Spam: Gauge=IIIIIIII, Probability=8%, Report=' HTML_00_01 0.05, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1000_LESS 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, BODY_SIZE_700_799 0, DATE_TZ_NA 0, FROM_EDU_TLD 0, __ANY_URI 0, __CP_URI_IN_BODY 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __HAS_LIST_HEADER 0, __HAS_LIST_HELP 0, __HAS_LIST_SUBSCRIBE 0, __HAS_LIST_UNSUBSCRIBE 0, __HAS_MSGID 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __MOZILLA_MSGID 0, __PHISH_SPEAR_STRUCTURE_1 0, __SANE_MSGID 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_MAILTO 0, __URI_NO_WWW 0, __URI_NS , __USER_AGENT 0'Cc: Subject: [Css432a_sp12] TuTh office hours: 7:45-8:15pm UW1-221X-BeenThere: [email protected]: 2.1.5Precedence: listList-Id: Class Discussion List <css432a_sp12.u.washington.edu>List-Unsubscribe: <http://mailman1.u.washington.edu/mailman/listinfo/css432a_sp12>, <mailto:[email protected]?subject=unsubscribe>List-Archive: <https://mailman1.u.washington.edu/mailman/private/css432a_sp12>List-Post: <mailto:[email protected]>List-Help: <mailto:[email protected]?subject=help>List-Subscribe: <http://mailman1.u.washington.edu/mailman/listinfo/css432a_sp12>, <mailto:[email protected]?subject=subscribe>Sender: [email protected]: [email protected]

Page 11: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 11

Mail Reader - IMAPEmail

Connection established

Server greeting

Not authenticated

Authenticated

Selected

Logout

Both sides close the connection

TCP to 143

Server: OK Server: PREAUTH Server: BYE

Client: LOGIN or AUTHENTICATEClient LOGOUT

Client LOGOUT

Client LOGOUT

Client SELECT or EXAMINE

Client: CLOSE

Client: FETCH, STORE, DELETE, EXPUNGE

Flags:•Seen•Answered•Deleted•Recent

Page 12: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 12

File Transfer Protocol (FTP)

Transfer file to/from remote host Client/server model

Client: initiates a control TCP connection to a server on port 21. Client: sends a user ID and password as part of FTP commands. Server: authorizes the client Client: opens a data TCP connection to a server on port 20. Server: maintains state: current directory, earlier authentication.

An ftp client is allowed to initiate a transfer between two ftp servers.

FTP

localfile

system

remotefile

system

FTPserver

FTPclient

FTPuser

interface TCP port 20 for data transfer(not persistent)

TCP port 21 for control (persistent)

Page 13: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 13

FTP Commands <CRLF> delimits each command (and reply). Commands consist of four uppercase ASCII characters, some with

optional arguments: USER username : send a user identification to the server. PASS password : send the user password to the server. PASV: request the server to send back the IP & port on which it will listen

for a data TCP connection from the user. LIST : ask the server to send back its current directory contents through

the data connection. RETR filename : retrieve a file from the current remote directory. STOR filename : store a file into the current remote directory.

Commands prompt replies from the server (ending with <CRLF>) 331 Username OK, password required 125 Data connection already open; transfer starting 425 Can't open data connection 452 Error writing file

FTP

Page 14: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 14

FTP ExampleFTP

[mfukuda@uw1-320-20]$ telnet ftp.tripod.com 21Trying 209.202.240.80…Connected to ftp.tripod.com (209.202.240.80).Escape character is ‘^]’.220 Welcome to Tripod FTP.USER css432331 Username set to css432. Now enter your password.PASS ********230 User ‘css432’ logged on.LIST425 Can’t open data connection for LIST.PASV227 Entering Passiv Mode (209,202,240,80,195,210)// Open another xterm and telnet 209.202.240.80 50130 (=195*256+210)// Trying 209.202.240.80…// Connected to ftp.tripod.com (209.202.240.80).// Escape character is ‘^]’.// drwxr-xr-x 1 css432 Tripod 0 Sep 15 21:22 cgi-bin// -rw-r--r-- 1 css432 Tripod 26169 Sep 16 18:28 ttcp.c// -rw-r--r-- 1 css432 Tripod 8236 Sep 15 21:22 index.htm// drwxr-xr-x 1 css432 Tripod 0 Sep 16 18:33 project // Connection closed by foreign host.LIST150 Opening ASCII mode data connection for LIST.226 Transfer complete.QUIT221 GoodbyeConnection closed by foreign host.[mfukuda@uw1-320-20]$ _

Page 15: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 15

FTP passive mode

FTPserver

FTPclient

TCP port 21 for control (persistent)

Client request: connect( ), USER, PASS, LIST

Server Reply: 220 server ready, 331 send password, 230 login ok, 425 connection timeout

TCP port 20 for data transfer (one time)

FTPserver

FTPclient

TCP port 21 for control (persistent)

Client request: connect( ), USER, PASS, PASV, LIST

Server Reply: 220 server ready, 331 send password, 230 login ok,227 Entering Passive Mode (140,142,12,173,195,54), 226 complete

TCP port 195*256 + 54 = 49974 for data transfer (one time)

data

Page 16: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 16

FTP proxy command

FTPServer

2

FTPServer

1

FTPclient

(1) USER, PASS, SYST (2) USER, PASS, SYST(3) TYPE I, PASV

(4) TYPE I, PORT (140,142,12,173,195,54),STOR file(5) RETR file

(3’) 227 Entering Passive Mode(140,142,12,173,195,54)

TCP port 195*256 + 54 = 49974 for data transfer (one time)

data

ftp> open server1ftp> proxy open server2ftp> proxy get file

…(1)…(2)…(3)~(5)

Page 17: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 17

World Wide Web - HTTP

Hypertext Transfer Protocol: one-time TCP port 80 connection for each request/response

client: Browser requests, receives & displays Web objects

server: Web server sends objects in response to requests

Web

/public_html

HTTPserver

NetscapeTCP port 80 (one-time connection)

IE

TCP port 80 (one-tim

e connection)HTTP requestHTTP response

Page 18: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 18

HTTP CommandsWeb

Client Initiates a TCP connection to a server on port 80. Sends an HTTP request over this TCP connection

OPTIONS: request information about available options GET: retrieve document identified in URL HEAD: retrieve document meta-information in URL POST: give information to server PUT: store document under specified URL DELETE, TRACE, CONNECT

Receives an HTTP response Server

Accepts a TCP connection from a client on port 80. Receives an HTTP request Returns an HTTP response and terminates the TCP connection.

1xx: Informational 2xx: success 3xx: Redirection 4xx: Client error 5xx: Server error

Page 19: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 19

HTTP Example

[mfukuda@uw1-320-20]$ telnet www.washington.edu 80Trying 140.142.11.167...Connected to www.washington.edu (140.142.11.167).Escape character is '^]'.GETHTTP/1.1 200 OKDate: Sun, 22 Feb 2004 09:06:17 GMTServer: Apache/1.3.28 (Unix) PHP/4.3.3 mod_perl/1.29 mod_backhand/1.2.2Connection: closeContent-type: text/html

<!doctype html public “-//W3C/DTD HTML 4.0 Transitional//EN”><html><head> … </body></html>

Connection closed by foreign host.[mfukuda@uw1-320-20]$ _

Web

Page 20: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 20

Performance Improvement in Web Persistent TCP connections

Advantages

Disadvantages

Caching Recently access pages can be cached at browsers and ISPs Advantages

Disadvantages

Web

Page 21: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 21

Performance Improvement in Web Persistent TCP connections

Advantages Eliminate the connection setup overhead Eliminate repetitions of slow start phase

Disadvantages Need to know the time period of connection – server times out the

connection.

Caching Recently access pages can be cached at browsers and ISPs Advantages

Disadvantages

Web

Page 22: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 22

Performance Improvement in Web Persistent TCP connections

Advantages Eliminate the connection setup overhead Eliminate repetitions of slow start phase

Disadvantages Need to know the time period of connection – server times out the

connection.

Caching Recently access pages can be cached at browsers and ISPs Advantages

Reduce the number of HTTP accesses Disadvantages

Need to purge out-of-date version of pages – use expiration date and cache directives to cache or not to cache a given page

Web

Page 23: CSS432: Applications 1 CSS432 Applications Textbook Ch 9.1 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides)

CSS432: Applications 23

Reviews RFC Naming service: DNS Email: SMTP, MIME, and IMAP File transfer: FTP WWW: HTTP

Exercises: try the following examples by yourself. Slide p8 (DNS) Slide p12 (SMTP) Slide p18 (FTP) Slide p21 (HTTP)