此示例显示如何生成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)的帧主体。
数据帧:
控制帧:
用于支持数据,管理和扩展帧的传递的帧。万博1manbetx
每个控制帧具有特定的功能。例如,控制帧,如请求发送(RTS)和清除发送(CTS)有助于保留频道以避免冲突,而ACK帧有助于识别成功传输。
扩展框架:
此帧类型是上面定义的三种帧类型的扩展。
dmg beacon是当前在此帧类型下指定的唯一帧[1]。
你可以使用wlanmacframe.
生成MAC帧的功能。此函数接受MAC帧配置对象wlanmacframeconfig.
作为一个输入。此对象在MAC标头中配置字段。设定弗拉米妥.
财产到所需亚型描述在表9-1的[1]设定适当的类型和亚型MAC标题中的字段。这wlanmacframe.
功能支持以下MPD万博1manbetxU的生成。
管理框架:灯架
数据帧:数据,null,QoS数据,qos null
控制帧:RTS,CTS,ACK,块ACK
除了上述mpdus,wlanmacframe.
还支持生成万博1manbetx包含MPDU的A-MPDUQoS数据
。
要生成RTS帧,请使用“创建MAC帧配置对象”弗拉米妥.
调成'rts'
。
rtscfg = wlanmacframeconfig('frameType'那'rts');DISP(RTSCFG);
WLANMACFRAMECONFIG具有属性:FRAMETYPE:'RTS'PowerManagement:0 Moredata:0持续时间:0地址1:'FFFFFFFFFFFFF'地址2:'00123456789B'只读属性:解码:0
配置帧头字段。
% 期间rtscfg.duration = 500;%接收器地址rtscfg.address1 ='fcf8b0102001';%发射器地址rtscfg.address2 ='fcf8b0102002';
使用配置生成RTS帧。
%为RTS帧生成八位字节rtsframe = wlanmacframe(rtscfg);
默认情况下,输出wlanmacframe.
是一系列十六进制八位字节。如果要将MAC帧生成为一系列位,请设置输出格式
参数到比特
。
%生成RTS帧的比特rtsframebits = wlanmacframe(rtscfg,'输出格式'那'贝特');
要生成QoS数据帧,请使用该QoS数据帧创建MAC帧配置对象弗拉米妥.
调成'QoS数据'
。
qosdatacfg = wlanmacframeconfig('frameType'那'QoS数据');DISP(QoSDATACFG);
wlanmacframeconfig具有属性:frameType:'QoS数据'FrameFormat:'非HT'TOD:0 ROMDS:1重传:0 PowerManagement:0 MoreData:0持续时间:0地址1:'FFFFFFFFFFFFF'地址2:'00123456789B'00123456789B'Sequencenumber:0 TID:0 Ackpolicy:'No Ack'MSDuaggregation:0只读属性:解码:0
配置帧头字段。
来自DS标志的%Qosdatacfg.fromds = 1;%到DS标志qosdatacfg.tods = 0;%确认政策Qosdatacfg.ackpolicy =.'正常ACK';%接收器地址QoSdatacfg.Address1 ='fcf8b0102001';%发射器地址QoSdatacfg.Address2 ='fcf8b0102002';
QoS数据帧用于从高层传输有效载荷。在此示例中使用包含重复序列的20字节有效载荷。
payload = repmat('11',1,20);
使用有效载荷和配置生成QoS数据帧。
%生成QoS数据帧的八位字节qosdataframe = wlanmacframe(有效载荷,qosdatacfg);
默认情况下,输出wlanmacframe.
是一系列十六进制八位字节。如果要将MAC帧生成为一系列位,请设置输出格式
参数到比特
。
%生成QoS数据帧的比特qosdataframebits = wlanmacframe(有效载荷,qosdatacfg,'输出格式'那'贝特');
输出MAC帧是具有单个MSDU的MPDU。参考这个例子802.11AC波形生成带MAC帧对于A-MSDU和A-MPDU生成。
要生成信标框,请使用“创建MAC帧配置对象”弗拉米妥.
调成'灯架'
。
beaconcfg = wlanmacframeconfig('frameType'那'灯架');DISP(BEACONCFG);
wlanmacframeconfig具有属性:frameType:'beacon'tods:0 fromds:1重传:0 powermanagement:0 moredata:0持续时间:0地址1:'ffffffffffff'地址2:'00123456789b'00123456789b'00123456789b'00123456789b'semencenumber:0 managemenconfig:[1x1 wlanmacmanagementconfig]只读属性:解码:0
信标框架 - 身体由信息字段和信息元素组成,如[的第9.3.3.3节)所述1]。您可以使用这些信息字段和元素使用wlanmacmanagementconfig
。
%创建管理框架 - 正文配置对象FrameBodyCFG = WLANMACMANAGEMENCONFIG;DISP(FrameBodyCFG);
wlanmacmanagementconfig具有属性:frameType:'信标'时间戳:0 BeaConInterval:100 Esscapability:1 IBSScapability:0隐私:0 Shortemmanage:0 SpectrumManagement:0 Qossupport:1 ShortsUpport:0 APSDSupport:0万博1manbetx addiateDblockachsupport:0 impediateBlockackSupport:0 SSID:“默认SSID”碱标:{'6 Mbps'的'12 Mbps''24 Mbps'}额外的rates:{}只读属性:信息单元:{511x2 cell}
配置帧主体配置中的信息字段和元素。您可以使用信息元素使用addie(元素,信息)
方法如下所示。参考[1]有关信息字段和信息元素列表。
%信标间隔FrameBodyCFG.BeaconInterval = 100;%时间戳FrameBodyCfg.timestamp = 123456;%SSID.FrameBodyCfg.ssid ='test_beacon';%添加DS参数IE(元素ID-3)与频道号11(0x0b)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文件的功能
%MAC帧将导出到PCAP文件框架= {rtsframe,qosdataframe,beaconframe};%将所有数据包写入PCAP文件为了IDX = 1:NUMER(帧)写(PCAP,FRAMES {IDX},TIMESTAMP);结尾%清除对象清除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部分:无线LAN介质访问控制(MAC)和物理层(PHY)规格
IEEE P802.11AX™/ D4.1信息技术标准标准草案 - 系统本地和大都市区域网络之间的电信和信息交流 - 特定要求第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规格 - 修正6:高效WLAN的增强功能
Wireshark·深入。https://www.wireshark.org/。访问2020年6月30日
小组,tcpdump。tcpdump / libpcap公共存储库。https://www.tcpdump.org.。访问2020年6月30日