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 | Физический адрес источника |
| EtherType | 2 | Идентификатор протокола |
| Данные (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)
- 0x8100 — VLAN Tagging (IEEE 802.1Q)
- 0x8847 — MPLS 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)
- 0x0800 — X.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 для управления).
- FCoE — Fibre Channel over Ethernet (EtherType 0x8906).
Источники
- IEEE 802.3-2018 — Standard for Ethernet
- IANA EtherType Registry (https://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xhtml)
- RFC 894 — A Standard for the Transmission of IP Datagrams over Ethernet Networks
- RFC 1042 — A Standard for the Transmission of IP Datagrams over IEEE 802 Networks
- Tanenbaum, A. S., & Wetherall, D. J. (2011). Computer Networks (5th ed.). Prentice Hall.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →