0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于公平的EDCA算法的实现及仿真验证分析

电子设计 来源:现代电子技术 作者:夏汉铸,刘辉元 2021-06-29 11:40 次阅读

随着网络技术的发展 和应用,用户对网络的移动性和可靠性要求越来越高,基于IEEE 802.11系列标准的无线Mesh网络近年来得到了快速、广泛的应用。在无线Mesh网络中,任何无线设备节点都可以同时作为接入点(AP)和路由器,网络中的每个节点都可以发送和接收信号,每个节点都可以与一个或者多个对等节点进行直接通信。但由于无线网络本身的特性和多种物理层传输技术的应用,合适的媒体接入控制MAC 协议对无线Mesh网络至关重要。

在无线Mesh 网络中应用的MAC 协议包括:CSMA/CA、DCF、PCF 等,为了在MAC 子层实现对不同业务流的QoS支持,IEEE 802.11e工作组在IEEE 802.11中DCF机制的基础上提出了增强分布式信道接入机制(Enhanced Distributed Channel Access,EDCA),使得无线Mesh网络可以更好地提供音频视频业务的服务。

EDCA 将不同的业务流分为4 个不同的优先等级AC(Access Categories),每一个AC 对应一个队列,通过设置仲裁帧间间隔(Arbitration Interframe Space,AIFS)、最小竞争窗口值CWmin、最大竞争窗口CWmax和传输机会TXOP(Transmission Opportunity)4个 参数值实现不同业务流间的业务区分。文献研究表明,由于无线网络状况的移动性和复杂性,EDCA 算法中4个参数的静态设置并不能使无线网络的性能实现最优,特别在高负载或突发业务量较大的状况下,由于无线网络中有较高的冲突率,EDCA 的网络性能急剧下降,无法满足网络用户的要求。也有相关研究通过CW 的自适应调整机制及相关退避算法的改进,如Lamia Romdhani 提出的AEDCF 机制(Adaptive EDCF,AEDCF);Younggoo Kwon提出的快速碰撞解决机制(Fast Collision Resolutio,FCR)等,使得EDCA算法更适合无线网络环境。但这些研究都没有考虑EDCA 算法本身及参数AIFS、CWmin、CWmax和TXOP调整后对无线Mesh网络公平性(节点间和不同业务流间)带来的影响。

本文提出了一种基于公平的EDCA 算法(Fairness-based EDCA,FEDCA)。FEDCA算法的基本思想是通过加权轮询的方式确定传输的数据接入类别和本次信道侦听的时间,通过公平因子的计算确定TXOP 参数,以达到保证网络公平性的条件下提高网络性能和QoS保证的目的。并通过仿真结果验证该算法的可行性。

1 EDCA算法

EDCA 是IEEE 802.11e工作组在IEEE 802.11 协议中DCF机制基础上进行QoS支持提出的,其基本 的接入信道方式与DCF保持一致,各移动节点以CSMA/CA 方式通过竞争获得信道接入的机会。同时EDCA 提供了不同类型业务数据传输的多种信道接入类别AC,可以实现不同业务的服务区分。

1.1 EDCA算法简介

为保证不同业务的不同QoS要求,EDCA算法定义了上层的8类业务类别(Traffic Category,TC)和本层的4类基于IEEE 802.1D的接入类别(Access Category,AC),8类TC分别映射至4类AC的队列中:AC_VO,AC_VI,AC_BE和AC_BK,分别代表语音(Voice)类,视频(Video)类,尽力而为(Best Effort)类和背景(Background)类的业务。为实现4个AC队列不同优先级的区别,定义了4个参数:仲裁帧间间隔AIFS、最小竞争窗口值CWmin、最大竞争窗口CWmax和传输机会TXOP。不同的AC通过不同的参数设置,控制其接入信道的过程,从而实现了不同业务类型的区分。

某一移动节点通过两个阶段实现一个AC队列内的数据发送。首先在一个节点内部争夺传输机会TXOP,获得传输机会的队列才有可能获得信道接入的机会。其次,获得信道接入机会的分组再在不同的节点间通过CSMA/CA 方式获得信道接入机会才可以进行数据传输。EDCA算法完成数据传输第一阶段的任务:不同队列通过竞争获得传输机会。

IEEE 802.11e EDCA的基本访问机制如图1所示。

图1 IEEE 802.11e EDCA的基本访问机制

