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