信道接入协议
存在基于竞争机制的信道接入协议和基于预留机制的信道接入协议
CSMA/CA属于基于竞争机制的信道接入协议
CSMA/CA协议
目前唯一能够支持Ad Hoc模式的商用标准是802.11x 系列,包括802.11b、802.11a、802.11g(注意802.11n并不支持Ad Hoc模式)。
国内外学者在研究无线自组网时,通常也以802.11x系列为基础,搭建实验系统。
802.11x系列所采用的接入协议就是CSMA/CA协议。
DCF是CSMA/CA接人控制的基础,它允许网络中的节点无须通过中心控制节点实现彼此交互,从而支持了无中心的自组网工作模式。
尽管CSMA/CA定义了基于中心节点控制的、无竞争的PCF模式,但PCF模式在商用芯片中的应用并不常见。
在介绍CSMA/CA的工作流程之前,我们首先需要了解一下CSMA/CA协议的帧间间隔(Interframe Space,IFS)。
为了避免传送的数据发生碰撞,CSMA/CA协议规定,所有节点在发送完一帧后,必须等待一个很短的时间才能发送下一个帧,这段很短的时间就是帧间间隔。
帧间间隔
CSMA/CA定义了四种不同的帧间间隔,其中三种用于信道接入控制。
- 短帧间间隔(Short Interframe Space,SIFS)。
- SIFS 是长度最短的帧间间隔,用于高优先级的传输场合,通常用来分隔一次会话内的各个帧,例如RTS帧、CTS帧、ACK帧,以及过长的MAC帧分片后的各帧。
- SIFS之后可以传送的帧的优先级较高,例如AP的探询帧和PCF模式下AP发送的各帧。
- 不同标准中规定的SIFS的长度不同,在802.11b和802.11g中,SIFS的长度为10 μs;在802.11a中,SIFS的长度为16 μS。
- 点协调功能帧间间隔(PCF Interframe Space,PIFS)。
- PIFS 主要用于PCF工作模式,实现无竞争的信道接入。
- 有数据发送的节点必须等待一个PIFS以后才可以传送。
- PIFS 的长度是一个SIFS加一个时隙时间(SLOT Time)长度。
- 时隙时间长度在802.11b中定义为20μs,802.11a中定义为9 μs,802.11g中定义为20 μs或9μS。
- 分布式协调功能帧间间隔(DCF Interframe Space,DIFS)。
- DIFS 主要用于DCF工作模式,当信道空闲时间超过DIFS时,节点就可以发送下一帧。
- DIFS 的长度为一个SIFS加两个时隙时间(SLOT Time)长度。
扩展帧间间隔( Extended Interframe Space, EIFS)。
当某个节点有数据帧需要发送时,如果信道是空闲的,且上一次发送的帧正确接收,则等待一个DIFS之后,节点获得信道控制权,准备发送数据。
- 如果上一帧的传输出现错误,则等待一个EIFS之后,节点获得信道控制权,开始发送数据。
- 如果节点准备发送的数据帧是广播帧,就直接发送,并不用等待收到ACK确认帧
- 如果节点发送的是单播帧,则开始RTS/CTS握手过程,并在收到CTS帧后开始发送单播数据帧。
具体过程如图所示:
发送节点和接收节点的邻居节点在收到RTS/CTS帧后,设置NAV ,表明信道被占用,不能发送数据。
NAV指出了信道被占用的时间长度,由RTS或CTS帧首部中的持续时间字段指定。
NAV也被称为虚拟载波侦听(Virtual Carrier Sense)技术。
接收节点在正确接收单播数据帧后,等待一个SIFS后,发送ACK确认帧,同时NAV结束。
如果节点要发送数据时,信道是被占用的,则节点需要继续监听信道,直到信道空闲,即要等待如图中ACK帧发送结束。
这时,节点需要执行退避算法。
在经过一个DIFS后,进入争用窗口(ContentionWindow)期或称退避窗口(BackoffWindow)期。
争用窗口期由若干个SLOT组成,SLOT的个数通常是2的指数倍数减1。
以直序列扩频的802.11协议为例,初始的争用窗口由31个SLOT组成。
每当出现一次重传,争用窗口的竞争期间就移至下一个2的指数倍数,即以[31、63、127、255、511、1023]的顺序递增。
注意直序列扩频的802.11协议限制争用窗口最大长度为1 023个SLOT,即增加到1 023个SLOT,也就是第6次重传后不再增加。
发送节点会在当前争用窗口中随机选择一个时隙,这相当于设定了一个退避定时器。
发送节点每经历一个SLOT就检测一次信道,如果退避定时器到零,即已选择的时隙到来时信道是空闲的,则节点可以将数据帧发送出去,退避定时器复位。
如果已选择的时隙到来时信道是被占用的,则冻结退避定时器,等到信道再次空闲后,再经过一个DIFS继续计时,直到退避定时器到零。
目前,大多数无线自组网验证系统基本都是采用802.11 的MAC协议。
但在实际应用中该协议存在诸多问题。
例如,该协议并没有完全解决隐藏终端和暴露终端问题,造成暴露终端不能发送,严重影响了多跳转发条件下的网络利用率。我们搭建了一个采用静态路由的五跳语音传输实验,根据我们做的实测结果,五跳时传输时延最大可以达到1min,这样的性能指标完全不能应用于实战。