0% found this document useful (0 votes)
13 views

Chapter2 Part2

The document discusses the Hypertext Transfer Protocol (HTTP) which is the application layer protocol for the World Wide Web. HTTP uses a client-server model where a client, like a web browser, makes requests to a server which responds by sending back objects. Requests and responses are sent over TCP connections. Early versions of HTTP used non-persistent connections where a new connection was used for each request, while later versions use persistent connections that allow multiple requests over the same connection.

Uploaded by

Sarah AlJaber
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Chapter2 Part2

The document discusses the Hypertext Transfer Protocol (HTTP) which is the application layer protocol for the World Wide Web. HTTP uses a client-server model where a client, like a web browser, makes requests to a server which responds by sending back objects. Requests and responses are sent over TCP connections. Early versions of HTTP used non-persistent connections where a new connection was used for each request, while later versions use persistent connections that allow multiple requests over the same connection.

Uploaded by

Sarah AlJaber
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 27

Chapter 2 - Part 2

Application Layer

A note on the use of these ppt slides: Computer


We’re making these slides freely available to all (faculty, students, readers).
They’re in PowerPoint form so you see the animations; and can add, modify, Networking: A
and delete slides (including this one) and slide content to suit your needs.
They obviously represent a lot of work on our part. In return for use, we only Top Down
ask the following:
 If you use these slides (e.g., in a class) that you mention their source Approach
(after all, we’d like people to use our book!)
 If you post any slides on a www site, that you note that they are adapted
6th edition
from (or perhaps identical to) our slides, and note our copyright of this Jim Kurose, Keith Ross
material. Addison-Wesley
Thanks and enjoy! JFK/KWR March 2012
All material copyright 1996-2012
J.F Kurose and K.W. Ross, All Rights Reserved

Application Layer 2-1


Chapter 2: outline
2.1 principles of network 2.6 P2P applications
applications 2.7 socket programming
 app architectures with UDP and TCP
 app requirements
2.2 Web and HTTP
2.3 FTP
2.4 electronic mail
 SMTP, POP3, IMAP
2.5 DNS

Application Layer 2-2


Web and HTTP
First, a review…
 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, e.g.,
www.someschool.edu/someDept/pic.gif

host name path name

Application Layer 2-3


HTTP overview
HTTP: hypertext transfer
protocol HT
 Web’s application layer TP
req
ues
protocol PC running HT t
Firefox browser TPr
 client/server model esp
ons
 client: browser that e
requests, receives, t
(using HTTP protocol) u es
req server
and “ displays” Web T P n se
HT s po running
objects TP
re Apache Web
T
 server: Web server H server
sends (using HTTP
protocol) objects in iphone running
response to requests Safari browser

Application Layer 2-4


HTTP overview (continued)
uses TCP: HTTP is “stateless”
 client initiates TCP  server maintains no
connection (creates socket) information about
to server, port 80 past client requests
 server accepts TCP
connection from client aside
protocols that maintain
 HTTP messages “ state” are complex!
(application-layer protocol  past history (state) must be
messages) exchanged maintained
between browser (HTTP  if server/client crashes, their
client) and Web server views of “ state” may be
(HTTP server) inconsistent, must be
 TCP connection closed reconciled

Application Layer 2-5


HTTP connections
non-persistent HTTP persistent HTTP
 at most one object sent  multiple objects can
over TCP connection be sent over single
 connection then TCP connection
closed between client, server
 downloading multiple
objects required
multiple connections

Application Layer 2-6


