server - Department of Computer Science

Download Report

Transcript server - Department of Computer Science

Chapter 7: Application layer
• Application Layer
– Domain name system (DNS)
– Electronic Mail
– World Wide Web (WWW)
• Readings
– Sections 7.1-7.3
1
Applications and application-layer protocols
Application: communicating, distributed
processes
– running in network hosts in
“user space”
– exchange messages to
implement app
– e.g., email, file transfer, the
Web
Application-layer protocols
– one “piece” of an app
– define messages exchanged by
apps and actions taken
– user services provided by lower
layer protocols
application
transport
network
data link
physical
application
transport
network
data link
physical
application
transport
network
data link
physical
2
Client-server paradigm
Typical network app has two pieces:
client and server
Client:
initiates contact with server (“speaks
first”)
typically requests service from server,
for Web, client is implemented in
browser; for e-mail, in mail reader
Server:
provides requested service to client
e.g., Web server sends requested Web
page, mail server delivers e-mail
application
transport
network
data link
physical
request
reply
application
transport
network
data link
physical
3
What transport service does an app need?
Data loss
•
•
some apps (e.g., audio) can
tolerate some loss
other apps (e.g., file transfer,
telnet) require 100% reliable
data transfer
Delay
•
Bandwidth
some apps (e.g., multimedia)
require minimum amount of
bandwidth to be “effective”
other apps (“elastic apps”) make
use of whatever bandwidth they get
some apps (e.g., Internet
telephony, interactive games)
require low delay to be
“effective”
4
Transport service requirements of common apps
Data loss
Bandwidth
Time Sensitive
file transfer
e-mail
Web documents
real-time audio/video
no loss
no loss
loss-tolerant
loss-tolerant
no
no
no
yes, 100’s msec
stored audio/video
interactive games
financial apps
loss-tolerant
loss-tolerant
no loss
elastic
elastic
elastic
audio: 5Kb-1Mb
video:10Kb-5Mb
same as above
few Kbps up
elastic
Application
yes, few secs
yes, 100’s msec
yes and no
5
Internet apps: their protocols and transport protocols
Application
e-mail
remote terminal access
Web
file transfer
streaming multimedia
remote file server
Internet telephony
Application
layer protocol
Underlying
transport protocol
smtp [RFC 821]
telnet [RFC 854]
http [RFC 2068]
ftp [RFC 959]
proprietary
(e.g. RealNetworks)
NFS
proprietary
(e.g., Vocaltec)
TCP
TCP
TCP
TCP
TCP or UDP
TCP or UDP
typically UDP
6
DNS: Domain Name System
DNS services
• Hostname to IP address translation
• Host aliasing
– Canonical and alias names
• Mail server aliasing
• Load distribution
– Replicated Web servers: set of IP addresses for one canonical
name
7
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
fsu.edu
umass.edu
DNS serversDNS servers
8
DNS: Root name servers
•
•
contacted by local name server that cannot resolve name
root name server:
– contacts authoritative name server if name mapping not known
– gets mapping
– returns mapping to local name server
a Verisign, Dulles, VA
c Cogent, Herndon, VA (also Los Angeles)
d U Maryland College Park, MD
k RIPE London (also Amsterdam,
g US DoD Vienna, VA
Frankfurt) Stockholm (plus 3
i Autonomica,
h ARL Aberdeen, MD
other locations)
j Verisign, ( 11 locations)
13 root name servers
worldwide
m WIDE Tokyo
e NASA Mt View, CA
f Internet Software C. Palo Alto,
CA (and 17 other locations)
b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA
9
TLD and Authoritative Servers
• Top-level domain (TLD) servers: responsible for com,
org, net, edu, etc, and all top-level country domains cn,
ca, fr, jp, uk etc.
– Network solutions maintains servers for com TLD
– Educause for edu TLD
• Authoritative DNS servers: organization’s DNS servers,
providing authoritative hostname to IP mappings for
organization’s servers (e.g., Web and mail).
– Can be maintained by organization or service provider
10
Local Name Server
• Each ISP (residential ISP, company, university) has
one.
– Also called “default name server”
• When a host makes a DNS query, query is sent to its
local DNS server
– Acts as a proxy, forwards query into hierarchy.
11
root DNS server
Iterative Queries
2
3
4
iterated query:
•
•
contacted server replies with
name of server to contact
“I don’t know this name, but
ask this server”
TLD DNS server
5
local DNS server
dns.poly.edu
1
8
requesting host
7
6
authoritative DNS server
dns.cs.umass.edu
cis.poly.edu
gaia.cs.umass.edu
12
Recursive queries
root DNS server
2
3
7
recursive query:
6
TLD DNS server
puts burden of name resolution
on contacted name server
heavy load?
local DNS server
dns.poly.edu
1
5
4
8
requesting host
authoritative DNS server
dns.cs.umass.edu
cis.poly.edu
gaia.cs.umass.edu
13
DNS: caching and updating records
• once (any) name server learns mapping, it caches mapping
– cache entries timeout (disappear) after some time
– TLD servers typically cached in local name servers
• Thus root name servers not often visited
14
DNS records
DNS: distributed db storing resource records (RR)
RR format: (name,
• Type=A
name is hostname
value is IP address
• Type=NS
– name is domain (e.g.
foo.com)
– value is IP address of
authoritative name
server for this domain
ttl, class, type, value
• Type=CNAME
name is alias name for some
“canonical” (the real) name
www.ibm.com is really
servereast.backup2.ibm.com
value is canonical name
• Type=MX
value is name of mail server associated
with name
15
• Example:
Aix
86400
86400
86400
Aix-4 86400
ftp
86400
www 86400
•
•
IN
IN
IN
IN
IN
IN
A 192.168.42.2
MX 5 aix.unpbook.com.
MX 10 mailhost.unpbook.com.
A 192.168.42.2
CNAME linux.unpbook.com
CNAME linux.unpbook.com
DNS uses UDP to exchange information
Query is initiated from a system call: gethostbyname, gethostbyaddr.
16
Electronic Mail
user mailbox
Three major components:
• user agents
• mail servers
• simple mail transfer protocol:
SMTP
outgoing
message queue
user
agent
mail
server
user
agent
SMTP
User Agent
SMTP
• a.k.a. “mail reader”
• composing, editing, reading
mail messages
mail
server
• e.g., pine, Eudora, Outlook,
elm, Netscape Messenger
• outgoing, incoming messages
stored on server
user
SMTP
mail
server
user
agent
user
agent
user
agent
agent
17
Electronic Mail: mail servers
user
agent
Mail Servers
• mailbox contains incoming
messages (yet to be read) 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
user
agent
SMTP
SMTP
SMTP
mail
server
mail
server
user
agent
user
agent
user
agent
user
agent
18
Electronic Mail: SMTP [RFC 821]
• uses tcp to reliably transfer email msg 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
19
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
20
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)
• The current SMTP-based email system cannot verify
the identity of sender
– Sender Policy Framework/SenderID proposed to verify if
sender mail server is authorized to send email for the sender
email address
21
smtp: final words
• smtp uses persistent connections
– keep-alive connections, more than one request-response per
TCP/IP connection
– if there are more messages – they are sent via a persistent TCP
connection
• smtp requires that message (header & body) be in 7-bit ascii
• certain character strings are not permitted in message (e.g.,
CRLF.CRLF). Thus message has to be encoded (usually into
either base-64 or quoted printable)
• smtp server uses CRLF.CRLF to determine end of message
22
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
23
Message format: multimedia extensions
•
MIME: multimedia mail extension, RFC 2045, 2056
– Multipurpose Internet Mail Extensions
– Support for non-ASCII messages, non-textual messages, multipart messages,
non-ASCII message headers, etc
•
additional lines in msg header declare MIME content type
MIME version
method used
to encode data
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
24
MIME types
Content-Type: type/subtype; parameters
Text
• example subtypes: plain,
html
Image
• example subtypes: jpeg,
gif
Video
•
Application
•
•
Audio
example subtypes: mpeg,
quicktime
other data that must be
processed by reader before
“viewable”
example subtypes: msword,
octet-stream
• example subtypes: basic
(8-bit mu-law encoded),
32kadpcm (32 kbps
coding)
25
Multipart Type
From: [email protected]
To: [email protected]
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=98766789
--98766789
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain
Dear Bob,
Please find a picture of a crepe.
--98766789
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
--98766789--
26
Mail access protocols
SMTP
user
agent
•
•
SMTP
POP3 or
IMAP
user
agent
receiver’s mail
sender’s mail
server
server
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.
27
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
S:
C:
S:
C:
S:
+OK POP3 server ready
user alice
+OK
pass hungry
+OK user successfully logged on
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
28
Web and HTTP
First some jargon
• Web page consists of objects
• Object can be HTML file, JPEG image, Java
applet, audio file,…
• Web page consists of base HTML-file which
includes several referenced objects
• Each object is addressable by a URL
• Example URL:
www.someschool.edu/someDept/pic.gif
host name
path name
HTTP overview
HTTP: hypertext transfer
protocol
• Web’s application layer
protocol
• client/server model
– client: browser that
requests, receives,
“displays” Web objects
– server: Web server
sends objects in
response to requests
• HTTP 1.0: RFC 1945
• HTTP 1.1: RFC 2068
PC running
Explorer
Server
running
Apache Web
server
Mac running
Navigator
HTTP overview (continued)
Over TCP:
• client initiates TCP connection (creates socket) to
server, port 80
• server accepts TCP connection from client
• HTTP messages (application-layer protocol
messages) exchanged between browser (HTTP
client) and Web server (HTTP server)
• TCP connection closed
HTTP request message
• two types of HTTP messages: request,
response
• HTTP request message:
– ASCII (human-readable format)
request line
(GET, POST,
HEAD commands)
header
lines
Carriage return,
line feed
indicates end
of message
GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
User-agent: Mozilla/4.0
Connection: close
Accept-language:fr
(extra carriage return, line feed)
HTTP request message: general
format
HTTP response message
status line
(protocol
status code
status phrase)
header
lines
data, e.g.,
requested
HTML file
HTTP/1.1 200 OK
Connection close
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 …...
Content-Length: 6821
Content-Type: text/html
data data data data data ...
Trying out HTTP (client side) for yourself
1. Telnet to your favorite Web server:
telnet www.cs.fsu.edu 80Opens TCP connection to port 80
(default HTTP server port) at www.cs.fsu.edu.
Anything typed in sent
to port 80 at cis.poly.edu
2. Type in a GET HTTP request:
GET index.html / HTTP/1.1
Host: www.cs.fsu.edu
By typing this in (hit carriage
return twice), you send
this minimal (but complete)
GET request to HTTP server
3. Look at response message sent by HTTP server!
telnet www.cs.fsu.edu 80
Trying 192.168.23.10...
Connected to www.cs.fsu.edu (192.168.23.10).
Escape character is '^]'.
GET /index.html /HTTP/1.1
Host: www.cs.fsu.edu
HTTP/1.1 200 OK
Date: Wed, 28 Nov 2007 18:34:29 GMT
Server: Apache/2.0.52 (Scientific Linux)
Last-Modified: Mon, 29 Aug 2005 18:02:35 GMT
ETag: "1defce0-29c5-4cd2a4c0"
Accept-Ranges: bytes
Content-Length: 10693
Connection: close
Content-Type: text/html; charset=ISO-8859-1
<html>
<head>
<title>Computer Science @ Florida State University</title>
<base HREF="http://www.cs.fsu.edu/">
<meta NAME="resource-type" CONTENT="document">
<meta NAME="description" CONTENT="Website for the Computer Science Department
at Florida State University">
<meta NAME="keywords"
CONTENT="Florida State University, Computer Science,
Internet2, CS">
<meta NAME="distribution" CONTENT="global">
<meta NAME="author"
CONTENT="Kendal Van Dyke">
36
User-server state: cookies
• HTTP is stateless.
– two requests are treated independently.
– Why stateless?
– What is the problem with a stateless http?
• E-commence: People buy things by making many
requests. Need the ability to bind the requests from the
same customer together.
– Solution: cookies
Cookies: keeping “state” (cont.)
client
Cookie file
server
usual http request msg
usual http response +
ebay: 8734
Cookie file
amazon: 1678
ebay: 8734
Set-cookie: 1678
usual http request msg
cookie: 1678
usual http response msg
one week later:
Cookie file
amazon: 1678
ebay: 8734
usual http request msg
cookie: 1678
usual http response msg
server
creates ID
1678 for user
cookiespecific
action
cookiespectific
action
Cookies (continued)
aside
What cookies can
bring:
• authorization
• shopping carts
• recommendations
• user session state
(Web e-mail)
Cookies and privacy:
• cookies permit sites to
learn a lot about you
• you may supply name
and e-mail to sites
• search engines use
redirection & cookies
to learn yet more
• advertising companies
obtain info across sites
• Some issues in HTTP:
• Mainly due to its popularity
– Cache support.
• Insufficient in http/1.0, improved in http/1.1
• Intermediate nodes, encoding, etc
– Dynamically generated date
• Not reliable in http/1.0
– Performance
• Persistent or non-persistent TCP connection
• Download the whole file or part of a file
– User preference
– Security