Introduction to the OSI model

Hello everyone 🖖

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

By the 70s, there were many different communication protocol stacks: TCP/IP, IBM SNA and others. Such diversity has given rise to the problem of incompatibility of devices using different protocols. In the early 80's, ISO (International Standards Organization) and ITU (International Telecommunications Union) developed a standard Open systems Interaction Model (OSI).

The OSI model defines:

  1. levels of interaction;
  2. standard level names;
  3. level functions.

The means of interaction in the OSI model are divided into seven levels:

  • applied (application layer);
  • presentation layer;
  • session layer;
  • transport (transport layer);
  • network (network layer);
  • channel (data link layer);
  • physical (physical layer).

Let's take an abstract look at how the OSI model interaction occurs between two applications.

Suppose we have two applications A and B running on different computers. Application A is a browser, and application B is an online store server. They exchange various messages, such as information about products or orders.

The browser, using the operating system system calls that form the API, sends requests to the application-level system tools with a request to send the request to the online store server. Next, this message passes through each level that is responsible for a specific function, for example, the presentation level for transcoding the message. At each level, service level headers are added to the message, which will be analyzed on the computer to which the request is addressed (in the image of the cell with numbers 1-7).

When the message reaches the means of the physical layer, which is responsible for transmitting the request over the communication lines, it is sent to the addressee.

It is worth noting that in this example, walking through the levels, until the moment of getting on the line, occurs within the processes on the same computer.

When the sent request reaches the second computer, it is received by its physical layer and is consistently moved up level by level. At each level, the headers assigned at the computer and browser levels are analyzed.

The protocols of the lower four levels are generally called network transport, since they completely solve the problem of transporting messages with a given level of quality in composite networks with arbitrary topology and various technologies. The remaining three levels are united by the fact that they are closely related to user applications, providing them with high-level services for the use of network resources and services.

In the following articles, we will look at each of the levels in more detail.



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.


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.


Testing an MVP concept

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


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.


OSI Model Levels

In this article, we will take a closer look at each of the levels of the OSI model


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.


CSS animation ripple

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


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


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


Weighted graphs

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


Why does a VPN business need?

In this article, we will look at how you can secure access to enterprise cloud resources using a VPN