移动自组网中虚拟骨干网的生成和维护方法

文档序号:7895015阅读:152来源:国知局
专利名称:移动自组网中虚拟骨干网的生成和维护方法
技术领域
本 发明涉及计算机网络技术领域,尤其涉及一种移动自组网中虚拟骨干网的生成和维护方法。
背景技术
微电子及芯片与信息通信技术的飞速发展,逐步将人类带入泛在网络时代。泛在网络时代为网络边缘带来较大的变化,越来越多的设备,包括各种网络终端、智能家电、传感器设备、车载设备、可穿戴设备等,能够通过多种有线或无线方式互联,融入用户的日常生活之中。移动自组网作为一种由几十、上百、甚至上千个终端节点构成,采用无线通信方式,无需固定基站便可动态组网、随时通信的数据网络,在灾后应急通讯、智能家居、环境监测等领域都具有广阔的应用前景。因此,移动自组网已成为泛在边缘网络的重要组成结构之一,相较于无线传感器网络节点大多静止、计算能力及电能高度有限的特性,移动自组网中的节点计算及续航能力较强、具有自由移动性,这就导致网络拓扑结构总是处于频繁变化之中,严重影响了网络通信的 QoS (Quality of Service,服务质量)。移动自组网常常使用洪泛(flooding)路由模式,虽然非常简单但会导致网络数据包的高冗余,甚至发生广播风暴,造成移动自组网路由的效能低下、资源浪费。因此,设计一种高效的路由模式势在必行,即分布式地选取网络中的一些终端节点,既作为主机,又作为路由设备,专门负责中继转发网络中的数据包、路由计算和维护,构成逻辑上的骨干子网,简称为虚拟骨干网。这样一来,便可将整个网络的路由过程简化到虚拟骨干网中,避免了洪泛式广播数据包时存在的大量冗余以及可能的广播风暴,大幅提高路由的效能比,延长节点生存期。同时,节点的随机移动、故障、电能耗尽使网络拓扑产生变化,虚拟骨干网可能逐步分崩离析,直接导致网络通信QoS的急剧下降,因此,虚拟骨干网必须支持分布式地自适应调整,重新选取一些节点加入以完成重构,维持路由连通性,增强拓扑结构的鲁棒性和自愈性。关于现有的移动自组网中虚拟骨干网的生成和维护方法,具有以下方案技术方案I :申请号为ZL200410064978. O《移动自组网络的分布式动态蜂窝路由的构建方法》中国专利申请,涉及一种移动自组网的动态蜂窝路由的构建方法,主要通过三步骤完成第一,采用发送与接收“hello”消息的方法,动态发现与更新邻居节点信息;第二,根据一致性原则和优先级排序策略选择一些移动节点充当动态移动基站;第三,移动基站行使路由器的职责,交换路由信息,生成路由表项;移动节点通过将数据发送给自己所在蜂窝的动态移动基站,而数据转发工作则交给动态移动基站和边界移动节点来完成。技术方案2 :申请号为200810045160. 2《一种蓝牙无线传感器网络组网与路由方法》的中国专利申请,涉及一种应用于无线传感器网络的组网和路由方法,它将传感器网络技术与蓝牙技术相结合,在传感器网络组网时较为充分地利用蓝牙网络成熟的物理层和MAC技术,设计了一种蓝牙散射网组网方法,使用树形拓扑结构,组网分为根节点选取,根微微网形成,网络扩张三个阶段,依据节点间的能量信息进行根阶段选取及组网的依据,这种方法以延长网络的生存时间作为目标,能够有效地提高网络的生存期,并能够预留有备份 节点,是组成网络具有较好地可靠性、灵活性、可愈合性,可以满足部分节点的加入、移动、离开网络等情况,并在组网完成的同时完成路由表的建立。技术方案3 :申请号为201110284101. 2《一种自组织可重构无线传感器网络的组建方法》的中国专利申请,涉及一种应用于无线传感器网络的网络拓扑构建方法,它包括四个部分组网流程、媒体访问协议、网络协议数据包帧格式和节点设置。已有一个主机节点,布放在有效区域内的新从节点自动向主机节点发送入网请求信息,主机节点给新从节点分配地址和信息传递路由,并定义了不同的帧格式传输不同的任务信息,描述了主从节点的硬件构成。该发明所组建的系统具有自组织入网、网络重构和分布式数据采集传输的功能,尤其适合应用于组件小型数据采集传感器网络。技术方案4 :申请号为201110054645. X《基于梯度的无线传感器网络拓扑维护方法和分组转发方法》的中国专利申请,采用反向路径代价的计算方法得到路径代价,由此建立梯度;基于该梯度,每个节点周期性地维护自己的父节点和备用父节点的链路。由于考虑了无线传感器网络的数据汇聚特性,采用梯度降低的方式进行链路维护,可以很好地适应链路动态性,控制协议开销、保持高的路由性能。上述技术方案1,2,3,4分别使用不同的方法、流程解决移动自组网、无线传感器网中的网络组建问题。方案I中引入了蜂窝网的思想,根据一致性原则和优先级排序策略选取一些移动节点充当动态移动基站,为所属蜂窝范围内的节点提供数据转发服务,但每个移动节点固定受唯一的动态移动基站管理,动态移动基站的移动性将导致节点覆盖失效,影响数据通信的稳定性,不利于网络的健壮性。方案2中引入了蓝牙散射微微网的思想,根据初始节点能量信息选取微微网根节点,构成树形路由拓扑结构负责网络中所有节点的数据包的转发,但由于其只支持部分节点的移动,并且所用的蓝牙通信技术在距离、频段上的局限,难以满足大型传感器网络或移动自组网的组网需要。方案3中引入了服务器-客户端思想,通过预置传感器网中的主机节点,负责处理新从节点的入网请求信息,给新从节点分配地址和信息传递路由,但由于组网的核心功能置于主机,若主机出现任何故障,则将导致网络传输中断,自愈性较弱,并且无法满足大规模网络的组网需求。方案4中引入了梯度概念,考虑了传感器网络的数据汇聚特性,使每个节点都能较好地维护数据汇聚路径上的父节点和备用父节点。但由于移动自组网络中的节点通信更为对等,不存在汇聚节点,缺少数据汇聚特性,无法应用于移动自组网。上述四种技术方案的主要缺陷总结如下方案I具有节点覆盖失效问题,方案2应用范围局限,方案3具有中心式组网问题,方案4依赖数据汇聚特性。

