Если создается 802.1q, поле Ethertype изменяется на 0x8100, что означает то, что оно означает - это кадр 802.1q.
Но это означает, что Ethertype больше не используется для маркировки протокола более высокого уровня, например, 0x0800 для IPv4.
Каковы последствия потери поля Ethertype с пометкой IPv4 и наличия фрейма с пометкой 802.1q? Предполагая, что протокол L3 не изменился.
Спасибо.
Следствием этого является то, что принимающая сторона кадра должна знать, что такое 0x8100. Если он не распознает этот тип кадра, он не сможет его получить. Большинство версий Windows не могут обрабатывать кадры с тегами (без стороннего программного обеспечения). Большинство систем * nix могут это сделать, хотя обычно они требуют специальной настройки.
Слои ниже L3 не заботятся: сетевое оборудование, такое как простой коммутатор L2, не будет обрабатывать пакет иначе. Стоит отметить, что 802.1Q - не первый протокол, в котором EtherType отличается от IPv4. Существует около дюжины типов EtherTypes, которые вы найдете относительно часто используемыми в сетях.
Когда простой кадр Ethernet преобразуется в кадр с тегом 802.1Q, исходное поле Ethertype не перезаписывается. Ваше первоначальное предположение - что при создании 802.1q поле Ethertype изменено на 0x8100 - неверно.
Стандарт 802.1Q использует теги для изменения исходного кадра. Когда простой кадр Ethernet преобразуется в 802.1Q, между исходным MAC-адресом и исходным полем Ethertype вставляется специальное 32-битное поле (тег). Таким образом, исходное поле Ethertype не теряется, а сдвигается вправо на 32 бита тега 802.1Q.
И Тег 802.1Q отформатирован таким образом что его первое 16-битовое поле несет тот же тип информации, что и исходное поле Ethernet Ethertype. Хотя на самом деле это поле называется TPID (идентификатор протокола тега). Это поле находится в той же позиции, что и поле Ethertype в простых кадрах Ethernet, и, таким образом, используется для отличия кадра от немаркированных кадров. Поэтому, когда заинтересованная сторона анализирует заголовок кадра Ethernet и натыкается на значение 0x8100 в предположительно поле Ethertype, она знает, что на самом деле это не поле Ethertype, а поле TPID 802.1Q тегированного кадра 802.1Q. И чтобы добраться до фактического значения Ethertype, синтаксическому анализатору необходимо будет игнорировать только что прочитанное 16-битное поле и следующие 16-битные (всего 32 бита тега 802.1Q).