2.4 忙音类多址访问协议
2.4.1 忙音多址访问(BTMA)协议
忙音多址访问(Busy-Tone Multiple Access,BTMA)协议把整个带宽划分为两个独立的信道:主要的数据信道(Data Channel)用于传输数据分组,占据大半带宽;控制信道(Control Channel)用于传输特殊的忙音信号,忙音信号用于表示在数据信道上出现数据发送。这类忙音信号对带宽需求不是很高,所以控制信道带宽相对较小。
忙音多址访问协议BTMA的工作原理如下。一个源节点有一个分组要发送的时候,首先收听控制信道上的忙音信号。如果控制信道空闲,即没有检测到忙音信号,那么源节点可以开始发送其分组。否则,源节点重新安排该分组到以后某个时间重新发送。任何节点检测到数据信道上的发送动作的时候就立即开始往控制信道上发送忙音信号,依次继续进行,直到数据信道上的发送动作停止为止。
这样,忙音多址访问协议BTMA防止发送源节点两跳远以外的所有节点访问数据信道。这样就较大程度地减轻了隐含节点干扰,因此降低了碰撞概率。但是,显现节点的增加却是很明显。其结果是数据信道的利用率严重不足。
下面详细描述根据BTMA协议改进而来的双忙音多址访问(DBTMA)协议。
2.4.2 双忙音多址访问(DBTMA)协议
双忙音多址访问(Dual Busy Tone Multiple Access,DBTMA)协议采用RTS分组来初始化信道请求。然后使用两个带外忙音来分别保护RTS分组和数据分组。一个忙音是发送忙音,表示为BTt,由发送方设置,用于保护RTS分组;另一个忙音是接收忙音,表示为BTr,由接收方设置,用于应答RTS分组和为随后的数据分组提供连续保护。检测到忙音的节点推迟其在信道上发送RTS分组。使用RTS分组和BTr信号,显现终端就能够初始化数据分组的发送。而且,隐含终端能够应答RTS分组的请求,以及初始化数据分组的接收,同时在发送方和接收方进行数据分组的传递。
由于使用了RTS分组和由接收节点设置的接收忙音,DBTMA协议完全解决了隐含终端问题和显现终端问题。发送节点设置的忙音为RTS控制分组提供碰撞保护,从而提高了RTS控制分组被成功接收的概率,其结果是吞吐量得到提高。DBTMA协议优于在单信道上使用RTS/CTS分组交互机制的其他MAC协议,以及所有使用单个忙音的MAC协议。
1.DBTMA协议的基本原理
在DBTMA协议中,在一个单一的共享信道上实现两个窄带音,两个音的频谱相隔足够宽。发送忙音(用BTt表示)表示节点是否正在发送RTS分组,接收忙音(用BTr表示)表示节点是否正在接收数据分组。发送忙音BTt为RTS分组提供保护,达到提高RTS分组被预定接收节点正确接收的概率。使用接收忙音BTr来应答RTS分组、并且为已发送数据分组提供连续保护。检测到发送忙音BTt或者接收忙音BTr的所有节点被禁止发送RTS请求分组。一个正在发送RTS分组的节点在检测到接收忙音BTr信号起点之时被要求立即放弃本次发送。RTS分组和接收忙音彻底解决了隐含终端问题和显现终端问题。
使用图2-25所示的网络例子来解释DBTMA协议的操作。图中节点之间的实线表示对应节点能够相互接收到对方的信息。因此,节点C对于节点A向节点B的发送是一个隐含终端;如果节点E需要与节点F通信(但是不跟节点A通信),那么节点E是一个显现终端。
图2-25 一个演示隐含终端问题和显现终端问题的网络例子
实现了DBTMA协议的一个节点处在以下七种状态中的某一种:空闲状态(IDLE)、竞争状态(CONTEND)、RTS请求分组发送状态(S_RTS)、数据分组发送状态(S_DATA)、应答等待状态(WF_BTR)、数据分组等待状态(WF_DATA)、等待状态(WAIT)。图2-26描述了DBTMA协议的有限状态机(Finite State Mechine,FSM)。节点如果没有分组需要发送,则处在空闲状态(IDLE)。当一个节点有分组需要发送、但是却不允许发送的时候,该节点则处在竞争状态(CONTEND)。正在发送RTS请求分组的节点处在RTS请求分组发送状态(S_RTS),正在发送数据分组的节点处在数据分组发送状态(S_DATA)。应答等待状态(WF_BTR)表示RTS请求分组发送节点等待预定接收节点回送的应答。数据分组等待状态(WF_DATA)表示接收节点等待数据分组的接收。
图2-26 DBTMA协议的有限状态机
说明: “/”前的语句表示转移条件,“/”后的语句表示转移操作
C1:RTS分组/建立BTr,设置定时器。
C2:超时,BTr或者BTt/。
C3:准备完毕,BTr或者BTt/设置定时器。
C4:准备完毕,没检测到忙音(BTr和BTt)/建立BTt,发送RTS分组。
C5:检测到BTr/关闭BTt,停止发送。
C6:数据接收完毕/关闭BTr。
当节点A有数据分组需要发送、并且处在空闲状态的时候,节点A检测BTr和BTt信号。如果没有检测到忙音,那么意味着节点A的传输范围内既没有正在接收数据分组的节点,也没有正在发送RTS请求分组的节点,因此节点A设置其BTt信号,给节点B发送一个RTS分组,进入S_RTS状态。否则,即检测到BTr信号,或者BTt信号,或者同时这两个忙音信号,那么节点A设置随机定时器,进入CONTEND状态。节点A发送完RTS分组后,关闭其BTt信号,设置定时器,进入应答等待状态(WF_BTR)。节点B接收到发送给自己的RTS分组后,设置其BTr信号,BTr信号起到应答节点A和发出自己已在等待接收数据分组的广播通知的作用;然后节点B设置定时器,进入数据分组等待状态(WF_DATA)。
节点处在应答等待状态(WF_BTR)时连续监视BTr信号。节点A检测到BTr信号,则意味着其信道请求已经成功;然后处在等待状态(WAIT)等待一段强制性的时间(twm=2τ),等待时间结束,则立即发送数据分组。强制等待时间的作用是为了停止接收节点传输范围内的所有可能的RTS发送。等待状态的等待时间结束后,节点A进入数据分组发送状态(S_DATA),发送数据分组。节点A发送完数据分组后,进入空闲状态(IDLE)。节点B成功接收到数据分组后,关闭其BTr信号,进入空闲状态(IDLE),结束本次通信。无论何种原因,如果节点B在定时时间结束之前没有接收到数据分组,那么节点B关闭其BTr信号,进入空闲状态(IDLE)。
竞争状态(CONTEND)中的定时结束后,节点A如果没有检测到忙音,那么设置其BTt信号,发送其RTS分组;否则,即节点A检测到忙音,则返回到空闲状态(IDLE)。从相邻区域内其他节点方面来看,其操作可以描述如下:当一个节点(比如节点E、G、C)检测到BTt信号和(或者)BTr信号的时候,则被禁止发送RTS请求分组。当一个节点(比如节点G、C)检测到BTr信号起点、但是同时又处在RTS请求分组发送状态(S_RTS)的时候,则放弃本次RTS分组发送,关闭其BTt信号,返回到空闲状态(IDLE)。
图2-27所示节点A和B的操作时间关系。下面描述DBTMA协议操作规则。
图2-27 DBTMA协议的时间关系
2.DBTMA协议操作规则
1)变量定义
δ:数据分组传输时间;
τ:最大单向传播时延;
td:忙音检测时延;
twm:强制性等待时间(twm=2τ);
BI:退避间隔时间。退避间隔时间应该受到退避算法的动态控制,比如BEB和MILD退避算法。为了简单起见,可以使用10γ 作为BI值。
2)通信规则
(1)初始化。加电后,节点进入空闲状态。假定发射节点(A)和接收机节点(B)在发送之前均处在空闲状态。
(2)发送RTS。当A接收到一个数据分组需要发送到目的节点B的时候,A完成检测BTr和BTt信号。如果没有检测到忙音信号,那么A打开BTt信号,给B发送一个RTS分组,然后进入S_RTS状态。如果A检测到忙音信号,那么A设置随机定时器的定时值(从[0,BI]上选择),进入竞争CONTEND状态。
(3)等待BTr信号。发送完RTS分组,A关闭其BTt信号,将定时器的定时值设为(td+2τ)秒,进入WF_BTR状态。
(4)等待数据。当B接收到A的RTS分组的时候,B设置其BTr信号,将定时器的定时值设为(δ+t d+2τ)秒,进入WF_DATA状态。
(5)强制等待。当A在WF_BTR状态检测到BTr信号,将定时器的定时值设为(twm=2τ)秒,进入WAIT状态。
(6)发送数据。WAIT状态超时结束后,A发送该数据分组,进入S_DATA状态。
(7)发送结束。在数据发送结束的时候,A进入IDLE状态。
(8)接收数据。当在WF_DATA状态接收到数据分组、或者发生超时的时候,B关闭其BTr信号,进入IDLE状态。
(9)竞争。在CONTEND状态发生超时结束后,A又开始试图检测BTr和BTt信号。若没有检测到忙音信号,则A打开其BTt信号,给B发送一个RTS分组,进入S_RTS状态。若检测到忙音,则A退回到IDLE状态。
3)推迟规则
RTS异常。当一个节点在发送RTS分组期间检测到BTr信号的时候,该节点关闭其BTt信号,停止其发送,进入IDLE状态。
3.DBTMA协议的性能分析
网络模型由大量在单信道上可相互通信的终端(节点)组成。所有节点都相互处在对方的传输覆盖范围内。对DBTMA协议及其分析作如下假设:
(1)按照DBTMA协议操作的MANET的无线传输范围为数百米。信道上没有捕捉效应,也没有衰落。
(2)发生在接收方的任何传输重叠导致该接收方不能识别重叠在一起的任何一方的分组。分组碰撞是分组出错的唯一原因。
(3)每个节点的数据处理时间和收/发转换时间忽略不计。
(4)忙音信号和数据信号具有相同的传输覆盖范围。
(5)忙音信号和数据信号之间的相互干扰忽略不计。
(6)与数据信道带宽对比之下,忙音占用的带宽忽略不计。比如,一个忙音信号占用的带宽在0.1~10kHz内,而数据占用的带宽为100kHz。希望每个忙音能够在10kHz带宽范围内实现。
(7)数据分组传输时间为δ,RTS请求分组传输时间为γ,最大单向传播时延为τ。
(8)忙音检测时延为td,td取决于通信硬件,一般可忽略不计。
(9)强制等待时间twm=2τ。
(10)RTS请求分组传输时间γ大于td+4τ。
(11)网络有大量节点,各个节点共同产生一个每秒平均总速率为λ个信道请求的泊松通信量。
(12)任意两个节点之间的无线信号传播时延为τ,因此得到的信道容量是一个较低的下限值。
把信道上的发送周期作为一个更新过程来处理。将忙周期定义为两个连续空闲周期之间的时间,在忙周期内进行共享信道上的发送。一个忙周期可能是数据成功发送的周期、也可能是分组碰撞的周期。根据文献[1]的讨论,信道吞吐量可以表示为式(2-3),其中分别表示在每个周期内的数据分组发送的平均使用时间、平均忙音时间、信道的平均空闲时间。
如果在开始的t d+τ秒时间内没有发送其他的RT S请求分组,那么任何一个节点(例如节点A)产生的RT S请求分组就能够成功地被发送。由于这段时间是忙音检测时延和最大传播时延之和,所以节点A设置的发送忙音BTt信号要在td+τ秒之后才会被所有节点检测到。所以,节点A发送RT S请求分组的成功概率就是在该时间周期内没有RT S请求分组到达的概率:
预定接收方(例如节点B)成功接收到RTS分组后,设置其接收忙音BTr信号,等待接收数据分组。当RTS分组被成功接收、并且接收忙音BTr信号也已建立,那么数据分组的接收将是有保证的。其直观解释如下:所有检测到接收忙音BTr信号的节点停止其RTS分组的发送而保持安静;因此,在节点B的传输覆盖范围内必定没有其他节点发送数据分组。否则,节点B将不会成功接收到RTS请求分组。
一个成功发送周期TS由以下时间之和组成:RTS请求分组发送时间及其空中传播时延、忙音检测时延及其空中传播时延、强制等待时间(twm=2τ)、数据分组发送时间及其空中传播时延,以及用于从信道上清除接收忙音BTr信号的周期时间τ。所以,TS等于
一个失败忙音周期Tf包含多个RTS请求分组。因为在节点A开始发送其RTS请求分组后的td+τ秒内不会再发送任何新的RTS请求分组,所以最长的失败忙音周期为γ+td+τ。当几乎在相同时刻发送多个RTS请求分组的时候,失败忙音周期最短,等于γ+τ。如果碰撞RTS分组在[0,td+τ]时间范围内均匀到达,那么平均失败忙音周期等于最长失败忙音周期和最短失败忙音周期的平均值,即
因此,得到平均忙音周期如下
平均利用时间等于成功忙音周期概率PS与数据分组传输时间δ的乘积,即
平均空闲时间等于来自所有节点的RTS请求分组的平均到达间隔时间。因为每个RTS请求分组按照泊松分布到达,所以得到
将式(2-33)~式(2-35)代入式(2-3),得到DBTMA协议在所讨论的网络模型中的信道吞吐量为
式(2-36)中的PS由式(2-30)给出,Tf由式(2-32)给出。
在图2-28(a)中,描述了DBTMA协议在不同忙音检测时延td条件下的信道吞吐量,其中无线网络的信道数据传输速率为1Mb/s,数据分组长度为4096bit,RTS请求分组长度为200bit,20个节点分布在50m×50m的网络内,每个节点的传输距离(两个节点之间的最大距离)为35m,最大单向传播时延为0.12μs。所考虑的忙音检测时延td分别等于10−6s、10−5s、10−4s。每次仿真代表100s的“实时”运行。直线表示分析结果,符号表示仿真结果。分析结果和仿真结果匹配完好。两种结果之间的细微差异的原因可能是仿真网络的节点数量有限和假定的分析模型中的节点数量有限。
图2-28 DBTMA协议的性能
从图2-28(a)中可以看到,当忙音检测时延td较小的时候,DBTMA协议的信道吞吐量总是大于0.9。当td=10−6s的时候,DBTMA协议的信道吞吐量等于0.94。当td=10−5s的时候,DBTMA协议的信道吞吐量下降到0.92,这是因为每个RTS请求分组的不可靠周期变长而导致RTS请求分组成功概率下降、以及开销增大。当td=10−4s(正好等于RTS请求分组发送时间γ的一半)的时候,DBTMA协议的信道吞吐量下降到0.82。从图2-28(a)中还可以看到:当忙音检测时延td较大的时候,信道吞吐量的提前下降可以被看作通信载荷的函数,这是因为RTS请求分组不可靠周期变长的缘故。
非全连通网络的分析更加复杂,所以要得到其分析结果更加困难。因此,下面介绍其仿真结果。
4.DBTMA协议的性能评价
采用OPNET仿真器来仿真应用DBTMA协议和其他相关协议的MANET。信道速率为1Mb/s时,每次仿真代表100s的“实时”运行。信道速率为256kb/s时,“实时”运行就是400s。
首先,研究DBTMA协议在不同隐含终端情况下的性能。仿真网络是一个具有N个独立子网(N=1,2, …,6)和一个公共接收方的MANET。每个独立子网包含5个节点,各个节点相互处在对方的传输覆盖范围内。N个独立子网的所有节点产生数据通信,向公共接收方(中心站)发送信息,中心站位于网络中心位置。图2-29表示一个这样的网络例子,其中N=4。RTS请求分组的长度为200bit,数据分组的长度为4096bit,信道数据速率为1Mb/s。无线传输距离大约为2km,传播时延为6.7μs。图2-28(b)所示在这个相同环境下对DBTMA协议与FAMA-NCS协议以及其他相关MAC协议进行了比较。
图2-29 N个独立子网的网络例子(N=4)
从图2-28(b)中可以看到,DBTMA协议的信道吞吐量高于图中所标出的任何其他MAC协议。当N=1时,DBTMA协议达到的网络利用率对于小td为0.94、对于td=10−4s时为0.82;而非持续性CSMA(NP-CSMA)协议的吞吐量为0.90,FAMA-NCS协议的吞吐量为0.83。但是,当 N=6 时,FAMA-NCS协议的吞吐量下降到0.6,这是因为RTS请求分组的碰撞概率更高、以及RTS请求分组碰撞后不必要的信道空闲时间(虚假“主CTS”分组)的缘故;而DBTMA协议的吞吐量为0.8或者0.77,具体取决于td的取值。NP-CSMA协议的吞吐量随着N的增大而快速下降,最终与纯ALOHA协议的吞吐量相同。为了便于进行比较,还画出了纯ALOHA协议和时隙化ALOHA协议的吞吐量性能。随着隐含终端的出现以及N的增大,CSMA协议的吞吐量逐渐接近ALOHA协议的吞吐量(18%),FAMA-NCS协议的吞吐量接近MACA协议的吞吐量(对于全连通网络大约为60%)。
因此,对于td的实际取值和这些网络拓扑,DBTMA协议的吞吐量性能优于FAMA-NCS协议和NP-CSMA协议。随着隐含终端的增多(N增大),DBTMA协议对于FAMA-NCS协议和NP-CSMA协议的吞吐量的性能优势也随着增大。在下面的剩余讨论中假定td=10−6s。
第二,在某些特定网络拓扑下对DBTMA协议和其他类似协议进行比较。为了使得与FAMA-NCS协议的比较有意义,对DBTMA协议在相同网络结构中的性能进行评估。信道数据传输速率256kb/s,节点间的距离6km,最大空中传播时延20μs。表2-8所示是DBTMA协议、FAMA-NCS协议、MACAW协议的仿真结果。
表2-8 多种协议的信道吞吐量的对比
在图2-30中,带有箭头的实线表示源节点产生的数据通信的方向;没有箭头的实线表示两个节点相互处在对方的传输覆盖范围内;带有箭头的虚线表示两个节点能够接收到对方发送的信息,而与这两个节点是否同在一个子网内无关。
图2-30 DBTMA仿真采用的网络拓扑结构
在图2-30(a)中,所有节点都能够相互接收到对方发送的信息,并且所有的通信传输都是向着中心节点的。图2-30(b)的网络结构是两个独立的通信子网共享同一个接收机。图2-30(c)所示的网络结构是两个相对独立的通信子网,两者之间有两对节点对能够接收到对方发送的信息。在图2-30(d)中,8个节点构成一个简单的多跳网络。
根据表2-8,在这些网络中,DBTMA协议的性能优于FAMA-NCS协议和MACAW协议。在图2-30(a)所示的网络结构中,DBTMA协议的信道吞吐量达到0.94,比FAMA-NCS协议的信道吞吐量(0.78)高出20%以上。在图2-30(b)所示的网络结构中,DBTMA协议的信道吞吐量达到0.84,比FAMA-NCS协议的信道吞吐量(0.59)高出40%以上。在图2-30(c)所示的网络结构中,DBTMA协议的信道吞吐量(0.94)比FAMA-NCS协议的信道吞吐量(0.75)高出20%以上。在图2-30(d)所示的网络结构中,DBTMA协议的平均信道吞吐量(0.69)比FAMA-NCS协议的平均信道吞吐量(0.49)高出40%以上。
对上述比较结果解释如下:尽管DBTMA协议和FAMA-NCS协议都对数据分组的接收提供了正确保护,但是DBTMA协议彻底解决了隐含终端问题和显现终端问题,而FAMA-NCS协议虽然彻底解决了隐含终端问题、却没有彻底解决显现终端问题。例如,在图2-30(b)所示的网络结构中,DBTMA协议允许同时发送(比如,N1向N6发送和N4向N7发送,或者N2向N5发送和N3向N8发送),但是这种同时发送在FAMA-NCS协议中却是被禁止的。FAMA-NCS协议还会把已碰撞RTS请求分组错误地当做“主CTS分组”来处理,空闲时的信道被浪费。在图2-30(b)所示和图2-30(d)所示的网络结构中,随着隐含终端的出现,RTS请求分组的碰撞概率将更高,从而导致更加严重的虚假“主CTS分组”问题。
对DBTMA协议用于其他网络进行了仿真和研究。在图2-28(c)中,表示在全连通网络中RTS请求分组长度LR与数据分组长度LD之比LR/LD对DBTMA协议的性能影响,网络中每个节点为每个生成的数据分组任意选择其目的节点。数据分组长度为4096bit,信道数据传输速率为1Mb/s。在50×50m2的区域内随机分布有20个节点。每个节点的无线传输距离为35m,最大空中传播时延为0.12μs。
正如预期的那样,DBTMA协议的信道吞吐量随着比率LR/LD的增大而下降。当LR/LD=0.025 (LR=100bit)时,DBTMA协议的信道吞吐量为0.96;当LR/LD=0.005(LR=200bit)时,DBTMA协议的信道吞吐量下降为0.94;当 LR/LD=0.5(LR=2000bit)时,DBTMA协议的信道吞吐量下降为0.66。其原因在于RTS请求分组的发送时间导致失败忙音周期变长以及成功忙音周期开销的增大。当LR较大的时候,开销也较高,吞吐量也就下降。
最后,在图2-28(d)中对DBTMA协议、RI-BTMA协议、FAMA-NCS协议、MACA协议的平均分组时延作了比较,比较的仿真实验环境是:一个400m×400m的MANET,随机分布50个节点,每个节点的传输距离为100m,最大空中传播时延为0.33μs,RTS请求分组的长度为200bit,数据分组的长度为4096bit,信道数据传输速率为1Mb/s。为了比较这些协议的分组时延性能,实现BEB算法,以便于重传被堵塞和被碰撞的数据分组。还假定MACA协议在接收到数据分组后立即做出应答,这是因为其他的MAC协议均保证无碰撞的数据分组接收。每个节点的分组到达时间为泊松分布,每个节点随机选择一个相邻节点作为每个分组的目的节点。对采用的DBTMA协议进行修改,使其不采用发送忙音BTt信号。稍后讨论这个修改的DBTMA协议。
从图2-28(d)中可以看到:在仿真网络中,具有基本RTS/CTS控制分组交互功能和退避策略的MACA协议能够提供2.2的网络容量;FAMA-NCS协议(具有退避机制)能够提供最大2.4的网络容量;RI-BTMA协议优于MACA协议和FAMA-NCS协议,能够提供4.8的网络容量;DBTMA协议的性能最好,能够提供5.7 的网络容量,比RI-BTMA协议高出20%以上,比FAMA-NCS协议高出140%以上。这些MAC协议能够在网络覆盖区域内同时进行发送,所以能够达到的网络利用率均高于1。
MACA协议性能差的原因在于其既没有解决隐含终端问题、也没有解决显现终端问题。FAMA-NCS协议的性能也类似的差,其原因在于FAMA-NCS协议没有解决显现终端问题。FAMA-NCS协议禁止显现终端在单信道上发送数据分组。隐含终端也不能启动数据分组的接收。尽管FAMA-NCS协议采用载波侦听和“主CTS分组”机制来支持无碰撞的数据分组发送,但是FAMA-NCS协议在MANET中的性能却接近于MACA协议的性能。其原因仍然还是在于虚假“主CTS分组”问题。MACA协议的性能几乎相同于FAMA-NCS协议的原因在于仿真中假定MACA协议具有立即应答功能。由于上层可能更加频繁地进行重传,所以MACA协议在实际网络中的性能可能比这里仿真得到的性能还要差。
DBTMA协议和RI-BTMA协议解决了隐含终端问题和显现终端问题。RI-BTMA协议采用时隙化操作,要求时间同步。DBTMA协议为RTS请求分组提供了额外的保护,从而提高了RTS请求分组被预定接收节点成功接收的概率,因此,吞吐量也就得到提高。为了便于比较,还仿真了一个修改过的DBTMA协议,该协议没有采用发送忙音BTt信号。所以,这个修改过的DBTMA协议就是一个非时隙化的RI-BTMA协议版本,其网络利用率为4.2。所以,RI-BTMA协议在时隙化操作的支持下,比修改过的DBTMA协议的网络容量提高了15%。DBTMA协议在另外一个忙音(发送忙音BTt)的支持下,比修改过的DBTMA协议的网络容量提高了35%,这就证明了第二个忙音(发送忙音BTt)的使用效果。
5.DBTMA协议无碰撞数据分组接收的正确性
如前所述,借助于接收忙音BTr信号和强制等待时间twm,在RTS分组被成功接收并且BTr信号被建立的时候,数据分组的接收是有保证的。因此,DBTMA协议保证无碰撞的数据分组接收。尽管这个陈述是在全连通网络条件下作出的,但是下面将证明这个陈述在一般的MANET中也是正确的。
引理2-1:RTS请求分组在接收方不会与数据分组接收碰撞。
证明:假定接收方(节点B)在时刻t0正确接收到一个RTS分组。在时刻t0,接收方设置其接收忙音BTr信号。因为接收方的每个相邻节点最多相距τ 秒远,所以接收方设置的这个BTr信号将在 t1=t0+τ 时刻到达其所有相邻节点。这些相邻节点在时刻 t2=t1+td=t0+τ+td能够检测到该BTr信号。所以,在接收方的覆盖范围内,在t2时刻之后,不会有RTS请求分组被发出。因此,接收方能够确保到t3=t2+τ=t0+2τ +td时刻所有的RTS发送将被清除。
发送方(节点A)检测到接收方的BTr信号的最快时间是t4=t0+td。由于需要等待一段强制等待时间twm,所以发送方直到t5=t4+twm=t0+td+twm时刻才能够开始发送数据分组,这也是数据分组起始比特到达接收方(节点B)的最快时间。
因此,如果满足t5≥t3,那么能够确保数据分组不会与RTS请求分组碰撞,而根据假定twm=2τ,所以条件t5≥t3是能够保证满足的。
引理2-2:在接收方,数据分组与数据分组之间不会产生碰撞。
证明:假定一个节点(节点C在接收节点B的覆盖范围内)离节点B为τ′秒远。由于节点B在时刻t0正确接收到一个RTS分组,所以节点C在时间[t0−γ−τ′,t0−τ′]内肯定不会发送任何分组。否则,节点C的发送将会与节点B的输入RTS分组产生碰撞。
由于节点C已经静默了一段时间,所以其唯一可能的数据分组发送是节点C已经给另外一个节点发送了RTS分组而正处在空闲状态等待忙音应答。现在证明这是不可能的:节点C完成其RTS分组发送的最近时间为t6=t0−γ−τ ′。因此,节点C开始发送其数据分组的最近时间应该为t7=t6+τ +td+τ +twm,已经在前面假定节点C的预定接收节点的距离为τ 秒远。由于γ≥td+4τ,所以
这与节点C在时间[t0−γ−τ′,t0−τ′]内肯定不会发送任何分组相矛盾。
定理2-6:当接收方正确接收到RTS请求分组、并且设置了接收忙音BTr信号的时候,无碰撞的数据分组接收是有保证的。
证明:这由引理2-1和2-2得到证明。因为既没有RTS请求分组、也没有数据分组在接收方与数据分组发生碰撞,所以数据分组是没有碰撞的。
2.4.3 接收机初始化忙音多址访问(RI-BTMA)协议
接收机初始化的忙音多址访问(Receiver Initiated Busy-Tone Multipe Access,RI-BTMA)协议通过只让目的节点发送忙音来尽力减少显现节点的数量。一个节点检测到数据信道上的发送之后不是立即往控制信道上发送忙音,而是监视即将发送来的数据以确定自己是否为该数据的目的节点。这个决策需要花费一定时间,尤其是在噪声环境中信息被损坏的时候这个决策耗时更多。在决策期间,原始传输仍然易受碰撞的损伤。这在高速传输系统中可能尤其麻烦,因为在高速传输系统中分组传输时间可能很短。
2.4.4 无线碰撞检测(WCD)协议
无线碰撞检测(Wireless Collision Detect,WCD)协议本质上是忙音多址访问协议BTMA和接收机初始化忙音多址访问协议RI-BTMA的组合协议,其组合方法是在控制信道上使用两种不同的忙音信号。无线碰撞检测协议WCD的作用在开始检测主信道(数据信道)的时候类似于忙音多址访问协议BTMA,比如往忙音控制信道上发送碰撞检测(Collision Detect,CD)信号。一旦节点确定自己是目的节点的时候,就立即表现出接收机初始化忙音多址访问协议RI-BTMA的特性。在这种情况下,目的节点停止发送碰撞检测CD信号,然后开始发送反馈音(Feedback-Tone,FT)信号。这样,无线碰撞检测协议WCD将显现节点个数降到最低程度,同时又防止传输受到隐含节点的干扰。
上面介绍的这些忙音协议的特点是设计简单,其要求增加的硬件复杂程度是最低的。由于其独特的特性,总体性能最好的是无线碰撞检测协议WCD,其次是接收机初始化忙音多址访问协议RI-BTMA,最后是忙音多址访问协议BTMA。而且,忙音协议的性能对硬件切换时间的敏感性较弱,这是因为假设节点能够同时在数据信道和控制信道上发送和接收。但是,射频频谱有限的无线通信系统可能不能实现单独的控制信道和数据信道。在这种情况下,使用带内信令的碰撞回避是必要的。