OSI (Open Systems Interconnection) - это эталонная модель взаимодействия открытых систем, разработанная организацией ISO в 1984 году.

Главная идея модели проста:

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

Каждый уровень отвечает только за свою задачу и предоставляет сервис уровню выше.

Это позволяет:

  • стандартизировать сетевые технологии;
  • разделить ответственность между компонентами;
  • легче искать ошибки;
  • создавать совместимые устройства разных производителей.

Представим, что вы открываете браузер и заходите на сайт. Ваш запрос проходит сверху вниз через все уровни OSI. Затем по сети передается другому компьютеру. На сервере происходит обратный процесс.

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

Этот процесс называется инкапсуляцией.


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

  • Physical
  • Data Link
  • Network
  • Transport
  • Session
  • Presentation
  • Application

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

Это самый нижний уровень модели.

Он вообще не понимает, что такое IP, HTTP или TCP.

Для него существуют только:

  • электрические сигналы;
  • световые импульсы;
  • радиоволны.

Главная задача: передача битов по физической среде.

Именно здесь определяется:

  • напряжение сигнала;
  • частота;
  • тип кабеля;
  • длина кабеля;
  • скорость передачи;
  • тип разъемов.

Например:

  • Ethernet Cable
  • Fiber Optic
  • Wi-Fi Radio
  • Bluetooth

Все это относится именно к физическому уровню.

Что передается?

Только:

010101101010100101

Никаких пакетов здесь еще нет.

Примеры оборудования

  • кабели
  • повторители (Repeater)
  • концентраторы (Hub)
  • оптоволокно

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

Если физический уровень просто передает биты, то канальный уже умеет работать с устройствами внутри одной сети.

Главная задача: доставить кадр соседнему устройству.

Для этого используются MAC-адреса.

Они состоят из 48 бит и выглядят примерно так:

00:1B:44:11:3A:B7

Именно MAC позволяет коммутатору понять, куда отправить кадр.

Основные задачи:

  • обнаружение ошибок
  • формирование кадров (Frames)
  • управление доступом к среде
  • работа с MAC-адресами

Единица данных:

  • Frame (кадр)

Протоколы:

  • Ethernet
  • Wi-Fi

Оборудование:

  • Коммутаторы (Switches)

Канальный уровень сложный. Поэтому, его условно говоря делят на два подуровня: управление логическим каналом (LLC, Logical Link Control) и управление доступом к среде (MAC, Media Access Control).


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

Это один из самых важных уровней. Он отвечает за маршрутизацию между различными сетями. Именно здесь работают IP-адреса.

Например:

192.168.1.25

или

8.8.8.8

Основные задачи:

  • поиск маршрута
  • маршрутизация
  • работа IP
  • разделение сети

Протоколы:

  • IPv4
  • IPv6
  • ICMP
  • IPSec

Единица данных:

  • Packet

Оборудование:

  • Маршрутизаторы (Router)

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

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

Именно здесь работают знаменитые:

  • TCP
  • UDP

TCP

TCP гарантирует:

  • доставку
  • порядок пакетов
  • повторную отправку
  • контроль ошибок

Если пакет потерялся - TCP отправит его снова.

Именно поэтому HTTP, HTTPS, SSH используют TCP.

UDP

UDP намного проще.

Он:

  • ничего не проверяет
  • не гарантирует доставку
  • не пересылает потерянные пакеты

Зато работает очень быстро.

Используется в:

  • VoIP
  • онлайн-играх
  • видеозвонках
  • стриминге

Единица данных: Segment.


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

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

Он умеет:

  • открыть сессию;
  • поддерживать ее;
  • закрыть.

Представьте видеозвонок.

Пока собеседники разговаривают - существует одна активная сессия.

После завершения разговора она закрывается.

Основные функции:

  • аутентификация
  • управление сеансом
  • восстановление после разрыва

На практике многие функции Session Layer сегодня выполняют библиотеки приложений или протоколы более высокого уровня.


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

Этот уровень отвечает за формат данных.

Его задача: сделать так, чтобы обе стороны одинаково понимали информацию.

Он занимается:

  • кодировкой
  • шифрованием
  • сжатием
  • преобразованием форматов

Например UTF-8 или ASCII.

Также здесь работают:

  • SSL/TLS (логически относится к функциям представления и сеанса, хотя в современных реализациях границы условны)
  • JPEG
  • PNG
  • MPEG

Представьте:

Одна программа хранит текст в UTF-8. Другая - в UTF-16.

Presentation Layer обеспечивает корректное преобразование.


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

Это самый верхний уровень. Именно с ним взаимодействует пользователь.

Когда вы открываете браузер - работает Application Layer.

Когда запускаете почтовый клиент - тоже.

Когда используете Telegram - опять этот уровень.

Важно понимать:

Application Layer - это не само приложение, а сетевые сервисы и протоколы, которыми оно пользуется.

Протоколы: HTTP, HTTPS, FTP, SMTP, POP3, IMAP, DNS, DHCP, SSH.

Именно здесь формируется запрос:

GET /index.html

Инкапсуляция данных

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

При отправке данных каждый уровень добавляет собственный заголовок (Header).

Процесс выглядит так:

Application
Presentation
Session
Transport
Network
Data Link
Physical

Например:

HTTP Data
TCP Header
IP Header
Ethernet Header
Bits

На принимающей стороне заголовки снимаются в обратном порядке.

- Запоминаем единицы данных:

  • Application: Data
  • Presentation: Data
  • Session: Data
  • Transport: Segment
  • Network: Packet
  • Data Link: Frame
  • Physical: Bits

Пример: открываем сайт

Допустим, пользователь вводит:

https://google.com

Что происходит?

  1. Application - браузер формирует HTTP-запрос.
  2. Presentation - данные шифруются с помощью TLS (для HTTPS) и при необходимости преобразуются в нужный формат.
  3. Session - устанавливается и поддерживается логический сеанс связи.
  4. Transport - TCP разбивает данные на сегменты и обеспечивает надежную доставку.
  5. Network - IP определяет маршрут до сервера.
  6. Data Link - формируются Ethernet-кадры с MAC-адресами устройств в локальной сети.
  7. Physical - кадры преобразуются в электрические, оптические или радиосигналы и передаются по среде.

Сервер выполняет те же действия в обратном порядке и возвращает ответ.


Хотя модель OSI используется как учебная и концептуальная, в реальных сетях чаще применяется стек TCP/IP.

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

Краткое резюме уровней:

  • Physical - передает биты по физической среде.
  • Data Link - доставляет кадры между соседними устройствами с помощью MAC-адресов.
  • Network - определяет маршруты и использует IP-адреса для доставки пакетов между сетями.
  • Transport - обеспечивает передачу данных между приложениями, используя TCP или UDP.
  • Session - управляет созданием, поддержанием и завершением сеансов связи.
  • Presentation - отвечает за форматирование, шифрование и сжатие данных.
  • Application - предоставляет сетевые сервисы приложениям через такие протоколы, как HTTP, DNS, SMTP и SSH.



Source: Orkhan Alishov's notes