TCP/IP Stack - Application Layer
Contents
Application Layer
Creating a network app
As discussed earlier, as layers are independent, we need to write programs which:
1. Connect to other local programs
Using Interprocess Communication (IPC), applications are able to communicate with other applications on the same system. These use sockets (and pipes)
2. Communicate over the network
Applications also need to communicate over the network (ie servers and clients).
Over the IP network, connections have identifiers which include their IP Address, and a port number.
For example, a web server would operate on port 80
(443
for HTTPS).
Network Architectures
- Client-Server Architecture
- P2P Architecture
Transport Services
Requirements:
1. Data Integrity
Does the app require 100% reliable data?
2. Throughput
Does the app require a minimum amount of throughput to be “effective”?
3. Timing
Does the app require low delay, while some require extremely fast connections to be “effective”
4. Security
Does the app require encryption and data integrity?
Transport Layer
TCP Protocol
- reliable transport
- flow control
- congestion control (slows down the sender then network is busy)
- Does not provide timing, minimum throughput guarantee or security
- connection oriented (setup is required between client and server)
UDP Protocol
- unreliable data transfer
- does not provide flow control, congestion control, timing, throughput guarantee security or connection setup