部分连接的无线网络组关系路由系统与方法

文档序号:7621092阅读:202来源:国知局
专利名称:部分连接的无线网络组关系路由系统与方法
技术领域
本发明涉及ad hoc自组织网路由技术领域,特别是一种具有部分连接特性无线网络环境下的自组织路由系统与方法。
背景技术
随着嵌入式技术的发展和无线网络的发展,越来越多的将部署灵活,成本低廉的嵌入设备应用到各种应用领域,提供数据采集,信息服务,监控等服务。大量离散的网络节点通过自组织方式形成网络,不需要基础设施,依靠节点之间通过多跳无线链路相互通信,形成ad hoc自组织网。本发明方法属于ad hoc自组织网络的路由技术。不同特点的网络和不同的应用环境,需要采用不同的路由方法。大部分的ad hoc路由技术研究的对象是完全连接的网络拓扑,都假设至少存在一条从源到目的节点的完整路径L。本发明研究部分连接特性的网络。所谓部分连接的网络是指网络的物理拓扑图是非连通的,存在多个连通分支,源和目的节点之间的完整路径L可能不存在。在部分连接的网络中,由于节点的移动、工作状态变化等原因,网络结构不断变化,不同的时刻可能形成不同的拓扑连接关系,通常是形成多个簇(连通分支),每个簇内部是连接的,而簇之间是不连接的。然而不同时刻形成的簇中可以找到一些路径集合∪Li能够覆路径L,因此源和目的节点之间理论上可以完成通讯。在这种网络中,当数据要发送时,网络正好处于被隔离成几个部分的状态,节点间的端到端的应用就被破坏,这时在现有的ad hoc协议下,数据是无法发送的。具有部分连接特性的网络在实际生产应用中很普遍,节点的故障,移动,工作周期等都可能导致完整路径无法一次生成。而且有很多的应用环境下,需要的是数据最终到达目的地,而对时间的要求不是很严格,例如数据采集,环境监测,电子商务等。因此,即使网络是部分连接的,数据发送时无法一次找到端到端的完整路径,但是仍然可以分阶段的将数据沿着不同时间段可用的路径,逐步逼近,最终到达目的地。ad hoc网络的一个很大的特点是拓扑变化,通常提出的adhoc网络路由协议(例如,AODV,DSDV,DSR,TORA等)也能够在一定程度上适应拓扑变化。通常的ad hoc路由协议大体分两种,一种是先验型的,类似于固定有线网络,他们事先计算出路由信息和路径,当需要传输数据就按照这些信息转发数据,这类协议对拓扑的变化适应能力较差,需要频繁的更新路由信息;另外一种是随选型,当有数据需要传输时候才根据当前的连接情况寻找一条可用路径,避免了事先计算的路径在需要传输数据时候已经失效。这两类尽管有不同,但是他们都需要一个假设在一段时间内(通常足以完成一次路径发现或者数据包的逐跳转发)存在源到目的的一条完整路径,因此,通常的ad hoc协议对拓扑变化的适应是有前提的。而部分连接特性的网络中就是在这个前提不成立的情况。因此,通常的ad hoc协议无法在部分连接的网络中工作,需要一种针对部分连接网络的路由协议。
相对于传统网络和完全连接的ad hoc网络来讲,对于部分连接的网络的研究相关的工作还比较少。文献[1]R.C.Shah,S.Roy,S.Jain and W.Brunette,Data MULEsModeling and analysis of a three-tier architecture for sparsesensor networks,Elsevier Ad Hoc Networks Journal,vol.1,issues 2-3,Sept.2003,pp.215-233,提出利用中间泛在的移动节点中转信息。文献[2]A.Vahdat and D.Becker.Epidemic routing for partially-connected ad hocnetworks.Technical Report CS-2000-06,Duke University,2000.提出在利用随即移动的节点对之间交换信息,使得捎带的信息在整个网络中蔓延开来。依靠节点的移动和信息交换,就可以完成数据传输。只要节点周期性的两两交换,信息就可以最终到达。而且数据在节点间的两两交换会造成信息的冗余甚至产生广播风暴。
文献[3]Xiangchuan Chen and Amy L.Murphy,“Enabling disconnectedtransitive communication in mobile ad hoc networks,”in Proc.of Workshop onPrinciples of Mobile Computing,colocated with PODC’01,Newport,RI(USA),aug 2001,pp.21-27.对Epidemic Routing进行了改进,建立了DTC(Disconnected Transitive Communication)模型。使用应用层的可控utility函数来对节点是和目的地的接近程度进行量化。每次转发时,节点都是选择utility最大的节点最为下一跳,也就是向最容易到达目的地的方向转发。然而,utility的确定比较困难,仅作为一个概念模型,不是一个实际的工作协议。
专利US2005068913文献[4]TAN KUN,ZHANG QIAN,ZHU WENWU,Metaspacecommunication middleware for partially connected mobile ad hocnetworks提出了一种部分连接ad hoc网络的中间件机制,利用移动设备缓存转发消息,来桥接分离的网络岛。并且将通讯元空间的概念引入分布式环境,实现与Web service的结合,也提出了一种异步消息转发路由方法,采用随机模型评价最优的节点序列路径。

