Спецификация кадров и пакетов MAC

image_print

PDF

По материалам стандарта IEEE 802.3-2018.

Обзор

Документ определяет сопоставление примитивов сервисного интерфейса MAC1 и пакетов Ethernet, включая синтаксис и семантику полей кадров MAC и полей для формирования пакетов из этих кадров MAC.

В процессе развития Ethernet добавлялись возможности инкапсуляции протоколов канального уровня (L2) в поле MAC Client Data в результате чего возникло несколько типов кадров MAC. Описанный здесь формат включает 3 типа кадров MAC:

  1. базовый кадр2;

  2. кадр с тегом Q3;

  3. кадр-конверт4 (envelope frame).

Для всех трёх типов кадров применяется один тип кадра Ethernet.

Формат пакета

На рисунке 1 показаны поля пакета: преамбула (Preamble), стартовый ограничитель кадра (Start Frame Delimiter или SFD), MAC-адреса отправителя и получателя кадра, поле типа или размера для указания размера или типа протокола следующего поля, содержащего клиентские данные MAC, необязательное поле заполнения, служащее для выравнивания размера, и поле FCS (Frame Check Sequence), содержащее циклическую контрольную сумму для обнаружения ошибок в полученном кадре MAC. При необходимости5 добавляется поле Extension. Все поля, кроме MAC Client Data, Pad и Extension имеют фиксированный размер, а поля переменного размера могут включать целое число октетов (от минимального до максимального) в зависимости от конкретной реализации MAC (см. Приложение 1. Реализации MAC).

Рисунок 1. Формат пакета.

Минимальный и максимальный размер кадра MAC (см. Приложение 1. Реализации MAC) относится к части кадра от поля Destination Address до Frame Check Sequence, включительно (собственно кадр MAC).

Октеты показанных на рисунке 1 полей передаются, начиная с верхнего (преамбула), а биты каждого октета, начиная с левого (младшего).

Сопоставления сервисного интерфейса


Рисунок 2. Сопоставления сервисного интерфейса.


На рисунке 2 показаны сопоставления параметров сервисного интерфейса с полями кадра MAC в пакете. Клиент MAC может не поддерживать поля Pad и FCS, поэтому их отображения показаны пунктирными линиями на рисунке.

Элементы кадра MAC и пакета

Кадр MAC инкапсулируется в пакет службой (уровнем) MAC. Далее подробно описаны поля кадра MAC и дополнительные поля, создаваемые службой MAC для инкапсуляции MAC-кадра. Поля описаны в порядке их передачи.

Преамбула

Поле Preamble имеет размер 7 октетов и служит для синхронизации устройства PLS6 с принимаемым пакетом. Преамбула содержит последовательность чередующихся битов

10101010 10101010 10101010 10101010 10101010 10101010 10101010

передаваемых слева направо, которая при манчестерском кодировании выглядит в среде как «волна». Отметим, что преамбула завершается битом 0.

Стартовый ограничитель

Поле SFD содержит последовательность 10101011, передаваемую сразу после преамбулы. Кадр MAC начинается сразу после поля SFD. Отметим, что октет стартового ограничителя отличается от октетов преамбулы лишь последним (при передаче) битом, который имеет значение 1.

Поля адресов

Каждый кадр MAC содержит два адресных поля – Destination Address (получатель) и Source Address (отправитель), передаваемых в указанном порядке. Поле Destination Address может указывать одного или множество получателей, которым предназначен данный кадр MAC. Поле Source Address указывает станцию, которая инициировала передачу кадра MAC. Представление адресных полей дано на рисунке 3.


