Модель OSI кажется простой: всего 7 уровней. Однако большинство статей просто пересказывают друг друга, упуская важные детали. В этом цикле статей мы разберём первоисточник — стандарт ISO/IEC 7498–1:1994, чтобы разобраться не только в уровнях, но и во всех тонкостях модели: как работают протоколы, как взаимодействуют уровни и какие принципы лежат в её основе. Ссылка на первую часть.

Это не дословный перевод. Это, скорее, ретроспектива плюс анализ и интерпретация. Берётся параграф и «выжимается» его суть.

⚔️ Так отмечены места, где мы будем использовать силу Рима: аналогия для быстрого понимания концепций.

Режим коммуникации

Во второй части уже мы уже упоминали, что (N)‑уровень может предоставлять два вида сервиса для уровня (N+1):

  • С установлением соединения (connection‑mode service) — когда передача данных идёт через заранее установленный канал.

  • Без установления соединения (connectionless‑mode service) — когда каждый пакет данных отправляется независимо, без предварительного согласования.

Предоставление двух видов сервиса N-уровня для N+1. Источник: авторское.
Предоставление двух видов сервиса N-уровня для N+1. Источник: авторское.

Когда две (N+1)‑сущности уже выбрали способ взаимодействия (через (N)‑уровень), они должны до конца использовать этот же режим.

То есть если началась передача через соединение (connection‑mode), то внутри этого же взаимодействия нельзя внезапно переключиться на режим без соединения (connectionless‑mode) и наоборот.

Хотя в одном взаимодействии режимы не смешиваются, на разных уровнях OSI их можно использовать одновременно!

То есть, в рамках одной системы (например, браузера или игры) можно использовать оба режима, но каждое конкретное взаимодействие использует либо connection‑mode, либо connectionless‑mode.

Чтобы (N+1)‑сущности могли обмениваться данными, им нужно заранее «знать» друг о друге.

Что нужно знать для обмена данными?

Какие способы это узнать?

Адреса участников.

Вручную.

Протокол связи (должны говорить «на одном языке»).

Из сетевой базы данных или каталога.

Доступность друг друга (нельзя связаться с выключенным сервером).

Из прошлых сеансов связи.

Качество сервиса (например, задержки и потери пакетов).

Динамически, через управляющие протоколы.

⚔️ Время нашей древнеримской аналогии.

  • Адреса участников. Каждое подразделение имело свой символ (signum) — его можно считать аналогом адреса в сети.

  • Протокол связи. Все легионеры знали уставные команды и сигналы боевых знамен (vexillum). «Testudo!» означало, что солдаты должны построить «черепаху». Это как заранее согласованный сетевой протокол — все понимают, что делать.

  • Доступность друг друга. В бою передача зависела от того, видны ли сигналы или слышны ли трубы.

  • Качество сервиса. Если сильный туман, сигналы флагов плохо видны (потери пакетов). Если ветер дует не в ту сторону, трубы и рожки не слышны (задержки в передаче).

Как можно было получить эту информацию?

  • Вручную. Как узнать «адрес» легиона? — Офицеры изучали расположение войск по картам. Как передать приказ? — Гонцы или курьеры доставляли приказы лично, передавая их в запечатанных табличках или свитках.

  • Из «централизованного хранилища». Как узнать, с кем можно связаться? — В каждом штабе были списки офицеров, их постов и обязанностей (аналог адресной книги). Карты дорог и крепостей показывали возможные пути доставки сообщений.

  • Из «прошлых сеансов связи». В Риме существовали табели службы (fasti consulares), где фиксировали перемещения войск и командиров. Если передача приказов раньше работала через определённые пункты, их использовали снова.

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

Опишем два режима подробнее.

Режим с установлением соединения

Режим без установления соединения

Соединение — это устойчивый канал связи между (N)‑сущностями, создаваемый с помощью (N-1)‑уровня.

Передача данных между (N)‑сущностями в виде отдельных, независимых сообщений, без предварительного установления устойчивого канала связи на (N-1)‑уровне.

