这个例子展示了如何解码IEEE®802.11™MAC帧。
一般的MAC帧格式包括一个标题、肋骨和帧校验序列(FCS)。头包含的信息帧。肋骨有数据需要传输。发射机计算FCS在头和肋骨。接收方使用FCS确认正确接收头和肋骨。下面的图显示了一般MAC帧的结构。
帧的标准指定了四个类型:管理、数据、控制和扩展。有多个亚型的每一帧类型。这些都是确定的类型和子类型MAC帧控制字段的字段标题。
管理框架:
帧用于连接建立和维护。
这些帧携带的信息字段和元素表明设备的功能和配置操作在802.11网络。当建立连接时,这些信息字段和元素之间的沟通设备匹配功能的设备。
MAC层添加页眉和FCS的肋骨携带的信息形成一个MAC协议数据单元(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可以是一个数据,控制或管理框架式。wlanMPDUDecode
可用于MPDU解码。这个函数处理MPDU和物理层配置对象输出解码的MAC参数。
为了说明MPDU解码,创建一个有效的MPDU使用wlanMACFrame
。创建了MPDU传递到wlanMPDUDecode
函数和输出。
创建一个MPDU
QoS数据帧创建这个示例使用wlanMACFrame
。下面的输入必须形成一个Non-HT QoS数据帧格式包含一个40-octet载荷:
txFrameCfg
:一个MAC帧配置类型的对象wlanMACFrameConfig
。
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和输出以下信息:
rxFrameCfg
:一个MAC帧配置类型的对象wlanMACFrameConfig
,包含MAC解码参数。
rxMSDU
:细胞数组,其中每个元素是一个n除以2表示解码MSDU字符数组。返回多个MSDUs当MPDU包含一个聚合MSDU (A-MSDU)作为负载。
状态
:枚举类型状态,这表明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个八位字节
一个聚合多个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载荷:
txFrameCfg
:一个MAC帧配置类型的对象wlanMACFrameConfig
。
txMSDUList
:五元素包含负载单元阵列(MSDU)五MPDUs。自MSDUAggregation
设置为假的txFrameCfg
为每个MSDU,创建一个单独的MPDU。
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:
mpduList
:一个单元阵列包含从A-MPDU MPDUs提取的列表。
delimCRCFails
:一个逻辑行向量代表分隔符CRC相应指标的有效性mpduList
。一个值MPDU出现在真正的代表mpduList
在相应的指数可能不是正确提取。
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帧捕获的波形。
IEEE Std 802.11™-2016 IEEE标准信息技术——之间的通信和信息交换系统-本地和市区网络特定需求-第11部分:无线局域网介质访问控制(MAC)和物理层规范(体育)
IEEE P802.11ax™/ D4.1信息技术标准草案——电信和信息交换系统本地和市区网络-具体要求第11部分:无线局域网介质访问控制(MAC)和物理层(体育)规范-第六修正案:高效WLAN的增强