摘 要: 在对EDCA(Enhanced Distributed Channel Access)的业务分级策略和工作方式进行研究与分析的基础上,提出动态调整TXOP参数设置的控制算法DA-TXOP(dynamic adjust TXOP)。仿真结果表明,与EDCA中TXOP机制相比,改进机制在系统的吞吐量和信道利用率等性能上都有明显提高。
关键词: IEEE802.11e EDCA; DA-TXOP; 服务质量; 吞吐量

基于IEEE 802.11标准的无线局域网近年来得到了快速、广泛的应用,受到设备制造厂商的普遍支持。大多数网络均采用了IEEE 802.11 DCF 协议[1]。尽管DCF(Distributed Coordination Function)协议可以比较方便地组建网络,但由于各种新业务的相继出现,对网络性能有了更高的要求,不同业务在吞吐率、带宽、延时等方面有着不同的要求。为了在 MAC 层为网络业务传输提供一定程度的 QoS 服务支持,IEEE 802.11 工作组在 DCF 协议的基础上进一步推出EDCA(Enhanced Distributed Channel Access)协议。EDCA可以为不同类型的业务提供有优先级区分的信道接入传输服务,以使得网络中高优先级实时业务获得较低优先级普通业务优先的 MAC 层传输。
由于网络状况的复杂性,EDCA中的静态参数设置并不能使系统性能实现最优,很多研究表明[2-4],在高负载状况下由于网络中有较高的冲突率,EDCA的性能表现并不如人意。因此,对协议参数的自适应调整以保证不同网络负载情况下的协议性能成为当前研究的热点。其中节点竞争发送机会TXOP(Transmission Opportunity)[1]对协议的性能有着重要影响,许多研究[3-4]对不同信道情况的TXOP设定进行了研究和实验分析,但它们仅通过设定具体值进行比较分析,并没有提出对TXOP的设置方法。本文先对EDCA的业务分级策略和工作方式进行了研究和分析,然后根据碰撞和重传次数提出动态调整 TXOP 参数设置的控制算法DA-TXOP(dynamic adjust TXOP)。它能够在网络拥塞时提高TXOP值,在系统负载较轻的情况下减小TXOP的值。
1 IEEE 802.11e EDCA机制分析
1.1 EDCA机制的业务分级策略及工作方式

EDCA协议是在DCF协议基础上经过QoS支持扩展而来的,能够对不同的优先级业务提供不同的QoS服务。IEEE 802.11e EDCA定义了8类业务类TC(Traffic Category)和4类接入类别AC(Access Category),8类TC分别映射至4类AC的队列中:AC_VO、AC_VI、AC_BE和AC_BK,分别代表语音(Voice)类、视频(Video)类、尽力而为(Best Effort)类和背景(Background)类。表1为优先级和接入类别的映射关系。

 不同的AC采用不同的参数设置控制其信道接入传输过程,这些参数包括CWmin/CWmax、AIFS 以及TXOP。AIFS由DIFS 扩展而来,其大小由式(1)确定:

其中AIFS[ACi]是AIFS[i]中包含的时隙个数,aSlotTime是时隙时间。EDCA为不同的业务定义了不同大小的CWmin和CWmax。这样当业务回退时,拥有较小竞争窗口的业务就会比较快地回退,尽早地占用信道发送数据,从而拥有较高的优先级。高优先级的AC通常采用较小的AIFS设置。TXOP机制用于节点在成功获得信道占用权之后,无竞争地突发传输多个同一AC队列中的数据。突发传输的持续时间长度受参数设置 TXOPlimit 的限制。节点在TXOPlimit 时间内享有持续的信道占用权,可以直接进行数据传输而无须再为每个数据传输执行退避过程。显然,越小的CWmin、CWmax和AIFS则意味着站点可以以更大的几率接入信道,从而对应的优先级也越高。
802.11e EDCA的基本访问机制如图1所示。从图中可以看出,不同AC的AIFS间隔与其他帧间间隔的关系,一个AIFS至少是一个DIFS的时间。在EDCA中,退避计数器的取值范围为[0,CW-1],其中不同的AC拥有不同的CW。

