lecture7

advertisement
Electronic Mail
Application Layer
1
Electronic Mail
outgoing
message queue
user mailbox
Three major components:
user
agent
 user agents
 mail servers
 simple mail transfer
mail
server
protocol: SMTP
User Agent
SMTP
 a.k.a. “mail reader”
 composing, editing, reading
mail
mail messages
server
 e.g., Eudora, Outlook, elm,
Netscape Messenger
 outgoing, incoming messages
user
stored on server
agent
SMTP
SMTP
user
agent
mail
server
user
agent
user
agent
user
agent
Application Layer
2
Electronic Mail: mail servers
user
agent
Mail Servers
 mailbox contains incoming
messages 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
mail
server
SMTP
SMTP
mail
server
user
agent
SMTP
user
agent
mail
server
user
agent
user
agent
user
agent
Application Layer
3
The Entire E-mail System
Application Layer
4
Electronic Mail: SMTP [RFC 2821]
 uses TCP to reliably transfer email message from client to server, port
25

SMTP uses persistent connections
 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
 SMTP uses info written on envelope of mail


Message header
 Does not look at contents
 Message body
 messages must be in 7-bit ASCII
 Other functions:
 E-mail address lookup
 E-mail address verification
Application Layer
5
Scenario: Alice sends message to Bob
1) Alice uses UA to compose
message and “to”
bob@someschool.edu
2) Alice’s UA sends message
to her mail server; message
placed in message queue
3) Client side of SMTP opens
TCP connection with Bob’s
mail server
1
user
agent
2
mail
server
3
4) SMTP client sends Alice’s
message over the TCP
connection
5) Bob’s mail server places the
message in Bob’s mailbox
6) Bob invokes his user agent
to read message
mail
server
4
5
6
user
agent
Application Layer
6
Sample SMTP interaction
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
S:
C:
S:
220 hamburger.edu
HELO crepes.fr
250 Hello crepes.fr, pleased to meet you
MAIL FROM: <alice@crepes.fr>
250 alice@crepes.fr... Sender ok
RCPT TO: <bob@hamburger.edu>
250 bob@hamburger.edu ... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Do you like ketchup?
How about pickles?
.
250 Message accepted for delivery
QUIT
221 hamburger.edu closing connection
Application Layer
7
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)
Application Layer
8
[codd:~] [4:18pm] -> telnet www.cs.uakron.edu 25
Trying 130.101.10.1...
Connected to vonneumann.cs.uakron.edu.
Escape character is '^]'.
220 vonneumann.cs.uakron.edu ESMTP Sendmail 8.9.3/8.9.3;
Mon, 12 Nov 2001 16:18:18 -0500 (EST)
HELO cs.uakron.edu
250 vonneumann.cs.uakron.edu Hello codd.cs.uakron.edu
[130.101.10.5], pleased to meet you
MAIL FROM: dang@cs.uakron.edu
250 dang@cs.uakron.edu... Sender ok
RCPT TO: dangx@uakron.edu
250 dangx@uakron.edu... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
This is a test mail message to myself!!!
.
250 Message accepted for delivery
QUIT
221 vonneumann.cs.uakron.edu closing connection
Connection closed by foreign host.
Application Layer
9
Mail Message Contents
 Each queued message has:
 Message
text
• RFC 822 header with message envelope and
list of recipients
• Message body, composed by user
A
•
•
•
•
list of mail destinations
Derived by user agent from header
May be listed in header
May require expansion of mailing lists
May need replacement of mnemonic names
with mailbox names
Application Layer
10
Possible Errors
 Host unreachable
 Host out of operation
 TCP connection fail during transfer
 Sender can re-queue mail

Give up after a period
 Faulty destination address
 User error
 Target user changed address
 Redirect if possible
 Inform user if not
Application Layer
11
SMTP System Overview
 Commands and responses between sender
and receiver
 Initiative with sender

