1 概述
DCF 机制是 IEEE 802.11 标准的核心接入机制,网络中所有节点都应该具备该功能。DCF 主要采用带有冲突避免的载波侦听多路访问(Carrier Sense Multiple Access Collision Avoidance, CSMA/CA)协议,当使用 CSMA 时,一个想要发送数据的站点首先侦听传输煤质一段定长时间,如果这段时间内传输媒介被侦听为空闲,则站点可以发送数据;反之,如被侦听为繁忙,则站点需将发送后延。这样的侦听机制,运用于分布式网络,传输具有突发性和随机性的数据,支持竞争期非实时业务。
在有线局域网中,如以太网 IEEE 802.3 中,使用的也是 CSMA 机制,但具体实现方法是 CSMA/CD,即带有冲突检测的 CSMA 协议,这是由于无线网络不同于有线网络的传输介质,在无线网络中实现冲突检测比较困难,所以使用冲突避免机制来代替冲突检测,尽量减小各个发送节点发生碰撞的概率,提高网络整体性能。该冲突避免协议使用物理层和 MAC 层共同检测信道,具体是使用信道空闲评估(Clear Channel Assessment,CCA)算法来判断信道是否空闲,通过测试天线能量和接收信号强度指示(Received Signal Strength, RSSI)来完成的。
DCF 是 IEEE 802.11 WLAN 基本的媒体访问控制方法,具体包括载波检测机制、帧间隔和随机退避规程。它有两种工作方式,基本访问方式和请求发送/允许发送(Ready to Send/Clear to Send,RTS/CTS)方式。其中基本访问方式是移动终端的基本接入方式,RTS/CTS 则是它的可选方式。
1.1 帧间间隔
为了避免发送冲突,IEEE 802.11 规范 MAC 规定,所有的站点在发送完成后,必须等待一段时间才能发送下一帧,等待的这段时间称为帧间隔 IFS,这段时间内继续侦听信道。帧间隔的长短取决于要发送的帧的类型,高优先级站等待的时间短些,低优先级则需要等待更长的时间,若低优先级的站还未发送而其它站的较高优先级的帧已经到达队列,那么媒体变为忙态,低优先级的站点推迟发送, 这样就减小了碰撞的概率。常见的 IFS 如图 2.8 所示。不同的帧间隔依赖于物理层所定义的比特速率,帧间隔长度也与介质定义的 时间空隙有关。
(1) 短帧间间隔(Short Inter-Frame Space),即 SIFS,它是帧间间隔里最短的,SIFS 是节点在已经占用信道并将持续发送数据时所使用的。如果此时有其它站点要使用信道,则必须等待信道空闲且持续空闲更长的时间才能参与信道竞争,SIFS 主要用于 CTS、ACK 等帧的发送,由于 SIFS 具有较高的优先级,所以并不会被其它节点所打断。SIFS 的时长由 aSIFSTime 定义,对于 IEEE 802.11b 标准,SIFS=10μs,对于 IEEE 802.11a,IEEE 802.11g 以及 IEEE 802.11n 标准,SIFS 的长度为 16μs。
(2) PCF 帧间间隔(PCF Inter-Frame Space,PIFS),仅在 PCF 模式下实现,为在非竞争期获得信道的访问权而使用的,比 DIFS 小,所以优先级大于 DCF,一旦 PCF 站点在监测到信道空闲时间超过这个时隙,就可以进行由中心控制的无竞争的通信。PIFS 时长定义为:
PIFS = aSIFSTime + aSlotTime
式中,aSlotTime 代表时隙长度,对于 IEEE 802.11a,IEEE 802.11g 以及IEEE 802.11n 标准,aSlotTime=9μs,因此 PIFS=25μs,对于 IEEE 802.11b,aSlotTime=20μs,因此,PIFS=30μs。
(3) DCF 帧间间隔(DCF Inter-Frame Space),这是 DCF 方式下传输数据帧和控制帧所使用的时间间隔,站点在检测到信道空闲且持续时间超过DIFS,那么该站点就可以参与信道竞争。DIFS 时长定义为:
DIFS = aSIFSTime + aSlotTime
(4) AIFS(Arbitration Inter-Frame Space),即仲裁帧间隔,适用于 QCA 服务,工作在 EDCA(Enhanced Distributed Channel Access)模式下。不同的优先级业务竞争信道前,需要等待不同的 AIFS 时间,用来替代 DIFS。
(5) EIFS(Extended Inter-Frame Space),即扩展帧间间隔,当节点判断信道发生碰撞或者接收到错误的帧数据,那么必须等待 EIFS 时间才能重新进行数据发送,这是为了让接收站点能有足够的时间发送确认帧(ACK)。
1.2 二进制指数退避算法
1.3 载波监听
1.3.1 虚拟载波监听
虚拟载波监听是由网络分配矢量(Network Allocation Vector,简称 NAV)所提供。802.11 的帧通常会包含一个 duration 位,用来预定一段介质使用时间。NAV 本身就是一个计时器,用来指定预计要占用介质多少时间,以微秒为单位。工作站会将 NAV 设定为预计使用介质的时间,这包括完成整个处理必须用到的所有帧。其他工作站会由 NAV 值倒数至零。只要 NAV 的值不为零,代表介质处于忙的状态,此即虚拟载波监听功能。当 NAV 为零时,虚拟载波监听功能会显示介质处于闲置状态。
1.3.3.2 物理载波监听
物理载波监听功能是由物理层所提供,取决于所使用的介质与调制方式。要为射频介质打造物理载波硬体相当不易(更确切的说法是十分昂贵),原因是除非采用昂贵的电子零件,否则收发器将无法同时进行收发的动作。此外,由于隐藏结点随处可见,物理载波监听并无法提供所有必要的信息。
1.3.4 工作方式
1.3.4.1 基本接入方式
基本接入方式的工作过程如图 2.10 所示,从图中可以看到,当信道从忙态转为空闲时,任何一个站点要发送数据帧,不仅要等待 DIFS 间隔,而且还要进入各自的竞争窗口,启用退避算法,以便重新接入信道。当信道中存在多个站点准备发送时,遵循这样的工作流程就减少了冲突的发生。 基本接入方式并不能有效解决隐藏终端问题
想发送数据的站先检测信道,通过上面所述的物理层和MAC层机制共同检测信道是否空闲,若检测到信道空闲,则在等待一段 DIFS 时间且退避计数器减到 0 便可发送数据。
CSMA/CA 机制的基础是载波侦听。IEEE 802.11 根据 WLAN 的特点提出了两种载波检测方法:
a) PHY 层的直接载波检测 CS(Carrier Sense)
根据接收的天线信号检测信号能量或根据接收信号的质量来估计信道的忙闲状态,基本的 CSMA/CA 就是利用物理层的直接 CS 检测信号的;
b) MAC 层的虚拟 CS(Virtual Carrier Sense)
通过MAC帧头或 RTS/CTS 中的网络分配矢量(NAV) 实现。VCS 机制的目的是让发送站点将它将要占用信道的时间(包括目的站发回确认帧所需的时间)通知给所有其它站,在此期间其它站都不会发送数据,从而减少了冲突的发生。网络中每个站点都维护自己的网络分配向量(Network Allocation Vector,NAV)。当该站检测到信道中传送的 MAC 帧首部的“持续时间”字段时,就调整自己的 NAV,NAV 规定了完成这次传输所花费的时间,信道在这段时间之后就转入空闲状态。
1.3.4.2 RTS/CTS接入方式
为了更好的解决隐藏终端带来的问题,DCF还有另一种可选的工作方式,即RTS/CTS接入方式,在发送数据帧之前对竞争信道进行预约。
图2.11给出了RTS/CTS方式的数据传输过程,在等待了DIFS(以及随机退避时间),发送的站点首先发送一个固定长度的帧RTS来预约竞争信道,周围站点(不包括目的站点)收到RTS帧后,依据里面的持续时间域(Duration Field)来更新自己的NAV值,记录下信道被占用的时间。当信道一直为空闲状态直到经过SIFS时间后,目的站点将发送一个回应帧CTS,作为对源站点的应答,CTS帧也包括了DurationVector,所以此时其它非源站点的设备收到CTS帧后也会相应地更新自己的NAV值。收到RTS和CTS的站点集合不一定相同,那么在发送站点和接收站点的传输范围内的所有站点都可以收到通知,它们在接入信道前必须等待一段时间,也就是说,这个机制为发送站点预留了信道,所以这种机制有时也被称为虚拟预留机制的原因。
基本接入方式没有信道预约过程,(竞争信道成功后)通过直接发送数据帧和接收应答ACK的方式进行数据传输,因而,基本接入方式的网络性能与数据帧的大小有着直接的关联性,在碰撞率较小的条件下能获得较好的性能。当网络负载较重,亦即数据帧较长时,基本接入方式的站点的碰撞判断时间会大于采用RTS/CTS接入方式的站点;如果网络中站点数较少、数据帧长度不大且碰撞率比较小的情况下,RTS/CTS方式会带来额外的开销,从而降低WLAN的整体性能。
参考文献:
1.802.11无线权威指南
2.CWNA官方学习指南
3.无线局域网DCF性能分析与公平性改进研究
4.Ad Hoc网络技术