Non-persistent HTTP
suppose user enters URL: (contains text,
www.someSchool.edu/someDepartment/home.index references to 10
jpeg images)
1a. HTTP client initiates TCP
connection to HTTP server
(process) at 1b. HTTP server at host
www.someSchool.edu on port 80 www.someSchool.edu waiting
for TCP connection at port 80.
“ accepts” connection, notifying
2. HTTP client sends HTTP request message client
(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
Application Layer 2-7
Non-persistent 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

Application Layer 2-8


Non-persistent HTTP: response time
RTT (definition): time for a
small packet to travel from
client to server and back
HTTP response time: initiate TCP
 one RTT to initiate TCP connection
connection RTT
 one RTT for HTTP request request
file
and first few bytes of HTTP time to
response to return RTT transmit
file
 file transmission time
file
 non-persistent HTTP received
response time =
2RTT+ file transmission time time
time

Application Layer 2-9


Persistent HTTP

non-persistent HTTP persistent HTTP:


issues:  server leaves connection
 requires 2 RTTs per object open after sending
 OS overhead for each TCP response
connection  subsequent HTTP
 browsers often open messages between same
parallel TCP connections to client/server sent over
fetch referenced objects open connection
 client sends requests as
soon as it encounters a
referenced object
 as little as one RTT for all
the referenced objects

Application Layer 2-10


HTTP request message
 two types of HTTP messages: request, response
 HTTP request message:
 ASCII (human-readable format)
carriage return character
line-feed character
request line
(GET, POST,
HEAD commands)

header
lines

carriage return,
line feed at start
of line indicates
end of header lines
Application Layer 2-11
HTTP request message: general format

method sp URL sp version cr lf request


line
header field name value cr lf
header
~
~ ~
~ lines

header field name value cr lf


cr lf

~
~ entity body ~
~ body

Application Layer 2-12


Uploading form input
POST method:
 web page often includes
form input
 input is uploaded to server
in entity body

www.somesite.com/animalsearch?monkeys&banana

Application Layer 2-13


Method types

Application Layer 2-14


HTTP response message
status line
(protocol
status code
status phrase)

header
lines

data, e.g.,
requested
HTML file
Application Layer 2-15
HTTP response status codes
 status code appears in 1st line in server-to-client response message.
 some sample codes:

200 OK
 request succeeded, requested object later in this msg
301 Moved Permanently
 requested object moved, new location specified later in this msg
(Location:)
400 Bad Request
 request msg not understood by server
404 Not Found
 requested document not found on this server
505 HTTP Version Not Supported
Application Layer 2-16
Trying out HTTP (client side) for yourself
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 by typing this in (hit carriage
Host: cis.poly.edu return twice), you send
this minimal (but complete)
GET request to HTTP server

3. look at response message sent by HTTP server!


(or use Wireshark to look at captured HTTP request/response)
Application Layer 2-17
User-server state: cookies

Application Layer 2-18


Cookies: keeping “ state” (cont.)
client server

ebay 8734
usual http request msg Amazon server
cookie file creates ID
usual http response
1678 for user create backend
ebay 8734
set-cookie: 1678 entry database
amazon 1678
usual http request msg
cookie: 1678 cookie- access
specific
usual http response msg action

one week later:


access
ebay 8734 usual http request msg
amazon 1678 cookie: 1678 cookie-
specific
usual http response msg action
Application Layer 2-19
Cookies (continued)
aside

Application Layer 2-20


Web caches (proxy server)

HT proxy
TP u est
req server req
HT ues P se
client TP t H TT po n
res res origin
pon T P
se HT server
t
ues
req e
TT P o ns
p
H res
T TP
H

client origin
server

Application Layer 2-21


More about Web caching

Application Layer 2-22


Caching example:
assumptions:
 avg object size: 100K bits origin
 avg request rate from browsers to servers
origin servers:15/sec public
 avg data rate to browsers: 1.50 Mbps Internet
 RTT from institutional router to any
origin server: 2 sec
 access link rate: 1.54 Mbps 1.54 Mbps
access link
consequences:
 LAN utilization: 15% problem! institutional
network
 access link utilization = 99% 1 Gbps LAN
 total delay = Internet delay + access
delay + LAN delay
= 2 sec + minutes + usecs

Application Layer 2-23


Caching example: fatter access link
assumptions:
 avg object size: 100K bits origin
 avg request rate from browsers to servers
origin servers:15/sec public
 avg data rate to browsers: 1.50 Mbps Internet
 RTT from institutional router to any
origin server: 2 sec
 access link rate: 1.54 Mbps
154 1.54 Mbps
154 Mbps
access link
consequences: Mbps
 LAN utilization: 15% institutional
network
 9.9%
access link utilization = 99% 1 Gbps LAN
 total delay = Internet delay + access
delay + LAN delay
= 2 sec + minutes + usecs
msecs
Cost: increased access link speed (not cheap!)
Application Layer 2-24
Caching example: install local cache
assumptions:
 avg object size: 100K bits origin
 avg request rate from browsers to servers
origin servers:15/sec public
 avg data rate to browsers: 1.50 Mbps Internet
 RTT from institutional router to any
origin server: 2 sec
 access link rate: 1.54 Mbps 1.54 Mbps
access link
consequences:
 LAN utilization: 15% institutional
network
 access link utilization?= 100% 1 Gbps LAN
 total delay ?= Internet delay + access
delay + LAN delay local web
How to compute link cache
= 2 sec + minutes + usecs
utilization, delay?
Cost: web cache (cheap!)
Application Layer 2-25
Caching example: install local cache
Calculating access link
utilization, delay with cache:
 suppose
origin
cache hit rate is 0.4 servers
 40% requests satisfied at cache, 60% public
requests satisfied at origin Internet

 access link utilization:


 60% of requests use access link
 data rate to browsers over access link = 1.54 Mbps
0.6*1.50 Mbps = .9 Mbps access link
 utilization = 0.9/1.54 = .58 institutional
 total delay network
 = 0.6 * (delay from origin servers) +0.4 * (delay when 1 Gbps LAN
satisfied at cache)
 = 0.6 (2.01) + 0.4 (~msecs) local web
 = ~ 1.2 secs
 less than with 154 Mbps link (and cheaper too!)
cache

Application Layer 2-26


Conditional GET
client server

HTTP request msg


If-modified-since: <date> object
not
modified
HTTP response
before
HTTP/1.0
304 Not Modified <date>

HTTP request msg


If-modified-since: <date> object
modified
HTTP response after
HTTP/1.0 200 OK <date>
<data>
Application Layer 2-27

You might also like