50
Application Layer 1 Electronic Mail

Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Embed Size (px)

Citation preview

Page 1: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 1

Electronic Mail

Page 2: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 2

Electronic MailThree major components: user agents mail servers simple 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

user mailbox

outgoing message queue

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

Page 3: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 3

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

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

Page 4: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 4

The Entire E-mail System

Page 5: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 5

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

Page 6: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 6

Scenario: Alice sends message to Bob1) Alice uses UA to compose

message and “to” [email protected]

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

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

useragent

mailserver

mailserver user

agent

1

2 3 4 56

Page 7: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 7

Sample SMTP interaction S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection

Page 8: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 8

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)

Page 9: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 9

[codd:~] [4:18pm] -> telnet www.cs.uakron.edu 25Trying 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.edu250 vonneumann.cs.uakron.edu Hello codd.cs.uakron.edu [130.101.10.5], pleased to meet youMAIL FROM: [email protected] [email protected]... Sender okRCPT TO: [email protected] [email protected]... Recipient okDATA354 Enter mail, end with "." on a line by itselfThis is a test mail message to myself!!!.250 Message accepted for deliveryQUIT221 vonneumann.cs.uakron.edu closing connectionConnection closed by foreign host.

Page 10: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 10

Mail Message ContentsEach 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

Page 11: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 11

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

Page 12: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 12

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

Page 13: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 13

SMTP Replies

Leading digit indicates category Positive completion reply (2xx) Positive intermediate reply (3xx) Transient negative completion reply (4xx) Permanent negative completion reply (5xx)

Page 14: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 14

Operation Phases

Connection setup Exchange of command-response pairs Connection termination

Page 15: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 15

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

Page 16: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 16

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 (.)

Page 17: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 17

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

Page 18: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 18

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 e-mail address

mailbox@computer

Page 19: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 19

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

Page 20: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 20

E-mail message format

Simple two-part format Header includes delivery information Body carries text of message

Header and body separated by blank line

Page 21: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 21

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! body

the “message”, ASCII characters only

header

body

blankline

Page 22: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 22

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

Page 23: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 23

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

Page 24: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 24

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.

Page 25: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 25

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.0Content-Type: Multipart/Mixed; Boundary=Mime_separator

Separator line gives information about specific encodingContent-Type: text/plain

Page 26: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 26

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

Page 27: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 27

MIME

Page 28: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 28

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

Page 29: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 29

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

Page 30: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 30

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

Page 31: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 31

Message format: multimedia extensions

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

type

From: [email protected] To: [email protected] Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg

base64 encoded data ..... ......................... ......base64 encoded data

multimedia datatype, subtype,

parameter declaration

method usedto encode data

MIME version

encoded data

Page 32: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 32

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

Page 33: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 33

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

Page 34: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 34

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

Page 35: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 35

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

(non-SMTP) mail system

Page 36: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 36

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

Page 37: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 37

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

Page 38: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 38

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.

Page 39: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 39

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

Page 40: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 40

Email Protocols

Page 41: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 41

POP3 and SMTP

Page 42: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 42

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”

Page 43: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 43

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

C: list S: 1 498 S: 2 912 S: . C: retr 1 S: <message 1 contents> S: . C: dele 1 C: retr 2 S: <message 1 contents> S: . C: dele 2 C: quit S: +OK POP3 server signing off

S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on

Page 44: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 44

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

Page 45: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 45

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

Page 46: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 46

POP3 and IMAPMore about POP3 Previous example

uses “download and delete” mode.

Bob cannot re-read e-mail 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

Page 47: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 47

Mail access protocols

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.

useragent

sender’s mail server

useragent

SMTP SMTP accessprotocol

receiver’s mail server

Page 48: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 48

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 application-layer 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.

Page 49: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 49

SMTP, FTP and HTTP

Connections:– All use TCP– SMTP uses persistentconnections– FTP persistent controlchannel, non-persistent datachannel per file.– HTTP uses both persistentand non-persistent channels

Data Flow– FTP and HTTP: pull (userrequests files)– SMTP: push (email sent toreceiver without request,result can be spam!)

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

Page 50: Application Layer1 Electronic Mail. Application Layer2 Electronic Mail Three major components: r user agents r mail servers r simple mail transfer protocol:

Application Layer 50

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.