Назад | Перейти на главную страницу

Соблюдается ли на практике правило минимального 64-байтового пакета Ethernet?

Быстрое сканирование моего сетевого интерфейса с помощью WireShark обнаруживает группу пакетов Ethernet, длина которых меньше 64 байтов. Я знаю, что WireShark удаляет завершающий 4-байтовый CRC, но я все еще вижу некоторые пакеты ARP с 42 байтами, некоторые IGMPv3 с 54 байтами и некоторые TCP с 54 байтами.

Соблюдается ли правило пакета Ethernet минимум 64 байта? Каковы последствия несоблюдения правила?

Если вы посмотрите более внимательно, вы заметите, что все кадры, которые короче минимального размера кадра (60 байт без FCS), являются кадрами, которые передаются вашим компьютером. Полученные кадры должны быть дополнены до 60 байтов без FCS; они содержат поле «Padding» в разделе «Ethernet II» в окне «Сведения о пакете» программы Wireshark, которое соответствует этим дополнительным байтам.

По крайней мере, в Linux все передаваемые кадры короче 60 байт должны автоматически дополняться сетевым драйвером (или даже оборудованием NIC) перед передачей, но Wireshark этого не показывает, потому что кадры копируются в сокет пакета, используемый Wireshark перед добавлением этого отступа.

Первоначально минимальный размер кадра был указан для правильной работы протокола CSMA / CD, используемого для совместно используемой среды Ethernet - для надежного обнаружения коллизий необходимо, чтобы время, необходимое для передачи кадра (которое пропорционально его размеру вместе со всеми заголовками и преамбулой), быть больше, чем время распространения сигнала между любыми двумя станциями. Текущий Ethernet в большинстве случаев фактически не является разделяемой средой (коммутаторы с полнодуплексными каналами не выполняют обнаружение коллизий). Технически обеспечение минимального размера кадра для полнодуплексного канала не требуется, но это все же делается по соображениям совместимости.

Поскольку Gigabit Ethernet, минимального размера кадра 64 байта уже недостаточно для обнаружения коллизий при использовании практических длин кабеля, и простое увеличение минимального размера кадра приведет к значительной потере полосы пропускания, поэтому Расширение оператора связи введен механизм для полудуплексных гигабитных каналов (см. также Вот Чтобы получить больше информации). Расширение оператора связи реализовано в сетевом оборудовании и невидимо для программного обеспечения. Теоретически использование расширения несущей делает необязательным обеспечение минимального размера кадра для полудуплексных каналов, а для полнодуплексных каналов не требуется ни расширение несущей, ни минимальный размер кадра. Однако минимальный размер кадра в 64 байта все еще сохраняется, вероятно, для совместимости со старым программным обеспечением, которое могло его ожидать.

Боюсь, это один из тех вопросов, которые зависят от обстоятельств.

Соблюдается ли правило пакета Ethernet минимум 64 байта?

На что? коммутатор, между сетевыми картами и т. д.?

Каковы последствия несоблюдения правила?

Опять же о том, что и как?

Как правило, в худшем случае пакеты теряются, вот и все, это не приведет к возгоранию вашего центра обработки данных (хотя не цитируйте меня по этому поводу, во всяком случае, ни в каких юридических документах :)). Если он попадет в маршрутизатор, он, вероятно, все равно будет преобразован на выходе, а на коммутаторе он либо пройдет, либо нет - действительно, довольно двоичный.

Я также заметил, что когда в системе, которая отправляет пакет, запускается wirehark, он может отображаться как меньше 60 байт. Но если вы захватите этот конкретный пакет в принимающей системе, он будет дополнен нулями до 60 байтов.

Другие пакеты, которые могут быть удалены с помощью wirehark, - это пакеты VLAN (когда ваше соединение помечено с помощью VLAN iD). В Linux вам необходимо установить пакет vlan, а в Windows вы не уверены, что сетевая карта и ее драйвер сбросят пакет VLAN или нет. видеть: https://wiki.wireshark.org/CaptureSetup/VLAN