CN101562780B - 基于mcds近似算法的最小化资源消耗的组播路由方法 - Google Patents
基于mcds近似算法的最小化资源消耗的组播路由方法 Download PDFInfo
- Publication number
- CN101562780B CN101562780B CN2009100584100A CN200910058410A CN101562780B CN 101562780 B CN101562780 B CN 101562780B CN 2009100584100 A CN2009100584100 A CN 2009100584100A CN 200910058410 A CN200910058410 A CN 200910058410A CN 101562780 B CN101562780 B CN 101562780B
- Authority
- CN
- China
- Prior art keywords
- node
- message
- black
- variable
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明属于无线网络通信中的路由优化技术,涉及到节省无线网络中无线广播发送的能量和带宽资源消耗的问题,基于图论中的MCDS(最小连通支配集)问题,提出了一种最小化网络通信资源消耗的分布式组播树的构建方法。本发明一种基于MCDS近似算法的最小化资源消耗的组播路由方法基于已建立好的组播树找到一个最大独立集MIS,然后找到支配集节点连接所有的MIS节点,得到一棵支配组播树。本发明最优化了通信网络组播通信的资源消耗。由于无线媒介的广播本质,组播通信的带宽和能量消耗主要依赖于组播树中的报文转发次数。因而,本发明通过减少组播树中承担转发任务的节点个数来达到了减少网络资源消耗的目的。
Description
技术领域
本发明属于无线网络通信中的路由优化技术,涉及到节省无线网络中无线广播发送的能量和带宽资源消耗的问题,基于图论中的MCDS(最小连通支配集)问题,提出了一种最小化网络通信资源消耗的分布式组播树的构建方法。
背景技术
无线Ad hoc网络由一些移动节点组成,这些节点通过它们之间的无线链路直接相连或是通过一系列中间节点的多跳链路相连。网络的建立无须预先建立起来的基础设施和中心控制节点的集中控制。Ad hoc网络具有的一些特殊性质需要特殊的算法和协议的支持,其特点包括动态拓扑、多跳通信、有限的资源(包括带宽资源、CPU、电池能量资源)和有限的安全保证。这些特点使路由协议和算法的设计变得极具挑战性。已经存在的路由协议可以被分为三种类型:先验式、被动式和它们的混合方式。先验式在每一个节点中需要保存网络拓扑的全局信息,所以当需要时一条路由可以被很快的加入,这样的协议具有很高的协议开销和很低的升级开销;被动的路由协议具有按需路由建立的特点,只有当需要时每一个主机才计算它到特定目的节点的路由,不影响到活动路由的拓扑变化不会引发路由维护机制的运行,所以通信开销比起先验式路由协议要少。第三种路由方式是混合式的,在某些节点中保存部分拓扑信息,路由选择可由先验的决定或运用被动的方式。我们发现在这些类型的路由协议中没有一种可以避免泛洪这种通信方式。先验式协议依靠泛洪来发布拓扑更新消息,被动式协议依靠它来进行路由发现。泛洪带来一系列的广播风暴问题,广播风暴即指泛洪引起的过多的消息冗余、竞争和碰撞。这些带来高协议开销和对正在进行的通信造成干扰的后果。而另一方面,泛洪是一种非常不可靠的通信方式,这意味着在没有碰撞的情况下并不是所有主机都能够接受到广播消息。在文献“Enhancing ad hoc routing with dynamicvirtual infrastructures”中就指出中等稀疏图中我们所能期待接收到广播消息的节点个数仅仅占80%。在被动式协议中,由于泛洪的不可靠会影响最短路径的选择,或是找不到任何本来应该存在的路径;在先验式协议中会造成全局信息陈旧从而影响路由更新的正确性。
近几年,在Ad hoc网络中建立类似于有线网络中的骨干网络的虚拟骨干结构的方法不断提出。运行在这种虚拟骨干结构上的先验式路由协议在这些虚拟的网络中心节点中存储路由信息,用于更新、修复路由,来管理控制全局网络。部分被动式路由协议依靠虚拟骨干结构来代替路由发现中的全网泛洪机制,以此提高网络的可靠性(碰撞的减少)和有效性(广播次数的减少)。而Ad hoc网的资源希缺的特征使得这些衡量网络性能的指标的重要性显得更为突出,提高这些指标的途径就是减少虚拟骨干结构中的节点数目,由此找到一种在ad hoc网中有效的建立虚拟骨干结构的方法是解决问题的关键。目前,已经提出了几种在Ad hoc网络中建立连通控制集(CDS)的算法,其中较为典型的是文献“Distributed Construction of Connected Dominating Set in Wireless AdHoc Networks”公开的一种分布式连通控制集的构建方法。文献中将在ad hoc网络中建立虚拟骨干结构的问题等价为单元图中的连通控制集问题,从而在给定的节点集中寻找最小连通控制集(MCDS)。
发明内容
本发明要解决的技术问题是针对现有技术中存在的不足,提供一种用基于MCDS(最小连通控制集)算法的组播树的构建方法,是对已有组播树的优化重建。其中MCDS近似算法的分布式构建连通控制集(CDS)的方法分为两步:①基于已建立好的组播树找到一个最大独立集(MIS);②找到一些节点来连接所有的MIS节点,最终得到的黑节点集即近似MCDS。
本发明一种基于MCDS近似算法的最小化资源消耗的组播路由方法通过下述技术方案予以实现:本发明所述方法包括如下步骤:
1)构造MIS
在组播树T上,树中节点的级别(level)为该节点距离树根的跳数;树根的级别为0;我们定义节点的rank为二元组(level,id);
IF levelv>levelu THEN rankv>ranku,OR
IF levelv=levelu AND IDv>IDu THEN rankv>ranku
每个节点的ID在树T中具有唯一性,所以树中节点有一确定的排序;算法初始化过程,每个节点先计算自己的等级和低等级的邻居节点的个数,并存储这两个值;每一节点保持两个本地感知变量x1和x2;变量x1记录邻居节点中级别还没有确定的节点个数,它的初始值为节点所有邻居节点个数;变量x2记录了节点还未完成执行步骤的子节点的个数,它的初始值为所有子节点个数;所有节点保存一个LevelList变量,记录了邻居节点的级别,初始化为空;还有一个本地变量y,它记录了低等级邻居节点的个数;初始化开始时,根节点广播带有他的级别为0信息的LEVEL消息;当接收到一个LEVEL消息,节点将包含发送节点ID和级别的条目添加到自己LeveList变量中去,然后将x1减1;如果发送者是它在树T中的父节点,它将自己的级别设置为发送者的级别加1,然后通过LEVEL消息广播自己的级别;当x1=0时,节点设置y为它的低等级邻居节点的个数,该值可以通过计算LeveList中的信息得到;如果该节点是叶节点,即它的变量x2初始化为0,并且它的级别已经决定,它发送一个LEVELCOMPLETE消息给它的父节点,当接收到LEVELCOMPLETE消息后,节点将它的x2变量减1;如果节点经过更新后的变量x2=0,而且它不是根节点,它将发送LEVELCOMPLETE消息给它的父节点,然后重新设置x2变量为其子节点个数;到此为止,所有节点都确定了各自的等级和它们邻居的等级,接下来根节点将用颜色标识的方法构建MIS;
所有节点最初都标识为白色节点,而在该阶段结束时,它们最终将标识为灰色或是黑色。每一个节点保存一个BlackNum变量;在基于UDG模型下,BlackNum至多为5。根节点首先将自己标识为黑色,然后广播BLACK消息,当接收到BLACK消息后,节点将BlackNum加1,如果它的颜色为白色,它将标识自己为灰,然后广播GRAY消息,此消息中包含它的level信息;白节点接收到GRAY消息,如果发送者的等级低于它的等级,将其y值减1;如果更新后的y值为0,它将标识自己为黑色节点,然后广播一个BLACK消息;当一个叶节点被标识,它将发送MARKCOMPLETE消息给其父节点;当一个节点接收到MARKCOMPLETE消息后,它将自己的x2变量减1;如果更新后其x2=0,而且它不是根节点,它将发送一个MARKCOMPLETE消息给其父节点;当根节点的本地变量x2=0后,所有节点都已经被标识为黑色或是灰色,然后根节点将进入支配树的构造阶;
2)构造支配树
构造一棵支配树T*,算法结束后被标识为黑的节点集,即近似MCDS。初始化每个黑节点有一个Connect变量,将记录它的连接节点ID,Degree变量记录连接节点的邻居黑节点的个数,初始化为0,x1初始化为邻居节点个数,x2记录节点的子节点个数,初始化为0。步骤如下:
(a)先由已经被标识为黑的根节点开始广播一个CONNCET消息,未确定灰节点每收到一个CONNCET消息将BlackNum变量的值减1,回复CONNECTREP消息给CONNCET的发送者,CONNECTREP消息中有灰节点的邻居未遍历黑节点个数,即BlackNum变量值。根节点每接收到一个CONNECTREP消息,x1变量减1,比较CONNECTREP消息中发送者黑色邻居节点的个数和自己的Degree变量的大小,如果前者大,就以该值来更新Degree变量,并将Connect变量更新为该发送者的ID;
(b)如果根节点经过更新后x1=0,发送CONNECTCONFIRM消息给变量Connect中存储的ID的节点,重置x1值为节点的度;接收到CONNECTCONFIRM消息的灰节点成为树T*的根节点,标识为黑,将自己的状态更新为已确定,并广播BLACKCONFIRM消息;
(c)CONNECT节点的所有未遍历黑色邻居节点接收到BLACKCONFIRM消息后将发送者标记为自己的父节点,x1值减1,将自己的状态更新为已遍历,并重复上述树T根节点的步骤,只是黑节点每接收到一个CONNECTREP消息,在x1变量减1的同时将x2变量加1,接收到CONNECTCONFIRM消息的灰节点应该成为转发节点而不是树T*的根节点,并将发送者标识为自己的父节点。所以当灰节点的BlackNum变量值为0时,记录发送CONNCET消息节点的ID号,并将其标记为自己的父节点,把自己的状态更新为已确定,说明它的所有邻居黑节点已遍历;当黑节点广播CONNCET消息后收不到任何回复时,说明它的所有邻居灰节点已确定;
(d)已确定的灰节点发送DONE消息给它的父节点。无BlackNum变量的黑节点每接收到一个DONE消息将变量x2减1,节点变量x2=0时,发送DONE消息给它的父节点;存有BlackNum变量的黑节点每收到一个DONE消息将它的BlackNum变量值减1,直到BlackNum=0发送DONE消息给它的父节点。当树T*根节点收到DONE消息,该算法结束。
本发明一种基于MCDS近似算法的最小化资源消耗的组播路由方法与现有技术相比较有如下有益效果:本发明提出一种用基于MCDS(最小连通控制集)算法的组播树的构建方法,是对已有组播或支撑树的优化重建。本发明最优化了通信网络组播通信的资源消耗。由于无线媒介的广播本质,组播通信的带宽和能量消耗主要依赖于组播树中的报文转发次数。因而,本发明通过减少组播树中承担转发任务的节点个数来达到了减少网络资源消耗的目的。
附图说明
本发明一种Ad Hoc网中最小化资源消耗的组播支配树的构造方法有如下附图:
图1为本发明Ad Hoc网中最小化资源消耗的组播支配树的构造方法构建MIS执行阶段结构示意图,节点0首先将自己标识为黑,广播BLACK消息;
图2为本发明Ad Hoc网中最小化资源消耗的组播支配树的构造方法构建MIS执行阶段结构示意图,节点4,5,8将自己标识为灰,它们分别广播GRAY消息;
图3为本发明Ad Hoc网中最小化资源消耗的组播支配树的构造方法构建MIS执行阶段结构示意图,节点10收到节点8发送的GRAY消息后将自己标识为黑,广播BLACK消息;
图4为本发明Ad Hoc网中最小化资源消耗的组播支配树的构造方法构建MIS执行阶段结构示意图,节点9,12,14,16收到节点10广播的BLACK标识自己为灰,分别广播GRAY消息;
图5为本发明Ad Hoc网中最小化资源消耗的组播支配树的构造方法构建MIS执行阶段结构示意图,节点2,11,15标识自己为黑,广播BALCK消息;
图6为本发明Ad Hoc网中最小化资源消耗的组播支配树的构造方法构建MIS执行阶段结构示意图,节点1,3,6,7标识自己为灰;
图7为本发明Ad Hoc网中最小化总能量消耗的组播支配树的构造方法支配树构造执行阶段结构示意图,节点0广播CONNECT消息,8节点的未确定邻居黑节点最多,节点0发送CONNECTCONFIRM消息给节点8,节点8成为树T*的根节点,标识为黑,广播BLACKCONFIRM消息,黑节点0,10,15将节点8标识为自己的父节点;节点0,10,15发送CONNECT,节点5收到节点0发送的CONNECT消息,将节点0确定为自己的父节点,灰节点14,16收到节点10发送的CONNECT消息后,将节点10确定为自己的父节点;;节点12收到节点15发送的CONNECT消息,将节点15确定为自己的父节点。
图8为本发明Ad Hoc网中最小化总能量消耗的组播支配树的构造方法支配树构造执行阶段结构示意图,节点4收到节点0发送的CONNECT消息,因为还有一个未确定黑节点2相连,被节点0选择为CONNECT节点;节点9收到节点10发送的CONNECT消息,因为还有为确定节点11相连,被节点10确定为CONNECT节点。节点4,9,广播BLACKCONFIRM消息,;
图9为本发明Ad Hoc网中最小化总能量消耗的组播支配树的构造方法支配树构造执行阶段结构示意图,节点2收到BLACKCONFIRM消息,将节点4标识为自己的父节点;节点11收到BLACKCONFIRM消息,将节点9标识为自己的父节点。
具体实施方式
下面结合附图和实施例结本发明一种为本发明Ad Hoc网中最小化总能量消耗的组播支配树的构造方法技术方案作进一步描述。
如图1-图9所示,附图给出了说明算法的近似MCDS构造方法。节点的ID号在图中标识在节点的旁边,ID为0的节点是树根节点,也是发起组播通信源节点。图中的实线代表已经建立的组播树中的边,虚线代表节点间其它相连接的边。图1-6显示了构建MIS的执行过程,节点0、2、10、11、15是找到的MIS节点;图7-9显示支配树的构造过程,节点4、8、9是找到的独立连接节点。支配树的内部节点0、2、4、8、9、10、11、15即是要找的支配节点,图9中的由粗线和它连接的节点即支配树。
本发明一种基于MCDS近似算法的最小化资源消耗的组播路由方法基于已建立好的组播树找到一个最大独立集MIS,然后找到支配集节点连接所有的MIS节点,得到一棵支配组播树,所述方法包括如下步骤:
1)构造MIS
在组播树T上,树中节点的级别(level)为该节点距离树根的跳数;树根的级别为0;我们定义节点的rank为二元组(level,id);
IF levelv>levelu THEN rankv>ranku,OR
IF levelv=levelu AND IDv>IDu THEN rankv>ranku
每个节点的ID在树T中具有唯一性,所以树中节点有一确定的排序;算法初始化过程,每个节点先计算自己的等级和低等级的邻居节点的个数,并存储这两个值;每一节点保持两个本地感知变量x1和x2;变量x1记录邻居节点中级别还没有确定的节点个数,它的初始值为节点所有邻居节点个数;变量x2记录了节点还未完成执行步骤的子节点的个数,它的初始值为所有子节点个数;所有节点保存一个LevelList变量,记录了邻居节点的级别,初始化为空;还有一个本地变量y,它记录了低等级邻居节点的个数;初始化开始时,根节点广播带有他的级别为0信息的LEVEL消息;当接收到一个LEVEL消息,节点将包含发送节点ID和级别的条目添加到自己LeveList变量中去,然后将x1减1;如果发送者是它在树T中的父节点,它将自己的级别设置为发送者的级别加1,然后通过LEVEL消息广播自己的级别;当x1=0时,节点设置y为它的低等级邻居节点的个数,该值可以通过计算LeveList中的信息得到;如果该节点是叶节点,即它的变量x2初始化为0,并且它的级别已经决定,它发送一个LEVELCOMPLETE消息给它的父节点,当接收到LEVELCOMPLETE消息后,节点将它的x2变量减1;如果节点经过更新后的变量x2=0,而且它不是根节点,它将发送LEVELCOMPLETE消息给它的父节点,然后重新设置x2变量为其子节点个数;到此为止,所有节点都确定了各自的等级和它们邻居的等级,接下来根节点将用颜色标识的方法构建MIS;
所有节点最初都标识为白色节点,而在该阶段结束时,它们最终将标识为灰色或是黑色。每一个节点保存一个BlackNum变量;在基于UDG模型下,BlackNum至多为5。根节点首先将自己标识为黑色,然后广播BLACK消息,当接收到BLACK消息后,节点将BlackNum加1,如果它的颜色为白色,它将标识自己为灰,然后广播GRAY消息,此消息中包含它的level信息;白节点接收到GRAY消息,如果发送者的等级低于它的等级,将其y值减1;如果更新后的y值为0,它将标识自己为黑色节点,然后广播一个BLACK消息;当一个叶节点被标识,它将发送MARKCOMPLETE消息给其父节点;当一个节点接收到MARKCOMPLETE消息后,它将自己的x2变量减1;如果更新后其x2=0,而且它不是根节点,它将发送一个MARKCOMPLETE消息给其父节点;当根节点的本地变量x2=0后,所有节点都已经被标识为黑色或是灰色,然后根节点将进入支配树的构造阶;
2)构造支配树
构造一棵支配树T*,算法结束后被标识为黑的节点集,即近似MCDS。初始化每个黑节点有一个Connect变量,将记录它的连接节点ID,Degree变量记录连接节点的邻居黑节点的个数,初始化为0,x1初始化为邻居节点个数,x2记录节点的子节点个数,初始化为0。步骤如下:
(a)先由已经被标识为黑的根节点开始广播一个CONNCET消息,未确定灰节点每收到一个CONNCET消息将BlackNum变量的值减1,回复CONNECTREP消息给CONNCET的发送者,CONNECTREP消息中有灰节点的邻居未遍历黑节点个数,即BlackNum变量值。根节点每接收到一个CONNECTREP消息,x1变量减1,比较CONNECTREP消息中发送者黑色邻居节点的个数和自己的Degree变量的大小,如果前者大,就以该值来更新Degree变量,并将Connect变量更新为该发送者的ID;
(b)如果根节点经过更新后x1=0,发送CONNECTCONFIRM消息给变量Connect中存储的ID的节点,重置x1值为节点的度;接收到CONNECTCONFIRM消息的灰节点成为树T*的根节点,标识为黑,将自己的状态更新为已确定,并广播BLACKCONFIRM消息;
(c)CONNECT节点的所有未遍历黑色邻居节点接收到BLACKCONFIRM消息后将发送者标记为自己的父节点,x1值减1,将自己的状态更新为已遍历,并重复上述树T根节点的步骤,只是黑节点每接收到一个CONNECTREP消息,在x1变量减1的同时将x2变量加1,接收到CONNECTCONFIRM消息的灰节点应该成为转发节点而不是树T*的根节点,并将发送者标识为自己的父节点。所以当灰节点的BlackNum变量值为0时,记录发送CONNCET消息节点的ID号,并将其标记为自己的父节点,把自己的状态更新为已确定,说明它的所有邻居黑节点已遍历;当黑节点广播CONNCET消息后收不到任何回复时,说明它的所有邻居灰节点已确定;
(d)已确定的灰节点发送DONE消息给它的父节点。无BlackNum变量的黑节点每接收到一个DONE消息将变量x2减1,节点变量x2=0时,发送DONE消息给它的父节点;存有BlackNum变量的黑节点每收到一个DONE消息将它的BlackNum变量值减1,直到BlackNum=0发送DONE消息给它的父节点。当树T*根节点收到DONE消息,该算法结束。
所述的构造MIS的算法为:
1).If节点u为通信发起源节点,广播BLACK消息,携带序列号seq=0;
2).If白色节点u接收到BLACK消息,改变自己的颜色为灰,并广播GRAY消息,携带序列号seq=0;
3).If白节点u接收到GRAY消息,改变自己的颜色为红,并广播BLACKSELECT,携带自己的优先级Pr1(u)和序列号seq+1;
4).If接收到BLACKSELECT消息的红节点u在所有发送的携带最大序列号seq的BLACKSELECT消息的邻居节点中具有最大优先级Pr1,改变自己的颜色为黑,并广播BLACK消息,携带的序列号seq,否则,改变颜色为白色;
5).If红节点u没有接收到任何与自己发送的BLACKSELECT消息具有相同序列号的BLACKSELECT消息,改变自己的颜色为黑,广播BLACK消息,携带的序列号seq;
6).If节点集合中不存在红色节点和白色节点,本阶段结束。
所述寻找MIS连接节点最终得到CDS节点集的算法为:
1).If节点u为通信发起源节点,将自己的状态置为confirm,广播CONNECT消息,携带序列号seq=0;
2).If non-confirm状态灰色节点u接收到CONNECT消息,发送的CONNECTREP消息给CONNECT消息的发送节点,携带自己non-confirm黑色邻居节点个数信息和序列号seq;
3).If黑节点u收到自己所有邻居节点的CONNECTREP消息,比较携带最大序列号seq的CONNECTREP消息的发送节点,发送CONNECTCONFIRM消息给Pr2最大的邻居节点,携带序列号seq;
4).If灰节点u收到CONNECTCONFIRM消息,改变自己的颜色为黑,将自己的状态置为confirm,并广播BLACKCONFIRM消息,携带的序列号seq;
5).If non-confirm状态黑节点u接收到BLACKCONFIRM消息,将自己的状态置为confirm,并广播CONNECT消息,携带的序列号seq+1;
6).If灰节点u的所有邻居黑节点的状态为confirm,将自己的状态置为confirm;
7).If节点集合中的所有节点的状态都为confirm,算法结束。
所述的构造支配树算法一开始,所有节点状态都为non-confirm,算法结束时所有节点的状态都为confirm;优先级Pr(u)可由有关节点u的二元组构成,Pr1(u)=(cost(u),id(u)),Pr2(u)=(degree(u),id(u)),在实际应用中,对于任意节点u,可以将Pr1(u)的cost(u)定义为与节点u的剩余能量或移动性相关的时间函数,Pr2(u)中的degree(u)定义为节点u的度。
实施例1。
本发明MCCDS-MA算法将构建CDS的思想用到构建一棵组播树上,得到的支配树的非叶节点就是CDS节点集中的节点。
方法步骤:
(1)构造MIS
节点0首先将自己标识为黑,然后广播BLACK消息,节点4,5,8将自己标识为灰,然后它们分别广播GRAY消息,节点10的y值为1,所以收到节点8发送的GRAY消息后将自己标识为黑,然后广播BALCK消息;节点9,12,14,16标识自己为灰,它们分别广播GRAY消息,节点2,11,15的y值减为0,它们标识自己为黑;它们广播BALCK消息,节点1,3,6,7标识自己为灰。所有黑节点为MIS节点集
(2)构造支配树
节点0广播CONNECT消息,灰节点4,5,8分别回复自己的邻居为遍历黑节点数,4节点BlackNum=1,5节点BlackNum=0,8节点BlackNum=2,所以节点0收到它们回复的CONNECTREP消息后,最后将自己的Connect变量更新为8。节点0发送CONNECTCONFIRM消息给节点8,收到CNNECTCONFIRM消息后节点8成为树T*的根节点,标识为黑,将自己状态更新为已确定,并广播BLACKCONFIRM消息;节点8的邻居未遍历黑节点有0,10,15,它们收到BLACKCONFIRM后将自己的状态确定为已遍历,并将节点8标识为自己的父节点。接下去节点0,10,15发送CONNECT,节点5收到节点0发送的CONNECT消息,BlackNum变量的值减为0,将自己的状态更新为已确定,将节点0确定为自己的父节点,灰节点14,16收到节点10发送的CONNECT消息后,BlackNum变量的值减为0,所以将自己的状态更新为已确定,将节点10确定为自己的父节点;节点12收到节点15发送的CONNECT消息,BlackNum变量的值减为0,将自己的状态更新为已确定,将节点15确定为自己的父节点。节点4收到节点0发送的CONNECT消息后因为还有一个未确定黑节点2相连,被节点0选择为CONNECT节点;节点9收到节点10发送的CONNECT消息后,因为还有为确定节点11相连,被节点10确定为CONNECT节点。节点4,9将自己状态更新为已确定,广播BLACKCONFIRM消息。节点2收到BLACKCONFIRM消息后将自己状态确定为已遍历,并将节点4标识为自己的父节点;节点11收到BLACKCONFIRM消息后将自己状态确定为已遍历,并将节点9标识为自己的父节点。
Claims (4)
1.一种基于MCDS近似算法的最小化资源消耗的组播路由方法,其特征在于:所述的方法基于已建立好的组播树找到一个最大独立集MIS,然后找到支配集节点连接所有的MIS节点,得到一棵支配组播树,所述方法包括如下步骤:
1)构造MIS
在组播树T上,树中节点的级别level为该节点距离树根的跳数;树根的级别为0;我们定义节点的rank为二元组(level,id);
IF levelv>levelu THEN rankv>ranku,OR
IF levelv=levelu AND IDv>IDu THEN rankv>ranku
每个节点的id在树T中具有唯一性,所以树中节点有一确定的排序;算法初始化过程,每个节点先计算自己的等级和低等级的邻居节点的个数,并存储这两个值;每一节点保持两个本地感知变量x1和x2;变量x1记录邻居节点中级别还没有确定的节点个数,它的初始值为节点所有邻居节点个数;变量x2记录了节点还未完成执行步骤的子节点的个数,它的初始值为所有子节点个数;所有节点保存一个LevelList变量,记录了邻居节点的级别,初始化为空;还有一个本地变量y,它记录了低等级邻居节点的个数;初始化开始时,根节点广播带有他的级别为0信息的level消息;当接收到一个level消息,节点将包含发送节点id和级别的条目添加到自己LeveList变量中去,然后将x1减1;如果发送者是它在树T中的父节点,它将自己的级别设置为发送者的级别加1,然后通过level消息广播自己的级别;当x1=0时,节点设置y为它的低等级邻居节点的个数,该值通过计算LeveList中的信息得到;如果该节点是叶节点,即它的变量x2初始化为0,并且它的级别已经决定,它发送一个LEVELCOMPLETE消息给它的父节点,当接收到LEVELCOMPLETE消息后,节点将它的x2变量减1;如果节点经过更新后的变量x2=0,而且它不是根节点,它将发送LEVELCOMPLETE消息给它的父节点,然后重新设置x2变量为其子节点个数;到此为止,所有节点都确定了各自的等级和它们邻居的等级,接下来根节点将用颜色标识的方法构建MIS;
所有节点最初都标识为白色节点,而在该阶段结束时,它们最终将标识为灰色或是黑色;每一个节点保存一个BlackNum变量;在基于UDG模型下,BlackNum至多为5;根节点首先将自己标识为黑色,然后广播BLACK消息,当接收到BLACK消息后,节点将BlackNum加1,如果它的颜色为白色,它将标识自己为灰,然后广播GRAY消息,此消息中包含它的level信息;白节点接收到GRAY消息,如果发送者的等级低于它的等级,将其y值减1;如果更新后的y值为0,它将标识自己为黑色节点,然后广播一个BLACK消息;当一个叶节点被标识,它将发送MARKCOMPLETE消息给其父节点;当一个节点接收到MARKCOMPLETE消息后,它将自己的x2变量减1;如果更新后其x2=0,而且它不是根节点,它将发送一个MARKCOMPLETE消息给其父节点;当根节点的本地变量x2=0后,所有节点都已经被标识为黑色或是灰色,然后根节点将进入支配树的构造阶;
2)构造支配树
构造一棵支配树T*,算法结束后被标识为黑的节点集,即近似MCDS。初始化每个黑节点有一个Connect变量,将记录它的连接节点id,Degree变量记录连接节点的邻居黑节点的个数,初始化为0,x1初始化为邻居节点个数,x2记录节点的子节点个数,初始化为0;步骤如下:
(a)先由已经被标识为黑的根节点开始广播一个CONNCET消息,未确定灰节点每收到一个CONNCET消息将BlackNum变量的值减1,回复CONNECTREP消息给CONNCET的发送者,CONNECTREP消息中有灰节点的邻居未遍历黑节点个数,即BlackNum变量值;根节点每接收到一个CONNECTREP消息,x1变量减1,比较CONNECTREP消息中发送者黑色邻居节点的个数和自己的Degree变量的大小,如果前者大,就以该值来更新Degree变量,并将Connect变量更新为该发送者的id;
(b)如果根节点经过更新后x1=0,发送CONNECT-CONFIRM消息给变量Connect中存储的id的节点,重置x1值为节点的度;接收到CONNECT-CONFIRM消息的灰节点成为树T*的根节点,标识为黑,将自己的状态更新为已确定,并广播BLACK-COMFIRM消息;
(c)CONNECT节点的所有未遍历黑色邻居节点接收到BLACKCONFIRM消息后将发送者标记为自己的父节点,x1值减1,将自己的状态更新为已遍历,并重复上述树T*的根节点的步骤,只是黑节点每接收到一个CONNECTREP消息,在x1变量减1的同时将x2变量加1,接收到CONNECTCONFIRM消息的灰节点应该成为转发节点而不是树T*的根节点,并将发送者标识为自己的父节点;所以当灰节点的BlackList变量值为0时,记录发送CONNCET消息节点的id号,并将其标记为自己的父节点,把自己的状态更新为已确定,说明它的所有邻居黑节点已遍历;当黑节点广播CONNCET消息后收不到任何回复时,说明它的所有邻居灰节点已确定;
(d)已确定的灰节点发送DONE消息给它的父节点;无BlackNum变量的黑节点每接收到一个DONE消息将变量x2减1,节点变量x2=0时,发送DONE消息给它的父节点;存有BlackNum变量的黑节点每收到一个DONE消息将它的BlackNum变量值减1,直到BlackNum=0发送DONE消息给它的父节点;当树T*根节点收到DONE消息,该算法结束。
2.根据权利要求1所述的基于MCDS近似算法的最小化资源消耗的组播路由方法,其特征在于所述的构造MIS的算法为:
1).如果节点u为通信发起源节点,广播BLACK消息,携带序列号id=0;
2).如果白色节点u接收到BLACK消息,改变自己的颜色为灰,并广播GRAY消息,携带序列号id=0;
3).如果白节点u接收到GRAY消息,改变自己的颜色为红,并广播BLACKSELECT,携带自己的优先级Pr1(u)和序列号id+1;
4).如果接收到BLACKSELECT消息的红节点u在所有发送的携带最大序列号seq的BLACKSELECT消息的邻居节点中具有最大优先级Pr1,改变自己的颜色为黑,并广播BLACK消息,携带的序列号id,否则,改变颜色为白色;
5).如果红节点u没有接收到任何与自己发送的BLACKSELECT消息具有相同序列号的BACKSELECT消息,改变自己的颜色为黑,广播BLACK消息,携带的序列号id;
6).如果节点集合中不存在红色节点和白色节点,本阶段结束。
3.根据权利要求1所述的基于MCDS近似算法的最小化资源消耗的组播路由方法,其特征在于所述找到支配集节点连接所有的MIS节点的算法为:
1).如果节点u为通信发起源节点,将自己的状态置为confirm,广播CONNECT消息,携带序列号id=0;
2).如果non-confirm状态灰色节点u接收到CONNECT消息,发送的CONNECTREP消息给CONNECT消息的发送节点,携带自己non-confirm黑色邻居节点个数信息和序列号id;
3).如果黑节点u收到自己所有邻居节点的CONNECTREP消息,比较携带最大序列号seq的CONNECTREP消息的发送节点,发送CONNECTCONFIRM消息给Pr2最大的邻居节点,携带序列号id;
4).如果灰节点u收到CONNECTCONFIRM消息,改变自己的颜色为黑,将自己的状态置为confirm,并广播BLACKCONFIRM消息,携带的序列号id;
5).如果non-confirm状态黑节点u接收到BLACKCONFIRM消息,将自己的状态置为confirm,并广播CONNECT消息,携带的序列号id+1;
6).如果灰节点u的所有邻居黑节点的状态为confirm,将自己的状态置为confirm;
7).如果节点集合中的所有节点的状态都为confirm,算法结束。
4.根据权利要求3所述的基于MCDS近似算法的最小化资源消耗的组播路由方法,其特征在于所述的构造支配树算法一开始,所有节点状态都为non-confirm,算法结束时所有节点的状态都为confirm;优先级Pr(u)可由有关节点u的二元组构成,Pr1(u)=(cost(u),id(u)),Pr2(u)=(dgree(u),id(u)),在实际应用中,对于任意节点u,将Pr1(u)的cost(u)定义为与节点u的剩余能量或移动性相关的时间函数,Pr2(u)中的dgree(u)定义为节点u的度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100584100A CN101562780B (zh) | 2009-02-20 | 2009-02-20 | 基于mcds近似算法的最小化资源消耗的组播路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100584100A CN101562780B (zh) | 2009-02-20 | 2009-02-20 | 基于mcds近似算法的最小化资源消耗的组播路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101562780A CN101562780A (zh) | 2009-10-21 |
CN101562780B true CN101562780B (zh) | 2011-07-20 |
Family
ID=41221363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100584100A Active CN101562780B (zh) | 2009-02-20 | 2009-02-20 | 基于mcds近似算法的最小化资源消耗的组播路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101562780B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013116979A1 (zh) * | 2012-02-06 | 2013-08-15 | 华为技术有限公司 | 一种在分布式集群系统中传播节点状态信息的方法及系统 |
CN103067285A (zh) * | 2012-12-25 | 2013-04-24 | 北京银易通网络科技有限公司 | 无线自组织与传感网中的基于中继团的节能可靠组播方法 |
CN104010342B (zh) * | 2014-05-07 | 2018-01-02 | 南京邮电大学 | 基于节点邻居关系的无线传感网络拓扑自愈算法 |
CN105764110B (zh) * | 2014-12-16 | 2017-06-06 | 中国科学院沈阳自动化研究所 | 一种基于免疫克隆选择的无线传感器网络路由优化方法 |
RU2621604C1 (ru) * | 2016-02-02 | 2017-06-06 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" | Способ управления топологией мобильной самоорганизующейся сети |
CN107370536A (zh) * | 2017-07-19 | 2017-11-21 | 哈尔滨工业大学深圳研究生院 | 基于最小连通支配集的卫星网络多播路由方法及系统 |
CN111050375B (zh) * | 2019-11-08 | 2022-03-18 | 中国电子科技集团公司第三十研究所 | 一种无线自组织网络高实时数据广播分发方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1917460A (zh) * | 2006-09-07 | 2007-02-21 | 上海交通大学 | 无线传感器网络中虚拟骨干网的分布式构造方法 |
CN101175042A (zh) * | 2007-11-14 | 2008-05-07 | 北京科技大学 | 一种基于虚拟斯特纳树的组播随机化路由方法 |
-
2009
- 2009-02-20 CN CN2009100584100A patent/CN101562780B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1917460A (zh) * | 2006-09-07 | 2007-02-21 | 上海交通大学 | 无线传感器网络中虚拟骨干网的分布式构造方法 |
CN101175042A (zh) * | 2007-11-14 | 2008-05-07 | 北京科技大学 | 一种基于虚拟斯特纳树的组播随机化路由方法 |
Non-Patent Citations (1)
Title |
---|
宋震 等.链路可靠的无线传感器网络组播路由协议.《电子学报》.2008,第36卷(第1期),64-68. * |
Also Published As
Publication number | Publication date |
---|---|
CN101562780A (zh) | 2009-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101562780B (zh) | 基于mcds近似算法的最小化资源消耗的组播路由方法 | |
CN100442786C (zh) | 基于树形结构的路由方法 | |
US8270302B2 (en) | System and method for providing an adaptive value of TTL (time to live) for broadcast/multicast messages in a mesh network using a hybrid wireless mesh protocol | |
CN100591029C (zh) | 一种基于分区树的多跳无线自组织网络构建方法 | |
CN101945432B (zh) | 一种用于无线mesh网络的多速率机会路由方法 | |
CN102334312B (zh) | 用于形成、维护和/或使用交叠网络的方法和装置 | |
CN106130905B (zh) | Hwmp先验树路由模式的链路恢复方法 | |
CN102148756A (zh) | 一种基于6LoWPAN邻居发现的树状路由方法 | |
CN101374114A (zh) | 一种基于方向信息的车载移动ad hoc网络路由选择方法 | |
CN101711048A (zh) | 移动自组织网络与Internet融合过程中的网关选择方法 | |
CN103118412A (zh) | Ad Hoc网络中基于信任的按需多路径矢量路由算法 | |
CN101827421B (zh) | 基于信道状态信息的dsr协作路由方法及路由器 | |
CN1878074A (zh) | 一种基于广播中继的Ad hoc网络多播路由的建立方法 | |
CN102946305B (zh) | 一种链路状态协议数据单元的同步方法和设备 | |
CN101951656A (zh) | 具有能量有效和编码感知的无线网络路由协议的设计方法 | |
CN101247339A (zh) | 在移动无线传感器网络中进行集中式资源预约管理的方法 | |
CN103560966B (zh) | 基于网络编码和复制的机会网络混合路由方法 | |
CN105049347A (zh) | 一种基于社会网络任务分发模型的dtn路由方法 | |
CN114339931A (zh) | 一种基于分簇的无人机自组网主动路由方法 | |
CN103037436A (zh) | 一种基于HWMP的网络编码感知无线Mesh路由协议 | |
Shaikh et al. | Centralized adaptive routing in multihop cellular D2D communications | |
Bai et al. | An optimized method for minimum MPRs selection based on node density | |
CN109714260B (zh) | Olsr路由协议中基于ucds算法构建虚拟骨干网的实现方法 | |
CN104320825A (zh) | 一种基于重复博弈的Ad hoc网络路由选择方法 | |
Guizani et al. | Hierarchical cluster-based link state routing protocol for large self-organizing networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |