В этом примере показано, как сгенерировать кадры IEEE ® 802.11™ MAC.
Этот пример показывает, как Системы Координат WLAN, указанные в Разделе 9 [1] и [2], могут быть сгенерированы и экспортированы в файл захвата пакетов (PCAP) для анализа с помощью сторонних инструментов анализа пакетов. В этом примере Wireshark [3] используется, чтобы проверить, как ожидалось, содержимое MAC-кадров.
Общий формат MAC- системы координат состоит из заголовка, тела фрейма и системы координат последовательности проверки (FCS). Заголовок содержит информацию о системе координат. Тело фрейма содержит данные, которые нужно передать. Передатчик вычисляет FCS по заголовку и телу фрейма. Приемник использует FCS, чтобы подтвердить, что заголовок и тело фрейма получены правильно. Следующая схема показывает структуру типового MAC- системы координат.
Стандарт задает четыре типа систем координат: Management, Data, Control и Extension. Существует несколько подтипов каждого типа системы координат. Они идентифицируются полями Type и Subtype поля управления системой координат в заголовке MAC.
Системы координат управления:
Системы координат, которые используются для установления и обслуживания соединения.
Эти системы координат несут информационные поля и элементы, которые указывают на возможности и строение устройства, работающего в сети 802.11. При установлении соединения эти информационные поля и элементы передаются между устройствами, чтобы соответствовать возможностям обоих устройств.
Слой MAC добавляет заголовок и FCS к телу фрейма, несущему информацию, для формирования модуля данных протокола MAC (MPDU).
Системы координат данных:
Системы координат, которые используются для передачи данных более высокого уровня.
Полезная нагрузка, предоставляемая слою MAC, называется модулем данных MAC-услуг (MSDU). Слой добавляет заголовок и FCS к MSDU, чтобы сформировать модуль данных протокола MAC (MPDU).
Для повышения пропускной способности WLAN поддерживает агрегированные MSDU (A-MSDU) и агрегированные MPDU (A-MPDU), как указано в разделах 9.3.2.2, 9.7 [1] и [2].
Если агрегирование MSDU включено, несколько MSDU агрегируются для формирования A-MSDU, а затем заголовок MAC и FCS добавляются к A-MSDU для формирования MPDU.
Если агрегирование MPDU включено, то несколько MPDU агрегируются для формирования A-MPDU.
Системы систем координат:
Системы координат, которые используются для поддержки доставки данных, управления и систем координат.
Каждая система координат управления имеет определенную функциональность. Для примера управляйте системами координат, такой как Request To Send (RTS) и clear-to-send (CTS), помогают в резервировании канала, чтобы избежать конфликтов, в то время как Ack систем координат помочь в распознавании успешной передачи.
Системы координат расширения:
Этот тип системы координат является расширением трех типов системы координат, определенных выше.
DMG-маяк является единственной системой координат, заданным для этого типа системы координат в [1].
Можно использовать wlanMACFrame
функция для генерации MAC- систем координат. Эта функция принимает объект MAC системы координат строения wlanMACFrameConfig
как вход. Этот объект конфигурирует поля в заголовке MAC. Установите FrameType
свойство требуемому описанию подтипа в таблице 9-1 [1] для установки соответствующих полей Type и Subtype в заголовке MAC. The wlanMACFrame
функция поддерживает генерацию следующих MPDU.
Системы координат управления: маяк
Системы координат данных: Data, Null, QoS Data, QoS Null
Системы координат управления: RTS, CTS, Ack, Block Ack
В дополнение к вышеуказанным MPDU, wlanMACFrame
также поддерживает генерацию A-MPDU, содержащих MPDU типа 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' Read-only properties: Decoded: 0
Сконфигурируйте поля заголовка системы координат.
% Duration rtsCfg.Duration = 500; % Receiver address rtsCfg.Address1 = 'FCF8B0102001'; % Transmitter address rtsCfg.Address2 = 'FCF8B0102002';
Сгенерируйте систему координат RTS с помощью строения.
% Generate octets for an RTS frame
rtsFrame = wlanMACFrame(rtsCfg);
По умолчанию выходы wlanMACFrame
является последовательностью шестнадцатеричных октетов. Если вы хотите сгенерировать MAC- системы координат как последовательность бит, установите OutputFormat
параметр в bits
.
% Generate bits for an RTS frame rtsFrameBits = wlanMACFrame(rtsCfg, 'OutputFormat', 'bits');
Чтобы сгенерировать систему координат данных 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 Read-only properties: Decoded: 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 с помощью полезной нагрузки и строения.
% Generate octets for a QoS Data frame
qosDataFrame = wlanMACFrame(payload, qosDataCfg);
По умолчанию выходы wlanMACFrame
является последовательностью шестнадцатеричных октетов. Если вы хотите сгенерировать MAC- системы координат как последовательность бит, установите OutputFormat
параметр в bits
.
% Generate bits for a QoS Data frame qosDataFrameBits = wlanMACFrame(payload, qosDataCfg, 'OutputFormat', 'bits');
Выход 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] Read-only properties: Decoded: 0
Тело кадра-маяка состоит из информационных полей и информационных элементов, как пояснено в разделе 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 octets for a Beacon frame
beaconFrame = wlanMACFrame(beaconCfg);
По умолчанию выходы wlanMACFrame
является последовательностью шестнадцатеричных октетов. Если вы хотите сгенерировать MAC- системы координат как последовательность бит, установите OutputFormat
параметр в bits
.
% Generate bits for a Beacon frame beaconFrameBits = wlanMACFrame(beaconCfg, 'OutputFormat', 'bits');
Этот пример использует pcapWriter
объект для экспорта сгенерированного MAC- систем координат в файл с расширением.pcap. Чтобы проанализировать и визуализировать этот файл, используйте сторонний анализатор пакетов, такой как Wireshark. Чтобы экспортировать сгенерированный MAC- систем координат в файл с расширением.pcapng, используйте pcapngWriter
объект.
Создайте объект типа pcapWriter
и укажите имя файла захвата пакетов. Константы wlanLinkType
и timestamp
задает тип заголовка канального слоя [4] и время захвата системы координат WLAN, соответственно. В этом примере время захвата одинаково для всех систем координат. Перед записью пакетов в файл с расширением .pcap или .pcapng используйте writeGlobalHeader
функция для записи глобального заголовка в файл.
timestamp = 124800; % Timestamp (in microseconds) wlanLinkType = 105; % Link-layer header type fileName = 'macFrames'; % Delete if a file with the same name already exists in the current % directory if isfile([fileName, '.pcap']) delete([fileName, '.pcap']); end pcap = pcapWriter('FileName', 'macFrames'); writeGlobalHeader(pcap, wlanLinkType); % Global header in pcap file
Используйте write
функция для записи всех MAC- систем координат в файл PCAP
% MAC frames to be exported to a PCAP file frames = {rtsFrame, qosDataFrame, beaconFrame}; % Write all the packets to the PCAP file for idx = 1:numel(frames) write(pcap, frames{idx}, timestamp); end % Clear the object clear pcap;
Можно открыть файлы PCAP, содержащие сгенерированные MAC- систем координат, в анализаторе пакетов. Системы координат, декодированная Wireshark, соответствуют стандартной MAC- систем координат, сгенерированной с помощью WLAN Toolbox. Этот рисунок показывает анализ захваченных MAC- систем координат в Wireshark.
RTS- системы координат
Данные QoS системы координат
Система координат
Этот пример продемонстрировал генерацию MAC- систем координат для стандарта IEEE 802.11. Можно использовать анализатор пакетов, чтобы просмотреть сгенерированные MAC- систем координат. Для передачи сгенерированного MAC- систем координат по воздуху смотрите 802.11 OFDM-маяк Системы координат Генерации и 802.11ac Генерация сигналов с примерами MAC- Систем координат.
Стандарт IEEE Std 802.11™-2016 IEEE на информационные технологии - Связь и обмен информацией между системами - Локальные и столичные сети - Особые требования - Часть 11: Беспроводное управление доступом к среде локальной сети (MAC) и физический слой (PHY) Спецификации
IEEE P802.11ax™/D4.1 Проект стандарта на информационные технологии - Телекоммуникации и обмен информацией между системами Локальные и столичные сети - Особые требования Часть 11: Спецификации управления доступом к среднему (MAC) и физическому слою (PHY) беспроводной ЛВС - Поправка 6: Усовершенствования для высокоэффективной WLAN
Wireshark· Go Deep. https://www.wireshark.org/. Доступ к 30 июня 2020
Группа, The Tcpdump. Открытый репозиторий Tcpdump/Libpcap. https://www.tcpdump.org. Доступ к 30 июня 2020