主要内容

基于PHY和MAC的多节点802.11a网络建模

此示例显示如何使用Simevents®,equidflow®和WLAN Toolbox™在包含介质访问控制(MAC)层和PHY之间的多个WLAN节点之间的通信。此示例模拟了由五个WLAN节点组成的802.11网络。MAC中的分布式协调函数(DCF)被建模为离散事件图表,而PHY使用MATLAB离散事件系统块建模。导出的仿真结果包括显示每个节点的信道争用,传输和接收上的时间的运行时曲线。还示出了表示PHY和MAC层的每个节点度量的曲线图,例如在PHY和MAC层中的传输,接收和丢弃的分组。

背景

IEEE®802.11™是一套用于WLAN实现的MAC和PHY规范。一个典型的WLAN网络将有多个设备(节点)共享相同的信道资源。每个节点可以有不同类型的应用程序发送或接收来自其他节点的数据包。由于节点共享信道,它们的传输可能会相互碰撞或干扰。

对多节点WLAN网络建模通常涉及对MAC层、PHY、共享通信信道、数据流量模式和干扰进行建模。这个例子展示了如何使用离散事件仿真建模一个802.11a PHY和MAC的多节点WLAN网络。

多节点802.11a网络模型

此示例模拟了具有五个节点的WLAN网络。这些节点利用具有物理载波侦听和虚拟载波侦听的碰撞避免(CSMA / CA)的载波侦听多次访问。物理载波传感使用清晰的通道评估(CCA)机制来确定介质是否在发送之前忙。虽然虚拟载波传感器使用RTS / CTS握手来防止隐藏节点问题。

示例中的模型输出各种统计信息,如PHY层和MAC层的发送、接收和丢弃数据包的数量,以及有助于分析/估计节点级和网络级性能的图。

建模包括:

  • 多个节点,其中每个节点包含应用程序,MAC层和PHY。

  • 在通道上传输的包,在多个节点之间共享。

  • 共享频道,使用这些频道损伤选项进行模拟:自由空间路径,范围传播丢失和多路径衰落(使用Rayleigh频道模型)。

  • 节点位置分配器,用于配置网络中的节点位置。

在示例中,节点1、2和3是通信的主动参与者,而节点4和5是通过通道被动接收数据包的。

节点

每个节点都被建模为一个具有网络堆栈的子系统,其中包括应用程序层、MAC层和物理层。

  • 应用层通过SimEvents生成报文实体发电机(Simevents)堵塞。

  • MAC中的DCF建模为离散事件图。

  • PHY采用SimEvents离散事件系统模块建模。

  • 共享通道在接收路径中的每个节点中建模。

应用层

实现应用层以生成并接收应用程序流量。它分为两个子块:

  • AppTrafficGenerator -使用SimEvents实体发电机(Simevents)块,根据配置的报文大小、报文间间隔和目的节点生成数据包。这些数据包被传递到MAC层。

  • apptrafficeiver - 使用Simevents实体终结者(Simevents)块从MAC层接收数据包。

MAC层

MAC层实现了[第10.3节中规定的DCF算法。1].在发送数据包之前,MAC层感知共享信道以确定信道的状态。如果通道空闲,则发起报文传输。如果通道繁忙,数据包传输将被延迟。等待传输的数据包进入队列。

在该模型中,MAC层有两个组成部分:队列管理和争用算法。

队列管理

从应用层接收的数据包将排队,直到通道可用为止。一旦通道变得可用,数据包就会退出队列以进行传输。队列大小是可配置的。默认的队列大小是10。

争用算法

在MAC层实现的争用算法是[第10.3节中指定的DCF功能。1].它被实现为一个有限状态机,有以下六种不同的状态:

  • 闲置:没有主动操作

  • 竞争:争夺频道

  • Rx:接收并处理帧

  • WaitForRx:等待响应帧

  • SendingData:发送帧

  • Eifs:延迟传输,用于错误恢复

状态层MAC层的状态处理

  • 最初MAC层是闲置状态。当从应用层接收到数据包时,MAC层移动到认为状态。

  • 认为状态,如果信道被感测到DCF帧间空间(DIFS)时间的时段,然后是随机退出时间,则MAC层移动到sendingdata.状态。

  • sendingdata.状态,传输帧,并且MAC层移动到waityorrx.状态。

  • waityorrx.状态,MAC层等待一段时间的ACK/CTS超时。在接收到响应帧时,MAC发起下一帧传输。如果在超时时间内没有收到响应帧,则重新发送该帧。

  • 当从PHY层接收到清晰的信道评估(CCA)为忙时,MAC层移动到RX.状态。帧被接收和处理RX.状态。如果收到错误的帧RX.状态时,MAC层等待扩展帧间空间(EIFS)时间型双状态。如果帧是为其他节点准备的,则更新网络分配向量(NAV)并延迟传输,直到NAV变为零。如果帧打算发送给这个节点,则在需要时发送响应帧。

MAC参数,如RTS阈值,重试限制和数据速率可为每个节点配置。

PHY和频道

传输链

MAC层通过发送一个包含Tx矢量信息的传输开始请求来启动传输。在接收到启动请求后,phytx8021ades块使用给定的Tx矢量配置PHY传输参数,并向MAC层发送传输启动确认。PHY参数以非ht格式配置对象的类型配置wlanNonHTConfig.在接收到开始确认后,MAC层将帧发送到PhyTx80211aDES块。