Этапы:

1. Установление соединения — стороны договариваются о параметрах.

2 Передача данных — информация передаётся по установленному каналу. Пакеты передаются в строго определённом порядке, и получатель может проверить, дошли ли они.

3. Управление соединением — при возникновении ошибок протокол может автоматически повторно отправлять повреждённые или потерянные пакеты.

4. Разрыв соединения — канал закрывается, когда данные переданы.

Этапы:

1. Формирование пакета — отправитель формирует самодостаточный пакет данных, содержащий всю информацию (адрес получателя, параметры, полезную нагрузку).

2. Отправка пакета — пакет отправляется в сеть без предварительного установления канала.

3. Маршрутизация — каждый пакет обрабатывается независимо, маршрутизаторы могут их отправлять разными путями.

4. Доставка пакета — пакет либо достигает адресата, либо теряется в пути (гарантий нет).

5. Обработка на стороне получателя — если пакет дошёл, получатель принимает его и обрабатывает.

Особенности

Требует согласования между участниками.

Позволяет настраивать параметры связи.

Обеспечивает идентификатор соединения (чтобы не путать с другими сессиями).

Поддерживает упорядоченность данных и контроль потока.

Особенности

Отсутствует явно выраженный цикл соединения.

Вся информация о передаваемых данных (адрес получателя, параметры качества сервиса) передается сразу.

Каждый блок данных обрабатывается независимо (маршрутизация может изменяться).

Возможно широковещание (отправка одной копии данных сразу на несколько адресов).

➕ Удобно для приложений, которым важна надёжность и чёткий порядок доставки данных.

➕ Если приоритет — скорость и минимальные задержки.

Режим с установлением соединения. Источник: авторское.
Режим с установлением соединения. Источник: авторское.
Режим без установления соединения. Источник: авторское.
Режим без установления соединения. Источник: авторское.

Взаимосвязь между сервисами на границах смежных уровней

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

(N)‑уровень может предоставлять один режим связи, даже если (N-1)‑уровень использует другой.

Варианты могут быть следующие:

  1. Оба уровня используют режим с установлением соединения (connection‑mode).

  2. Оба уровня используют режим без установления соединения (connectionless‑mode).

  3. (N)‑уровень работает в режиме соединения, а (N-1)‑уровень — без него.

  4. (N)‑уровень работает без соединения, а (N-1)‑уровень — в режиме соединения.

Различные варианты режимов уровней. Источник: авторское.
Различные варианты режимов уровней. Источник: авторское.

⚔️ Если кажется, что уж тут‑то нет никаких древнеримских аналогов — это не так. Можно представить весьма наглядные примеры.

  1. Оба уровня используют режим с установлением соединения.

    Передача приказов внутри легиона по цепочке командиров.

    1. Главнокомандующий передавал приказ центуриону.

    2. Центурион удостоверялся, что приказ принят и понят.

    3. Если не понял, он мог запросить повторную передачу.

      Почему это «соединение»? Каждое сообщение подтверждается, имеет конкретного адресата, если информация не дошла — она повторяется, данные передаются в правильном порядке.

  2. Оба уровня используют режим без установления соединения.

    Система сигнальных башен с огнями (speculae).

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

    2. Следующая башня видела огонь и передавала его дальше без подтверждения.

    3. Если кто‑то не увидел сигнал из‑за тумана или дождя, он просто пропадал — повторной отправки не было.

    Почему это режим без установления соединения? Никто не подтверждает, что сообщение принято. Передача происходит по независимым «пакетам» (каждый факел — отдельное сообщение).

  3. Верхний уровень работает в режиме соединения, а нижний — без него.

    Гонцы, доставляющие приказы через вражескую территорию.

    1. Генерал хотел передать важный приказ другому легиону.

    2. Между генералами существовало соглашение о подтверждении приказов (соединение на более высоком уровне).

    3. Но сами гонцы ехали разными маршрутами, и никто не знал, доберётся ли конкретный гонец до места (без соединения на более низком уровне).

    4. Если гонец не доходил, приходилось ждать повторной отправки.

      Почему такая аналогия? На верхнем уровне (между командирами) есть подтверждённое соединение — ответный приказ должен быть доставлен. На «транспортном уровне» (между курьерами) каждый гонец передаёт сообщение как может, и потеря гонца не ломает всю систему.

  4. Верхний уровень работает без соединения, а нижний — в режиме соединения.

    Форпост, получающий сообщения от случайных путников.

    1. Легион на границе получал информацию от купцов, беглецов и местных жителей.

    2. Они сообщали разные слухи и новости, не заботясь о правдивости, точности передачи, формате, очерёдности, корректности доставки сообщений.

    3. Однако офицер форпоста записывал данные и передавал их по надёжному маршруту с гонцами, подтверждающими получение.

      Почему такая аналогия? На верхнем уровне (купцы, путешественники, случайные люди) нет гарантированной доставки — это как connectionless. На транспортном уровне (гонцы от офицера) доставка организована по модели connection‑mode.

