此示例演示如何使用SimEvents®、Stateflow®和WLAN工具箱模拟802.11a/n/ac/ax网络中的媒体访问控制(MAC)服务质量(QoS)流量调度™. 使用QoS,MAC层对应用程序数据进行优先级排序,并为高优先级流量分配比低优先级流量更多的资源。本例中使用的MAC层实现了增强的分布式信道访问(EDCA)算法,以访问信道进行传输。此示例为802.11网络建模,该网络具有五个节点,可同时配置四种类型的应用程序流量,即:尽力而为、背景、视频和语音。应用程序流量的类型和优先级由MAC层的访问类别(AC)确定。导出的结果表明,最高优先级的语音通信产生的延迟最低,而最低优先级的后台通信产生的延迟最高。
IEEE 802.11 WLAN [1.]标准支持低速率应用程金宝app序,并在MAC层提供最佳服务。实时多媒体内容的广泛使用,以及对时间敏感的关键应用程序的部署,产生了在802.11网络中提供QoS支持的需求。金宝app为了实现这一点,IEEE 802.11 TGe在IEEE 802.11e对IEEE 802.11规范的修订中引入了QoS。通过提供QoS支持,IEEE 80金宝app2.11 MAC层对应用数据进行了优先级划分,并将更多的资源分配给高优先级流量而不是低优先级流量。
如图所示,这个示例模拟了一个有5个节点的WLAN网络。这些节点实现了具有物理载波感知和虚拟载波感知的带冲突避免的载波感知多址访问(CSMA/CA)。物理载波传感使用清晰信道评估(CCA)机制来确定传输前介质是否繁忙。而虚拟载波传感采用RTS/CTS握手来防止隐藏节点问题。
每个节点可以同时配置以下四种类型的应用程序流量:
最优(AC0)
背景(AC1)
视频(AC2)
声音(AC3)
MAC层的AC标识应用流量的类型和优先级。
MAC层通过EDCA算法访问信道进行传输。EDCA争用参数被设计成高优先级流量比低优先级流量获得更多的传输机会。默认配置按以下顺序为应用程序流量分配优先级:背景、最佳效果、视频和语音。然而,即使在使用这些争用参数后,仍有可能有多个AC同时获得传输机会,从而导致内部碰撞。如果发生内部碰撞:
高优先级交流电获得传输机会
低优先级AC被认为是传输失败,并调用重传过程
这个例子不同于802.11 MAC和应用程序吞吐量测量例如,多个应用程序在应用层生成不同类型的流量。
模型配置
您可以使用以下步骤配置应用程序数据包大小:
开放模式WLANMACQosSchedulingModel.slx
要进入节点子系统,请单击节点左下角的向下箭头
要打开应用程序的掩码参数,请双击尽最大努力申请
要启用应用程序,请设置应用程序状态
“上”
配置数据包大小
,数据包间隔
,目的地名称
和访问类
使用步骤3、4和5配置其他应用程序
有关更多配置选项,请参阅802.11 MAC和应用程序吞吐量测量.若要在网络中添加其他节点,请复制并粘贴网络中的任何现有节点。
这个例子产生了类似的结果在802.11 MAC和应用程序吞吐量测量.这些结果包括:
运行时可视化显示每个节点在信道争用、传输和接收上花费的时间。这张图显示了MAC状态随模拟时间的变化。
在模拟过程中,可选的运行时可视化图显示在选定节点的MAC传输队列中排队的帧数。您可以使用上述可视化中的“观察MAC队列长度”按钮观察MAC层传输缓冲区的运行时状态。
一种条形图,显示每个节点的指标,如PHY和MAC层上传输、接收和丢弃的数据包数量。此图显示了模拟结束时的网络统计信息。
MAT文件“statistics.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”中。作为一个包含三个字段的结构,即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.11a/n/ac/ax网络中的MAC和应用层吞吐量,请参阅802.11 MAC和应用程序吞吐量测量的例子。
用抽象的PHY对多节点IEEE 802.11ax网络进行建模,请参见802.11ax具有物理层抽象的系统级仿真的例子。
要使用分布式协调功能(DCF)MAC和802.11a物理层对多节点网络进行建模,请参阅基于物理层和MAC的多节点802.11a网络建模的例子。
本示例通过Simulink模型分析各AC的MAC时延,配置并模拟802.11网络中的MAC QoS流量调度。在该模型中,可以配置各AC的MAC争用参数,改变MAC层的应用流量优先级。金宝app本例得出的结论是,优先级最高的话音流量产生的延迟最低。然而,具有最低优先级的后台流量会导致最高的延迟。
本例中使用的辅助函数和对象包括:
edcaframe.m:创建PHY帧格式枚举。
edcaNodeInfo.m:返回节点的MAC地址。
edcaPlotQueueLengths.m:绘制模拟中的MAC队列长度。
edcaPlotStats.m:绘制MAC状态转换与模拟时间的关系。
edcaStats.m:为模拟统计信息创建枚举。
edcaUpdateStats.m:更新模拟的统计信息。
edcaLogLatencies.m:记录网络中交换的所有帧的给定信息。
edcaPlotLatencies.m:绘制所有访问类别的MAC帧延迟。
helperAggregateMPDUs.m:聚合mpdu,形成A-MPDU。
helperSubframeBoundaries.m:返回A-MPDU的子帧边界。
phyRx.m:与数据包接收相关的PHY模型操作。
phyTx.m:与包传输相关的PHY型号操作。
edcaApplyFading.m:对波形应用瑞利衰落效果。
heSIGBUserFieldDecode.m:解码HE-SIG-B用户域。
heCPECorrection.m:估计和纠正常见相位误差。
heSIGBCommonFieldDecode.m:解码HE-SIG-B共域。
Hesigbmerges子通道:合并20MHz HE-SIG-B子通道。
addMUPadding.m:添加或删除HE-SU和HE-MU PSDU之间的填充差值。
macQueueManagement.m:创建WLAN MAC队列管理对象。
roundRobinScheduler.m:创建循环调度程序对象。
calculateSubframesCount.m:计算构成MU-PSDU所需的子帧数。
interpretVHTSIGABitsFailCheck.m:解释VHT-SIG-A字段中的位
rateAdaptationARF.m:创建ARF (auto rate fallback)算法对象。
rateAdaptationMinstrelNonHT.m:创建一个吟游诗人算法对象。
IEEE标准802.11™. “无线LAN介质访问控制(MAC)和物理层(PHY)规范”。IEEE信息技术标准.系统间电信和信息交换.局域网和城域网.特殊要求;IEEE计算机协会局域网/城域网标准委员会