Professional Documents
Culture Documents
2: Application Layer 1
Some network apps
E-mail Internet telephone
Web Real-time video
Instant messaging conference
Remote login Massive parallel
P2P file sharing computing
Multi-user network
games
Streaming stored
video clips
2: Application Layer 2
Creating a network app
Write programs that application
transport
network
run on different end data link
physical
systems and
communicate over a
network.
e.g., Web: Web server
software communicates
with browser software
No software written for application
application
2: Application Layer 4
Network Application Architectures
Client-server
Peer-to-peer (P2P)
Hybrid of client-server and P2P
2: Application Layer 5
Client-server archicture
server:
always-on host
permanent IP address
server farms for scaling
clients:
communicate with server
may be intermittently
connected
may have dynamic IP
addresses
do not communicate
directly with each other
Examples?
2: Application Layer 6
Pure P2P architecture
no always on server
arbitrary end systems
directly communicate
peers are intermittently
connected and change IP
addresses
example: Gnutella
Highly scalable
2: Application Layer 8
Processes communicating
Process: program running Client process: process
within a host. that initiates
within same host, two communication
processes communicate Server process: process
using inter-process that waits to be
communication (defined contacted
by OS).
processes in different Note: applications with
hosts communicate by P2P architectures have
exchanging messages client processes &
server processes
2: Application Layer 9
Sockets
host or host or
process sends/receives server
server
messages to/from its
socket controlled by
app developer
socket analogous to door process process
2: Application Layer 11
Addressing Processes
(Port Numbers)
Port = 80 Port = 25
TCP
IP = 138.110.1.1
2: Application Layer 12
App-layer protocol defines
Types of messages Public-domain protocols:
exchanged, eg, request & defined in RFCs
response messages
allows for
Syntax of message
types: what fields in interoperability
messages & how fields eg, HTTP, SMTP
are delineated Proprietary protocols:
Semantics of the fields,
eg, KaZaA
ie, meaning of
information in fields
Rules for when and how
processes send &
respond to messages
2: Application Layer 13
Applications and App-Layer Protocols
UI
HTTP
Web Server
Web Browser
File
HTTP … Access
2: Application Layer 14
What transport service does an app need?
Data loss Bandwidth
some apps (e.g., audio) can some apps (e.g.,
tolerate some loss multimedia) require
other apps (e.g., file
minimum amount of
transfer, telnet) require bandwidth to be
100% reliable data
“effective”
transfer
other apps (“elastic
Timing
apps”) make use of
some apps (e.g.,
whatever bandwidth
Internet telephony,
they get
interactive games)
require low delay to be
“effective”
2: Application Layer 15
Transport service requirements of common apps
2: Application Layer 16