SMTP - Simple Mail Transfer Protocol

 
The Application Layer:
SMTP, FTP
 
CS 352, Lecture 5
 
Srinivas Narayana
 
1
 
Recap: Application-layer protocols
 
DNS: lookup a (machine-readable) address using a (human-
readable) name?
Used by many applications as a building block
Recursive lookups for scale and administrative convenience
 
HTTP: Transfer content over the Internet with portability
Very familiar to users of the Internet
Many, many, applications use HTTP
 
Today: SMTP (email) and FTP (file transfer)
 
SMTP
 
Simple Mail Transfer Protocol
 
4
 
Electronic Mail
 
Three major components:
1.
User agents
a.k.a. “mail reader”
e.g., Applemail, Outlook
 
Web-based user agents (ex: gmail)
 
5
 
2.
Mail Servers
Mailbox contains incoming messages
for user
M
essage queue of outgoing (to be sent)
mail messages
Sender mail server makes connection
to Receiver mail server
IP address, port 25
 
3.
SMTP protocol
Used to send messages
Client: sending user agent or sending
mail server
server: receiving mail server
 
Electronic Mail: Mail servers
 
6
 
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
 
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
1
2
3
4
5
6
 
Scenario: Alice sends message to Bob
 
7
 
Sample SMTP interaction
 
  
220 hill.com SMTP service ready
HELO town.com
  
250 hill.com Hello town.com, pleased to meet you
MAIL FROM: <jack@town.com>
  
250 <jack@town.com>… Sender ok
RCPT TO: <jill@hill.com>
  
250 <jill@hill.com>… Recipient ok
DATA
  
354 Enter mail, end with “.” on a line by itself
Jill, I’m not feeling up to hiking today.  Will you please fetch me a pail of water?
.
  
250 message accepted
QUIT
  
221 hill.com closing connection
 
MAIL command response codes
 
8
 
9
 
SMTP: protocol for exchanging email msgs
RFC 822: standard for text message format:
 
header lines, e.g.,
To:
From:
Subject:
different
 
from SMTP commands
!
(these would still be under “DATA”)
 
body
the “message”, ASCII characters only
header
body
 
blank
line
 
Mail message (stored on server) format
 
10
 
MIME: multimedia mail extension, RFC 2045, 2056
additional lines in msg header declare MIME content type
 
multimedia data
type, subtype,
parameter declaration
 
method used
to encode data
 
MIME version
 
encoded data
 
Message format: multimedia extensions
11
SMTP: delivery/storage to receiver’s server
Mail access protocol: retrieval from server
POP: Post Office Protocol [RFC 1939]
Client connects to POP3 server on TCP port 110
IMAP: Internet Mail Access Protocol [RFC 1730]
Client connects to TCP port 143
HTTP: gmail, Yahoo! Mail, etc.
SMTP
access
protocol
receiver’s mail 
server
POP3 or IMAP4
Mail access protocols
 
Why not use
SMTP here?
 
Why do we need a
sender side mail
server?
 
POP vs IMAP
 
POP3
Stateless server
UA-heavy processing
UA retrieves email from
server, then typically deleted
from server
Latest changes are at the UA
Simple protocol (list, retr, del
within a POP session)
 
IMAP4
Stateful server
UA and server processing
Server sees folders, etc.
which are visible to UAs
Changes visible at the server
Complex protocol
 
12
 
What about web-based email?
 
Connect to mail servers via web browser
Ex: gmail, outlook, etc.
 
Browsers speak HTTP
Email servers speak SMTP
Need a bridge to retrieve email using HTTP!
 
13
 
Web based email
 
14
 
H
T
T
P
 
s
e
r
v
e
r
H
T
T
P
s
e
r
v
e
r
SMTP
Client
SMTP
server
 
Internet
 
15
 
Comparing SMTP with HTTP
 
HTTP: pull
SMTP: push
both have ASCII command/response interaction, status codes
HTTP: each object encapsulated in its own response msg
SMTP: multiple objects sent in multipart msg
 
HTTP: can put non-ASCII data directly in response
SMTP: need ASCII-based encoding!
 
Try an SMTP interaction!
 
 
17
 
FTP
 
File Transfer Protocol
 
Client server connection
 
20
 
Host name
 
IP Address
 
DNS
 
IP Address, port 21
 
ftp commands
 
Data transfer, port 20
 
21
 
FTP: the file transfer protocol
 
transfer file to/from remote host
client/server model
client:
 side that initiates transfer (either to/from remote)
server:
 remote host
ftp: RFC 959
ftp server: port 21, port 20 (data connection)
 
