近几年,无线局域网作为传统的有线局域网的一种替代品,在扩展性、移动性和自组性等方面有着有线网络不可比拟的优势,其标准众多,主要包括IEEE委员会制定的802.11系列标准、HomeRF标准和蓝牙标准,其中最著名的是802.11标准。802.11标准的协议体系结构与802.3标准很相似,只制定了物理层和数据链路层的规约。其中的数据链路层仅包含了MAC层的定义,描述IEEE 802.11媒介访问控制的方式以及其站点间的数据交换过程。
IEEE 802.11标准把MAC层定义为两个子层,分别为分布式协调功能(Distributed Co-ordination Function,DCF)和点协调功能(Point Coordination Function,PCF)。
DCF使用CSMA/CA(带冲突避免的载波监听多点接入)协议,它与CSMA/CD相似。通过DCF,802.11站点之间争用信道,想要发送数据的站点通过CSMA/CA接入机制获得数据帧的发送权。
PCF使用集中控制,由中心点轮询的方式来使各个站点获得发送权。PCF基于优先级的访问无竞争的协议,通过优先级来控制站点获得数据发送权的先后。802.11的层次结构如图4-6所示,PCF位于DCF之上,但DCF可直接向上层(LLC层)提供争用服务,PCF向上层提供无争用服务,它们同属于MAC层。
图4-6 802.11协议层次结构
1.使用CSMA/CA的必然性
802.11为什么不继续沿用802.3的CSMA/CD机制来控制局域网的接入呢?CSMA/CD的传输媒介是双绞线和同轴电缆等,这些传输媒介相对于802.11的无线传输媒介受外界的干扰要小得多,并且位于同一条总线上的两个最远站点之间的信号总能互相到达。但在无线局域网中,由于传输信号的强度随着距离的增长会快速衰减,并且很有可能因为碰到物体屏障而停止传播,站点就很容易接收不到信号,这就导致了隐蔽站点问题。
隐蔽站点问题如图4-7所示。站点A与C之间有障碍物以至于两者的信号不能到达对方,B和D因为距离太远以至于彼此的信号也不能到达对方。A先给B发送数据。C此时监听信道,收不到A的信号,便误认为信道空闲,也向B发送数据。此时B同时收到A和C的数据,冲突产生。A和C则互相隐蔽。另外一种情况是B向C发送数据,因为衰减信号到达不了D,D误认为信道空闲,也向C发送数据,冲突又产生了。B和D也互相隐蔽。
图4-7 隐蔽站点问题
在隐蔽站点问题中,两个互为隐蔽的站点同时发送数据时,无法检测到冲突,此时冲突检测失去作用,所以不能采用CSMA/CD来进行媒介访问控制,而采用了带冲突避免的CS-MA方式——CSMA/CA。
另外,从图4-7还可以看出一个问题——暴露站点问题。假设D(暴露站点)相距较远,只能检测到C的信号,这样A与B、C与D实际上可以同时通信,但如果A和B正在通信,C能侦听到B的帧,会认为信道被占而不会给D发送帧。
2.分布式协调功能DCF
DCF基于的信道接入协议为CSMA/CA,它可以解决两个互相隐蔽的站点同时发送数据时所引起的冲突问题。在CSMA/CA接入机制中,每当发送站点发送一个数据帧后,都会等待一个来自接收站点的确认(ACK)。如果没有收到确认,发送站点必须重发该数据帧。这样发送站点就可以知道发送信号时是否产生了冲突。CSMA/CA又分为基本的CSMA/CA接入和带RTS/CTS信道预约机制的CSMA/CA接入方式,下面分别介绍这两种接入方式的工作流程。
(1)基本的CSMA/CA接入
在CSMA/CA接入过程中,当站点有数据待发时,检测信道是否空闲。信道空闲的依据是信道不忙且网络分配向量(NAV)为0。NAV提供了一种虚拟载波监听的方式,它实质是一个计数器,每隔一段固定的时间就减1,直到0。当NAV不为0时,站点便认为信道忙。那么NAV何时更新呢?当站点监听到信道上传输的数据帧且数据帧的目的地不是自己时,便查看此数据帧的持续时间字段,如果该字段的值大于站点保留的NAV,就用该字段的值取代原先保留的NAV,否则,不予改变。此后继续计数器减一的过程。
基本的CSMA/CA接入过程如图4-8所示。DATA为数据帧,ACK为确认帧,DIFS为DCF帧间间隔,SIFS为短帧间间隔。
图4-8 基本的CSMA/CA站点接入过程
单个站点有数据发送时会经历以下过程。(www.daowen.com)
1)当站点想发送数据,并且检测到信道空闲时,会继续监听一个帧间间隔DIFS,如果依然空闲,站点就将数据发送出去。如果在开始检测信道时或者在监听的DIFS时间内出现信道忙,站点将计算一个下次重新发送之前的随机退避时间,设置退避定时器,同时继续监听直到信道空闲。
2)当信道由忙转闲时,站点继续监听一个帧间隔DIFS,如果信道依然空闲,便进入争用窗口,启动退避定时器。当定时器减为0时,信道依旧空闲,站点就夺得发送权,将数据发送出去。
3)如果在退避期间发现信道忙,站点就暂停退避定时器,继续监听。执行步骤2)。
当接收站点接收到数据,经过短帧间间隔SIFS后,向发送站点发送确认应答。前面提到的数据帧中的持续时间字段就是SIFS加上接收站点发送ACK所持续的时间。
其他有数据待发的站点监听到数据帧时,更新NAV值,推迟接入。当NAV值减到0,且信道变为空闲时,继续监听DIFS时长,进入争用窗口,争夺数据的发送权。
(2)带RTS/CTS的CSMA/CA接入
为了解决前面提到的隐蔽站点的问题,802.11标准又在基本的CSMA/CA的基础上增加了RTS/CTS信道预约机制。当站点希望发送数据时,先发送一个请求发送(Request To Send,RTS)帧预约信道,以表明站点希望发送数据的意愿和占用信道所持续的时间。当目的站点收到RTS后,就响应一个清除发送(Clear To Send,CTS)帧。RTS和CTS帧中均包含持续时间字段,该字段用于网络中除发送和接收站点之外的其他站点的NAV值的更新。RTS中持续时间字段=接收站点发送CTS持续时间+发送站点发送数据帧持续的时间+接收站点发送ACK持续时间+3个短帧间间隔SIFS。CTS中持续时间字段=发送站点发送数据帧持续的时间+接收站点发送ACK持续时间+2个短帧间间隔SIFS。
图4-9为带RTS/CTS信道预约机制的CSMA/CA接入过程。当站点想要发送数据,且检测到信道空闲时,会继续监听一个帧间间隔DCF帧间间隔(DCF InterFrame Space,DIFS),如果依然空闲,发送站点发送RTS帧预约信道。接收站点收到后,经过SIFS时长发送CTS帧允许发送站点的发送请求。发送站点接收到CTS帧等待SIFS时长,发送数据帧,接下来的流程与基本的CSMA/CA接入机制一致。其他站点监听到RTS、CTS和数据帧时,查看帧的持续时间字段,更新NAV值,推迟接入。当NAV值减到0,且信道变为空闲时,继续监听DIFS时长,进入争用窗口,争夺数据的发送权。
图4-9 带RTS/CTS的CSMA/CA接入
3.点协调功能PCF
DCF为分布式控制,各站点公平地争用信道,这种机制传输时延无法预测,不适合传输时间敏感的业务,比如多媒体数据。于是802.11标准在DCF的上层提供了一个可选功能,即点协调功能PCF。PCF就是在服务访问点AP对各站点的接入进行集中控制,用类似轮询的方法使各个节点得到发送权。因此PCF向上层提供的是无争用服务。
为了协调位于同一层的DCF和PCF的操作,尽量避免冲突,802.11定义了3种帧间间隔(Inter Frame Space,IFS):SIFS、PIFS和DIFS。
1)短帧间间隔SIFS:在3种帧间间隔中最短,发送ACK和CTS帧等使用SIFS。SIFS在前面的CSMA/CA接入流程中已有说明。
2)点协调功能帧间隔PIFS:PCF轮询时使用。PIFS比SIFS长,比DIFS短,这样有利于AP的正确控制。
3)分布协调功能帧间隔DIFS:在DCF中使用,3种帧间间隔中此帧最长。DIFS在前面的CSMA/CA接入过程中也有说明。
AP使用PIFS,因为PIFS比DIFS短,AP总能先于站点得到控制权,从而对各个站点发布轮询,此时DCF便无法起作用。为了避免这种情况,定义了一种称为超帧的固定长度的时间间隔。图4-10描绘了超帧的使用。在超帧的开始部分,AP向所有设置为轮询的站点发布轮询。在余下的超帧时间内,AP放弃控制权,站点进入争用时段,以DCF方式接入媒介。在超帧结束处,AP利用PIFS争用信道的控制权。如果信道空闲,AP可立刻获得控制,进入下一个超帧周期;如果信道忙,AP必须监听直到信道空闲之后,再等待PIFS时间,然后发布轮询信息,进入下一个超帧周期。下一个实际超帧时段随着AP的推迟接入而相应地缩短了。
图4-10 DCF和PCF相结合的MAC接入
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。