Матрёшка пакета: что снимается на каждом узле
Соберите пакет, снимите любой слой и посмотрите, какой узел первым его не поймёт.
// данные внутри заголовков
Пакет - это данные плюс инструкция по доставке, и каждый заголовок нужен своему устройству. Соберите пакет и отправьте; потом снимите любой слой и отправьте снова - увидите, кто первым не поймёт, что ему принесли. Пока пакет идёт, слой светится у того узла, который его читает.
Слои можно надевать и снимать по одному - щёлкните по названию. А потом жмите «Отправить»: пакет пойдёт по узлам и остановится там, где нужного заголовка не хватит.
Заголовок с MAC-адресами и контрольная сумма в конце. IP-адрес нужен, чтобы найти дорогу между сетями, а MAC-адрес - чтобы найти конкретное устройство в своей сети. Этот слой живёт ровно до следующего узла.
Адрес отправителя, адрес получателя, TTL, протокол и контрольная сумма заголовка. Это адрес на конверте: по нему пакет и ведут от узла к узлу.
Порт отправителя, порт получателя и номера байт. По этим номерам получатель сложит куски в правильном порядке и заметит, если чего-то не хватает. По дороге его никто не читает - только на концах.
заголовки: 58 б, данные: 1460 б, 3.8%
-
Ваша сетевая карта отправитель
Кладёт пакет в кадр с MAC-адресом ближайшего узла и выпускает его в провод. Дальше своей сети она ничего не знает - и знать не должна.
TTL 64читает: Кадр Ethernet; не видит: Заголовок TCP, Заголовок IP.
Отправлять нечего: без кадра сетевой карте некому передать данные. Она работает с MAC-адресами, а их нет - пакет не покидает компьютер.
-
Коммутатор провайдера коммутатор
Работает на уровне кадра: смотрит MAC-адреса и передаёт кадр дальше по локальной сети. В заголовок IP он не заглядывает вовсе, поэтому и TTL не трогает - для него это просто байты внутри.
TTL 64читает: Кадр Ethernet; не видит: Заголовок TCP, Заголовок IP.
Коммутатор умеет только MAC-адреса. Кадра нет - смотреть не на что, и кадр он никуда не передаст.
-
Домашний роутер маршрутизатор
Снимает кадр, читает заголовок IP, подменяет адрес отправителя на внешний (NAT) и надевает новый кадр - до следующего узла. Что за сайт вы смотрите и какой у вас браузер, он не знает: TCP он не разбирает.
TTL 63читает: Кадр Ethernet, Заголовок IP; не видит: Заголовок TCP.
Роутер не знает, куда это везти: в пакете нет адреса получателя. Кадр он снял, а внутри вместо конверта с адресом - голые данные. Такой пакет уничтожается на первом же маршрутизаторе.
-
Магистральный маршрутизатор маршрутизатор
Ищет в таблице маршрутизации самое конкретное правило под адрес получателя. Не нашёл - отправляет по маршруту по умолчанию, к вышестоящему узлу, который знает больше. И снова минус единица у TTL.
TTL 62читает: Кадр Ethernet, Заголовок IP; не видит: Заголовок TCP.
И этому узлу нужен адрес получателя: без заголовка IP вести пакет некуда.
-
Маршрутизатор в дата-центре маршрутизатор
Последний шаг перед сервером. Каждый узел знает только следующий шаг, а не весь маршрут целиком - как почтальон, который знает лишь, что всё чужое идёт в районный центр.
TTL 61читает: Кадр Ethernet, Заголовок IP; не видит: Заголовок TCP.
Без адреса получателя пакет не дошёл бы и сюда.
-
Сервер-получатель получатель
Снимает кадр, читает заголовок IP, а потом впервые за всю дорогу разбирает заголовок TCP: по портам понимает, какому приложению отдать данные, по номерам байт складывает куски по порядку и запрашивает заново то, что потерялось.
TTL 61читает: Кадр Ethernet, Заголовок IP, Заголовок TCP.
Байты дошли, а что с ними делать - непонятно: без заголовка TCP нет ни номера порта, чтобы понять, какому приложению они адресованы, ни номеров байт, чтобы сложить куски по порядку.
Пакет дошёл. Каждый маршрутизатор уменьшил TTL на единицу, а коммутатор не тронул: он работает на уровне кадра. Если бы из-за ошибки в таблицах пакет пошёл по кругу, TTL рано или поздно дошёл бы до нуля, пакет уничтожили бы, а отправителю ушло бы уведомление - именно на этом и построена команда traceroute.
Маршрут условный и короткий: обычно от Беларуси до европейских серверов 8-15 узлов и 10-30 мс. Размеры взяты из статьи: MTU Ethernet 1500 байт, из них 20 на заголовок IP и 20 на заголовок TCP, на данные остаётся около 1460. Размер самого кадра в статье не указан, здесь взят обычный для Ethernet: 14 байт заголовка с MAC-адресами и 4 байта контрольной суммы в конце; в 1500 байт MTU кадр не входит, это уже упаковка канального уровня.
Интерактив разработан ANY.BY - ремонт компьютеров и ноутбуков в Барановичах. © 2008-2026. Источник: any.by/demo/matreshka-paketa