该PhyTx80211aDES块为MAC帧生成一个波形使用wlanWaveformGenerator函数。它也与配置的Tx增益缩放波形的样本。所产生的波形通过所述共享信道传输。

您可以为PhyTx80211aDES块配置Tx功率(dBm)和Tx增益(dB)的掩码属性。

通道障碍建模

由自由空间路径损耗模型和瑞利多径衰落确定的信道损害被添加到传输PHY波形中。您可以选择启用或禁用这些损伤模型。除了损伤模型外,信号接收范围也可以由一个可选的距离传播损失模型来限制。为了对这些损失进行建模,信道模型必须包含发送方和接收方的位置以及发送信号的强度。在将波形传递给phyrx8021ades块之前,信道在每个接收节点内部建模。

接收链条

当phyrx8021ades块接收到一个波形时,它根据配置的Rx增益缩放波形。然后,phyrx8021ades块对接收的波形施加热噪声和干扰。这是通过计算预期的信号干扰加噪声比(SINR)在序言,报头和有效载荷的结束。计算的SINR作为加性高斯白噪声(AWGN)添加到接收波形的前导、报头和有效载荷中。然后,phyrx8021ades块将波形功率与能量检测(ED)阈值进行比较。如果波形功率大于ED阈值,PHY向MAC层发送CCA忙指示,并开始对波形进行解码。否则,PHY将波形视为噪声,并在电流波形持续期间将其作为干扰添加到即将到来的波形中。如果在解码时发现错误,PHY停止对波形的进一步处理,并向MAC层发送错误指示。如果前导和报头解码成功,phyrx8021ades块向MAC层发送一个开始指示。如果有效负载也被成功解码,则将有效负载传递到MAC层并给出成功指示。

可以为Phyrx80211ades块配置RX增益(DB)和噪声系数(DB)。

节点位置分配程序

节点位置分配器用于分配节点的初始位置。它支持金宝app线性和列表位置分配策略。

线性位置分配策略 - 在2D网格上以直线均匀地放置节点。

列表位置分配策略-从列表[[x1 y1 z1] [x2 y2 z2]…[xn yn zn]]使得(xk, yk, zk)是(1,2,…, n)。

仿真结果

该模型的仿真生成:

  1. 描绘每个节点的信道争用,传输和接收所花费的时间的运行时曲线。

  2. 描述每个节点指标的图,如PHY层和MAC层上发送、接收和丢弃数据包的数量。

  3. 席位文件统计.mat每一层每个节点的详细统计信息。

进一步的探索

  1. 通过复制现有节点或通过使用库块创建自定义节点来增加网络中的节点数。

  2. 改变应用参数:报文大小和报文间隔。

  3. 修改MAC参数:RTS阈值、Tx队列大小、数据速率和重试限制。

  4. 改变PHY参数:PHY Tx增益,PHY Rx增益和Rx噪声值。

  5. 改变通道建模参数。

  6. 使用节点位置分配器更改节点位置。

  7. 通过改变不同的参数来比较吞吐量。

  8. 启用序列查看器并查看节点之间和节点内部组件之间交换的消息。

此示例呈现了一个多节点802.11a网络,并向您展示如何使用离散事件仿真来建模多个WLAN节点之间的通信。DCF在MAC中被建模为一个离散事件图表,而PHY是使用MATLAB离散事件系统块建模的。运行时可视化显示显示每个节点在信道争用,传输和接收上花费的时间有助于您研究和分析DCF功能。基于表现出与PHY和MAC层的数据包数量的节点相关度量的曲线来分析每个节点的网络通信性能。

限制

  1. MAC层重传基于公共重试计数器而不是[1].

  2. 不交换管理框架。

  3. 每个节点中的MAC层维护所有帧传输的单个序列号计数器,而不是每目标计数器。

  4. 未实现MAC层的数据速率适配。

  5. 未实现MAC服务数据单元(MSDU)分片。

  6. 将干扰建模为AWGN, SINR由干扰包的信号强度和热噪声确定。干扰也可以通过结合干扰信号的IQ样本来建模。

附录

该示例使用这些帮助者:

  1. dcfApplyFading.m:对波形应用瑞利褪色效果。

  2. dcfAssignNodeIDs.m:分配节点id。

  3. dcfdisplaystats.m.:显示统计信息。

  4. dcfGetNodeInfo.m:对给定节点的MAC地址执行GRES或SET操作。

  5. dcfGetNodeNamesList.m:获取模型中的节点列表。

  6. dcfGenerateMACFrame.m:生成MAC帧。

  7. dcfPlotQueueLengths.m:绘制模拟中的队列长度。

  8. dcfplotstats.m.:绘制模拟时间线统计。

  9. dcfstats.m:枚举,表示模型统计信息。

  10. dcfUpdateStats.m:更新指定节点的统计信息。

  11. PhyPrimitives.m:PHY与MAC层之间的指示枚举

  12. PhyRx80211aDES.m:与数据包接收相关的PHY模型操作。

  13. PhyTx80211aDES.m:与包传输相关的PHY型号操作。

参考文献

  1. IEEE STD 802.11™ - 2016 IEEE信息技术标准 - 系统之间的电信和信息交流 - 本地和大都市区域网络 - 特定要求 - 第11部分:无线LAN介质访问控制(MAC)和PHY规格

相关的话题