3rd Edition: Chapter 2 - Wayne State University
Download
Report
Transcript 3rd Edition: Chapter 2 - Wayne State University
ECE5650
FTP, Email, DNS, and P2P
2: Application Layer
1
Recap: HTTP and Web
HTTP request msg format and method
types:
GET, POST, HEAD, PUT, DELATE
HTTP response msg format and status
codes
Cookies and their usage:
Persistent vs Non-Persistent cookies
Web cache or proxy server:
Conditional GET (If-modified-since:) in HTTP
header
2: Application Layer
2
Examples ofInternet Services
2.1 Principles of
network applications
2.2 Web and HTTP
2.3 FTP
2.4 Electronic Mail
SMTP, POP3, IMAP
2.5 DNS
2.6 P2P file sharing
2.7 Socket programming
with TCP
2.8 Socket programming
with UDP
2.9 Building a Web
server
2: Application Layer
3
FTP: the file transfer protocol
user
at host
FTP
FTP
user
client
interface
file transfer
FTP
server
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 for control, port 20 for data
2: Application Layer
4
SFTP: secure file transfer protocol
user
at host
file transfer over SSH
SFTP
SFTP
SFTP
user
client
server
interface
local file
system
remote file
system
All communication (login, control and data are secured)
transfer file to/from remote host
same as FTP client/server model
network protocol designed by the IETF to provide secure
file transfer and manipulation facilities over the secure
shell (SSH) protocol.
2: Application Layer
5
FTP: separate control, data connections
TCP control connection
port 21
FTP client contacts FTP server
at port 21, specifying TCP as
transport protocol
Client obtains authorization over
control connection
Client browses remote directory
by sending commands over the
persistent control connection.
When server receives a
command for a file transfer or
directory listing, the server
opens a TCP data connection to
client
After transferring one file,
server closes connection.
FTP
client
TCP data connection
port 20
FTP
server
Server opens a second TCP data
connection to transfer another
file.
Control connection: “out of band”
HTTP sends control info in-band
FTP server maintains “state”:
current directory, earlier
authentication
2: Application Layer
6
FTP commands, responses
Sample commands:
Sample return codes
sent as ASCII text over
status code and phrase (as
control channel
USER username
PASS password
LIST return list of file in
RETR (Get) filename
STOR (Put) filename
current directory
retrieves (gets) file
stores (puts) file onto
remote host
in HTTP)
331 Username OK,
password required
125 data connection
already open;
transfer starting
425 Can’t open data
connection
452 Error writing
file
2: Application Layer
7
All FTP commands (RFC 959)
Access control commands:
USER, PASS, ACT, CWD, CDUP, SMNT, REIN, QUIT.
Transfer parameter commands:
PORT, PASV, TYPE STRU, MODE.
Service commands:
RETR, STOR, STOU, APPE, ALLO, REST, RNFR, RNTO,
ABOR, DELE, RMD, MRD, PWD, LIST, NLST, SITE,
SYST, STAT, HELP, NOOP.
www.faqs.org/rfcs/rfc959.html
2: Application Layer
8
FTP Summary
FTP/SFTP is used to transfer files between hosts
FTP is an out-of-band protocol: control is sent over
server port 21 while data is sent over server port
20.
Control connection is persistent and the FTP server
must maintain the state of the user.
Data connection is non-persistent and initiated by
FTP server.
2: Application Layer
9
Electronic Mail
outgoing
message queue
user mailbox
user
agent
Three major components:
user agents
mail servers
mail
server
SMTP
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
SMTP
mail
server
user
agent
SMTP
user
agent
mail
server
user
agent
user
agent
user
agent
2: Application Layer
10
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
2: Application Layer
11
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
2: Application Layer
12
Scenario: Alice sends message to Bob
1) 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
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
2: Application Layer
13
Sample SMTP interaction
C:
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
S:
C:
S:
telnet smtp.wayne.edu 25
220 mirapointmr3.wayne.edu
HELO alice
250 Hello alice, pleased to meet you
MAIL FROM: <[email protected]>
250 [email protected]... Sender ok
RCPT TO: <[email protected]>
250 [email protected] ... 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 wayne.edu closing connection
2: Application Layer
14
Try SMTP interaction for yourself:
telnet ece.eng.wayne.edu 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)
2: Application Layer
15
SMTP Mail message format
SMTP: protocol for
exchanging email msgs
RFC 822: standard for text
message format:
header lines, e.g.,
To:
From:
Subject:
header
blank
line
body
different from SMTP
commands. SMTP msg goes
into the DATA command
body
the “message”, 7-bit
ASCII characters only
2: Application Layer
16
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, quotedprintable is another method
multimedia data
type, subtype,
parameter declaration
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
encoded data where each line is 78
7-bit ASCII characters including CRLF
2: Application Layer
17
Base64 encoding scheme (RFC 2045)
Encoding (not encrypting) method
input: 8 bit ASCII data
output: one of the 64 values listed in the
Base64 encoding table and the “=“
character
Process:
group the input data in chunks of 3-bytes
or 24-bits each
break each 24-bit chunk into 4 values
that are 6-bits each
use the Base64 encoding table to find the
character of each value
if any chunk is less than 3 bytes then pad
it with 0s and use the “=“ for any of these
6 0s. A 6-bit value with all 0s and at least
1 non-padded 0 will be an “A”
Smallest base64 encoded output is 4
characters.
Base64 Encoding Table
Value Char
0A
Value Char
16 Q
Value Char
32 g
Value Char
48 w
1B
17 R
33 h
49 x
2C
18 S
34 i
50 y
3D
19 T
35 j
51 z
4E
20 U
36 k
52 0
5F
21 V
37 l
53 1
6G
22 W
38 m
54 2
7H
23 X
39 n
55 3
8I
24 Y
40 o
56 4
9J
25 Z
41 p
57 5
10 K
26 a
42 q
58 6
11 L
27 b
43 r
59 7
12 M
28 c
44 s
60 8
13 N
29 d
45 t
61 9
14 O
30 e
46 u
62 +
15 P
31 f
47 v
63 /
Example: input is AB
A ASCII hex=0x41
B ASCII hex=0x42
16-bits + 8 padded 0s:
0100 0001 0100 0010 0000 0000
4 values that are 6-bits each:
010000-010100-001000-000000
16-20-8-6 padded 0s
Base64 output is QUI=
2: Application Layer
18
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
POP3: Post Office Protocol version 3 [RFC 1939] uses
port 110
• 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.
2: Application Layer
19
POP3 protocol
authorization phase
client commands:
user: declare username
pass: password
server responses
+OK (Server accepted prior command)
-ERR (server rejected prior command)
transaction phase, client:
list: list message numbers
retr: retrieve message by number
dele: delete
quit
UIDL: “unique-ID listing” list unique
message ID for all of the messages present
in the users mailbox. Useful for downloadand-keep by keeping a file that lists the
messages retrieved in earlier sessions, the
client can use the UIDL command to
determine which messages on the server
have already been seen.
“Received:” in the msg indicates the SMTP
servers that forwarded the msg
C:
S:
C:
S:
C:
S:
telnet mail.wayne.edu 110
+OK POP3 server ready
user bob
+OK
pass hungry
+OK user successfully logged on
C:
S:
S:
S:
C:
S:
S:
S:
S:
C:
C:
S:
S:
C:
C:
S:
list
1 498
2 912
.
retr 1
Return-Path: <fromuser@..>
Received: from b1 by d1 ...
more data..
.
dele 1
retr 2
<message 1 contents>
.
dele 2
quit
+OK POP3 server signing off
2: Application Layer
20
POP3 (more) and IMAP
More about POP3
Previous example uses
“download-and-delete”
mode.
User cannot re-read
the deleted e-mail.
“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
2: Application Layer
21
Email Summary
Comparison with HTTP:
SMTP and POP3 uses
persistent connections
SMTP requires message
(header & body) to be in 7bit ASCII
SMTP server uses
CRLF.CRLF to determine
end of message
download-and-delete vs
download-and-keep in POP3
All data communications
are insecure by default
HTTP: pull data from web
server
SMTP: push data to mail
server
both have command/response
interaction, status codes
HTTP: each object
encapsulated in its own
response msg
SMTP: multiple objects sent in
one multipart msg
SMPT msg must be in 7-bit
ASCII while HTTP has no
restriction
2: Application Layer
22
Examples ofInternet Services
2.1 Principles of
network applications
2.2 Web and HTTP
2.3 FTP
2.4 Electronic Mail
SMTP, POP3, IMAP
2.5 DNS
2.6 P2P file sharing
2.7 Socket programming
with TCP
2.8 Socket programming
with UDP
2.9 Building a Web
server
2: Application Layer
23