Chapter2-Application Layer
Chapter2-Application Layer
Application Layer
Adapted by Andreas Pitsillides for class
EPL324, Computer Science department,
University of Cyprus, from Kurose and Ross
slides: see below Computer
Networking: A Top
A note on the use of these ppt slides: Down Approach ,
We’re making these slides freely available to all (faculty,
students, readers). They’re in PowerPoint form so you can add, 7th edition.
modify, and delete slides (including this one) and slide content to Jim Kurose, Keith Ross
suit your needs. They obviously represent a lot of work on our
part. In return for use, we only ask the following: Addison-Wesley.
If you use these slides (e.g., in a class) in substantially
unaltered form, that you mention their source (after all, we’d
like people to use our book!) A translation in Greek
If you post any slides in substantially unaltered form on a exists (4th edition).
www site, that you note that they are adapted from (or http://www.papasotiriou.gr/
perhaps identical to) our slides, and note our copyright of this product.gbook.asp?
material. pfid=1875791&prid=1130023
2: Application Layer 2
Chapter 2: Application Layer
learn about protocols by
Our goals:
conceptual, examining popular
implementation application-level
aspects of network protocols
HTTP for web
application
FTP for file transfer
protocols SMTP / POP3 / IMAP for
service models
email
offered to DNS for IP<-
application layer >mnemonic
by transport- Peer-to-peer (P2P) for
layer direct comm between
client-server peers
2: Application Layer 4
Creating a network app applicatio
n
transport
2: Application Layer 6
Chapter 2: Application layer
2.1 Principles of network
applications
2.6 P2P applications
and
application layer protocols
2.7 Socket
2.2 Web and HTTP programming with TCP
2.3 FTP 2.8 Socket
2.4 Electronic Mail programming with
SMTP, POP3, IMAP UDP
2.5 DNS 2.9 Building a Web
server
2: Application Layer 7
Applications and application-layer
protocols
application
applicatio
n
transport
network
communicating,
distributed processes
e.g., e-mail, Web, P2P file
sharing, instant messaging
running in end systems
(hosts)
exchange messages to applicatio
applicatio
n
implement application n
transport
transport
network
network data link
data link physical
Via the internet ‘layers’, physical
2: Application Layer 8
Applications and application-layer
protocols e.g.firefox
Application-layer protocols applicatio
n
abstraction layer (επίπεδο applicatio
Applicati
on layer
αφαιρετικότητας) that specifies the n
transport protocol
shared communications network
protocols and interface data link
physical
methods used by hosts in a
communications network
one “piece” of an app
define messages exchanged
by apps and actions taken
uses communication services
provided by lower layer
protocols (TCP, UDP) e.g.chrome applicatio
e.g.MS Edge
application applicatio application
n
n transport
Applicati
Same application layer on layer transport
network
network Applicati
data link on layer
protocol used by different
protocol data link physical protocol
physical
application
implementations
written once
(standardised) for the
same type of application , 2: Application Layer 9
e.g. for web (http), email
App-layer protocol defines
(everything)
Types of messages
Public-domain exchanged, e.g., request &
protocols:
response messages
defined in RFCs
Syntax of message types: what fields in messages
allows for interoperability
& how fields are delineated
eg, HTTP, SMTP
Semantics of the fields, i.e., meaning of
information in fields
Proprietary
protocols:
Rules for when and how processes send & respond
to
eg,messages
Skype, torrent, …
2: Application Layer 10
Application architectures
Client-server
Peer-to-peer (P2P)
Hybrid of client-server and P2P
2: Application Layer 11
Client-server architecture
server:
always-on host
permanent IP
address
server farms for
scaling
clients:
client/server
communicate with
server
may be intermittently
connected
may have dynamic IP
addresses
do not communicate
2: Application Layer 12
directly with each other
Pure P2P architecture
peer-peer
no always-on server
arbitrary end systems directly
communicate
peers request service from
other peers, provide service in
return to other peers
self scalability – new peers
bring new service capacity,
as well as new service
demands
peers can be intermittently
connected and change IP
addresses
2: Application Layer 13
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
detection/location
• user registers its IP address with central
server when it comes online
• user contacts central server to find IP
addresses of buddies
2: Application Layer 14
Processes communicating
Process: program running Client process:
within a host. process that
within same host, two initiates
processes communicate communication
using inter-process Server process:
communication (defined by process that waits
OS). to be contacted
different hosts
communicate by 2: Application Layer 15
Sockets (OS ‘jargon’, ‘API’)
process sends/receives messages to/from its socket
(interface with transport layer)
socket analogous to door
sending process ‘pushes’ message out of the door
sending process relies on transport infrastructure on other
side of door which brings message to socket at receiving
process
application application
socket process
controlled by
process app developer
transport transport controlled
network network by OS
link Internet link
physical physical
Q. Is the quality
of this picture
acceptable?
A. It depends ...
Message: in
certain cases we
can accept some
deterioration of the
message we
receive, e.g. due to
lost packets or
delay2: Application Layer 21
Application requirements
examples
applications have
diverse capacity
(bandwidth)
demands
+ applications also
have diverse
demands in terms
of loss, delay, and
delay variation
(among others)
2: Application Layer 23
Effect of propagation delay
(RTT-Round Trip Time) 10,000km link
2: Application Layer 26
Internet transport protocols services
services offered by transport layer to app layer
TCP service: UDP service:
reliable transport between unreliable data transfer
sending and receiving between sending and
process receiving process
connection-oriented: setup does not provide:
required between client connection setup,
and server processes reliability, flow control,
flow control: sender won’t congestion control,
overwhelm receiver timing, or bandwidth
congestion control: throttle guarantee
sender when network
overloaded Q: why bother? Why is
does not provide: timing or there a UDP?
minimum bandwidth
guarantees
we need any more services to be designed? 2: Application Layer 28
Internet apps: application, transport
protocols
Application Underlying
Application layer protocol transport protocol
2: Application Layer 29
Chapter 2: Application layer
2.1 Principles of network
applications
2.6 P2P applications
app architectures 2.7 Socket
app requirements
programming with TCP
2.2 Web and HTTP 2.8 Socket
2.4 Electronic Mail programming with
SMTP, POP3, IMAP UDP
2.5 DNS
2: Application Layer 30
Aside: The Web-some history
Hypertext'91 Conference decides that the
WWW is only worth a Poster!!!!!
World Wide Web
(WWW) was
introduced for
public use as a
service in
August 1991
A public graphic
browser,
Mosaic, was
introduced in
1993
2: Application Layer 35
A typical
web page
HTTP connections
with many
objects
...
received
total = 2.5 RTT (to open and
close connection)+ 1RTT + time time
transmit time for each object
Step 6: for each referenced object we need 1 RTT (open
connection) + 1 RTT +Transmit Time to request and send object+
Time to close connection (1.5 RTT) 2: Application Layer 39
example
RTT increases with
distance: time to
Distance, propagate (‘travel’)
initiate TCP d signal a distance d;
connection
RTT
if speed of channel
request is s, then RTT = 2d/s
file
time to
RTT transmit e.g.
File
(Tix=File
d=1000km/2x108m/
time File received Length/R s
Close RTT link
connection0.5 RTT speed)
=5x10-3 sec.
RTT
SYNACK
REQUE
ST HT
Total time =
ML
RTT
main fi
le 5.5. RTT +
T1=1 mse
c T1+T2+T3
=53.5 msec
REQU
EST JP
G
RTT (note solution is
se c
T2=5 m without
REQUE pipelining)
ST mp3 How would
T2
RTT total times
sec
between the 2
T3 = 2 0 m solutions be
affected if
FIN number of
RTT objects is about
IN
T3 ACK & F
20 with mean
ACK
0.5 RTT
transfer time 5
end msec?
Total time = What if it is
10.5. RTT + T1+T2+T3 with pipelining?
=78.5 msec 2: Application Layer 44
Persistent without vs with
pipelining
RTT= 5 msec beginning beginning SYN
SYN
RTT RTT
SYNACK
SYNACK
REQUE
REQUE ST HT
ST HT ML ma
ML main fi in file
RTT le RTT
c
c T1=1 mse
T1=1 mse se c
T2=5 m
REQU
EST JP se c
RTT
G T3 = 2 0 m
Total time = se c
T2=5 m
5.5. RTT + FIN
REQUE
T1+T2+T3 ST mp3 RTT
IN
=53.5 msec RTT ACK & F
ACK
sec
(without T3 = 2 0 m 0.5 RTT
end
pipelining)
FIN
RTT Total time =
ACK & F
IN ??? RTT +
ACK T1+T2+T3
0.5 RTT =???? msec
end (with pipelining)
What if number of objects
is 30 (for simplicity assume
2: Application Layer 45 10msec each)?
HTTP V1.0 and V1.1 beginning S YN
beginning S YN
RTT= 5 msec
RTT
RTT SYNACK
SYNACK
RTT RE QU E
RE QU E
ST HT
ST HT ML main fi
M L ma le
RTT
in file RTT
c
c T1=1 mse
T1=1 mse ms ec
T2= 5
RE QU
EST JP sec
G T 3= 20 m
RTT
sec
T2= 5 m
FIN
R E QU E
ST mp3 RTT
IN
T2 RTT ACK & F
ACK
sec
T 3= 20 m 0.5 RTT
end
FIN
RTT
IN (v1.1 with
ACK & F
T3
ACK pipelining)
RTT
0.5 RTT
0.5 RTT end
V1.1
(without
Total time = pipelining)
Carriage return,
(extra carriage return, line feed)
line feed
indicates end
of message
2: Application Layer 47
HTTP request message: general
format
2: Application Layer 48
Method types
HTTP/1.1
HTTP/1.0
GET,
GET POST, HEAD
PUT
POST
HEAD
uploads file in entity body to path specified in URL
field
asks server to leave requested object out of
DELETE
response
deletes file specified in the URL field
2: Application Layer 49
Uploading form input
Post method:
Web page often includes form input
URLin
Input is uploaded to server method:
entity body
Uses GET method
Input is uploaded in
URL field of request
line:
www.somesite.com/animalsearch?monkeys&banana
2: Application Layer 50
HTTP response message
status line
(protocol
status code HTTP/1.1 200 OK
status phrase) Connection close
Date: Thu, 06 Aug 1998 12:00:15 GMT
header Server: Apache/1.3.0 (Unix)
lines Last-Modified: Mon, 22 Jun 1998 …...
Content-Length: 6821
Content-Type: text/html
2: Application Layer 51
HTTP response status codes
In first line in server->client response message.
A few sample codes:
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
2: Application Layer 52
Trying out HTTP (client side) for
yourself
1. Telnet to your favorite Web server:
telnet gaia.cs.umass.edu 80 opens TCP connection to port 80
(default HTTP server port)
at gaia.cs.umass. edu.
anything typed in will be sent
to port 80 at gaia.cs.umass.edu
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
Application Layer 2-
58
Caching example:
assumptions:
avg object size: 100K bits
origin
avg request rate from servers
browsers to origin public
servers:15/sec Internet
avg data rate to browsers:
1.50 Mbps
RTT from institutional router
to any origin server: 2 sec 1.54 Mbps
access link rate: 1.54Mbps access link
problem! institutional
consequences: network
LAN utilization: 15% 1 Gbps LAN
access link utilization = 99%
total delay = Internet delay
+ access delay + LAN delay
= 2 sec + minutes + msecs
Application Layer 2-59
Caching example: fatter
access link
assumptions:
avg object size: 100K bits
origin
avg request rate from servers
browsers to origin public
servers:15/sec Internet
avg data rate to browsers:
1.50 Mbps
RTT from institutional router
to any origin server: 2154
sec 1.54 Mbps
154 Mbps
access link rate: 1.54 Mbps access link
Mbps
institutional
consequences: network
LAN utilization: 15%9.9% 1 Gbps LAN
access link utilization = 99%
total delay = Internet delay +
access delay + LAN delay
= 2 sec + msecs
minutes + msecs
Cost: increased access link speed (not cheap!) Application Layer 2-60
Caching example: install
local cache
assumptions:
avg object size: 100K bits
origin
avg request rate from servers
browsers to origin public
servers:15/sec Internet
avg data rate to browsers:
1.50 Mbps
RTT from institutional router
to any origin server: 2 sec 1.54 Mbps
access link rate: 1.54 Mbps access link
institutional
consequences: network
?
LAN utilization: 15% 1 Gbps LAN
?
access link utilization = 100% local web
Howdelay
total to compute
= Internetlink
delay + cache
utilization,
access delay + LANdelay?
delay
= 2 sec + minutes + usecs
Cost: web cache (cheap!)
Application Layer 2-61
Caching example: install local
cache
Calculating access link
utilization, delay with
origin
cache: servers
suppose cache hit rate is public
0.4 Internet
• 40% requests satisfied at
access link utilization:
cache, 60% requests
60% of requests use access link
satisfied at origin
data rate to browsers over 1.54 Mbps
access link
access link
= 0.6*1.50 Mbps = .9 Mbps institutional
utilization = 0.9/1.54 = .58 network
1 Gbps LAN
total delay
= 0.6 * (delay from origin local web
servers) +0.4 * (delay when cache
satisfied at cache)
= 0.6 (2.01) + 0.4 (~msecs) =
~ 1.2 secs
less than with 154 Mbps link
Application Layer 2-62
(and cheaper too!)
BUT is caching without any
problems? is the cached data always current?
Conditional GET cache server
Goal: don’t send
object if cache has HTTP request msg
object
up-to-date cached If-modified-since: <date>
not
version modified
• no object HTTP response
before
transmission delay HTTP/1.0
304 Not Modified <date>
• lower link utilization
cache: specify date
of cached copy in
HTTP request HTTP request msg
If-modified-since: If-modified-since: <date> object
<date> modified
server: response HTTP response after
contains no object if HTTP/1.0 200 OK <date>
cached copy is up- <data>
to-date: DOES THIS SOLVE THE PROBLEM?Application Layer 2-63
Whats coming
HTTPv3 is the upcoming third major version of the
Hypertext Transfer Protocol used to exchange information
on the World Wide Web, alongside HTTPv1.1 and HTTPv2
HTTP semantics are consistent across versions:
the same request methods, status codes, and message fields are
typically applicable to all versions. The differences are in the
mapping of these semantics to underlying transports. Both
HTTPv1.1 and HTTPv2 use TCP as their transport.
HTTPv3 uses QUIC, a transport layer network protocol
developed initially by Google where user space
congestion control is used over the User Datagram
Protocol (UDP).
The switch to QUIC aims to fix a major problem of HTTP/2
called "head-of-line blocking": because of the parallel
nature of default. Safari 14 will ship with HTTPv3 enabled by default.
https://en.wikipedia.org/wiki/HTTP/3
2: Application Layer 64
HTTPv2
Key goal: decreased delay in multi-object
HTTP requests
O1
O2
O
O O3
1
2
O
O
O4
3
4
GET
object data
GET GET
O4 O3 O2
GET requested
client O1
O
2 O
4 O O1
3
O2
O3
O O4
1
2: Application Layer 70
FTP: the file transfer protocol
2: Application Layer 71
FTP: separate control, data
connections
TCP control
FTP client contacts FTP connection
port 21
server at port 21, TCP is
transport protocol TCP data connection
client authorized over control FTP port 20 FTP
connection client server
client browses remote server opens another TCP
directory by sending
data connection to transfer
commands over control
another file.
connection.
control connection: “out of
when server receives file
band”
transfer command, server
FTP server maintains
opens 2nd TCP connection,
port 20 (for file) to client “state”: current directory,
earlier authentication
after transferring one file,
server closes data
2: Application Layer 72
connection.
Chapter 2: Application layer
2.1 Principles of network
applications
2.6 P2P applications
2.2 Web and HTTP 2.7 Socket
2.3 FTP programming with TCP
2.4 Electronic Mail 2.8 Socket
SMTP, POP3, IMAP programming with
2.5 DNS UDP
2: Application Layer 74
Electronic Mail user
outgoing
message queue
agent user mailbox
Three major
components: mail
server user
user agents agent
mail servers SMTP mail user
simple mail transfer server agent
protocol: SMTP SMTP
User Agent SMTP user
a.k.a. “mail reader” mail agent
composing, editing, server
2: Application Layer 77
Scenario: Alice sends message to
Bob
1) Alice uses User Agent 4) SMTP client sends Alice’s
(UA) to compose message over the TCP
message to connection
[email protected] 5) Bob’s mail server places
2) Alice’s UA sends the message in Bob’s
message to her mail mailbox
server; message placed 6) Bob invokes his user
in message queue agent to read message
3) Client side of SMTP opens
TCP connection with
Bob’s mail server
1 mail
mail
server user
user server
2 agent
agent 3 6
4 5
2: Application Layer 78
Sample SMTP interaction
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <[email protected]>
S: 250 [email protected]... Sender ok
C: RCPT TO: <[email protected]>
S: 250 [email protected] ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection
2: Application Layer 79
Try SMTP interaction for yourself:
telnet servername 25
see 220 reply from server
enter HELO, MAIL FROM, RCPT TO, DATA, QUIT
commands
above lets you send email without using email
client (reader)
2: Application Layer 80
Mail message format
2: Application Layer 82
Mail access protocols
SMTP SMTP access user
user
agent protocol agent
2: Application Layer 86
DNS: Domain Name System
Main function:
hostname to IP address Why not centralize
translation (e.g. www.yahoo.com to 1001 DNS?
…11)
single point of failure
Plus: traffic volume
host aliasing distant centralized
Canonical, alias database
(pseudonym) names
maintenance
mail server aliasing
load distribution
doesn’t scale!
replicated Web servers: set
of IP addresses for one
canonical name (e.g.
amazon.com)
2: Application Layer 88
Distributed, Hierarchical
Database
TLD servers
org DNS servers edu DNS servers
com DNS servers …
pbs.org poly.edu umass.edu
yahoo.com amazon.com
DNS servers DNS serversDNS servers
DNS servers DNS servers
Authoritative
servers
2: Application Layer 89
DNS: Root name servers
contacted by local name server that cannot resolve name
root name server:
contacts authoritative name server if name mapping not
known
gets mapping
returns mapping to local name server
a Verisign, Dulles, VA
c Cogent, Herndon, VA (also LA)
d U Maryland College Park, MD k RIPE London (also 16 other locations)
g US DoD Vienna, VA
h ARL Aberdeen, MD i Autonomica, Stockholm (plus
j Verisign, ( 21 locations) 28 other locations)
e NASA Mt View, CA m WIDE Tokyo (also Seoul,
f Internet Software C. Palo Alto, Paris, SF)
CA (and 36 other locations)
13 root name
servers
b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA worldwide
2: Application Layer 91
TLD and Authoritative
Servers
Top-level domain (TLD) servers:
responsible for com, org, net, edu, etc, and all
top-level country domains, e.g. uk, fr, ca, jp,
cy.
• Network Solutions maintains servers for com TLD
• Educause for edu TLD
• UCY for .cy
2: Application Layer 93
Distributed, Hierarchical
Database
Root DNS Servers
TLD servers
resolution example
2
Host at cis.poly.edu 3
TLD DNS server
wants IP address 4
for 5
gaia.cs.umass.edu
a) iterated query: local DNS server
dns.poly.edu
contacted server
7 6
replies with name of 1 8
server to contact
“I don’t know this authoritative DNS server
dns.cs.umass.edu
name, but ask this requesting host
server” cis.poly.edu
gaia.cs.umass.edu
2: Application Layer 95
DNS name
resolution example root DNS server
b) recursive query: 2 3
puts burden of
7 6
name resolution on
TLD DNS server
contacted name
server
heavy load on root local DNS server
dns.poly.edu 5 4
DNS server?
1 8
gaia.cs.umass.edu
2: Application Layer 96
DNS: caching and updating
records
once (any) name server learns mapping, it
caches mapping
cache entries timeout (disappear) after
some time
TLD servers typically cached in local name
servers
• Thus root name servers not often visited
update/notify mechanisms under design by
IETF
RFC 2136
http://www.ietf.org/html.charters/dnsind-charter.html
2: Application Layer 97
DNS records
DNS: distributed db storing resource records (RR)
RR format: (name, value, type,
ttl)
Type=A Type=CNAME
name is hostname name is alias name for some
value is IP address “canonical” (the real) name
Type=NS www.ibm.com is really
servereast.backup2.ibm.com
name is domain (e.g.
value is canonical name
foo.com)
value is hostname of
Type=MX
authoritative name value is name of
server for this domain
mailserver associated with
name
2: Application Layer 98
Inserting records into DNS
example: new startup “Network Utopia”
(dns1.networkutopia.com, 212.212.212.1, A)
hostname IP address
2: Application Layer 99
Chapter 2: Application layer
2.1 Principles of network
applications
2.6 P2P applications
app architectures 2.7 Socket
app requirements
programming with TCP
2.2 Web and HTTP 2.8 Socket
2.4 Electronic Mail programming with
SMTP, POP3, IMAP UDP
2.5 DNS
Three topics:
File distribution
Searching for
information
Case Study: Skype
2: Application Layer 103
P2P file sharing Bob
peers
Alice chooses one of
Example the peers, Bob.
Alice
Alice runs P2P client file is copied
application on her from
notebook computer Bob’s PC to Alice’s
intermittently connects tonotebook:
Internet;HTTP
gets new IP
while Alice
address for each connection
asks for “Hey Jude” downloads, other
users uploading from
application displays other peers that have
Alice.
copy of Hey Jude.
Alice’s peer is both a
Web client and a
transient Web server.
All peers are servers =
highly scalable!
2: Application Layer 104
P2P: centralized directory
Bob
original “Napster” centralized
design directory server
1
1) when peer connects, peers
it informs central 1
server:
1 3
IP address
content 2 1
Application Layer
increases linearly in N 112
File Distribution: Server-Client vs
P2P
Since 10 Mbps shared equally among N (10) users,
then effective download speed of 1 Mbps,
Is this less than the upload bandwidth of each
user? YES
Then total time is equal to 4 Mbits / 1Mbps = 4
seconds to download file (by all users)
increases linearly in N …
… but so does this, as each peer brings service capacity
Application Layer 114
Server-client vs. P2P: example
ient upload rate = u, F/u = 1 hour, us = 10u, dmin ≥ us
3.5
P2P
Minimum Distribution Time
3
Client-Server
2.5
1.5
0.5
0
0 5 10 15 20 25 30 35
N
2: Application Layer 115
P2P file distribution: BitTorrent
file divided into 256Kb chunks
peers in torrent send/receive file chunks
Alice arrives …
… obtains list
of peers from tracker
… and begins exchanging
file chunks with peers in torrent
SC registers with SN
list of bootstrap SNs Skype
login server
SC logs in
(authenticate)
Call: SC contacts SN with
Supernode
callee ID (SN)
controlled by
controlled by process application
application process
developer
developer socket socket
controlled by TCP with TCP with controlled by
buffers, operating
operating buffers, internet system
system variables variables
host or host or
server server
write reply to
connectionSocket read reply from
clientSocket
close
connectionSocket close
clientSocket
2: Application Layer 129
Chapter 2: Summary
our study of network apps now
complete!
application specific protocols:
architectures HTTP
client-server
FTP
P2P
SMTP, POP, IMAP
hybrid
DNS
application service
P2P: BitTorrent, Skype
others …
requirements:
reliability, bandwidth,
delay socket programming
Internet transport
service model
connection-oriented,
reliable: TCP
unreliable, datagrams: 2: Application Layer 144
Chapter 2: Summary
Most importantly: learned about
application layer protocols
e.g. typical Important themes:
request/reply message centralized vs.
exchange: decentralized
client requests info or stateless vs. stateful
service reliable vs. unreliable
server responds with
data, status code
msg transfer
“complexity at
message formats:
headers: fields giving info network edge”
about data client server vs peer-
data: info being to-peer
communicated 2: Application Layer 145