Application Layer

The application layer is the highest layer in the protocol stack, and contains many of the technologies that power the web, yet we take it for granted nearly every day. In this topic, we examine in great detail the architectures contained within this layer, and the how we use them.

Architectures
The Application Layer is used in three ways:
 * Client-Server
 * Peer to Peer
 * Hybrid

Client-server
The Client Server Model operates mainly on the concept of an always-on server, to whom a client may connect to. The server normally has a static IP address, and an associated DNS record to allow hosts to look it up. Clients may come and go, and are never directly connected to each other. Applications that communicate between hosts using the client server model must send information through the server, which may be problem if the server happens to go offline.

An example of the Client Server Architecture is the web server and browser. Wikiversity is hosted on a number of mediawiki servers, which are always on, allowing you and other people from across the globe to view this web page.

Peer to Peer
Also known as P2P, the peer to peer architecture does not require the use of centralised servers. Instead, hosts communicate directly with each other. Hosts may have dynamic IP addresses and may join or leave such networks at any time.

A greatly known example of P2P is the bittorrent file sharing protocol.

Hybrid
Hybrid architectures use a combination of both P2P and client server architecture.

An example of this is the Skype protocol. A central server stores each user's address book and IP address. When one person wants to make a call to another, Skype provides the IP address to the destination host and a peer to peer connection is established between the two users.

Technologies used in the Application Layer

 * Domain Name System
 * Voice over Internet Protocol