当因竞争信道发生冲突时,就进入退避过程。在此过程中,将退避计数器Backoff Timer置为[0,CW[AC]]范围内的任一整数值:Backoff_Timer(BT)=uniform[0,CW]×aSlotTime。CW[AC]的初始值设为CWmin[AC]。当发生碰撞时,CW[AC]的值就增加为(CW[AC]+1)×2-1,当CW[AC]增加到CWmax[AC]时,就维持CWmax[AC]的值不变,不再增加。当数据帧成功发送之后,将CW[AC]的值重置为CWmin[AC],继续侦听信道。退避计时器每检测到一个空闲时隙,其值(BT)减1,最先减到零的数据帧占用信道,若节点内多个AC的退避计时器同时减到零,则较高优先级队列的数据帧将占用信道,其他数据帧又进入新一轮的退避过程。

1.2 EDCA算法分析

从图1 中可以看出,较高优先级的AC 通过设置较小的AIFS、CWmin 和CWmax 将优先获得无线信 道的访问权,从而实现不同不同业务的业务区分。IEEE 802.11e标准中给出了一组EDCA 参数建议值,适合于大部分情况下的网络应用。但由于无线网络本身的移动性和可扩展性,在网络规模较大或网络流量动态变化时,标准中的建议值会对无线Mesh网络各移动节点及某一节点下的不同业务流造成不公平的现象,具体体现在以下几个方面:

(1)AIFS、AIFSN 设置值导致节点间的不公平性。IEEE 802.11e标准中给出AIFS[AC]=aSIFSTime+AIFSN[AC]×aSlotTime。网络中所有移动节点AIFS、AIFSN 值相同,这样有可能在网络中引起准同步现象(某一节点本次通过竞争获得信道使得下次竞争获得信道的概率增大)的出现,导致无线网络中其他节点多次竞争而无法获得信道的现象频繁出现,从而使得不同节点接入信道、共享资源的不公平,同时进一步降低网络链路的利用率,影响业务流的服务质量。

(2)AIFSN 值的固定设置导致不同等级业务流间的不公平。由于高优先级的AIFSN值较小,在高优先级需传输的数据较多的情况下,低优先级的业务流在竞争信道时始终无法获得信道,必然导致低优先级业务的“饥饿”现象。

(3)CWmin和CWmax的设置。从EDCA的基本访问机制来看,CW[AC]的值成为影响AC队列发送数据和发送数据失败后重新竞争获得信道的关键因素。CWmin和CWmax值虽然实现了不同业务间的业务区分,但在网络高负载情况下,同样会导致低优先级业务的“饥饿”现象。

(4)TXOP 的设置。TXOP 反映了获得数据发送机会的队列最大发送数据帧数。如果采用IEEE 802.11e标准中的参考值,就会导致不公平的信道竞争机制在各业务流间更大的不公平。

(5)EDCA算法没有考虑节点的移动性及信道干扰导致误码对网络公平性的影响。

基于此,为提高无线网络的公平性、网络性能及不同业务流的QoS 保证,FEDCA 算法对EDCA 算法中的AIFSN、CWmin、CWmax 和TXOP 四个参数依据公平性原则进行调整,以保证移动节点间和不同等级业务间的公平。

2 FEDCA算法实现

基于以上分析,本节详细讨论无线网络中FEDCA算法具体实现过程。

2.1 FEDCA算法的实现

为保证移动节点间和同一节点内的不同等级业务流的公平,FEDCA算法实现过程可以概括为:加权轮询调度、拥塞窗口CW动态调整、公平因子计算 及TXOP调整。

(1)加权轮询调度。FEDCA 算法执行模型如图2所示。

图2 FEDCA算法执行模型

加权轮询调度的思想是为保证各等级业务间的公平性,给每一子队列分配一个权值,根据不同的权值来调度不同子队列中的数据,而不是采用EDCA算法中的最小退避窗口的队列获得数据发送的机会。其具体的实现过程为每一子队列AC 分配一个对应的权值W[AC](该权值表明该子队列可以连续发送数据的次数),按轮询的方式为每个子队列发送数据,如果某一子队列内的数据不够发送Wi 次或为空,转到下一子队列准备发送数据,如此轮流执行。

(2)拥塞窗口CW 动态调整。为保证各移动节点间和同一移动节点内不同等级业务的公平性和提高系统的吞吐量,FECDA 算法中所有业务等级的拥塞窗口CW 都采用先指数退避在线性退避的方式,即对任意队列在CW<CWmin时,每发生一次失败的传输,其拥塞窗口增大为原拥塞窗口的2倍;当CWmin<CW<CWmax时,每发生一次失败的传输,其拥塞窗口线性增加;CW》CWmax,拥塞窗口维持CWmax不变。

(3)公平因子计算及TXOP 调整。在每一轮轮询数据转发完成后,为保证同一移动节点中不同等级业务流的公平,FEDCA算法通过对每一子队列的公平因子F[AC] 计算,并与事先规定的公平因子FD[AC] 比较,通过比较的结果确定下一轮调度的每一子队列大小TXOP[AC]=(TXOP[AC]+ΔTXOP[AC]),其具体变化关系如图3所示。

