notes - Academic Server| Cleveland State University

Download Report

Transcript notes - Academic Server| Cleveland State University

EEC-484/584
Computer Networks
Lecture 4
Wenbing Zhao
[email protected]
(Part of the slides are based on Drs. Kurose & Ross’s slides
for their Computer Networking book)
2
Outline
• Principles of networked applications
• Web and HTTP
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
3
Application Layer Protocols
• Principles of networked applications
– Client server model
– Sockets
– Addressing
– Protocol
– What do we need from transport layer?
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
4
Creating a Network Application
• Write programs that
– run on different end
systems and
– communicate over a
network
application
transport
network
data link
physical
• No need to write code
for devices in subnet
– Subnet devices do not run
user application code
– application on end systems
allows for rapid app
development, propagation
Spring Semester 2007
application
transport
network
data link
physical
EEC-484/584: Computer Networks
application
transport
network
data link
physical
Wenbing Zhao
5
Inter-Process Communications
• Process: program
running within a host
• Processes in different
hosts communicate
by exchanging
messages
Spring Semester 2007
• Client process:
process that initiates
communication
• Server process:
process that waits to
be contacted
EEC-484/584: Computer Networks
Wenbing Zhao
6
Sockets
• Process sends/receives
messages to/from its
socket
• For each point-to-point
connection, there are two
sockets, one on each side
• API: (1) choice of transport
protocol; (2) ability to fix a
few parameters
Spring Semester 2007
host or
server
host or
server
Controlled by
app developer
process
process
socket
socket
TCP with
buffers,
variables
Internet
TCP with
buffers,
variables
Controlled
by OS
EEC-484/584: Computer Networks
Wenbing Zhao
7
Addressing
• To receive messages, process must have
identifier
• Host device has unique 32-bit IP address
• Question: Does IP address of host on which
process runs suffice for identifying the process?
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
8
Addressing
• Identifier includes both IP address and port
numbers (16-bit) associated with process on
host
• Example port numbers:
– HTTP server: 80
– SSH server: 22
• To send HTTP request to academic.csuohio.edu
Web server:
– IP address: 137.148.49.46
– Port number: 80
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
9
Application Layer Protocol Defines
• Types of messages exchanged
– e.g., request, response
• Message syntax
– what fields in messages & how
fields are delineated
• Message semantics
– meaning of information in fields
• Rules for when and how
processes send & respond to
messages
Spring Semester 2007
Public-domain protocols:
• defined in RFCs
• allows for
interoperability
• e.g., HTTP, SMTP
Proprietary protocols:
• e.g., KaZaA
EEC-484/584: Computer Networks
Wenbing Zhao
What Transport Service Does an
Application Need?
Data loss
• 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”
Spring Semester 2007
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
EEC-484/584: Computer Networks
Wenbing Zhao
10
11
Transport Service Requirements of
Common Applications
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
Spring Semester 2007
EEC-484/584: Computer Networks
yes, few secs
yes, 100’s msec
yes and no
Wenbing Zhao
Large Scale Internet Application Architecture
http://img.microsoft.com/resources/documentation/wss/2/all/adminguide/en-us/stsb02b.gif
13
The World Wide Web
• Creation of Tim Berners-Lee, in 1989 CERN
nuclear physics research
– Mosaic – first graphical interface, creation of Marc
Andersson (and others), precursor to Netscape
• Uses a client-server architecture
– Web server
– Web browser
• Runs on HTTP over TCP
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
14
Web and HTTP
• 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
• The idea of having one page point to another is
called hypertext
– Invented by Vannevar Bush, a MIT EE professor, in
1945
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
15
URL – Uniform Resource Locater
• Example URL:
http://www.someschool.edu/someDept/pic.gif
protocol name
host name
path name
• URL encodes three types of information
– What is the page called – local path name uniquely
indicating the specific page
– Where is the page located – Host name of the
server on which the page is located
– How can the page be accessed – protocol, e.g.,
http, ftp
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
16
Some Common URLs
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
17
HTTP overview
HTTP: HyperText
Transfer Protocol
• Web’s application layer
protocol
• client/server model
• HTTP 1.0: RFC 1945
• HTTP 1.1: RFC 2068
PC running
Explorer
Server
running
Apache Web
server
Mac running
Navigator
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
18
HTTP Overview
• Uses 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
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
19
HTTP Overview
• HTTP is “stateless”
– Server maintains no information about past
client requests
• 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
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
20
HTTP Connections
Nonpersistent HTTP
• At most one object is
sent over a TCP
connection
• HTTP/1.0 uses
nonpersistent HTTP
Spring Semester 2007
Persistent HTTP
• Multiple objects can
be sent over single
TCP connection
between client and
server
• HTTP/1.1 uses
persistent
connections in default
mode
EEC-484/584: Computer Networks
Wenbing Zhao
21
Nonpersistent HTTP
Suppose user enters URL
(contains text,
references to 10
jpeg images)
http://www.someSchool.edu/someDept/home.index
1a. HTTP client initiates TCP
connection to HTTP server at
1b. HTTP server at host
www.someSchool.edu on port
www.someSchool.edu
80
waiting for TCP connection
at port 80. “accepts”
connection, notifying client
2. HTTP client sends HTTP
request message (containing
3. HTTP server receives
URL) into TCP connection
request message, forms
socket. Message indicates
response message
that client wants object
containing requested object,
someDept/home.index
and sends message into its
socket
time
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
22
Nonpersistent HTTP
4. HTTP server closes TCP
connection.
5. HTTP client receives response
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
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
23
Non-Persistent HTTP:
Response Time
Definition of RTT: time to
send a small packet to
travel from client to
server and back
(Round Trip Time)
initiate TCP
connection
RTT
request
file
RTT
file
received
time
Spring Semester 2007
EEC-484/584: Computer Networks
time to
transmit
file
time
Wenbing Zhao
24
Non-Persistent HTTP:
Response Time
Response time:
• one RTT to initiate TCP connection
• one RTT for HTTP request and first few
bytes of HTTP response to return
• file transmission time
Total = 2RTT+transmit time
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
25
Non-Persistent HTTP Issues
• Requires 2 RTTs per object
• OS overhead for each TCP connection
• Browsers often open parallel TCP
connections to fetch referenced objects
(to reduce response time)
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
26
Persistent HTTP
• Server leaves connection open after
sending response
• Subsequent HTTP messages between
same client/server sent over open
connection
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
27
Persistent HTTP
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
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
28
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
header Connection: close
lines Accept-language:fr
Carriage return,
line feed
indicates end
of message
Spring Semester 2007
(extra carriage return, line feed)
EEC-484/584: Computer Networks
Wenbing Zhao
29
HTTP Request Message:
General Format
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
30
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:
http://www.somesite.com/animalsearch?monkeys&banana
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
31
Method types
HTTP/1.0
• GET
• POST
• HEAD
HTTP/1.1
• GET, POST, HEAD
• PUT
– Asks server to include
only the header part in
response
– Uploads file in entity
body to path specified
in URL field
• DELETE
– Deletes file specified
in the URL field
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
32
HTTP Response Message
status line
(protocol
status code
status phrase)
header
lines
data, e.g.,
requested
HTML file
Spring Semester 2007
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 ...
EEC-484/584: Computer Networks
Wenbing Zhao
33
HTTP Response Status Codes
Status code is in first line of the response message:
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
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
34
Trying out HTTP
1. Telnet to your favorite Web server:
telnet cis.poly.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 /~ross/ HTTP/1.1
Host: cis.poly.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!
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
35
User-Server State: Cookies
Many major Web sites use cookies
Four components:
1) cookie header line in HTTP response message
2) cookie header line in HTTP request message
3) cookie file kept on user’s host, managed by
user’s browser
4) back-end database at Web site
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
36
User-Server State: Cookies
Example:
– Susan access Internet always from same PC
– She visits a specific e-commerce site for first
time
– When initial HTTP requests arrives at site, site
creates a unique ID and creates an entry in
backend database for ID
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
37
Cookies: Keeping “State”
client
Cookie file
ebay: 8734
Cookie file
amazon: 1678
ebay: 8734
one week later:
Cookie file
amazon: 1678
ebay: 8734
Spring Semester 2007
server
usual http request msg
usual http response +
Set-cookie: 1678
server
creates ID
1678 for user
usual http request msg
cookie: 1678
usual http response msg
usual http request msg
cookie: 1678
usual http response msg
EEC-484/584: Computer Networks
cookiespecific
action
cookiespectific
action
Wenbing Zhao
38
Cookies
What cookies can bring:
•
•
•
•
authorization
shopping carts
recommendations
user session state (Web e-mail)
How to keep “state”:
• Protocol endpoints: maintain state at
sender/receiver over multiple transactions
• cookies: http messages carry state
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
39
Performance Enhancement
• Caching
– Save pages that have been requested in case they are
used again
– Client-side technique
• Server replication
– Replicate server’s contents at multiple locations
– Sometimes called mirroring
• Content delivery networks
– Deliver contents for their providers to end users
efficiently for a fee
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
40
Web Caching
Goal: satisfy client request without involving origin server
• user sets browser:
Web accesses via
proxy server
• browser sends all
HTTP requests to
proxy server
origin
server
client
– object in cache: returns
cached object
– else cache requests
object from origin server,
then returns object to
client
Spring Semester 2007
client
EEC-484/584: Computer Networks
Proxy
server
origin
server
Wenbing Zhao
41
More about Web Caching
• Proxy server acts as both
client and server
• Typically proxy server is
installed by ISP
(university, company,
residential ISP)
Spring Semester 2007
Why Web caching?
• Reduce response time for
client request
• Reduce traffic on an
institution’s access link
• Internet dense with
caches: enables “poor”
content providers to
effectively deliver content
EEC-484/584: Computer Networks
Wenbing Zhao
42
Non-Caching Example
origin
servers
Assumptions
• Average object size =
100,000 bits
• Avg. request rate from
institution’s browsers to
origin servers = 15/sec
• Delay from institutional
router to any origin server
and back to router = 2 sec
Spring Semester 2007
public
Internet
1.5 Mbps
access link
institutional
network
EEC-484/584: Computer Networks
10 Mbps LAN
Wenbing Zhao
43
Non-Caching Example
origin
servers
Consequences
• Utilization on LAN = 15%
• Utilization on access link =
100%
• Total delay = Internet
delay + access delay +
LAN delay
= 2 sec + minutes +
milliseconds
Spring Semester 2007
public
Internet
1.5 Mbps
access link
institutional
network
EEC-484/584: Computer Networks
10 Mbps LAN
Wenbing Zhao
44
Non-Caching Example
origin
servers
Possible solution
• Increase bandwidth of
access link to, say, 10
Mbps
public
Internet
Consequences
• Utilization on LAN = 15%
• Utilization on access link = 15%
• Total delay = Internet delay +
access delay + LAN delay
= 2 sec + msecs + msecs
• Often a costly upgrade
Spring Semester 2007
10 Mbps
access link
institutional
network
EEC-484/584: Computer Networks
10 Mbps LAN
Wenbing Zhao
45
Caching Example
origin
servers
Install proxy server
• Suppose hit rate is 0.4
Consequence
• 40% requests will be satisfied almost
immediately
• 60% requests satisfied by origin
server
• Utilization of access link
reduced to 60%, resulting in
negligible delays (say 10
msec)
• Total avg delay = Internet
delay + access delay + LAN
delay = .6*(2.01) secs +
.4*milliseconds < 1.4 secs
Spring Semester 2007
public
Internet
institutional
network
EEC-484/584: Computer Networks
1.5 Mbps
access link
10 Mbps LAN
Institutional
Proxy server
Wenbing Zhao
46
Conditional GET
Proxy
• Goal: don’t send object if server
HTTP request msg
cache is up-to-date
If-modified-since:
• Proxy server: specify date of
<date>
cached copy in HTTP
HTTP response
request
HTTP/1.0
If-modified-since: <date>
• Origin server: response
contains no object if cached
copy is up-to-date:
HTTP/1.0 304 Not Modified
Origin
Server
object
not
modified
304 Not Modified
HTTP request msg
If-modified-since:
<date>
HTTP response
object
modified
HTTP/1.0 200 OK
<data>
Spring Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao