专利名称:一种无线自组织网络分布式路由空洞处理方法
技术领域:
本发明属于无线自组织网络通信技术领域,涉及一种无线自组织网络分布式路由 空洞处理方法。
背景技术:
中心控制式路由需要全局状态信息,由此带来了可扩展性差、传输效率低等局限, 不适用无线自组织网络的实际应用场景,而分布式路由更适用于自组织网络拓扑动态变化 的应用特点,更易于实用化。作为一种经典的分布式路由协议,地理路由方法根据数据当前 节点和目的节点的地理位置信息进行路由,“贪婪”传送。方法利用局部网络状态信息进行 路由判决,原理简单,容易实现。但是,由于节点失效或环境障碍,路由空洞经常出现,致使 传输性能急剧恶化甚至传送完全失败。即使节点在覆盖区域理想化均勻随机分布,根据地 理位置信息路由协议生成的路由初始拓扑图也可能存在多个路由空洞,空洞如图1阴影所
7J\ ο现有空洞处理方法复杂,实用性较差。其策略一般首先基于邻近图(proximity graph)思想,以某些几何结构为基础构建网络拓扑图,再平面化,方法实现复杂。同时,这种 根据左(右)手准则沿空洞边缘的绕行处理,节点选择没有任何优化,会加重边缘节点的使 用频率,使这些节点因忙于转发数据而加速耗尽能量,从而加速扩大路由空洞,导致网络性 能迅速下降。从图1中我们可以发现数据往基站(Sink)节点传送,所以图中每个路由空 洞对应一棵孤立的与其他区域非连通的子树,这些非连通子树的根节点往基站方向就是路 由空洞。可见,路由空洞处理方法的性能已经成为此类分布式路由协议是否真正具有实际 应用价值的关键。因此,由于涉及到节点间状态信息交换、数据转发以及路由空洞绕行处理,无线自 组织网络的分布式路由是一个比较复杂的过程。至今,分布式路由协议机制与较大规模自 组织网络动态演化之间的相互作用机理还不完全明确,直接造成了复杂自组织网络动力学 和可靠可信路由协议研究的困难。根据现有文献,空洞处理方法面临互相矛盾的两难选择 1)由于网络状态的动态变化限制了中心控制路由的实用性,因此人们提出了分布式路由。 主要利用本地局部状态信息贪婪转发数据,不需全局路由信息。但这也使得路由空洞的出 现很难避免。对网络临界传输范围(critical transmitting range)的研究也已经证明, 保证无线自组织网络的全连通要求节点覆盖范围非常大。必须在网络连通性和节点覆盖范 围间折中(无线传播模型中,传输功耗与传输距离的η次方成反比,η e 2 6)。2)现有 的空洞处理方法通常需要在空洞周围生成网络拓扑平面图(或平面化),并应用左(右)手 准则绕开空洞,但是构建邻近图时需要获得整个网络节点的位置信息,很难做到局部化和 分布式。
发明内容
本发明提出一种无线自组织网络分布式路由空洞处理方法,该无线自组织网络分布式路由空洞处理方法能有效绕开空洞,计算量小,易于实施。本发明的技术解决方案如下一种无线自组织网络分布式路由空洞处理方法,包括以下步骤步骤1 标定非连通子树;所述的非连通子树为无线自组织网络中孤立的、与其他 区域不连通的子树,数据汇聚的无线自组织网络中的每一个空洞对应一棵非连通子树;步骤2 识别网关节点和关键节点;网关节点指具有连接到其他区域网络节点有 效链路的非连通子树成员节点;关键节点指所连相邻区域网络与基站节点连通的网关节占.
^ \\\ 步骤3 基于网关节点和关键节点将非连通子树的节点集进行分裂和合并,绕开 无线自组织网络中的空洞。所述的步骤1的具体步骤为数据在路由传送过程中,某节点找不到可以充当转发数据下一跳的合适中继节 点,则判断遇到路由空洞,该节点即对应非连通子树的根节点,首先生成一个全网唯一的随 机数,将节点群组编号域设置为该随机数,然后广播一个包括消息类型、节点群组编号和节 点ID的Create_MSG消息,Create_MSG消息即创建消息,其中消息类型用来区分不同消息;其余节点接收到Create_MSG消息后,根据节点保存的转发数据的下一跳节点 ID(这里的下一跳节点指数据传输过程中的下一跳节点,与最开始的传输方向相反,因为 最开始的方向为从树枝到树根,而现在广播的过程为逆向广播的过程),首先判断广播该 Create_MSG消息的节点是否就是自己数据传输时对应的下一跳节点Create_MSG消息 由非连通子树根节点创建和第一次发送,若不是,则不做任何处理,直接丢弃该消息;否 则,收到该Create_MSG消息的节点设置自己的群组编号为Create_MSG消息携带的群组编 号,并更新Create_MSG消息,将消息中节点ID替换成自己的ID,然后继续广播更新后的 Create_MSG 消息;最后,该非连通子树所有节点的群组编号都设定为前述的随机数,完成非连通子 树节点标定,非连通子树中的所有节点形成节点集,为后续处理步骤确定节点范围。所述的步骤2的具体过程为标定非连通子树的节点集中节点si广播一个查询消息Query_MSG消息,其中, N,N为节点集中的节点数,根据一跳邻居节点的应答信息确定自己是否可以作为
网关节点或关键节点;Query_MSG消息包括消息类型、群组编号、节点ID、节点坐标X和节点坐标Y五个 域,其中消息类型用来区分不同消息;邻居节点收到该Query_MSG消息后,根据群组编号判 断自己是否属于该非连通子树,如果自己不属于该非连通子树,则返回应答消息,应答消息 是在原消息后面附加自己的节点ID,该节点ID信息将用来更新节点Si的转发数据的下一 跳节点ID域;同时根据自己是否与目标(基站)节点连通,将应答消息中的消息类型值分 别设置为Key_MSG类型和feite_MSG类型,Key_MSG类型即关键消息类型,Gate_MSG类型即 网关消息类型;节点Si收到应答消息后就可以根据应答消息内携带的消息类型确定自己是 否可以作为网关节点或者关键节点。所述的步骤3的具体步骤为若Si是节点集中的普通网关节点,则广播包括该节点相关信息的fete_MSG消息给其他成员节点,同时将邻接区域对应节点设定为转发数据的下一跳节点;若Si为关键节 点,则广播包括该节点相关信息的Key_MSG消息给其他成员节点,同时将邻接区域对应节 点设定为转发数据的下一跳节点,并不再接收其他关键节点或网关节点发送的Key_MSG或 Gate_MSG 消息;Key_MSG消息包括消息类型、网关节点ID、网关坐标X、网关坐标Y、群组编号五个 域,Gate_MSG消息包括消息类型、关键节点ID、关键坐标X、关键坐标Y、群组编号五个域;节点集中的节点~接收到Key_MSG消息后,~中的j兴i,首先判断是否第一次 接收该类型消息,若是,则更新节点传送数据的当前目标节点域以及目标节点坐标域为该 Key_MSG消息中包含的关键节点ID及关键坐标X、关键坐标Y ;否则,比较节点到原目标 节点和消息中的关键节点之间的距离,选择距离自己更近的关键节点作为新的目标节点, 然后继续广播Key_MSG消息;如果节点~已经接收过Key_MSG类型的消息,则对后续接收到的fete_MSG类型消 息不做处理,直接丢弃,否则,节点~接收到fete_MSG消息后,同样判断是否第一次接收该 类型消息,若是,则更新节点传送数据的目标节点域以及目标节点的网关坐标X、网关坐标 Y为消息中包含的网关节点ID及网关坐标X、网关坐标Y ;否则,计算节点~分别到原目标 节点和消息中包含的网关节点的距离,选择距离更近的网关节点作为新的目标节点,然后 继续广播fete_MSG消息;所述的距离为欧式距离;最终完成非连通子树节点集中的各节点的分裂和合并,从而绕开原非连通子树对 应的路由空洞。有益效果本发明应用复杂网络理论中的社团结构划分思想对无线自组织网络动态建模,提 出了非连通子树分裂和合并(合并到邻近网络)的空洞处理方法,即无线自组织网络分布 式路由空洞处理方法,该方法不需要生成邻近图。对应每个“空洞”得到一棵非连通子树 (对应于某一覆盖区域),数据从子树其他节点向根节点多跳中继传送,根节点为发现路由 空洞的节点。方法能充分利用连接非连通子树到周围区域的有效链路,将该子树节点集分 裂成多个子集,并分别连通到相邻网络,达到绕开路由空洞的目标,这样使得网络连通性得 到最大的保证。方法首先根据当前空洞和路由信息标定非连通子树,然后发现和选拔子树 中“关键节点”或“网关节点”,最后将该非连通子树分裂并通过这些“关键节点”或“网关节 点”连通到周围区域,并将对应“关键节点”或“网关节点”简单设为该被合并区域节点数据 传送的目的节点,从而在全网实现多策略分段协作路由。
图1是地理位置路由拓扑图(节点均勻分布);图2是路由空洞对应非连通子树示意图;图3是非连通子树分裂和合并示意图;图4是空洞处理后路由拓扑图;图5为标定孤立子树的流程图;图a为发送消息处理过程的流程图,图b为接受消 息并处理的流程图;图6为发现网关节点和关键节点的流程图,图a为应答消息发出的流程图,图b为收到应答消息的处理过程流程图。图7为收到关键节点广播消息的处理过程流程图;图8为收到网关节点广播消息的处理过程流程图。
具体实施例方式实施例1 网络模型无线自组织网络是一种面向应用的系统。本文实例假定节点随机均勻分布在一个 二维平面区域内,并且具有如下性质(1)所有节点和基站(Sink)位置固定,且所有节点有唯一的节点标识ID ;(2)所有节点具有相似的处理和通信能力,并对网络具有同等重要性;(3)所有节点通过GPS或者其他定位方法获知自己和基站节点的二维坐标,并能 计算出自己与邻居节点和基站的距离;(4)所有节点都预先设定存储空间来存储以下信息
节点自身ID和节点地理位置二维坐标(X,Y);数据的目标节点或基站ID和节点地理位置二维坐标(X,Y);转发数据的下一跳节点ID和下一跳节点地理位置二维坐标(X,Y);节点转发数据量和路由更新阈值;子树编号(初始为全0);标记节点与数据目的节点或基站是否连通状态的布尔值(初始为TRUE)。其中,节点转发数据量和路由更新阈值(转发数据量达到该阈值后更新路由)的 作用是避免节点在每次转发数据时都查找下一跳并节省频繁计算下一跳节点的能量消耗。下面结合附图对本发明做进一步说明。如图2所示,非连通子树的根节点朝基站方向对应路由空洞。由于节点A没有发 现符合“贪婪”转发条件的下一跳邻接节点,因此节点A遭遇路由空洞。此时,地理位置路 由方法将进入空洞处理阶段。图中由节点A、B和C等节点(图中用填充有斜线的节点)组 成一个非连通子树是根据贪婪转发思想传输形成的路由树,A是根节点。根据地理位置信 息分布式路由协议,B和C等其他灰色节点都将数据多跳中继先传输至节点A,再传往基站。 在图中应用UDG圆盘模型(UDG,Unit Disk Graph,单位圆盘图假定网络中η个节点构成 了二维平面中的结点集V,每个移动节点都带有全向天线。该节点上广播传输的分组都会被 它邻近的节点收到。经过归一化处理后,所有节点最大的传输范围为1,则节点在平面中就 构成了一个单位圆图UDG(V)(当且仅当图中每对节点间的欧几里德距离d(u,ν)不超过1 时,两个节点之间才有链路相连。)图中虚线圆圈代表节点的传输范围,由图中可见节点B 和D之间以及节点C和E之间在常规传输方式下都能够进行通信,且C、D节点属于别的路 由树。显而易见,空洞处理本质上是要将该非连通路由子树(灰色节点)与周围网络(图 中白色节点,如C、D)通过有效链路连通起来。但是现有空洞处理协议只是简单地将数据从 根节点A出发,绕行空洞,这样就带来后果如图2所示,按左(右)手准则,数据可能沿着 空洞边缘先从A返回B或C。事实上,由于节点B和D以及C和E之间能够进行常规传输, 再将继而传送到节点D或者E,,从而实现围绕空洞传送的目的,如图3所示。
本发明的非连通子树分裂和合并方法的基本思想就是先查找非连通子树中类似B 和C这样的关键节点,利用其连接到相邻区域的有效链路,如B-D和C-E,建立通过相邻区域 网络到达基站(Sink)的直接连通路径。如果非连通子树中不能找到连接相邻区域的有效链路,即不能建立像图2中B-D 和C-E这样的常规链路,那么意味这是真正的非连通子树。此时,路由空洞无法处理。假设某非连通子树的所有成员节点组成的集合为S = Isi I 1彡i彡η}。不失一般 性,设S1为遭遇路由空洞的当前节点,即非连通子树根节点,其余节点< i < η)都会 将数据贪婪传输给节点Sl。子树分裂和合并方法分为三个步骤非连通子树标定、关键节点 发现和选拔、子树分裂和合并。本方法要用到以下四种消息类型,其中消息类型用2bits就可区分Create_MSG 包含孤立子树编号和目标节点信息,通知当前孤立子树其它节点更 新子树群组编号,用于标定属于该孤立子树的所有成员节点。Query_MSG 查询节点是否存在到相邻区域的常规传输链路,即可以作为孤立子树 节点的网关节点或者关键节点。Key_MSG 广播关键节点相关信息。Gate_MSG 广播网关节点相关信息。标定非连通子树节点集由根节点发起,生成一个标识该子树群组的随机数,并广 播给所有其他节点。然后通过发现和选拔子树的关键节点或网关节点,找到连通邻接区域 网络的最优(比如最小跳数)路径,从而将非连通子树节点分裂成多个子网络并与相应邻 接区域网络连通。从而实现绕开路由空洞的目标。路由空洞处理流程分为三个步骤1)标定非连通子树地理路由协议是一种分布式贪婪路由协议。数据在传送过程中遇到路由空洞后, 对应的节点(记为S1)首先生成一个全网唯一的定长随机数(通过随机数的位长足够长确 保唯一性),将节点群组编号(Gr0Up_ID)域设置为该随机数,然后广播一个包括消息类型、 群组编号和节点ID的消息Create_MSG,其中消息类型用来区分不同消息。该消息不需要应答。节点接收到Create_MSG消息后,首先判断广播该消息的节点是否是自己数据 传输时的下一跳节点,若不是,则不做任何处理,直接丢弃该消息;否则,节点设置其自己 的群组编号为消息携带的群组编号,并将消息中节点ID替换成自己的ID,然后继续广播 Create_MSG消息。最后,该非连通子树所有节点实现将群组编号设定为一个相同全网唯一 的随机数,完成非连通子树节点标定,为下面处理步骤确定节点范围。2)发现网关节点和关键节点在阐述非连通子树中网关节点和关键节点的发现和选拔方法之前,先给出其严格 定义网关节点具有连接到其他区域网络节点有效链路的非连通子树成员节点。关键节点所连相邻区域网络与基站(目的)节点连通的网关节点,同时该有效链 路称为关键链路。节点Si (1 < i < N)在广播完Create_MSG消息之后,接着广播一个Query_MSG消息,根据一跳邻居节点的应答信息确定自己是否可以作为网关节点或关键节点。Query_MSG消息包括消息类型、群组编号、节点ID、节点坐标X和Y五个域,其中消 息类型用来区分不同消息。邻居节点收到该消息后,根据群组编号判断,如果自己不属于该 非连通子树,则在原消息后面附加自己的节点ID作为应答,作为当前目标节点ID域,并根 据自己是否与基站(Sink)节点连通,设置相应的消息类型值。节点坐标只是用来计算节点 间的欧氏距离,此处不需要应答该信息。收到应答消息,节点Si就可以确定自己是否可以 作为网关节点或者关键节点。3)非连通子树节点集的分裂和合并若Si是普通网关节点,则广播包括该节点相关信息的消息fete_MSG给其他成员 节点;若Si为关键节点,则广播包括该节点相关信息的消息Key_MSG给其他成员节点,同时 将邻接区域对应节点设定为下一跳节点,并不再接收其他关键节点或网关节点发送的Key_ MSG或feite_MSG消息。Key_MSG消息包括消息类型、网关节点ID、网关坐标X、网关坐标Y、 群组编号五个域,fete_MSG消息包括消息类型、关键节点ID、关键坐标X、关键坐标Y、群组 编号五个域。两种消息的区别只是消息类型不同。节点兴i)接收到Key_MSG消息,首先判断是否第一次接收该类型消息,若是, 则更新节点传送数据的当前目标节点域(Target_N0de_ID)以及目标节点坐标域(Target_ Node_X和Target_N0de_Y)为消息中包含的关键节点ID及坐标;否则,比较节点Sj到原目 标节点(当前Target_N0de_ID节点)和消息中的关键节点之间的距离,选择距离自己更近 的关键节点作为新的目标节点,然后继续广播该Key_MSG消息。如果节点~已经接收过Key_MSG类型的消息,则对后续接收到的fete_MSG类型 消息不做处理,直接丢弃,因为Key_MSG类型消息优先级更高。否则,节点~接收到Gate_ MSG消息后,同样判断是否第一次接收该类型消息。若是,则更新节点传送数据的目标节点 域(Target_Node_ID)以及目标节点坐标域(Target_Node_X和Target_Node_Y)为消息中 包含的网关节点ID及坐标;否则,计算节点~分别到原目标节点和消息中包含的网关节点 的距离,选择距离更近的网关节点作为新的目标节点,然后继续广播该fete_MSG消息。如图2所示,图中包括节点A、B和C在内的灰色节点组成的一个孤立子树,根节点 为A,它是根据贪婪转发数据所形成的。该子树中所有节点都会将数据传输至节点A,但是 节点A没有符合贪婪条件的下一跳邻接节点,因此节点A遇到路由空洞。此时,孤立子树重 路由方法能够成功找到节点B和C作为关键节点,并利用关键链路B-D和C-E建立起到达 基站的新的通路。如图3所示,节点B在常规传输方式下可达节点D,节点C在常规传输方式下可达 节点E。由于节点B和C都位于Sink节点所在子树上,该孤立子树上的所有成员节点根据 离B和C节点的“远近”,选择距离最近的一个作为数据转发的局部范围的目标节点,使得孤 立子树重新建立路由信息生成两个更小的子树。当数据传输至节点B或者C后,就可以通 过链路B-D或者C-E通过相邻网络继续进行传输。相关流程图参见图5-8。
权利要求
1.一种无线自组织网络分布式路由空洞处理方法,其特征在于,包括以下步骤步骤1 标定非连通子树;所述的非连通子树为无线自组织网络中孤立的、与其他区域 不连通的子树,数据汇聚的无线自组织网络中的每一个空洞对应一棵非连通子树;步骤2 识别网关节点和关键节点;网关节点指具有连接到其他区域网络节点有效链 路的非连通子树成员节点;关键节点指所连相邻区域网络与基站节点连通的网关节点;步骤3:基于网关节点和关键节点将非连通子树的节点集进行分裂和合并,绕开无线 自组织网络中的空洞。
2.根据权利要求1所述的无线自组织网络分布式路由空洞处理方法,其特征在于,所 述的步骤1的具体步骤为数据在路由传送过程中,某节点找不到可以充当转发数据下一跳的合适中继节点,则 判断遇到路由空洞,该节点即对应非连通子树的根节点,首先生成一个全网唯一的随机数, 将节点群组编号域设置为该随机数,然后广播一个包括消息类型、节点群组编号和节点ID 的Create_MSG消息,Create_MSG消息即创建消息,其中消息类型用来区分不同消息;其余节点接收到Create_MSG消息后,根据节点保存的转发数据的下一跳节点ID,首先 判断广播该Create_MSG消息的节点是否就是自己数据传输时对应的下一跳节点,若不是, 则不做任何处理,直接丢弃该消息;否则,收到该Create_MSG消息的节点设置自己的群组 编号为Create_MSG消息携带的群组编号,并更新Create_MSG消息,将消息中节点ID替换 成自己的ID,然后继续广播更新后的Create_MSG消息;最后,该非连通子树所有节点的群组编号都设定为前述的随机数,完成非连通子树节 点标定,非连通子树中的所有节点形成节点集,为后续处理步骤确定节点范围。
3.根据权利要求1或2所述的无线自组织网络分布式路由空洞处理方法,其特征在于, 所述的步骤2的具体过程为标定非连通子树的节点集中节点Si广播一个查询消息Query_MSG消息,其中, 1 ^ i ^ N, N为节点集中的节点数,根据一跳邻居节点的应答信息确定自己是否可以作为 网关节点或关键节点;QUery_MSG消息包括消息类型、群组编号、节点ID、节点坐标X和节点坐标Y五个域,其 中消息类型用来区分不同消息;邻居节点收到该Query_MSG消息后,根据群组编号判断自 己是否属于该非连通子树,如果自己不属于该非连通子树,则返回应答消息,应答消息是在 原消息后面附加自己的节点ID,该节点ID信息将用来更新节点Si的转发数据的下一跳节 点ID域;同时根据自己是否与目标(基站)节点连通,将应答消息中的消息类型值分别设 置为Key_MSG类型和feite_MSG类型,Key_MSG类型即关键消息类型,Gate_MSG类型即网关 消息类型;节点Si收到应答消息后就可以根据应答消息内携带的消息类型确定自己是否可 以作为网关节点或者关键节点。
4.根据权利要求3所述的无线自组织网络分布式路由空洞处理方法,其特征在于,所 述的步骤3的具体步骤为若Si是节点集中的普通网关节点,则广播包括该节点相关信息的fete_MSG消息给其 他成员节点,同时将邻接区域对应节点设定为转发数据的下一跳节点;若Si为关键节点,则 广播包括该节点相关信息的Key_MSG消息给其他成员节点,同时将邻接区域对应节点设定 为转发数据的下一跳节点,并不再接收其他关键节点或网关节点发送的Key_MSG或Gate_MSG消息;Key_MSG消息包括消息类型、网关节点ID、网关坐标X、网关坐标Y、群组编号五个域, fete_MSG消息包括消息类型、关键节点ID、关键坐标X、关键坐标Y、群组编号五个域;节点集中的节点Sj接收到Key_MSG消息后,Sj中的j兴i,首先判断是否第一次接收该 类型消息,若是,则更新节点传送数据的当前目标节点域以及目标节点坐标域为该Key_MSG 消息中包含的关键节点ID及关键坐标X、关键坐标Y ;否则,比较节点~到原目标节点和消 息中的关键节点之间的距离,选择距离自己更近的关键节点作为新的目标节点,然后继续 广播Key_MSG消息;如果节点~已经接收过Key_MSG类型的消息,则对后续接收到的feite_MSG类型消息不 做处理,直接丢弃,否则,节点~接收到fete_MSG消息后,同样判断是否第一次接收该类型 消息,若是,则更新节点传送数据的目标节点域以及目标节点的网关坐标X、网关坐标Y为 消息中包含的网关节点ID及网关坐标X、网关坐标Y ;否则,计算节点~分别到原目标节点 和消息中包含的网关节点的距离,选择距离更近的网关节点作为新的目标节点,然后继续 广播feite_MSG消息;所述的距离为欧式距离;最终完成非连通子树节点集中的各节点的分裂和合并,从而绕开原非连通子树对应的 路由空洞。
全文摘要
本发明公开了一种无线自组织网络分布式路由空洞处理方法,其特征在于,包括以下步骤步骤1标定非连通子树;步骤2识别网关节点和关键节点;网关节点指具有连接到其他区域网络节点有效链路的非连通子树成员节点;关键节点指所连相邻区域网络与基站节点连通的网关节点;步骤3基于网关节点和关键节点将非连通子树的节点集进行分裂和合并,绕开无线自组织网络中的空洞。该无线自组织网络分布式路由空洞处理方法能有效绕开空洞,计算量小,易于实施。
文档编号H04W40/10GK102083166SQ20111004526
公开日2011年6月1日 申请日期2011年2月24日 优先权日2011年2月24日
发明者伍仁勇, 段申琳, 王慧, 薛海, 龚君丽 申请人:湖南大学