В этой статье вы узнаете об основных понятиях модели Open Systems Interconnections (OSI) в простой и доступной форме. Многие, вероятно, знают основы того, что такое интернет и как он работает. Есть клиент и сервер, и они «общаются» друг с другом с помощью чего-то, называемого HTTP или HTTPS?

В этой статье вы узнаете как компьютеры общаются друг с другом по сети.

Что такое модель OSI?

Модель Open Systems Interconnection или OSI - это, по сути, справочная система, определяющая, как компьютеры взаимодействуют друг с другом по сети.

Она была создана в 1983 году представителями телекоммуникационных компаний и официально стандартизирована в 1984 году Международной организацией по стандартизации (ISO).

Она разделена на семь уровней. Каждый уровень имеет свой собственный домен и получает данные от предыдущего уровня, одновременно передавая их следующему уровню.

Семь уровней:

  • Прикладной уровень

  • Уровень представления

  • Сеансовый уровень

  • Транспортный уровень

  • Сетевой уровень

  • Канальный уровень

  • Физический уровень

Если представить это в терминах кодирования, то каждый слой - это класс с некоторой основной функциональностью, и каждый класс взаимодействует только с классом выше или ниже его.

Имейте в виду, что модель OSI мы не используем в реальной жизни. Существует и другая модель, которая очень похожа на модель OSI, но в ней инкапсулируются первые три уровня и последние два.

Эта модель в «реальной жизни» называется моделью TCP/IP, на основе которой работает Интернет.

Модели OSI и TCP/IP
Модели OSI и TCP/IP

Но прежде чем мы перейдем к рассмотрению каждого уровня по отдельности, давайте разберемся, зачем вам изучать модель OSI, если она даже не используется в реальной жизни.

Почему важно понимать модель OSI?

Хотя модель OSI не применяется напрямую в реальной жизни, она служит отличным примером для понимания, как работает сеть. Разделение на уровни упрощает диагностику и устранение проблем, позволяет проектировать надежные системы и помогает глубже понять взаимодействие технологий.

Знание модели OSI может быть полезным, если вы работаете в области сетевых технологий, разработки приложений или просто хотите лучше понять, как устроен интернет. Она формирует основу для изучения протоколов, сетевой безопасности и принципов работы современных сетей.

Семь уровней модели OSI

Прикладной уровень(Application Layer)

Application Layer
Application Layer

Прикладной уровень - это то место, где работает большинство программистов.

Но это не конкретные приложения, такие как Chrome, Tik-Tok или Telegram. Это более фундаментальные вещи, такие как протоколы.

  • Ваш браузер делает запрос к веб-серверу по протоколу HTTP.

  • Ваше приложение электронной почты использует протокол SMTP для отправки и получения электронных писем.

  • Без протокола DNS вам пришлось бы набирать 142.250.150.138 вместо google.com.

  • В двух словах, прикладной уровень - это основа, которую используют почти все приложения для конечных пользователей.

Уровень представления(Presentation Layer)

После того как клиент выполнил HTTP-запрос, сам запрос передается на уровень представления. Этот слой выполняет три основные функции:

Шифрование и дешифрование

Я думаю вы не хотите, чтобы ваши данные находились в открытом доступе, поэтому умные люди создали систему Transport Layer Security(TLS). По сути, он шифрует ваши данные.И также отвечает за расшифровку запросов, поступающих с других серверов, для использования на прикладном уровне.

Сериализация и десериализация

Это сложные слова, но по сути они означают «перевод». Мы хотим «перевести» наши данные в формы, понятные нашему приложению. Например, простые структуры данных можно перевести в «объекты», которые понимает наше приложение JavaScript. С другой стороны, если мы хотим, чтобы наши данные передавались вниз по уровню, мы переведем наш объект в простые структуры данных, которые могут быть понятны на нижних уровнях.

Сжатие

В этом нет ничего сложного: чем меньше битов нужно отправить, тем быстрее будет выполнен запрос. Это также одна из основных функций уровня представления. Это сжатие без потерь, то есть никакая информация не будет потеряна в процессе. Если честно, в реальном мире большинство этих вещей выполняется на прикладном уровне. Вот почему в модели TCP/IP уровень представления является частью прикладного уровня.

Сеансовый уровень(Session Layer)

Сеансовый уровень отвечает за открытие, закрытие и поддержание соединений между клиентом и сервером. Этот уровень немного запутанный. И на самом деле я не смог найти для него много вариантов использования. Основная функция сеансового уровня - управление соединениями между клиентом и сервером.

Но что это значит? Допустим, вы хотите перейти на сайт google.com. Для этого вам сначала нужно установить соединение с google.com, поэтому вы говорите: «Эй, сервер, как дела, я хочу подключиться к google.com». Сервер отвечает: «Да, конечно». Поздравляем, вы только что установили соединение с сервером google.com и можете свободно отправить GET-запрос для получения страницы.

Короче говоря, этот уровень используется для:

  • открытия соединений

  • поддержания соединений

  • закрытия соединений.

Теперь перейдем к реальности: в реальной жизни этот уровень практически не существует и является частью транспортного уровня, о котором мы поговорим далее.

Транспортный уровень (Transport Layer)

