OSI (Open Systems Interconnection) - это эталонная модель взаимодействия открытых систем, разработанная организацией ISO в 1984 году.
Главная идея модели проста:
Вместо одного огромного процесса передачи данных он разбивается на несколько независимых уровней.
Каждый уровень отвечает только за свою задачу и предоставляет сервис уровню выше.
Это позволяет:
Представим, что вы открываете браузер и заходите на сайт. Ваш запрос проходит сверху вниз через все уровни OSI. Затем по сети передается другому компьютеру. На сервере происходит обратный процесс.
После получения данных каждый уровень "снимает" свою служебную информацию, пока приложение не получит исходный запрос.
Этот процесс называется инкапсуляцией.
Семь уровней модели OSI
1. Physical Layer (Физический уровень)
Это самый нижний уровень модели.
Он вообще не понимает, что такое IP, HTTP или TCP.
Для него существуют только:
Главная задача: передача битов по физической среде.
Именно здесь определяется:
Например:
Все это относится именно к физическому уровню.
Что передается?
Только:
010101101010100101
Никаких пакетов здесь еще нет.
Примеры оборудования
2. Data Link Layer (Канальный уровень)
Если физический уровень просто передает биты, то канальный уже умеет работать с устройствами внутри одной сети.
Главная задача: доставить кадр соседнему устройству.
Для этого используются MAC-адреса.
Они состоят из 48 бит и выглядят примерно так:
00:1B:44:11:3A:B7
Именно MAC позволяет коммутатору понять, куда отправить кадр.
Основные задачи:
Единица данных:
Протоколы:
Оборудование:
Канальный уровень сложный. Поэтому, его условно говоря делят на два подуровня: управление логическим каналом (LLC, Logical Link Control) и управление доступом к среде (MAC, Media Access Control).
3. Network Layer (Сетевой уровень)
Это один из самых важных уровней. Он отвечает за маршрутизацию между различными сетями. Именно здесь работают IP-адреса.
Например:
192.168.1.25
или
8.8.8.8
Основные задачи:
Протоколы:
Единица данных:
Оборудование:
4. Transport Layer (Транспортный уровень)
Этот уровень отвечает за надежную передачу данных между двумя приложениями.
Именно здесь работают знаменитые:
- TCP
TCP гарантирует:
Если пакет потерялся - TCP отправит его снова.
Именно поэтому HTTP, HTTPS, SSH используют TCP.
- UDP
UDP намного проще.
Он:
Зато работает очень быстро.
Используется в:
Единица данных: Segment.
5. Session Layer (Сеансовый уровень)
Этот уровень отвечает за создание и управление соединением между двумя приложениями.
Он умеет:
Представьте видеозвонок.
Пока собеседники разговаривают - существует одна активная сессия.
После завершения разговора она закрывается.
Основные функции:
На практике многие функции Session Layer сегодня выполняют библиотеки приложений или протоколы более высокого уровня.
6. Presentation Layer (Уровень представления)
Этот уровень отвечает за формат данных.
Его задача: сделать так, чтобы обе стороны одинаково понимали информацию.
Он занимается:
Например UTF-8 или ASCII.
Также здесь работают:
Представьте:
Одна программа хранит текст в 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
На принимающей стороне заголовки снимаются в обратном порядке.
- Запоминаем единицы данных:
Пример: открываем сайт
Допустим, пользователь вводит:
https://google.com
Что происходит?
Сервер выполняет те же действия в обратном порядке и возвращает ответ.
Хотя модель OSI используется как учебная и концептуальная, в реальных сетях чаще применяется стек TCP/IP.
Модель OSI - это фундамент сетевых технологий. Она не описывает конкретную реализацию Интернета, а предоставляет удобную абстракцию, позволяющую понимать, где именно происходит обработка данных и на каком уровне искать проблемы.
Краткое резюме уровней:


Source: Orkhan Alishov's notes