Establishes TCP connection
 Sender sends commands to receiver
 e.g. HELO<SP><domain><CRLF>
 Each command generates exactly one reply
 e.g. 250 requested mail action ok;
completed
Application Layer
12
SMTP Replies
 Leading digit indicates category
Positive completion reply (2xx)
 Positive intermediate reply (3xx)
 Transient negative completion reply (4xx)
 Permanent negative completion reply (5xx)

Application Layer
13
Operation Phases
 Connection setup
 Exchange of command-response pairs
 Connection termination
Application Layer
14
Connection Setup
 Sender opens TCP connection with receiver
 Once connected, receiver identifies itself
 220 <domain> service ready
 Sender identifies itself

HELO
 Receiver accepts sender’s identification
 250 OK
 If mail service not available, step 2 above
becomes:

421 service not available
Application Layer
15
Mail Transfer
 Sender may send one or more messages to
receiver
 MAIL command identifies originator
Gives reverse path to used for error reporting
 Receiver returns 250 OK or appropriate
fail/error message

 One or more RCPT commands identifies
recipients for the message

Separate reply for each recipient
 DATA command transfers message text
 End of message indicated by line containing just
period (.)
Application Layer
16
Closing Connection
 Two steps
 Sender sends QUIT and waits for reply
 Then initiate TCP close operation
 Receiver initiates TCP close after sending
reply to QUIT
Application Layer
17
Electronic Mailboxes and
Addresses
 E-mail users have an electronic mailbox
into which mail is deposited
 Usually associated with computer account;
one user may have different electronic
mailboxes
 User accesses mail with a mail reader
program
 Electronic mailbox is identified by an email address
mailbox@computer
Application Layer
18
Internet Mail Addressing
 User portion or mailbox portion is site specific
 Dang
 XuanHien_T_Dang
 1234.5678
 Host portion or computer portion is domain name
 Source mail client
 Resolves destination name using DNS (MX, if available)
 Contacts mail delivery server at destination
 Copies mail to server
 Destination mail server
 Interprets user name according to local mailbox addresses
 Places mail in appropriate mailbox
Application Layer
19
E-mail message format
 Simple two-part format
Header includes delivery information
 Body carries text of message

 Header and body separated by blank line
Application Layer
20
Mail message format
SMTP: protocol for
exchanging email msgs
RFC 822: standard for text
message format:
 header lines, e.g.,
To:
 From:
 Subject:
different from SMTP
commands!

header
blank
line
body
 body

the “message”, ASCII
characters only
Application Layer
21
E-mail Headers
 Lines of text in format keyword: information
 keyword identifies information; information can
appear in any order
 Essential information:



To: list of recipients
From: sender
Cc: list of copy recipients
 Useful information
 Reply-to: different address than From:
 Received-by: for debugging
 Frivolous information:
 Favorite drink: lemonade
 Phase-of-the-moon: gibbous
Application Layer
22
Data in E-mail
 Original Internet mail carried only 7-bit ASCII
data
 Couldn’t contain arbitrary binary values; e.g.,
executable program
 Techniques for encoding binary data allowed
transport of binary data
 Uuencode: three 8-bit binary values as four ASCII
characters (6 bits each)



Also carries file name and protection information
Incurs 33% overhead
Requires manual intervention
Application Layer
23
Multipurpose Internet Mail
Extension (MIME)
 Extension to RFC822
 SMTP cannot transmit executables

Uuencode and other schemes are available
• Not standardized
 Can not transmit text including international characters (e.g.
â, å, ä, è, é, ê, ë)

Need 8 bit ASCII
 Servers may reject mail over certain size
 Translation between ASCII and EBCDIC not standard
 SMTP gateways to X.400 can not handle none text data in
X.400 messages
 Some SMTP implementations do not adhere to standard

CRLF, truncate or wrap long lines, removal of white space, etc.
Application Layer
24
MIME
 Multipart Internet Mail Extensions - Extends and
