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