Ad Hoc网络的令牌传递及管理方法 【技术领域】
本发明属于通信技术领域,涉及移动无线自组织网络(MANET)的多址接入控制技术,具体的说是一种应用于移动Ad Hoc网络中的令牌传递与管理方法,适用于野战通信、紧急搜救、临时会议等所需要的无线局域通信系统,同时也适合于总线型和网状型分布式控制的有线局域网络。
背景技术
MANET是一种新型的移动无线自组织网络,它由一组具有平等特性的自主节点组成,具有网络系统自治的特性。与传统的无线网络相比,其显著特点是不需要建立固定的通信基础设施,仅仅由网络节点便可组成一个完整的网络。在该网络中,所有节点都是可以移动的,每个移动节点既是终端,又是路由器,能够提供业务的存储转发功能。所有节点作为对等的实体存在于网络之中。
由于无需固定的基础通信设施地支持,因此,MANET具有很高的可靠性、灵活性和机动性,被广泛应用于敌对、突发和不易建设固定通信设施的环境中,如野战通信、紧急搜救、临时会议等。
对于分布式控制网络,影响其网络性能的最大问题是传输碰撞,它主要由隐藏终端问题产生。隐藏终端是指一个终端位于接收终端的通信范围之内,而在发送终端通信范围之外的现象,如图1所示。
在图1中,节点A和节点B互为相邻节点,节点C是节点B的相邻节点,但在节点A的通信范围之外;节点D是节点C的相邻节点。当节点A向节点B发送分组数据时,由于节点C不能检测到节点A的传输,有可能会向节点D发送分组数据,结果导致两个传输分组在节点B处发生碰撞,造成节点B不能正常接收节点A传输的数据分组,导致节点A的传输失败。其中节点C称为节点A的隐藏终端。目前,解决传输碰撞的主要方法有四类:
第一类是忙音方式,即节点在发送和接收业务的同时发送一个忙音信号,以解决隐藏终端问题,例如R-BTMA、BCMA、PCMA、DBTMA等协议。这类方式的主要优点是实现相对简单,但不足是需要在业务传输频道之外再建立一个窄带频道来传输忙音信号,降低了频率利用率,增加了设备的复杂度。并且无法避免入侵终端问题。
第二类是发送节点在数据发送之前与接收节点进行一次控制短消息的握手交换,以短消息的方式通知相邻节点它即将进行接收,即RTS/CTS方式,这类方式是目前解决隐藏终端问题的主要方法,例如:DBTMA、MACA、MACAW、FAMA等协议。这类方式的主要优点是具有较高的吞吐量,但由于它们都是基于争用的MAC层接入控制协议,由于争用和冲突的存在而无法为时延要求较高的业务提供服务质量(QoS)保障。同时,这类协议也无法解决入侵终端问题。
第三类是基于TDMA的多址接入方式,例如:DPRMA、MAC-RSV、ADAPT、FPRP等协议。这类方式的主要优点是可以为实时业务提供良好的QoS保障,并在一定程度上可以解决隐藏终端问题,但仍然无法解决入侵终端问题。
第四类是无线令牌环方式,例如WTRP协议等。这类方式的主要优点是可以彻底解决隐藏终端和入侵终端问题,并通过令牌环的周期查询接入控制,为时延敏感的业务提供QoS保障。其缺点是在业务传输之前,需要建立一个虚拟的逻辑令牌环路来进行令牌的顺序传送。但在MANET环境下,网络的拓扑结构是不断变化的,因此令牌环路也要不断地进行修改和重建,占用了大量的系统资源。此外,令牌的丢失和多令牌的消除问题,也极大地增加了系统控制的复杂性。
【发明内容】
本发明的目的之一提出了一种令牌的传递方法,以解决令牌传递对网络拓扑结构的自适应问题;目的之二提出了一种令牌的管理方法,以解决令牌的丢失和多令牌的消除问题,并为时延敏感的业务提供良好的QoS保障。
本发明的目的是这样实现的:
针对上述已有技术的缺陷,本发明提出了一种动态令牌多址接入协议。该协议也利用令牌来控制各节点的业务传输,从根本上解决了隐藏终端和入侵终端问题。其中本发明提出的令牌传递方法无需预先建立令牌环路,而是根据当前的网络拓扑结构自动建立令牌的传递路由,使得令牌的传递能够适应网络拓扑结构的动态变化,同时保证了节点访问信道的公平性。本发明提出的令牌管理方法通过周期性地产生令牌,并将每个令牌的生存周期严格地限制在一个时帧之内,以彻底解决令牌的丢失和多令牌的消除问题,并为时延敏感的业务提供QoS保障。具体方法如下:
一.令牌传递的过程
第一步,网络中的各个节点首先根据当前网络拓扑结构对其所有的邻近节点进行排队,分别形成其令牌传递队列,并在网络的运行过程中,根据网络拓扑结构的动态变化,对其令牌传递队列进行更新;
第二步,持有令牌的节点首先根据需要传输该节点的业务信息,然后将令牌传递给该节点的令牌传递队列中的队首节点;
第三步,未持有令牌的节点不断地对信道进行监测,当发现某节点传递了令牌时,首先将该传递令牌的节点从本节点的令牌传递队列中取出并插入到队尾,之后根据令牌中的目的地址,判断本节点是否能够持有该令牌;
第四步,对于能够持有该令牌的节点,执行第二步,对于不能持有该令牌的节点继续执行第三、第四步。
二.令牌管理过程
步骤一,将网络的运行时间划分成周期性的超帧,每个超帧包含若干个长度固定的时帧,网络或子网中的每个节点在每个超帧中的某个指定的时帧中作为该时帧的网络群首,即动态群首;
步骤二,在每个时帧的开始时刻,由该时帧的动态群首产生一个令牌,并首先持有该令牌,每个令牌的生存周期被严格限制在当前时帧之内;
步骤三,持有令牌的节点首先对令牌的剩余信道容量进行计算,并根据令牌的剩余信道容量大小决定是否进行业务传输和令牌传递,如果该令牌的剩余信道容量不足以传输任何业务信息时,则停止令牌的传递,该令牌的生命周期结束;反之,则该节点根据需要传输其业务信息,传输的业务信息量必须小于该令牌的剩余信道容量;
步骤四,持有令牌的节点在业务信息传输完毕后,将令牌传递给该节点的某个相邻节点,该令牌传递可以按照传统的方法将令牌传递给令牌逻辑环路上的下一个节点,也可以按照本发明中的动态令牌传递方法传递给该节点的某个相邻节点;
步骤五,未持有令牌的节点对信道进行监测,当发现某个节点进行了令牌的传递时,对该令牌进行分析,根据分析结果,如果能够持有该令牌,则执行步骤三、四;如果不能持有该令牌,则继续监测信道,直到下一个时帧开始,再按照上述步骤执行。
上述令牌传递方法在网络工作过程中,令牌传递队列要不断根据网络拓扑结构的变化动态,对其令牌传递队列进行实时的更新,其更新规则如下:
(1)对于网络或子网中的任意一个节点,当由过去为非相邻的节点变为当时的相邻节点时,则将该节点加入到令牌传递队列之中;
(2)对于网络或子网中的任意一个节点,当由过去为相邻的节点变为当时的非相邻节点时,则将该节点从令牌传递队列中删除掉。
上述令牌管理方法中,持有令牌的节点对令牌的剩余信道容量C的计算公式为:
C=(Ti-T)×S (1)
其中,Ti表示下一时帧的开始时刻,即该令牌生存期的结束时刻;
T表示该节点持有该令牌的当前时刻;
S表示信道的传输速率。
为了满足时延敏感业务的QoS要求,持有令牌的节点在传输业务信息时,传输的业务量应满足公式(2)的要求,即:
Cx=f(Ct,N,Cn)<C (2)
其中,Cx表示该节点传输的业务量;
Ct表示该节点缓存的实时业务量;
N表示该令牌已经过的节点数,
Cn表示该节点缓存的非实时业务量;
C表示该令牌的剩余信道容量。
公式(2)的实际含义是Cx与Ct、N和Cn成正比,同时Cx必须小于C。
上述超帧中包含的时帧数选用网络或子网中允许的最大节点数,且每个超帧中,网络或子网的所有节点是自动地轮流作为动态群首。且超帧中包含的时帧数可以大于网络中实际工作的节点数,在此情况下,某些时帧中将没有动态群首。此时,将没有动态群首时帧的上一个时帧中最后持有令牌的节点作为当前时帧的代理动态群首,负责在本时帧中产生令牌并首先持有该令牌。
本发明具有如下显著效果:
(1)由于采用令牌来控制各个节点的发送,只有持有令牌的节点才能够进行业务的传输,这样使得在任何时刻只有一个节点处于发送状态,因此从根本上解决了传输碰撞问题;
(2)由于采用了令牌的动态传递方法,在令牌传递之前无须预先建立虚拟的令牌逻辑环路,从而避免了复杂的令牌逻辑环路的建立过程,并使得令牌的传递能够适应网络拓扑结构的动态变化,因此具有更好的环境适应能力;
(3)由于采用令牌的动态群首管理方法,令牌会自动地周期性产生,并且每个令牌的生存周期被严格地限制在一个时帧所占的时间宽度之内,因此彻底解决了令牌丢失问题,并且不存在多令牌的消除问题;
(4)由于各个节点是周期性地轮流成为动态群首的,任何一个节点持有令牌的最大时间间隔是可控的。同时,节点在每次持有令牌时,可以根据业务的类型和缓冲的业务量的大小,选取传输的业务量。因此,可以充分保障时延敏感的业务的QoS,同时还可实现业务的变速率传输;
(5)在本发明中,令牌的作用仅仅是决定节点是否具有发送权,因此和其它令牌系统相比,令牌的结构可以大大地简化,从而节省了令牌所需的资源;
(6)在本发明中,无论是令牌的传递过程,还是令牌的管理方法,都充分考虑了每个节点持有令牌的均等性,因此使系统具有良好的信道访问公平性。
【附图说明】
图1是现有技术出现隐藏终端问题的原因说明图
图2是本发明采用的超帧和时帧结构图
图3是令牌传递的局部环路情况示意图
图4为本发明中令牌传递方法流程图
图5为本发明的令牌传递过程中拓扑结构变化对应的令牌传递队列的一个实例
图6为本发明的令牌传递与管理结合流程图
【具体实施方式】
以下参照附图对本发明的技术方案作进一步详细描述。
参照图2,本发明在时序上将MANET的运行时间划分成周期性的超帧,每个超帧再划分成若干个时帧。超帧中包含的时帧数与网络或子网所能容纳的最大节点数相同。网络中的每个节点在每个超帧的某个指定的时帧中作为网络群首。由于所有节点是轮流地自动成为网络群首的,因此称其为动态群首。
在每个时帧的开始时刻,由该时帧的动态群首产生一个令牌,并首先持有该令牌。每个令牌的生存周期被严格地限制在一个时帧之内。当持有令牌的节点完成了业务传输后再将令牌传递给其它节点。在每个时帧中可以完成若干次的令牌传递和业务传输。
参照图3,如果不预先建立虚拟的令牌环路,且对令牌的传递控制不力时就可能产生的局部环路情况。本示意图中,虚线表示节点间存在直通的通信链路,虚线相连的两个节点为相邻节点,带箭头的实线表示令牌的传递方向。在本发明中,为了使得令牌的传递能够适应网络的拓扑结构的动态变化,在令牌传递之前,不需要建立虚拟的令牌逻辑环路,持有令牌的节点直接将令牌传递给其某个相邻节点。因此在令牌的传递过程中,必须对令牌的传递进行某些控制和约束,否则令牌的传递就可能会形成一个局部的环路。例如:当节点A持有令牌并完成业务的传输后,将令牌传递给节点B,节点B将令牌传递给节点C,节点C将令牌传递回节点A,而节点A又将令牌传递给节点B,等等。导致令牌的传递形成A-B-C-A的局部环路,使得其它节点无法持有令牌。本发明为了防止令牌的传递出现图3所示的局部环路,使得所有的节点都有持有令牌的机会,采用了图4所示的令牌传递方法:
首先,网络中的所有节点根据网络或子网中的拓扑结构,分别建立其各自的令牌传递队列,且在网络工作的整个过程中,令牌传递队列要不断的根据网络拓扑结构的变化进行实时的更新;
其次,对于持有令牌的节点根据需要传输该节点的业务,传输之后再将令牌传递给该节点的令牌传递队列中的队首节点;
最后,对于未持有令牌的节点要不断地对信道进行监测,当发现某个节点(假设为节点i)传递了令牌时,将节点i从本节点的令牌传递队列中取出并插入到队尾;之后,再根据令牌中的目的地址,判断本节点是否能够持有该令牌。如果本节点能够持有该令牌,则可以根据需要进行业务的传输和令牌的传递;如果本节点不能够持有该令牌,则继续监测信道,直到发现某个节点传递了令牌时,再按照相同的方法对其令牌传递队列进行处理,并判断是否能够持有该令牌;
需要说明的是,当某节点(假设为节点i)发现另外一个节点(假设为节点j)进行了令牌的传递,同时节点j不在节点i的令牌传递队列中,说明节点j由过去的节点i的非相邻节点变为相邻节点,此时节点i可以直接将节点j插入到其令牌传递队列的队尾;而当某个持有令牌的节点(假设为节点m)将令牌传递给其令牌传递队列的队首节点(假设为节点n)后,如果在规定的时间内,发现节点n既没有传输业务也没有传递令牌,则可以认为节点m与节点n之间的传输链路已经中断,即节点n不再是节点m的相邻节点,且此次令牌传递失败。此时,节点n要将节点m从其令牌传递队列中删除,并将令牌再传递给新的队首节点。同时,为了减少令牌传递失败的概率,当某个节点(假设为节点a)长时间没有监测到其某个相邻节点(假设为节点b)进行令牌传递时,也可以认为它们之间的通信链路已经中断,此时节点a也应该将节点b从其令牌传递队列中删除。
为了进一步说明令牌的传递及各节点的令牌传递队列的变化过程,可参考图5。在该图中,网络包含四个节点,其初始拓扑结构如图中的“原拓扑结构”所示。则经过一定时间的运行后,无论初始时各节点的令牌传递队列的顺序如何,按照本发明的令牌传递方法,最终令牌的传递顺序一定是:A→B→C→D→A(或A→D→C→B→A)。下面以前者为例说明令牌传递过程中各节点的令牌传递队列的变化。
假设在某个时刻,各个节点的令牌传递队列如图5中的“初始状态所示”。节点A持有令牌。当节点A向节点B传递令牌时,节点B、C、D都要调整其令牌传递队列。当节点B持有令牌时,网络拓扑结构发生了变化,如图中“新拓扑结构”所示,即节点A与节点D之间的链路断开,而节点B与节点D变为相邻节点。当节点B将令牌传递给节点C时,节点A和C要调整其令牌传递队列,同时由于节点D发现了节点B为新的相邻节点,因此节点D将节点B加入到其令牌传递队列的队尾。当节点C将令牌传递给节点D时,节点A、B、C要调整其令牌传递队列。当节点D向节点A传递令牌时,节点C要调整其令牌传递队列,而节点B要将节点D加入到其令牌传递队列的队尾,同时由于节点D和节点A之间的通信链路已经中断,因此节点A无法持有令牌,因此节点D要将节点A从其令牌传递队列中删除,并重新将令牌传递给节点C。然后节点C再将令牌传递给节点A等等。由于节点A长时间未发现节点D传递令牌,因此,将节点D从其令牌传递队列中删除。
上述令牌的传递方法可以用于传统的令牌系统,也可以与本发明的令牌管理方法相结合使用。将本发明的令牌传递方法用于传统的令牌系统可以直接替代传统的令牌传递方法,无须预先建立逻辑的令牌环路,使得令牌的传递能够适应网络拓扑结构的动态变化,从而增强了令牌系统对网络的适应能力;如果将本发明的令牌传递方法与本发明的令牌管理方法相结合,效果更佳,可以彻底解决令牌的丢失和多令牌的消除问题,简化令牌的管理与维护,并为时延敏感的业务提供QoS保障。
参照图6,为了简化令牌的管理和维护,并为时延敏感的业务提供了良好的QoS保障,图6给出了将本发明的令牌传递方法与本发明的令牌管理方法相结合的实施例,其具体技术内容如下:
1)令牌的传递和业务传输的控制过程
首先,将网络的运行时间划分成周期性的超帧,每个超帧包含若干个长度固定的时帧,网络或子网中的每个节点在每个超帧中的某个指定的时帧中作为该时帧的网络群首,即动态群首,在每个时帧的开始时刻,由该时帧的动态群首负责产生一个令牌,并首先持有该令牌。
其次,由每个节点根据网络或子网的拓扑结构建立各个节点的令牌传递队列,为了使得令牌的传递能够适应网络拓扑结构的动态变化,当网络的拓扑结构发生变化时,各个节点还要对其令牌传递队列进行必要的维护和更新。
第三,由于每个令牌的生存周期是受限的,因此每个节点在持有令牌时,首先要对令牌的生存周期是否结束进行判断,即由持有令牌的节点对令牌的剩余信道容量进行计算,根据令牌的剩余信道容量大小决定是否进行业务传输和令牌传递,如果令牌的剩余信道容量不足以传输任何业务时,表明该令牌的生存周期已经结束,则停止业务的传输和令牌的传递,直到下一个时帧开始时由新的动态群首再产生一个新的令牌。如果令牌尚有剩余信道容量,则根据令牌的剩余信道容量进行业务的传输和令牌的传递,传输的业务信息量必须小于该令牌的剩余信道容量;
令牌的剩余信道容量计算方法按照公式(1)进行,即:
C=(Ti-T)×S (1)
其中,C表示令牌的剩余信道容量;Ti表示下一时帧的开始时刻,即该令牌生存期的结束时刻;T表示该节点持有该令牌的当前时刻;S表示信道的传输速率。
第四步,对于可以进行业务传输的持有令牌的节点,可根据需要传输其业务,业务的传输可采用时分复接的方式进行,即每个节点首先将本节点需要传输的各种业务,以及其它节点需要通过本节点中继的业务组合起来,当节点持有令牌时,一次性将这些复接的业务传输出去,其它节点接收到这个节点传输的业务时,再进行解复接处理,从复接的业务中提取出传输给本节点的业务,同时将需要本节点中继的业务也提取出来进行保存,并将其与本节点的业务进行复接,以便在节点持有令牌时进行传输。
在实际应用时,为了保障实时业务的服务质量和每个节点业务传输的均衡性,节点在进行业务复接时,除了要考虑令牌的剩余信道容量以外,还要考虑以下几个因素:本节点缓存的实时业务的业务量(Ct)、令牌传递已经过的节点数(N),以及本节点缓存的非实时业务的业务量(Cn)。因此,持有令牌的节点在传输业务信息时,节点实际复接的业务量应满足公式(2)的要求,即:
Cx=f(Ct,N,Cn)<C (2)
具体地说,就是在实际进行业务复接时,应优先安排实时业务的传输,即实际复接的业务量Cx与Ct成正比;令牌已经过的节点数越多,则在本令牌的生存周期内,系统中未曾持有令牌的节点就越少,因此复接的业务量Cx与令牌传递已经过的节点数N成正比;为了使得非实时业务的传输延迟不至于过大,Cx与Cn也应成正比。但无论在任何情况下,节点复接的业务量Cx都应该小于令牌的剩余信道容量C。
第五步,在完成了业务传输之后,可以按照传统的方法将令牌传递给令牌逻辑环路上的下一个节点,也可以按照本发明的令牌传递方法传递给该节点的某个相邻节点,即持有令牌的节点将令牌传递给该节点的令牌传递队列中的队首节点。
第六步,对于没有持有令牌的节点则对信道进行监测,当某个节点发现其一个相邻节点i进行了令牌的传递时,该节点将节点i从本节点的令牌传递队列中取出并插入到队尾;然后,根据令牌的目的地址,判断本节点否能够持有该令牌,如果不能持有该令牌,则该节点继续监测信道,反之,该节点则持有该令牌,进行业务的传输并将令牌再传递给该节点的令牌传递队列中的队首节点。
2)特殊时帧的处理办法
在实际应用中,网络或子网的当前规模可能小于规定的最大网络规模,即网络或子网中当前实际入网的节点数小于一个超帧中的时帧数。这样,就会发生在某些时帧中没有动态群首。此时,如果不进行任何处理,则在这些时帧中将无法产生新的令牌,导致信道利用率的下降。为了解决这个问题,本发明规定在没有动态群首的时帧中,上一个时帧中最后持有令牌的节点,在当前时帧中作为代理动态群首,它负责在当前时帧中产生新的令牌并首先持有该令牌。为了不影响在该时帧中将作为动态群首的节点的入网过程,代理动态群首最好在该时帧的开始时刻延迟一段时间之后再进行业务的传输和令牌的传递,延迟的时间宽度应该足够传输一个空令牌。在代理动态群首完成了业务传输后,仍然按照动态令牌传递技术的规则,将令牌再传递给其它节点,即持有令牌的节点将令牌传递给该节点的令牌传递队列中的队首节点。这样就可实现信道资源的充分利用。
3)令牌传递队列的更新处理
为了使得令牌的传递能够适应网络拓扑结构的动态变化,在网络的运行过程中,各个节点必须对其令牌传递队列进行必要的维护和更新。具体规则如下:
为了简化叙述过程,我们假设所有的直通通信链路均为双向链路,即如果节点A为节点B的相邻节点,则节点B也为节点A的相邻节点。
当一个节点刚开始工作时,将其令牌传递队列置为一个空的队列,同时对信道进行监测,并在其作为动态群首的时帧的开始时刻,发送一个空令牌表示要求加入网络。但此时在该时帧中实际使用的令牌,仍然由代理动态群首产生。
按照前面所述的动态令牌传递过程,当节点在没有持有令牌时,会对信道进行监测。在监测的过程中,如果某个节点(假设为节点A)监测到另外一个节点,假设为节点i进行了令牌的传递或发送了一个空令牌,则节点A在其令牌传递队列中进行搜索。如果节点i在节点A的令牌传递队列之中,则按照动态令牌传递技术规定的方法进行操作;反之,说明网络的拓扑结构发生了变化或新的节点i要求加入网络,且节点i成为节点A的一个新的相邻节点。为了保证这条新的直通通信链路能够可靠工作,可以设置一个门限值,即如果在一段时间内节点A发现节点i为其新的相邻节点的次数大于门限值时,再将节点i加入到节点A的令牌传递队列之中。
同样,如果节点A在一段规定的时间(可以设置为一个超帧的时间宽度)内,没有发现其令牌传递队列中的某个节点(假设为节点j)进行令牌的传递,则可以认为节点A到节点j的直通通信链路已经中断,节点j不再是节点A的相邻节点。此时节点A应将节点j从其令牌传递队列中删除。
对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明方法、原理的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。