这个例子展示了如何生成IEEE®802.11™MAC帧。
这个例子显示了WLAN MAC帧是如何在[1]和[2可以生成PCAP (packet capture)文件,由第三方包分析工具进行分析。在这个例子中,Wireshark [3.用来验证MAC帧的内容是否符合预期。
一般MAC帧格式由报头、帧体和帧检查序列(FCS)组成。报头保存着帧的信息。帧体携带需要传输的数据。发射机通过报头和帧体计算FCS。接收器使用FCS来确认报头和帧体被正确接收。下图显示了通用MAC帧的结构。
该标准指定了四种类型的帧:管理帧、数据帧、控制帧和扩展帧。每个帧类型有多个子类型。这些是由类型和子类型MAC报头中的帧控制字段。
管理框架:
用于连接建立和维护的框架。
这些帧携带信息字段和元素,指示802.11网络中运行的设备的能力和配置。在建立连接时,这些信息字段和元素在设备之间进行通信,以匹配两个设备的功能。
MAC层将报头和FCS添加到承载信息的帧体中,形成一个MAC协议数据单元(MPDU)。
数据帧:
控制帧:
用于支持数据传输、管理和扩展的帧。金宝app
每个控制帧都有特定的功能。例如,像请求发送(RTS)和清除发送(CTS)这样的控制帧有助于保留通道以避免冲突,而Ack帧有助于识别成功的传输。
扩展帧:
这个帧类型是对上面定义的三种帧类型的扩展。
DMG信标是目前在[1].
你可以使用wlanMACFrame
函数生成MAC帧。这个函数接受一个MAC帧配置对象wlanMACFrameConfig
作为输入。该节点用于配置MAC头中的字段。设置FrameType
属性为所需的子类型描述的表9-1。1设置适当的类型和子类型字段在MAC报头中。的wlanMACFrame
功能支持生成以下m金宝apppdu。
管理框架:灯塔
数据帧:Data, Null, QoS Data, QoS Null
控制帧:RTS, CTS, Ack, Block Ack
除上述MPDUs外,wlanMACFrame
还支持生成金宝app包含类型mpdu的a - mpduQoS数据
.
控件创建一个MAC帧配置对象来生成一个RTS帧FrameType
设置为“即时战略”
.
rtsCfg = wlanMACFrameConfig (“FrameType”,“即时战略”);disp (rtsCfg);
wlanMACFrameConfig属性:FrameType: 'RTS' PowerManagement: 0 MoreData: 0 Duration: 0 Address1: 'FFFFFFFFFFFF' Address2: '00123456789B' Read-only属性:Decoded: 0
配置帧报头字段。
%的持续时间rtsCfg。时间= 500;%接收地址rtsCfg。Address1 =“FCF8B0102001”;%发射机地址rtsCfg。Address2 =“FCF8B0102002”;
使用配置生成RTS帧。
%生成一个RTS帧的字节rtsFrame = wlanMACFrame (rtsCfg);
缺省情况下,输出wlanMACFrame
是一个十六进制的八位元序列。如果你想生成一个比特序列的MAC帧,设置OutputFormat
参数位
.
%生成一个RTS帧的位rtsFrameBits = wlanMACFrame (rtsCfg,“OutputFormat”,“位”);
要生成QoS数据帧,需要使用FrameType
设置为“QoS数据”
.
qosDataCfg = wlanMACFrameConfig (“FrameType”,“QoS数据”);disp (qosDataCfg);
wlanMACFrameConfig属性:FrameType:“QoS数据”FrameFormat:“Non-HT”托德:0 FromDS: 1重传:0电源管理:0 MoreData: 0时间:0 Address1:“FFFFFFFFFFFF”Address2:“00123456789 b”Address3:“00123456789 b”SequenceNumber: 0 TID: 0 AckPolicy:“没有Ack”MSDUAggregation: 0只读属性:解码:0
配置帧报头字段。
% From DS标志qosDataCfg。FromDS = 1;%到DS标志qosDataCfg。托德= 0;%承认政策qosDataCfg。AckPolicy =“正常的消;%接收地址qosDataCfg。Address1 =“FCF8B0102001”;%发射机地址qosDataCfg。Address2 =“FCF8B0102002”;
QoS数据帧用于从上层传输负载。本例中使用了一个包含16进制值'11'的重复序列的20字节有效负载。
有效载荷= repmat (“11”1、20);
使用负载和配置生成QoS数据帧。
%生成QoS数据帧的字节数qosDataFrame = wlanMACFrame(payload, qosDataCfg);
缺省情况下,输出wlanMACFrame
是一个十六进制的八位元序列。如果你想生成一个比特序列的MAC帧,设置OutputFormat
参数位
.
%为QoS数据帧生成比特qosDataFrameBits = wlanMACFrame(有效载荷,qosDataCfg,“OutputFormat”,“位”);
输出MAC帧是一个带有单个MSDU的MPDU。请参阅示例802.11ac波形生成与MAC帧用于A-MSDU和A-MPDU的生成。
要生成信标帧,请使用FrameType
设置为“灯塔”
.
beaconCfg = wlanMACFrameConfig (“FrameType”,“灯塔”);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
.
%创建管理框架体配置对象frameBodyCfg = wlanMACManagementConfig;disp (frameBodyCfg);
wlanMACManagementConfig属性:FrameType:‘灯塔’时间戳:0 BeaconInterval: 100 ESSCapability: 1 IBSSCapability: 0隐私:0 ShortPreamble: 0 SpectrumManagement: 0 QoSSupport: 1 ShortSlotTimeUsed: 0 APS金宝appDSupport: 0 RadioMeasurement: 0 DelayedBlockAckSupport: 0 ImmediateBlockAckSupport: 0名称:“默认名称”BasicRates:{'6 Mbps' '12 Mbps' '24 Mbps'} AdditionalRates:{}只读属性:InformationElements: {511x2 cell}
在框架主体配置中配置信息字段和元素。您可以使用艾迪(elementID信息)
方法如下所示。请参阅[1查询信息字段和信息元素的列表。
%信标时间间隔frameBodyCfg。灯塔Interval = 100;%的时间戳frameBodyCfg。时间戳= 123456;%名称frameBodyCfg。名称=“TEST_BEACON”;%添加DS参数IE(元素ID - 3),通道编号为11 (0x0b)frameBodyCfg = frameBodyCfg.addIE (3“0 b”);
将更新的帧体配置对象赋给ManagementConfig
属性。
%更新管理框架体配置beaconCfg。ManagementConfig = frameBodyCfg;
使用更新的帧配置生成信标帧。
%生成信标帧的字节数beaconFrame = wlanMACFrame (beaconCfg);
缺省情况下,输出wlanMACFrame
是一个十六进制的八位元序列。如果你想生成一个比特序列的MAC帧,设置OutputFormat
参数位
.
%为信标帧生成位beaconFrameBits = wlanMACFrame (beaconCfg,“OutputFormat”,“位”);
PCAP (packet capture)或PCAPNG (packet capture next generation)文件。Pcap或。pcapng)是一种广泛使用的数据包捕获文件格式,用于进行数据包分析。
为了捕获报文的特征,可以将生成的WLAN MAC帧导出到PCAP或PCAPNG文件中wlanPCAPWriter
对象。您可以使用Wireshark等第三方包分析工具对PCAP或PCAPNG文件进行可视化分析。3.].
指定PCAP文件的名称和扩展名。若要将MAC帧导出到PCAPNG文件,请设置文件扩展名为“PCAPNG”。
文件名=“macFrames”;fileExtension =“pcap”;
如果文件中有文件名
名称已存在于当前目录中,删除现有文件。
如果isfile (strcat(文件名,“。”fileExtension)删除(strcat(文件名,“。”fileExtension));结束
设置报文到达时间,单位为POSIX®微秒。
时间戳= 124800;
属性创建具有指定文件名和扩展名的WLAN PCAP文件写入器对象wlanPCAPWriter
对象。
pcap = wlanPCAPWriter (“文件名”文件名,“FileExtension”, fileExtension);
指定要导出到PCAP文件的MAC帧。
帧= {rtsFrame, qosDataFrame, beaconFrame};
将MAC帧写入PCAP文件。
为Idx = 1:numel(frames) write(pcap, frames{Idx}, timestamp);结束
删除PCAP文件写入器对象。
删除(pcap);
您可以在包分析器中打开包含生成的MAC帧的PCAP文件。Wireshark解码的帧与WLAN工具箱生成的符合标准的MAC帧匹配。Wireshark捕获的MAC帧分析。
RTS框架
QoS数据帧
信标帧
这个例子演示了为IEEE 802.11标准生成MAC帧。通过报文分析器可以查看生成的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)规范
·深入挖掘。https://www.wireshark.org/.2020年6月30日
集团Tcpdump。Tcpdump / Libpcap公共存储库。https://www.tcpdump.org.2020年6月30日