移动Ad Hoc网络
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 载波侦听多址访问(CSMA)协议

传统上,无线局域网WLAN一直在使用异步随机访问协议。异步访问协议的一个最为常见的版本就是CSMA。载波侦听通过测试发射机附近的信号强度来努力避免碰撞。然而,碰撞的发生不是在发送方一侧、而是在接收方一侧。因此,载波侦听没有提供避免碰撞所必需的所有信息。这就导致了多跳CSMA网络(包括DARPA的分组无线网PRNET)中一个失效的主要原因,即“隐含终端(HIDDEN TERMINAL)”问题。

有许多MAC协议都使用载波侦听来避免正在进行的传输的碰撞。这类协议首先确定信道上是否有分组正在传输。如果确定信道上没有分组正在传输(即信道空闲),那么立即发送分组。如果确定信道上有分组正在传输(即信道忙),那么就禁止发送分组。

当信道忙的时候,持续载波侦听多址访问CSMA协议要连续不断地侦听信道,以便确定信道上的分组传输何时结束。当信道返回到空闲状态的时候,载波侦听多址访问CSMA协议立即发送分组。当多个节点都在等待空闲信道的时候就会发生碰撞。非持续载波侦听多址访问CSMA协议通过应用随机选择而减少了这种碰撞的可能性。每当检测到一次信道忙的时候,源节点就简单地等待一段随机确定的时间之后开始重新检测信道。这个过程按照指数递增的随机时间间隔长度重复进行,直到发送信道空闲为止。

持续参数p的载波侦听多址访问CSMA协议是持续载波侦听多址访问CSMA协议和非持续载波侦听多址访问CSMA协议的折中。在持续参数p载波侦听多址访问CSMA协议中,按照时隙来考虑信道,但是时隙又不是同步时隙。每个时隙的长度等于最大传播时延,载波侦听从每个时隙的开头进行。如果信道侦听为空闲,那么节点以概率p(0<p<1)发送一个分组。这个过程一直进行下去,直到该分组发送完毕、或者信道变为忙状态为止。如果信道侦听为忙,那么强迫源节点等待一段随机确定的时间之后再重新开始这个过程。

如图2-1所示,节点B能够直接收到节点A、C的发送,但是节点A、C相互之间不能够直接接收到对方的发送。假设节点A正在向节点B发送消息,而节点C此时也需向节点B发送消息。通过CSMA检测后,由于节点C无法判定此时节点A是否正在向外发送消息,所以节点C也在此时向节点B发送消息,结果导致节点A、C发送的消息在节点B处产生碰撞,称节点A为节点C的隐含终端(相互不在对方无线传输覆盖范围内的节点)。反过来,由于对称关系,也可称节点C为节点A的隐含终端。称这种由隐含终端引起的分组碰撞问题为隐含终端问题。

图2-1 隐含终端示意图

使用CSMA媒介访问技术要遇到的另一个问题是显现终端问题(EXPOSED TERMINAL)。如图2-2所示,节点A、C在节点B的无线覆盖范围之内,节点B、D在节点C的无线覆盖范围之内,节点B、D相互不在对方的无线覆盖范围之内,节点A、C相互不在对方的无线覆盖范围之内。假设节点B正在向节点A发送消息,而节点C此时正准备向节点D发送消息。通过CSMA协议检测后,节点C发现节点B正在使用该无线信道,因而推迟其消息发送。由于节点C的发送不会影响节点A接收节点B发送来的消息,所以节点C推迟其消息发送显然是不必要的。称节点B为节点C的显现终端(相互处于对方无线传输覆盖范围内的节点)。由对称关系,也可称节点C为节点B的显现终端。称这种由显现终端引起的不必要的推迟消息发送问题为显现终端问题。

图2-2 显现终端示意图

通常,隐含终端问题会提高碰撞次数,从而降低网络的容量;在网络密度较高的情况下,隐含终端问题造成的碰撞次数会大幅度增大,从而造成时常建立不起通信链路,网络通信会趋于瘫痪。而显现终端问题由于对节点发送做了不必要的推迟处理,从而也会降低网络的容量。

2.2.1 多信道CSMA协议

多信道CSMA协议将可用带宽分成若干个信道,随机选择空闲信道发送分组,采用“软”信道预留技术将优先权给予最近成功用于发送的信道。多信道CSMA协议有点类似于频分多址访问协议(FDMA),两者的主要差异在于:前者没有中心基础设施,采用分布式方式并通过载波侦听进行信道分配。

