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

  1. Физический уровень (Physical Layer): формирует правила передачи данных, определяет используемую среду (например, электрические сигналы, световые импульсы или радиоэфир), уровень напряжения, и метод для кодирования битов.
  2. Канальный уровень (Data Link Layer): отвечает за локальную адресацию, выявление ошибок, обеспечивает проверку целостности данных. Здесь действуют MAC-адреса и используется протокол «Ethernet».
  3. Сетевой уровень (Network Layer): предназначен для объединения сетевых сегментов и определения оптимального маршрута. Каждый сетевой участник имеет уникальный адрес, используя такие протоколы как IPv4 и IPv6.
  4. Транспортный уровень (Transport Layer): обеспечивает передачу данных. Когда вы скачиваете файл из сети, данные разбиваются на сегменты или датаграммы. Здесь вводятся порты для указания целевой службы. Работает с протоколами TCP (требует соединения) и UDP (без соединения).
  5. Сеансовый уровень (Session Layer): устанавливает, управляет и завершает сессии между двумя хостами. К примеру, когда вы открываете веб-страницу, ваш визит уникален благодаря этому уровню, даже при множестве пользователей.
  6. Уровень представления (Presentation Layer): преобразует данные в формат, понятный для приложений. Например, кодировка ASCII используется для текста, а jpeg - для изображений.
  7. Прикладной уровень (Application Layer): это уровень взаимодействия пользовательских программ, начиная от e-mail до браузеров, работающих на HTTP, FTP и других протоколах.

Ключевое правило: процесс передачи данных идет последовательно через все уровни, не пересекая их. Верхние уровни обрабатывают данные, которые потом отправляются ниже (инкапсуляция), и наоборот, когда они поднимаются наверх (декапсуляция). У каждого уровня своя терминология для данных.

На уровнях прикладного, представления и сеансового, информацию называют PDU (Protocol Data Units) или просто данные.

На транспортном уровне данные именуются сегментами (применимо к TCP) или датаграммами в контексте UDP.

Для сетевого уровня данные обозначаются как IP-пакеты, а для канального уровня - кадры.

Рассмотрим пример инкапсуляции:

  1. Вы сидите за домашним компьютером и пытаетесь загрузить файл с локального веб-сервера. Вы вводите адрес сайта и используете HTTP, работающий на прикладном уровне. Данные упаковываются и передаются дальше.
  2. Далее, на уровне представления данные приводятся в формат, пригодный для серверного чтения и продолжают спуск.
  3. На уровне сеансов создается соединение между компьютером и сервером.
  4. Перемещение данных на транспортный уровень требует надежного соединения через TCP, включая выбор портов для корректной передачи (чаще всего используется порт 80 для веб-серверов). Следующий шаг — вниз.
  5. Сетевой уровень добавляет IP-адреса: адрес назначения (например, 192.168.1.2 для сервера) и адрес источника (192.168.1.1 для компьютера). Затем все передается ниже.
  6. На канальном уровне добавляются физические адреса (MAC-адреса) для точного определения источника и получателя. В локальной сети это могут быть MAC-адреса вашего компьютера и сервера. Завершающие элементы указывают на завершение кадра.
  7. Физический уровень преобразует все в последовательность битов и передает сигналы (например, через витую пару) на сервер.

Декапсуляция представляет собой обратный процесс:

  1. Электрические сигналы распознаются на физическом уровне и преобразуются обратно в биты для использования канальным уровнем.
  2. Канальный уровень проверяет MAC-адрес назначения и целостность кадра, после чего отправляет данные на уровень выше, если все корректно.
  3. На сетевом уровне происходит проверка IP-адреса, если он совпадает, информация передается вверх.
  4. Транспортный уровень ориентируется на номер порта для определения того, какому приложению должны быть отправлены данные (например, порт 80 для веб-сервера).
  5. Между компьютером и сервером происходит установление сеанса на данном уровне.
  6. Преобразование и структурирование данных завершается на уровне представления.
  7. И, наконец, прикладной уровень отправляет данные нужной программе или сервису.

Вопросы для самопроверки:

  1. Какую роль играет физический уровень в модели OSI и какие средства он описывает для передачи данных?
  2. За что отвечает канальный уровень и какие технологии на этом уровне используются?
  3. Какие функции выполняет сетевой уровень и какие протоколы на этом уровне задействуются?
  4. Чем отличаются функции транспортного уровня у протоколов TCP и UDP?
  5. Какую задачу решает сеансовый уровень в процессе установления связи между хостами?
  6. Какие преобразования выполняет уровень представления и какие примеры форматов данных можно упомянуть?
  7. Что входит в функции прикладного уровня и какие протоколы здесь используются?