OSI Model Levels

In the last article, we got acquainted with the OSI model. It's time to take a closer look at each of the layers.

Physical layer

This layer of the OSI model is responsible for transmitting the bit stream over physical communication channels - various cables and wireless communication lines.

Physical layer functions are implemented on all devices connected to the network. For a computer, this function is performed by a network adapter, and from the side of intermediate network devices - routers, switches, etc.

There is no data analysis going on at this level. The main task is to deliver, without distortion, a stream of bits, in accordance with the chosen encoding and the interval between adjacent bits.

Datalink level

This layer provides, to the overlying, network, the following services:

  •    establishing a logical connection between interacting nodes;
  •    coordination within the connection of the speeds of receiving and sending information;
  •    ensuring reliable transmission, error detection and correction.

Datalink layer protocols are implemented both on end nodes (network adapters) and on all intermediate network devices (routers, etc.).

The data unit of this level is a frame. The frame data field contains a network layer message, and the header contains service information, including the destination address.

The datalink layer can ensure the reliability of transmission, for example, by fixing the boundaries of the frame, placing a special sequence of bits at its beginning and end, and then adding a checksum to the frame. On the receiver side, the channel layer groups the bits coming from the physical layer into frames, calculates the checksum of the received data again, and compares the result with the checksum transmitted in the frame. If they match, then the frame is considered correct. If the checksums do not match, then an error is fixed.

Network Layer

In my opinion, this level is one of the most significant levels of the model. It is a link for different networks that use their own channel layer technology, for example, Ethernet, FDDI, Token Ring networks. Without this layer, it is impossible to transmit a message from the Ethernet network to the FDDI network.

Network layer functions are implemented:

  •    protocol group;
  •    routers.

Routers can be either software supplied with the operating system, or hardware, separate devices that are most often responsible for this level.

A network layer data unit is a packet that is formed as a result of adding appropriate headers to the data of a higher level. The header of network layer packets, along with other information, contains data about the destination address of the packet.

In order for packets to be delivered to any node in a composite network, they must have unique addresses within it - network or global.

Determining the route is another task of this level, which describes the route through which the package should pass. As a rule, a route consists of a sequence of other routers.

The router stores information about the topology of connections in routing tables.

Transport level

This layer is responsible for ensuring reliable data transmission for the upper levels of the model with the degree of reliability that they require.

The OSI model defines five classes of transport service from the lowest 0 to the highest 4. The classes differ: urgency, connection renewability, availability of connection multiplexing facilities, the ability to detect data packet distortion.

The choice of a transport protocol depends on the needs of a particular application, for example, for media streaming services, possible packet losses are not so important, which cannot be said, for example, about file servers.

The brightest representatives of protocols of this level are TCP and UDP protocols of the TCP/IP stack.

Session level

This level controls the interaction of the parties: it records which of the parties is currently active and provides tools for session synchronization. The functions of this layer are often combined with the functions of the application layer and implemented in a single protocol.

Presentation level

Thanks to this layer, the information transmitted by the application layer of one system is understandable to the application layer of another. Data encryption and decryption can also be performed at this level, for example, using the SSL protocol, storing/unpacking information, encoding media files.

Application level

This is the level that applications interact with. Authentication, authorization, determination of session security requirements, etc. take place at this level.

For requests to this level, system calls of the operating system are used, forming an API.

Examples of application layer protocols: SSH, FTP, HTTP, etc.


We have reviewed all levels of the OSI model in general terms, which is useful knowledge. In the following articles, we will begin to delve into the TCP/IP stack.



Composition of the IT development team

In this article we will look at the composition of the IT solution development team


About graphs, simply.

In this article, we will begin our acquaintance with graphs, get acquainted with the breadth-first search algorithm (BFS) and implement the graph in the Rust programming language.


What is the difference between outsourcing development and outstaffing an IT employee for development?

In this article we will understand what outsourcing and outstaff development are.


UI/UX design: The creation process

In this article we will talk about the main steps in the process of creating UI/UX design.


UI/UX design: Introduction

In this article, we begin to get acquainted with UI / UX design. This is the most important stage in the development of any visual application interface.


Agile, Six Sigma and No Principle

In the last article, we started diving into the development process. The first stage of this process is planning. At this stage, the project manager, together with other team members, forms a pool of tasks in accordance with some kind of project management methodology.


Meet the Pentest

We are beginning to consider one of the main methods of assessing the security of computer systems and networks for potential vulnerabilities - penetration testing


Reducing the implementation period of MVP

Let's figure out the timing of the implementation of the MVP.


Choosing a programming language

In this article we will talk about choosing a programming language to study


Testing an MVP concept

We will figure out how not to waste the budget on MVP development in vain


Application Architecture Design: Introduction

In this article, we will talk about the process of creating the architecture of an IT solution.


The terms of references: Structure

In this publication we will consider the universal structure of ToR


Incorrect estimation of the cost of IT contractor services

Today we will talk about the incorrect assessment of the cost of developing IT solutions. This pain is one of the main ones for enterprises and startups, including IT contractors themselves.


Introduction to Design Patterns in Software Development

In this article, we will begin to dive into the world of optimizing application architecture using design patterns.


Choosing the direction of development for programming training

In this article, you will find out what areas of IT development there are, how they differ and in which they pay more


Main types of application architecture

In this publication, we will look at what application architectures are


10 ways to use Rust Cargo

In this short article I have collected 10 ways to use the build system and package manager of the Rust programming language


Documenting code in the Rust programming language

In this article, we will look at how documentation takes place in Rust and consider a very useful opportunity - writing tests through documentation.


Introduction to the OSI model

In this article we begin to consider the fundamental model of network interaction - OSI


CSS animation ripple

A simple example of how to implement ripple animation using HTML and CSS


What is the purpose of an ER-diagram in the development process?

Let's discuss in general terms what an ER diagram is and what it is used for.


From concept to MVP

In this article, you will learn, by example, how to move from a concept to an MVP without unnecessary complications in the functionality of the product


What are UML diagrams used for?

In this article we will talk about what UML diagrams are, what they are and where they are used


Introduction to writing the terms of references

The Terms of Reference are an important part of the development process. In this article, we will begin to dive into this issue.


Introduction to software development

Today, most companies are faced with IT development and often do not get what they want. In this article, we begin to dive into the process of creating IT solutions.


From idea to concept

In this publication, we will talk about how the idea differs from the concept. Let's do this with an example of a specific goal


IT project management methodologies: Waterfall, Scrum, Prince2

In this article, we will consider the basic methodologies of IT project management.


Weighted graphs

In this article, we will get acquainted with weighted graphs, Dijkstra's algorithm, and its implementation in the Rust programming language.


Development Process: Planning

In this publication, we will begin to consider the development process. Let's start with the planning process.