automates encoding mechanisms
 Allows inclusion of separate components – programs,
pictures, audio clips – in a single mail message
 Sending program identifies the components so
receiving program can automatically extract and
inform mail recipient


Header includes
MIME-Version: 1.0
Content-Type: Multipart/Mixed; Boundary=Mime_separator
Separator line gives information about specific encoding
Content-Type: text/plain
Application Layer
25
MIME (cont.)
 MIME is extensible – sender and receiver
agree on encoding scheme
 MIME is compatible with existing mail
systems
Everything encoded as ASCII
 Headers and separators ignored by non-MIME
mail systems

 MIME encapsulates binary data in ASCII
mail envelope
Application Layer
26
MIME
Application Layer
27
Overview of MIME
 Five new message header fields
MIME version
 Content type
 Content transfer encoding
 Content Id
 Content Description

 Number of content formats defines
 Transfer encoding defined
Application Layer
28
Content Types
 Text body
 Multipart
 Mixed, Parallel, Alternative, Digest
 Message
 RFC 822, Partial, External-body
 Image
 jpeg, gif
 Video
 mpeg
 Audio
 Basic
 Application
 Postscript
 octet stream
Application Layer
29
MIME Transfer Encodings
 Reliable delivery across wide largest range of
environments
 Content transfer encoding field


Six values
Three (7bit, 8bit, binary) no encoding done
• Provide info about nature of data
 Quoted-printable
 Data largely printable ASCII characters
 Non-printing characters represented by hex code
 Base64
 Maps arbitrary binary input onto printable output
 X-token
 Named nonstandard encoding
Application Layer
30
Message format: multimedia extensions
 MIME: multimedia mail extension, RFC 2045, 2056
 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: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
Application Layer
31
Programs as mail recipients
 Can arrange for e-mailbox to be associated
with a program rather than a user’s mail
reader
 Incoming mail automatically processed as
input to program
 Example – mailing list subscription
administration
 Can be used to implement client-server
processing
Client request in incoming mail message
 Server response in returned mail reply

Application Layer
32
Mailing Lists and Forwarders
 E-mail addresses can be attached to
programs as well as electronic mailboxes
 Mail exploder or mail forwarder resends
copies of message to e-mail addresses in
mailing list
UNIX mail program sendmail provides mail
aliases
 Mailing list processor, e.g. listserv, can also
interpret subscription management commands

Application Layer
33
Mail Gateways
 Mailing list processing may take significant
resources in large organizations
 May be segregated to a dedicated server
computer: mail gateway
Provides single mail destination point for all
incoming mail
 Can use MX records in DNS to cause all mail to
be delivered to gateway

Application Layer
34
Mail gateways and forwarding
 Users within an organization may want to
read mail on local or departmental
computer
 Can arrange to have mail forwarded from
mail gateway
 Message now makes multiple hops for
delivery
 Hops may be recorded in header
 Forwarded mail may use proprietary (nonSMTP) mail system
Application Layer
35
Mail Gateways and E-mail Addresses
 Organization may want to use uniform
naming for external mail
 Internally, may be delivered to many
different systems with different naming
conventions
 Mail gateways can translate e-mail
addresses
Application Layer
36
Mailbox Access
 Where should mailbox be located?
 Users want to access mail from most
commonly used computer
 Cannot always use desktop computer as
mail server
Not always running
 Requires multitasking OS
 Requires local disk storage

 Can TELNET to remote computer with mail
server
Application Layer
37
Mail Access Protocols
 Typically users do NOT run a server on
their local PC
 User agent accesses a mailbox from a
shared mail server
 Mail access protocol transfers mail from
server to local PC
 2 popular protocols:
POP3 (Post Office Protocol v3)
 IMAP (Internet Mail Access Protocol)

 Can’t use SMTP because getting messages
