Principles of Application Layer Protocols
Network Application Architecture
- Application communicating,distribute processes
- hosts in "user spece"
- exchange messages to implement application
- Application-layer protocols
- define messages exchanged by apps and actions taken
- user services provided by lower layer protocols
Processes Communicating
- Client
- initiate contact with server (first)
- typically requests service from server
- Server
- provides requests service to client
Application-layer protocols
- defines interface between application and transport layer
- socket -> Internet API
- two processes commiunicate by sending data to socket and reading data from socket
Services provided by Internet transport protocols
TCP
- connection-oriented: setup required between client and server
- reliable transport: between sending and receiving process
- flow control: sender won't overwhelm receiver
- congestion control: throttle sender when network overloaded
- Not provided:
timing
minimum bandwidth guarantees
UDP
- lightweight: unreliable data transfer between sending and receiving process
- Not provided:
connection setup
reliability
flow control
congestion control
timing
any bandwidth guarantee