css432 applications textbook ch 9 1
Download
Skip this Video
Download Presentation
CSS432 Applications Textbook Ch 9.1

Loading in 2 Seconds...

play fullscreen
1 / 23

CSS432 Applications Textbook Ch 9.1 - PowerPoint PPT Presentation


  • 142 Views
  • Uploaded on

CSS432 Applications Textbook Ch 9.1. Instructor: Joe McCarthy (based on Prof. Fukuda’s slides). mail/web server. outlook browser. TCP with buffers, variables. TCP with buffers, variables. Applications. Client. Server. Client – Server Paradigm Client: initiates contact with server

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' CSS432 Applications Textbook Ch 9.1' - dalia


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
css432 applications textbook ch 9 1
CSS432 ApplicationsTextbook Ch 9.1

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

CSS432: Applications

applications

mail/web

server

outlook

browser

TCP with

buffers,

variables

TCP with

buffers,

variables

Applications

Client

Server

  • 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

SMTP, HTTP, FTP

SMTP, HTTP, FTP

socket

socket

Internet

CSS432: Applications

electronic mail smtp mime imap

mail server

mail server

mail server

outgoing

mail queue

outgoing

mail queue

outgoing

mail queue

user

agent

user

agent

user

agent

user

agent

user

agent

user

agent

User mailbox

User mailbox

SMTP/TCP

SMTP/TCP

Email

Electronic Mail (SMTP, MIME, IMAP)
  • 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

slide4

Email

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

smtp example

Email

SMTP Example

[mfukuda@uw1-320-20]$ telnet smtp.washington.edu 25

Trying 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, 21

Feb 2004 20:00:56 -0800

HELO mfukuda

250 smtp.washington.edu Hello UW1-320-20.bothell.washington.edu [216.186.75.195]

, pleased to meet you

MAIL FROM:mfukuda@u.washington.edu

250 2.1.0 <mfukuda@u.washington.edu>... Sender ok

RCPT TO:MunehiroFukuda@yahoo.net

250 2.1.5 MunehiroFukuda@yahoo.net... Recipient ok

DATA

354 Enter mail, end with “.” on a line by itself

Blah blah blah…

…etc. etc. etc.

.

250 2.0.0 i1M40uc3013699 Message accepted for delivery

QUIT

221 2.0.0 smtp.washington.edu closing connection

Connection closed by foreign host.

[mfukuda@uw1-320-20]$ _

Note: now requires authentication

CSS432: Applications

rfc 822 message format

Header

To:

Subject:

Date:

From:

Received:

A blank line

Body

Email

RFC 822 Message Format
  • Header
    • A series of lines, each terminated by <CRLF>
  • Body
    • ASCII characters only.
  • Then, what about multimedia information?

CSS432: Applications

slide7

Email

MIME

MIME-Version: 1.0

Content-Type: multipart/mixed; boundary=“-------417CA6E2DE4ABCAFBC5”

From: mfukuda@u.washington.edu

To: css432a_au04@u.washington.edu

Subject: promised material

Date: Mon, 01 Apr 2004 12:34:56 -0800

-------417CA6E2DE4ABCAFBC5

Content-Type: text/plain; charset=us-ascii

Content-Transfer-Encoding: 7bit

Dear CSS432 students,

Here is the jpeg image and draft report I promised.

-- Fukuda

-------417CA6E2DE4ABCAFBC5

Content-Type: image/jpeg

Content-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

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

Carry more than one data type

Type of the data

How the data is encoded

Definitions for content types

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,+,/)

CSS432: Applications

base64
Base64

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

slide9

MIME headers (RFC 822)

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 <joemcc@cg81.u.washington.edu>; Tue, 22 May 2012 15:03:34 -0700

Received: 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 -0700

Received: 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 -0700

Received: 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 -0700

Received: 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 -0700

Received: 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 -0700

X-Auth-Received: from d-69-91-211-215.dhcp4.washington.edu (D-69-91-211-215.dhcp4.washington.edu [69.91.211.215]) (authenticated authid=joemcc@uw.edu) 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

CSS432: Applications

slide10

Message-ID: <4FBC0CCF.7050006@uw.edu>

Date: Tue, 22 May 2012 15:01:51 -0700

From: joe McCarthy <joemcc@uw.edu>

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:12.0) Gecko/20120428 Thunderbird/12.0.1

MIME-Version: 1.0

To: css432a_sp12@uw.edu, css490b_sp12@uw.edu

Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Content-Transfer-Encoding: 7bit

