Application layer protocol

Download Report

Transcript Application layer protocol

Application Layer
1
Writing Networked Applications
• Socket Layer:
Real
Player
Web
Browser
– Programmer’s API to the IP
Protocol stack
Socket Layer
TCP
UDP
IP
LL
PL
Web
Server
Ftp
Server
RTSP
Server
Socket Layer
Ftp
Client
TCP
Socket Layer
TCP
UDP
IP
LL
PL
UDP
IP
LL
PL
2
Issues
• What Transport Layer Protocol to use?
– TCP? UDP? SCTP?
• How to program? What’s the programmer’s
API to the protocol stack?
– The socket layer
• What is the syntax and semantics of the
messages exchanged between a client and a
server?
– Application layer protocols: FTP, HTTP,
DNS, SMTP, RTSP, …
3
What transport service does an app need?
Data loss
• 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
4
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., Dialpad)
TCP
TCP
TCP
TCP
TCP or UDP
typically UDP
5
App-layer protocol defines
• Types of messages exchanged,
e.g., request & response
messages
• Syntax of message types:
what fields in messages & how
fields are delineated
• Semantics of the fields, i.e.,
meaning of information in
fields
Public-domain protocols:
• defined in RFCs
• allows for interoperability
• e.g., FTP, HTTP, SMTP
Proprietary protocols:
• e.g., Yahoo Instant Messaging
Protocol, KaZaA (P2P media
distribution protocol)
• Rules for when and how
processes send & respond to
messages
6