发明内容
本发明的目的是提供一种适合部分连接的无线网络的路由机制,实现在完整路径不存在的情况下用较低的开销提高路径生成的概率。
本发明要解决如何在部分连接的网路中路径生成和路径模式识别。路径生成问题要解决如何在不可靠的连接状况下,以较高的概率生成传输路径,引导数据到达目的地。路径识别问题要解决如何感知网络中实体的分布模式和特征,用于检测特殊的情景。
根据部分连接的网络特性和要解决的技术问题,适合的路由算法应该具有以下特点1.放松对路径的描述规则一般的ad hoc路由算法都是完全依据网络的拓扑连接信息,在离散的节点构成的图中寻找一条通路。形成的路径用一个节点地址的序列来表示。这就造成了路径对拓扑结构的依赖性太大,单个节点的状态直接影响路径的可用性,在无线网络中,尤其是部分连接的网络,网络拓扑随时变化,要么根本无法构建完整的可用路径,要么刚计算的得到路由就可能过时失效,需要重新生成。因此本发明中,不使用节点地址序列来描述路径,而采用更宽泛的规则来约束要生成的路径。在路由的时候,下一跳的寻找不再是传统的路由中的单个节点,而是一组节点,减少了寻找的范围,增大了下一跳命中的概率。
2.将应用层的信息引入路由机制路由完全独立于上层应用,未必合理。这种网络的数据包的路由不仅仅依据网络的物理连接拓扑图,还要依据实体间的逻辑关系图,当满足逻辑关系图规定的实体之间的物理路径有效,就触发数据的传输,否则就进入等待状态。
3.采用多次分阶段生成路径部分连接网络中,由于相关实体间的可用完整路径不存在,通讯不能一次完成。但是数据并非完全不能到达目的地,网络存在若干连通分支,路径是片断性的,随时变化的。如图2中,A-F为网络中的节点,图2-1中,节点D的间歇在线,会使得路径不完整。如图2-2,由于节点C的移动,节点移动到另外的路径片段中,图2-3中,由于节点D的移动,将两个断开的路径片段连接。可以采用多次分阶段生成路径,一个完整的路径可以根据逻辑关系划分成几个子路径,在逻辑关系的指导下,符合关系描述的那部分子路径如果可用,就先将数据包按照这条子路径路由,这样数据就会朝着目的地逼近。
为实现上述目的,发明人提出一种基于组关系的路由机制。用本地化的信息将网络的实体进行划分,形成多个区域,称为组。这些组之间的逻辑关系,可以用一个组的序列或者集合表示,称为一个组关系链,用于描述要生成路径的特征,并用这种关系指导路径的生成。这种方法的特点是节点间的逻辑关系相对于用节点序列的连接关系更加稳定,用逻辑关系定义路径,可以适应网络连接的变化。另外,可以用组关系描述参与通讯实体的特征,可以在网络中检测到特殊的路径,用于感知网络事件的发生。
路由节点的结构图如图1-1所示。最底层是物理层的接收发送端口,和MAC层相连,负责发送接收MAC帧;MAC层负责接入访问控制,以及为上层数据包进行帧封装和解封装;MAC接口层负责地址解析和分配;路由层衔接MAC接口层和路由接口层,负责包的路由转发,是协议的主要工作模块;路由接口层连接上层控制协议,提供路由层的服务和数据封装解封装,上层协议层可以通过源和数据中心和应用进行接口;移动模块控制节点的行动轨迹;间歇模块负责控制节点的间歇和工作周期。
路由层协议的组织结构图如图1-2所示。上层伪接口负责和源和数据中心进行数据交换,上层伪接口的数据和来自MAC接收端口的其它节点的转发数据都进入数据队列统一接受路由。当数据队列不为空时,路由模块获取数据包的目的地址(单播地址或者组地址),并通过路由维护模块查询组关系链表,如果有到目的地址的组关系链条目,则根据路由依据和优先级选取最佳的关系链,并计算下一跳转发地址,转发地址写入数据包的转发地址,触发转发模块,转发模块启动邻居发现模块,确认转发节点的存在,邻居发现模块依据动态更新的邻居表选择可用的下一跳,从数据队列中取出已经写入转发地址的数据包,向可用下一跳发送该数据包;若路由模块没有到目的地址的组关系链条目,路由模块调用路由维护模块进行路由请求过程,路由维护模块产生路由请求包,放入邻居请求队列,目的地址为广播地址,送交转发模块,转发过程同数据包的转发过程。中间节点接收到邻居请求包,将该中间节点的组信息添加到请求包的关系链中,会通过转发模块继续转发。当被请求节点或者拥有到被请求节点的路由信息的中间节点收到邻居请求包,则由转发模块直接送交路由维护模块,计算得到应答关系链,产生邻居请求应答包,放入邻居应答队列,由转发模块发送。中间节点接收到邻居请求应答包,判断自身是否在应答包中的关系链中出现,如果是,则通过转发模块继续转发。当应答包到达请求节点,则由转发模块直接送交路由维护模块,将应答关系链更新到组关系链表中。组维护模块负责维护组的一致性,包括组首领的产生和替换,组成员的招募等。生成的组信息直接作为组关系链生成的依据,而组关系链作为路由过程的依据。
在此提出一种利用网络实体的逻辑组关系来进行路由的方法。主要思想是通过在网络实体之间建立一种逻辑组关系,在路由过程中将这种组关系作为依据,指导路径的选择以及数据的转发。在此提出一种基于渗透算法的组关系生成方法,建立和维护实体间的组关系。这样网络对应的图记作G={P,E},定义关系N,若p1,p2∈P,且p1,p2之间的跳数<a(a为设定的整数),则称p1,p2具有N关系。依据关系N可以定义P中节点的一个分组方式P中节点若在一段时间内没有加入某个组,则自己成立一个组,并作为组首领;组首领将满足关系N的节点都加入该组。这是一个动态分组过程,可以得到P的一个划分R={r1,r2,...rn}。当组关系建立后,网络的通讯的过程实际上是具有各自组关系身份的节点之间的数据交换。假设数据所经过的路径L是一系列节点的排列P{p1,p2,..pi..pn},如果pk,..pk+t∈ri,则对应的L中节点所属于的组序列,就是R={R1,R2,..Rm},称为一个组关系链。关系链R实际上是对路径L的特征描述。假设L1{k1,k2,..ki..kn}是符合R的路径,如果k2,q2都属于同一个组Ri,则L2{k1,q2,..ki..kn}也是符合R的路径。凡是符合R描述的路径都称作路径L的组关系等效路径。因此,用R关系链来指导路由,数据转发不再依赖单一的路径L这一个节点序列,而是可以选择更多的可能路径,这样,路径生成的概率增大。从路径选择和数据转发的范围上来讲,本发明的方法实际上是介于传统ad hoc路由和EpidemicRouting路由方法之间的一种方法。传统的ad hoc路由是选择一条最佳的路径,并严格按照这条路径传输,这样就局限在这条路径的节点范围内,一旦某个节点失效,就导致路由失败。Epidemic Routing则是在全网络内扩散数据,选择的范围是所有没有收到该数据的节点,这样从理论上讲虽然可以最终到达目的节点,但是开销较大。本发明通过关系链的指导,使得范围控制在所有的等效路径中,即避免的依赖单一完整路径,可以在部分连接的网络中完成数据传输,又避免了数据在整个网络中扩散。本发明用关系链R作为生成路径的标志,当节点在路由过程中判断自己在关系链中的位置,以及可用路径对应的关系链是否和该关系链一致,如果可用路径符合,就将数据沿着这段路径转发,这样数据就在关系链的指导下沿着可用路径最终到达目的节点。需要提出的是,在部分连接的网络中,一条完整的贯穿源节点和目的节点的可用路径P存在的机率很小,因为在拓扑变化强的部分连接网中,要保证p1,p2,..Pi..Pn在某时间段(足以完成逐跳转发)都保持可用,概率很低。但是,这条路径上的局部节点,或者和保持连通的概率相对较高。只要按照组关系R的描述进行判断,当数据在转发过程中,途经的局部节点组成的子路径符合R的描述,就进行转发,否则就存储数据并等待。
这样,路由过程是在R关系链的指导下完成的,数据最终传输的路径L不是单纯依赖一条事先确定的唯一路径,而是具有R关系描述特征的所有等价路径中的一条。如图3所示,组关系链R描述了路径L的特征,R所覆盖的区域的节点都可以形成路径,消除了用路径L指定转发顺序带来的单点故障问题。而且,沿着这条路径传输的过程也是一个异步的过程,数据不需要等待整个路径的所有节点都在线才能传输,而是可以在关系链的引导下分阶段逐步接近目的地。本发明区别于现有路由协议的主要特点是1.路由过程是用路径的逻辑特征作为指导的。传统的路由机制一般都是单纯按照网络的拓扑特性作为主要依据,而对网络实体的逻辑关系以及传输路径的特征不加考虑,因此,传统的路由在拓扑变化的网络中,只能依靠不断的更新拓扑信息,频繁的计算当前可用路径,导致开销过大。而本发明考虑到部分连接网络中的局部特性网络拓扑出现变化的范围是局部的而且是间歇性的,经常是某一段局部路径失效,而后又恢复,或者由另外一个路径代替。因此,只要能够保证数据按照一个确定的方向进行传输,数据最终到达的概率会很高。同时,网络中的实体都是具有一定逻辑关系的,例如协作关系,区域关系,网络可以按照某些特性划分成关系组,因此,传输的路径也就可以用这些途径组的序列来描述,这样就形成的路径的特征描述。本发明就是利用在网络的运行过程中形成的特征描述作为方向指导生成路径的。
2.路径的生成是分阶段完成的。当从源节点到目的节点之间不存在一条完整的可用路径,数据无法连续的沿着多个节点依次转发到达目的地,目前大多数的路由协议都采用这种同步的转发方式下一跳肯定存在,数据只需要向计算出的最优下一跳传输即可,存储转发的含义只是数据只在沿途节点暂时缓冲,等待队列其它数据发送完毕,只要端口空闲就立刻发送,等待的时间一般很短,所以又叫“热土豆”转发策略,这种策略都是假设下一跳的端口都是存在的,只有空闲与占用两种状态,而在部分连接的网络中,下一跳的端口还有另外一种状态失效,传统的转发策略在这种情况下会丢弃数据包,在部分连接网络中,会导致数据永远无法到达。本发明允许数据在沿途节点较长时间的存储,当下一跳不存在时,可以等待一段时间,期待下一跳的出现。在部分连接的网络中,下一跳很可能失效,但是很可能又在某个时间恢复,如图2-1所示;而且,其他节点也可能通过移动,成为新的合适的下一跳,如图2-2,2-3所示,这些都表明暂时的路径失效应当被容忍。传统的转发策略不适合,本发明通过组关系链作为指导,当节点的邻接关系满足组关系链的描述就转发数据,不满足就等待,期待某个时刻数据得以继续转发。
3.下一跳可以是某个组中的任意节点,而不依赖于单个节点,防止由于单点故障引起数据阻塞在途中。只要任何一个该组节点出现,都可以继续转发,同等待某个单一节点作为下一跳的路由策略相比,数据更有可能到达目的地。
技术方案一种分连接网络环境下部基于组关系的路由机制系统,包括部分连接的网络,间歇工作的移动网络节点、组首领、组关系链、邻居发现包、邻居查询包、邻居发现的应答包、查询应答包、探测包、关系链同步请求包、关系链同步包、招募包、易帜包,网络节点由接收端口,发送端口,MAC层,MAC接口层,路由层,路由接口层,源和数据中心组成,其中路由层的组织结构包括路由查找模块,转发模块,路由维护模块,组维护模块,邻居发现模块,邻居请求队列,邻居应答队列,MAC发送端口,MAC接收端口,上层伪接口,邻居表,组关系链表。
所述的系统,网络节点被划分为若干逻辑的组,节点发送NS包获取到达目的节点的一条路径所经过的组的序列,称为组关系链,它描述了路径的分布特征,作为路由依据。
所述的系统,网络节点不稳定,路径不稳定,但是形成的组划分之间的邻接关系基本稳定,系统和方法采用路径所经过的组序列作为路由判断依据。
所述的系统,路由模块计算下一跳转发地址后,转发模块并不立刻执行转发过程,而是启动邻居发现模块,确认下一跳节点的存在,当可用的下一跳响应后,再对其发送该数据包,避免由于节点间歇造成的丢包现象。
所述的系统,邻居节点满足组关系链描述才能成为转发的下一跳,网络中的节点被区分为组关系链相关的区域和无关的区域,数据仅在组关系链相关区域内被转发,能够有效的控制通讯的范围,避免通讯的任意扩散,降低了网络开销。
一种部分连接网络环境下基于组关系的路由机制的方法,步骤包括组关系链的定义,组关系链的动态生成,随机圈地算法,渗透算法,组关系链维护、优化,组关系链指导下的路由、异步路径生成、异步转发策略。
所述的方法,随机圈地算法采用节点随机竞争的方式竞选组首领,组首领按照设定的范围招募组成员,节点的身份通过晋级和降级动态改变,首领故障或者离开,则由其它成员代替,但是组的名字保持不变,组一旦创建,其成员负责该组的持续一致的存在。
所述的方法,对用于路径发现的邻居发现包和邻居发现的应答包采用多次渗透的方式转发包,包被转发后仍然缓存该包一段时间,当有其它新的邻居组出现时,会再次转发该包,以适应间歇存在的路径。
所述的方法,路由信息不是节点的地址序列,而是组的序列,转发的下一跳不局限于单个节点,而是一组候选节点,增大了路径形成的概率,避免路由频繁失效造成的开销。
所述的方法,数据包携带路由信息,路由信息为组关系链,表明该数据包允许经过的网络中组区域。
所述的方法,路由选择采用添加规则的方式,规则包括邻居组出现在组关系链中、包含邻居组和目的组的两个组关系链有交点,规则具有不同的优先级别,随着时间推移,使用的规则的优先级降低。
所述的方法,将网络实体按照邻接关系和功能依据,划分成若干邻接的组。


