专利名称:基于直接/间接矩阵的无线自组织网络保护路由生成算法的制作方法
技术领域:
本发明涉及无线网络技术领域,适用于无线自组织网络应用环境下的路由生成及保护,具体涉及一种基于直接/间接矩阵的无线自组织网络保护路由生成算法。
背景技术:
2010年论文《On the Feasibility and Efficacy of Protection Routing in IP Networks》首次提出了路由保护(protection routing)的概念,在IP网络单点失效时确保整个路由转发还能保持正常,但其提出的路由保护算法无法应用于无线网络环境,因此路由保护功能无法应用于无线网络环境。本发明针对无线网络的特点,在基于传统的AODV路由协议的基础上,构建了适用于无线环境的保护路由协议,在获取路由路径基础上生成直接/间接连接矩阵,并基于直接/间接连接矩阵创新性的提出了无线保护路由算法设计,有效保证了保护路由在无线网络中的广泛应用。无线自组网按需平面距离矢量路由协议(Ad hoc On-Demand Distance Vector Routing,A0DV)是应用于无线Ad hoc网络中进行路由选择的路由协议。具体来说,其是一种反应式路由协议,需要向目标节点发送数据时,源节点才在网络中发起路由查找过程,找到相应的路由。而很多其它路由协议都是先验式的,也就是说它们查找路由是不依赖于路径上的节点是否要发包,而是每个节点维护一张包含到达其它节点的路由信息的路由表, 节点间通过周期性的交换路由信息来不断更新自身的路由表,以便能够及时的反映网络拓扑结构和变化,以维护一致的、及时的、准确的路由信息。不同于先验式的路由协议,AODV路由协议是一种平面距离矢量路由协议。在AODV中,一个网络节点需要建立连接时才广播一个连接建立的请求,其他的 AODV节点转发这个请求消息,并记录源节点和回到源节点的临时路由。当接收连接请求的节点知道到达目标节点的路由时,就把这个路由信息按照先前记录的回到源节点的临时路由发回源节点。源节点就开始使用这个经由其他节点并且有最短跳数的路由。当链路出现节点故障时,路由错误就被回送给源节点,于是源节点就重新发起路由查找的过程。在发生单个节点失效后,会由源节点重新发起路由请求,重新找寻一条新的路由路径。由于AODV路由协议在单个路由节点的失效时无法再保持正常通信,因此为了有效保障在单个节点失效时无线自组织网络还能正常通信,我们引入了保护路由功能。首先给出相关概念,节点被保护的定义节点s在目标节点为节点d的路径中,如果节点s的下一节点出现故障,这时还可以找到第二下一跳节点k (secondary next-hop,简称SNH)到达目标节点d,那么称该节点s对于节点d是被保护的。从被保护节点概述得到保护路由的定义 一条路由的所有节点都是被保护的,那么这条路由就是保护路由。路由保护原始应用场景为具有中心节点的IP网络,即网络中有一个中心节点能获取整个网络的拓扑情况,从而进行相关路由计算,而无线网络中不存在中心节点感知全局拓朴,故无法应用其算法进行保护路由的生成;同时原算法还存在算法效率问题,基于目前的算法生成针对全网的保护路由,算法开销太大,也不适合无线环境。
发明内容
为了克服上述现有技术的不足,本发明的目的在于提供了一种基于直接/间接矩阵的无线自组织网络保护路由生成算法,将保护路由功能应用到无线自组织网络应用环境,从而有效提高了无线路由传输的可靠性,使得采用该算法的无线自组织网络具有在单个节点失效情况下保持正常数据传输的能力,极大提高了无线自组织网络的传输可靠性, 并且算法易于实现、算法复杂度低。为了实现上述目的,本发明采用的技术方案是于直接/间接矩阵的无线自组织网络保护路由生成算法,包括以下步骤步骤1,基于AODV扩展的路由协议获取路由路径R :在原始的AODV中加入定义为路由请求分组所经过节点的序列表的字段,如果路由请求经过节点B转发时,节点B就将自己的IP地址写入该序列表,在路由请求开始发送时默认经过节点的序列表为空,当跳计数加一时同时将转发节点B加入序列中;任一中间节点对其接收到的每个路由请求分组,首先检查自己是否在所述序列表中,如果已经存在, 则将该路由请求分组丢弃,如果不存在,则转发该路由请求分组;目标节点收到从源节点发出的大量路由请求分组,每个路由请求分组中都包含了其经过的节点记录,形成了相应的路由路径R,目标节点将所有的路由路径R保存起来,就形成了路由路径集S ;步骤2,目标节点生成直接/间接邻接矩阵A[i,j]遍历路由路径集S中所有的路径,对每条路由路径R,都进行如下步骤对于路由路径R,从其相应的序列表中,依次取出节点nodey[ nodeηο Β^_λ,ηο βηο ^ 2..node,].如果当前的A[n0dey,n0dey+1]的记录表明节点nodey与节点node^没有直接连接, 说明连接 <nodey,nodey+1> 是一条新路径,更新 A[nodey,nodey+1]的值,A[nodey,nodey+1]的值表示节点nodey与节点n0dey+1之间的直接连接与间接连接情况,按照定义要求对其值进行更新,并设置更新标志;否则该路径已经进行了记录,不需要进行更新;路由路径中nodez e Lnode1, nodey_J,节点nodez到节点nodey+1不是直接,但存在着间接连接,即节点nodez到Iiodep1可以通过其它节点到达,则对于的所有间接连接 <n0dez,n0dey+1>,首先判定A[n0dez,n0dez+1]是否有直接连接,如果没有,说明节点nodez到节点n0dey+1的间接连接为新的连接,保持更新标志为真,否则更新标志为否;如果更新标志为否,就不对以后的间接连接A[n0dez,nodey+1]进行更新,遍历生成所有以节点n0dey+1 为终点的间接连接后,对路由路径R的处理结束;反复进行对路由路径集S循环操作,直到循环结束,就生成了直接/间接邻接矩阵 A[i,j];步骤3,基于邻接矩阵A[i,j],计算目标节点的保护路由对于一条给定的路由路径R,在判定其是否受保护时,首先构造节点集
S' = ^odel,node2,......node———》;从节点集 S‘中依次取出节点HOdenodenumb^l,nodenodenumber_2..node,].
如果i S,,则节点nodey受保护,否则判断节点nodey到节点nodey+i是否受保护如果A[n0dey,nodey+1] < 2,则节点Iiodey到节点n0dey+1原来没有任何一条间接边,节点IiodeyF受到保护,则该路由路径不是保护路由;当Iiodey被保护时,将其从节点集S'中去除,同时去除节点集S'中具有到n0dey+1有两条间接连接路由的节点Iiodez,如果节点集 S'为空,则路由路径R为保护路由;反复进行循环操作,直到循环结束;如果节点集S'中所有节点都满足到其后的一个节点具有一条以上的连接,则说明所有节点都是受到保护的,根据此算法找到的路由即为保护路由。所述步骤1中,目标节点收到的路由分组是以跳数多少为先后顺序到达的,跳数越少,则越先到达,并且每个路由分组中都包含了其经过的节点记录,对其进行数据抽象, 收到的路由路径表定义为e 1. . roUte。_t],其中Rk是有以下定义的数据结构
R ={ nodenumber表示该条路由路径中的结点数,并彻^max
k ~ [node,,node2...nodenodenumber个从源结点到目标结点的结点标识集合由函数|Rk| = n0denmibCT得到该条路由路径中节点数;由函数= SRi = Inodel^node2 + + + + +到该条路由路径的所有节点集。所述直接/间接邻接矩阵A[i,j]是具有如下性质的η阶方阵当从i到j没有任何连接,则A[i,j] = O ;当从i到j有一条或一条以上的直接连接,且没有任何间接连接,则A[i,j] = 1 ;当从i到j有且仅有一条间接连接,并且没有任何直接连接,则A[i,j] = 2 ;当从i到j有一条或一条以上的直接连接,并且有且仅有一条间接连接,则A[i, j] = 3 ;当从i到j有一条以上的间接连接,则A[i,j] = 4 ;当从i到j有一条或一条以上的直接连接,且有一条以上的间接连接,则A[i,j] =5 ;其中,i和j分别表示路由路径中的节点。与现有的路由算法相比,本发明所述的技术方法(参见图1),首先能够通过对 AODV协议的扩展,实现对源节点与目标节点之间的拓朴感知,尽可能获取其间存在路由路径;其次通过基于路由路径构建直接/间接邻接矩阵,直接/间接邻接矩阵是整个算法实施的底层平台,其反映的节点之间的直接/间接连接情况,为保护路由的生成提供了有力的支撑;最后通过贪心查找的方法,依次从路由路径库中取出最短的路由路径,依据直接/间接邻接矩阵倒序判定是否其路径上每个节点是否为被保护节点,从而判明该路由路径是否为保护路由。采用本算法不仅可以查找出最短的保护路由,同时还可以查找出所有的保护路由。
图1为根据本发明无线网络环境下的保护路由生成的基本流程图。图2为本发明中扩展AODV的工作流程图。图3为本发明基于路径的直接/间接连接矩阵生成流程图。图4为本发明基于直接/间接连接矩阵保护路由计算算法。
具体实施例方式下面结合附图和实施例对本发明做进一步详细说明。如图1所示,本发明为一种基于直接/间接矩阵的无线自组织网络保护路由生成算法,包括以下步骤1.基于AODV进行扩展,基于AODV扩展的路由协议获取路由路径R和路由路径集 S。在原始的AODV中,当源节点需要发送数据而又没有到目标节点的有效路由时,就会启动一个路由发现过程广播一个路由请求分组(RREQ);中间节点转发这个请求消息, 并记录源节点和回到源节点的临时路由;当收到请求的中间节点或目标节点有一条足够新的路由到达目标节点时,中间节点或者目标节点以单播的方式向源节点返回一个路由应答分组(RREP),源节点收到该路由应答分组(RREP)后则开始向对应目标节点发送数据。路由请求分组字段如下表所示
权利要求
1.基于直接/间接矩阵的无线自组织网络保护路由生成算法,其特征在于包括以下步骤步骤1,基于AODV扩展的路由协议获取路由路径R :在原始的AODV中加入定义为路由请求分组所经过节点的序列表的字段,如果路由请求经过节点B转发时,节点B就将自己的IP地址写入该序列表,在路由请求开始发送时默认经过节点的序列表为空,当跳计数加一时同时将转发节点B加入序列中;任一中间节点对其接收到的每个路由请求分组,首先检查自己是否在所述序列表中,如果已经存在,则将该路由请求分组丢弃,如果不存在,则转发该路由请求分组;目标节点收到从源节点发出的大量路由请求分组,每个路由请求分组中都包含了其经过的节点记录,形成了相应的路由路径R,目标节点将所有的路由路径R保存起来,就形成了路由路径集S ;步骤2,目标节点生成直接/间接邻接矩阵A[i,j]遍历路由路径集S中所有的路径,对每条路由路径R,都进行如下步骤对于路由路径R,从其相应的序列表中,依次取出节点 nodeA nodeU0denumkr-I,^odenodenumbtr 2..node,].如果当前的A[n0dey,nodey+1]的记录表明节点Iiodey与节点n0dey+1没有直接连接,说明连接 <nodey,nodey+1> 是一条新路径,更新 A[nodey,nodey+1]的值,A[nodey,nodey+1]的值表示节点Iiodey与节点n0dey+1之间的直接连接与间接连接情况,按照定义要求对其值进行更新,并设置更新标志;否则该路径已经进行了记录,不需要进行更新;路由路径中nodez e Lnode1, nodey_J,节点nodez到节点nodey+1不是直接,但存在着间接连接,即节点node,到n0dey+1可以通过其它节点到达,则对于的所有间接连接〈node,, nodey+1>,首先判定A[n0dez,nodez+1]是否有直接连接,如果没有,说明节点nodez到节点 nodey+1的间接连接为新的连接,保持更新标志为真,否则更新标志为否;如果更新标志为否,就不对以后的间接连接A[n0dez,nodey+1]进行更新,遍历生成所有以节点n0dey+1为终点的间接连接后,对路由路径R的处理结束;反复进行对路由路径集S循环操作,直到循环结束,就生成了直接/间接邻接矩阵A[i,j];步骤3,基于邻接矩阵A [i,j],计算目标节点的保护路由对于一条给定的路由路径R,在判定其是否受保护时,首先构造节点集-S" = {node^node2,......node———》;从节点集 S'中依次取出节点nodenodenumber_A,nodenodenumber_2..node,].如果i ^,则节点Iiodey受保护,否则判断节点Iiodey到节点n0dey+1是否受保护如果A[n0dey,nodey+1] < 2,则节点Iiodey到节点n0dey+1原来没有任何一条间接边,节点nodey 不受到保护,则该路由路径不是保护路由;当Hodey被保护时,将其从节点集S'中去除,同时去除节点集S'中具有到node”有两条间接连接路由的节点Iiodez,如果节点集S'为空,则路由路径R为保护路由;反复进行循环操作,直到循环结束;如果节点集S'中所有节点都满足到其后的一个节点具有一条以上的连接,则说明所有节点都是受到保护的,根据此算法找到的路由即为保护路由。
2.根据权利要求1所述的基于直接/间接矩阵的无线自组织网络保护路由生成算法, 其特征在于所述步骤1中,目标节点收到的路由分组是以跳数多少为先后顺序到达的, 跳数越少,则越先到达,并且每个路由分组中都包含了其经过的节点记录,对其进行数据抽象,收到的路由路径表定义为e 1. . roUte。_t],其中&是有以下定义的数据结构R ={ nodenumber表示该条路由路径中的结点数,并彻^maxk ~ [node,,node2...nodenodenumber个从源结点到目标结点的结点标识集合由函数|Rk| =n0denumbed#到该条路由路径中节点数;由函数= SRt = {node^node, + + + + +得到该条路由路径的所有节点集。
3.根据权利要求1所述的基于直接/间接矩阵的无线自组织网络保护路由生成算法, 其特征在于所述直接/间接邻接矩阵A[i,j]是具有如下性质的η阶方阵当从i到j没有任何连接,则A[i,j] = 0 ;当从i到j有一条或一条以上的直接连接,且没有任何间接连接,则A[i,j] = 1 ; 当从i到j有且仅有一条间接连接,并且没有任何直接连接,则A[i,j] = 2 ; 当从i到j有一条或一条以上的直接连接,并且有且仅有一条间接连接,则A[i,j]=3 ;当从i到j有一条以上的间接连接,则A[i,j] = 4 ;当从i到j有一条或一条以上的直接连接,且有一条以上的间接连接,则A[i,j] = 5 ; 其中,i和j分别表示路由路径中的节点。
全文摘要
本发明涉及无线网络技术领域,为一种基于直接/间接矩阵的无线自组织网络保护路由生成算法,首先基于AODV协议进行扩展,获取路由路径集;然后基于路由路径集,生成直接/间接邻接矩阵;最后进行保护路由判断并输出最终结果;采用本发明的算法不仅可以查找出最短的保护路由,同时还可以查找出所有的保护路由,因此本发明可有效提高无线路由传输的可靠性,使得采用该算法的无线自组织网络具有在单个节点失效后情况下保持正常路由传输的能力,极大提高了无线自组织网络的传输可靠性,并且算法易于实现、算法复杂度低。
文档编号H04W84/18GK102573000SQ20121000244
公开日2012年7月11日 申请日期2012年1月6日 优先权日2012年1月6日
发明者孟坤, 林闯, 祝林 申请人:清华大学