Несоответствие форматов кадров Ethernet
Ethernet - одна из самых старых технологий локальных сетей, имеющая длительную историю развития, в которую внесли свой вклад различиные компании и организации. В результате этого существует несколько модификаций даже такого основополагающего строительного блока протокола, как формат кадра. Использование различных форматов кадров может привести к полному отсутствию взаимодействия между узлами.
Всего имеется четыре популярных стандарта формата кадра Ethernet:
- Кадр Ethernet DIX (иликадр Ethernet II);
- Кадр стандарта 802.3(или кадр Novell 802.2);
- Кадр Novell 802.3 (или кадр Raw 802.3);
- Кадр Ethernet SNAP.
Кадр стандарта EthernetDIX, называемый также кадром EthernetII, разработан компаниями Digital, Xerox и Intel (первые буквы названия компаний и дали название этому варианту Ethernet) при создании первых сетей Ethernet. Всего было выпущено две версии фирменного стандарта Ethernet, поэтому последняя, вторая версия этого стандарта также иногда указывается при обозначении варианта протокола Ethernet и соответственно его формата кадра. Часто в литературе именно этот вариант формата кадра называют кадром Ethernet, оставляя для международного стандарта технологии EthernetIEEE 802.3 обозначение 802.3.
Кадр стандарта EthernetDIX имеет следующий формат:
Preambule -Преамбула (8) | Destination -Адрес назначения (6) | Source - Адрес источника (6) | Type - Тип (2) | Data - Данные (46-1500) | Frame Check Sequence (FCS) - Контрольая сумма (4) |
Поля Destination и Source содержат 6-ти байтные МАС-адреса узла назначения и источника, а поле Type - двухбайтный идентификатор протокола верхнего уровня, который поместил свои данные в поле данных Data. Для поля Type существуют стандартные значения числовых идентификаторов для всех популярных протоколов, используемых в локальных сетях. Например, протокол IP имеет числовой идентификатор 0800 и т.п. Эти значения можно найти в постоянно обновляемом RFC ( например, в RFC 1700), в котором уазаны все конкретные числовые значения, применяемые в протоколах сети Internet.
В стандарте IEEEEthernet 802.3 определен формат кадра Ethernet, близкий к формату EthernetDIX, но имеющий некоторые отличия:
Preambule -Преам- була (8) | Destination -Адрес назначения (6) | Source - Адрес источника (6) | Length - Длина (2) | DSAP - Точка входа сервиса назначения (1) | SSAP - Точка входа сервиса источника (1) | Control - Управ- ление (1) | Data - Данные (46-1497) | FrameCheck Sequence (FCS) - Контрольная сумма (4) |
Поле Type встандарте 802.3 замененодвумядополнительнымиполями - DSAP (Destination Service Access Point) и SSAP (Source Service Access Point). Поле DSAP указывает сервис (протокол), которому предназначаются данные, а поле SSAP обозначают сервис (протокол), который отправил эти данные. Назначение этих полей то же, что и поля Type, но наличие двух полей позволяет организовать передачу данных между протоколами разного типа (правда, на практике это свойство никогда не используется). Однобайтовый формат полей SAP не позволил использовать в них те же числовые обозначения идентификаторов протоколов, которые прижились для кадров EthernetDIX, поэтому каждый протокол верхнего уровня имеет сейчас два идентификатора - один используется при инкапсуляции пакета протокола в кадр EthernetDIX, а второй - при инкапсуляции в кадр Ethernet 802.3.
Еще одним отличием кадра IEEE 802.3 является однобайтовое поле Control (Управление), которое предназначено для реализации режима работы с установлением соединенения. В поле Control должны помещаться номера кадров квитанций подтверждения доставки данных, необходимые для отработки процедур восстановления утерянных или искаженных кадров. На практике большинство операционных систем не использует этих возможностей кадра 802.3, ограничиваясь работой в дейтаграммном режиме (при этом значение поля Control всегда равно 03).
Так как стандарт IEEE делит канальный уровень на два подуровня - MAC и LLC, то иногда кадр Ethernet 802.3 также представляют как композиции двух кадров.
Кадр МАС- уровня включает поля преамбулы, адресов назначения и источника, поле длины и поле контрольной суммы, а кадр LLC содержит поля DSAP, SSAP, Control и поле данных (которое из-за введения новых трех однобайтовых полей имеет максимальную длину на 3 байта меньше).
Кадр Novell 802.3, который также называют кадром Raw 802.3 (то есть "грубый" или "очищенный" вариант стандарта 802.3) представляет собой кадр МАС-уровня без полей уровня LLC:
Preambule -Преамбула (8) | Destination -Адрес назначения (6) | Source - Адрес источника (6) | Length - Длина (2) | Data - Данные (46-1500) | Frame Check Sequence (FCS) - Контрольная сумма (4) |
Кадр EthernetSNAP (SubNetworkAccessProtocol) активно используется в сетях TCP/IP для достижения совместимости числовых идентификаторов протоколов с теми, которые используются в кадре EthernetDIX. Кадр EthernetSNAP определен в стандарте 802.2H и представляет собой расширение кадра IEEE 802.3 путем введения двух дополнительных полей: 3-х байтового поля OUI (OrganizationUnitIdentifier) и двухбайтового поля Type. Поле Type имеет тот же формат и то же назначение, что и поле Type кадра EthernetDIX. Поэтому числовые значения идентификаторов протоколов, помещаемые в это поле кадра EthernetSNAP, совпадают со значениями, используемыми в кадрах EthernetDIX, и в этом весь смысл введения дополнительных полей заголовка SNAP. В поле OUI указывается код организации, которая определеяет стандартные значения для поля Type. Для протокола Ethernet такой организацией является комитет IEEE 802.3, и его код равен 00 00 00.
Наличие поля OUI позволяет использовать заголовок SNAP не только для протокола Ethernet, но и для других протоколов, которые контролируются другими организациями.
Если оборудование или операционная система настроены на поддержку какого-то одного формата кадра Ethernet, то они могут не найти взаимопонимания с другим узлом, который в свою очередь поддерживает также один формат кадра Ethernet, но другого типа. Результатом попыток взаимодействия таких узлов будет отбрасывание поступающих кадров, так как неверная интерпретация формата приведет к неверной контрольной сумме кадра.
Многие современные операционные системы и коммуникационное оборудование умеют одновременно работать с различными типами кадров, распознавая их автоматически. Распознавание идет по значению 2-х байтового поля, расположенного за адресом источника. Это поле может быть полем Type или Length. Числовые идентификаторы протоколов выбраны так, что значение поля Type будет всегда больше 1500, в то время как поле Length всегда содержит значение меньше или равное 1500. Дальнейшее отделение кадров EthernetSNAP от IEEE 802.3 проводится на основании значения полей DSAP и SSAP. Если присутствует заголовок SNAP, то поля DSAP и SSAP всегда содержат вполне определенный числовой идентификатор, зарезервированный за протоколом SNAP.
Автоматическое распознавание типа кадра избавляет пользователей сети от неприятных проблем, однако та же ОС или маршрутизатор могут быть настроены на поддержку только одного типа протоколов, и в этом случае проблема несовместимости может проявляться.
Сетевые анализаторы и средства мониторинга умеют автоматически различать форматы кадров Ethernet. Для задания условий захвата кадров, содержащих пакеты определенных протоколов верхнего уровня, анализаторы позволяют пользоваться как числовыми идентификаторами этих протоколов для полей SAP (DSAP и SSAP), так и числовыми идентификаторами для поля Type (имеющим также название EtherType).
В сетях TokenRing и FDDI всегда используются кадры стандартного формата, поэтому в этих сетях не возникают проблемы, связанные с несовместимостью форматов кадров.