January 2, 2024

Сетевая модель OSI.

Владик the говноcoder

January 02, 2024

Open System Interconnection Environment

OSI - модель описывающая стандарты взаимодействия компьютерных систем.

Главная задача OSI это четкое обозначение всех аспектов межсеттевой коммуникации путем введения уровней взаимодействия.

Каждый уровень представляет собой некую абстракцию которая позволяет легко ориентироватся в выполняемом уровнем функционале. Примером такой абстракции может послужить протокол HTTP, что бы передать данные по нему вам не нужно заботится о том как соединен ваш клиент с сервером или как маршрутизируется ваше соединение - достаточно лишь понимания структуры HTTP запроса.

Уровни модели

Для удобства начнем с самого нижнего уровня и будем постепенно подниматься выше

  1. Физический. Этот уровень описывает способы передачи именно сырых битов данных через физические линии связи.

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

    К техническим средствам реализации этого уровня относится вся аппаратная часть сетевых драйверов, например сетевой адаптер Ethernet в вашем ПК.
  2. Канальный. Как понятно из названия, этот уровень описывает протоколы передачи данных между сегментами локальной сети.

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

    Скажем мы подключили наш компьютер к домашней Ethernet сети, что случается?
    Если нужно произвести обмен данными, компьютер отошлет кадры со своим MAC-адресом и MAС-адресом предлагаемого получателя всем принимающим узлам, далее узлы считают MAC-адрес получателя и сравнят со своим. Получили совпадение? - тогда сообщение обработается и сохранится, иначе - просто проигнорируется.
  3. Сетевой
    Этот уровень может напоминать предыдущий, но если канальный уровень определяет взаимодействие на физическом уровне - сетевой переходит на взаимодействие с более глобальными сетями.

    Данные на этом уровне передаются при помощи пакетов - четко структурированных байтов информации в котором каждый блок данных содержит какую то служебную информацию. Разметка и форматирование пакета зависит от протокола передачи.

    Задачи которые выполняет этот уровень тестно пересекаются с топологией существующих сетей, к примеру: - Поиск кратчайшего пути между отправителем и получателем данных. - Маршрутизация, то есть определение пути к получателю. - Трансляция MAC-адресов в логические.

    К устройствам третего уровня модели можно отнести маршрутизатор который помогает связать различные сегменты сети.
    Довольно интересно что fireрволы также могут относиться к этому уровню.
  4. Транспортный

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

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

    Часто некоторый функционал сеансового уровня может быть внедрен в протоколы напрямую не относящиеся к даному уровню, примером служит AppleTalk который реализует базовый функционал синхроннизации процессов и управления сеансами.

    Примерами протоколов сеансового являются RPC, PAP.
  6. Представительный Представительный протокол отвечает за преобразования форматов данных.
    Для примеру можно взять передачу фото, когда вы передаете его, сначала происходит преобразование в формат легко передаваемый по сети, в те самые нолики и еденички! дальше получатель уже по протоколу представительного уровня сможет собрать вашу картинку воедино и показать вам.

    Также может быть ситуация когда из одного формата хранения нужно получить другой, тут тоже в работу входит представительный уровень.
    Ну и последняя функция данного уровня - декодирование/кодирование данных. Если мы хотим что бы нессанкционированные пользователи сети не могли получить доступ к передаваемому сообщению то данные перед передачей буду кодироваться программой находящейся на представительном уровне, и соответсвенно декодироваться другой программой при получении данных.

    К протоколам этого уровня относят: SSL, ASCII.
  7. Прикладной уровень

    Прикладной уровень можно воспринимать как интерфейс взаимодействия с приложением.
    Возьмем тот же HTTP, по сути это просто интерфейс по передаче и управлению гипертекста в контексте веб-сервера.
    Также справедливо то что прикладной уровень является обычной абстракцией для более низких уровней, и просто предоставляет доступ к ним.
    Но само понятие прикладного протокола все равно очень сильно вариируется в зависимости от софта для которого формируется прикладной уровень.