file transfer
 
remote file
system
 
user
at host
 
22
 
“out of band” control
Control connection:
Authorization
Directory browse
Commands
Data connection
Transfer files
FTP server maintains “state”:
current directory, earlier
authentication
 
FTP: separate control & data connections
 
23
 
FTP commands, responses
 
Sample commands
sent as ASCII text over control channel
USER 
username
PASS 
password
LIST
 
return list of file in current directory
RETR filename
 
retrieves (gets) file
STOR filename
 
stores (puts) file onto
remote host
 
Sample return codes
status code and phrase (as in HTTP)
331 Username OK, password
required
125 data connection already
open; transfer starting
425 Can’t open data connection
452 Error writing file
 
FTP Active connection
 
Client opens a connection from port x for sending commands to
server port 21
Server opens a connection from port 20 to send data at port x+1
 
24
 
Data connection initiated
from the server
 
FTP passive connection (always client
initiated)
 
Client opens a connection from port x for sending commands to
server port 21
Client sends a request for PASSIVE connection with PASV
command
Server replies with a new port number S
p
 on which it is listening
Client opens a connection from port x+1 to server port S
p
 
25
 
Connections always initiated from
the client
 
26
 
Problems with FTP
 
Sends passwords in plain ASCII text
Eavesdropper can recover passwords
Fatal flaw, turned off at a lot of sites
Replaced with scp, sftp instead
 
Recall the Internet protocol stack…
A
p
p
l
i
c
a
t
i
o
n
Transport
Network
Host-to-Net
 
HTTPS
 
28
 
Themes from application-layer protocols
 
Request/response nature of protocols
Headers determine the actions of all the parties of the protocol
 
Separation of concerns: Examples:
Content rendering for users (browser, UA) separated from protocol ops (mail server)
Reliable mail reception: Retrieve email at an “always on” receiver mail server
Reliable mail sending: Send mail using a different machine rather than UA
 
In-band vs. out-of-band control: SMTP+HTTP vs. FTP
Q: How are commands recognized as distinct from data?
 
Keep it simple until you really need complexity
Examples: ASCII-based design; stateless servers
IMAP for email organization
Secure extensions for FTP and HTTP
 
Next: Transport
Application
T
r
a
n
s
p
o
r
t
Network
Host-to-Net
 
HTTPS
Slide Note
Embed
Share

SMTP (Simple Mail Transfer Protocol) is a fundamental component of the application layer in computer networks. It is used for sending electronic mail messages between servers and user agents. The process involves user agents composing messages, connecting to mail servers, and transferring messages over TCP connections. SMTP plays a crucial role in the transmission of emails across the internet, ensuring efficient communication between users.

  • SMTP
  • Email protocol
  • Application layer
  • Internet communication

