802,11 генерации кадра MAC

Этот пример показывает, как сгенерировать кадры IEEE® 802.11™ MAC.

Введение

Этот пример показывает, как кадры ВЛАНА МАКА, заданные в Разделе 9 из [1] и [2], могут быть сгенерированы и экспортированы в пакетное получение (PCAP) файл для анализа со сторонними пакетными аналитическими инструментами. В этом примере Wireshark [3] используется, чтобы проверить, что содержимое кадров МАКа как ожидалось.

Общий формат кадра MAC состоит из заголовка, тела кадра и последовательности проверки кадра (FCS). Заголовок содержит информацию о кадре. Тело кадра несет данные, которые должны быть переданы. Передатчик вычисляет FCS по заголовку и телу кадра. Получатель использует FCS, чтобы подтвердить, что заголовок и тело кадра правильно получены. Следующая схема показывает структуру общего кадра MAC.

Стандарт задает четыре типа кадров: управление, Данные, Управление и Расширение. Существует несколько подтипов каждого типа кадра. Они идентифицированы полями Type и Subtype поля управления кадром в заголовке MAC.

Кадры управления:

  • Кадры, которые используются для установления связи и обслуживания.

  • Эти кадры несут информационные поля и элементы, которые указывают на возможности и настройку устройства, действующего в 802,11 сетях. При установлении связи эти информационные поля и элементы передаются между устройствами, чтобы совпадать с возможностями обоих устройств.

  • Слой MAC добавляет заголовок и FCS к телу кадра, несущему информацию, чтобы сформировать Модуль данных о протоколе MAC (MPDU).

Кадры данных:

  • Кадры, которые используются, чтобы передать данные более высокого слоя.

  • Полезную нагрузку, данную слою MAC, называют Модулем эксплуатационных данных MAC (MSDU). Слой MAC добавляет заголовок и FCS к MSDU, чтобы сформировать Модуль данных о протоколе MAC (MPDU).

  • Улучшить пропускную способность, поддержки WLAN агрегированный MSDUs (A-MSDUs) и агрегировало MPDUs (A-MPDUs), как задано в Разделах 9.3.2.2, 9.7 из [1] и [2].

  • Если агрегация MSDU включена, несколько MSDUs агрегированы, чтобы сформировать A-MSDU, и затем заголовок MAC и FCS добавляются к A-MSDU, чтобы сформировать MPDU.

  • Если агрегация MPDU включена, несколько MPDUs агрегированы, чтобы сформировать A-MPDU.

Кадры управления:

  • Кадры, которые используются, чтобы поддержать доставку данных, управления и дополнительных кадров.

  • Каждый кадр управления имеет определенную функциональность. Например, управляйте кадрами как Request To Send (RTS) и ясно отправляемый (CTS) справка в резервировании канала, чтобы избежать столкновений, в то время как Ack структурирует справку в распознавании успешной передачи.

  • Кадры управления не содержат тело кадра. Слой MAC добавляет FCS в заголовок, чтобы сформировать MPDU.

Дополнительные кадры:

  • Этот тип кадра является расширением трех типов кадра, заданных выше.

  • Маяк DMG является единственным кадром, в настоящее время заданным под этим типом кадра в [1].

Можно использовать функцию wlanMACFrame, чтобы сгенерировать кадры MAC. Эта функция использует объект wlanMACFrameConfig настройки кадра MAC. Этот объект конфигурирует поля в заголовке MAC. Установите свойство FrameType на желаемое описание Подтипа в Таблице 9-1 [1] устанавливать соответствующие поля Type и Subtype в заголовке MAC. Функция wlanMACFrame поддерживает генерацию следующего MPDUs.

  • Кадры управления: маяк

  • Кадры данных: данные, пустой указатель, данные QoS, пустой указатель QoS

  • Кадры управления: RTS, CTS, Ack, блокирует Ack

В дополнение к вышеупомянутому MPDUs wlanMACFrame также поддерживает генерацию A-MPDUs, содержащего MPDUs типа QoS Data.

Управляйте генерацией кадра

Чтобы сгенерировать кадр RTS, создайте объект настройки кадра MAC с набором FrameType к 'RTS'.

rtsCfg = wlanMACFrameConfig('FrameType', 'RTS');
disp(rtsCfg);
  wlanMACFrameConfig with properties:

          FrameType: 'RTS'
    PowerManagement: 0
           MoreData: 0
           Duration: 0
           Address1: 'FFFFFFFFFFFF'
           Address2: '00123456789B'

Сконфигурируйте поля заголовка кадра.

% Duration
rtsCfg.Duration = 500;
% Receiver address
rtsCfg.Address1 = 'FCF8B0102001';
% Transmitter address
rtsCfg.Address2 = 'FCF8B0102002';

Сгенерируйте кадр RTS с помощью настройки.

rtsFrame = wlanMACFrame(rtsCfg);

Генерация кадра данных

Чтобы сгенерировать кадр Данных QoS, создайте объект настройки кадра MAC с набором FrameType к 'QoS Data'.

qosDataCfg = wlanMACFrameConfig('FrameType', 'QoS Data');
disp(qosDataCfg);
  wlanMACFrameConfig with properties:

          FrameType: 'QoS Data'
        FrameFormat: 'Non-HT'
               ToDS: 0
             FromDS: 1
     Retransmission: 0
    PowerManagement: 0
           MoreData: 0
           Duration: 0
           Address1: 'FFFFFFFFFFFF'
           Address2: '00123456789B'
           Address3: '00123456789B'
     SequenceNumber: 0
                TID: 0
          AckPolicy: 'No Ack'
    MSDUAggregation: 0

Сконфигурируйте поля заголовка кадра.

