Битлента
Словарь терминов3 мин чтения·

Ethernet-кадр: поля, размер и MAC-адреса

Как устроен кадр Ethernet: преамбула, MAC-адреса, тип, данные и контрольная сумма, допустимые размеры и связь кадра с IP-пакетом.

Единица данных на втором уровне

Когда IP-пакет нужно передать по проводу до соседнего устройства, его помещают в контейнер канального уровня. Для проводных сетей это чаще всего кадр Ethernet. Кадр существует только в пределах одного сегмента: каждый маршрутизатор на пути снимает старый кадр и создаёт новый под следующий переход. Пакет при этом остаётся тем же, а вот адреса в кадре меняются.

Это важный момент для понимания сетей. IP-адрес получателя указывает конечную цель, а MAC-адрес в кадре указывает только ближайший следующий узел.

Поля кадра по порядку

Кадр начинается с преамбулы и признака начала кадра. Это служебные байты для синхронизации приёмника, и большинство программ их не показывают. Затем идут MAC-адрес получателя и MAC-адрес отправителя по шесть байт каждый. Далее двухбайтовое поле: оно содержит либо тип вложенного протокола, например код для IPv4 или IPv6, либо длину данных.

Потом расположена полезная нагрузка, обычно IP-пакет. В конце стоит четырёхбайтовая контрольная последовательность кадра, вычисляемая по алгоритму CRC. Получатель пересчитывает её, и при несовпадении кадр молча отбрасывается. Ошибку в таком случае исправляют уже верхние уровни, например повторной отправкой в TCP.

Размеры и жёсткие границы

Минимальная длина кадра составляет 64 байта без преамбулы, и если данных мало, их дополняют пустыми байтами. Ограничение связано с механизмом обнаружения коллизий в ранних сетях. Максимальный размер полезной нагрузки в стандартном Ethernet равен 1500 байт, именно отсюда берётся привычное значение MTU. Вместе с заголовком и контрольной суммой кадр получается немного больше.

Бывают и так называемые джамбо-кадры с нагрузкой до примерно девяти тысяч байт. Их включают в хранилищах и серверных сетях, но все устройства на пути должны поддерживать одинаковый размер, иначе возникают трудноуловимые потери.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Как кадр связан с MAC-адресами и ARP

Прежде чем отправить кадр, компьютер должен знать MAC-адрес соседа. Если известен только IP, узнать соответствие помогает протокол ARP. Для адресов вне локальной сети в поле получателя ставится MAC шлюза, а не удалённого сервера. Именно поэтому в анализаторе пакетов кадры при обращении к любому сайту идут на один и тот же MAC вашего роутера.

Коммутатор читает поле адреса получателя и по своей таблице решает, в какой порт направить кадр. Широковещательный адрес, состоящий из одних единиц, означает «всем в сегменте».

Кадры в Wi-Fi и другие отличия

Беспроводная сеть использует свой формат кадра, у которого до четырёх адресных полей и другие служебные данные, потому что эфир общий и нужно учитывать точку доступа. Но для верхних уровней это скрыто: точка доступа преобразует кадры между беспроводным и проводным форматами.

Посмотреть поля можно захватом на интерфейсе в анализаторе: в развёрнутой строке видно источник, назначение и тип. Обратите внимание, что VLAN-метка при её наличии добавляет ещё четыре байта в заголовок.

Что показывает кадр при диагностике

Анализ кадров помогает там, где верхние уровни выглядят исправными. Если в захвате видны повторяющиеся ARP-запросы без ответа, устройство не находит соседа или шлюз. Если у кадров разные MAC-адреса отправителя для одного IP, вероятен конфликт адресов или подмена. Большое число кадров с ошибками контрольной суммы говорит о плохом кабеле, разъёме или помехах.

Счётчики ошибок доступны и без анализатора: на управляемых коммутаторах и в статистике сетевого адаптера видны принятые, отброшенные и повреждённые кадры. Если счётчик CRC растёт при нормальной нагрузке, стоит поменять патч-корд, проверить обжим и длину линии, которая для витой пары не должна превышать сотню метров.

Расхождения в размерах встречаются в описаниях, поэтому уточним: 1500 байт относятся к полезной нагрузке, а полный кадр вместе с адресами, полем типа и контрольной суммой равен 1518 байт, а с тегом VLAN 1522. Преамбулу в это число не включают. Если видите в документации оба значения, речь просто о разных способах счёта.

В сетях с туннелями или дополнительными заголовками полезная нагрузка уменьшается, и MTU приходится снижать, иначе крупные пакеты начнут теряться.

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

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
ethernetкадрmac-адрессети

Часто задаваемые вопросы

Читайте также