Uploaded on Sep 15, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. The Application Layer: SMTP, FTP CS 352, Lecture 5 http://www.cs.rutgers.edu/~sn624/352-S19 Srinivas Narayana 1

  2. Recap: Application-layer protocols DNS: lookup a (machine-readable) address using a (human- readable) name? Used by many applications as a building block Recursive lookups for scale and administrative convenience HTTP: Transfer content over the Internet with portability Very familiar to users of the Internet Many, many, applications use HTTP Today: SMTP (email) and FTP (file transfer)

  3. SMTP Simple Mail Transfer Protocol

  4. outgoing Electronic Mail message queue user mailbox user agent Three major components: 1. User agents a.k.a. mail reader e.g., Applemail, Outlook mail server user agent SMTP mail server user agent SMTP Web-based user agents (ex: gmail) SMTP user agent mail server user agent user agent 4

  5. Electronic Mail: Mail servers 2. Mail Servers Mailbox contains incoming messages for user Message queue of outgoing (to be sent) mail messages Sender mail server makes connection to Receiver mail server IP address, port 25 user agent mail server user agent SMTP mail server user agent SMTP SMTP 3. SMTP protocol Used to send messages Client: sending user agent or sending mail server server: receiving mail server user agent mail server user agent user agent 5

  6. 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 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 1 mail server mail server 3 user agent user agent 2 6 4 5 6

  7. Sample SMTP interaction 220 hill.com SMTP service ready HELO town.com MAIL FROM: <jack@town.com> RCPT TO: <jill@hill.com> DATA Jill, I m not feeling up to hiking today. Will you please fetch me a pail of water? . 250 message accepted QUIT 221 hill.com closing connection 250 hill.com Hello town.com, pleased to meet you 250 <jack@town.com> Sender ok 250 <jill@hill.com> Recipient ok 354 Enter mail, end with . on a line by itself 7

  8. MAIL command response codes 8

  9. Mail message (stored on server) format SMTP: protocol for exchanging email msgs RFC 822: standard for text message format: header blank line header lines, e.g., To: From: Subject: different from SMTP commands! (these would still be under DATA ) body body the message , ASCII characters only 9

  10. Message format: multimedia extensions MIME: multimedia mail extension, RFC 2045, 2056 additional lines in msg header declare MIME content type 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 MIME version method used to encode data multimedia data type, subtype, parameter declaration base64 encoded data ..... ......................... ......base64 encoded data encoded data 10

  11. Mail access protocols POP3 or IMAP4 SMTP SMTP access protocol user agent user agent receiver s mail server sender s mail server Why not use SMTP here? SMTP: delivery/storage to receiver s server Mail access protocol: retrieval from server POP: Post Office Protocol [RFC 1939] Client connects to POP3 server on TCP port 110 IMAP: Internet Mail Access Protocol [RFC 1730] Client connects to TCP port 143 HTTP: gmail, Yahoo! Mail, etc. Why do we need a sender side mail server? 11

  12. POP vs IMAP POP3 Stateless server UA-heavy processing UA retrieves email from server, then typically deleted from server Latest changes are at the UA Simple protocol (list, retr, del within a POP session) IMAP4 Stateful server UA and server processing Server sees folders, etc. which are visible to UAs Changes visible at the server Complex protocol 12

  13. What about web-based email? Connect to mail servers via web browser Ex: gmail, outlook, etc. Browsers speak HTTP Email servers speak SMTP Need a bridge to retrieve email using HTTP! 13

  14. Web based email HTTP server HTTP server SMTP Client SMTP server Internet 14

  15. Comparing SMTP with HTTP HTTP: pull SMTP: push both have ASCII command/response interaction, status codes HTTP: each object encapsulated in its own response msg SMTP: multiple objects sent in multipart msg HTTP: can put non-ASCII data directly in response SMTP: need ASCII-based encoding! 15

  16. Try an SMTP interaction!

  17. 17

  18. FTP File Transfer Protocol

  19. Client server connection DNS Host name IP Address ftp commands Data transfer, port 20 20

  20. FTP: the file transfer protocol file transfer FTP user interface FTP client FTP server user at host remote file system local file system transfer file to/from remote host client/server model client: side that initiates transfer (either to/from remote) server: remote host ftp: RFC 959 ftp server: port 21, port 20 (data connection) 21

  21. FTP: separate control & data connections out of band control Control connection: Authorization Directory browse Commands Data connection Transfer files FTP server maintains state : current directory, earlier authentication TCP control connection port 21 TCP data connection port 20 FTP client FTP server 22

  22. FTP commands, responses Sample commands sent as ASCII text over control channel USER username PASS password LISTreturn list of file in current directory RETR filenameretrieves (gets) file STOR filenamestores (puts) file onto remote host Sample return codes status code and phrase (as in HTTP) 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file 23

  23. FTP Active connection Data connection initiated from the server Client opens a connection from port x for sending commands to server port 21 Server opens a connection from port 20 to send data at port x+1 24

  24. FTP passive connection (always client initiated) Connections always initiated from the client Client opens a connection from port x for sending commands to server port 21 Client sends a request for PASSIVE connection with PASV command Server replies with a new port number Sp on which it is listening Client opens a connection from port x+1 to server port Sp 25

  25. Problems with FTP Sends passwords in plain ASCII text Eavesdropper can recover passwords Fatal flaw, turned off at a lot of sites Replaced with scp, sftp instead 26

  26. Recall the Internet protocol stack Application FTP HTTP HTTPS SMTP DNS Transport UDP TCP IP Network X.25 802.11 ATM Host-to-Net

  27. Themes from application-layer protocols Request/response nature of protocols Headers determine the actions of all the parties of the protocol Separation of concerns: Examples: Content rendering for users (browser, UA) separated from protocol ops (mail server) Reliable mail reception: Retrieve email at an always on receiver mail server Reliable mail sending: Send mail using a different machine rather than UA In-band vs. out-of-band control: SMTP+HTTP vs. FTP Q: How are commands recognized as distinct from data? Keep it simple until you really need complexity Examples: ASCII-based design; stateless servers IMAP for email organization Secure extensions for FTP and HTTP 28

  28. Next: Transport Application FTP HTTP HTTPS SMTP DNS Transport UDP TCP IP Network X.25 802.11 ATM Host-to-Net

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#