此示例显示如何生成IEEE®802.11™MAC帧。
此示例显示如何在第9节中指定WLAN MAC帧[1.] 和 [2.可以生成并导出到数据包捕获(PCAP)文件以进行分析,用于分析第三方数据包分析工具。在这个例子中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标头中的字段。设置框架类型
属性设置为所需的子类型描述在表9-1的[1.]设定适当的类型和亚型MAC头中的字段wlanMACFrame
功能支持以下MPD金宝appU的生成。
管理框架:信标
数据帧:数据,null,QoS数据,qos null
控制帧:RTS、CTS、确认、块确认
除上述MPDU外,wlanMACFrame
还支持生成金宝app包含类型为的MPDU的A-MPDUQoS数据
.
要生成RTS帧,请使用创建MAC帧配置对象框架类型
设置“RTS”
.
rtsCfg=wlanMACFrameConfig(“框架类型”,“RTS”); disp(rtsCfg);
wlanMACFrameConfig,属性:FrameType:'RTS'电源管理:0更多数据:0持续时间:0地址1:'FFFFFFFFFF'地址2:'00123456789B'只读属性:已解码:0
配置帧头字段。
% 期间rtscfg.duration = 500;%接收器地址rtsCfg.Address1=“FCF8B0102001”;%发送器地址rtscfg.address2 =“FCF8B0102002”;
使用配置生成RTS帧。
%为RTS帧生成八位字节rtsFrame=wlanMACFrame(rtsCfg);
默认情况下wlanMACFrame
是一个十六进制八位字节序列。如果要将MAC帧生成为一个位序列,请设置输出格式
参数到比特
.
%为RTS帧生成位rtsFrameBits=wlanMACFrame(rtsCfg,“输出格式”,“比特”);
要生成QoS数据帧,请使用创建MAC帧配置对象框架类型
设置“QoS数据”
.
qosdatacfg = wlanmacframeconfig(“框架类型”,“QoS数据”)(qosDataCfg);;
wlanMACFrameConfig的属性:FrameType:“QoS数据”FrameFormat:“非HT”ToDS:0 FromDS:1重传:0电源管理:0更多数据:0持续时间:0地址1:“FFFFFFFFFFFF”地址2:“00123456789B”地址3:“00123456789B”序列号:0 TID:0确认策略:“无确认”MSDUAGGERATION:0只读属性:已解码:0
配置帧头字段。
%来自DS标志qosDataCfg.FromDS=1;%到DS标志qosDataCfg.ToDS=0;%确认策略qosDataCfg.AckPolicy=“正常确认”;%接收器地址qosDataCfg.Address1=“FCF8B0102001”;%发送器地址qosDataCfg.Address2=“FCF8B0102002”;
QoS数据帧用于从更高层传输有效负载。本例中使用了包含十六进制值“11”重复序列的20字节有效负载。
有效载荷=repmat('11', 1, 20);
使用有效负载和配置生成QoS数据帧。
%为QoS数据帧生成八位字节qosDataFrame=WLANMACFG(有效载荷,qosDataCfg);
默认情况下wlanMACFrame
是一个十六进制八位字节序列。如果要将MAC帧生成为一个位序列,请设置输出格式
参数到比特
.
%生成QoS数据帧的比特qosdataframebits = wlanmacframe(有效载荷,qosdatacfg,“输出格式”,“比特”);
输出MAC帧是具有单个MSDU的MPDU。参考这个例子802.11AC波形生成带MAC帧用于A-MSDU和A-MPDU生成。
要生成信标帧,请使用创建MAC帧配置对象框架类型
设置“灯塔”
.
beaconCfg=wlanMACFrameConfig(“框架类型”,“灯塔”)(beaconCfg);;
wlanMACFrameConfig,属性:FrameType:“Beacon”ToDS:0 FromDS:1重传:0电源管理:0更多数据:0持续时间:0地址1:“FFFFFFFFFF”地址2:“00123456789B”地址3:“00123456789B”序列号:0管理配置:[1x1 wlanMACManagementConfig]只读属性:解码:0
信标框体由信息字段和信息元素组成,如本规范第9.3.3.3节所述[1.]。您可以使用配置这些信息字段和元素wlanmacmanagementconfig
.
%创建管理框架 - 正文配置对象frameBodyCfg=wlanMACManagementConfig;disp(frameBodyCfg);
wlanMACManagementConfig及其属性:FrameType:“Beacon”时间戳:0 BeaconInterval:100 ESSCapability:1 IBsCapability:0隐私:0短前导:0频谱管理:0 QoSupport:1短前导:0 APSDSupport:0 RadioMeasurement:0 DelayedBlockAc金宝appkSupport:0 ImmediateBlockAckSupport:0 SSID:“default SSID”基本机箱:{'6Mbps''12Mbps''24Mbps'}附加速率:{}只读属性:InformationElements:{511x cell}
在框架主体配置中配置信息字段和元素。可以使用添加信息元素addIE(元素ID,信息)
方法如下所示。参考[1.]有关信息字段和信息元素列表。
%信标间隔frameBodyCfg.BeaconInterval=100;%时间戳FrameBodyCfg.timestamp = 123456;%SSIDframeBodyCfg.SSID='test_beacon';%添加通道号为11(0x0b)的DS参数IE(元素ID-3)FrameBodyCFG = FrameBodyCfg.addie(3,“0b”);
将更新的框架主体配置对象指定给ManagementConfig.
属性在MAC帧配置中。
%更新管理框架主体配置beaconCfg.ManagementConfig=frameBodyCfg;
使用更新的帧配置生成信标框。
%为信标帧生成八位字节beaconframe = wlanmacframe(beaconcfg);
默认情况下wlanMACFrame
是一个十六进制八位字节序列。如果要将MAC帧生成为一个位序列,请设置输出格式
参数到比特
.
%为信标帧生成位beaconframebits = wlanmacframe(beaconcfg,“输出格式”,“比特”);
这个例子用途PCApWriter.
对象将生成的MAC帧导出到具有.pcap扩展的文件。要分析和可视化此文件,请使用Wireshark等第三方数据包分析器。将生成的MAC帧导出到带有.pcapng扩展的文件,使用pcapngWriter
对象
创建类型为的对象PCApWriter.
并指定数据包捕获文件名。常数wlanLinkType
和时间戳
指定链接层标头类型[4.]和WLAN帧的捕获时间。在本例中,所有帧的捕获时间相同。在将数据包写入扩展名为.pcap或.pcapng的文件之前,请使用writeGlobalHeader
函数将全局标头写入文件。
时间戳=124800;%时间戳(以微秒为单位)wlanLinkType=105;%链接层标题类型filename =.“macFrames”;%删除如果当前已存在具有相同名称的文件% 目录如果isfile([fileName,“.pcap”])删除([fileName,“.pcap”]);结尾pcap=pcapWriter('文档名称',“macFrames”);WriteGlobalheader(PCAP,WLANLINKTYPE);%pcap文件中的全局标头
使用写
函数将所有MAC帧写入PCAP文件
%要导出到PCAP文件的MAC帧框架= {rtsframe,qosdataframe,beaconframe};%将所有数据包写入PCAP文件对于idx=1:numel(frames)write(pcap,frames{idx},timestamp);结尾%清除该对象清楚的PCAP.;
您可以打开包含数据包分析器中生成的MAC帧的PCAP文件。Wireshark解码的帧匹配使用WLAN工具箱生成的标准兼容MAC帧。该图显示了Wireshark中捕获的MAC帧的分析。
请求发送帧
QoS数据帧
信标框架
此示例展示了IEEE 802.11标准的MAC帧的生成。您可以使用数据包分析器查看生成的MAC帧。要在空中传输生成的MAC帧,请参阅802.11 OFDM信标帧生成和802.11AC波形生成带MAC帧例子。
IEEE标准802.11™-2016 IEEE信息技术标准-系统间电信和信息交换-局域网和城域网-特定要求-第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规范
IEEE P802.11AX™/ D4.1信息技术标准标准草案 - 系统本地和大都市区域网络之间的电信和信息交流 - 特定要求第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规格 - 修正6:高效WLAN的增强功能
钢丝鲨·深入。https://www.wireshark.org/.于2020年6月30日查阅
组,Tcpdump。Tcpdump/Libpcap公共存储库。https://www.tcpdump.org.于2020年6月30日查阅