Преобразование режимов связи

Для того чтобы поддерживать варианты 3 и 4, в сетевой архитектуре OSI предлагаются функции преобразования режима (mode conversion functions).

Возможности следующие.

Эмулировать режим соединения поверх режима без соединения.

Эмулировать режим без соединения поверх соединения.

Например, TCP (режим соединения) работает поверх IP (без соединения).

Например, UDP может использоваться внутри VPN‑соединения, где транспортный уровень работает через TCP.

✔️ Добавить соединение сложнее — надо следить за порядком пакетов, подтверждать их доставку и управлять соединением

✔️ Убрать соединение проще — можно просто игнорировать установку соединения и передавать данные, как будто оно есть.

Уровни OSI могут работать в разных режимах, а если они не совпадают — используются специальные механизмы, чтобы всё работало.

Заключение

В формате блиц‑резюме.

1️⃣ В чём разница между режимом с установлением соединения и без него?

  • С установлением соединения — данные передаются через заранее установленный канал, гарантируется порядок и доставка.

  • Без установления соединения — пакеты отправляются независимо, без подтверждения.

2️⃣ Можно ли переключить режимы связи во время передачи данных?

Нет, одна сессия должна работать либо в одном, либо в другом режиме.

3️⃣ Можно ли использовать оба режима на разных уровнях OSI?

Да, например: TCP (режим соединения) работает поверх IP (без соединения).

4️⃣ Что нужно знать для обмена данными?

Адреса участников, протокол связи, доступность друг друга, качество сервиса.

5️⃣ Как узнать эту информацию?

Вручную, через базы данных, из истории сеансов связи или динамически через управляющие протоколы.

6️⃣ Чем отличаются этапы передачи данных с соединением и без?

  • С соединением: установление канала → передача данных → контроль потока → разрыв соединения.

  • Без соединения: формирование пакета → отправка → маршрутизация → попытка доставки.

7️⃣ Какие особенности есть у режима с соединением?

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

8️⃣ Какие особенности есть у режима без соединения?

Нет явного жизненного цикла, пакеты обрабатываются независимо, возможна широковещательная отправка.

9️⃣ Какие бывают варианты взаимодействия уровней OSI?

  1. Оба уровня используют режим с соединением.

  2. Оба используют режим без соединения.

  3. Верхний уровень использует соединение, нижний — без соединения.

  4. Верхний без соединения, нижний — с соединением.

? Что такое преобразование режимов связи?

Это механизм, который позволяет одному режиму связи работать поверх другого: либо режиму с соединением поверх без соединения, либо — наоборот.

⚔️ Как говорил один неизвестный римский центурион: «Сообщение дошло? Отлично! Не дошло? Значит, оно было не таким уж и важным».

Перейти к четвёртой части 

◀ Перейти ко второй части

◀ Перейти к первой части

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