The Application Layer
The Application Layer is the seventh and top layer of the OSI Reference Model. It is responsible for interfacing with end-user application programs and it provides a way for these applications to transmit information down the protocol stack using application layer protocols. A common misconception is that programs such as web browsers reside on this layer, however this is not quite true. Web browsers do not reside on the Application Layer, rather they interface with Application Layer protocols such as HTTP and HTTPS. Additional functions at this layer include ensuring that the communicating partners are both available and that that there are enough resources to enable the transmission.
Here is a short list containing just some of the more popular protocols operating at this layer (there are literally hundreds of Application Layer protocols in use today):
- FTP: File Transfer Protocol
- TFTP: Trivial File Transfer Protocol
- HTTP: Hypertext Transfer Protocol
- HTTPS: Hypertext Transfer Protocol Secure
- DNS: Domain Name System
- SSH: Secure Shell
The Presentation Layer
The role of the Presentation Layer is not quite as easy to grasp as the Application Layer. According to the OSI Reference Model, the Presentation Layer presents data to the Application Layer and is responsible for functions such as data translation and code formatting/conversion. Let me explain these concepts as I understand them. When data is transmitted, it is generally encoded with a particular encoding standard (i.e. a character encoding standard) and must be decoded when it is received. According to this Wikipedia article, "a character encoding system consists of a code that pairs each character from a given repertoire with something else, such as a sequence of natural numbers, octets or electrical pulses, in order to facilitate the transmission of data (generally numbers and/or text) through telecommunication networks or storage of text in computers." Examples of common character encoding standards include:
Therefore when communicating, network applications have to agree on which coding standards they're going to use to encode data so that they are both able to process and interpret it. Some of the additional functions that may occur at this layer include data compression/decompression, encryption/decryption, and sometimes even multimedia operations.
The Session Layer
The Session Layer has a fairly simple role and we will not go into it in too much detail. In simple terms it is responsible for making sure that each application's communications are kept separate, as well as opening, managing, and eventually closing sessions between these network applications. The Session Layer typically offers three different communication modes:
- Simplex: One direction only.
- Half duplex: Both directions but not simultaneously.
- Full duplex: Both directions simultaneously.
I hope that this brief look at the top three layers of the OSI Reference Model was informative. Feel free to leave any questions you may have in your comments and I'll try my best to answer them. In the next few blog posts we will look at the bottom 4 layers and then delve into Ethernet in a quite a bit of depth.