发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种大型移动自组网下虚拟骨干网的生成和维护方法,以有效解决洪泛式路由模式效率低下、动态拓扑下数据路由不稳定的问题。(二)技术方案为解决上述技术问题,本发明提供了一种移动自组网中虚拟骨干网的生成和维护方法,包括以下步骤SI,在计时器的控制下,节点u进行环境感知,节点u的邻居节点V间交换状态消息,选举初始簇头,声明各自的区域S2,各节点选择其优先级最高的邻居节点作为接入节点,陆续加入不同区域,分布式地构建以所述初始簇头为中心的区域虚拟骨干网;S3,通过选举出边界网关节点来连通相邻的区域虚拟骨干网,构建出全局虚拟骨干网。优选地,在步骤S4之后还包括步骤S4 :利用计时器的超时机制使节点感知拓扑环境变化,从而进行所述全局虚拟骨干网的拓扑重构。优选地,步骤SI具体包括101,初始化所有节点;102,所有节点进行环境感知对于任一节点u,开启计时器SendTimer(Status),开始周期性广播节点u的状态消息Status(Info (U)),同时接收节点u邻居节点的状态消息,从邻居的状态消息中提取基本信息Info进行存储,并更新节点u自身的基本信息Info,对于首次发现的节点V,启动计时器RecvTimer (Status (Info (ν))),监控节点ν的生存状态;103,若每个节点都有邻居节点,则开始选举初始簇头,规定选举的优先级序列为P (V) = (role (ν), δ (ν), nid (ν)),并规定节点ν的P (ν)大于节点u的P (u),当且仅当满足下列任意条件时成立I) role (v) > role (u)2) role (ν) = role (u), δ (ν) > δ (u)3) role (ν) = role (U), δ (ν) = δ (u), nid (ν) < nid (U)并对于节点u,计算MaxP (u) = Max ({P (ν) v e N(U)}),找出节点u的邻居里优先级最闻的节点;104,若节点u计算出自己的优先级P (U)大于MaxP (U),则代表节点u的优先级大于它的所有邻居,那么它将自选举为初始簇头置role (U)为支配节点dominator,并执行步骤105 ;否则执行步骤106 ;105,节点u自选举为初始簇头后,开始构建编号为aid(u)的区域,并开启计时器SenderTimer (BeaconArea),周期性地广播本区域的生存消息;106,邻居节点u自选举失败后,继续进行环境感知,接收邻居节点的状态消息,更新邻居和自身的基本信息Info ;其中,节点ν的角色记为role (ν),节点ν的唯一标识ID记为nid (V),节点ν的邻居节点数记为S (V),邻居节点ν的簇号记为aid (V)。优选地,步骤S2具体包括107,节点u经过计算,若自己的选举优先级P (U)小于MaxP (U) = P (ν),且发现此节点V已加入某个区域,则执行步骤108 ;108,节点u置aid (U)为aid (ν),置role (U)为被支配节点,并向邻居节点ν发送JoinArea (Info (u),Info (ν)),表明已加入邻居ν所属区域aid (V),启动计时器RecvTimer (BeaconArea)消息,监测本区域是否存活;若邻居ν是支配节点,则收到此JoinArea (Info (u), Info (ν))消息后,更新节点 u 的基本信息 Info (u) = {nid(v) ,aid(v),role(v), δ (ν)};若节点ν是被支配节点,则收到此JoinArea (Info (u), Info (ν))消息后,更新节点u的基本信息Info (u),置role (ν)为支配节点,表示成为区域内的骨干网,并更新节点u的基本信息Info (U);支配节点将根据邻居节点的基本信息,互相交换各自的路由信息,更新路由表;109,所有节点周期性地广播自身的 状态消息或接收邻居的状态消息,初始簇头节点广播区域的生存消息,区域内的虚拟骨干网节点负责中继转发,区域内的所有节点都监听邻居及区域的生存情况,实现环境感知;其中,JoinArea(Info (u), Info(V)),用于节点u声明以邻居节点ν为接入点加入节点ν所在区域。优选地,步骤S2具体包括110,对于一个已加入区域的节点U,如果有属于其他区域的邻居节点,则广播节点u的状态消息,从而节点u获得两跳内的其他区域的节点信息SN(U),用于计算是否连通周边区域;111,设节点ν和节点w的组合(V, w)代表连通区域A与B的边界网关组合;MaxR(A, B) = Max ({R(v, w} aid (v) =AA aid (w) = B Λ v e N(w))代表优先级最高的组合,节点(V,w)组合的优先级序列为R(v, w) = (role (ν), role (w), nid(v),nid (w)),其中ν e S(w)且aid(v) < aid (w),规定节点(v, w)组合的优先级R (v, w)大于节点(x,y)组合的优先级R(x,y),当且仅当满足下列任意条件时成立I) role (v) > role (x)2) role (ν) = role (x), role (w) > role (y)3) role (ν) = role (x), role (w) = role (y), nid (v) < nid(x)4) role (v) = role (x), role (w) = role (y), nid (v) = nid (x), nid (w) < nid (y)若节点u计算得MaxR(aid(u),aid(v)) = R(u, v),即节点u与节点v的组合连通各自区域的优先级最高,则节点U向节点V发送消息AllyArea(Info(u), Info (ν)),申请连通节点ν所在区域的虚拟骨干网;节点ν收到此消息后回复消息AllyArea(Info(v),Info (U)),表示同意连通,双方收到对方发送的AllyArea消息后,都置节点ν的角色为支配节点;112,当所有节点的角色不再改变时,所有区域内的支配节点组成区域虚拟骨干网,并由区域边界的支配节点互相连通,构成全局虚拟骨干网;其中,消息AllyArea(Info(u), Info(V))用于节点u申请与异簇邻居节点ν连通彼此区域的区域虚拟骨干网。优选地,步骤101中按以下方式初始化所有节点对于任一节点U,设置节点u的角色role(u)为newcomer,表示没有加入任何区域,将节点u的区域号aid(u)置为节点u的唯一标识nid(u),并将节点u邻居节点数δ (u)置为O。
优选地,利用四个计时器SendTimer (Status)、RecvTimer (Status (Info (ν)))、SenderTimer (BeaconArea)和RecvTimer(BeaconArea)的超时机制使节点感知拓扑环境变化。优选地,计时器RecvTimer(Status)的超时处理机制包括以下步骤201,节点监听来自所有邻居节点的消息,准备接收邻居节点的状态消息;202,判断某个邻居生存计时器RecvTimer (Status)是否超时;若节点在规定时间内没有收到对应邻居节点的状态消息,则导致超时;若在规定时间内收到该对应邻居节点的状态消息,则不超时;203,若节点认为该对应邻居节点仍存活,则重置该邻居生存计时器RecvTimer (Status);若节点认为该对应邻居节点已不在其通信范围内,则将本地存储的该邻居信息清空,删除该对应邻居的生存计时器RecvTimer(Status);204,节点判断是否还有其它邻居节点,若有则继续监听邻居节点的消息,否则转到步骤101重新初始化。优选地,计时器RecvTimer (BeaconArea)的超时处理机制包括以下步骤301,节点监听来自其所属区域的生存消息;302,判断某个邻居生存计时器RecvTimer (BeaconArea)是否超时;若节点在规定时间内没有收到该区域的BeaconArea生存消息,则导致超时;若在规定时间内收到该区域的BeaconArea生存消息,则不超时;303,若节点认为所属区域存活,则重置区域生存计时器RecvTimer (BeaconArea);若节点认为所属区域已不存在或者自身已移动出该区域,将本地存储的所有邻居信息清空;节点删除所有的邻居生存计时器RecvTimer (Status)以及区域生存计时器RecvTimer(BeaconArea)后转到步骤101重新初始化。(三)有益效果本发明利用计时器思想使得终端节点能够进行快速环境感知,获取邻居节点的最新信息,驱动节点进行分布式地局部选举,即通过特定的优先级比较,选出一些优先级较高的节点组成大型网络下区域化、层次化的虚拟骨干网路由结构,专门负责网络的多跳路由传输,同时利用距离矢量或链路状态协议维护路由表,并能在拓扑结构发生变化引发相关计时器超时,迅速感知并进行自适应调整,完成虚拟骨干网结构的重构、恢复等维护工作,尽可能地保障路由稳定性和通信质量。本发明能有效解决洪泛式路由模式效率低下、动态拓扑下数据路由不稳定的问题,大幅提高路由效能比,节省终端节点能耗,增强路由拓扑结构的鲁棒性和自愈性。


