主要内容

802.11 MAC帧生成

此示例显示如何生成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)。

数据帧:

  • 用于传输高层数据的帧。

  • 给予MAC层的有效载荷被称为MAC服务数据单元(MSDU)。MAC层将标题和FCS添加到MSDU以形成MAC协议数据单元(MPDU)。

  • 为了提高吞吐量,WLAN支持聚合的MSDUS(A-MSDU)和聚金宝app合的MPDU(A-MPDU),如第9.3.2.2,9.7节中所指定的[1.] 和 [2.]。

  • 如果启用了MSDU聚合,则会聚合多个MSDU以形成A-MSDU,然后将MAC报头和FC添加到A-MSDU以形成MPDU。

  • 如果启用MPDU聚合,则聚合多个MPDU以形成A-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,“输出格式”,“比特”);

导出到PCAP文件

这个例子用途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帧的可视化

您可以打开包含数据包分析器中生成的MAC帧的PCAP文件。Wireshark解码的帧匹配使用WLAN工具箱生成的标准兼容MAC帧。该图显示了Wireshark中捕获的MAC帧的分析。

  • 请求发送帧

  • QoS数据帧

  • 信标框架

结论与进一步探讨

此示例展示了IEEE 802.11标准的MAC帧的生成。您可以使用数据包分析器查看生成的MAC帧。要在空中传输生成的MAC帧,请参阅802.11 OFDM信标帧生成802.11AC波形生成带MAC帧例子。

选定的书目

  1. IEEE标准802.11™-2016 IEEE信息技术标准-系统间电信和信息交换-局域网和城域网-特定要求-第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规范

  2. IEEE P802.11AX™/ D4.1信息技术标准标准草案 - 系统本地和大都市区域网络之间的电信和信息交流 - 特定要求第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规格 - 修正6:高效WLAN的增强功能

  3. 钢丝鲨·深入。https://www.wireshark.org/.于2020年6月30日查阅

  4. 组,Tcpdump。Tcpdump/Libpcap公共存储库。https://www.tcpdump.org.于2020年6月30日查阅