CWmin、CWmax、AIFS和TXOP应该结合在一起进行设置。需要注意的是:为高优先等级数据设置的CWmax值与AIFS值之和应该大于为低优先等级数据设置的CWmix值与AIFS值之和,这样,低优先级业务就不会完全被封锁。
1.2 EDCA的TXOP机制
 采用 TXOP 机制,节点在成功竞争获得信道传输机会之后将连续传输多个数据。各个站点在检测到信道空闲时,发送的是MAC服务数据单元MSDU(MAC Service Data Unit),IEEE 802.11 DCF机制每次只允许发送一个MSDU数据单元,发送成功后站点失去信道,如果想要发送下一个数据就需要进行新一轮的信道竞争。而EDCA中的TXOP机制就是允许站点在一定的时间(TXOPlimit)内发送多个MSDU而无需再次竞争信道,可以间隔 SIFS 时间连续地传输 TXOPN[i]个数据,如图2所示,这种机制可以降低连续发送数据的点到点时延,提高信道的利用率。EDCA中的TXOP机制也可以称为竞争空闲脉冲CFB(Contention Free Bursting)模式。

TXOP通过竞争产生或通过HCF授权,研究实验证明TXOP[AC]不应超过传送最大尺寸的数据帧的时间。由IEEE 802.11e EDCA为每个AC典型配置的TXOP[1]见表2,其中尽力而为业务和背景业务的TXOP为零,这表示它们除了传送RTS/CTS帧只能发送一个数据帧了。EDCA机制能够很好地支持高优先级业务传输。

除了使用HCF为各个AC设定的TXOP的值之外,许多研究都对不同信道情况下的TXOP设定进行了研究和实验分析。参考文献[5]中对系统饱和下CFB的性能分析后指出,系统在饱和状态下,CFB增加了区分业务的能力,提高了系统性能。参考文献[6]中分析:系统在非饱和状态下,CFB能明显地降低视频数据和语音业务的时延,系统整体丢包率明显减少。CFB增加了区分业务的能力,提高了系统性能。CFB模式下系统以牺牲低优先级的业务为代价保证了高优先级业务的服务质量。
可以得出,节点的TXOPN[i]参数设置得越大,信道的有效利用率就越大,同等情况下系统可以承载更多的业务数据传输。但是增大TXOPN[i]后却带来了另一个问题:节点的数据传输延迟随着TXOPN[i]的增加而增加。当网络中存在延迟敏感的业务时。延迟的增加将导致节点在传输这些业务时无法满足其延迟方面的QoS要求。因此,TXOPN[i]参数的设置需要考虑增强系统吞吐量性能和保证数据传输延迟要求两者之间的相互制约关系。

