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
Fall 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?
Fall 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
Fall 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
Fall 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
Fall 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?
Fall 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
Fall 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
Fall 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”
Fall 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
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
12
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
13
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
14
Some Common URLs
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
15
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
16
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
17
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
18
HTTP Connections
Nonpersistent HTTP
• At most one object is
sent over a TCP
connection
• HTTP/1.0 uses
nonpersistent HTTP
Fall 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
19
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
20
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
21
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
Fall Semester 2007
EEC-484/584: Computer Networks
time to
transmit
file
time
Wenbing Zhao
22
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
23
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)
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
24
Persistent HTTP
• Server leaves connection open after
sending response
• Subsequent HTTP messages between
same client/server sent over open
connection
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
25
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
26
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
Fall Semester 2007
(extra carriage return, line feed)
EEC-484/584: Computer Networks
Wenbing Zhao
27
HTTP Request Message:
General Format
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
28
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
29
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
30
HTTP Response Message
status line
(protocol
status code
status phrase)
header
lines
data, e.g.,
requested
HTML file
Fall 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
31
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
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
32
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!
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
33
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
Fall Semester 2007
client
EEC-484/584: Computer Networks
Proxy
server
origin
server
Wenbing Zhao
34
More about Web Caching
• Proxy server acts as both
client and server
• Typically proxy server is
installed by ISP
(university, company,
residential ISP)
Fall 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
35
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>
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao