05-ftp-email-dns - Rose

advertisement
05 - FTP, Email, and DNS
2: Application Layer
1
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

2: Application Layer
2
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 control
connection.
When server receives a
command for a file transfer,
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”
 FTP server maintains “state”:
current directory, earlier
authentication
2: Application Layer
3
Sample commands
 sent as ASCII text over control channel
 Authentication
 USER: specify the user name to log in as
 PASS: specify the user’s password
 Exploring the files
 LIST: list the files for the given file specification
 CWD: change to the given directory
 Downloading and uploading files
 TYPE: set type to ASCII (A) or binary image (I)
 RETR: retrieve the given file
 STOR: upload the given file
 Closing the connection
 QUIT: close the FTP connection
2: Application Layer
4
Why two connections?
 Avoids need to mark the end of the data transfer
 Data transfer ends by closing of data connection
 Yet, the control connection stays up
 Aborting a data transfer
 Can abort a transfer without killing the control
connection
 … which avoids requiring the user to log in again
 Done with an ABOR on the control connection
 Third-party file transfer between two hosts
 Data connection could go to a different host
 … by sending a different client IP address to the server
 E.g., user coordinates transfer between two servers
 But: this is rarely needed, and presents security issues
2: Application Layer
6
FTP, SFTP
 FTP is not secure – nothing is encrypted!
 SFTP uses SSH, and should be used instead
of FTP when possible.
2: Application Layer
7
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., Apple Mail, Outlook,
elm
 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
8
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
9
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
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
10
Electronic Mail: SMTP [RFC 2821]
 uses TCP to reliably transfer email message from client
to server, port 25
 direct transfer: sending server (client) to receiving
server (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
11
Sample SMTP interaction
>telnet hamburger.edu 25
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
Handshake
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... 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
2: Application Layer
12
SMTP: final words
 SMTP uses persistent
connections
 SMTP requires message
(header & body) to be in 7bit ASCII
 SMTP server uses
CRLF.CRLF to determine
end of message
Comparison 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
2: Application Layer
13
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!

header
blank
line
body
 body

the “message”, ASCII
characters only
2: Application Layer
14
Message format: multimedia extensions
 MIME: Multipurpose Internet 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
2: Application Layer
15
MIME types
Content-Type: type/subtype; parameters
Text
 example subtypes: plain,
html
Image
 example subtypes: jpeg,
gif
Audio
 example subtypes: basic
Video
 example subtypes: mpeg,
quicktime
Application
 other data that must be
processed by reader
before “viewable”
 example subtypes:
msword, octet-stream
(8-bit mu-law encoded),
32kadpcm (32 kbps
coding)
2: Application Layer
16
Multipart Type
From: alice@crepes.fr
To: bob@hamburger.edu
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=StartOfNextPart
--StartOfNextPart
Dear Bob, Please find a picture of a crepe.
--StartOfNextPart
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
--StartOfNextPart
Do you want the recipe?
2: Application Layer
17
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

POP: Post Office Protocol [RFC 1939]
• TCP, 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: gmail, Hotmail , Yahoo! Mail, etc.
2: Application Layer
18
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
Update phase- server deletes
S:
C:
S:
C:
S:
+OK POP3 server ready
user bob
+OK
pass hungry
+OK user successfully logged
C:
S:
S:
S:
C:
S:
S:
C:
C:
S:
S:
C:
C:
S:
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
2: Application Layer
on
19
POP3 (more) and IMAP
More about POP3
 Previous example uses
“download and delete”
mode.
 Bob cannot re-read email 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
 Can also download only
portions of a message e.g.
headers
2: Application Layer
20
Web-based E-mail
 User agent: browser
 Use HTTP to send e-mail to server and
receive e-mail from server.
 SMTP between servers.
2: Application Layer
21
DNS: Domain Name System
people: many identifiers:

SSN, name, passport #
Internet hosts, routers:


IP address (32 bit) - used for addressing datagrams
“name”, e.g., www.yahoo.com - used by humans
Q: map between IP address and name, and vice versa
?
www.rose-hulman.edu  DNS  137.112.18.43
22
DNS
DNS services
 hostname to IP
address translation
 host aliasing

Canonical, alias names
 mail server aliasing
 Core Internet function
implemented as
application layer
protocol
 load distribution

replicated Web
servers: set of IP
addresses for one
Why not centralize DNS?
 single point of failure
 traffic volume
 distant centralized
database
 maintenance
 doesn’t scale!
23
DNS name servers
DNS is a distributed
database implemented in
hierarchy of many name
servers
 no server has all name-
to-IP address mappings
 local name servers:


each ISP, company has
local (default) name server
host DNS query first goes
to local name server
 authoritative name
server:


for a host: stores that
host’s IP address, name
can perform name/address
translation for that host’s
name
2: Application Layer
24
Distributed, Hierarchical Database
Root DNS Servers
com DNS servers
yahoo.com
amazon.com
DNS servers DNS servers
org DNS servers
pbs.org
DNS servers
edu DNS servers
poly.edu
umass.edu
DNS serversDNS servers
client wants IP for www.amazon.com; 1st approx:
 client queries a root server to find com DNS server
 client queries com DNS server to get amazon.com DNS server
 client queries amazon.com DNS server to get IP address for
www.amazon.com
25
DNS: Root name servers
 contacted by local name server that can not resolve name
 root name server:



contacts authoritative name server if name mapping not known
gets mapping
returns mapping to local name server
a NSI Herndon, VA
c PSInet Herndon, VA
d U Maryland College Park, MD
g DISA Vienna, VA
h ARL Aberdeen, MD
j NSI (TBD) Herndon, VA
k RIPE London
i NORDUnet Stockholm
m WIDE Tokyo
e NASA Mt View, CA
f Internet Software C. Palo Alto,
CA
b USC-ISI Marina del Rey, CA
l ICANN Marina del Rey, CA
Zonefile stored at a root server
13 root name
servers worldwide
(actually > 80 using
anycasting)
2: Application Layer
26
Simple DNS example
host surf.eurecom.fr
wants IP address of
gaia.cs.umass.edu
root name server
2
4
5
1. contacts its local DNS
server, dns.eurecom.fr
2. dns.eurecom.fr contacts local name server
dns.eurecom.fr
root name server, if
necessary
1
6
3. root name server contacts
authoritative name server,
dns.umass.edu, if
requesting host
necessary
surf.eurecom.fr
3
authoritative name server
dns.cs.umass.edu
gaia.cs.umass.edu
2: Application Layer
27
DNS example
root name server
Root name server:
 may not know
authoritative name
server
 may know
intermediate name
server: who to
contact to find
authoritative name
server
6
2
7
local name server
dns.eurecom.fr
1
8
requesting host
3
intermediate name server
dns.umass.edu
4
5
authoritative name server
dns.cs.umass.edu
surf.eurecom.fr
gaia.cs.umass.edu
2: Application Layer
28
DNS: iterated queries
recursive query:
iterated query:
 contacted server
replies with name of
server to contact
 “I don’t know this
name, but ask this
server”
iterated query
2
 puts burden of name
resolution on
contacted name
server
 heavy load?
root name server
3
4
7
local name server
dns.eurecom.fr
1
8
requesting host
intermediate name server
dns.umass.edu
5
6
authoritative name server
dns.cs.umass.edu
surf.eurecom.fr
gaia.cs.umass.edu
2: Application Layer
29
DNS: caching and updating records
 once (any) name server learns mapping, it caches
mapping
 cache entries timeout (disappear) after some
time
 If the TLD servers and intermediate DNS
servers perform their functions correctly, the
root servers will rarely be contacted.
2: Application Layer
30
DNS records
DNS: distributed db stores resource records (RR)
RR format: (name,
 Type=A
 name is hostname
 value is IP address
value, type, ttl)
 Type=CNAME
 name is alias name for some
“canonical” (the real) name
www.ibm.com is really
 Type=NS
servereast.backup2.ibm.com
 name is domain (e.g.
 value is canonical name
foo.com)
 value is IP address of
 Type=MX
authoritative name
 value is name of mailserver
server for this domain
associated with name
Use “nslookup” and “dig” to see RRs.
2: Application Layer
31
Download