找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于IEEE802.11 DCF的优化竞争窗口算法

[复制链接]
admin 发表于 2013-3-22 03:42:39 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 针对现有IEEE802.11 分布式协调功能DCF(Distribute Coordination Function)方式下吞吐量较小、时延较大的缺点,提出了一种优化竞争窗口的算法。该算法通过增加最小竞争窗口和最大竞争窗口,改进其退避算法,并综合考虑到了公平性的问题。经OPNET仿真验证表明,该算法提高了系统的吞吐量,减小了接入时延。
关键词: IEEE802.11分布式协调功能; 竞争窗口; 二进制退避算法
       近几年,IEEE 802.11无线网络得到迅速的发展[1],对无线网络的性能和服务质量提出了更高的要求。同有线网络相比,无线网络在性能和服务质量方面还有很大差距,这除了其物理传输介质的固有特点之外,实现介质共享的MAC层协议是一个非常重要的因素。无线局域网(WLAN)IEEE802.11协议中,MAC层上最基本也是目前使用最广泛的接入方式是被称为分布式协调功能DCF(Distribute Coordination Function)的随机竞争接入方式。
     DCF方式下,WLAN的吞吐量和接入时延随着网络中的活动节点(Active Nodes)数和初始竞争窗口大小(CWmin)而变化[2],系统的初始竞争窗口大小由物理层特性决定,例如使用直接序列扩频时,CWmin为;使用跳频扩频时,CWmin为15[3]。也就是说,在DCF协议中,初始竞争窗口是固定的,并不能随着网络中竞争节点数的多少而变化。根据网络中活动节点数的变化来动态调整初始竞争窗口的值,是改进DCF性能的一种行之有效的方法[4-6]。但目前获得网络中的活动节点数目都是基于某种估计算法获得的。这些估计算法不能精确地反映网络中真实的活动节点数,所计算出的优化初始竞争窗口大小也不会很精确,如果初始窗口设置不正确,对网络性能的影响将会很大。参考文献[7]提出了增加初始窗口为63,并在退避到最大窗口时,将最大窗口置为初始窗口来参与竞争,这在一定程度提高了系统的公平性,但此算法也增加了冲突发生的概率。本文提出的优化竞争窗口的算法用OPNET软件[8]进行了仿真,与原有算法及参考文献[7]中的算法相比,在吞吐量及时延上都有良好的改善。
1 DCF的二进制退避机制和竞争窗口的分析
     DCF协议基于载波监听多路访问/冲突避免(CSMA/CA)机制实现有竞争的信道共享。当一个节点需要发送帧时,要调用载波侦听机制来确定信道的忙/闲状态,如果信道忙,它将推迟,直到信道连续处于空闲状态达到分布协调功能的帧间间隔DIFS(Distributed Coordination Function Interframe Space)时间,为了避免发送冲突,这时该节点在发送前必须经过一个附加的退避周期,产生一个随机的退避时间(Backoff  Time),并存入退避计数器。如果退避计数器中已经包含有一个非0的值,则不再执行产生随机退避时间的过程。
     产生退避时间的方法如下:Backoff Time=Random( )* aSlotTime其中,Random( )是均匀分布在[0,CW]范围内的随机整数,CW是介于由物理层特征决定的最小竞争窗口CWmin和最大竞争窗口CWmax之间的一个整数值,即CWmin≤CW≤CWmax。aSlotTime 是由物理层特性决定的一个时隙的实际长度值,对于DSSS(直接序列扩频),一个时隙的长度是 20 μs。每个节点在发送数据前,监听信道的状态,如果信道闲,则将退避时间计数器减1;如果信道忙,则退避过程将被推迟,退避时间计数器被冻结。当终端检测到信道的空闲时间≥DIFS时,退避过程重新被激活,继续递减。当退避计数器递减到0时,节点就可以执行发送。图1显示了退避过程。
    2012110705215965353415.gif
       节点A发送时,节点B、C、D都有帧要发送,等待信道连续空闲DIFS时间后,进入退避阶段,每个节点在CW内随机产生一个退避时间。因为节点C所产生的退避时间最短,它的退避计时器最先减至0,开始发送帧,节点B和D的退避计时器被冻结。在节点C传送过程中,节点E也有帧要发送,进入等待过程。信道空闲DIFS后,节点B和D的退避计时器解冻,节点E产生随机退避时间。因为节点D的退避计时器最先减至0,所以节点D获得发送机会。
     由图1可以看出,每一个节点都要维护一个CW参数,CW的初始值为CWmin。在帧的第一次传输时,CW等于最小竞争窗口CWmin。当一个节点发送失败时,说明当前的网络负载较大或者链路状况不好,该节点的CW就会增加一倍。以后,该节点每次发送失败而重传时,CW都会增加一倍,即CW=2m(CWmin+1)-1,其中m为重传次数。当CW的值增加到CWmax时,即2m(CWmin+1)=(CWmax+1),再重传时CW的值将保持CWmax不变,直到该节点发送成功,或者达到了最大重传次数限制,CW将被重新置为CWmin, CW的变化方式如图2所示。
    2012110705215968477416.gif
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-23 18:13 , Processed in 0.055531 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表