The Open Systems Interconnection model, known as the OSI model, is a concept that splits the functionality of computer networking into multiple layers. When thinking about networking, you can look at it as the way data packets get sent from one device to another. One analogy that can be applied to networking is how the US postal service and how mail circulates throughout the country. Now, where the OSI model is the concept or idea, the TCP/IP model is the actual implementation. This TCP/IP model has slightly different layers but the concepts from the OSI model remain the same. Let’s check out the layers for each model before diving into each OSI layer in more detail.
OSI & TCP/IP layers overview
This layer refers to the cables that connect devices and the information that travels through them. This information is sent as electrical impulses. Also, you have wireless data that can travel back and forth between devices. Wireless data gets converted to signals and vice versa by network interface cards (NIC). This layer involves other things such as pinouts, voltages, cable specs and more.
Data link layer
This layer is where access to the device begins. The main functionality of this layer is to package bits and data into what’s called a frame and start the process of moving data packets from source to destination. The data link layer communicates by using a media access control (MAC) address which is uniquely hard-coded on all NICs. Two examples of devices that work on this layer are switches and hubs.
The network layer, sometimes referred to as the IP layer, uses IP addresses to determine where to send data packets. IP addresses are logical addresses (opposite of hard-coded) that map to MAC addresses. These IP addresses can be in the same network or different networks and it is up to devices like routers to determine if they should send data packets to an external network or to a location inside the local network. This layer also performs packet fragmentation and reassembly. Mentioned earlier, routers are good example devices when it comes to the network layer; they even have multiple IP addresses for interacting with internal and external networks.
When it comes to managing the packets that we send and receive, this is the job of transport layer. This layer splits packets to one of two categories: TCP or UDP. TCP packets involve something called a three-way-handshake which you can think of as a way to ensure a connection is made and each packet reaches its destination. UDP does not use this technology, it works similar to a fire-and-forget method. An example where UDP packets are typically used is audio and video streaming. When you have a good connection and everything is working as intended, most or all of these packets will arrive at their intended destination, allowing users to enjoy their favorite song or movie from anywhere with an internet connection. If you have a poor connection, audio and video streaming looks very choppy and blurry.
Next we have the session layer, also known as the traffic control layer. This layer’s main job is to establish, manage, and close the communication channel between devices. During the established connection, the session layer also regulates how much data can be sent in each data packet. In order to handle these responsibilities, this layer has control over the layers beneath it.
From the session layer, the presentation layer translates data to a form that the application can work with. This translation allows applications that may have different data representations to still communicate. It can also format data via encryption or decryption.
The final layer is the application layer. Also known as the network access layer. This layer can use protocols such as SMTP for email, HTTP for web, and FTP for file transfer. Through a user or automated action, it also identifies communication partners. Think about when you’re choosing a recipient for an email or decide to visit a streaming website, this decides the partner and method of communication. The application layer also has the ability to determine if the resources are available for communication like an internet or wifi connection. Most of us interact with devices on these levels when using websites, apps, smart devices, etc.