对于N个信道的有线局域网,采用载波侦听随机选择一个空闲信道进行发送的吞吐量优势随着N的增大而增大。其原因在于规格化传播时延(传播时间与分组发送时间之比率)的减小。每个信道的带宽随着N的增大而减少,因此规格化传播时延随着减小。因此,多个节点同时检测同一个信道为空闲并选择其发送的概率随着N的增大而下降,而这又反过来降低了碰撞概率。

但是在无线网络中,带宽窄和传播速度更快通常导致规格化传播时延更小,碰撞的原因极不相同。信号强度随着节点间距离的增大而减弱,最终低于载波门限,从而导致有些网络节点不能正常地相互接收到对方的发送,一些发送节点是其他发送节点的隐含节点,在接收机上产生足够强的干扰,最后分组由于碰撞而被丢失。发射机和接收机的信号强度不相同。来自多个发射机的平稳弱信号的组合信号也能够引起总干扰达到足够高程度,从而产生碰撞。

多信道CSMA协议将总可用带宽(W)划分成N个非重叠的信道,N可以比网络节点数小得多,每个信道的带宽为W/N。可以采用FDMA或者CDMA划分信道,这里采用FDMA划分信道。由于缺乏全网同步,所以假定不采用TDMA协议。假定每个网络节点的发射机和接收机能够在其中任何一个信道上工作。一般地,发射机试图重复使用其最近成功发送使用过的信道。若最近成功发送使用过的信道忙(通过载波侦听来确定)或者最近使用的信道发送失败,则随机选择另一个空闲信道。若没有空闲信道,则使用退避和重传策略。

按照基本CSMA/CA协议的多信道版本详细描述多信道CSMA协议的操作如下:

(1)每个节点只要不在发送,则连续监视N个信道,检测各个信道的总接收信号强度(Total Received Signal Strength,TRSS)是高于还是低于检测门限(Sensing Threshold,ST)。将TRSS低于ST的信道标记为空闲(IDLE)。记录其TRSS低于ST的每个信道的时间,并将这些信道记录到free_channel表中。将剩余的信道(其TRSS高于ST)标记为忙(BUSY)。

(2)在一个协议周期开始(即接收到流量产生器的一个分组)时:

① 若表free_channel为空,则节点等待出现第一个为IDLE的信道。然后等待一段时间(称之为长帧间间隔时间(Long InterFrame Space,LongIFS)),之后再等待一段随机退避时间,然后才发送该分组。要求该信道在此期间保持IDLE。

② 若表free_channel不空,则节点检查该表中是否存在最近成功发送使用过的信道last_channel。若last_channel为IDLE,则节点选择该信道在当前协议周期中发送数据。否则,节点运用均匀随机数发生器从表free_channel中随机选择一个信道。

(3)在真正发送该分组之前,节点检查所选信道的TRSS低于ST是否能够至少保持一个LongIFS周期:

① 若不能,则节点在LongIFS结束后初始化退避时延。

② 若能,则节点立即(不作任何延迟)启动发送。

(4)若在退避期间任何时候所选信道的TRSS高于ST,则立即停止退避。当所选信道的TRSS重新低于ST时,重新安排一个退避时延。

(5)成功发送结束(通过应答来说明)后,将last_channel标记为已使用信道。否则(即发送失败),last_channel不明确,然后从表free_channel中随机选择一个信道用于重传。

当信道数N足够大时,多信道CSMA协议趋向于为每个节点的数据发送“预留”一个信道。这种信道预留技术能够使在同一个信道上进行两个竞争发送的概率最低。通过信道软预留能够灵活使用其他空闲信道。各个节点互斥地动态选择空闲信道,以便能够进行无干扰的并行发送。即使在重载荷下,当信道数不足以进行无碰撞传输时,由于每个节点坚持使用“预留”信道进行发送,所以碰撞概率仍然减小。

下面介绍多信道CSMA协议的性能。

采用一个专门评估无线网络MAC协议性能的事件驱动仿真器进行仿真。仿真参数如表2-1所示。仿真网络由分布在一个n×n正方形栅格的n2个节点组成。节点静止不动。随机选择的源节点产生泊松流,并与随机选择的目的节点(位于源节点传输覆盖范围内)通信。根据发射功率、路径损耗模型、ST确定传输距离。采用室内传播模型来模拟任意两个节点之间的路径损耗。采用分段重对数函数,假定dB路径损耗线性正比于源节点和目的节点之间距离的对数。将多径衰落模拟为一个独立的损耗。发送每个分组时随机产生多径损耗,多径损耗在每个分组发送期间保持不变。