IEEE802.11e EDCA 中TXOP机制的分析与改进相关推荐

  1. Android 中View的绘制机制源代码分析 三

    到眼下为止,measure过程已经解说完了,今天開始我们就来学习layout过程.只是在学习layout过程之前.大家有没有发现我换了编辑器,哈哈.最终下定决心从Html编辑器切换为markdown编 ...

  2. ns2.35中的IEEE802.11e模块移植

    关于IEEE802.11e的内容就不多说了,直接开始移植工作. 之前的802.11e模块主要是在ns2.88上开发的,不能直接在ns2.35上使用,下面就给出移植的补丁. 根据我做的补丁对ns2.35 ...

  3. Linux内核中锁机制之完成量、互斥量

    在上一篇博文中笔者分析了关于信号量.读写信号量的使用及源码实现,接下来本篇博文将讨论有关完成量和互斥量的使用和一些经典问题. 八.完成量 下面讨论完成量的内容,首先需明确完成量表示为一个执行单元需要等 ...

  4. Android AdapterView 源码分析以及其相关回收机制的分析

    前言 忽然,发现,网上的公开资料都是教你怎么继承一个baseadapter,然后重写那几个方法,再调用相关view的 setAdpater()方法, 接着,你的item 就显示在手机屏幕上了.很少有人 ...

  5. HBase建表高级属性,hbase应用案例看行键设计,HBase和mapreduce结合,从Hbase中读取数据、分析,写入hdfs,从hdfs中读取数据写入Hbase,协处理器和二级索引

    1. Hbase高级应用 1.1建表高级属性 下面几个shell 命令在hbase操作中可以起到很到的作用,且主要体现在建表的过程中,看下面几个create 属性 1. BLOOMFILTER 默认是 ...

  6. linux 信号量锁 内核,Linux内核中锁机制之信号量、读写信号量

    在上一篇博文中笔者分析了关于内存屏障.读写自旋锁以及顺序锁的相关内容,本篇博文将着重讨论有关信号量.读写信号量的内容. 六.信号量 关于信号量的内容,实际上它是与自旋锁类似的概念,只有得到信号量的进程 ...

  7. [转]Android中handler机制的原理

    Andriod提供了Handler 和 Looper 来满足线程间的通信.Handler先进先出原则.Looper类用来管理特定线程内对象之间的消息交换(MessageExchange). 1)Loo ...

  8. 彻底搞懂 JS 中 this 机制

    彻底搞懂 JS 中 this 机制 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.com/jasonGeng88/blog 目录 this 是什么 this 的四种绑定规 ...

  9. 大话Linux内核中锁机制之原子操作、自旋锁【转】

    转自:http://blog.sina.com.cn/s/blog_6d7fa49b01014q7p.html 多人会问这样的问题,Linux内核中提供了各式各样的同步锁机制到底有何作用?追根到底其实 ...

最新文章

  1. html css样式div属性,div css
  2. springboot静态资源访问
  3. mysql实现row_number()和row_number() over(partition by)
  4. OpenCASCADE:Modeling Algorithms模块几何工具之来自约束的曲线和曲面
  5. excel 行高 上下留白_拒绝加班,工作中最常用的57个Excel小技巧来了!
  6. NOIP2019 Emiya家今天的饭
  7. Ubuntu文件上锁了,怎么打开???亲测有效
  8. 平方剩余(例题+详解+代码模板)
  9. RTX5 | 内存池04 - 共享内存用于线程之间的通讯(阻塞方式)- 使用信号量
  10. php soap 两个版本_Ceontos 安装php7以上的版本
  11. 【三维深度学习】多视角场景点云重建模型PointMVS
  12. 源码分析Dubbo服务注册与发现机制RegistryDirectory)
  13. anyRTC 解决方案——双师在线课堂、1VN、大型公开课
  14. 多域名linux面板,宝塔面板操作多个域名做301跳转
  15. 矩阵方程求解最快c语言算法,求助! C语言用矩阵求解方程组
  16. Profession
  17. 相亲交友小程序,案例:情深深之恋
  18. 苹果电脑上好用的几款复制粘贴工具
  19. 工程图字体宋体仿宋_宋黑仿变各种字体的审美禀赋
  20. 数据库系统概论(第五版) 王珊 第三章课后习题答案

热门文章

  1. [Noip模拟赛] Polygon
  2. 白书P61 - 点集配对问题
  3. Python异常处理实例
  4. 关于webcontrols的TreeView中转义符的处理问题
  5. centos 升级mysql_CentOS 7下升级MySQL5.7.23的一个坑
  6. 中空字符串有什么用_中空玻璃中还要充氩气、还要防泄漏、你知道吗?
  7. python类变量继承_python 类的成员及继承
  8. 无法读取内存属于错误吗_深入了解 JavaScript 内存泄露
  9. 8.2 动力系统的贝叶斯推理
  10. linux export_symbol 变量,linux EXPORT_SYMBOL