Title: ECE/CS 372
1ECE/CS 372 introduction to computer
networksLecture 5
- Announcements
- Lab1 is due today
- Lab2 is posted and is due next Tuesday
Acknowledgement slides drawn heavily from Kurose
Ross
2Chapter 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
3Chapter 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
4Some network apps
- e-mail
- web
- instant messaging
- remote login
- P2P file sharing
- multi-user network games
- streaming stored video clips
- voice over IP
- real-time video conferencing
- grid computing
5Creating 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 - network core devices do not run user applications
6Chapter 2 Application layer
- Principles of network applications
- app architectures
- app requirements
- Web and HTTP
- P2P file sharing
7Application architectures
- There are 3 types of architectures
- Client-server
- Peer-to-peer (P2P)
- Hybrid of client-server and P2P
8Client-server architecture
- server
- always-on
- fixed/known IP address
- serves many clients at same time
- clients
- 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,
9Pure P2P architecture
- no always-on server
- arbitrary end systems directly communicate
- peers are intermittently connected and change IP
addresses - example BitTorrent
- Pros and cons
- scalable and distributive
- difficult to manage
- not secure
10Hybrid 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
11Processes communicating
- Client process process that initiates
communication - Server process process that waits to be
contacted
- 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
- Note applications with P2P architectures have
client processes server processes
12Sockets
- 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
controlled by OS
- App Program Interface (API) (1) choice of
transport protocol (2) ability to fix a few
parameters -
13Addressing 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?
- 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
- A No, many processes can be running on same host
14App-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
- 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., Skype
15What 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
- 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
- Timing
- some apps (e.g., Internet telephony, interactive
games) require low delay to be effective
- Security
- what about it !!!
16Transport service requirements of common apps
Time Sensitive no no no yes, 100s msec yes,
few secs yes, 100s msec yes and no
Application file transfer e-mail Web
documents real-time audio/video stored
audio/video interactive games instant messaging
Bandwidth elastic elastic elastic audio
5kbps-1Mbps video10kbps-5Mbps same as above few
kbps up elastic
Data loss no loss no loss no loss loss-tolerant
loss-tolerant loss-tolerant no loss
17What services do Internet transport protocols
provide?
- 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?
- TCP service
- connection-oriented setup required between
client and server processes - reliable transport between sending and receiving
process - flow control sender wont overwhelm receiver
- congestion control throttle sender when network
overloaded - does not provide timing, minimum bandwidth
guarantees
18Internet apps application, transport protocols
Application layer protocol SMTP RFC
2821 Telnet RFC 854 HTTP RFC 2616 FTP RFC
959 proprietary (e.g. RealNetworks) proprietary (
e.g., Vonage, Skype)
Underlying transport protocol TCP TCP TCP TCP TCP
or UDP typically UDP
Application e-mail remote terminal access Web
file transfer streaming multimedia Internet
telephony
19Chapter 2 Application layer
- Principles of network applications
- app architectures
- app requirements
- Web and HTTP
- P2P file sharing
20Web 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)
21HTTP overview app architecture
- HTTP hypertext transfer protocol
- Webs appl-layer 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
HTTP request
PC running Explorer
HTTP response
HTTP request
Server running Apache Web server
HTTP response
Mac running Navigator
22HTTP overview (continued)
- HTTP is stateless
- server maintains no information about past client
requests
- 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
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
23HTTP 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
24Nonpersistent HTTP
(contains text, references to 10 jpeg images)
- Suppose user enters URL www.someSchool.edu/someDep
artment/home.index
- 1a. HTTP client initiates TCP connection to HTTP
server (process) at www.someSchool.edu on port 80
1b. HTTP server at host www.someSchool.edu
waiting for TCP connection at port 80. accepts
connection, notifying client
2. HTTP client sends HTTP request message
(containing URL) into TCP connection socket.
Message indicates that client wants object
someDepartment/home.index
3. HTTP server receives request message, forms
response message containing requested object, and
sends message into its socket
time
25Nonpersistent HTTP (cont.)
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
26Non-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
27Non-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 gt OS
overhead - Any ideas for improvement?
28Persistent 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
- Persistent HTTP
- server leaves connection open after sending
response - subsequent HTTP messages between same
client/server sent over open connection - reduces response time
29Web 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 - Non-persistent connection
- Persistent without pipelining
- Persistent with pipelining
30Web 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
- Answer (transmit time 1 sec)
- a) 3339 sec
- (initiate request transmit) for each of all
3 - b) 12227 sec
- initiate (request transmit) for each of all
3 - c) 1236 sec initiate (request transmit for
basic) (one request for 2 two transmits, one
for each of the 2 objects)
31ECE/CS 372 introduction to computer
networksLecture 6
- Announcements
- Lab2 is due next Tuesday
Acknowledgement slides drawn heavily from Kurose
Ross
32Web caches (or proxy server)
Goal satisfy client request without involving
origin server
- If page is needed, browser requests it from the
Web cache - Q what if object not in cache??
- cache requests object from origin server, then
returns object to client
origin server
Proxy server
client
client
origin server
33More 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 on an institutions access link.
34Caching 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
35Caching example (cont)
origin servers
- possible solution
- increase bandwidth of access link to, say, 10
Mbps - consequence
- utilization on LAN 10
- 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
public Internet
10 Mbps access link
institutional network
10 Mbps LAN
institutional cache
36Caching example (cont)
origin servers
- 2nd possible sol web cache
- suppose hit rate is 0.4
- (typically, between 0.3 0.7)
- consequence
- 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
public Internet
1 Mbps access link
institutional network
10 Mbps LAN
- Total delay 0.4x(0.1) (LAN)
- 0.6x(0.10.12) (LAN access Internet)
(about) 1.3 second - total avg delay reduced by about 40
institutional cache
37Web cache (cont)
- Solution
- Upon receiving a web request, a cache must
consult origin server to check whether the
requested page is up-to-date - Conditional GET method
- What
- Sent by cache to origin server check page
status - When
- For each new request client checks with cache
- 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?
38Conditional GET
- Goal dont send object if cache has up-to-date
version - How cache specifies date of cached copy in HTTP
request - If-modified-since ltdategt
- Server response contains no object if cached
copy is up-to-date - HTTP/1.0 304 Not Modified
39Chapter 2 Application layer
- Principles of network applications
- app architectures
- app requirements
- Web and HTTP
- P2P file sharing
40File sharing approaches
- There are 2 approaches
- Centralized
- Client-server architecture
- Distributed
- P2P architecture
- (e.g., BitTorrent)
41File sharing P2P vs. client-server architectures
Client-Server Single point of failure Not
scalable More secure Bottleneck
P2P Fault-tolerant Scalable Less
secure Better
Robustness to failure Scalability Security Pe
rformance
42Comparing Client-Server, P2P architectures
- Question What is the file distribution time
from one server to N hosts?
43Client-server file distribution time
Server
- server sequentially sends N copies
- NF/us time
- client i takes F/di time to download
u2
F
d1
u1
d2
us
Network (with abundant bandwidth)
dN
uN
increases linearly in N (for large N)
44Client-server file distribution time
- We now show that the distribution time is
actually equal to maxNF/us, F/min(di) - See board notes
45P2P file distribution time
- server must send one copy F/us time
- client i takes F/di time to download
Server
u2
F
d1
u1
d2
us
Network (with abundant bandwidth)
dN
- NF bits must be downloaded
- - NF bits must be uploaded
- - Fastest possible upload rate
- (assuming all nodes sending file chunks to
same peer) is - us Sui
uN
i1,N
46Comparing Client-server, P2P architectures
47Chapter 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