[AC]与ΔTXOP[AC]关系示意图“》

图3 公平因子F[AC]与ΔTXOP[AC]关系示意图

2.2 FEDCA算法讨论

从FEDCA算法实现过程来看:

(1)公平性的度量。FEDCA算法采用比例公平作为衡量公平性的标准,也就是每一类业务占用的网络资源是成比例的,这样除了可实现各等级业务间的公平外还可提高系统的吞吐量。FEDCA算法对每一类业务分配一个公平因子

用于表明该类业务在本移动节点共享资源中可使用的份额;(2)在加权轮询调度时给每一子队列分配的权值W[AC]与关系FD[AC]:

(3)FEDCA算法通过轮询的方式确定可以发送的队列数据,在发送成功后其拥塞窗口CW的变化方式与EDCA算法一致,发送失败后拥塞避免的过程也与EDCA算法一致,但其拥塞窗口的变化采用FEDCA 算法描述中的方法,目的是维护节点内各等级业务的公平性。

(4)每一业务等级的公平因子FD[AC] 计算公式为:

式中:Total-Length[AC]为本轮轮询调度中队列AC被调度的数据总长度;为保证每一队列能计算出该队列在本轮调度中的公平因子FD[AC],对某一队列应维护一个计数器,用于统计该队列调度的数据长度Total-Length[AC]。

(5)ΔTXOP[AC]的计算公式为:

如图3 所示,为了体现不同业务间的区分ΔTXOP[高] 》 ΔTXOP [低];F [高] max 》 F [低] max ;F[高] min [低] min 。同时图3给出的ΔTXOPmin[AC]与Fmin[AC]示意图,具体的各参数的设置可根据网络实际情况和网络管理员自行设定。考虑到无线网络运行的可靠性和稳定性,本算法建议ΔTXOP [AC] max不超过TXOPmin[AC]的参考值的1/8 为宜,最大不能超过1/4。

3 仿真分析

为了验证FEDCA 算法性能,通过网络仿真工具NS2 实现该算法和EDCA 算法的性能比较。仿真所采用的拓扑结构如图4所示,仿真时物理层采用802.11b,物理带宽设为11 Mb/s,4个移动节点分别发送VI、VO、BE和BK四种业务流,这4种业务流占总负载的比例为1∶1∶2∶4。分别对FEDCA、EDCA 算法的吞吐量、端到端的延迟及等级业务流量VO、VI的变化情况进行了仿真,仿真结果如图5~图7所示。

从图5的仿真结果可以看出,同一等级的业务采用FEDCA 算法业务量的变化幅度及变换频率比EDCA算法要小,而且不同等级的业务量比例基本保持不变,从而保证了移动节点内各业务间的公平性;从图6仿真结果可看出FEDCA算法能提高各类业务的吞吐量,从而提高了无线信道利用率;同时图7的仿真结果表明FEDCA算法能减少数据帧的平均转发延迟,从而提高了网络的QoS。

图5 VO、VI吞吐量随时间变化图

图7 平均延迟与负载仿真图

4 结论

本文提出的FEDCA算法能够根据网络的公平性要求,通过加权轮询的方式解决移动节点内的不同子队列竞争信道的问题,改变拥塞窗口的变化方式,提高系统的吞吐量和公平性,通过公平因子调整EDCA算法中的TXOP参数,最终实现提高无线Mesh网络的公平性和改善网络性能的目的。通过仿真分析可知,FEDCA 算法保证了移动节点间和节点内不同业务的公平性,同时能够提高网络性能和实现对不同业务的区分。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 无线
    +关注

    关注

    31

    文章

    5415

    浏览量

    172949
  • 路由器
    +关注

    关注

    22

    文章

    3690

    浏览量

    113400
