基于CSMA/CA的无线自组网MAC协议性能分析*
2010-08-11胡剑杨平
胡 剑 杨 平
(中国船舶重工集团公司第722研究所 武汉 430079)
1 引言
无线自组织网络(Ad hoc网络)采用分布式技术,没有中心控制节点的管理,具有较强的自组性和机动性,并且网络建立简单,满足了海上军事通信系统对构建高效、顽存、网络化的海上战术无线通信系统的需求。无线自组网最大的特点在于分布式环境下竞争共享的无线信道接入方式和多跳中继的通信模式,由于信道接入协议对信道状态的感知最快,所以,MAC协议能否高效利用有限的无线信道资源对无线自组网的性能起决定性作用,是影响整个网络性能的一个关键因素。本文针对CSMA/CA协议在无线自组网中应用的不足,提出了一种带RTS/CTS握手信号的CSMA/CA协议(CSMA/CA/RTS/CTS),并通过 QualNet[9]仿真软件进行仿真,分析了其在多跳、基于竞争、单信道、单发射功率仿真场景中的性能。
2 基本CSMA/CA协议及性能分析
基本的CSMA/CA无RTS/CTS握手信号,采用两次握手的接入方式,如图1所示。当发送节点检测到信道空闲,并且空闲时间达到一个 DIFS后,直接向接收节点发送数据报文。接收节点在接收到一个数据报文后,等待一个SIFS,并回送一个ACK报文进行确认。如果发送节点没有收到ACK,那么将重新发送数据。如果信道忙,或空闲时间持续不到一个DIFS,则发送节点任选一个随机退避时间,进入冲突避免状态[2,8]。
图1 两次握手接入方式
CSMA/CA协议采用的是二进制指数退避算法。节点最初开始发送时,CW被分配给一个最小值的竞争窗口CWmin,当发送失败后,CW的取值就递增,直到CW达到最大值的竞争窗口CWmax,并一直保持下去。当传输成功后,CW又重新回到初始值CWmin。CWmin和CWmax由节点的物理层参数决定。
假设一个节点的通信范围为R,M个节点随机分布在半径为R的均匀分布的二维空间的圆内,网络在发送数据报文和控制报文的时候是稳定的,不考虑路由。按照文献[3]提出的网络模型的计算方法,计算CSMA/CA协议在多跳无线自组网下的网络性能。
图2 发送节点的隐藏终端HA和接收节点的隐藏终端 HB
图2给出了发送节点A的隐藏区域HA和接收节点B的隐藏区域HB。此时,节点 A正向节点B发送报文。假设节点 A选择任意一个节点作为接收端的概率相等,且节点A随机选择了节点B作为接收端,则可确定节点A的隐藏终端的数目Nh。
在基本CSMA/CA/协议中,隐藏终端能引起DATA报文和ACK报文在传输中的碰撞。可通过分别确定传输DATA报文和ACK报文时隐藏终端的影响,分析CSMA/CA协议的性能。
首先考虑传输DATA 报文的情况。假设在某一时刻,节点 A正向节点B传输DATA 报文,有i(i∈[0,M])个节点等待。如果节点B的Nh个隐藏终端中的任意一个正在传输数据,此时就会产生碰撞。
如果每个节点被选择作为接收端的概率是相等的,则节点A向节点B发送DATA 报文时,Nh个隐藏终端中至少有一个正接收数据的概率Phri为:
如果DATA报文被 Nh个隐藏终端中的一个节点H1成功接收,接收节点 H1就会回复一个ACK信号,这个信号可能会同节点 A向节点B发送的数据产生碰撞(隐藏终端之间同样存在这种情况),而在彼此通信范围内的隐藏终端的平均数为Nhn,Nhn≈Nh/2。若Ps(i)是节点成功发送数据的概率,则Nhn个隐藏终端的一个节点成功接收到来自非隐藏终端的DATA报文的概率Phrsi为:
其次,在节点 B成功接收到来自节点 A的DATA报文后,节点B将向节点A回复一个ACK信号,由图2可知,节点A和B的隐藏终端的数目相等。节点B向节点A回复一个ACK信号就说明节点A已经成功向节点B发送了DATA报文,所以,节点 A的所有相邻节点在侦听信道前必须等待一个DIFS时间。设α是时隙大小,β和γ分别是DIFS和SIFS的持续时间,f是ACK信号的传输时间,则节点B的隐藏终端能够引起碰撞的时间是 Th=(f+γ-β)/α。
设每一个等待的节点在时隙 t开始的时候侦听信道的概率是vi。由于在传输半径为R的圆内有i(i∈[0,M])个节点空闲,那么,节点B的隐藏终端的平均数为◦Nh。设总的流量负载G是系统内一个归一化单位时间内的总报文数,g是一个时隙内某个节点的包到达率,并且 Mg=α G。在基本的 CSMA/CA/协议中,只要在 Th时间内开始发送数据,Nh个隐藏终端中的任何一个节点都能引起碰撞,而至少有一个隐藏节点在 Th时内发送DATA报文的概率Pht ACKi为:
由于存在隐藏终端的问题,节点A向节点B成功发送数据报文的概率会降低Phi=(Phti+Phrsi+(1-Phti-Phrsi)×PhtACKi)×100%,πi是分布式节点的固定概率,节点传输成功和失败时,信道忙的时间分别为T和C。因为所有的节点在系统内都相同,可以得出多跳无线自组网中基本CSMA/CA的吞吐量为:
若空闲节点的平均数目为¯N,则平均报文时延为:
从计算结果可知,基本的CSMA/CA采用的两次握手接入方式不能有效解决隐藏、暴露终端问题,使得网络性能较差,在多跳无线自组网中较少应用。
3 改进的CSMA/CA(CSMA/CA/RTS/CTS)协议及性能分析
由于基本的CSMA/CA无RTS/CTS握手信号,使得网络通信中信号发生碰撞的几率大增,影响了网络的性能。MACA是第一个使用RTS/CTS控制报文来解决无线自组网隐藏、暴露终端的MAC协议,但MACA去掉了载波侦听,只是“部分解决了隐藏终端的问题”[4],因为采用 RTSCTS两段握手信号,缺少链路层确认机制,在发生冲突后要超时重发,降低了网络性能。虽然MACAW对MACA协议进行了改进,增加了DS和ACK链路层确认信号,但由于握手信号较多,增加了协议的开销,传输时延也比较大[5]。
在参考了MACA和MACAW协议后,我们对CSMA/CA协议进行了改进,保留了载波侦听机制,增加了RTS/CTS握手信号,并加入ACK控制报文对链路层进行确认。故采用的报文交换顺序是RTS-CTS-DATA-ACK,如图3所示,这种方式可以避免隐藏终端的问题。只要有数据报文要被发送,发送节点就会先发送一个 RTS。RTS的发送和两次握手方式里报文的发送是一样的,也是为了竞争信道。接收节点在收到RTS后就会回送一个CTS以确定信道。发送节点在正确接收到CTS后,开始发送数据报文DATA。接收节点正确接收到DATA报文后,回送一个ACK进行确认,完成一次成功的数据传输。RTS/CTS报文包括它要花多长时间来发送下个数据报文的信息。因此,与发送节点相邻的其他节点和与接收节点相邻的隐藏终端在这段时间内将不会传输数据。这种来回的交换对于避免隐藏终端问题是很有必要的[6~7]。
图3 四次握手接入方式
在CSMA/CA/RTS/CTS中,当一个节点有DATA报文要发送的时候,这个节点会首先发送一个RTS信号给接收端,接收端在收到RTS信号后等待一个SIFS时间,然后回复一个CTS信号给发送端。RTS的目的就是通知在发送端通信范围内的节点延迟它们的数据发送,而CTS的目的是通知在接收端通信范围内的节点延迟它们的数据发送。发送端和接收端之间成功的RTS/CTS交换为他们之间的数据传输预留了信道,但并不能完全解决隐藏终端的问题[2,8]。
在CSMA/CA/RTS/CTS协议中,成功发送数据的时间 T包括以下几个时间:DIFS时间、带传播时延α的RTS的发送时间、SIFS时间、带传播时延 α的CTS的发送时间、SIFS时间、带传播时延α的数据报文发送时间Tp、SIFS时间以及带传播时延α的ACK的发送时间。设固定长度的报文传播时间为 Th,并且被分为时隙大小为α(传播时延/报文传播的时间)的时隙,分别用θ和τ表示RTS和CTS的发送时间。
图4 在节点H处的碰撞
在图4中,假设在某一个时刻,节点 A正向节点B发送DATA报文,有i(i∈[0,M])个节点空闲。若节点A发送RTS的时候,节点 A的任一隐藏终端也在发送或接收数据,那么节点 A的数据发送就会失败。虽然 RTS是一个很小的信号,但仍然要考虑节点A的隐藏终端的数据接收。这是因为当成功收到RTS/CTS信号的发送端和接收端正在通信的时候,RTS/CTS方式保证了他们的邻居节点都不能发送数据或控制信号。如果节点A的一个隐藏终端正在接收数据,这个隐藏终端就会阻止节点B回复CTS信号,这就使得节点A的通信失败了。设这个碰撞时间为C1,这个时间包括DISF时间,带传播时延的 RTS时间以及SIFS时间 ,即C1=(α+β+θ+γ)/α。
当节点B和节点E同时向节点H发数据的时候,节点A的隐藏终端也能造成对DATA 报文的碰撞。从上节分析可知,节点A的隐藏终端至少有一个收到数据的概率是 Phri,这也是来自节点B的CTS同来自节点E的RTS在节点A的隐藏终端处产生碰撞的概率。式(1)给出了节点A的隐藏终端中至少有一个节点发送RTS的概率,式(2)得出了节点 A的隐藏终端中至少有一个节点成功收到RTS的概率。所以,节点A的隐藏终端能造成从节点A到节点B的数据报文碰撞的概率Pdatai为:
从中可知,碰撞时间包括:DIFS时间,带传播时延的RTS时间,SIFS时间,带传播时延的CTS时间,SIFS时间以及带传播时延的报文发送时间。用C2表示碰撞时间,则:C2=(1+3α+β+2γ+θ+τ)/α。
由于隐藏终端的问题,节点 A成功发送DATA报文到节点B的概率共减少Phi=(Phti+Phrsi
+(1-Phti-Phrsi)×Pdatai),则带RTS/CTS的CSMA/CA协议在多跳无线自组网中的吞吐量为:
平均数据时延为:
4 仿真结果与分析
利用QualNet通信网络仿真软件分别对基本的CSMA/CA和CSMA/CA/RTS/CTS协议在多跳无线自组网下进行仿真,在相同的仿真场景下用到的系统参数为:Tp=2ms(即100个时隙),α=0.02ms,γ=0.01ms,β=γ+2α=0.05ms,f=θ=τ=0.1ms,M=21,CWmin=31,CWmax=1023。仿真假定100个节点随机分布在一个均匀分布的正方形二维空间内,并且有M个节点分布在半径为R的圆内,所有节点都是固定的并且不考虑路由。
图5 CSMA/CA与CSMA/CA/RTS/CTS的吞吐量比较
图5给出了基本CSMA/CA和CSMA/CA/RTS/CTS在多跳无线自组网下吞吐量的理论计算和仿真结果值。从图中可以看出,不管是理论计算值还是仿真值,CSMA/CA/RTS/CTS比基本CSMA/CA在多跳无线自组网中都有更大的吞吐量,这是因为在多跳无线自组网中隐藏与暴露终端的问题非常明显,而RTS/CTS能部分的解决隐藏与暴露终端问题。
图6 CSMA/CA与CSMA/CA/RTS/CTS的时延比较
图6比较了基本CSMA/CA和CSMA/CA/RTS/CTS在多跳无线自组网中的时延。从结果可知,在多跳无线自组网中,CSMA/CA/RTS/CTS比基本的CSMA/CA有较少的时延。这是因为基本的CSMA/CA协议无法解决在多跳无线自组网中存在的隐藏与暴露终端问题。而即使CSMA/CA/RTS/CTS使用RTS/CTS握手信号去解决隐藏终端的问题,但碰撞仍然会在发送DATA 报文时产生,特别是在参与竞争的节点数目很大的时候。
5 结语
本文针对基本CSMA/CA协议在多跳Ad Hoc网络应用中存在的问题,提出了一种报文交换顺序为RTS-CTS-DATA-ACK的CSMA/CA/RTS/CTS协议。从初步的理论分析以及仿真结果来看,CSMA/CA/RTS/CTS协议不管是在网络流量负载较大还是节点报文数较多时,均能在一定程度上提高多跳Ad Hoc网络的性能。但在多跳Ad Hoc网络中,即便是使用了CSMA/CA/RTS/CTS协议,当参与信道竞争的节点数达到一定数量时,网络的性能仍会受到不利影响,这也正是本文下一步工作的研究重点。
[1]IEEE Standard for Wireless LAN Medium Access Control(MAC)and Physical Layer(PHY)Specification,1999,P802.11
[2]虞万荣.无线自组网MAC协议关键技术研究[D].国防科学技术大学工学博士学位论文,2006,9
[3]Yunli Chen.Performance Analysis and Enhancement of M AC Protocol for IEEE 802.11WLANs[D].UNIVERSIT Y OFCINCINNATI:Division ofGraduate Studies and Research,2004,10
[4]P Karn.MACA-a new channel access method for packet radio networks[C]//ARRL/CRRL Amateur Radio 9th Com-puter Networking Conference,1990
[5]V.Bharghavan,A.Demers,S.Shenker,et al.M ACAW:A media access protocol for wireless LANs[C]//ACM SIGCOMM Conference,1994:212~225
[6]L.Ki-Ho,C.Dong-Ho.A multiple access collision avoidance protocol for multicast services in mobile ad hoc networks[J].Communications Letters.IEEE,2003,7:508~510
[7]F.Tobagi,L.Kleinrock.Packet Switching in Radio Channels:Part IV-Stability Considerations and Dynamic Control in Carrier Sense Multiple Access[J].IEEE Transactions on Communications,1977,COM-25:1103~1120
[8]李蓥.无线自组织网MAC层协议关键技术的研究[D].上海:上海交通大学博士学位论文,2007,5
[9]Scalable Network Technologies,Inc.QualNet 4.5 User's Guide[M/DK].2008