3rd Edition: Chapter 2 - Wayne State University
Download
Report
Transcript 3rd Edition: Chapter 2 - Wayne State University
ECE5650:
Network Services
Network Services
1
Examples of Network Services
E-mail
Internet telephone
Web
Real-time video
Instant messaging
Remote login
P2P file sharing
conference
Massive parallel
computing
Multi-user network
games
Streaming stored
video clips
Network Services
2
Creating a network app
Write programs that
run on different end
systems and
communicate over a
network.
e.g., Web: Web server
software communicates
with browser software
little software written for
devices in network core
network core devices do
not run user application
code
application on end systems
allows for rapid app
development, propagation
application
transport
network
data link
physical
application
transport
network
data link
physical
application
transport
network
data link
physical
Network Services
3
Goal
define services offered by the application
layer
define the architecture of network
applications
examine popular application-level protocols:
HTTP, FTP, EMAIL, DNS
programming network applications
socket API
Network Services
4
Outline
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
Goal:
define services offered by the application layer
define the architecture of network applications
programming network applications: socket API
Network Services
5
Application architectures
Appl arch is designed by appl developers
and dictates how the appl is organized over
various end-systems
Types of organizations:
Client-server (thin vs thick client)
Peer-to-peer (P2P)
Hybrid of client-server and P2P
Network Services
6
Client-server architecture
Client/Server
server:
waits to be contacted
always-on
have permanent IP
address
server farms for scaling
clients:
Client/Client/Server
Web Server
(e.g. IIS,Apache)
Database Server
(e.g. DB2, Oracle)
Application Server
(e.g. WebSphere)
initiates communication
can be thin (browser-only)
or thick (need more than a
browser)
not always-on
may have dynamic IP
addresses
do not communicate
directly with each other
Network Services
7
Pure P2P architecture
server is not always-on
arbitrary end systems
directly communicate,
without passing through
special servers
peers are intermittently
connected and change IP
addresses
examples: Gnutella, KaZaa,
Bitorrent
Highly scalable
But difficult to manage
P2P file sharing accounts for
a major portion of all traffic
Network Services
8
Hybrid of client-server and P2P
Napster Bitorrent
File transfer P2P
File search centralized:
• Peers register content at central server
• Peers query same central server to locate content
Instant messaging
Chatting between two users is P2P
Presence detection/location centralized:
• User registers its IP address with central server
when it comes online
• User contacts central server to find IP addresses of
buddies
Network Services
9
Processes communicating
Process: program running within a host.
within same host, two processes communicate
using inter-process communication (IPC) (defined
by OS).
processes in different hosts communicate by
exchanging messages
A network appl consists of pairs of processes
that send messages to each other over a network
The process initiating the comm is labeled as client, and
the other waiting to be connected as server
Applications with P2P architectures have client
processes & server processes
A process assumes client and server roles in diff time
Network Services
10
Sockets
process sends/receives
messages to/from its socket
socket analogous to door
sending process shoves msg out
door
sending process relies on
transport infrastructure on
other side of door which brings
message to socket at receiving
process
Interface between the appl and
transport layer within a host
host or
server
host or
server
process
controlled by
app developer
process
socket
socket
TCP with
buffers,
variables
Internet
TCP with
buffers,
variables
controlled
by OS
Socket API available for developers: (1) choice of transport
protocol; (2) ability to fix a few parameters. Everything else
handled by the OS
Process naming: host IP addr + port number.
Network Services
11
Application layer protocol defines
Types of messages
exchanged, e.g., request
& response messages
Syntax of message
types: what fields in
messages & how fields
are delineated
Semantics of the
fields, i.e., meaning of
information in fields
Rules for when and how
processes send &
respond to messages
Public-domain protocols:
defined in RFCs
allows for
interoperability
e.g., HTTP, SMTP
Proprietary protocols:
e.g., KaZaA
Appl-layer protocol is one piece
of a network appl.
Network Services
12
What services does an application need?
Data loss (Reliable transfer)
some apps (e.g., audio) can
tolerate some loss
other apps (e.g., file transfer,
telnet) require 100% reliable
data transfer
Timing
some apps (e.g., Internet
telephony, interactive
games) require low delay to
be “effective” (hard realtime)
Examples: no real-time
(soft real-time)?
Bandwidth
some apps (e.g.,
multimedia, bwsensitive appl) require
minimum amount of
bandwidth to be
“effective”
other apps (“elastic
apps”) make use of
whatever bandwidth
they get. Exampes ??
Network Services
13
Service requirements of common apps
Data loss
Bandwidth
Time Sensitive
file transfer
e-mail
Web documents
real-time audio/video
no loss
no loss
no loss
loss-tolerant
no
no
no
yes, 100’s msec
stored audio/video
interactive games
instant messaging
loss-tolerant
loss-tolerant
no loss
elastic
elastic
elastic
audio: 5kbps-1Mbps
video:10kbps-5Mbps
same as above
few kbps up
elastic
Application
yes, few secs
yes, 100’s msec
yes and no
Network Services
14
Network Applications Summary
Network applications architecture:
client/server, P2P, hyprid of both
Sockets (IP+port):
socket API offered by OS and used by
processes to communicate
Application Layer services:
specify syntax and type of msgs, rules of
send/receive
have data loss, timing and bandwidth
Network Services
15
Internet transport protocols services
TCP service:
connection-oriented: setup
required between client and
server processes
reliable transport between
sending and receiving process
flow control: sender won’t
overwhelm receiver
congestion control: throttle
sender when network
overloaded
does not providing: timing,
minimum bandwidth
guarantees
UDP service:
unreliable data transfer
between sending and
receiving process
does not provide:
connection setup,
reliability, flow control,
congestion control, timing,
or bandwidth guarantee
Q: why bother? Why is
there a UDP?
Network Services
16
Internet apps: application, transport protocols
Application
e-mail
remote terminal access
Web
file transfer
streaming multimedia
Internet telephony
Application
layer protocol
Underlying
transport protocol
SMTP [RFC 2821]
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
proprietary
(e.g. RealNetworks)
proprietary
(e.g., Dialpad)
TCP
TCP
TCP
TCP
TCP or UDP
typically UDP
Real-time applications are often run in UDP:
they can tolerate some loss, but
require a minimal rate
Network Services
17
Network 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
Network Services
18
Web and HTTP
Web Application
Client-server appl that allows clients to obtain
documents from web servers on demand
Components:
•
•
•
•
HTML document format
Web browsers: e.g. IE, firefox
Web servers: e.g Apache,
Appl-layer protocol: HTTP
HTTP protocol
Network Services
19
Web and HTTP (hyper-text transfer protocol)
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 (Uniform
Resource Locator)
Example URL:
http://www.someschool.edu/someDept/pic.gif
protocol
host name
path name
Network Services
20
HTTP overview
HTTP: hypertext
transfer protocol
Web’s application layer
protocol
Stateless 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
Network Services
21
HTTP overview (continued)
Uses TCP (transport layer
protocol):
client initiates TCP
connection (creates socket)
to server, port 80
server accepts TCP
connection from client
HTTP messages (applicationlayer protocol messages)
exchanged between browser
(HTTP client) and Web
server (HTTP server)
TCP connection closed
HTTP is “stateless”
server maintains no
information about
past client requests
aside
Protocols that maintain
“state” are complex!
past history (state) must
be maintained
if server/client crashes,
their views of “state” may
be inconsistent, must be
reconciled
Network Services
22
HTTP connections
Nonpersistent HTTP
At most one object is sent over a TCP connection.
HTTP/1.0 uses nonpersistent HTTP
Persistent HTTP
Multiple objects can be sent over single TCP connection
between client and server.
HTTP/1.1 uses persistent connections in default mode
Connection established when the 1st web page is requested
and used for all subsequent pages/objects requests until a web
server timeout value is reached.
Either the client or server can close the persistent connection
by including the connection-token "close" in the Connectionheader field of the http request/reply.
Network Services
23
Nonpersistent HTTP
(contains text,
Suppose user enters URL
references to 10
www.someSchool.edu/someDepartment/home.index
jpeg images)
1a. HTTP client initiates TCP
connection to HTTP server
(process) at
www.someSchool.edu on port 80
2. HTTP client sends HTTP
request message (containing
URL) into TCP connection
socket. Message indicates
that client wants object
someDepartment/home.index
1b. HTTP server at host
www.someSchool.edu waiting
for TCP connection at port 80.
“accepts” connection, notifying
client
3. HTTP server receives request
message, forms response
message containing requested
object, and sends message
into its socket
time
Network Services
24
Nonpersistent HTTP (cont.)
4. HTTP server closes TCP
5. HTTP client receives response
connection.
message containing html file,
displays html. Parsing html
file, finds 10 referenced jpeg
objects
time 6. Steps 1-5 repeated for each
of 10 jpeg objects
Network Services
25
Response time modeling
Definition of RTT (Round Trip
Time): time to send a small
packet to travel from
client to server and back. initiate TCP
connection
Response time:
RTT
request
one RTT to initiate TCP
connection (always needed) file
RTT
one RTT for HTTP request
file
and first few bytes of
received
HTTP response to return
file transmission time
time
time to
transmit
file
time
total = 2RTT+transmit time (depends on
file size and bandwidth)
Network Services
26
Persistent HTTP
Nonpersistent HTTP issues:
requires 2 RTTs per object
OS overhead for each TCP
connection
browsers often open parallel
TCP connections to fetch
referenced objects
Persistent HTTP
server leaves connection
open after sending response
subsequent HTTP messages
between same client/server
sent over open connection
Persistent without pipelining:
client issues new request
only when previous
response has been received
one RTT for each
referenced object
Persistent with pipelining:
default in HTTP/1.1
client sends requests as
soon as it encounters a
referenced object
as little as one RTT for
all the referenced objects
within the requested web
page
Network Services
27
HTTP request message
two types of HTTP messages:
request, response
HTTP request message:
ASCII (human-readable format)
request line
(GET, POST,
HEAD commands)
GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
User-agent: Mozilla/4.0
Compare to
header Connection: close
Connection:
lines Accept-language:fr
Carriage return,
line feed
indicates end
of message
Keep-Alive
(extra carriage return, line feed)
Network Services
28
HTTP request message (RFC 2616):
general format
Network Services
29
Uploading form input
Post method:
Web page often
includes form input
Input is uploaded to
server in entity body
URL method:
Uses GET method
Input is uploaded in
URL field of request
line:
www.somesite.com/animalsearch?monkeys&banana
Network Services
30
Method types
HTTP/1.0
GET
POST
HEAD
asks server to leave
requested object out of
response (used mainly
for debugging)
HTTP/1.1
GET, POST, HEAD
PUT
uploads file in entity
body to path specified
in URL field
DELETE
deletes file specified in
the URL field
Network Services
31
HTTP response message
status line (protocol
status code and phrase)
date at web server
when file was requested
file last modified date
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 ...
Network Services
32
HTTP response status codes
In first line in server->client response message.
A few sample codes:
200 OK
request succeeded, requested object later in this message
301 Moved Permanently
requested object moved, new location specified later in
this message (Location:)
400 Bad Request
request message not understood by server
404 Not Found
requested document not found on this server
505 HTTP Version Not Supported
Network Services
33
Trying out HTTP (client side) for yourself
1. Telnet to your favorite Web server:
telnet ece.eng.wayne.edu 80
Opens TCP connection to port 80
(default HTTP server port) at cis.poly.edu.
Anything typed in sent
to port 80 at cis.poly.edu
2. Type in a GET HTTP request:
GET /~czxu/ HTTP/1.1
Host: ece.eng.wayne.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!
Network Services
34
User-server state: cookies
Example:
Many major Web sites use cookies:
Susan access
1) Persistent: file stays on users PC after
Internet always
closing the browser.
from same PC
2) Non-Persistent (mostly used in J2EE and
She visits a specific
.NET platforms): deleted when user
e-commerce site for
closes browser or logs off the web site.
first time
Four components:
When initial HTTP
1) cookie header line of HTTP response
requests arrives at
message
site, site creates a
2) cookie header line in HTTP request
unique ID and
message
creates an entry in
3) cookie file kept on user’s host,
backend database
managed by user’s browser
for ID
4) back-end database at Web site
Network Services
35
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
Network Services
36
Cookies (continued)
What cookies can bring:
authorization
shopping carts
recommendations
user session state
(Web e-mail)
aside
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
Network Services
37
Web caches (proxy server)
Goal: satisfy client request without involving origin server
user sets browser: Web
accesses via cache
browser sends all HTTP
requests to cache
object in cache: cache
returns object
else cache requests
object from origin
server, then returns
object to client
origin
server
client
client
Proxy
server
origin
server
Network Services
38
More about Web caching
Cache acts as both client
and server
Typically cache is installed
by ISP (university,
company, residential ISP)
Why Web caching?
Reduce response time for
client request.
Reduce traffic and hence
cost on an institution’s
internet access link.
Internet dense with caches
enables “poor” content
providers to effectively
deliver content (but so
does P2P file sharing)
Network Services
39
Caching example
Assumptions
average object size = 100 kbits.
Assume 100% usage per user
avg. request rate from institution’s
browsers to origin servers = 15/sec
delay from internet router to any
origin server and back to router = 2
sec
public
Internet
origin
servers
internet router
institutional
network
1.5 Mbps
access link
10 Mbps LAN
institutional
cache
Consequences
traffic intensity on LAN = LAN utilized bandwidth / LAN bandwidth
= (15 requests/sec * 100 kbits) / (10 Mbps) = 15%
traffic intensity on access link = access link utilized bandwidth / link bandwidth
= (15 requests/sec * 100 kbits) / (1.5 Mbps access) = 100%
total delay = Internet delay + access delay + LAN delay
= 2 sec + minutes (due to queueing & processing delays) + milliseconds
Network Services
40
Caching example (cont)
Possible solution
increase bandwidth of access
link to, say, 10 Mbps
Consequences
origin
servers
public
Internet
utilization on LAN = 15%
utilization on access link = 15%
= Internet delay +
access delay + LAN delay
= 2 sec + msecs + msecs
often a costly upgrade
10 Mbps
access link
Total delay
institutional
network
10 Mbps LAN
institutional
cache
Network Services
41
Caching example (cont)
origin
servers
Install cache
suppose hit rate is .4
Consequence
public
Internet
40% requests will be
satisfied almost immediately
60% requests satisfied by
origin server
utilization of access link
reduced to 60%, resulting in
negligible delays (queueing
delay reduced)
total avg delay = Internet
delay + access delay + LAN
delay = 2 + msecs + msecs
1.5 Mbps
access link
institutional
network
10 Mbps LAN
institutional
cache
Network Services
42
Conditional GET
Goal: don’t send object if
cache has up-to-date cached
version
cache: specify date of
cached copy in HTTP request
If-modified-since:
<date>
server: response contains no
object if cached copy is upto-date:
HTTP/1.0 304 Not
Modified
server
cache
HTTP request msg
If-modified-since:
<date>
HTTP response
object
not
modified
HTTP/1.0
304 Not Modified
HTTP request msg
If-modified-since:
<date>
HTTP response
object
modified
HTTP/1.0 200 OK
<data>
Network Services
43
HTTP Summary
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
Network Services
44