图I是本发明中虚拟骨干网的生成方法流程图;图2是计时器RecvTimer (Status)的超时处理方法流程图;图3是计时器RecvTimer (BeaconArea)的超时处理方法流程图;图4是显示选举初始簇头的示意图;图5是显示节点加入区域Al, A2的示意图;图6是显示区域Al,A2的边界调整的示意图7是显示节点3,4故障,节点11移动到了 Al的示意图;图8是显示节点11加入Al,区域Al, A2边界重新调整的示意图。
图4 图8中,节点旁边的数字标号表示节点的nid,符号表示通信链路,“〇”表不newcomer节点,表不dominatee节点,“(」”表不dominator节点,“^^,,表不dominator节点(初始簇头), 0 ”表示故障节点。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。本发明的移动自组网中虚拟骨干网的生成和维护方法,其关键点在于I、建立一种分区分层的虚拟骨干网路由拓扑结构网络将被分为若干个区域,每个区域中都有区域虚拟骨干网,并通过区域边界节点进行连通。节点的所有数据将发送给邻居虚拟骨干网节点统一进行路由,形成普通节点、区域虚拟骨干网的二层路由结构,能够满足大型网络的组网需求。2、建立一种基于计时器思想的环境感知方法,节点利用计时器的超时机制,周期性地发布自身Status消息,接收邻居的状态信息、区域生存消息,感知邻居节点、所属区域虚拟骨干网的存活,其感知结果将驱动区域虚拟骨干网的构建与重构。3、针对移动自组网节点自由移动、拓扑动态变化时对于影响路由稳定性的情况,不仅在路由拓扑结构的生成阶段,根据节点的环境感知信息通过局部选举初始簇头、加入区域、局部选举边界网关等方法分布式地构建虚拟骨干网,同时通过路由信息交换、同步更新路由表项,而且由环境感知信息判断拓扑是否发生变化,驱动节点通过重新进行局部选举初始簇头、加入区域、局部选举边界网关等方法分布式地重构虚拟骨干网,有效地增强了网络的抗毁性、鲁棒性、自愈性,提高了节点的路由转发效率,节约了节点的电能,延长网络生存期。首先给出一些定义和说明(以下描述中,O表示“等价于”)虚拟骨干网的定义如果移动自组网中的一个子网本身是连通的,而且子网外的所有节点都拥有至少一个该子网的节点作为邻居,那么这个子网就是一个虚拟骨干网。在移动自组网中,任意节点间都能通过虚拟骨干网的多跳转发进行通信,虚拟骨干网中的所有节点都扮演了路由器的角色,通过虚拟骨干网统一为网络中的所有节点提供数据转发服务,避免了盲目低效的洪泛路由方式造成的数据冗余和能量损耗。移动自组网中终端节点V的属性定义①节点ν的唯一标识ID记为nid (V);②节点ν的簇(区域)号记为aid (V),节点u, ν属于同一区域O aid (U)=aid (ν);③节点ν的角色记为role (ν),可选角色为newcomer (新节点),dominatee (被支配节点),dominator (支配节点),且假设 newcomer < dominatee < dominator。a)节点 ν 没有加入区域O ro!e(y) = newcomer;b)节点ν已加入区域但不属于虚拟骨干网O role(v) =dominatee;
c)节点V已加入区域且属于虚拟骨干网e m/c(v) = dominator;d)节点 V 是初始簇头(区域发起者)O roie{v) = dominator, aid{v)=nid(v):④节点ν的邻居节点集记为N(v),若两个节点都处于对方的信号覆盖半径r内,则互为邻居节点; ⑤节点V的邻居节点数记为δ (ν)。终端节点的基本信息Info定义①节点ν 的基本信息 Info 记为 Info (v) = {nid (v),aid (v),role (ν),δ (ν)}。②节点ν的异簇邻居节点集记为S(V),指V周围属于其他区域的邻居节点集;③节点ν的异簇邻居节点信息集记为SN (ν),指属于S (V)的节点的基本信息Info集;终端节点的消息定义①状态消息Status(Info(v), SN(V)(可选)),用于节点ν周期性广播自身状态;②JoinArea(Info (u), Info (V)),用于节点u声明以节点ν为接入点加入ν所在区域;③AllyArea(Info(u), Info (V)),用于节点u申请与异簇邻居节点ν连通彼此区域的区域虚拟骨干网;④BeaconArea(Info (V), t),用于初始簇头ν周期性地广播本区域生存消息,其中t为节点ν发送消息的时间戳,由本区域内的支配节点负责广播转发。终端节点的计时器定义①计时器SendTimer :用于控制消息发送,可引发超时事件。a)节点 u 启动计时器 SendTimer (Status),周期性广播 Status (Info (u));b)节点 u 启动计时器 SendTimer (BeaconArea),周期性广播BeaconArea (Info (U),t);②计时器RecvTimer :用于控制消息接收,可引发超时事件。a)节点u启动计时器Recv Timer (Status (Info (V))),监控邻居ν的生存;b)节点u启动计时器RecvTimer (BeaconArea (Info (ν), t)),监控区域内初始簇头ν的生存,判断区域是否存活。以下结合图I详细阐述本发明中虚拟骨干网的生成方法本发明中的虚拟骨干网生成方法大致分为三阶段阶段①在计时器的控制下,节点进行环境感知,邻居节点间交换Status消息(即状态消息),利用启发式方法选举初始簇头,声明各自区域;阶段②节点选择优先级最高的邻居作为接入节点(父节点),陆续加入不同区域,分布式地构建以初始簇头为中心的区域虚拟骨干网;阶段③通过选举出边界网关节点连通相邻的区域虚拟骨干网,构建出全局虚拟骨干网。计时器的超时机制将使节点能够感知拓扑环境变化,促使虚拟骨干网的拓扑重构。上述生成方法包括以下步骤阶段①
步骤101 :初始化所有节点,例如,对于节点u,将role(u)置为newcomer, aid(u)置为nid (U),δ (u)置为O,完成初始化;步骤102 :所有节点进行环境感知,例如,对于节点U,开启计时器SendTimer(Status)后,开始周期性广播其状态消息Status (Info (U)),同时接收邻居节点的状态消息,从邻居的状态消息中提取基本信息Info进行存储,并更新自身的基本信息Info。对于首次发现的邻居ν,启动计时器RecvTimer (Status (Info (ν))),监控邻居的生存,以后每次收到该邻居的Status消息,便对此计时器予以重置。两轮Status消息广播后,每个节点都能获取邻居最新的基本信息Info。步骤103 :若每个节点都有邻居,则开始选举初始簇头。规定选举的优先级序列为P(v) = (role (ν), δ (ν), nid(v)),并规定节点ν的P (V)大于节点u的P(U),当且仅当满足下列任意条件时成立I) role (v) > role (u)2) role (ν) = role (u), δ (ν) > δ (u)3) role (ν) = role (U), δ (ν) = δ (u), nid (ν) < nid (U)例如对于节点u,计算MaxP (u) = Max ({P (ν) | v e N(u)}),即找出节点u的邻居里选举优先级最高的节点。步骤104 :若节点u计算得出自己的优先级P (U)大于MaxP (U),则代表节点u的优先级大于它的所有邻居,那么它将自选举为初始簇头置role (U)为dominator,并执行步骤105 ;否则执行步骤106。步骤105 :节点u自选举为初始旗头后,开始构建编号为aid(u)的区域,并开启计时器SenderTimer (BeaconArea),周期性地广播本区域的生存消息;步骤106,邻居节点u自选举失败后,继续进行环境感知,接收邻居节点的状态消息,更新邻居和自身的基本信息Info。阶段②步骤107:节点u经过计算,若自己的选举优先级P (U)小于MaxP(U) =P(V),且发现此邻居ν已加入某个区域(其role (ν) = dominator或dominatee),则执行步骤108。步骤108 :节点 u 置 aid (U)为 aid (V),置 role (U)为 dominatee,并向邻居ν发送JoinArea(Info (u),Info (V))消息,表明已加入邻居ν所属区域aid (V),启动RecvTimer (BeaconArea),监测本区域是否存活;若邻居ν是dominator节点,则收到此JoinArea(Info (u), Info (ν))消息后,更新 Info (u);若邻居 ν 是 dominatee 节点,则收至Ij此JoinArea(Info (u), Info (ν))消息后,更新节点u的基本信息Info (u),置role (ν)为dominator,表示成为区域内的骨干网,并更新节点u的Info(u) Nominator节点将以邻居信息为基础,互相交换各自的路由信息,更新路由表。步骤109 :所有节点依旧周期性地广播自身或接收邻居的Status消息,初始簇头节点广播区域的生存消息BeaconArea,区域内的虚拟骨干网节点(dominator节点)负责中继转发,区域内的所有节点都监听邻居及区域的生存情况,实现环境感知。阶段③步骤110 :对于一个已加入区域的节点U,如果有属于其他区域的邻居节点,则广播Status (Info (u),SN(U)),因此,u将获得两跳内的其他区域的节点信息SN(U),用于计算是否连通周边区域步骤111 :设节点ν和节点w的组合(v,w)代表连通区域A与B的边界网关组合;MaxR(A,B) = Max ({R(v, w} aid (v) =AA aid (w) = B Λ v e N(w))代表优先级最高的组合,优先级序列 R(V,W) = (role(v) ,role (W) ,nid(V) ,nid(W)),其中 V e S(w)且aid(v) < aid(w)。规定节点(v, w)组合的优先级R(v, w)大于节点(x, y)组合的优先级R(x,y),当且仅当满足下列任意条件时成立I) role (v) > role (x)2) role (ν) = role (x), role (w) > role (y)3) role (ν) = role (x), role (w) = role (y), nid (v) < nid(x)4) role (ν) = role (x), role (w) = role (y), nid (v) = nid (x), nid (w) < ni (y)若节点u计算得MaxR (aid (u), aid(v)) = R(u, ν),即节点u与节点v的组合连通各自区域的优先级最高。节点u向节点ν发送AllyArea(Info(u), Info (ν)),申请连通节点ν所在区域的虚拟骨干网;节点ν收到此消息后回复AllyArea (Info (ν), Info (u)),表明同意连通。双方收到对方发送的AlIyArea消息后,都置role为dominator (原来就是dominator的话就保持不变)。可见,根据R的定义,aid较小的节点总是首先发送AllyArea,且两个dominator节点的组合将优先成为边界网关节点。步骤112 :当所有节点的role不再改变,网络趋于稳定,所有区域内的dominator节点组成区域虚拟骨干网,并由区域边界的dominator节点互相连通,构成全局虚拟骨干网,骨干网节点间可同步交换路由信息,形成路由表用于数据包的路由。以下结合图2、图3详细阐述本发明中虚拟骨干网的维护方法移动自组网下的终端节点时刻运行着各类计时器,这些计时器控制着节点进行环境信息更新,监控区域、邻居的存活。当节点的移动、加入、退出、电能耗尽使得网络拓扑结构发生变化时,相关节点能够及时获知并作出相应拓扑调整,完成虚拟骨干网的维护工作,保持其连通性。以下说明各类计时器的超时处理方法①SendTimer (Status):超时则广播自身Status消息,并重置;②SendTimer (BeaconArea):超时则广播区域生存消息BeaconArea,并重置;③RecvTimer (Status):超时则清空该邻居信息,删除该邻居计时器,以下结合图2详细说明;步骤201 :节点始终监听来自所有邻居的消息,准备接收其Status消息;步骤202 :判断某个邻居生存计时器RecvTimer (Status)是否超时;若节点在规定时间内没有收到该邻居的Status消息,则导致超时;若在规定时间内收到该邻居的Status消息,则不超时;步骤203 :若节点认为该邻居仍存活,重置该邻居生存计时器RecvTimer (Status);若节点认为该邻居已不在其通信范围内,则将本地存储的该邻居信息Info清空,删除该邻居的生存计时器RecvTimer(Status);步骤204 :节点判断是否还有邻居,若还有邻居则继续监听邻居的消息,否则转到步骤101重新初始化;④RecvTimer (BeaconArea):超时则清空所有本地存储的邻居信息,如Info, SN,删除所有计时器,重新初始化,以下结合图3详细说明;
步骤301 :节点始终监听来自其所属区域的生存消息BeaconArea消息;步骤302 :判断某个邻居生存计时器RecvTimer (BeaconArea)是否超时;若节点在规定时间内没有收到该区域的BeaconArea生存消息,则导致超时;若在规定时间内收到该区域的BeaconArea生存消息,贝U不超时;步骤303 :若节点认为所属区域存活,重置区域生存计时器RecvTimer (BeaconArea);若节点认为所属区域已不存在或者自身已移动出该区域,将本地存储的所有邻居信息清空;节点删除所有的邻居生存计时器RecvTimer(Status)以及区域生存计时器RecvTimer (BeaconArea)后转到步骤101重新初始化;下面结合图4 图8举例说明本发明如何在拓扑频繁变化的移动自组网中,通过节点进行环境感知,实现虚拟骨干网的生成和维护首先执行步骤101 :所有节点初始化,aid置为nid, role置为newcomer, δ置为
O,开启计时器SendTimer(Status),周期性广播Status消息。图4显示了初始簇头的选举(图I的步骤102-105)。通过两次Status消息广播,并计算优先级P后,节点1,2发现自身的优先级P比邻居节点高,则自选举为初始簇头,置role为dominator,开启计时器SendTimer (BeaconArea)开始广播区域生存消息BeaconArea,各自开始构建区域Al, A2。图5显示了以初始簇头节点I和2同步构建区域骨干网。节点4,5,8,9,10执行步骤106-108,继续接收邻居的Status消息、更新邻居的基本信息Info,发现节点I变成了 dominator节点,且计算得自身优先级P小于节点1,因此给节点I发出JoinArea消息后,它们都加入了区域Al,并置role为dominatee,置aid为I,开启计时器RecvTimer (BeaconArea),准备接收区域Al中的生存消息BeaconArea ;同理,节点3,6, 7,11加入区域A2。图6显示了区域Al,A2的边界将如何调整,即步骤109-112。节点4,10与节点3,7互相发现对方属于不同区域,则将彼此信息添加入异簇邻居信息集SN中,填入Status消息广播,因此节点4,10,3,7都能获知彼此存在,并计算MaxR(Al,A2)得边界网关仅有的两种组合的优先级为R(v4, v3), R(v10, v7),根据比较规贝U, R(v4, v3) > R(v10, ν7) ο因此节点
4,3互相发送AllyArea后,置role为dominator。此时,区域虚拟骨干网互相连通,所有dominator节点组成虚拟骨干网,相互交换路由信息后,便可承担起网络中所有节点的数据转发任务。如图7所示,节点3,4故障,节点11发生移动。当节点11由区域A2移动至去区域Al后将依次执行步骤301-101(按图3所示顺序执行)由于无法接收A2内的生存区域消息BeaconArea,导致RecvTimer (BeaconArea)超时,它重新初始化为newcomer节点。随后节点11执行步骤102-104,106-108 :经过邻居发现,节点11选择节点5作为接入节点加入Al,置role为dominatee,而节点5接收到节点11发送的JoinArea消息后将role置为dominator ο与此同时,节点2,6的邻居存活计时器RecvTimer (Status (Info (V11)))超时,将删除节点11的信息;节点7,10执行步骤110-112,重新计算MaxR(A2,A3)得知当前R(v1(l,v7)的优先级最高,互相发送AllyArea消息,置role为dominator后,重新连通了区域A2和A3,如图8所示,虚拟骨干网维护完成。由以上实施例可以看出,本发明提供的移动自组网基于计时器的虚拟骨干网生成和维护方法,其优点在于本发明通过建立一种基于计时器思想的环境感知方法,使节点能够利用计时器的超时机制,周期性地广播自身的状态信息,接收邻居的状态信息、区域生存消息,感知自身、邻居节点、相关节点因故障、移动所导致的区域虚拟骨干网结构的变化。通过此环境感知方法,节点能够获取必要地邻居信息,分布式地为大型移动自组网络构建分区分层的虚拟骨干网,专门用于数据路由转发,避免了洪泛路由模式的高耗能低效率,提高路由效率的同时节约路由能耗。当节点发生移动、故障使得虚拟骨干网路由结构发生破坏、影响数据路由时,由于计时器的超时机制,相关节点能够迅速感知环境变化并作出自适应调整,通过重新进行局部选举初始簇头、加入区域、局部选举边界网关等方法使虚拟骨干网得到快速重构,增强了路由的稳定性以及虚拟骨干网的抗毁能力、鲁棒性、自愈性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
权利要求
1.一种移动自组网中虚拟骨干网的生成和维护方法,其特征在于,包括以下步骤 SI,在计时器的控制下,节点u进行环境感知,节点u的邻居节点V间交换状态消息,选举初始簇头,声明各自的区域; S2,各节点选择其优先级最高的邻居节点作为接入节点,陆续加入不同区域,分布式地构建以所述初始簇头为中心的区域虚拟骨干网; S3,通过选举出边界网关节点来连通相邻的区域虚拟骨干网,构建出全局虚拟骨干网。
2.如权利要求I所述的方法,其特征在于,在步骤S4之后还包括步骤S4:利用计时器的超时机制使节点感知拓扑环境变化,从而进行所述全局虚拟骨干网的拓扑重构。
3.如权利要求2所述的方法,其特征在于,步骤SI具体包括 ·101,初始化所有节点; ·102,所有节点进行环境感知对于任一节点U,开启计时器SendTimer(Status),开始周期性广播节点u的状态消息Status (Info (u)),同时接收节点u邻居节点的状态消息,从邻居的状态消息中提取基本信息Info进行存储,并更新节点u自身的基本信息Info,对于首次发现的节点V,启动计时器RecvTimer(Status),监控节点v的生存状态; ·103,若每个节点都有邻居节点,则开始选举初始簇头,规定选举的优先级序列为P (V) = (role (V),δ (ν), nid(v)),并规定节点V的P (ν)大于节点u的P (U),当且仅当满足下列任意条件时成立1)role(ν)>role(u) 2)role (v) =role (u), δ (ν) > δ (u)3)role (ν) =role (U),δ (ν)=δ (u),nid (ν)〈nid (U) 并对于节点u,计算MaxP (u) =Max ({P (ν) | v e N(u)}),找出节点u的邻居里优先级最高的节点; ·104,若节点u计算出自己的优先级P (U)大于MaxP (U),则代表节点u的优先级大于它的所有邻居,那么它将自选举为初始簇头置role (U)为支配节点dominator,并执行步骤·105 ;否则执行步骤106 ; ·105,节点u自选举为初始簇头后,开始构建编号为aid(u)的区域,并开启计时器SenderTimer (BeaconArea),周期性地广播本区域的生存消息; ·106,邻居节点u自选举失败后,继续进行环境感知,接收邻居节点的状态消息,更新邻居和自身的基本信息Info ; 其中,节点ν的角色记为role (ν),节点ν的唯一标识ID记为nid (V),节点ν的邻居节点数记为S (V),邻居节点ν的簇号记为aid (V)。
4.如权利要求3所述的方法,其特征在于,步骤S2具体包括 ·107,节点u经过计算,若自己的选举优先级P(U)小于MaxP (U) = P (ν),且发现此节点ν已加入某个区域,则执行步骤108 ; ·108,节点u置aid(U)为aid (V),置role (U)为被支配节点,并向邻居节点ν发送JoinArea(Info (U),Info (ν))消息,表明已加入邻居ν所属区域aid (V),启动计时器RecvTimer (BeaconArea),监测本区域是否存活;若邻居ν是支配节点,则收到此JoinArea(Info (u),Info (ν))消息后,更新节点 u 的基本信息 Info (u) = {nid(v),aid(v),role(v), δ (ν)};若节点ν是被支配节点,则收到此JoinArea(Info(u), Info(v))消息后,更新节点U的基本信息Info (U),置IOle(V)为支配节点,表示成为区域内的骨干网,并更新节点u的基本信息Info (U);支配节点将根据邻居节点的基本信息,互相交换各自的路由信息,更新路由表; .109,所有节点周期性地广播自身的状态消息或接收邻居的状态消息,初始簇头节点广播区域的生存消息,区域内的虚拟骨干网节点负责中继转发,区域内的所有节点都监听邻居及区域的生存情况,实现环境感知; 其中,JoinArea(Info(u), Info (ν)),用于节点u声明以邻居节点ν为接入点加入节点ν所在区域。
5.如权利要求4所述的方法,其特征在于,步骤S2具体包括 .110,对于一个已加入区域的节点U,如果有属于其他区域的邻居节点,则广播节点u的状态消息,从而节点u获得两跳内的其他区域的节点信息SN(U),用于计算是否连通周边区域; .111,设节点V和节点W的组合(V, w)代表连通区域A与B的边界网关组合; MaxR(A, B) =Max({R(v, w} aid(v) =A Λ aid(w) =B Ave N(w))代表优先级最高的组合,节点(ν, w)组合的优先级序列为 R (ν, w) = (role (ν), role (W),nid (ν), nid (W)),其中ν e S(W)且aid (V)〈aid (W),规定节点(v, w)组合的优先级R(v,w)大于节点(x,y)组合的优先级R(x,y),当且仅当满足下列任意条件时成立.1)role(ν)>role(x).2)role(v)=role(x),role(w) > role(y).3)role(v)=role(x), role(w)=role(y), nid(v)〈nid(x).4)role(v)=role(x),role(w)=role(y), nid (v)=nid (x), nid (w)<nid (y) 若节点u计算得MaxR (aid (u),aid(v)) = R(u, v),即节点u与节点v的组合连通各自区域的优先级最高,贝1J节点u向节点ν发送消息AllyArea(Info(u), Info (ν)),申请连通节点ν所在区域的虚拟骨干网;节点ν收到此消息后回复消息AllyArea(Info(v), Info(U)),表示同意连通,双方收到对方发送的AllyArea消息后,都置节点ν的角色为支配节点; .112,当所有节点的角色不再改变时,所有区域内的支配节点组成区域虚拟骨干网,并由区域边界的支配节点互相连通,构成全局虚拟骨干网; 其中,消息AllyArea(Info(u), Info(v))用于节点u申请与异簇邻居节点ν连通彼此区域的区域虚拟骨干网。
6.如权利要求3所述的方法,其特征在于,步骤101中按以下方式初始化所有节点对于任一节点u,设置节点u的角色role (U)为newcomer,表示没有加入任何区域,将节点u的区域号aid(u)置为节点u的唯一标识nid(u),并将节点u邻居节点数δ (u)置为O。
7.如权利要求Γ6中任一项所述的方法,其特征在于,利用四个计时器 SendTimer (Status)、RecvTimer (Status)、SenderTimer (BeaconArea)和RecvTimer(BeaconArea)的超时处理机制使节点感知拓扑环境变化。
8.如权利要求7所述的方法,其特征在于,计时器RecvTimer(Status)的超时处理机制包括以下步骤 .201,节点监听来自所有邻居节点的消息,准备接收邻居节点的状态消息; .202,判断某个邻居生存计时器RecvTimer (Status)是否超时;若节点在规定时间内没有收到对应邻居节点的状态消息,则导致超时;若在规定时间内收到该对应邻居节点的状态消息,则不超时; .203,若节点认为该对应邻居节点仍存活,则重置该邻居生存计时器RecvTimer (Status);若节点认为该对应邻居节点已不在其通信范围内,则将本地存储的该邻居信息清空,删除该对应邻居的生存计时器RecvTimer(Status); .204,节点判断是否还有其它邻居节点,若有则继续监听邻居节点的消息,否则转到步骤101重新初始化。
9.如权利要求7所述的方法,其特征在于,计时器RecvTimer (BeaconArea)的超时处理机制包括以下步骤 .301,节点监听来自其所属区域的生存消息; .302,判断某个邻居生存计时器RecvTimer(BeaconArea)是否超时;若节点在规定时间内没有收到该区域的BeaconArea生存消息,则导致超时;若在规定时间内收到该区域的BeaconArea生存消息,则不超时; .303,若节点认为所属区域存活,则重置区域生存计时器RecvTimer(BeaconArea);若节点认为所属区域已不存在或者自身已移动出该区域,将本地存储的所有邻居信息清空;节点删除所有的邻居生存计时器RecvT imer (Status)以及区域生存计时器RecvTimer(BeaconArea)后转到步骤101重新初始化。
全文摘要
本发明涉及计算机网络技术领域,公开了一种移动自组网中虚拟骨干网的生成和维护方法,包括以下步骤S1,在计时器的控制下,节点u进行环境感知,节点u的邻居节点v间交换状态消息,选举初始簇头,声明各自的区域;S2,各节点选择其优先级最高的邻居节点作为接入节点,陆续加入不同区域,分布式地构建以所述初始簇头为中心的区域虚拟骨干网;S3,通过选举出边界网关节点连通相邻的区域虚拟骨干网,构建出全局虚拟骨干网。本发明能有效解决洪泛式路由模式效率低下、动态拓扑下数据路由不稳定的问题。
文档编号H04W40/02GK102625403SQ20121013803
公开日2012年8月1日 申请日期2012年5月4日 优先权日2012年5月4日
发明者亓峰, 孟洛明, 李文璟, 杨阳, 芮兰兰, 邱雪松, 郭少勇 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1