图1-1为部分连接网络节点结构图。
图1-2为路由协议系统结构图。
图2为部分连接网络路径形成示意图。
图3为组关系链描述路经的特征图。
图4为数据转发过程图。
图5为路由节点状态转换流程图。
图6为路由节点状态转换图。
具体实施例方式
本发明是通过在部分连接的无线网络中建立节点实体之间的逻辑关系,从而对实体进行划分,形成一个由多个组组成的实体集合。一条路径包含的节点所属的组,构成一个组序列,这个组序列就是描述路径的逻辑特征,成为组关系链。用这个信息作为路由的指导依据,完成路径的生成。
在协议中涉及的关系链主要分为两种前向关系链和后向关系链。前向关系链记录包在已经发生的转发过程中所经过的组序列,可以用作关系链的自学习。后向关系链记录包将来要经过的组序列,为路由信息,描述了该包如何到达目的节点。
本发明方法包含三个主要过程组的划分,组关系链的维护,链指导下的路由转发。
在这些过程中涉及到的包格式描述如下1.基本数据包格式目标组,目的地址,源组,源地址,转发地址,主组关系链,后向组关系链,方向标志,数据类型,数据其中转发地址是数据包下一跳的地址,用于控制该包转发范围。
主组关系链存放源组在发送数据时候计算的路由关系链,用来指导路由过程,是全局关系链。
后向组关系链是用来存放数据在路由过程中的中间节点计算出的局部路由链,在中间跳会发生改变。后向组关系链用于指导后续局部路径的生成,例如,如何到达主关系链中某个组的的关系链信息。相对主组关系链是辅助参考作用。
数据szDataBuff可以为定制的格式例如SMS,CONTRL2.邻居发现包邻居发现包括邻居请求和邻居应答,使用邻居请求包、邻居查询包、邻居应答包。
邻居发现的请求包NS包当节点没有路由转发数据时会发送NS,NS会被其它节点转发,NS包携带组关系链信息,记录沿途经过的组序列,称为前向关系链。包含请求目的组、前向关系链。
请求目的组为NS包所要请求的目的组,以获取到达该组的关系链。NS包含组关系链信息,称为前向关系链用于记录所经过的组序列;当到达被请求对象时候,前向关系链加上目标组地址就是已经形成的关系链,被复制到响应扩展NA包的应答关系链中。
邻居发现的应答包NA包包括直接NA的和扩展的NA两种。
NA基本格式源组,源地址,NA类型,邻居数量,邻居组数量等。
NA包含两种类型直接的定时发送NA,生成邻居列表,不会被转发。
扩展的用于应答主动邻居请求NS,可以被转发。
扩展NA还包含组关系链信息应答关系链,后向关系链。
应答关系链最终形成的源组到目的组的关系链。如果NA由被请求目的组形成,内容来自NS包中的前向关系链信息,如果中间组可以应答NS,则查找路由表得到到被请求目的组的路由关系链加上NS的前向链,构成完整的关系链,复制到NA应答关系链,作为请求的应答。
后向关系链存储要将应答关系链通知的范围。初始为应答关系链内容。扩展NA被转发时,中间节点计算出的局部路由链放入后向组关系链,用于指导后续路径的生成。
若后向关系链如果只包含被请求组的地址,说明该节点就是被请求组。扩展NA的另一个作用是相当于PROB包,可以在沿途节点建立该组的路由关系链记录邻居查询包NQ用于在没有符合关系链描述的邻居时,查询邻居到目标节点是否优于本节点。
格式为查询组地址,权重。权重是表示节点到查询组接近程度的度量。同节点由于关系链数量、同查询组接触次数、邻居组的数量等决定。权重越大,表明其越有可能将数据包发送到目的组。
查询应答包NR用于应答NQ包。
格式为查询组地址,权重。
3.探测包PROB包用于存在告知,让网络获取其存在以及相对位置信息,在所经过的节点上建立路由或者更新路由。PROB包含组关系链信息,称为前向关系链,用于标示所经过的组序列。Prob包每到达一个新的组,就被添加到链中;当到达叶子组(除了链中的组之外,没有其他直接邻居组),该组会产生一个扩展NA包,将前向关系链复制到扩展NA包的后向关系链中。
4.关系链同步请求包GReq包包含请求关键词,前向关系链请求关键词存放要请求的关系链中的某个元素,应答者会将所有匹配的已知关系链作为GSyn包应答;前向关系链,用于标示所经过的组序列,应答者的应答包将按照该链返回请求源;5.关系链同步包GSyn包用于节点之间交换关系链信息,同时作为GReq的应答。包含应答关系链信息,后向关系链信息。
应答关系链信息存储要同步的关系链;后向关系链存储要将应答关系链通知的范围,GSyn将按照该链信息进行路由。当收到GReq时候,该信息来自GReq包的前向关系链信息。后向关系链也可以为指定的单个组或者为空,则被视为普通数据,接受网络的路由过程。
6.招募包Cns包用于首领生成和组成员的身份维护。包含组名称,等级,范围,跳数,周期数。
组名的命名使用首领的标识符,当新首领接替原首领时,组名不变,以保证组关系链信息的有效性。等级表明发送招募包的节点的等级,包括准首领和正式首领或者高层首领等。范围表示该首领所覆盖的范围。跳数表明该招募包被转发的次数。周期数表明其发送Cns包的数量,可以反映其在位时间,用于首领竞争。
7.易帜包ReCns包用于首领或者准首领将原有成员并入新的组。包含原组名,新组名。NA,NS,Prob,GSyn包都具有关系链信息,都可以传播组关系,但是也有很大区别NA是被动发送的,是定向的。而且主要作用是通知NS发起者所需的组关系信息和邻居信息。既定的沿途的节点主要是组关系链规定的组节点,是顺便获取的信息。
NS包是数据驱动后,主动发送的,非定向的,沿途节点一方面会引导NS,一方面也会从NS沿途生成的路由关系链中学习到信息。
Prob包是主动的,非定向的。和NS类似,但Prob是周期性发送的,NS是数据驱动的。Prob不需要响应,只是存在告知作用。
GSyn包是事件驱动的,当收到请求同步包或者首领发现有新的成员加入时发送。
组的划分组划分的目的是将网络中的节点分成若干区域,数据在沿着一条路径传输,会经过不同区域,形成一个区域的序列组关系链,本发明用这些区域来描述这条路径,用于在需要传输数据时,在这个区域信息的指导下还原这条路径。这些区域组成的关系链信息实际上是描述了路径的传输方向,在部分连接的网络中,虽然路径的节点很不稳定,但是只要按照一定的方向引导数据,数据最终能够找到合适的转发节点,将数据送达目的节点。因此本发明实施的第一步是把网络的节点按照一定的规则分为若干组,划分方法如下组之间是可以是对等的,也可以是分等级的,允许组的叠加。每个组由一个较为稳定的成员作为首领,负责组信息的同步。
1.功能组(不同的业务定义不同的功能组);它负责采集或者提供某种信息。是网络中可寻址的组。属于静态设置的。
2.转交组为信息和数据的传递提供中间转交服务,仅作为源和目的间所经过的组。
3.子转交组,对转交组可以进行细分。属于动态生成的。
组的划分有静态和动态两种,下面分别说明静态划分静态划分是指将某些节点人工指定设置为某个功能组。例如将部署区域按照蜂窝结构进行划分。或者将经常接触的那些移动节点划分成一个组。功能组一般作为目的组,可寻址。
动态划分动态划分用于将网络的节点划分成邻接的区域,作为路由选择的参照基准信息,例如源头和目的之间被划分成一系列组区域,有效路径所穿过的那些区域,组成一个组关系链,作为路由时的依据和指导。对于动态划分,采用随机圈地算法。
组动态划分的过程如下1.当网络中的孤立节点(不属于任何组的节点)在一段时间内没有收到某个首领的探测包,则成为准首领,发起圈地过程周期性的发送招募包Cns包,组名与该节点同名,等级为2,表示准首领,初始的跳数为1,周期数为1,设置范围值。
2.当某个孤立节点收到Cns包,如果跳数小于范围值则加入该组,设置节点距首领的距离为Cns包跳数,发送应答(可选)。将Cns包跳数加1,继续转发Cns包;3.当某个准首领收到等级为1(来自首领)Cns包,如果跳数小于范围值,表明附近已经存在首领,则该节点加入Cns指定的组,并发送易帜包,将其招募的成员加入Cns指定的组。
4.当某个准首领收到等级为2(来自其他准首领)Cns包,如果跳数小于范围值,则比较Cns包的周期数和该节点的周期数量,如果Cns包的周期数量大,则该节点加入Cns指定的组,并发送易帜包,将其招募的成员加入Cns指定的组;否则,丢弃该包;5.当首领节点收到Cns包,直接丢弃该包;6.当某个组成员收到Cns包,如果同组,且节点距首领的距离大于Cns包跳数,则更新距离值,将Cns包跳数加1,转发Cns包,否则丢弃该包。
7.当准首领的周期数达到上限,没有发生易帜,则升级为首领;8.如果属于某个组的成员在一段时间内没有收到首领的探测包,则以原组名开始选举新首领的过程,转到1;组关系链的维护组关系链的维护包括关系链的生成、同步、优化等过程。
组关系链的生成组关系链一个由源组、目的组以及从源到目的的路径所穿过的组构成的序列。关系链的生成也分为静态和动态两种。静态关系链是一系列功能组的序列,在协议运行之前就已经定义,用于静态划分的网络或者用于特殊情景的捕获。动态关系链是通过学习过程形成的,用于描述源和目的节点之间有效路径的特征,并在路由过程中指导路径的生成。
动态关系链生成过程由组首领发起的,在PROB包或者NS包的发送过程中形成。某个组通过发送PROB包,网络中的其他组可以获取到达该组的路由信息。通过发送NS包,可以获取到达所请求组的路由信息。
在功能组首领发送周期性发送PROB包(或者在需要路由而发送NS包)时,PROB包在网络中转发扩散过程中,记录沿途所经过的转交组(子转交组),形成关系链,当沿途节点转发PROB包时,会将关系链信息保存或者更新。PROB包的转发采用渗透算法。
假设图4中的网络中,N1-N9为网络中的节点,G1-G4为动态生成的4个组,PROB包转发以及关系链生成过程如下1.假设N1是G1组的首领,会定期的发送PROB包,内容为源组地址G1,源地址N1,跳数1,前向链G1,后向链NULL。
2.N2,N3,N9是直接邻居,收到N1的PROB包,会知道首领的存在,并将组邻居表中G1表项的hop值设为1;N2,N3由于有邻居组,会将PROB包的跳数设置为2然后转发出去。但是由于N9没有其他邻居组,不再转发。
3.N1,N3都会收到N2转发的PROB包,由于N1,N3记录的G1跳数分别为0,1,都小于包中的跳数,所以丢弃。
4.N8收到PROB包后,添加一个组关系链条目G1/G4,并将其复制到PROB包的前向链,继续转发。
5.N4会收到N3转发的PROB包,添加一个组关系链条目G1/G2,并将其复制到PROB包的前向链,继续转发。
6.N5收到N4的包,会转发,跳数设置为4。
7.N6收到后,获得关系链G1/G2/G3,并将其复制到PROB包PROB的前向链,继续转发。
8.如果Prob到达某个组后,这个组的成员如果除了Prob包的源组之外没有其他的邻居组(说明是叶子组节点),就不再转发Prob包。
若Prob包的跳数超过上限,也会丢弃,过程结束。
9.通过上述过程,G2,G3,G4中的节点分别学习到关系链为G1/G2,G1/G2/G3,G1/G4。
NS包的发送过程在节点缺少到目的节点的路由信息时,会发送NS包,请求目的组的路由关系链信息。NS包在网络中转发扩散过程中会被中间节点转发,并记录沿途所经过的转交组(子转交组),形成前向关系链。当到达请求目的组时候,将响应一个扩展NA作为应答,NA将NS的前向关系链作为应答关系链,该NA包的后向关系链为NS包的前项关系链的转置,沿着相反路径发送给请求源节点。如果当NS到达某个非请求目的节点,而该节点已经有NS包所请求的目的组的路由信息,则直接发送给请求源节点一个扩展NA包作为应答,该NA包的后向关系链为NS包的前项关系链的转置。
由于网络具有部分连接特性,因此Prob包、NS包以及扩展NA包等需要多跳转发的包应该能够穿过网络的各个连通分支。这些包转发都使用渗透算法,采用多次渗透的方式。引入代理转发机制,当收到一个上述包时,除了会直接对非请求目的组的所有邻居组转发外,还对要缓存该包,当有新的邻居组出现时,会以源节点的身份重新发送该包,再次进行渗透过程。由于部分连接的网络中,连通分支是动态变化的,某节点在某个时刻和另外一个连通分支分离,但是下一个时刻就可能成为这个连通分支的节点。通过代理转发机制,包可以避免转发包由于当前的不连通而无法继续转发的情况,在新的节点出现时候会重复渗透过程,从而以更大的可能性穿过多个连通分支。
组关系链的同步节点对关系链表的时间戳进行轮询,当发现过期条目便发送路由更新请求,获取邻居节点和首领节点的路由信息,并完成更新。
组关系链的优化当节点学习到一条关系链信息时候,会将其同缓存的路由关系链表中的条目进行比较,如果重复或者是已经被包含则忽略。如果是一条新的关系链,则对其优劣进行评估。评估的准则是关系链的连接长度(关系链穿越的节点数)和链长度(组的数量)以及链距离(目的组距离本组的远近)等度量。同一个目的组的链,优先选取连接长度短的;同样连接长度的链中,优先选取链长度大的;优先选取链中的目的组是未曾接触过的组。如果评估值比高过缓存链表中的最低评估值条目,则接受。当关系链表条目数量达到上限,需要进行替换。节点会周期性的对缓存的路由关系链表中的条目进行维护,包括合并、拼接、修剪、替换、简化、消除回路等。例如,(a,b,c,d,e,x)的链和(d,e,x,y,z)可以合并成为(a,b,c,d,e,x,y,z);如果另外存在(m,n,b,c,d,e,x,i,j)链,则可以简化为(m,n,b,x,i,j)。通过对关系链的优化整理,节点可以用最少的空间,保持最新的路由信息。
基于组关系链的路由转发数据包、扩展NA包、关系链同步包等需要接受路由操作。以数据包为例进行说明,当节点产生数据包或者接收到数据包后,进入发送队列,接受路由以及转发操作。路由选择采用添加规则的方式,规则具有不同的优先级别,随着时间推移,使用的规则的优先级降低。
路由选择如图5,路径L为节点序列,关系链R为L所经过的组序列。组关系链R描述了路径L的特征。
过程描述如下步骤1.取得数据包的目的组地址G,查找组邻居表和组关系链表,组邻居表记录直接邻居及其所属组(邻居组),组关系链表存放节点学习到的组关系链的集合,记为X;步骤2.如果目的组为直接邻居组,则向该组发送,进入转发过程;步骤3.取得X中包含G的所有关系链,记为集合L,取得包的主关系链M,后向关系链B;步骤4.若邻居组出现在L的某个链1中,则将1放入包的主关系链字段,则向该邻居发送,进入转发过程;步骤5.若邻居组出现在M中,则向该邻居发送,进入转发过程;步骤6.若邻居组出现在B中,则向该邻居发送,进入转发过程;步骤7.对于某个邻居组N,取得X中包含N的所有关系链,记为集合K,若K中存在关系链和L集合中的关系链有公共组元素,即两关系链有交点,则向该邻居发送,进入转发过程;步骤8.发送NS包,请求到目的组的路由信息;步骤9.等待NS的应答NA,若超时未收到应答则转到10,NS被应答后,获取路由信息,转到步骤2;步骤10.向邻居发送NQ包,查询其到目的组的接近程度,若应答NR包的权重比本节点的权重a大,则向该邻居发送,进入转发过程;步骤11.等待,若超时没有适合的下一跳则转到步骤12,否则转到步骤10;步骤12.规则全部使用,没有找到下一跳,则直接向某个邻居发送该包,进入转发过程。
转发策略传统的网络路由以及完全连接的ad hoc路由中,转发策略很简单直接向路由选择的最优下一跳发送,发送的数量一般只有一份。但是在部分连接的ad hoc网络中,下一跳可能突然消失,因此这种转发策略是不够的。本发明中,路由选择出的下一跳是一个节点地址(首选下一跳)以及其所属组地址(下一跳组地址),当首选下一跳节点不存在时,节点会缓存该包,当下一跳出现时再转发。同时,如果与首选下一跳同一个组地址对应的其它组成员节点出现,可以作为候选的下一跳,因此当首选下一跳在一段时间都没有出现,选择候选下一跳可以大大增加转发的成功机会,避免包的丢弃。
节点的路由转发过程的状态图如图6所示。节点初始化后由最初的Init状态转换到Idle状态,开始工作。节点周期性的进行组身份维护操作,进入Conscribe状态,若为组首领,则进行动态划分,发送Cns包;若为组成员则侦听组首领的Cns包;若为孤立节点则进行首领竞争过程。当首领被决定,组划分完毕,组首领会周期性的进入Prob状态,以向网络告知本组的存在。当节点收到其它节点的Prob包时,会进行自学习,生成组关系链等路由信息,同时,如果有新的邻居出现,会进入Prox Prob状态,以触发新邻居的自学习过程。当节点有数据产生,则进入Conceived,将数据缓存,若有到目的节点的组关系链信息,则进入FWD状态,若确认下一跳可用,则转发该数据包;若没有路由,则发进入NS状态,周期性发送NS包,NS被响应后,进入Replyed状态,以获取路由信息。当节点接收到NS时,进入RCV NS状态,如果是被请求对象,则响应一个扩展NA,如果不是,则转发NS。
权利要求
1.一种分连接网络环境下部基于组关系的路由机制系统,包括部分连接的网络,间歇工作的移动网络节点、组首领、组关系链、邻居发现包、邻居查询包、邻居发现的应答包、查询应答包、探测包、关系链同步请求包、关系链同步包、招募包、易帜包等,网络节点由接收端口,发送端口,MAC层,MAC接口层,路由层,路由接口层,源和数据中心组成,其中路由层的组织结构包括路由查找模块,转发模块,路由维护模块,组维护模块,邻居发现模块,邻居请求队列,邻居应答队列,MAC发送端口,MAC接收端口,上层伪接口,邻居表,组关系链表。
2.按权利要求1所述的系统,其特征在于网络节点被划分为若干逻辑的组,节点发送NS包获取到达目的节点的一条路径所经过的组的序列,称为组关系链,它描述了路径的分布特征,作为路由依据。
3.按权利要求1所述的系统,其特征在于网络节点不稳定,路径不稳定,但是形成的组划分之间的邻接关系基本稳定,系统和方法采用路径所经过的组序列作为路由判断依据。
4.按权利要求1所述的系统,其特征在于路由模块计算下一跳转发地址后,转发模块并不立刻执行转发过程,而是启动邻居发现模块,确认下一跳节点的存在,当可用的下一跳响应后,再对其发送该数据包,避免由于节点间歇造成的丢包现象。
5.按权利要求1所述的系统,其特征在于邻居节点满足组关系链描述才能成为转发的下一跳,网络中的节点被区分为组关系链相关的区域和无关的区域,数据仅在组关系链相关区域内被转发,能够有效的控制通讯的范围,避免通讯的任意扩散,降低了网络开销。
6.一种部分连接网络环境下基于组关系的路由机制的方法,步骤包括组关系链的定义,组关系链的动态生成,随机圈地算法,渗透算法,组关系链维护、优化,组关系链指导下的路由、异步路径生成、异步转发策略。
7.按权利要求6所述的方法,其特征在于随机圈地算法采用节点随机竞争的方式竞选组首领,组首领按照设定的范围招募组成员,节点的身份通过晋级和降级动态改变,首领故障或者离开,则由其它成员代替,但是组的名字保持不变,组一旦创建,其成员负责该组的持续一致的存在。
8.按权利要求6所述的方法,其特征在于对用于路径发现的邻居发现包和邻居发现的应答包采用多次渗透的方式转发包,包被转发后仍然缓存该包一段时间,当有其它新的邻居组出现时,会再次转发该包,以适应间歇存在的路径。
9.按权利要求6所述的方法,其特征在于路由信息不是节点的地址序列,而是组的序列,转发的下一跳不局限于单个节点,而是一组候选节点,增大了路径形成的概率,避免路由频繁失效造成的开销。
10.按权利要求6所述的方法,其特征在于数据包携带路由信息,路由信息为组关系链,表明该数据包允许经过的网络中组区域。
11.按权利要求6所述的方法,其特征在于路由选择采用添加规则的方式,规则包括邻居组出现在组关系链中、包含邻居组和目的组的两个组关系链有交点,规则具有不同的优先级别,随着时间推移,使用的规则的优先级降低。
12.按权利要求6所述的方法,其特征在于将网络实体按照邻接关系和功能依据,划分成若干邻接的组。
13.按权利要求6所述的方法,其具体步骤如下步骤1.取得数据包的目的组地址G,查找组邻居表和组关系链表,组邻居表记录直接邻居及其所属组,组关系链表存放节点学习到的组关系链的集合,记为X;步骤2.如果目的组为直接邻居组,则向该组发送,进入转发过程;步骤3.取得X中包含G的所有关系链,记为集合L,取得包的主关系链M,后向关系链B;步骤4.若邻居组出现在L的某个链1中,则将1放入包的主关系链字段,则向该邻居发送,进入转发过程;步骤5.若邻居组出现在M中,则向该邻居发送,进入转发过程;步骤6.若邻居组出现在B中,则向该邻居发送,进入转发过程;步骤7.对于某个邻居组N,取得X中包含N的所有关系链,记为集合K,若K中存在关系链和L集合中的关系链有公共组元素,即两关系链有交点,则向该邻居发送,进入转发过程;步骤8.发送NS包,请求到目的组的路由信息;步骤9.等待NS的应答NA,若超时未收到应答则转到10,NS被应答后,获取路由信息,转到步骤2;步骤10.向邻居发送NQ包,查询其到目的组的接近程度,若应答NR包的权重比本节点的权重a大,则向该邻居发送,进入转发过程;步骤11.等待,若超时没有适合的下一跳则转到步骤12,否则转到步骤10;步骤12.规则全部使用,没有找到下一跳,则直接向某个邻居发送该包,进入转发过程。
全文摘要
本发明涉及ad hoc自组织网路由技术领域,部分连接网络中的组关系路由机制,适用于具有部分连接特性的网络,即源和目的节点之间的路径是分段间歇存在的甚至可能不存在。无线网络节点的移动,故障,间歇工作比较普遍,这些都会造成网络的部分连接特性。本发明通过将ad hoc的网络拓扑划分成组区域,用组之间的关系来标记路径特征,并作为路由过程的指导依据,实现了部分连接的网络中的数据传输。通过组关系链的自学习和优化过程,生成优化路径的特征描述,保证数据沿着正确方向转发,提高数据到达率。同时,组关系链限定了组成路径的节点数量,能够有效的控制通讯的范围,避免通讯的任意扩散,降低了网络开销。
文档编号H04L12/56GK1741501SQ20051008646
公开日2006年3月1日 申请日期2005年9月22日 优先权日2005年9月22日
发明者张天乐, 李忠诚, 刘敏, 蔡一兵 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1