主要内容

802.11 MAC QoS流量调度

本示例展示如何使用SimEvents®、Stateflow®和WLAN Toolbox™在802.11a/n/ac/ax网络中模拟介质访问控制(MAC)服务质量(QoS)流量调度。通过QoS, MAC层可以对应用数据进行优先级排序,为高优先级流量分配更多的资源。本例中使用的MAC层实现了增强的分布式通道访问(EDCA)算法,以获得对传输通道的访问。这个例子模拟了一个802.11网络,它有五个节点,可以同时配置四种类型的应用流量,即:尽力、背景、视频和语音。应用流量的类型和优先级由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网络

本例模拟了一个具有5个节点的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的传输数量与AC的优先级成正比。

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

  • 加入时间戳:应用程序包到达MAC层的时间

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

  • AC:报文的访问类别

  • 清除时间戳:报文在MAC上被清除的时间。报文在成功接收到确认报文或完成最大重传次数后,从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”);

相关的例子

请参考以下示例进行进一步探索:

在802.11网络中,您可以通过Simulink模型配置和模拟MAC QoS流量调度,分析每个AC的MAC时延。通过配置每个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: Decode HE-SIG-B用户字段。

  15. heSIGBCommonFieldDecode.m: Decode HE-SIG-B公共字段。

  16. heSIGBMergeSubchannels.m:合并20MHz HE-SIG-B子信道。

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

  18. macQueueManagement.m:新建WLAN MAC队列管理对象。

  19. roundRobinScheduler.m:创建轮询调度程序对象。

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

  21. interpretVHTSIGABitsFailCheck.m:解释VHT-SIG-A字段中的位

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

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

参考文献

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

相关的话题