表2-1 仿真参数

每当一个节点开始发送或者结束发送时,仿真器评估每个节点在所选信道上的接收信号强度(Received Signal Strength,RSS)。计算每个非发送节点在每个信道上的两个RSS分量:①所需信号强度,②总信号强度(当前在该信道上发送分组的所有节点的RSS之和)。由这两个基本RSS分量得到干扰RSS分量(总信号强度与所需信号强度之差)。由所需RSS和干扰RSS得到信号干扰比率(Signal-to-Interference,SIR)。每当相应信道上RSS发生变化时重新计算每个接收节点的SIR。假定只要在整个分组发送期间SIR高于特定的最小SIR门限,则能够正确接收该分组。

在实验中,考虑两种类型的接收节点操作。一是假定接收节点每次只能接收一个分组,将这种接收节点称为单用户(Single-User,SU)接收节点。由于捕获模型,SU接收节点只接收第一个输入分组,丢掉所有重叠分组。二是假定接收节点能够同时接收多个分组(要求在各个独立的信道上接收这些分组,并且每个信道满足功率捕获约束),将这种接收节点称为多用户(MultiUser,MU)接收节点。

图2-3给出了吞吐量实验结果。对于采用信道预留的SU接收节点,当N=1增加到N=5时,吞吐量随着增大;信道数进一步增大,吞吐量改善不明显。对于采用信道预留的MU接收节点,当N≤20时,吞吐量随着N的增大而提高。当N相等时,多用户接收节点的吞吐量高于单用户接收节点的吞吐量。采用随机信道选择方法的多信道CSMA的吞吐量也高于单信道CSMA协议的吞吐量,但是差于采用“软”信道预留的多信道CSMA协议的吞吐量。这说明了信道预留的有益之处。

图2-3 多信道CSMA协议的吞吐量

分组发送失败的原因主要有两个:一是目的节点忙,二是碰撞。一个单用户接收节点只要正在任意某个信道上发送或者接收则为盲。一个多用户接收节点只有在新输入分组的发送信道上进行发送或者接收的时候才无效。当接收SIR低于所要求的最低SIR门限时,发生“碰撞”。

对于单用户接收节点,由目的节点忙造成的发送失败分组数量随着N的增大而增大。其原因在于每个信道的带宽随着N 的增大而减少,导致节点的发送时间和接收时间成比例地增大。但是,采用多信道CSMA协议的信道预留机制后,碰撞概率随着 N 的增大而下降,特别是在N=1和N=5之间,碰撞概率的下降幅度大于目的节点忙造成的发送失败分组数量的增加幅度(但是当N>5时就不成立)。由于多用户接收节点能够同时接收多个分组,所以目的节点忙造成的分组丢失较少。随机信道选择的碰撞次数大于信道预留的碰撞次数,其原因在于没有预留措施时多个隐含发送节点选择同一个空闲信道,采用信道预留措施可以降低这种概率。

下面估计平均分组传输时延。在仿真中没有实现分组成功接收和分组重传的应答。因此,按照文献[1]的思想估计平均时延。按照如下公式确定平均分组时延 D(采用整个带宽传输一个分组的时间进行规格化),有

式中,G表示载荷(单位kb/s),S表示相应的吞吐量(单位kb/s),R表示连续重传之间的规格化平均时延,τ表示规格化传播时延。R与分组传输时间、源节点和目的节点之间的往返传播时延、应答分组的传输时间(α)、平均重传时延(δ)有关。因此,

这里假定τ小得忽略不计。为了简单起见,假定应答分组比数据分组小得多,并且是在时延可忽略不计的理想信道上发送的,即α=0。因此,R=N+δ,这里采用固定平均重传时延(对所有N)来评估多信道CSMA协议的的时延性能。根据图2-3的G和相应吞吐量数据,利用公式(2-1)推导每个协议的平均传输时延,得到的结果如图2-4所示。多信道CSMA协议在轻流量载荷下的平均传输时延相对较大,其原因在于每个信道的带宽随着N的增大而减少;但是多信道CSMA协议在重流量载荷下的平均传输时延相对较小,其原因在于重传次数小于单信道的重传次数。

图2-4 多信道CSMA协议的时延