% From DS flag
qosDataCfg.FromDS = 1;
% To DS flag
qosDataCfg.ToDS = 0;
% Acknowledgment Policy
qosDataCfg.AckPolicy = 'Normal Ack';
% Receiver address
qosDataCfg.Address1 = 'FCF8B0102001';
% Transmitter address
qosDataCfg.Address2 = 'FCF8B0102002';

Кадр Данных QoS используется, чтобы передать полезную нагрузку от более высокого слоя. 20-байтовая полезная нагрузка, содержащая повторяющуюся последовательность шестнадцатеричного значения '11', используется в этом примере.

payload = repmat('11', 1, 20);

Сгенерируйте кадр Данных QoS с помощью полезной нагрузки и настройки.

qosDataFrame = wlanMACFrame(payload, qosDataCfg);

Кадр вывода MAC является MPDU с одним MSDU. Обратитесь к Генерации Формы волны 802.11ac в качестве примера с Кадрами MAC для A-MSDU и генерации A-MPDU.

Генерация кадра управления

Чтобы сгенерировать Кадр "неисправность", создайте объект настройки кадра MAC с набором FrameType к 'Beacon'.

beaconCfg = wlanMACFrameConfig('FrameType', 'Beacon');
disp(beaconCfg);
  wlanMACFrameConfig with properties:

           FrameType: 'Beacon'
                ToDS: 0
              FromDS: 1
      Retransmission: 0
     PowerManagement: 0
            MoreData: 0
            Duration: 0
            Address1: 'FFFFFFFFFFFF'
            Address2: '00123456789B'
            Address3: '00123456789B'
      SequenceNumber: 0
    ManagementConfig: [1x1 wlanMACManagementConfig]

Тело кадра "неисправность" состоит из информационных полей и информационный элементов, как объяснено в Разделе 9.3.3.3 из [1]. Можно сконфигурировать эти информационные поля и элементы с помощью wlanMACManagementConfig.

% Create a management frame-body configuration object
frameBodyCfg = wlanMACManagementConfig;
disp(frameBodyCfg);
  wlanMACManagementConfig with properties:

                   FrameType: 'Beacon'
                   Timestamp: 0
              BeaconInterval: 100
               ESSCapability: 1
              IBSSCapability: 0
                     Privacy: 0
               ShortPreamble: 0
          SpectrumManagement: 0
                  QoSSupport: 1
           ShortSlotTimeUsed: 0
                 APSDSupport: 0
            RadioMeasurement: 0
      DelayedBlockAckSupport: 0
    ImmediateBlockAckSupport: 0
                        SSID: 'default SSID'
                  BasicRates: {'6 Mbps'  '12 Mbps'  '24 Mbps'}
             AdditionalRates: {}

   Read-only properties:
         InformationElements: {511x2 cell}

Сконфигурируйте информационные поля и элементы в настройке тела кадра. Можно добавить информационный элементы с помощью метода addIE(elementID, information) как показано ниже. Отошлите Раздел 9.4 в [1] для списка информационных полей и информационный элементов.

% Beacon Interval
frameBodyCfg.BeaconInterval = 100;
% Timestamp
frameBodyCfg.Timestamp = 123456;
% SSID
frameBodyCfg.SSID = 'TEST_BEACON';
% Add DS Parameter IE (element ID - 3) with channel number 11 (0x0b)
frameBodyCfg = frameBodyCfg.addIE(3, '0b');

Присвойте обновленный объект настройки тела кадра свойству ManagementConfig в настройке кадра MAC.

% Update management frame-body configuration
beaconCfg.ManagementConfig = frameBodyCfg;

Сгенерируйте Кадр "неисправность" с обновленной настройкой кадра.

% Generate beacon frame
beaconFrame = wlanMACFrame(beaconCfg);

Экспорт в файл PCAP

Сгенерированные кадры экспортируются в файл PCAP, который может анализироваться и визуализироваться со сторонним пакетом анализатор, такой как Wireshark. Функция помощника helperWLANExportToPCAP генерирует файл PCAP, содержащий кадры ВЛАНА МАКА.

% Export the generated MAC frames to a PCAP file
helperWLANExportToPCAP({rtsFrame, qosDataFrame, beaconFrame}, 'macFrames.pcap');

Визуализация сгенерированных кадров MAC

Можно открыть файлы PCAP, содержащие сгенерированные кадры MAC в пакете анализатор. Кадры, декодируемые Wireshark, совпадают со стандартными совместимыми кадрами MAC, сгенерированными с помощью WLAN Toolbox. Полученный анализ кадров в Wireshark показывают ниже.

  • Кадр RTS

  • Кадр Данных QoS

  • Кадр "неисправность"

Заключение и дальнейшее исследование

Этот пример продемонстрировал генерацию кадров MAC для стандарта IEEE 802.11. Можно использовать пакет анализатор, чтобы просмотреть сгенерированные кадры MAC. Также сгенерированные кадры MAC могут использоваться, чтобы передать по воздуху, как продемонстрировано в примерах 802.11 Генерации Кадра "неисправность" OFDM и Генерацию Формы волны 802.11ac с Кадрами MAC.

Приложение

Этот пример использует следующую функцию помощника:

Выбранная библиография

  1. Станд. IEEE 802.11™-2016 Стандарт IEEE для Информационных технологий - Телекоммуникаций и обмена информацией между системами - Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Спецификации

  2. Черновой Стандарт IEEE P802.11ax™/D3.1 для Информационных технологий - Телекоммуникаций и обмена информацией между системными Локальными сетями и городскими компьютерными сетями - Часть 11 Конкретных требований: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Спецификации - Поправка 6: Улучшения для Высокой эффективности WLAN

  3. Программное обеспечение Wireshark: https://www.wireshark.org/