X-PMX-Version: 6.0.0.2142326, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2012.5.22.215414

X-PMX-Server: mxout13.cac.washington.edu

X-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-221

X-BeenThere: css432a_sp12@u.washington.edu

X-Mailman-Version: 2.1.5

Precedence: list

List-Id: Class Discussion List <css432a_sp12.u.washington.edu>

List-Unsubscribe: <http://mailman1.u.washington.edu/mailman/listinfo/css432a_sp12>, <mailto:css432a_sp12-request@mailman1.u.washington.edu?subject=unsubscribe>

List-Archive: <https://mailman1.u.washington.edu/mailman/private/css432a_sp12>

List-Post: <mailto:css432a_sp12@u.washington.edu>

List-Help: <mailto:css432a_sp12-request@mailman1.u.washington.edu?subject=help>

List-Subscribe: <http://mailman1.u.washington.edu/mailman/listinfo/css432a_sp12>, <mailto:css432a_sp12-request@mailman1.u.washington.edu?subject=subscribe>

Sender: css432a_sp12-bounces@mailman1.u.washington.edu

Errors-To: css432a_sp12-bounces@mailman1.u.washington.edu

CSS432: Applications

mail reader imap

Email

Mail Reader - IMAP

TCP to 143

Connection established

Server greeting

Server: OK

Server: PREAUTH

Server: BYE

Not authenticated

Client LOGOUT

Client: LOGIN or AUTHENTICATE

  • Flags:
  • Seen
  • Answered
  • Deleted
  • Recent

Authenticated

Client: CLOSE

Client LOGOUT

Client SELECT or EXAMINE

Selected

Client: FETCH, STORE,

DELETE, EXPUNGE

Client LOGOUT

Logout

Both sides close the connection

CSS432: Applications

file transfer protocol ftp

FTP

user

interface

FTP

client

FTP

server

TCP port 21 for control (persistent)

TCP port 20 for data transfer

(not persistent)

local

file

system

remote

file

system

FTP

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.

CSS432: Applications

ftp commands

FTP

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

CSS432: Applications

ftp example

FTP

FTP Example

[mfukuda@uw1-320-20]$ telnet ftp.tripod.com 21

Trying 209.202.240.80…

Connected to ftp.tripod.com (209.202.240.80).

Escape character is ‘^]’.

220 Welcome to Tripod FTP.

USER css432

331 Username set to css432. Now enter your password.

PASS ********

230 User ‘css432’ logged on.

LIST

425 Can’t open data connection for LIST.

PASV

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

LIST

150 Opening ASCII mode data connection for LIST.

226 Transfer complete.

QUIT

221 Goodbye

Connection closed by foreign host.

[mfukuda@uw1-320-20]$ _

CSS432: Applications

ftp passive mode
FTP passive mode

FTP

client

FTP

server

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)

FTP

client

FTP

server

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

ftp proxy command
FTP proxy command

(3’) 227 Entering Passive Mode

(140,142,12,173,195,54)

FTP

client

(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

ftp> open server1

ftp> proxy open server2

ftp> proxy get file

…(1)

…(2)

…(3)~(5)

FTP

Server

1

FTP

Server

2

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

data

CSS432: Applications

world wide web http

Netscape

HTTP

server

TCP port 80 (one-time connection)

HTTP request

HTTP response

TCP port 80 (one-time connection)

/public_html

IE

Web

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

CSS432: Applications

http commands

Web

HTTP Commands
  • 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

http example

Web

HTTP Example

[mfukuda@uw1-320-20]$ telnet www.washington.edu 80

Trying 140.142.11.167...

Connected to www.washington.edu (140.142.11.167).

Escape character is \'^]\'.

GET

HTTP/1.1 200 OK

Date: Sun, 22 Feb 2004 09:06:17 GMT

Server: Apache/1.3.28 (Unix) PHP/4.3.3 mod_perl/1.29 mod_backhand/1.2.2

Connection: close

Content-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]$ _

CSS432: Applications

performance improvement in web

Web

Performance Improvement in Web
  • Persistent TCP connections
    • Advantages
    • Disadvantages
  • Caching
    • Recently access pages can be cached at browsers and ISPs
    • Advantages
    • Disadvantages

CSS432: Applications

performance improvement in web1

Web

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

CSS432: Applications

performance improvement in web2

Web

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

CSS432: Applications

slide23
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)

CSS432: Applications

ad