is a pull operation & SMTP is a push
protocol.
Application Layer
38
Mail Access Protocol
 Instead of TELNET, use protocol that
accesses mail on remote computer directly
 TCP/IP suite includes Post Office Protocol
(POP) for remote mailbox access
Computer with mailboxes runs POP server
 User runs POP client on local computer
 POP client can access and retrieve messages
from mailbox
 Requires authentication (password)
 Local computer uses SMTP for outgoing mail

Application Layer
39
Email Protocols
Application Layer
40
POP3 and SMTP
Application Layer
41
POP3
 Three phases
 Authorization
 Transaction
 Update
 During a POP3 session, the server
maintains state information
 POP3 downloads mail messages to the local
machine – not good for “nomadic user”
Application Layer
42
POP3 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:
C:
S:
+OK POP3 server ready
user bob
+OK
pass hungry
+OK user successfully logged
C:
S:
S:
S:
C:
S:
S:
C:
C:
S:
S:
C:
C:
S:
list
1 498
2 912
.
retr 1
<message 1 contents>
.
dele 1
retr 2
<message 1 contents>
.
dele 2
quit
+OK POP3 server signing off
Application Layer
on
43
Dialup Access and POP
 POP useful for dialup connection
User’s computer not always connected
 Can download all mail at once and read off-line
 Can compose mail off-line and mail in one
connection

Application Layer
44
IMAP
 Internet Mail Access Protocol
 Allows users to manipulate remote
mailboxes
 Must maintain info about user (e.g., folder
hierarchy) even after the user quits
 IMAP server is always in 1 of 4 states:
Nonauthenticated
 Authenticated
 Selected
 Logout

Application Layer
45
POP3 and IMAP
More about POP3
 Previous example uses
“download and delete”
mode.
 Bob cannot re-read email if he changes
client
 “Download-and-keep”:
copies of messages on
different clients
 POP3 is stateless
across sessions
IMAP
 Keep all messages in
one place: the server
 Allows user to
organize messages in
folders
 IMAP keeps user state
across sessions:

names of folders and
mappings between
message IDs and folder
name
Application Layer
46
Mail access protocols
user
agent
SMTP
SMTP
sender’s mail
server
access
protocol
user
agent
receiver’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.
Application Layer
47
Web-based Emails
 Problem: Suppose Alice,
with a web-based email
account (such as Hotmail),
sends a message to Bob,
who accesses his mail from
his mail server using POP3.
Discuss how the message
gets from Alice’s host to
Bob’s host. Be sure to list
the series of applicationlayer protocols that are
used to move the message
between the two hosts.
 Solution:
Message is sent from
Alice’s host to her mail
server over HTTP. Alice’s
mail server then sends the
message to Bob’s mail
server over SMTP. Bob
then transfers the
message from his mail
server to his host over
POP3.
Application Layer
48
SMTP, FTP and HTTP
 Connections:
– All use TCP
– SMTP uses persistent
connections
– FTP persistent control
channel, non-persistent data
channel per file.
– HTTP uses both persistent
and non-persistent channels
 Data Flow
 All have ASCII
command/response
interaction, status codes
 HTTP: each object
encapsulated in its own
response msg
 FTP: one data channel per
file
 SMTP: multiple objects
sent in multipart msg
– FTP and HTTP: pull (user
requests files)
– SMTP: push (email sent to
receiver without request,
result can be spam!)
Application Layer
49
Summary for Email
 Electronic mail allows quick, asynchronous
communication across entire Internet.
 Simple Mail Transfer Protocol (SMTP) is Internet
standard for mail delivery
 Can attach e-mail addresses to programs for
processing


Mailing lists
Other client-server applications
 Mail gateways
 Provide uniform user addressing outside organizations
 Translate from Internet mail (e.g. SMTP) to proprietary
systems
 Post Office Protocol (POP) and Internet Mail
Access Protocol (IMAP) allow remote access to
electronic mailboxes.
Application Layer
50
Download