Transcript Ch2 Notes
ECE/CS 372 – introduction to computer networks
Lecture 5
Announcements:
Lab1 is due today
Lab2 is posted and is due next Tuesday
Acknowledgement: slides drawn heavily from Kurose & Ross
Chapter 2, slide: 1
Chapter 1: recap
By now, you should know:
the Internet and its components
circuit-switching networks vs. packet-switching networks
different network access technologies
the three Tiers 1, 2, and 3
layered architecture of networks
types of delays and throughput analysis
Chapter 2, slide: 2
Chapter 2: Application Layer
Our goals:
aspects of network
application protocols
transport-layer
service models
client-server paradigm
peer-to-peer paradigm
learn about protocols
by examining popular
application-level
protocol: HTTP
Chapter 2, slide: 3
Some network apps
e-mail
voice over IP
web
real-time video
instant messaging
remote login
conferencing
grid computing
P2P file sharing
multi-user network
games
streaming stored video
clips
Chapter 2, slide: 4
Creating a network app
write programs that
run on (different) end
systems
communicate over network
e.g., web server software
communicates with browser
software
little software written for
devices in network core
application
transport
network
data link
physical
network core devices do
not run user applications
application
transport
network
data link
physical
application
transport
network
data link
physical
Chapter 2, slide: 5
Chapter 2: Application layer
Principles of network applications
app architectures
app requirements
Web and HTTP
P2P file sharing
Chapter 2, slide: 6
Application architectures
There are 3 types of architectures:
Client-server
Peer-to-peer (P2P)
Hybrid of client-server and P2P
Chapter 2, slide: 7
Client-server architecture
server:
always-on
fixed/known IP address
serves many clients at same time
clients:
client/server
communicate with server only
may be intermittently connected
may have dynamic IP addresses
do not communicate directly with
each other
E.g., of client-server archit.:
Google, Amazon, MySpace,
YouTube,
Chapter 2, slide: 8
Pure P2P architecture
no always-on server
arbitrary end systems
directly communicate
peers are intermittently
connected and change IP
addresses
example: BitTorrent
peer-peer
Pros and cons:
scalable and distributive
difficult to manage
not secure
Chapter 2, slide: 9
Hybrid of client-server and P2P
Skype
voice-over-IP P2P application
centralized server: finding address of remote party
client-client connection: direct (not through server)
Instant messaging
chatting between two users is P2P
centralized service: client presence location
• user registers its IP address with central server
when it comes online
• user contacts central server to find IP addresses
of buddies
Chapter 2, slide: 10
Processes communicating
Process: is program
running within a host.
processes in same host
communicate using
inter-process
communication
(managed by OS).
processes in different
hosts communicate by
exchanging messages
Client process: process
that initiates
communication
Server process: process
that waits to be
contacted
Note: applications with
P2P architectures have
client processes &
server processes
Chapter 2, slide: 11
Sockets
process sends/receives
messages to/from its
socket
socket analogous to door
sending process shoves
message out door
sending process relies on
transport infrastructure
on other side of door which
brings message to socket
at receiving process
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
App Program Interface (API): (1) choice of transport
protocol; (2) ability to fix a few parameters
Chapter 2, slide: 12
Addressing processes
to receive messages,
process must have
identifier
host device has unique
32-bit IP address
Q: does IP address of
host on which process
runs suffice to identify
the process?
A: No, many processes
can be running on same
host
identifier consists of:
IP address (host)
port numbers (process)
Example port numbers:
HTTP server: 80
Mail server: 25
to send HTTP message
to gaia.cs.umass.edu web
server:
IP address: 128.119.245.12
Port number: 80
more shortly…
Chapter 2, slide: 13
App-layer protocol defines
Question: why do we need an “App-layer protocol” ?
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
Public-domain protocols:
defined in RFCs
allows for
interoperability
e.g., HTTP, SMTP
Proprietary protocols:
e.g., Skype
Rules for when and how
processes send &
respond to messages
Chapter 2, slide: 14
What transport service does an app need?
Data loss/reliability
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”
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
Security
what about it !!!
Chapter 2, slide: 15
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
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
Chapter 2, slide: 16
What services do Internet transport
protocols provide?
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 provide: 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?
Chapter 2, slide: 17
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., Vonage, Skype)
TCP
TCP
TCP
TCP
TCP or UDP
typically UDP
Chapter 2, slide: 18
Chapter 2: Application layer
Principles of network applications
app architectures
app requirements
Web and HTTP
P2P file sharing
Chapter 2, slide: 19
Web and HTTP
First some terminologies:
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 (Uniform Resource Locator):
www.someschool.edu/someDept/pic.gif
host name
path name
Chapter 2, slide: 20
HTTP overview: app architecture
HTTP: hypertext
transfer protocol
Web’s appl-layer protocol
client/server model
PC running
Explorer
client: browser that
requests, receives,
“displays” Web objects
server: Web server
sends objects in
response to requests
HTTP 1.0: RFC 1945
Server
running
Apache Web
server
Mac running
Navigator
HTTP 1.1: RFC 2068
Chapter 2, slide: 21
HTTP overview (continued)
Uses TCP:
client initiates TCP
connection (creates socket)
to server, port 80
server accepts TCP
connection from client
HTTP 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
Chapter 2, slide: 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
Chapter 2, slide: 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
Chapter 2, slide: 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
Chapter 2, slide: 25
Non-Persistent HTTP: Response time
Definition of RTT (round
trip time): time to send
a small packet to travel
from client to server
and back.
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
= 2RTT + transmit time
initiate TCP
connection
RTT
request
file
RTT
file
received
time
time to
transmit
file
time
Chapter 2, slide: 26
Non-Persistent HTTP: issues
Nonpersistent HTTP:
Name some issues??
requires 2 RTTs per
object
E.g., a 10-object page
needs ~ 20 RTTs
Open/close TCP
connection for each
object => OS overhead
initiate TCP
connection
RTT
request
file
RTT
file
received
time
time to
transmit
file
time
Any ideas for
improvement?
Chapter 2, slide: 27
Persistent HTTP
Persistent HTTP
server leaves
connection open after
sending response
Persistent without pipelining:
client issues new request
only when previous
response has been received
one RTT for each
referenced object
subsequent HTTP
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
messages between
same client/server sent
over open connection
reduces response time
Chapter 2, slide: 28
Web and HTTP: Review Question
A HTTP request consists of:
1 basic html object
2 referenced JPEG objects
Each object is of size = 106bits
RTT = 1 second
Transmission rate = 1Mbps
Consider transmission delay of
objects only
Question: how long it takes
to receive the entire page:
a)
b)
c)
Non-persistent connection
Persistent without pipelining
Persistent with pipelining
initiate TCP
connection
RTT
request
file
RTT
file
received
time
time to
transmit
file
time
Chapter 2, slide: 29
Web and HTTP: Review Question
A HTTP request consists of:
1 basic html object
2 referenced JPEG objects
Each object is of size = 106bits
RTT = 1 second
Transmission rate = 1Mbps
Consider transmission delay of
objects only
initiate TCP
connection
RTT
request
file
time to
transmit
file
RTT
Answer: (transmit time = 1 sec)
file
a) 3+3+3=9 sec
received
(initiate + request + transmit) for each of all 3
b) 1+2+2+2=7 sec
time
time
initiate + (request + transmit) for each of all 3
c) 1+2+3=6 sec
initiate + (request + transmit for basic) + (one
request for 2 + two transmits, one for each of the 2 objects)
Chapter 2, slide: 30
ECE/CS 372 – introduction to computer networks
Lecture 6
Announcements:
Lab2 is due next Tuesday
Acknowledgement: slides drawn heavily from Kurose & Ross
Chapter 2, slide: 31
Web caches (or proxy server)
Goal: satisfy client request without involving origin server
If page is needed,
origin
server
browser requests it
from the Web cache
Q: what if object not in
client
Proxy
server
cache??
cache requests object
from origin server, then
returns object to client
client
origin
server
Chapter 2, slide: 32
More about Web caching
cache acts as both
client and server
Why Web caching?
reduce response time
for client request
typically cache is
installed by ISP
(university, company,
residential ISP)
reduce traffic on an
institution’s access link.
Chapter 2, slide: 33
Caching example
origin
servers
Assumptions
avg. object size = 0.1x106bits
avg. request rate from
institution to origin servers =
10/sec
Internet delay = 2 sec
Consequences
utilization on LAN = 10%
(LAN: local area network)
utilization on access link = 100%
total delay = Internet delay +
access delay + LAN delay
= 2 sec + sec + milliseconds
unacceptable delay!
public
Internet
1 Mbps
access link
institutional
network
10 Mbps LAN
institutional
cache
Chapter 2, slide: 34
Caching example (cont)
origin
servers
possible solution
increase bandwidth of access
link to, say, 10 Mbps
public
Internet
consequence
utilization on LAN = 10%
10 Mbps
access link
utilization on access link = 10%
Total delay
= Internet delay +
access delay + LAN delay
= 2 sec + msecs + msecs
often a costly upgrade
total delay still dominated by
Internet delay
institutional
network
10 Mbps LAN
institutional
cache
Chapter 2, slide: 35
Caching example (cont)
origin
servers
2nd possible sol: web cache
suppose hit rate is 0.4
(typically, between 0.3 & 0.7)
consequence
public
Internet
40% requests will be satisfied
almost immediately and 60%
requests satisfied by origin server
utilization of access link reduced by
40%, giving an access delay in the
order of milliseconds; say 10 millisec
Total delay = 0.4x(0.1) (LAN) +
1 Mbps
access link
institutional
network
10 Mbps LAN
institutional
cache
0.6x(0.1+0.1+2) (LAN + access + Internet) = (about) 1.3 second
total avg delay reduced by about 40%
Chapter 2, slide: 36
Web cache (cont)
Advantages are obvious:
Reduce response time
Reduce internet traffic
Any problems with caches??
Local cache copies of web pages
may not be up-to-date??
What do we do then?
Solution
Upon receiving a web
request, a cache must
consult origin server to
check whether the
requested page is up-todate
Conditional GET method
What:
Sent by cache to origin
server: check page status
When:
For each new request:
client checks with cache
Chapter 2, slide: 37
Conditional GET
Goal: don’t send object if cache
has up-to-date version
How: cache specifies date of
cached copy in HTTP request
If-modified-since: <date>
cache
server
HTTP request msg
If-modifiedsince: <date>
HTTP response
object
not
modified
HTTP/1.0
304 Not Modified
Server: response contains no
object if cached copy is up-todate:
HTTP/1.0 304 Not Modified
HTTP request msg
If-modifiedsince: <date>
HTTP response
object
modified
HTTP/1.0 200 OK
<data>
Chapter 2, slide: 38
Chapter 2: Application layer
Principles of network applications
app architectures
app requirements
Web and HTTP
P2P file sharing
Chapter 2, slide: 39
File sharing approaches
There are 2 approaches
Bob
server
peers
Centralized:
Client-server architecture
Alice
Distributed:
P2P architecture
(e.g., BitTorrent)
server
obtain list
of peers
trading
chunks
peer
Chapter 2, slide: 40
File sharing: P2P vs. client-server architectures
Client-Server
P2P
Single point of failure
Fault-tolerant
Scalability
Not scalable
Scalable
Security
More secure
Less secure
Bottleneck
Better
Robustness to failure
Performance
Chapter 2, slide: 41
Comparing Client-Server, P2P architectures
Question : What is the file distribution time:
from one server to N hosts?
us: server upload
bandwidth
Server
us
File, size F
dN
uN
u1
d1
u2
ui: client/peer i
upload bandwidth
d2
di: client/peer i
download bandwidth
Network (with
abundant bandwidth)
Chapter 2, slide: 42
Client-server: file distribution time
server sequentially
sends N copies:
NF/us time
client i takes F/di
time to download
Time to distribute F
to N clients using = dcs
client/server approach
Server
F
us
dN
u1 d1 u2
d2
Network (with
abundant bandwidth)
uN
> max { NF/us, F/min(d
i) }
i
increases linearly in N
(for large N)
Chapter 2, slide: 43
Client-server: file distribution time
dcs
= max { NF/us, F/min(d
i) }
i
We now show that the distribution time is
actually equal to max{NF/us, F/min(di) }
See board notes
Chapter 2, slide: 44
P2P: file distribution time
server must send one
copy: F/us time
client i takes F/di time
to download
Server
F
us
dN
NF bits must be downloaded
u1 d1 u2
d2
Network (with
abundant bandwidth)
uN
- NF bits must be uploaded
- Fastest possible upload rate
(assuming all nodes sending file chunks to
same peer) is:
us + Sui
i=1,N
dP2P > max { F/us, F/min(di) , NF/(us + Sui) }
i=1,N
Chapter 2, slide: 45
Comparing Client-server, P2P architectures
Minimum Distribution Time
3.5
P2P
Client-Server
3
2.5
2
1.5
1
0.5
0
0
5
10
15
20
25
30
35
N
Chapter 2, slide: 46
Chapter 2: Summary
We covered general concepts, like:
application architectures
client-server, P2P
application service requirements:
reliability, bandwidth, delay
Web and HTTP
Non-Persistent, persistent, web cache
Distribution time
Client-server, P2P
Chapter 2, slide: 47