Модели OSI и TCP/IP: как пакет идёт по слоям
Сетевая грамотность и анализ трафикаСлои, инкапсуляция, кадры, пакеты и сегменты — единый язык, на котором обсуждают любую сетевую проблему.
Зачем это нужно
- Диагностика всегда начинается с определения слоя: кабель, адрес, порт или приложение.
- Большинство объяснений в отчётах и тикетах используют термины слоёв — без этого сложно участвовать в разборе.
- Понимание инкапсуляции объясняет, почему туннели и виртуальные сети работают так, как работают.
Теория
Модель OSI делит взаимодействие на семь уровней: физический, канальный, сетевой, транспортный, сеансовый, представления и прикладной. Модель TCP/IP объединяет их в четыре: доступ к сети, интернет, транспорт, приложение. Практическая ценность — в разделении ответственности: адрес канального уровня отвечает за доставку внутри сегмента, сетевого — за маршрут между сетями, транспортного — за доставку между процессами, прикладного — за смысл данных.
Инкапсуляция — вложение данных верхнего уровня в заголовки нижнего. Прикладные данные становятся сегментом TCP или датаграммой UDP, затем пакетом IP, затем кадром Ethernet. Каждый уровень добавляет заголовок и служебную информацию — поэтому в дампе трафика видно несколько слоёв, и Wireshark показывает их вложенно.
TCP обеспечивает установление соединения трёхсторонним рукопожатием, подтверждения, повторные отправки, управление потоком и перегрузкой — отсюда его надёжность и цена в виде задержек. UDP не гарантирует доставку, но быстр и применяется там, где важна своевременность: DNS по умолчанию, DHCP, медиа. Понимание этой разницы напрямую влияет на объяснение инцидентов: сбои приложений, проблемы производительности, отказ в обслуживании.
Ключевые концепции
- Блок данных протокола
- Единица данных уровня: бит, кадр, пакет, сегмент, данные — в зависимости от слоя.
- MAC-адрес
- Адрес сетевого интерфейса на канальном уровне, действует в пределах сегмента.
- Трёхстороннее рукопожатие
- SYN → SYN/ACK → ACK: установление TCP-соединения.
- MTU и MSS
- Максимальный размер передаваемого блока и максимальный размер сегмента данных.
- Инкапсуляция
- Вложение данных в заголовки по мере прохождения слоёв вниз; обратный процесс — декапсуляция.
- Сокет
- Пара «адрес и порт» плюс протокол, идентифицирующая конкретное соединение.
Инструменты
- Wireshark — послойный разбор перехваченного трафика.
- tcpdump — захват в командной строке на серверах.
- ping, traceroute, mtr — базовая проверка доступности и маршрута.
- ss и netstat — какие соединения и порты открыты на хосте.
Практика в легальных лабораториях
- Захватите трафик загрузки страницы в своей лаборатории и найдите слои: Ethernet, IP, TCP, TLS, HTTP.
- Разберите в дампе одно полное TCP-соединение: рукопожатие, данные, закрытие.
- Сравните в дампе DNS-запрос по UDP и по TCP и объясните различия.
- Составьте схему пути своих данных до учебного сайта: устройства, адреса, протоколы.
Защита, детект и защитные меры
- Сегментируйте сеть так, чтобы сбой или компрометация одного сегмента не затрагивали остальные.
- Ведите документированную схему сети: при инциденте она экономит часы.
- Ограничивайте ненужные протоколы на периметре и внутри сети.
- Настраивайте журналирование на ключевых узлах: межсетевые экраны, DNS, прокси.
Правовая рамка и этика
- Захват трафика выполняется только в своей сети или там, где вы уполномочены; перехват чужого трафика противоправен.
- Даже в лаборатории работайте с собственным тестовым трафиком.
Типичные ошибки
- Искать проблему приложения на сетевом слое и наоборот.
- Забывать про MTU и фрагментацию при разборе странных сбоев.
- Игнорировать журналы устройств при анализе: они дают контекст к пакетам.
Чек-лист «умею»
- Объясняю путь данных по слоям для любого веб-запроса.
- Читаю заголовки IP и TCP в дампе и понимаю поля.
- Знаю разницу между TCP и UDP и привожу по два примера.
- Умею построить схему сети до любого сервиса.
Вопросы на интервью
- Что происходит между нажатием Enter в браузере и появлением страницы?
- Где в тракте может потеряться пакет и как вы это определите?
- Почему DNS часто работает по UDP, но иногда переключается на TCP?