> Что такое модель OSI и как она работает (Go, Python)

Уровень: junior · Роль: backend · Категория: Технические вопросы

Компании: Wildberries, YADRO

Стек: Go, Python

> Пример ответа

Модель OSI (Open Systems Interconnection) - это эталонная сетевая модель, разработанная ISO, которая описывает, как данные передаются между устройствами в сети. Она состоит из 7 уровней, каждый из которых выполняет определенную функцию и взаимодействует только с соседними уровнями. В контексте backend-разработки на Go и Python понимание OSI помогает отлаживать сетевые проблемы и проектировать надежные приложения.

Уровни OSI (снизу вверх):

  1. Физический - передача битов по кабелю или радиоканалу (например, Ethernet-кабель).

  2. Канальный - управление доступом к среде (MAC-адреса, коммутаторы). В Go это можно увидеть при работе с сырыми сокетами через golang.org/x/net.

  3. Сетевой - маршрутизация пакетов (IP-адреса, роутеры). В Python библиотека socket работает на этом уровне.

  4. Транспортный - надежная доставка данных (TCP/UDP). В Go используется net пакет для создания TCP-серверов.

  5. Сеансовый - управление сессиями (например, установка соединения). Часто реализуется на уровне приложения.

  6. Представления - кодирование/декодирование данных (JSON, XML). В Python это json.dumps(), в Go - encoding/json.

  7. Прикладной - взаимодействие с пользователем (HTTP, FTP). В Go это net/http, в Python - requests.

Как работает: данные на уровне приложения (например, HTTP-запрос) проходят вниз по уровням, каждый добавляет свой заголовок (инкапсуляция). На принимающей стороне данные поднимаются вверх, заголовки удаляются (деинкапсуляция). Например, в Go при создании HTTP-сервера вы работаете на 7-м уровне, но под капотом Go runtime использует TCP (4-й уровень) и IP (3-й уровень) через системные вызовы. Понимание OSI помогает, когда нужно оптимизировать сетевые задержки или отлаживать проблемы с пакетами на уровне TCP.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью