Открыть сервис

EtherType

EtherType — это двухбайтовое поле в заголовке кадра Ethernet, которое идентифицирует протокол сетевого уровня, чьи данные инкапсулированы в поле данных кадра. EtherType является ключевым элементом для мультиплексирования и демультиплексирования трафика на канальном уровне модели OSI, позволяя сетевому интерфейсу определить, какому протоколу (например, IPv4, IPv6, ARP) следует передать полученный пакет для дальнейшей обработки.

История и происхождение

Поле EtherType было введено в спецификации Ethernet компании Xerox в 1970-х годах. Первоначально, в версии Ethernet II (также известной как DIX Ethernet, по первым буквам компаний-разработчиков: Digital, Intel, Xerox), поле EtherType занимало место, которое в более поздних стандартах IEEE 802.3 стало использоваться для указания длины кадра. Это различие привело к возникновению двух форматов кадров: Ethernet II (с EtherType) и IEEE 802.3 (с полем длины).

Развитие стандартов

В 1980 году IEEE опубликовал стандарт 802.3, который использовал поле длины вместо EtherType. Для обратной совместимости и возможности различения форматов было установлено правило: если значение поля меньше или равно 1500 (максимальная длина полезной нагрузки в байтах), то это поле длины; если значение больше или равно 1536 (0x0600), то это EtherType. Значения от 1501 до 1535 не используются. Таким образом, современные кадры Ethernet могут быть как в формате Ethernet II, так и в формате IEEE 802.3 с дополнительным заголовком Logical Link Control (LLC) и Subnetwork Access Protocol (SNAP), который также содержит EtherType.

Структура и формат

Поле EtherType занимает два октета (16 бит) в заголовке кадра Ethernet. В формате Ethernet II оно располагается после MAC-адресов источника и получателя (по 6 байт каждый) и перед полем данных (Payload).

Расположение в кадре

ПолеРазмер (байт)Описание
Преамбула7Синхронизация
SFD (Start Frame Delimiter)1Признак начала кадра
MAC-адрес получателя6Физический адрес назначения
MAC-адрес отправителя6Физический адрес источника
EtherType2Идентификатор протокола
Данные (Payload)46–1500Инкапсулированный пакет
FCS (Frame Check Sequence)4Контрольная сумма

Кодирование значений

Значения EtherType назначаются Управлением по присвоению номеров в Интернете (IANA). Наиболее распространённые значения включают:

  • 0x0800 — IPv4 (Internet Protocol version 4)
  • 0x0806 — ARP (Address Resolution Protocol)
  • 0x86DD — IPv6 (Internet Protocol version 6)
  • 0x8100VLAN Tagging (IEEE 802.1Q)
  • 0x8847MPLS unicast (Multiprotocol Label Switching)
  • 0x8848 — MPLS multicast
  • 0x88CC — LLDP (Link Layer Discovery Protocol)
  • 0x88A8 — Provider Bridging (Q-in-Q)
  • 0x88B5 — IEEE 802.1X (Port-Based Network Access Control)
  • 0x0800X.25 (устаревший)
  • 0x8035 — RARP (Reverse Address Resolution Protocol, устаревший)

Применение и значение

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

Мультиплексирование трафика

Основная функция EtherType — мультиплексирование. Когда сетевой интерфейс получает кадр, он считывает значение EtherType и передаёт данные соответствующему обработчику протокола. Например:

  • Если EtherType = 0x0800, данные передаются стеку IPv4.
  • Если EtherType = 0x0806, данные передаются модулю ARP.
  • Если EtherType = 0x86DD, данные передаются стеку IPv6.

Поддержка виртуальных локальных сетей (VLAN)

Технология VLAN (IEEE 802.1Q) использует значение EtherType 0x8100 для индикации того, что кадр содержит тег VLAN. В этом случае после поля EtherType следует 4-байтовый тег (TPID и TCI), а затем исходный EtherType инкапсулированного протокола. Аналогично, для Provider Bridging (Q-in-Q) используется значение 0x88A8.

Туннелирование и инкапсуляция

EtherType применяется в различных протоколах туннелирования, таких как MPLS (0x8847, 0x8848), PPPoE (0x8863, 0x8864) и EoMPLS (Ethernet over MPLS). В этих случаях EtherType указывает на тип инкапсулированного трафика.

Критика и ограничения

Поле EtherType имеет ограниченный размер (16 бит), что теоретически позволяет закодировать до 65536 различных протоколов. Однако на практике многие значения зарезервированы или не используются. Кроме того, в стандарте IEEE 802.3 поле EtherType было заменено полем длины, что привело к несовместимости с Ethernet II. Для решения этой проблемы был разработан механизм SNAP, который позволяет использовать EtherType внутри кадров IEEE 802.3.

Проблемы с безопасностью

Поскольку EtherType не шифруется и не аутентифицируется, злоумышленник может подменить его для выполнения атак, таких как ARP-спуфинг или внедрение вредоносных протоколов. Однако современные системы используют дополнительные механизмы защиты (например, IPsec, MACsec) для обеспечения целостности и конфиденциальности данных.

Примеры использования

Домашняя сеть

В типичной домашней сети маршрутизатор получает кадры Ethernet с EtherType 0x0800 (IPv4) от компьютера и передаёт их на WAN-интерфейс. ARP-запросы (0x0806) используются для определения MAC-адреса получателя.

Промышленные сети

В промышленных сетях EtherType используется для идентификации протоколов реального времени, таких как PROFINET (0x8892) или EtherCAT (0x88A4). Эти протоколы требуют низкой задержки и высокой детерминированности, что достигается за счёт прямой передачи данных на канальном уровне.

Связанные технологии

  • IEEE 802.1Q — стандарт для VLAN, использующий EtherType 0x8100.
  • LLDP — протокол обнаружения соседних устройств (EtherType 0x88CC).
  • PPPoE — протокол для передачи PPP-кадров через Ethernet (EtherType 0x8863 для сессии, 0x8864 для управления).
  • FCoEFibre Channel over Ethernet (EtherType 0x8906).

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →