server

advertisement
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
local file
system
FTP
server
remote 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”
bob@wayne.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
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: <alice@crepes.fr>
250 alice@crepes.fr... Sender ok
RCPT TO: <bob@wayne.edu>
250 bob@wayne.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 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:
different from SMTP
commands. SMTP msg goes
into the DATA command

header
blank
line
body
 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: 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
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
Download