Рисунок 3. Формат поля адреса.

  1. Каждое поле адреса имеет размер 48 битов (6 октетов).
  2. Первый (младший7 – LSB) бит в поле Destination Address указывает тип адреса – групповой (1) или индивидуальный (0). Групповые пакеты могут воспринимать некоторые (члены группы) или все станции ЛВС. Для поля Source Address этот бит считается резервным и устанавливается в 0. Таким образом, индивидуальные адреса MAC имеют чётное значение в старшем октете (последняя цифра – 0, 2, 4, 6, 8, A, C, E8).

  3. Второй бит указывает тип адреса – администрируемый глобально (0) или локально (1). Администратор сети может установить для своих устройств «произвольные» адреса MAC, содержащие 1 во втором бите первого октета адреса и используя оставшиеся биты по своему усмотрению с учётом п. a). Для широковещательных кадров этот бит имеет значение 1.

  4. Три старших (первых) октета9 MAC-адреса распределяются централизованно IEEE между производителями сетевого оборудования на платной основе. Реестр выделенных значений доступен по ссылке, условия выделения блоков MA-L (ранее назывался OUI) описаны в специальном документе.

  5. Оставшиеся три октета адреса владелец блока MA-L распределяет между выпускаемыми устройствами по своему усмотрению

  6. Биты всех октетов адреса передаются, начиная с младшего. Октеты передаются, начиная с первого (левого) в принятой записи MAC-адресов (xx:xx:xx:xx:xx:xx, где x – шестнадцатеричные цифры).

Предназначение адресов

Адреса подуровня MAC могут быть двух типов.

  1. Индивидуальный адрес связан с конкретной станцией сети.

  2. Групповой адрес связан с одной или несколькими станциями данной сети. Эти адреса дополнительно делятся на два типа:

    1. Адрес группы (Multicast-Group) связывается соглашением вышележащего уровня с группой логически связанных станций.

    2. Широковещательный (Broadcast) адрес – это специальный групповой адрес, указывающий все станции ЛВС.

Поле Destination Address, содержащее 1 во всех битах, зарезервировано в качестве широковещательного адреса. Такая группа должна быть определена в каждой среде передачи для включения в неё всех подключённых к среде активных станций. Все станции должны быть способны распознавать широковещательный адрес.

Поле адреса получателя

Поле Destination Address указывает станцию или станции, которым предназначен кадр MAC, и может содержать индивидуальный или групповой (в том числе, широковещательный) адрес.

Поле адреса отправителя

Поле Source Address указывает станцию, передающую кадр MAC, и не интерпретируется подуровнем MAC.

Поле размера/типа

Это двухоктетное поле может иметь два смысла в зависимости от значения. При расчёте численного значения поля старшим считается первый октет.

  1. Если десятичное значение этого поля не превышает 1500 (шестнадцатеричное значение 05DC), поле указывает число октетов данных клиента MAC в последующем поле MAC Client Data базового кадра (размер).

  2. Если десятичное значение поля не меньше 1536 (шестнадцатеричное значение 0600), поле указывает тип Ethertype протокола клиента MAC (тип). Значения типов распределяются регистрационным агентством департамента стандартизации IEEE на платной основе в соответствии со специальным документом. Список выделенных значений Ethertype доступен по ссылке.

Интерпретации поля как размера и типа являются взаимоисключающими, т. е. поле может указывать только тип или только размер, поскольку соответствующие диапазоны значения не перекрываются.

При использовании поля для указания типа клиент MAC отвечает за корректность обработки дополнения подуровнем MAC поля MAC Client Data (Данные клиента MAC).

Независимо от интерпретации поля Length/Type поле MAC Client Data будет дополняться до минимального размера, требуемого для корректной работы протокола, путём включения поля Pad (последовательность октетов) между полем MAC Client Data и FCS. Процедура определения размера поля Pad описана ниже.

Поле Length/Type передаётся и принимается, начиная со старшего октета.

Данные клиента MAC

Поле MAC Client Data содержит последовательность октетов. Эта последовательность может включать произвольные значения октетов размером вплоть до максимума, задаваемого конкретной реализацией (Параметры MAC).

Реализации Ethernet должны поддерживать хотя бы один из указанных ниже максимальных размеров поля MAC Client Data:

  1. 1500 октетов для базовых кадров;

  2. 1504 октета для кадров с тегом Q;

  3. 1982 октета для кадров-конвертов10.

Если поддерживается управление уровнем (layer management), кадры с размером поля MAC Client Data больше поддерживаемого максимума следует учитывать. В новых реализациях рекомендуется поддерживать передачу кадров-конвертов.

