4.5 KiB
OSI Model
The OSI Model is a layered protocol model. It was proposed by the International Organization for Standardization. The model can be used as a reference to understand how networks operate.
The model was created to have a standard which hardware/software producers could use so that different products could work with each other.
For example, before this model was introduced, hardware from company A could not work together with hardware of company B because the protocols and techniques used were completely different.
As you can see the model has 7 layers. Each layer has their own responsibility.
Note: We don't actually "use" the OSI model, we mostly use the TCP/IP Model now. The implementation is exactly the same, only some layers are different.
7. Application Layer
The application Layer provides services to the end user. So this is the layer the user actually interacts with.
These services are usually protocols that interact with the data that the user uses.
Examples of services (protocols):
- HTTP
- FTP
- IRC
- SSH
- DNS
- SMTP
For example a web browser like Google Chrome uses the HTTP protocol to browse files on the internet. And the mail client Outlook uses the SMTP protocol to send mail via the internet.
6. Presentation Layer
The presentation layer is responsible for preparing the data so that it can be used by the Application Layer.
Presentation layer is responsible for:
- Translation of data
- Encryption of data
- Compression of data
For example, two devices can use different types of encoding on their data, the presentation layer will translate the data in a way that the Application Layer can understand.
When sending sensitive data, we would like to encrypt the data so that its secure. The Presentation layer is responsible for encrypting and decrypting ingoing or outgoing data.
Also when sending of receiving data we sometimes want to compress the data so that sending and receiving data is more efficient. (smaller size)
5. Session Layer
The session layer is responsible for opening and closing connections between two devices. The duration of a connection is called the session.
The session layer ensures that the connections remains active and open so that the data being received and/or send is complete.
For example when sending a big file to someone, which takes some time, the session layer will keep the connection open long enough to send the complete file.
The session layer also synchronizes the data transfer with checkpoints. For example, if a 50 MB file is send to a device, the session layer could set a checkpoint every 10 MB. In case of a disconnect (session close), the session could be restored to a certain checkpoint and the data transfer can resume where it disconnected.
This way we do not need to completely resend the file.
4. Transport Layer
The Transport Layer is responsible for the end-to-end communication between 2 devices.
The Transport layer on the sending device takes data from the Session Layer and breaks them up in chunks called segments.
On the receiving device the Transport Layer reassembles the segments of data that the Session Layer can consume.
While sending data via a network data can get corrupted, the Transport layer also ensures the data being received is complete and correct, and requesting a retransmission if its not.
The Transport Layer also controls the flow of outgoing data so that the receiver is not overwhelmed with data. (fast to slower connections for example)
3. Network Layer
The Network Layer is responsible for handling the data transfer between two different networks. This means that this layer is not needed if the receiving device is on the same network.
The Network Layer breaks up segments from the Transport layer into smaller chunks called Packets. The reverse happens on the receiving device (reassembling packets into segments).
Furthermore the Network Layer also finds the optimal path to travel from origin network to the destination network. This is called routing.
2. Data Link Layer
The Data Link Layer is responsible for handling the data transfer between two devices on the same network. (so a bit like the Network Layer)
The Data Link Layer also splits up packets into smaller chunks called a frame. The reverse happens on the receiving device (reassembling frames into packets).
Like the Network Layer the Data Link Layer is also responsible for flow control and error checking. However it only does this for inter-network communications. (Local network)