Upload
jonathan-ball
View
216
Download
1
Embed Size (px)
Citation preview
CSS432: Applications 1
CSS432 ApplicationsTextbook 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
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
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
CSS432: Applications 5
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
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?
HeaderTo:Subject:Date:From:Received:
Body
A blank line
CSS432: Applications 7
MIME MIME: multimedia mail extension, RFC 2045, 2056 Additional lines in msg header declare MIME content type
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,+,/)
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
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)
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]
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
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)
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
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]$ _
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
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)
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
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
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
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
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
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
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)