Следует отметить, что кадры с тегами Q являются конвертами, но не все кадры конверты имеют тег Q.

Все кадры IEEE 802.3 MAC имеют одинаковый формат и обработка кадров трёх типов в IEEE 802.3 MAC различается лишь в части управления. Однако клиент MAC может различать эти типы кадров.

Параметры MAC рассмотрены в Приложении 1 (Параметры MAC).

Поле заполнения

Метод управления доступом к среде CSMA/CD задаёт нижнее ограничение (minFrameSize) размера передаваемых кадров. Если размер кадра меньше minFrameSize, подуровень CSMA/CD MAC добавляет после поля MAC Client Data октеты заполнения (Pad), которые учитываются в контрольной сумме. Размер заполнения выбирается так, чтобы кадр, начиная с поля Destination Address и заканчивая полем FCS (включительно), имел размер не менее minFrameSize битов. Если поле FCS представляет клиент MAC, он должен предоставить и поле Pad. Значения битов заполнения (Pad) спецификация не задаёт.

Размер поля Pad определяется размером поля MAC Client Data, полученного от клиента MAC, а также минимальным размером кадра MAC и параметрами MAC для размера адреса (Параметры MAC). Размер поля Pad для MAC Client Data размером clientDatasize/8 октетов составляет max[0, minFrameSize – (clientDatasize + 2 addressSize + 48)] битов.

Контрольная сумма кадра

Циклическая контрольная сумма с избыточностью (cyclic redundancy check или CRC) применяется в алгоритмах приёма и передачи для создания и проверки значения поля FCS, содержащего 4 октета (32 бита) значения CRC. Значение определяется как функция защищаемых полей кадра MAC: Destination Address, Source Address, Length/Type, MAC Client Data, Pad (все поля, кроме FCS и Extension). Значение поля определяется полиномом

G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1

Математически значение CRC для данного кадра MAC определяется приведённой ниже процедурой.

  1. Дополняются первые 32 бита кадра.

  2. n битов защищаемых полей выбираются в качестве коэффициентов полинома M(x) степени n – 1. Первый бит поля Destination Address соответствует члену x(n–1), а последний бит поля MAC Client Data (или Pad при его наличии) соответствует члену x0.

  3. M(x) умножается на x32 и делится на G(x), давая остаток R(x) степени 31.

  4. Коэффициент R(x) считается 32-битовой последовательностью.

  5. Последовательность битов дополняется, давая в результате CRC.

32 бита значения CRC помещаются в поле FCS так, что член x31 становится левым битом первого октета, а x0 – последним битом четвёртого октета. Биты CRC передаются в порядке x31, x30, …, x1, x0. Алгоритм описан в работе [Hammond].

Поле расширения

Поле Extension размещается после FCS и содержит последовательность битов расширения. Размер поля может меняться от 0 до (slotTime–minFrameSize) битов, включительно. Содержимое поля Extension не учитывается при расчёте FCS.

Поле Extension имеет отличный от нуля размер при указанных ниже условиях.

Расширение несущей (полнодуплексный режим)

При рабочей скорости 1000 Мбит/с значения slotTime, используемого при меньших скоростях, недостаточно для сетевых топологий с достаточной физической протяжённостью. Carrier Extension обеспечивает возможность увеличить slotTime до желаемого значения без увеличения параметра minFrameSize, поскольку это может вызывать негативные последствия. Не содержащие данных биты, называемые битами расширения, добавляются в конце кадра, размер которого меньше числа битов slotTime, чтобы передача в результате длилась не меньше slotTime. Carrier Extension можно применять лишь в тех случаях, когда базовый физический уровень способен принимать и передавать символы, которые легко отличить от символов данных, как это происходит в большинстве физических уровней, использующих схему блочного кодирования и декодирования. Максимальный размер расширения указывает разность (slotTimeminFrameSize). Кадр с полем расширения показан на рисунке 4.


Рисунок 4. Кадр с расширением несущей.

Уровень MAC продолжает отслеживать конфликты (коллизии) в среде при передаче битов расширения и будет считать любой конфликт после порога slotTime запоздалым (late collision).

