《对80211分布式协调功能的初步探讨.doc》由会员分享,可在线阅读,更多相关《对80211分布式协调功能的初步探讨.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流对80211分布式协调功能的初步探讨.精品文档.对802.11分布式协调功能的初步探讨201312172001高建康通信与信息系统目 录1 无线局域网802.11 MAC层11.1 IEEE 802.11 MAC协议概述11.2 IEEE 802.11 MAC中的主要技术21.2.1 虚拟载波监听技术21.2.2 帧优先级的设置31.2.3 随机退避机制41.2.4 节能管理42 IEEE 802.11 MAC的网络工作方式52.1 DCF接入方式52. 2 PCF接入方式92.3二进制指数退避算法的不公平现象102.4 两种工作方式的对比和
2、局限性113 RTS/CTS-DCF协议性能分析123. 1 RTS/CTS-DCF机制原理133.2 RTS/CTS-DCF存在的问题183.3 RTS/CTS-DCF的改进算法思想194 总结22对802.11分布式协调功能的初步探讨1 无线局域网802.11 MAC层IEEE 802.11 MAC层提供了多种服务,同时它也定义了两种不同的介质接入的方法:分布式协调功能(DCF)和点协调功能(PCF)。其中PCF接入由于需要接入点协调整个覆盖区域内的站点,故使用较少。MAC层给站点提供信道的接入和数据的传输,这就直接关系到整个网络信道资源的合理分配和利用,从而影响到网络的性能表现。虽然在物
3、理层上新的技术不断推出,但是发展相对缓慢的MAC层技术却极大地制约了无线网络的性能提升。IEEE 802.11 MAC本身协议存在着诸多的不足。例如,协议的本身是想提供对所有站点的公平信道接入。但是,由于协议设计上的一些不足,导致了信道接入的公平性问题。1.1 IEEE 802.11 MAC协议概述IEEE 802.11协议族的MAC层协议和IEEE 802.3中的以太网协议非常相似,都是在一个媒体之上支持多个用户来共享这一媒体资源,具体做法是由数据发送者在发送数据前先进行网络的可用性检查。在IEEE802.3协议中,是由一种称为载波侦听多路接入/冲突检测(Carrier Sense Mult
4、iple Access with Co11ision Detection,CSMA/CD)的机制1来完成各个用户之间的协调的,这个协议解决了在Ethernet上的各个网络设备如何在公共的线缆上进行传输的问题,利用它检测和避免当两个或两个以上的网络设备需要同时进行数据传送时发生在网络上的冲突。而由于无线信道的特性,在802.11无线局域网协议中,冲突的检测在无线通信系统中是无法办到的。鉴于这个差异,IEEE 802.11协议族标准对CSMA/CD进行了一些调整,采用了新的载波侦听多重接入/冲突避免( Carrier Sense Multiple Access with Collision Avo
5、idance,CSMA/CA)机制。CSMA/CA机制可以利用握手的方式来解决隐藏终端的问题,同时也利用ACK信号来避免冲突的发生。也就是说,只有当客户端收到网络上返回的ACK信号后才能确认送出的数据己经正确到达目的。IEEE 802.11协议族所传输的业务包括异步的数据业务,以及对传输时延有着严格要求的各种实时业务,例如语音业务和视频业务。为了适应异步数据业务和实时业务各自不同的特点,802.11协议族规定了两种不同的MAC层访问机制,一种是分布式协调功能( Distributed Coordination Function,DCF),被设计用来传输异步数据,同时也是支持PCF机制的基础。D
6、CF机制可以应用于所有的站点,无论其拓扑结构是基本网络配置还是BISS:另一种访问机制称为点协调功能( Point Coordination Function,PCF),是可选的,它只可用于基本网络配置的拓扑结构。PCF的工作原理主要为轮训机制,即由一个点协调器( Point Coordinator,PC)来控制令牌的循环。本文所作研究以DCF为基础,假设网络不使用PCF工作模式。1.2 IEEE 802.11 MAC中的主要技术1.2.1 虚拟载波监听技术由于天线半双工的工作方式和信号空间传播的复杂性,无线网络相对于有线网络更易发生冲突,这个问题在物理层难以解决。IEEE 802.11在MA
7、C层通过使用虚拟载波监听技术解决了这个问题,每个工作站维护一个网络分配矢量NAV(Network Allocation Vector),用NAV来指示网络的忙闲状态,每个发送站在发送帧时估计网络忙的时间,即NAV,并把这一时间信息装入帧头,其他站接收到此帧后如发现本地NAV小于此时间则利用此时间更新本地NAV。各个工作站通过这种虚拟载波监听技术和物理层的载波监听技术来判断网络的忙闲状况。1.2.2 帧优先级的设置CSMA/CA算法要求发送的帧之间有一定的间隔,当介质空闲一定时间后才能尝试访问介质。IEEE802.11中有四种帧间隔,其长度由小到大依次分别是SIFS(Short interfra
8、me space),PIFS(PCF interframe space),DIFS(DCF interframe space),EIFS(Extended interframe space)。如图1所示。 DIFS PIFS 介质忙 SIFS 图2-1 帧间隔SIFS主要用于确认或响应帧的获得介质访问权的时间间隔。PIFS主要用于中心控制方式,无竞争期的站点获得介质访问权的时间间隔。DIFS用于分布控制方式,竞争期的站点获得介质访问权的时间间隔,这种时间间隔使得工作于PCF方式下的工作站获得比工作于DCF方式下工作站享有更高的帧发送优先级。EIFS是工作于DCF方式下,用于FCS值错误导致接收
9、数据错误的情况下作为等待时间,为接收站发送确认(ACK)帧提供足够的时间。通过不同的帧间隔,不同优先级的帧能获得相应的介质访问优先权。1.2.3 随机退避机制退避时间选取如下:T=CWR an dom()S lot Ti me其中Random()是随机数,SlotTime是总传播时延,CW是竞争窗口,它是SlotTime的整数倍。CW在CWmin和CWmax之间选择,当一帧进入发送缓存时CW初始化为CWmin,以后每次尝试重传后CW加倍直至CW max。在退避状态下,检测到信道空闲时退避计时器开始计时,其间如检测到信道忙,则退避计时器停止计时,直至信道空闲时间大于DIFS后计时器恢复计时。在这
10、种机制下,当多个站延迟并进入随机退避状态后,退避值最小的站将在竞争中获得介质访问权;在竞争中失败的站会保持退避状态直到下一个DIFS。这样在下一次竞争中这些站可能会比新进入退避的站有更短的退避时间,避免了有的站永远不能获得介质访问权的可能。1.2.4 节能管理由于在移动环境下对笔记本计算机节能的要求,IEEE 802.11规定了节能的工作模式。工作在节能模式的工作站有两种工作状态:睡眠状态和唤醒状态。睡眠状态的工作站关闭收发器以节约能耗。在扩展服务集(ESS)无线局域网之中,由AP缓存发往节能站的数据,节能站在一定时间间隔内苏醒以便接收信标帧,并判断有没有被缓存的数据。在独立基本服务集(IBS
11、S)网络中,没有AP提供缓存服务,向节能站发送数据的站需事先发送提醒接收的控制帧,节能站定时被唤醒以检查有没有需要接收的数据,如果有就发送质询帧,发送站接收到质询帧立即发送该数据帧。2 IEEE 802.11 MAC的网络工作方式在MAC层,802.11标准定义了两种不同的接入方式:分布式协调功能(DCF)和点协调功能(PCF)。前者支持无竞争型实时业务及竞争型非实时业务,后者建立在前者工作方式之上并且仅支持竞争型非实时业务,如图2-2所示。分布式协调功能中,各个站点地位平等,采用竞争的方式来共享共同的信道,故在无中心的Ad hoc网络中,采用分布式协调功能。而点协调功能需要一个管理整个网络的
12、中心结点,整个网络中信道的分配由中心结点完成,不存在冲突,故在基础设施架构网络中应用。但由于管理机制的引入导致网络的管理变得更加复杂,反观竞争的方式却简单实用,因此,在现有的接入网中,也多采用分布式协调功能。 提供无竞争分布式协调功能(DCF)点协调功能(PCF) 服务 提供竞争服务 并作为PCF的基础 MAC 协议 图2-2 IEEE 802.11协议基本框架2. 1 DCF接入方式802.11中的分布式协调功能是一种基于分布式控制的竞争式共享介质方法,采用带冲突避免的载波侦听多路访问(CSMA/CA)技术5。在该技术中,所有站点侦听信道的同时决定是否发送报文,并在发生冲突后采用二进制指数退
13、避(BEB)算法进行冲突避免。同时,所有成功接收报文的站点都要立即返回一个正确确认(ACK)报文给源站点。如果超过一定的时间没有ACK到达的话,源站点会安排重传。DCF比较简单,健壮性较好,在实际应用中获得了广泛支持。标准规定DCF是节点的默认工作方式。(1)载波侦听机制CSMA/CA机制里,载波侦听是非常重要的技术。载波侦听在发现介质空闲时,站点就可以启动介质竞争过程,竞争信道。与有限局域网中的完全依赖物理层实现不同,在无线网络中,除了物理检测方式,还采用了虚拟载波侦听机制,用逻辑方法对信道的占用情况进行预测。信道占用预测虚拟载波侦听不是通过介质上的信号情况来侦听载波,而是从MAC帧中携带的
14、相关信息来实现一种逻辑预测,简单说,就是每个帧携带发送站下一个帧将持续时间的信息,相关各站点根据这个信息对信道占用进行预测。如果一个站点没有听到持续时间字段,比如侦听载波时,帧的持续时间字段已经传过,站点只能依靠物理层检测。虚拟载波侦听利用网络分配矢量(Network Allocation Vector, NAV)实现。NAV是一个倒计时计数器,当倒计时为0时,虚拟载波检测就认为介质处于空闲。所以,虚拟载波检测技术就是在适当的时候以适当的值设置和更新NAV计时器。载波侦听机制融合了NAV的状态和物理层信号侦听的状态来判定信道的忙闲。当任何一个状态表明信道是忙的话,那么载波侦听机制就认为信道忙;
15、反之,两个状态都表明信道空闲的话,那么载波侦听机制才认为信道闲。(2)基本CSMA/CA协议CSMA/CA协议是减少多个共享信道的站点间发生冲突的可能性的机制。由于载波侦听功能的作用,在信道由忙变空闲的时刻,冲突发生的可能性最大,这是因为多个站点都可能在等待信道重新变得空闲。这就使得采用随机退避过程从而解决信道竞争冲突的机制成为必要。这个协议的基本思想如图2-3所示。 图2-3 基本机制原理在每个帧间的时间空闲被称为帧间间隔(IFS)。一个共享信道的站点使用载波侦听功能,并根据特定的时间间隔来决定信道是否空闲。IFS时间被定义为信道上的时间间隔,而IFS的取值也由相对应的物理层来决定。IEEE
16、 802.11定义了三种IFS(实际上有第四种EIFS,但我们在此不对它作讨论)短帧间隔(SIFS),PCF帧间隔和DCF帧间隔,它们的长度依次从短变长。最短的SIFS是在控制帧发送之前的时间间隔,它能保证控制帧拥有最高的优先级发送;PIFS是PCF方式下AP轮询帧发送之前的时间间隔,它保证了AP比其他站点有更高的优先级;而DIFS是最长的,它是信道空闲的一个判定标志。(3)两次握手和退避过程在DCF模式下,当一个站点发送前,它会首先侦听信道。如果信道忙,它就会推迟传输直到信道变得空闲;空闲之后达到DIFS时间后,站点开始退避过程(back-off procedure)。站点根据退避算法选择一
17、个退避时间,并设置一个退避时间计数器。当信道是空闲的时候,计数器在每个时间片减1。如果信道忙,那么计数器停止计数。当计数器减少到零,站点马上发送报文。当发送报文后,源站点会等待从目的站点返回的ACK响应。如果ACK在指定时间内收到,那么就认为报文被成功接收;如果没有收到ACK报文,那么源站点就会返回退避过程并随后尝试重传。(4)退避算法二进制指数退避竞争窗口(CW)参数初始值为CWmin。在每次发送MPDU失败之后,发送站点重传计数器会增加一,只要不大于最大重传计数值,竞争窗口就会在序列中取下一个值,直到达到最大值CWmax。一旦它达到CWmax,它会一直保持这个值除非它被重置。CW值的序列是
18、从CWmin到CWmax的一个二进制指数增长的数列减一。(5)带RTS/CTS功能的CSMA/CA协议无线网络比较难以解决的一个问题是隐藏工作站问题(即发送站检测不到另一个站也在发送数据,因而在接收站发生碰撞)。工作站B在工作站A和工作站C的信号传播范围之内,而工作站C在工作站A的信号传播范围之外。当工作站A向工作站B发送数据时,而工作站C检测不到工作站A发出的数据而认为信道空闲也发送数据,这时在接收站B就发生了碰撞。为了解决这个问题IEEE 802.11引入了RTS/CTS机制,在此机制下每个站在访问介质时在竞争窗口内随机选择一个时隙,选择时隙较早的站获得介质控制权.获得介质访问控制权的站并
19、不是直接发送数据分组而是向接收站发送RTS帧(Ready to send),接收站回复CTS帧(Clear to send),其他非RTS帧目的站的站点接收到RTS帧之后读取其中的传输时间预留信息,也就是网络分配矢量NAV,并据此更新本地NAV。收到CTS帧的非CTS帧目的站也同样读取其中的网络分配矢量并更新本地NAV,这样无论是位于发送站传输范围的站还是位于接收站传输范围的站都能了解介质忙闲状况,解决了隐藏工作站问题。R TS/CTS机制对于带宽效率的影响主要有以下几个方面:解决了隐藏工作点带来的冲突,提高了带宽利用率。利用短控制帧(RTS or CTS)的冲突代替长数据帧的冲突,提高了带宽
20、的利用率。增加的控制帧增加带宽开销。预留空间传输时间可能引起的不必要带宽开销。2.2 PCF接入方式PCF是一种集中式的控制方法,在基础设施架构网络(infrastructure network)中,设置一个协调点采用轮询机制控制所有站点对信道的访问。它保证了无冲突的服务,希望能更好的应用于实时语音和图像的传输。在PCF方式下,一个单独的接入点(AP)控制了信道,在AP中存在一个点协调机制。当系统处于PCF方式时,AP会给每个需要发送的站点安排合适的时间片,保证了时延方面的要求。由于中心点协调机制的存在,PCF一般能提供更低的时延,并能够舍弃其他的冲突控制机制。一个站点要发送和接收数据,必须要
21、得到AP的选择和允许。因为使用了更高级的优先接入,AP总能发布选择请求(Polling Request)给各个站点用以数据传输。但是,PCF只能在有基础设施架构网络中使用,同时AP的故障会导致整个网络的瘫痪,所以给网络的管理上增加了复杂度,应用目前远远没有DCF广泛。在本文中不对PCF方式进行更多的讨论和研究。2.3二进制指数退避算法的不公平现象一个合理设计的信道接入协议应该对共享信道的所有站点提供公平的接入服务,或者说,尽量对绝大多数站点提供比较公平的服务。在CSMA/CA协议中,为了避免周期性的重复碰撞,在一次碰撞过后,所有站点都会推迟一个随机的时间后再次竞争信道。这个随机的时间称为退避时
22、间。退避时间直接决定了一个站点得到信道的可能性退避时间越短,竞争到信道的可能性越大。所以,一个不合理设计的退避算法就可能导致信道接入的不公平性。在一次成功的发送之后,竞争窗口会立刻回到初始大小。所以,在下一轮竞争中,这些刚刚成功发送了的站点会有更大的机会获得较短的退避时间,从而有更大的可能竞争到信道。这样,不公平现象就发生了。CW是竞争窗口的大小,在特定的物理层参数CWmin和CWmax之间取值,即CWminCWCWmax。竞争窗口(CW)参数初始值为CWmin,并在每次不成功的发送MPDU从而导致发送站点重传计数器增加之后,在序列(CW=2n-1)中取下一个值,直到达到最大值CWmax。一旦
23、它达到CWmax,只要重传次数不大于最大重传次数,它会一直保持这个值除非它被重置为CWmin。也就是说,数据帧的发送过程,在各个状态中转换。回退状态越高,CW值越大,因此,节点发送的可能性越小。当节点A有一帧要发送,它就执行回退过程,再尝试发送。结果可能成功或者失败。如成功,下一帧就执行同样过程;如失败,则选择更高状态,再次尝试发送。其中,状态K值在0,m内选择,m是最大回退状态,CW0=CWmin,CWm=CWmax。节点A在状态K时,发送了一帧后,如成功,则CW重新设置为CWmin;如失败,而且重传次数小于最大重传次数,就选择min(k+1,m)作为下一个状态,m是最大回退状态。一旦CW达
24、到CWmax,只要i不大于最大重传次数16,它会一直保持这个值除非它被重置为CWmin。可以看出,在对竞争窗口(CW)的调整上,BEB算法在任何情况下都采用了相同的处理方式发送成功就返回到初始值CWmin,发送失败就加倍直到最大值为止。这种无视当前网络实际情况的算法会导致网络性能的低下。当网络负载很小时,大的竞争窗口可能会导致信道不必要的空闲;相反,当网络负载很大时,小的竞争窗口可能会导致更多的冲突和退避。在这两种情况下,信道都没有得到充分有效的利用。2.4 两种工作方式的对比和局限性DCF机制作为IEEE 802.11无线局域网基本的访问机制,大多数商业产品都支持这种机制。这种机制支持异步数
25、据传输,在低负载环境下运行较好,而时间限制的服务,如VOPI电话、视频会议需要特定的带宽、延迟和抖动。DCF机制也仅仅支持尽力而为的服务,没有基于数据流的区分和优先级的规定,不适合实时业务,但无线网络中的一些关键技术,比如RTS/CTS,分段/重组等等一定程度上进行了性能的弥补。PCF机制在IEEE 802.11无线局域网协议中是一种可选的机制,通过轮询和应答机制提供无竞争的传输,在某种程度上这种方式类似于令牌网,控制器控制着令牌,使得这一机制适合特定延迟、抖动要求的传输。PCF中存在一些问题:首先,中心轮询的方案是有疑问的,在同一BSS中两个无线站点间所有的通信必须通过AP,这样浪费了信道带
26、宽,当这种流量增加,许多信道资源被浪费。其次,CP与CFP合作模式导致不可预知的信标延迟。另外,被轮询无线站点的传输时间是难控制的,因为传输的帧大小不固定,引入了变化的传输时间,并且被轮询站点的物理层速率根据变化的信道状况而改变。针对己有的IEEE 802.11无线局域网MAC层机制的局限性,需要引入具有Qos保证的MAC机制,IEEE 802.11工作组就是为了保障无线局域网的服务质量而设立。在已有的DCF机制上,再引入轮询机制,把两种机制的优点进行结合,这是对已有的无线设备进行改进的趋势。3 RTS/CTS-DCF协议性能分析IEEE802.11中定义了三种基本的访问机制:CSMA/CA以
27、及一种解决隐蔽终端问题的可选方法,最后是提供延迟受限服务的无竞争轮询方法。前两种可以总结为分布式协调功能(DCF,Distributed Coordination Function),第三种方法称为点协调功能(PCF,Point Coordination Function)。IEEE 802.11 MAC层中最基本的机制是采用CSMA/CA协议的DCF机制,DCF机制的性能直接影响到无线局域网的网络性能。DCF机制中有一些可以选择的参数,用户可以针对不同的网络情况对之进行调整以提高性能。要正确的调整这些参数,首先必须知道这些参数和DCF机制性能之间的关系。为了便于从理论上得出这些参数和DCF机
28、制性能之间的关系,采用了一种基于竞争窗口的时间分析方法,有效分析了有限站点情况下网络的流量性能。3. 1 RTS/CTS-DCF机制原理(1)隐藏和暴露终端问题在以太网中,站点依靠接收传输信息来执行CSMA/CD的载波侦听功能。无线网络则不同,由于节点移动引起的信道衰落、噪声干扰以及多径效应等因素影响,或者由于障碍物的存在,两个节点之间不能监听到对方,则这两个节点就互为隐藏节点。如图3-1所示,站A、站B、站D,站A正向站B发送数据包,站D也要向B发送,由于D站在A站发送信号的范围外,未侦测到A也在向B发送数据,故A和D同时将数据包发送至B,引起数据包冲突,最终导致发送至B的信号都丢失了。这就
29、是“隐藏终端”的问题。“隐藏终端”多发生在大型单元中(一般在室外环境),这将带来效率损失,并且需要错误恢复机制。当需要传送大容量文件时,尤其需要杜绝“隐藏终端”现象的发生。图3-1 隐蔽终端问题另外,A在B的传输范围内。C不在B的传输范围内,但是C可以侦听到B的传输过程。当B向A发送信息的过程中,如果C有数据要向D发送,C会因为监听到B正在发送信息,而认为信道忙,那么C不能向D发送。这就是“暴露终端”问题。图3-2 暴露终端问题为了解决隐藏与暴露终端问题,802.11定义了两个控制包RTS(Request To Send)和CTS(Clear To Send),通过在源节点和目的节点之间进行R
30、TS/CTS交换的机制来避免用于存在隐藏节点而导致的丢包。这种机制是可选的,但是每个IEEE 802.11网络中的结点都实现了这些功能,以保证可以响应RTS/CTS控制分组。(2)RTS/CTS协议RTS/CTS协议即请求发送/允许发送协议,相当于一种握手协议,主要用来解决“隐藏终端”问题。在802.11参数配置中,若使用RTS/CTS协议,同时设置传送上限字节数一旦待传送的数据大于此上限值时,即启动RTS/CTS握手协议:首先,A向B发送RTS信号,表明A要向B发送若干数据,B收到RTS后,向所有基站发出CTS信号,表明已准备就绪,A可以发送,其余基站暂时“按兵不动”,然后,A向B发送数据,
31、最后,B接收完数据后,即向所有基站广播ACK确认帧,这样,所有基站又重新可以平等侦听、竞争信道了。图3-3显示了在源节点和目的节点之间进行RTS/CTS控制帧交换的过程。如果源节点要发送一个单播数据包DATA,那么它在侦听到信道空闲并等待了DIFS(再加上随机后退时间)后,源节点首先发送一个RTS控制帧。RTS控制帧和其它数据帧的优先级是相同的。RTS帧的头部Duration字段中包含有完成数据传输过程所需的持续时间。这个持续时间指的是传输整个数据帧和其应答包所需要的所有时间。收到这个RTS的每个非目的节点都要根据Duration字段来设置各自的NAV(Network Allocation V
32、ector),这个NAV指定了每个接收到此RTS帧的非目的节点可以试图访问无线介质的最早开始时间,也就是说在NAV这段时间内,这些非目的节点不会试图去占用信道,而是保持沉默,直到源节点与目的节点之完成数据的传输过程。如果目的节点收到RTS帧,在等待SIFS间隔后,它用一个CTS(Clear To Send)控制帧进行应答。CTS帧的头部也包含Duration字段,所有接到这个CTS的节点必须再次调整它们的NAV。源节点接收到CTS后,经过一个SIFS间隔把DATA送出去。目的节点在接收到DATA帧之后再等待一个SIFS间隔,返回一个ACK帧。这样传输过程就完成了,这时每个节点NAV表明介质空闲
33、,就可以开始下一个传输周期了。这个过程也被成为“虚拟载波侦听”。在这个过程中,接收到CTS的节点和接收到RTS的节点可能不是同一组节点。这样在发送方和接收方的接收范围内的所有节点都被通知,它们在访问介质之前必须等待足够长的时间以等待数据帧传输过程的完成。也就是说,这个机制通过为数据发送节点预留信道来避免碰撞的发生,从而提高传输性能。在DCF功能中,各个移动节点必须在物理/虚拟两种载波监听结果都为零时才能获得对无线介质的访问权,这就可以在很大程度上减少碰撞的机会,提高传输效率,同时这种短帧交换的方法可以在很大程度上避免由于隐藏节点的存在造成的数据碰撞,尤其是在数据帧较长的时候,这种效果更为明显。
34、RTS/CTS短帧交换方式是避免碰撞,提高网络系统性能的有效措施,尽管短帧交换会带来一定的时间开销。图3-3 RTS/CTS握手协议RTS/CTS也可以部分的解决暴露站点问题。如果在B和A的RTS/CTS交互中,C只能听到B的RTS帧而未听到A的CT帧,C可以分析原因:A可能在C的覆盖范围之外;或者由于RTS帧碰撞而使A未发送CTS帧;或者C在接收CTS的过程中又受到其它站点的干扰。在前两种情况中,C的发送动作都不会影响A的接收。对于第三种情况,C应该采取保守的但是安全的做法,不进行发送。当然,如果在B和A的RTS/CTS交互过程中,C因为正在接收别的站点的数据而未能监听到RTS/CTS帧,则
35、C可能仍然存在隐藏或暴露问题。在使用RTS和CTS来避免隐藏终端和暴露终端问题的情况下,冲突只可能发生在开始发送RTS的时候。两个或更多的站点可以在同一时刻开始发送RTS或是其它数据分组。使用RTS/CTS会导致不可忽略的额外开销,从而导致带宽的浪费和较高的延迟。因此,RTS阈值(threshold)可以决定什么时候使用另外的机制(基本上是在较大的帧长度),和什么时候不用这种机制(帧长较短)。因为,如果数据帧的长度较小,比如小于100字节,使用RTS/CTS反而可能降低网络的吞吐率、增加通信延迟,因此在IEEE 802.11中RTS/CTS使用与否是可选择的。由于无线环境的复杂性,RTS/CT
36、S机制仍然不能完全保证数据帧的正确接收。这里有无线信道本身的误码的原因,也有其它站点的干扰原因。那么,在帧长度相同的情况下,无线链路出现错帧的可能性比有线链路要高的多。在位出错率相同的情况下,帧长度较短的话,帧的出错率会降低。因此,IEEE802.11提供了帧分段(Fragmentation)模式,如图34所示。但是,用户数据的分段机制对用户应该是透明的。图3-4 IEEE802.11的用户数据的分段模式如图3-4所示,发送方首先发送一个RTS控制分组。这个RTS分组的Duration Field包括第一个分段和其应答包传输所需要的所有时间。其它站点收到RTS,设置NAV;数据的接收方发送CT
37、S,其它站点再次调整NAV,这些都与前面所讲的相同。分段模式的新的特点就是它在frag1中包括了另外一个持续时间值。这个Duration Field包括第二个分段和其应答包的传输时间。然后,frag1的接收方在SIFS间隔后,直接用ACK1应答。这个ACK1预留了下一次传输所用的时间。如果frag2不是要传输的最后一个分段,它应该为第三个连续的传输预留信道。如果是最后一个分段,接收方应答第二个分段,但是不再预留信道。在ACK2后,所有的站点在等待DIFS间隔之后,都可以再次竞争对介质的访问权。3.2 RTS/CTS-DCF存在的问题我们对无线网络的协议和无线网络中的业务流进行了分析,发现以下两
38、个问题会降低无线网络的性能。1)大量研究表明,采用RTS/CTS接入方法能提高网络的吞吐率,降低冲突所浪费的时间,尤其是当网络中移动节点数比较多的时候,RTS/CTS的优势会更明显。但是RTS/CTS方法在无线局域网中使用时,会导致带宽的浪费,降低网络的吞吐率。当源节点向目的节点发数据包时,根据前面所描述的RTS/CTS方法,首先要发送RTS控制包来预留信道,如果目的节点收到RTS就会返回一个CTS,然后再传送数据。在多跳的环境下,目的节点返回CTS是非常必要的,因为其他节点有的只能听到目的节点,但是听不到源节点,如果目的节点不发送CTS,这些节点就不知道源节点正在向目的节点发送数据,这时它们
39、有可能发送数据,这样目的节点就会听到冲突,从而导致数据包的重传,这就是隐藏终端问题。所以在多跳的场景下就必须用RTS/CTS来预留信道,只有在源节点发送了RTS和目的节点也返回了CTS的情况下,信道才被成功的预留下来。在无线局域网中,由于所有的移动节点必须和AP进行通信,所以每个移动节点都在AP的通信范围内,而某个移动节点并不一定能听到所有的其他移动节点。因此当移动节点向AP发送数据时,有可能存在隐藏终端问题,所以在无线局域网中用RTS/CTS接入方式还是非常有必要的;但是当AP向某个移动节点发数据包时,不存在隐藏终端问题,只需AP发送RTS,就可以成功的把信道预留下来,移动节点再返回CTS是
40、对无线带宽的一种浪费,这将降低无线局域网的吞吐率。2)现在网上常用的服务是基于TCP协议,如FTP、HTTP等。我们对无线局域网的业务进行测量,发现主要的业务流都是下行的,也就是说是大部分业务流都是由于移动节点从位于有线网中的服务器下载所产生的。在无线节点用TCP协议下载数据的时候,根据TCP协议,服务器向无线节点发送数据包的同时,无线节点的TCP层必须发送ACK反馈接收信息,TCP层的ACK一般只有几十字节(标准的ACK为40字节)。根据网络的分层思想,TCP层的ACK相对于底层来说就是数据,所以无线节点的介质访问子层就必须把每一个TCP层ACK封装成单独的小数据帧(frame),然后发送出
41、去。分析中可以看出,数据帧越小,信道利用率就越低,网络的性能就会越差。所以无线节点在发送TCP层ACK的时候会降低无线网络的信道利用率和吞吐率。3.3 RTS/CTS-DCF的改进算法思想基于前面的分析结果对现有的DCF协议进行了改进。有两个主要的目标:一是要使无线节点尽可能少的单独的发送小的数据包(如:TCP层的ACK、Negative ACK、Selective ACK等);二是要使无线节点发送尽量少的发送控制包CTS。当TCP层有数据包要发送时,TCP会把这个数据包传给IP层,然后IP层把它放到IP层和链路层的接口队列里,链路层检查接口队列来判断需不需要竞争信道,发包的时候从接口队列里取
42、包就可以了。我们改进的DCF协议如下:当AP有数据要发给某个无线节点时,和标准DCF协议一样,AP首先要竞争信道,然后发送RTS控制包,但是当接收节点收到RTS后,并不是简单的像标准DCF协议定义那样发送一个CTS,而是检查上层接口队列里是不是有小数据包。如果没有,则简单的发送CTS,这时的操作和标准DCF是一样的;如果有,则发送该小数据包给AP,而不发送CTS。为了不破坏网络协议的分层思想,对链路层协议进行改进不需要链路层查看数据包的IP和TCP包头来判断数据包的类型,只是根据包的大小来选择发送。由于TCP层的ACK有很多种,如: negative ACK, Selective ACK等,而
43、且TCP和IP的头部都有很多可选项(Option),所以TCP层ACK的大小并不是一个定值。我们定义了一个帧大小阈值Frame _Threshold,长度小于Frame_Threshold的数据包都被认为是小数据包。当无线节点收到从AP来的RTS后,只需查看队列里是否有小于Frame_Threshold的数据包就可以了。无线节点的算法描述(收到AP来的RTS后的算法)如下:收到AP发来的RTS;检查上层的接口队列中是否有小数据包(即:查找是否有长度小于Frame_Threshold的数据包);if (队列中存在小数据包)把该包从队列中取出,并发送给AP;else直接向AP发送标准的CTS控制包
44、;当AP收到来自无线节点的反馈包后,首先要检查这个包是数据包还是CTS控制包。由于CTS包比所有的数据包要小,而且CTS的大小是固定的,所以只需要根据包的大小就可以判断是不是CTS了。如果是数据包,就把这个捎带的小数据包取出来传到IP层,同时向无线节点发送正常的数据包;如果是CTS,则操作和标准DCF协议一样,直接向无线节点发送数据包。AP的算法描述(收到RTS反馈包后的算法)如下:发送RTS后,并收到无线节点的反馈包;获取该包的大小frame_size;if (frame_size =CTS的包长)按标准的DCF,向无线节点发送数据包;else把这个捎带的小数据包传给IP层;同时向无线节点发
45、送正常的数据包;这样改进有两个好处:在得到一次信道后传输了两个数据包:一个TCP的数据包和小的数据包(绝大多数是TCP层的ACK,NACK, SACK等),这样不仅有利于提高无线信道的利用率,而且有利于增加TCP的发送速率(ACK反馈比较快,从而增加了TCP发送窗口的大小);由于TCP的ACK非常小只有几十字节(相对于TCP的数据包1500字节来说),所以并不会使其他节点的延迟增加很多,如果反馈的数据包比较大的话,会使其他节点的等待时间过长,产生严重的不公平性问题,所以我们把阈值Frame_Threshold定为80字节(TCP层标准ACK大小40字节,再加上常用的TCP/IP头部选项大小)。
46、减少了需要无线节点单独发送的小数据包,使无线节点一直处于无包状态,这样它们就不需要竞争信道,从而可以减少WLAN中的发包冲突概率,提高WLAN的吞吐率。4 结论IEEE 802.11的介质访问控制主要有两种工作方式:DCF和PCF。DCF是以分布式控制方式实现介质访问控制,以CSMA/CA为主,以RTS/CTS消息交换机制为辅。PCF是靠网络中心控制站(AP)实现中心控制方式。DCF和PCF这两种方式交替工作,通过不同帧间隔的优先级机制,实现不同类型帧的介质访问优先级。由于无线环境难以检测到冲突,IEEE 802.11的冲突检测由物理层的载波冲突检测和介质访问控制层(MAC)的虚拟载波监听实现。虚拟载波监听使用的是时间预留的方法预测信道的忙闲状况。网络在得知网络忙闲信息后通过随机退避算法减小冲突。