主要内容

802.11 MAC QoS流量调度

本示例展示了如何使用SimEvents®、Stateflow®和WLAN Toolbox™在802.11a/n/ac/ax网络中模拟媒体访问控制(MAC)服务质量(QoS)流量调度。通过QoS, MAC层对应用数据进行优先级处理,将更多的资源分配给高优先级的流量,而不是低优先级的流量。本例中使用的MAC层实现了增强型分布式通道访问(EDCA)算法,以访问用于传输的通道。本例模拟了一个802.11网络,其中有五个节点,可以同时配置四种类型的应用程序流量,即:Best-effort、Background、Video和Voice。应用流量的类型和优先级由MAC层的AC (access category)来确定。推导的结果表明,最高优先级的语音流量导致最低的延迟,而最低优先级的后台流量导致最高的延迟。

802.11网络中的QoS调度

IEEE 802.11无线局域网[1标准支持低速率应用程序金宝app,并在MAC层提供最好的服务。实时多媒体内容的广泛使用,以及对时间敏感的关键应用程序的部署,产生了在802.11网络中提供QoS支持的需求。金宝app为了实现这一点,IEEE 802.11 TGe引入了QoS作为IEEE 802.11规范的IEEE 802.11e修正案的一部分。通过提供QoS支持,IEEE 80金宝app2.11 MAC层对应用数据进行优先级处理,为高优先级流量分配更多的资源。

模拟QoS网络

本示例模拟一个具有五个节点的WLAN网络,如图所示。这些节点实现了具有物理载波感知和虚拟载波感知的防碰撞载波感知多路访问(CSMA/CA)。物理载波传感采用CCA (clear channel assessment)机制,在传输前判断介质是否繁忙。而虚拟载波传感采用RTS/CTS握手的方式来防止隐藏节点的问题。

每个节点可以同时配置以下四种类型的应用程序流量:

  • 最优(AC0)

  • 背景(AC1)

  • 视频(AC2)

  • 声音(AC3)

MAC层的AC标识应用流量的类型和优先级。

MAC层通过EDCA算法访问传输通道。EDCA竞争参数的设计使高优先级流量比低优先级流量获得更多的传输机会。默认配置按以下顺序为应用程序流量分配优先级:背景、最佳工作、视频和语音。但是,即使使用了这些争用参数,也有可能有多个AC同时获得传输机会,从而导致内部碰撞。如果发生内部碰撞:

  • 高优先级AC获得传输机会

  • 低优先级的AC被认为是传输失败,并调用重传过程

这个例子不同于802.11 MAC和应用程序吞吐量的测量例如在应用层的多个应用程序生成不同类型的流量。

模型配置

您可以通过以下步骤配置应用程序包的大小:

  1. 开放模式WLANMACQosSchedulingModel.slx

  2. 要进入节点子系统内部,请单击节点左下方的向下箭头

  3. 要打开应用程序的掩码参数,双击尽最大努力申请

  4. 若要启用应用程序,请设置应用程序状态“上”

  5. 配置的值数据包大小包的时间间隔目的地名称而且访问类

  6. 使用步骤3、4和5配置其他应用程序

有关更多配置选项,请参考802.11 MAC和应用程序吞吐量的测量.若要在网络中添加其他节点,请复制并粘贴网络中的任何现有节点。

仿真结果

该示例生成与在802.11 MAC和应用程序吞吐量的测量.这些结果包括:

运行时可视化,显示每个节点在通道竞争、传输和接收上花费的时间。这个图显示了MAC状态相对于模拟时间的转换。

在模拟过程中,一个可选的运行时可视化图显示选定节点的MAC传输队列中排队的帧数。您可以使用上面可视化中的“观察MAC队列长度”按钮来观察MAC层传输缓冲区的运行时状态。

一个柱状图,显示每个节点的指标,如在PHY和MAC层上传输、接收和丢弃数据包的数量。该图显示了仿真结束时的网络统计数据。

MAT文件的统计信息。Mat '存储网络中每个层和节点的详细统计信息。由于本例中有多个应用,所以MAC层需要传输来自不同ac的数据包。您可以在'statistics.mat'中存储的'statisticsTable'的'MACAC0DataTx'、'MACAC1DataTx'、'MACAC2DataTx'和'MACAC3DataTx'列中观察每个AC的传输数量。在给定的仿真中,每个交流设备的传输数量与交流设备的优先级成正比。

除了上面的结果之外,这个例子还显示了图中选定节点的所有ac的MAC延迟,并创建了一个MAT文件'macLatenciesLog.mat'。这个文件包含了每个MAC帧的信息,例如:

  • 加入时间戳:应用报文到达MAC层的时间

  • 节点ID:发送器的节点ID

  • AC:报文的访问类别

  • 清除时间戳:报文在MAC上被清除的时间。报文在成功接收到确认或完成重传次数后被清除。

此信息用于计算每个包的MAC延迟。这里的MAC延迟是指报文从应用层到达MAC到被MAC清除的时间间隔。报文从MAC清除有以下两种情况:

  • 成功传输:接收方收到发送方的报文后,向发送方发送确认报文。如果发送方收到确认,则认为是成功的传输。

  • 报文丢弃:如果发送方没有收到确认信息,则重传该报文,直到达到重传限制。如果在完成最大重传次数后仍未收到确认报文,该报文将在MAC层被丢弃。

语音流量优先级最高,时延最低。然而,最低优先级的后台流量导致最高的延迟。

进一步的探索

配置选项:

在此模型中,您可以为每个AC配置MAC竞争参数。每个AC的竞争参数存储在'macConfiguration '中。mat'作为包含aifsn、cwMin和cwMax三个字段的结构。您可以通过更改这些争用参数来更改AC (Best-effort/Background/Video/Voice)的优先级。您可以通过在一个节点中启用多个应用程序并更改通信量的竞争参数来观察这一点。要更改竞争参数,使用以下代码:

更改后台流量的竞争参数backgroundContentionParams。cwMin = 15;% CW最小值backgroundContentionParams。cwMax = 1023;% CW最大值backgroundContentionParams。Aifsn = 7;AIFSN插槽更改“最佳努力”流量的争用参数bestEffortContentionParams。cwMin = 15;% CW最小值bestEffortContentionParams。cwMax = 1023;% CW最大值bestEffortContentionParams。Aifsn = 3;AIFSN插槽更改视频流量的争用参数videoContentionParams。cwMin = 7;% CW最小值videoContentionParams。cwMax = 15;% CW最大值videoContentionParams。Aifsn = 2;AIFSN插槽更改语音流量竞争参数voiceContentionParams。cwMin = 3;% CW最小值voiceContentionParams。cwMax = 7;% CW最大值voiceContentionParams。Aifsn = 2;AIFSN插槽将更新的争用参数保存到“macConfiguration.mat”保存(“macConfiguration.mat”“backgroundContentionParams”“bestEffortContentionParams”“videoContentionParams”“voiceContentionParams”);

相关的例子

参考以下例子进行进一步的探索:

通过该示例,您可以使用Simulink模型来分析每个AC的MAC延迟,并在802.11网络中配置和模拟MAC QoS流量调度。在该模型中,可以配置每个AC的MAC竞争参数,以改变MAC层的应用流量优先级。金宝app这个例子的结论是,具有最高优先级的语音流量会产生最低的延迟。反之,优先级最低的后台流量会导致最高的延迟。

附录

本例中使用的helper函数和对象是:

  1. edcaFrameFormats.m:为PHY帧格式创建一个枚举。

  2. edcaNodeInfo.m:节点返回的MAC地址。

  3. edcaPlotQueueLengths.m:绘制模拟中的MAC队列长度。

  4. edcaPlotStats.m:绘制MAC状态相对于模拟时间的转换。

  5. edcaStats.m:为仿真统计信息创建枚举。

  6. edcaUpdateStats.m:更新仿真统计信息。

  7. edcaLogLatencies.m:记录网络中交换的所有帧的给定信息。

  8. edcaPlotLatencies.m:绘制所有访问类别的MAC帧时延。

  9. helperAggregateMPDUs.m:将多个mpdu组成一个A-MPDU。

  10. helperSubframeBoundaries.m:返回A-MPDU的子帧边界。

  11. phyRx.m:模拟与报文接收相关的PHY操作。

  12. phyTx.m:模拟与报文传输相关的PHY操作。

  13. edcaApplyFading.m:在波形上应用瑞利衰落效果。

  14. heSIGBUserFieldDecode.m:解码HE-SIG-B用户字段。

  15. heCPECorrection.m:估计和纠正常见相位误差。

  16. heSIGBCommonFieldDecode.m:解码HE-SIG-B公共字段。

  17. heSIGBMergeSubchannels.m:合并20MHz HE-SIG-B子通道。

  18. addMUPadding.m:增加或删除HE-SU和HE-MU PSDU的填充差值。

  19. macQueueManagement.m:创建WLAN MAC队列管理对象。

  20. roundRobinScheduler.m:创建循环调度对象。

  21. calculateSubframesCount.m:计算形成MU-PSDU所需的子帧数。

  22. interpretVHTSIGABitsFailCheck.m:对VHT-SIG-A字段的位进行解释

  23. rateAdaptationARF.m:创建ARF (auto rate fallback)算法对象。

  24. rateAdaptationMinstrelNonHT.m:创建吟诗人算法对象。

参考文献

  1. IEEE Std 802.11™。《无线局域网介质访问控制(MAC)和物理层(PHY)规范》。IEEE信息技术标准。系统间的电信和信息交换。局域网和城域网。特殊要求。IEEE计算机学会局域网/城域网标准委员会

相关的话题