> Что такое модель OSI и как она работает (Go, Python)
Уровень: junior · Роль: backend · Категория: Технические вопросы
Компании: Wildberries, YADRO
Стек: Go, Python
> Пример ответа
Модель OSI (Open Systems Interconnection) - это эталонная сетевая модель, разработанная ISO, которая описывает, как данные передаются между устройствами в сети. Она состоит из 7 уровней, каждый из которых выполняет определенную функцию и взаимодействует только с соседними уровнями. В контексте backend-разработки на Go и Python понимание OSI помогает отлаживать сетевые проблемы и проектировать надежные приложения.
Уровни OSI (снизу вверх):
-
Физический - передача битов по кабелю или радиоканалу (например, Ethernet-кабель).
-
Канальный - управление доступом к среде (MAC-адреса, коммутаторы). В Go это можно увидеть при работе с сырыми сокетами через
golang.org/x/net. -
Сетевой - маршрутизация пакетов (IP-адреса, роутеры). В Python библиотека
socketработает на этом уровне. -
Транспортный - надежная доставка данных (TCP/UDP). В Go используется
netпакет для создания TCP-серверов. -
Сеансовый - управление сессиями (например, установка соединения). Часто реализуется на уровне приложения.
-
Представления - кодирование/декодирование данных (JSON, XML). В Python это
json.dumps(), в Go -encoding/json. -
Прикладной - взаимодействие с пользователем (HTTP, FTP). В Go это
net/http, в Python -requests.
Как работает: данные на уровне приложения (например, HTTP-запрос) проходят вниз по уровням, каждый добавляет свой заголовок (инкапсуляция). На принимающей стороне данные поднимаются вверх, заголовки удаляются (деинкапсуляция). Например, в Go при создании HTTP-сервера вы работаете на 7-м уровне, но под капотом Go runtime использует TCP (4-й уровень) и IP (3-й уровень) через системные вызовы. Понимание OSI помогает, когда нужно оптимизировать сетевые задержки или отлаживать проблемы с пакетами на уровне TCP.
> Похожие задачи по backend
В чем разница реляционных, NoSQL и колоночных баз данных
В чем разница между виртуализацией и контейнеризацией
Что такое сбалансированное дерево
Приходилось ли работать с базами данных?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью