Формат кадра подуровня МАС
Стандарт технологии Ethernet, описанный в документе IEЕЕ 802.3, дает описание единственного формата кадра подуровня MAC. Так как в кадр подуровня МАС должен вкладываться кадр подуровня LLC, описанный в документе IEEE 802.2, то по стандартам IEEE в ceти Еthernet может использоваться только единственный вариант кадра канального уровня, заголовок которого является комбинацией заголовков MAC- и LLC- подуровней.
Тем не менее на практике в сетях Ethernet на канальном уровне используются кадры 4 различных форматов (типов):
- кадр 802.3/LLC (кадр 802.3/802.2 или кадр Novell 802.2);
- кадр Raw 802.3 (или кадр Novell 802.3);
- кадр Ethernet DIX (или кадр Ethernet II);
- кадр Ethernet SNAP.
Это связано с длительной историей развития технологии Ethernet, насчитывающей период существования до принятия стандартов IEEE 802, когда подуровень LLC не выделялся из общего протокола и соответственно заголовок LLC не применялся.
Различия в форматах кадров могут приводить к несовместимости в работе аппаратуры и сетевого программного обеспечения, рассчитанного на работу только с одним стандартом кадра Ethernet. Однако сегодня практически все сетевые адаптеры, драйверы сетевых адаптеров, мосты/коммутаторы и маршрутизаторы умеют работать со всеми используемыми на практике форматами кадров технологии Ethernet, причем распознавание типа кадра выполняется автоматически [4].
Заголовок кадра 802.3/LLC является результатом объединения полей заголовков кадров, определенных в стандартах IEEE 802.3 и 802.2 (рис. 4.9).
Рисунок 4.9 - Формат кадра 802.3/LLC
Поле преамбулы (Preamble) состоит из семи синхронизирующих байтов 10101010. При манчестерском кодировании эта комбинация представляется в физической среде периодическим волновым сигналом с частотой 5 МГц.
Начальный ограничитель кадра (Start-of-frame-delimiter, SFD) состоит из одного байта 10101011. Появление этой комбинации битов является указанием на то, что следующий байт — это первый байт заголовка кадра.
Адрес назначения (Destination Address, DA) может быть длиной 2 или 6 байтов. На практике всегда используются адреса из 6 байтов. Первый бит старшего байта адреса назначения является признаком того, является адрес индивидуальным или групповым. Если он равен 0, то адрес является индивидуальным (unicast), a если 1, то это групповой адрес (multicast). Групповой адрес может предназначаться всем узлам сети или же определенной группе узлов сети. Если адрес состоит из всех единиц, то есть имеет шестнадцатеричное представление 0xFFFFFFFFFFFF, то он предназначается всем узлам сети и называется широковещательным адресом (broadcast). В остальных случаях групповой адрес связан только с теми узлами, которые сконфигурированы (например, вручную) как члены группы, номер которой указан в групповом адресе.
Второй бит старшего байта адреса определяет способ назначения адреса - централизованный или локальный. Если этот бит равен 0 (что бывает почти всегда в стандартной аппаратуре Ethernet, то адрес назначен централизованно, с помощью комитета IEEE).
Комитет IEEE распределяет между производителями оборудования так называемые организационно-уникальные идентификаторы (Organizationally Unique Identifier, OUI). Этот идентификатор помещается в 3 старших байтах адреса (например, идентификатор 000081 определяет компанию Bay Networks). За уникальность младших 3 байтов адреса отвечает производитель оборудования. Двадцать четыре бита, отводимые производителю для адресации интерфейсов его продукции, позволяют выпустить 16 миллионов интерфейсов под одним идентификатором организации. Уникальность централизованно распределяемых адресов распространяется на все основные технологии локальных сетей — Ethernet, Token Ring, FDDI и т. д.
В стандартах IEEE Ethernet младший бит байта изображается в самой левой позиции поля, а старший бит – в самой правой. Этот нестандартный способ отображения порядка битов в байте соответствует порядку передачи битов в линию связи передатчиком Ethernet. В стандартах других организаций, например ISO, используется традиционное представление байта, когда младший бит считается самым правым битом байта, а старший – самым левым. При этом порядок следования байтов остается традиционным. Поэтому при чтении стандартов, опубликованных этими организациями, а также чтении данных, отображаемых на экране операционной системой или анализатором протоколов, значения каждого байта кадра Ethernet нужно зеркально отобразить, чтобы получить правильное представление о значении разрядов этого байта в соответствии с документами IEEE. Например, групповой адрес, имеющийся в нотации IEEE, вид 1000 0000 0000 0000 1010 0111 1111 0000 0000 0000 0000 0000, или в шестнадцатеричной записи 80-00-А7-F0-00-00, будет, скорее всего, отображен анализатором протокола в традиционном виде как 01-00-Е5-0F-00-00.
Адрес источника (Source Address, SA) — может быть длиной 2 или 6 байтов и содержит адрес узла-отправителя кадра. Первый бит адреса всегда имеет значение 0.
Длина (Length, L) — 2-байтовое поле, которое определяет длину поля данных в кадре.
Поле данных для МАС-кадра, состоящее из пакета сетевого уровня и заголовка LLC, может содержать до 1500 байтов. Соответственно поле Data может иметь размер от 46 до 1497 (1496) байтов. Но если его длина меньше 46 байтов, то используется следующее поле (поле заполнения), чтобы дополнить кадр до минимально допустимого значения в 46 байтов.
Поле заполнения (Padding) состоит из такого количества байтов заполнителей, которое обеспечивает минимальную длину поля данных в 46 байтов. Это обеспечивает корректную работу механизма обнаружения коллизий. Если длина поля данных достаточна, то поле заполнения в кадре не появляется.
Поле контрольной суммы (Frame Check Sequence. FCS) состоит из 4 байтов, содержащих контрольную сумму. Это значение вычисляется по алгоритму CRC-32. После получения кадра рабочая станция выполняет собственное вычисление контрольной суммы для этого кадра, сравнивает полученное значение со значением поля контрольной суммы и, таким образом, определяет, не искажен ли полученный кадр.
Кадр 802.3 является кадром МАС-подуровня, поэтому в соответствии со стандартом 802.2 в его поле данных вкладывается кадр подуровня LLC с удаленными флагами начала и конца кадра. Формат кадра LLC был описан выше. Так как кадр LLC имеет заголовок длиной 3 (в режиме LLC1) или 4 байта (в режиме LLC2), то максимальный размер поля данных уменьшается до 1497 или 1496 байтов.
Автоматическое распознание типов кадров Ethernet выполняется достаточно несложно. Для кодирования типа протокола в поле EtherType указываются значения, превышающие значение максимальной длины поля данных, равное 1500, поэтому кадры Ethernet II легко отличить от других типов кадров по значению поля L/T. Дальнейшее распознавание типа кадра проводится по наличию или отсутствию полей LLC. Поля LLC могут отсутствовать только в том случае, если за полем длины идет начало пакета IPX, а именно 2-байтовое поле контрольной суммы пакета, которое всегда заполняется единицами, что дает значение в 255 байтов. Ситуация, когда поля DSAP и SSAP одновременно содержат такие значения, возникнуть не может, поэтому наличие двух байтов со значением в 255 говорит о том, что это кадр Raw 802.3. В остальных случаях дальнейший анализ проводится в зависимости от значений полей DSAP и SSAP. Если они равны 0хАА, то это кадр Ethernet SNAP, а если нет, то 802.3/LLC.
Дата добавления: 2016-03-22; просмотров: 956;