TCP и UDP
TCP и UDP

Именно здесь происходит самое интересное. Транспортный уровень обычно определяется в зависимости от используемого протокола.

Два наиболее популярных из них:

  • Transmission Control Protocol (TCP)

  • Протокол пользовательских датаграмм (UDP)

TCP - один из основных протоколов в наборе интернет-протоколов. Он используется поверх IP (интернет-протокола) для обеспечения надежной передачи пакетов.TCP устраняет многие проблемы, возникающие при использовании IP, такие как потерянные пакеты, пакеты не по порядку, дубликаты пакетов и поврежденные пакеты. TCP используется в приложениях, которые требуют, чтобы все пакеты не содержали ошибок, например, при передаче текстовых сообщений.

С другой стороны, UDP не имеет статистики, то есть не сохраняет состояние между клиентом и сервером. Кроме того, он очень легкий и быстрый. Но его недостатком является ненадежность: пакеты могут пропадать, повреждаться и так далее. UDP используется в основном в тех случаях, когда вам неважно, потеряете ли вы несколько пакетов, например, при передаче потокового видео. Также следует помнить, что данные на этом уровне называются сегментами.

Сетевой уровень (Network Layer)

Сетевой уровень отвечает за передачу пакетов из сети в сеть. Логичнее было если бы он назывался интернет-уровнем - потому что самый важный протокол здесь - это интернет-протокол (IP). В основном IP берет сегменты из транспортного протокола и добавляет метаданные, которые помогают определить, где находится ваш клиент в локальной сети. Еще одной функцией сетевого уровня является пересылка сообщений, то есть он пересылает ваши пакеты из сети в сеть. Данные на этом уровне называются пакетами.

Канальный уровень (Data-Link Layer)

Канальный уровень состоит из двух частей: MAC и LLC.

Этот уровень определяет, как передаются данные между двумя системами. Он заботится о том, как долго две системы общаются друг с другом, какой объем данных может быть отправлен и что произойдет, если возникнут ошибки. Все это обрабатывается на уровне Data Link.

  • Logical Link Layer (LLC) - этот уровень обеспечивает управление потоком, подтверждение и обработку ошибок в случае, если что-то пошло не так.

  • Media Access Control (MAC) - этот уровень отвечает за присвоение уникального идентификационного номера, основанного на вашей сетевой карте, называемого MAC-адресом. Это означает, что ни одно устройство не имеет одинакового MAC-адреса.

Пакеты берутся с сетевого уровня и инкапсулируются с добавлением новых заголовков для MAC-адресов клиента и сервера. В конце пакета добавляется еще одно подмножество данных, которое используется для обнаружения ошибок. Это называется хвостом. После добавления этих метаданных данные теперь называются кадром.

Физический уровень(Physical Layer)

Биты могут передаваться с помощью электричества, радиоволн или даже света.

Когда мы говорим «физический» - мы говорим не только о проводах. Данные могут передаваться самыми разными способами, например радиоволнами или даже светом. К сожалению, эти способы передачи не знают «кадров», они знают только биты. Функция этого уровня заключается в том, чтобы просто преобразовать кадры в байты (8 бит) и отправить их по какому-либо способу транспортировки (электричество, волны, свет и так далее).

В итоге наш запрос будет передан на сервер, а сервер пройдет через тот же процесс, но в обратном порядке.

Заключение

  • Что модель OSI - это модель того, как две системы общаются друг с другом в сети.

  • В реальной жизни мы не используем эту модель. Вместо нее мы используем другую похожую модель, которая называется моделью TCP/IP.

  • Модель OSI состоит из семи частей, каждая из которых выполняет определенную функцию.

Комментарии (5)


  1. jhoag
    28.01.2025 06:14

    что учиться лучше изучить основы.

    В статье так много воды и неоднозначных формулировок, будто нейросеть прошлого поколения переводила с незнакомого ей языка.


  1. andreitsvetkov
    28.01.2025 06:14

    Модель osi или tcp/ip чисто теоретические модели. Реально что за бутерброд будет в пакете - хз.

    например : соединение сети в kvm через udp используя лукбек.
    ping пакет : mac / ip / udp / mac / ip / icmp


  1. nv13
    28.01.2025 06:14

    Противопоставлять модели OSI и TCP/IP стало немодно примерно после появления Ethernet100 и WiFi, потому что там в стандартах появились подуровни, привязанные к OSI.
    Ещё не описано для чего введена модель и почему она так называется - классы на уровнях конечно хорошо, но общаются эти "классы" друг с другом на одном уровне, используя для этого сервисы нижележащего уровня. Поэтому браузер общается с сервером через все 7 уровней, а вот роутер, шлюз, прокси через столько, сколько для этого нужно)


    1. BaJIepoH
      28.01.2025 06:14

      объяснить бы это собеседующим


  1. Lordzero
    28.01.2025 06:14

    Кстати, очень грамотно расписано что на каком уровне работает, понятным и максимально простым языком.

    Лет 15 назад мне бы очень пригодилась такая статья


  1. oalekhin
    28.01.2025 06:14

    ISO/IEC 7498-1:1994

    1.18   This Reference Model does not specify services and protocols for OSI.