收藏 人收藏

    评论

    相关推荐

    DSP算法验证与模拟

    :优秀的信号处理软件包,网上有免费的高校版,读者可自行下载使用。在用如上的工具模拟挑选出了合适的算法组合以后,设计师就可应用高级语言在PC机上进行实际编程验证,设计出DSP的软件处理流程,并给出最终可实现的软件需求
    发表于 07-16 14:28

    综合应用FPGA相关软件quartusII算法实现及其仿真验证

    在红外线的增强处理中,怎么用quartusII进行算法实现及其仿真验证,重点是直方图算法,这里面的代码是什么。
    发表于 05-06 23:01

    【TL6748 DSP申请】电气设备放电脉冲时频分析算法仿真及硬件实现

    国内外近些年的研究热点。本项目旨在采用时频分析算法提取放电脉冲特征量,通过仿真、编写软件验证算法的实用性,并硬件(dsp)
    发表于 10-09 15:10

    如何去实现无线网络中的FEDCA算法

    EDCA算法是什么?如何去实现无线网络中的FEDCA算法?怎样去验证FEDCA算法性能?
    发表于 05-24 06:31

    高阶QAM定时同步算法的MATLAB仿真及FPGA实现

    本文针对128 QAM调制信号,设计了定时同步算法结构,并且用MATLAB做了仿真验证,最后在FPGA平台上实现了该算法
    发表于 11-23 11:15 6642次阅读

    SVPWM算法仿真实现分析

    SVPWM算法仿真实现分析,有需要的下来看看
    发表于 04-14 17:06 9次下载

    基于System Generator的Rife算法设计实现仿真分析

    FPGA中更快、更准确地实现。给出了Rife算法的描述和实现结构框图,并在System Generator和ISE环境中进行了仿真验证了设
    发表于 11-18 09:01 2476次阅读
    基于System Generator的Rife<b class='flag-5'>算法</b>设计<b class='flag-5'>实现</b>与<b class='flag-5'>仿真</b><b class='flag-5'>分析</b>

    基于最大最小公平性的功率分配算法

    问题转化为含凸函数的差(DC)规划问题,然后采用凸近似的全局优化算法和对分算法对D2D实现功率优化。仿真结果表明,与只采用凸近似的全局优化算法
    发表于 12-04 11:46 3次下载

    公平高效机会干扰对齐算法

    中选择信道质量最优的通信用户,然后通过设计次基站的有用信号空间完全消除主小区用户对次基站的干扰,进一步在次小区中以干扰泄露最小化为原则选择通信用户,最后从理论上分析证明了公平性和最小传输块数等性能。仿真结果表明
    发表于 01-08 15:59 0次下载
    <b class='flag-5'>公平</b>高效机会干扰对齐<b class='flag-5'>算法</b>

    基于FPGA的Cordic算法实现的设计与验证

    本文是基于FPGA实现Cordic算法的设计与验证,使用Verilog HDL设计,初步可实现正弦、余弦、反正切函数的实现。将复杂的运算转化
    发表于 07-03 10:18 2646次阅读
    基于FPGA的Cordic<b class='flag-5'>算法</b><b class='flag-5'>实现</b>的设计与<b class='flag-5'>验证</b>

    利用Winpcap实现网络流媒体识别算法并对其性能进行分析验证

    本文通过分析网络流媒体交互过程的特征,以应用层传输协议对应的关键特征字串为判断依据,设计了一种基于Winpcap的网络视频流识别算法实现了对网络流媒体的发现,并通过实验对本文设计的算法
    的头像 发表于 01-08 08:13 2726次阅读
    利用Winpcap<b class='flag-5'>实现</b>网络流媒体识别<b class='flag-5'>算法</b>并对其性能进行<b class='flag-5'>分析</b>和<b class='flag-5'>验证</b>

    PADS分析工具可以进行仿真验证的原因分析

    了解 PADS 分析工具如何通过设计仿真,识别电路的关键区域。我们将考察如何分析并快速实现信号与电源完整性,并找出 PADS 最适合用于桌面仿真
    的头像 发表于 05-16 06:25 1.2w次阅读
    PADS<b class='flag-5'>分析</b>工具可以进行<b class='flag-5'>仿真</b>和<b class='flag-5'>验证</b>的原因<b class='flag-5'>分析</b>

    人工智能的算法公平实现

    我们解决了算法公平性的问题:确保分类器的结果不会偏向于敏感的变量值,比如年龄、种族或性别。由于一般的公平性度量可以表示为变量之间(条件)独立性的度量,我们提出使用Renyi最大相关系数将公平
    发表于 11-06 17:04 2611次阅读
    人工智能的<b class='flag-5'>算法</b><b class='flag-5'>公平</b>性<b class='flag-5'>实现</b>

    Canny图像算法仿真验证原理与实现

    先读为快,以结果为导向,本期介绍Canny图像算法仿真验证,后续将介绍canny算法原理与实现,欢迎持续关注,公众号设置星标,不错过每一次推
    的头像 发表于 10-15 09:10 1854次阅读

    ReentrantLock公平锁与非公平锁的源码分析

    今天为你带来的是 ReentrantLock 公平锁与非公平锁的源码分析,它是 Java 并发包下的一个 java.util.concurrent.locks 实现类,
    的头像 发表于 10-13 14:13 614次阅读
    ReentrantLock<b class='flag-5'>公平</b>锁与非<b class='flag-5'>公平</b>锁的源码<b class='flag-5'>分析</b>