Introduction to the application layer

The application layer is the top layer of the TCP/IP stack.

This layer does not move bits across cables or handle the delivery of data.

Instead, it specifies the protocols that applications use to communicate over the network and the services they offer, such as web browsing and domain name resolution.

Network application architectures

Predominant architectural paradigms:

  1. client-server architecture
    • a server handles requests from many other hosts
  2. peer-to-peer (P2P) architecture
    • the application exploits direct communication between pairs of intermittently connected hosts (peers)

Processes

Programs use processes to communicate with each other:

In a communication session between a pair of processes:

Sockets

A socket is an operating-system-provided software abstraction that represents an endpoint for communication.

It allows a process to send and receive data through the networking stack.

A process communicates by creating sockets and using operations such as binding, connecting, sending, receiving, reading, and writing.

A socket is like a door through which data enters and leaves a process:

Application processes, sockets, and underlying transport protocol

The socket API provides the interface between an application and the operating system's networking stack. Through this API, applications can use transport-layer protocols.

The application developer:

Application-layer protocols

An application-layer protocol defines how processes on different devices send messages to each other:

Some application-layer protocols are specified in RFCs and are therefore in the public domain (e.g., HTTP).

Many other application-layer protocols are proprietary and intentionally not available in the public domain (e.g., WhatsApp, Discord, Microsoft Teams, Signal).

Previous Networks under attack All ⏎ Next HTTP

A Kemar Joint