• Review:

advertisement
• Review:
– How do we address “a network end-point”?
– What services are provided by the Internet?
– What is the network logical topology observed by a
network application?
– Describe how an application is associated with a
network end-point.
– What is the sequence of system calls in a server?
– What is the sequence of system calls in a client?
– When is the connection established?
• This class:
– the email system
Electronic Mail
user mailbox
Four major components:
•
•
•
•
user agents
mail servers
Internet message format
mail transfer protocol: SMTP
User Agent
• a.k.a. “mail reader”
• composing, editing, reading mail
messages
• e.g., Eudora, Outlook, elm,
Netscape Messenger
• outgoing, incoming messages
stored on server
outgoing
message queue
user
agent
mail
server
SMTP
SMTP
mail
server
user
agent
SMTP
user
agent
user
agent
mail
server
user
agent
user
agent
Electronic Mail: mail servers
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
user
agent
mail
server
SMTP
SMTP
mail
server
user
agent
SMTP
user
agent
user
agent
mail
server
user
agent
user
agent
Electronic Mail: SMTP [RFC 2821]
• uses TCP to reliably transfer email message 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
Scenario: Alice sends message to Bob
1) Alice uses UA to compose
message and “to”
bob@someschool.ed
u
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
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
5
6
user
agent
• SMTP commands:
–
–
–
–
–
–
HELO
MAIL FROM
RCPT TO
DATA
QUIT
And some others
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
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)
A few words about SMTP
• SMTP uses persistent connections
• SMTP requires message (header & body) to be in 7-bit
ASCII
• SMTP server uses CRLF.CRLF to determine end of
message
• To facilitate user communication (between different user
agents), we need a uniform message format in addition
to SMTP.
Mail message format [RFC 822]
RFC 822: standard for text
message format:
• header lines, e.g.,
– To:
– From:
– Subject:
different from SMTP
commands!
• body
– the “message”, ASCII
characters only
header
body
blank
line
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
In the mail folder, more header lines are usually added:
Date: Wed, 24 Aug 2005 16:42:15 -0400 (EDT)
From: Xin Yuan <xyuan@cs.fsu.edu>
To: Xin Yuan <xyuan@cs.fsu.edu>
Subject: example
Message-ID: <Pine.GSO.4.61.0508241642001.1679@diablo.cs.fsu.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on mail.cs.fsu.edu
X-Spam-Level:
X-Spam-Status: No, hits=-4.9 required=8.0 tests=BAYES_00 autolearn=no
version=2.63
Status: RO
X-Status:
X-Keywords:
X-UID: 1
This is an example.
- xin
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:
– Sharing the file system with the server.
– No common file system, need mail access protocol
• POP: Post Office Protocol [RFC 1939]
– authorization (agent <-->server) and download
• IMAP: Internet Mail Access Protocol [RFC 1730]
– manipulation of stored msgs on server
• HTTP: Hotmail , Yahoo! Mail, etc.
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:
C:
S:
S:
S:
C:
S:
S:
C:
C:
S:
S:
C:
C:
S:
+OK POP3 server ready
user bob
+OK
pass hungry
+OK user successfully logged on
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
• The UNIX mail utility and its
implementation issues.
– Read message
• Mail folder format
– Compose
• SMTP requires Sender/Receiver
• Message body.
–
–
–
–
Reply
Forward
List
…
Download