主要内容

802.11 MAC帧解码

这个例子展示了如何解码IEEE®802.11™MAC帧。

背景

一般的MAC帧格式包括一个标题、肋骨和帧校验序列(FCS)。头包含的信息帧。肋骨有数据需要传输。发射机计算FCS在头和肋骨。接收方使用FCS确认正确接收头和肋骨。下面的图显示了一般MAC帧的结构。

帧的标准指定了四个类型:管理、数据、控制和扩展。有多个亚型的每一帧类型。这些都是确定的类型子类型MAC帧控制字段的字段标题。

管理框架:

  • 帧用于连接建立和维护。

  • 这些帧携带的信息字段和元素表明设备的功能和配置操作在802.11网络。当建立连接时,这些信息字段和元素之间的沟通设备匹配功能的设备。

  • MAC层添加页眉和FCS的肋骨携带的信息形成一个MAC协议数据单元(MPDU)。

数据帧:

  • 用于传输更高级别的数据帧。

  • 有效负载的MAC层称为MAC服务数据单元(MSDU)。MAC层形成一个添加标题和FCS MSDU MPDU。

  • 提高吞吐量,WLAN支持聚合MSDUs (A-MSDUs)和聚合金宝appMPDUs (A-MPDUs)中指定的部分9.3.2.2,9.7的1]和[2]。

  • 如果启用了MSDU聚合,聚合形成多个MSDUs A-MSDU然后MAC头和FCS被添加到一个MPDU A-MSDU形成。

  • 如果启用了MPDU聚合,聚合形成多个MPDUs A-MPDU。

控制帧:

  • 帧,用于支持交付的数据,管理和扩展框架。金宝app

  • 每个控件框架都有一个特定的功能。例如,控制帧像请求发送(RTS)和清除发送(CTS)帮助保留通道,以避免碰撞,而Ack框架帮助识别成功的传播。

扩展帧:

  • 这个框架式上面定义的三种框架类型的扩展。

  • DMG灯塔是目前唯一的框架指定在这个框架式(1]。

介绍

这个例子展示了无线局域网MAC帧(第9.3节规定的1]或[2可以解码)。它还表明,聚合MAC帧(第9.7节规定的1]或[2可以deaggregated]。

WLAN工具箱™支持以下MP金宝appDU解码MAC帧:

  • 管理框架:灯塔

  • 数据帧:数据、零QoS数据,QoS Null

  • 控制帧:RTS, CTS, Ack,阻止Ack

除了MPDU解码,WLAN工具箱还支持deaggregation A-MPDU。金宝app

MPDU解码

了MPDU可以是一个数据,控制或管理框架式。wlanMPDUDecode可用于MPDU解码。这个函数处理MPDU和物理层配置对象输出解码的MAC参数。

为了说明MPDU解码,创建一个有效的MPDU使用wlanMACFrame。创建了MPDU传递到wlanMPDUDecode函数和输出。

创建一个MPDU

QoS数据帧创建这个示例使用wlanMACFrame。下面的输入必须形成一个Non-HT QoS数据帧格式包含一个40-octet载荷:

  1. txFrameCfg:一个MAC帧配置类型的对象wlanMACFrameConfig

  2. txMSDU:40-octet载荷(MSDU)包含在QoS数据帧。

%创建一个MAC帧配置对象txFrameCfg = wlanMACFrameConfig (“FrameType”,“QoS数据”,“FrameFormat”,“Non-HT”);% 40-octet载荷为每个的QoS数据帧txMSDU =兰迪([0,255),40岁,1);%物理层配置phyCfg = wlanNonHTConfig;%创建MPDUmpdu = wlanMACFrame (txMSDU txFrameCfg);

解码MPDU

wlanMPDUDecode消耗了MPDU、PHY配置类型的对象wlanNonHTConfig,wlanHTConfig,wlanVHTConfig,或wlanHESUConfig和可选一双(名称、值)DataFormat指定MPDU的输入格式。自从MPDU使用生成的wlanMACFrame是八位字节,DataFormat被设置为八位字节wlanMPDUDecode解码MPDU和输出以下信息:

  1. rxFrameCfg:一个MAC帧配置类型的对象wlanMACFrameConfig,包含MAC解码参数。

  2. rxMSDU:细胞数组,其中每个元素是一个n除以2表示解码MSDU字符数组。返回多个MSDUs当MPDU包含一个聚合MSDU (A-MSDU)作为负载。

  3. 状态:枚举类型状态,这表明MPDU解码是否成功。

% MPDU解码。(rxFrameCfg、rxMSDU、状态)= wlanMPDUDecode (mpdu phyCfg,“DataFormat”,“八位位组”);%检查如果MPDU成功解码disp ([MPDU解码的状态:“char(状态)])%观察输出,如果MPDU成功解码如果比较字符串(状态,“成功”)disp ([类型的解码MPDU:“rxFrameCfg.FrameType]) disp ([“MPDU MSDUs数量:”num2str(元素个数(rxMSDU))))i = 1:元素个数(rxMSDU) disp ([“MSDU大小- - -”num2str(我)“:”num2str(大小(rxMSDU {}, 1))“八位位组”])结束结束
MPDU解码状态:成功解码MPDU类型:QoS数据MPDU MSDUs数量:1 MSDU-1大小:40个八位字节

A-MPDU Deaggregation

一个聚合多个MPDUs A-MPDU。类型的MPDUs A-MPDU限制指定[9.7.3节1]。