В остальных случаях поле Extension имеет размер 0 (отсутствует). Реализации, рассмотренные в параграфе Параметры MAC, могут игнорировать это поле полностью, если число битов в параметре slotTime равно числу битов в minFrameSize.

Порядок передачи битов

Все октеты кадра MAC, за исключением FCS, передаются, начиная с младшего бита.

Непригодные кадры MAC

Недействительными считаются кадры, соответствующие любому из приведённых ниже условий.

  1. Размер кадра не соответствует значению в поле Length/Type. Если это поле указывает тип (Поле размера/типа), размер кадра считается соответствующим полю и не позволяет считать кадр непригодным по этому условию11.

  2. Размер кадра не содержит целое число октетов.

  3. Биты входящего кадра (без учёта полей FCS и Extension) дают значение CRC, отличное от значения поля FCS.

Содержимое непригодного кадра MAC не передаётся подуровням LLC или MAC Control12. Информация о недействительных кадрах MAC может передаваться системе управления сетью.

Приложение 1. Реализации MAC

Совместимость

Для обеспечения совместимости на всех уровнях стандарта IEEE 802.3 от каждого элемента сети, реализующего подуровень CSMA/CD MAC, требуется строгое соответствие спецификации. Сведения, приведённые в параграфе Параметры MAC, обеспечивают параметры конфигурации для конкретных реализаций этого метода доступа. Отклонения от приведённых значений ведут к нарушению стандарта.

Устройство DTE должно быть способно работать в полудуплексном и полнодуплексном режиме. В соответствующей стандарту реализации все станции должны быть настроены на работу в одном режиме (полудуплексном или полнодуплексном).

Все DTE, подключённые к повторителю или смешанному сегменту, должны быть настроены на работу в полудуплексном режиме. Когда пара DTE подключена к разным концам одного канального сегмента, оба устройства должны использовать один режим работы (полудуплексный или полнодуплексный).

Параметры MAC

Приведённые в таблице 1 нужно использовать в соответствии со скоростью данных MAC.

Таблица 1. Параметры MAC.

Параметры

Скорость данных MAC

До 100 Мбит/с включительно

1 Гбит/с

2,5, 5, 25, 40, 100, 200, 400 Гбит/с

10 Гбит/с

slotTime

512 BT13

4096 BT

не применимо

не применимо

interPacketGap

96 BT14

96 BT15

96 BT16, 17

96 BT4

attemptLimit

16

16

не применимо

не применимо

backoffLimit

10

10

не применимо

не применимо

jamSize

32 бита

32 бита

не применимо

не применимо

maxBasicFrameSize

1518 октетов

1518 октетов

1518 октетов

1518 октетов

maxEnvelopeFrameSize

2000 октетов

2000 октетов

2000 октетов

2000 октетов

minFrameSize

512 битов (64 октета)

512 битов (64 октета)

512 битов (64 октета)

512 битов (64 октета)

burstLimit

не применимо

65 536 битов

не применимо

не применимо

ipgStretchRatio

не применимо

не применимо

не применимо

104 бита18

В полудуплексном режиме 10 Мбит/с не рекомендуется применять кадры-конверты при работе с повторителями, поскольку это может приводить к повреждению кадров из-за погрешностей часов.

Отклонение от приведённых в таблице значений параметров может нарушать работу сети.

Рекомендации по настройке

Режим работы MAC может определяться функцией автосогласования (Auto-Negotiation) или устанавливаться вручную. При использовании ручной настройки устройства на обоих концах сегмента канала должны работать в одном режиме. При использовании Auto-Negotiation уровень MAC должен настраиваться на режим, определённый функцией автоматического согласования.

Неорректная настройка режима дуплекса может нарушать работу сети.

Литература

[Hammond] Hammond, J. L., Brown, J. E., and Liu, S. S. Development of a Transmission Error Model and Error Control Model. Technical Report RADC-TR-75-138. Rome: Air Development Center (1975).

Николай Малых

nmalykh@protokols.ru

1Media Access Control – управление доступом к среде.

