Модель OSI и почему она важна | Вопросы для собеседования | Skilio
/s/public
Сеть Новичок Опубликовано
Модель OSI и почему она важна
Вопрос:

Можете описать сетевую модель OSI?

Объясните, какие слои участвуют при отправе на сервер HTTP запроса.

Подсказки:

  • Существует 7 слоёв
  • Подумайте, на каком слое чаще всего работают бэкенд приложения.
  • Учтите, как данные инкапсулируются при перемещении по стеку OSI.

Обязательно:

  • Назвать как минимум 5 слоёв
  • Понимание инкапсуляции протоколов на разных слоях.
  • Знание того, как проблемы сети на различных уровнях влияют на работу бэкенд приложения.
Ответ:

Модель OSI (Open Systems Interconnection) — это концептуальная модель, которая стандартизирует функции системы связи на семи уровнях абстракции. Каждый уровень выполняет определённую функцию в передаче данных:

  1. Физический (Physical) уровень: Обрабатывает передачу битов по физическому каналу связи.

    • Занимается электрическими сигналами, кабелями, разъёмами.
    • Примеры: Кабели Ethernet, оптоволокно, беспроводные сигналы.
  2. Канальный (Data Link) уровень: Обеспечивает передачу данных между двумя непосредственно соединёнными узлами.

    • Имеет адресацию MAC (Media Access Control).
    • Обнаруживает и потенциально исправляет ошибки, возникшие на физическом уровне.
    • Примеры: Ethernet, Wi-Fi, PPP.
  3. Сетевой (Network) уровень: Маршрутизирует пакеты данных между различными сетями.

    • Реализует IP адресацию и решения по маршрутизации.
    • Примеры: IP (IPv4/IPv6), ICMP, протоколы маршрутизации.
  4. Транспортный (Transport) уровень: Обеспечивает передачу данных.

    • Управляет потоком данных end-to-end с возможностью ограниченного восстановления данных при ошибках.
    • Примеры: TCP (надёжный), UDP (быстрый, но ненадежный).
  5. Сеансовый (Session) уровень: Устанавливает, управляет и завершает соединения.

    • Обрабатывает установку сеанса, координацию и завершение.
    • Примеры: NetBIOS, любой протокол RPC.
  6. Представления (Presentation) данных: Преобразовывает данные для совместимости с приложением.

    • Обрабатывает шифрование, сжатие и преобразование форматов.
    • Примеры: SSL/TLS, MPEG.
  7. Прикладной (Application) уровень: Непосредственно взаимодействует с приложениями конечного пользователя.

    • Предоставляет сетевые услуги приложениям.
    • Примеры: HTTP, SMTP, FTP, DNS.

Поток HTTP-запроса через уровни OSI

Когда приложение на бэкенде отправляет HTTP-запрос:

  1. Прикладной уровень: Генерируется HTTP-запрос

    # Пример на Python с использованием библиотеки requests
    response = requests.get('https://api.example.com/data')
    
  2. Уровень представления данных: Данные могут быть зашифрованы (HTTPS использует TLS/SSL).

  3. Сеансовый уровень: Устанавливается сеанс соединения.

  4. Транспортный уровень: Устанавливается TCP-соединение.

  5. Сетевой уровень: Создаются IP-пакеты с исходными/конечными адресами.

  6. Канальный уровень: Создаются кадры с адресами MAC.

  7. Физический уровень: Биты передаются по физическому каналу.

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

Проблемы в сети на разных уровнях по-разному влияют на приложения на бэкенде:

  • Проблемы на физическом/канальном уровнях: Полная потеря соединения.
  • Проблемы на сетевом уровне: Высокая задержка, потеря пакетов.
  • Проблемы на транспортном уровне: Таймауты соединения, разрыв соединения.
  • Проблемы на прикладном уровне: Коды ошибок HTTP, некорректные ответы.

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

0
© Skilio, 2025
Условия использования
Политика конфиденциальности
Мы используем файлы cookie, для персонализации сервисов и повышения удобства пользования сайтом. Если вы не согласны на их использование, поменяйте настройки браузера.