wlanAMPDUDeaggregate可用于deaggregate A-MPDU。这个函数给定A-MPDU流程和相应的物理层配置对象输出deaggregated MPDUs列表。wlanAMPDUDeaggregate能够解码HT(高通量),VHT(高吞吐量),HE-SU(高效单用户)和HE-EXT-SU(高效增程单用户)格式A-MPDUs规定(1]和[2]。

为了说明A-MPDU deaggregation,创建一个包含五个MPDUs有效A-MPDU使用wlanMACFrame。创建的A-MPDU传递给wlanAMPDUDeaggregate函数和输出。

创建一个A-MPDU

下面的输入必须形成一个HE-SU格式A-MPDU包含五个MPDUs (QoS数据帧),每个包含40-octet MPDU载荷:

  1. txFrameCfg:一个MAC帧配置类型的对象wlanMACFrameConfig

  2. txMSDUList:五元素包含负载单元阵列(MSDU)五MPDUs。自MSDUAggregation设置为假的txFrameCfg为每个MSDU,创建一个单独的MPDU。

  3. phyCfg:物理层配置类型的对象wlanHESUConfig

%创建一个MAC帧配置对象txFrameCfg = wlanMACFrameConfig (“FrameType”,“QoS数据”,“FrameFormat”,“HE-SU”,“MPDUAggregation”,真的,“MSDUAggregation”、假);% 40-octet载荷为每个的QoS数据帧txMSDUList = repmat({兰迪([0,255]40 1)},1、5);%物理层配置phyCfg = wlanHESUConfig (“主持人”3);%创建包含5 MPDUs A-MPDUampdu = wlanMACFrame (txMSDUList txFrameCfg phyCfg);

Deaggregate A-MPDU的

wlanAMPDUDeaggregate消耗A-MPDU、PHY配置类型的对象wlanHTConfig,wlanVHTConfig,或wlanHESUConfig和可选一双(名称、值)DataFormat指定A-MPDU的输入格式。它发现并验证了MPDU分隔符,提取MPDUs和输出以下信息,可用于进一步处理MPDUs:

  1. mpduList:一个单元阵列包含从A-MPDU MPDUs提取的列表。

  2. delimCRCFails:一个逻辑行向量代表分隔符CRC相应指标的有效性mpduList。一个值MPDU出现在真正的代表mpduList在相应的指数可能不是正确提取。

  3. ampduStatus:枚举类型状态,这表明是否A-MPDU deaggregation是成功的。

% Deaggregate A-MPDU[mpduList, delimCRCFails ampduStatus] = wlanAMPDUDeaggregate (ampdu phyCfg,“DataFormat”,“八位位组”);%观察输出disp ([的地位A-MPDU deaggregation:“char (ampduStatus)]) disp ([“A-MPDU MPDUs提取的数量:num2str(元素个数(mpduList))) disp ([的分隔符的MPDUs CRC失败:num2str (nnz (delimCRCFails))))
地位A-MPDU deaggregation:成功A-MPDU MPDUs提取的数量:5的MPDUs分隔符CRC失败:0

解码MPDUs列表

mpduList包含从A-MPDU MPDUs提取的列表。列表中的每个在场的MPDUs可以分别解码。然而,如果delimCRCFails包含任何真正的值,MPDU礼物mpduList在相应的指数可以被认为是无效的,因为它可能不是正确提取的分隔符CRC失败。

%解码MPDUs列表如果比较字符串(ampduStatus“成功”)%的MPDUs数量列表numMPDUs =元素个数(mpduList);我= 1:numMPDUs% CRC解码MPDU只有相应的分隔符是有效的如果~ delimCRCFails(我)[rxFrameCfg、rxMSDU mpduStatus] = wlanMPDUDecode (mpduList {}, phyCfg,“DataFormat”,“八位位组”);disp ([“MPDU -”num2str(我)的解码状态:char (mpduStatus)]) disp ([“MPDU -”num2str(我)的类型:rxFrameCfg.FrameType]) disp ([“MPDU -”num2str(我)的有效载荷大小:num2str(大小(rxMSDU {1}, 1))“八位位组”])disp (' ')结束结束结束
MPDU-1解码状态:成功MPDU-1类型:QoS数据MPDU-1载荷大小:40个八位字节MPDU-2解码状态:成功MPDU-2类型:QoS数据MPDU-2载荷大小:40个八位字节MPDU-3解码状态:成功MPDU-3类型:QoS数据MPDU-3载荷大小:40个八位字节MPDU-4解码状态:成功MPDU-4类型:QoS数据MPDU-4载荷大小:40个八位字节MPDU-5解码状态:成功MPDU-5类型:QoS数据MPDU-5载荷大小:40个八位字节

结论和进一步勘探

这个例子演示了如何deaggregate和解码IEEE 802.11 MAC帧。你也可以探索802.11 OFDM信标接收机捕获数据恢复过程的802.11 ac分组检索示例解码MAC帧捕获的波形。

选定的参考书目

  1. IEEE Std 802.11™-2016 IEEE标准信息技术——之间的通信和信息交换系统-本地和市区网络特定需求-第11部分:无线局域网介质访问控制(MAC)和物理层规范(体育)

  2. IEEE P802.11ax™/ D4.1信息技术标准草案——电信和信息交换系统本地和市区网络-具体要求第11部分:无线局域网介质访问控制(MAC)和物理层(体育)规范-第六修正案:高效WLAN的增强