2Кадр MAC, где поле Length/Type указывает размер или тип, а максимальный размер кадра не превышает 1518 октетов. Базовые кадры не позволяют включать дополнительные теги или инкапсуляцию, требуемую вышележащим уровнем (см. ниже).

3Кадр MAC с конкретным значением Ethertype и максимальным размером 1522 октета (см. ниже и IEEE Std 802.1Q, Annex G).

4Кадр MAC, где поле Length/Type указывает тип Type, который может задавать инкапсуляцию в поле MAC Client Data, и имеет максимальный размер 2000 октетов. Такие кадры предназначены для возможности включения дополнительных префиксов и суффиксов, требуемых вышележащими протоколами инкапсуляции, которые могут использовать до 482 октетов (см. ниже).

5Только в полнодуплексном пережиме 1000 Мбит/с.

6Physical Layer Signaling – сигнализация физического уровня.

7Здесь не совсем уместно говорить о «младшем» и «старшем» битах адреса, поскольку октеты адреса обычно записывают слева направо в порядке передачи, т. е. это будет младший бит «старшего» (первого при передаче) октета адреса.

8С учётом второго бита, описанного ниже, младшая цифра первого байта установленного производителем оборудования (аппаратного) MAC-адреса может принимать лишь значения 0, 4, 8, C.

9Точнее, 22 бита, поскольку два бита первого октета имеют особое значение, как описано выше.

10Эти кадры предназначены для возможности включения дополнительных префиксов и суффиксов, требуемых протоколами инкапсуляции вышележащего уровня, заданными рабочей группой IEEE 802.1 (такие как Provider Bridges и MAC Security), ITU-T или IETF (например, MPLS). Исходное ограничение размера MAC Client Data составляет 1500 октетов, а протоколам инкапсуляции можно добавлять до 482 октетов. Использование этих октетов для иных целей не рекомендуется и может приводить к отбрасыванию или повреждению кадров MAC.

11Этот подход применяется в кадрах большого размера jumbo, не включённых в стандарт IEEE 802.3. В таких кадрах поле Length/Type содержит значение 0x8870 (инкапсуляция LLC в соответствии с IEEE 802.1AC).

12Недействительные кадры MAC могут игнорироваться, отбрасываться или использоваться по своему усмотрению клиентом MAC, отличным от LLC и MAC Control. Спецификация не задаёт этого.

13Bit times – время передачи 1 бита.

14При скорости 10 Мбит/с интервал между двумя последовательными не конфликтующими пакетами (от начала бездействия в конце первого пакета до начала преамбулы следующего пакета) может сокращаться до 47 BT на приёмной линии AUI устройства DTE. Межпакетный интервал может уменьшаться в результате переменных задержек в сети, добавления битов преамбулы и погрешности часов.

15При скорости 1 Гбит/с интервал между двумя последовательными не конфликтующими пакетами ( от последнего бита поля FCS первого пакета до начала преамбулы следующего пакета) может сокращаться до 64 BT на приёмной линии GMII устройства DTE. Межпакетный интервал может уменьшаться в результате переменных задержек в сети, добавления битов преамбулы и погрешности часов.

16При скорости 2,5, 5, 10, 25 Гбит/с интервал между двумя последовательными не конфликтующими пакетами ( от последнего бита поля FCS первого пакета до начала преамбулы следующего пакета) может сокращаться до 40 BT на приёмной линии XGMII или 25GMII устройства DTE. Межпакетный интервал может уменьшаться в результате переменных задержек в сети и погрешности часов.

17При скорости 40, 100, 200, 400 Гбит/с интервал между двумя последовательными не конфликтующими пакетами (от последнего бита поля FCS первого пакета до начала преамбулы следующего пакета) может сокращаться до 80 BT на приёмной линии XLGMII, CGMII, 200GMII bkb 400GMII устройства DTE в результате погрешности часов и требований по выравниванию.

18При скорости 10 Гбит/с значение ipgStretchRatio = 104 адаптирует среднюю скорость данных подуровня MAC к скорости SONET/SDH STS-192 (с кадрами) для применения этого стандарта в сетях WAN.

Запись опубликована в рубрике Мир протоколов. Добавьте в закладки постоянную ссылку.

Добавить комментарий