802.11 MAC帧生成
这个例子展示了如何生成IEEE®802.11™MAC帧。
简介
此示例显示如何生成WLAN MAC帧,在第9节中指定[1]而且[2],并将这些帧导出为PCAP (packet capture)文件,以便第三方报文分析工具进行分析。
一般的MAC帧格式由报头、帧体和帧检查序列(FCS)组成。报头包含关于帧的信息。帧体承载着需要传输的数据。发射机计算报头和帧体上的FCS。接收端使用FCS确认报头和帧体是否正确形成。这张图显示了一个通用MAC帧的结构。
有关更多信息,请参见WLAN MAC帧结构的话题。
您可以使用wlanMACFrame
函数来生成MAC帧。这个函数接受一个MAC帧配置对象wlanMACFrameConfig
作为输入。该节点用于配置MAC头中的字段。设置FrameType
属性。子类型描述的表9-1[1]设置适当的类型而且子类型MAC报头中的字段。的wlanMACFrame
函数支持这些mpd金宝appu的生成。
管理框架:灯塔
数据帧:数据,Null, QoS数据,QoS Null
控制帧:RTS, CTS, Ack, Block Ack
除了这些mpdu,wlanMACFrame
还支持生成金宝app包含类型mpdu的a - mpduQoS数据
.
控制框生成
属性创建一个MAC帧配置对象以生成RTS帧FrameType
设置为“即时战略”
.
rtsCfg = wlanMACFrameConfig(“FrameType”,“即时战略”);disp (rtsCfg);
wlanMACFrameConfig with properties: FrameType: 'RTS' PowerManagement: 0 MoreData: 0 Duration: 0 Address1: 'FFFFFFFFFFFF' Address2: '00123456789B' Read-only属性:解码:0
配置帧报头字段。
%的持续时间rtsCfg。持续时间= 500;接收地址rtsCfg。Address1 =“FCF8B0102001”;发射机地址rtsCfg。Address2 =“FCF8B0102002”;
使用配置生成RTS帧。
为RTS帧生成字节rtsFrame = wlanMACFrame(rtsCfg);
缺省情况下,输出wlanMACFrame
是十六进制八进制序列。如果要将MAC帧生成为位序列,请设置OutputFormat
参数位
.
为RTS帧生成比特rtsFrameBits = wlanMACFrame(rtsCfg,“OutputFormat”,“位”);
数据帧生成
创建MAC帧配置对象,生成QoS数据帧FrameType
设置为“QoS数据”
.
qosDataCfg = wlanMACFrameConfig(“FrameType”,“QoS数据”);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 EOSP: 0 IsMeshFrame: 0 Read-only properties: Decoded: 0
配置帧报头字段。
%来自DS标志qosDataCfg。FromDS = 1;%到DS标志qosDataCfg。ToDS = 0;%确认策略qosDataCfg。AckPolicy =“正常的消;接收地址qosDataCfg。Address1 =“FCF8B0102001”;发射机地址qosDataCfg。Address2 =“FCF8B0102002”;
QoS数据帧用于传输来自上层的有效载荷。本例中使用了一个20字节的有效负载,其中包含一个十六进制值'11'的重复序列。
有效载荷= repmat(“11”, 1, 20);
使用有效负载和配置生成QoS数据帧。
为QoS数据帧生成字节qosDataFrame = wlanMACFrame(有效载荷,qosDataCfg);
缺省情况下,输出wlanMACFrame
是十六进制八进制序列。如果要将MAC帧生成为位序列,请设置OutputFormat
参数位
.
为QoS数据帧生成比特qosDataFrameBits = wlanMACFrame(有效载荷,qosDataCfg,“OutputFormat”,“位”);
输出MAC帧是一个带有单个MSDU的MPDU。有关A-MSDU和A-MPDU生成的更多信息,请参见802.11ac波形生成与MAC帧.
管理框架生成
属性创建MAC帧配置对象,以生成信标帧FrameType
设置为“灯塔”
.
beaconCfg = wlanMACFrameConfig(“FrameType”,“灯塔”);disp (beaconCfg);
wlanMACFrameConfig with properties: FrameType: 'Beacon' ToDS: 0 FromDS: 1 Retransmission: 0 PowerManagement: 0 MoreData: 0 Duration: 0 Address1: ' ffffffffff ' Address2: '00123456789B' Address3: '00123456789B' SequenceNumber: 0 ManagementConfig: [1x1 wlanMACManagementConfig] Read-only properties: Decoded: 0
信标帧体由信息字段和信息元素组成,如9.3.3.2节所述[1].您可以使用命令配置这些信息字段和元素wlanMACManagementConfig
.
创建管理框体配置对象frameBodyCfg = wlanMACManagementConfig;disp (frameBodyCfg);
wlanMACManagementConfig with properties: FrameType: 'Beacon' Timestamp: 0 BeaconInterval: 100 ESSCapability: 1 IBSSCapability: 0 Privacy: 0 ShortPreamble: 0 SpectrumManagement: 0 QoS金宝appSupport: 1 ShortSlotTimeUsed: 0 APSDSupport: 0 radiommeasurement: 0 DelayedBlockAckSupport: 0 ImmediateBlockAckSupport: 0 SSID: 'default SSID' BasicRates: {'6 Mbps' '12 Mbps' '24 Mbps'} AdditionalRates:{}只读属性:InformationElements: {511x2 cell}
配置框体配置中的信息字段和元素。可以使用添加信息元素艾迪(elementID信息)
方法,如下所示。第9.4条[1]列出信息字段和信息元素。
%信标间隔frameBodyCfg。灯塔Interval = 100;%的时间戳frameBodyCfg。时间戳= 123456;%名称frameBodyCfg。名称=“TEST_BEACON”;添加DS参数IE(元素ID - 3)通道号为11 (0x0b)frameBodyCfg = frameBodyCfg. addie (3,“0 b”);
将更新后的框架主体配置对象分配给ManagementConfig
属性在MAC帧配置。
更新管理框体配置beaconCfg。ManagementConfig = frameBodyCfg;
使用更新的帧配置生成信标帧。
为信标帧生成字节beaconFrame = wlanMACFrame(beaconCfg);
缺省情况下,输出wlanMACFrame
是十六进制八进制序列。如果要将MAC帧生成为位序列,请设置OutputFormat
参数位
.
为信标帧生成比特beaconFrameBits = wlanMACFrame(beaconCfg,“OutputFormat”,“位”);
导出WLAN MAC帧到PCAP或PCAPNG文件
PCAP (packet capture next generation)或PCAPNG (packet capture next generation)文件。Pcap或.pcapng,分别)是一种广泛使用的数据包捕获文件格式,用于执行数据包分析。
为了捕获数据包的特征,可以将生成的MAC帧导出到PCAP或PCAPNG文件wlanPCAPWriter
对象。您可以使用第三方包分析工具(如Wireshark)对PCAP或PCAPNG文件进行可视化和分析。
指定PCAP文件的名称和扩展名。将MAC帧导出到PCAPNG文件,将文件扩展名设置为“PCAPNG”。
文件名=“macFrames”;fileExtension =“pcap”;
的文件文件名
名称在当前目录中已存在,请删除现有文件。
如果isfile (strcat(文件名,“。”删除(strcat(文件名,“。”fileExtension));结束
以POSIX®微秒为单位设置数据包到达时间。
时间戳= 124800;
创建具有指定文件名称和扩展名的WLAN PCAP文件写入器对象wlanPCAPWriter
对象。
pcap = wlanPCAPWriter(“文件名”文件名,“FileExtension”, fileExtension);
指定导出到PCAP文件的MAC帧。
frames = {rtsFrame, qosDataFrame, beaconFrame};
将MAC帧写入PCAP文件。
为Idx = 1:数字(帧)写入(pcap,帧{Idx},时间戳);结束
删除PCAP文件写入器对象。
删除(pcap);
生成的MAC帧的可视化
您可以在包分析器中打开包含生成MAC帧的PCAP文件。Wireshark解码的MAC帧与“WLAN工具箱”生成的符合标准的MAC帧相匹配。该图显示了Wireshark对捕获MAC帧的分析。
RTS框架
数据帧
信标帧
结论及进一步探索
这个例子展示了如何为IEEE 802.11标准生成MAC帧。您可以使用包分析器来查看生成的MAC帧。要通过空中传输生成的MAC帧,请参见802.11 OFDM信标帧生成而且802.11ac波形生成与MAC帧.
参考文献
[1] IEEE Std 802.11™-2020 (IEEE Std 802.11-2016修订版)。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范信息技术IEEE标准。系统间的电信和信息交换。局域网和城域网。特殊要求。
[2] IEEE Std 802.11ax™-2021 (IEEE Std 802.11-2020修正案)。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。修改1:增强高效WLAN。”IEEE信息技术标准。系统间的电信和信息交换局域网和城域网。特殊要求
[3] Wireshark·Go Deep。https://www.wireshark.org/.2020年6月30日
[4]组,Tcpdump。Tcpdump/Libpcap公共存储库。https://www.tcpdump.org.2020年6月30日