CN101478801B - 基于动态源树的无线自组织网络组播路由方法 - Google Patents
基于动态源树的无线自组织网络组播路由方法 Download PDFInfo
- Publication number
- CN101478801B CN101478801B CN2008102203202A CN200810220320A CN101478801B CN 101478801 B CN101478801 B CN 101478801B CN 2008102203202 A CN2008102203202 A CN 2008102203202A CN 200810220320 A CN200810220320 A CN 200810220320A CN 101478801 B CN101478801 B CN 101478801B
- Authority
- CN
- China
- Prior art keywords
- node
- source
- tree
- source tree
- multicast
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于动态源树的无线自组织网络组播路由方法,包括组播源树建立过程、源树备份路由建立过程、源树的动态维护过程、节点加入源树过程和节点离开源树过程,在建立组播源树的基础上,为源树建立备份路由,当源树出现链路失效或节点失效时,能够利用备份路由对源树进行及时修复,因此,当源树链路失效或节点失效时,不会因为重建源树而增加业务时延,从而保证了业务质量。备份路由的建立能够随着源树的动态变化而变化,但始终限制在源树周围一跳的范围内,限制了参与备份路由的节点范围,达到了有效控制处理开销的目的。本发明所提供的组播路由方法中,动态源树不仅传输效率高,而且鲁棒性也好。
Description
技术领域
本发明属于无线通信网络技术领域,具体来说涉及一种基于动态源树的无线自组织网络组播路由方法。
背景技术
无线自组织网络,又称无线Ad Hoc网络(Wireless Ad hoc Networks),是由多个移动节点组成的多跳无线网络。无线自组织网络不依赖于任何特定的网络基础设施,具有无中心、自组织、自修复、组网灵活且低成本、覆盖范围广、节点可移动等特点,能实现快速自动组网,可以广泛应用于战场通信指挥与控制、灾难救助、临时会议等无法得到有线网络支持或某些只是临时需要通信但建立有线通信网络代价太大的环境,具有重要的现实意义。
在无线自组织网络中,当两个节点在彼此的通信覆盖范围内,它们可以相互通信,但由于节点的通信范围有限,相距较远的节点需要通过其它节点的中继(Relay)才能通信,即采用多跳路由的方式组成一个多跳的临时性自治系统。因此,在无线自组织网络中每个节点不仅能移动,而且都兼有路由器和主机两种功能,能完成发现和维持到其他节点的路由。不过,在这种情况下,节点一旦移动将导致网络的拓扑结构发生变化,加上节点之间都是通过无线信道进行通信且节点一般由电池供电,因此,无线自组织网络中,多跳路由面临着动态变化的网络拓扑结构、带宽有限、能量有限等方面的挑战。
数据通信可以通过单播、广播和组播等方式来实现,其中单播是一对一的通信,当有多个接收者时,相同的数据需要分别为每个接收者都发送一次;广播是将数据发给网络中的所有节点,不管节点是否是接收者;只有组播是针对数据接收者的发送方式,只要发送一次就可将数据传递给每一个接收者,是一种高效的多点通信机制。因此,对于有多个接收者的情形,组播不仅能够减轻发送源系统的处理负荷,也降低了网络带宽的使用。由于无线自组织网络的应用场合都有一个共同的特征,那就是一到多或多到多的数据传输,加上无线自组织网络的带宽极其受限,因此,组播是最适合无线自组织网络应用的通信机制。
根据参与组播路由的节点构成的网络拓扑结构,无线自组织网络组播路由协议可分为:基于树的组播路由协议、基于格网的组播路由协议以及试图综合前两类组播路由的优点来提高总体性能的混合组播路由协议。在基于树的组播路由协议中,如AMRIS(Ad Hocmulticast routing protocol utilizing increasing id-numberS)、MAODV(multicast AdHoc on-demand vector)、LAM(lightweight adaptive multicast)、ABAM(AssociativityBased Ad hoc Multicast Protocol)等,参与组播路由的节点构成的网络拓扑结构为树,此类路由协议有传输效率高、路由决策简单等优点,但其鲁棒性不好,路由树的任何一段链路有故障或不可用都将导致路由树的重构,给业务的服务质量(QoS)带来比较大的影响。基于格网的组播路由协议中,如ODMRP(on-demand multicast routing protocol)、CAMP(core assisted mesh protocol)、FGMP(forwarding group multicast protocol)等,参与组播的节点构成的网络拓扑结构为格状网,由于组播发送者与接收者间存在冗余路径,某一链路的传输失败可能并不影响当前的组播,这就提高了协议的鲁棒性,但传输效率不高,而且数据经过逐条路径转发,不仅浪费了网络带宽,也消耗了节点的能量。
传输效率高、鲁棒性好是设计组播路由协议所期望的目标。相比上述两种结构,基于树的拓扑结构中,从任何一个源节点到一个接收节点都只要一条路径,转发组播数据报的带宽消耗得到了节省,所以,树结构是最有效率的转发结构。但其缺点也很明显,那就是鲁棒性不好,路由树的重构会影响业务的可靠性。因此,对于基于树的组播路由协议来说,如果解决了树结构鲁棒性不好的问题,就能够保证业务质量并发挥树结构传输效率高的优势。
发明内容
本发明的目的在于针对无线自组织网络中基于源树结构的组播路由协议鲁棒性不好的情况,提供一种基于动态源树的无线自组织网络组播路由方法,为组播源树建立备份路由,对源树中出现的链路失效进行及时修复,从而保障业务的质量不受影响。这样,既能发挥组播树传输效率高的优势,又能确保树结构的可靠性。
本发明所提供的一种基于动态源树的无线自组织网络组播路由方法,包括组播源树建立过程、源树备份路由建立过程、源树的动态维护过程、节点加入源树过程和节点离开源树过程。
所述的无线自组织网络组播路由方法,组播源树建立过程是指当组播组中的源节点需要发送数据时,建立到达组播接收节点的路由,路由形成的拓扑结构是以源节点为根的树结构,此树结构即为所述的组播源树(Multicast Source Tree)。设最初所有节点的类型为初始节点(Initial node),组播源树建立的具体步骤如下:
(1)源节点广播组播路由请求消息MRREQ(Multicast Route Request),MRREQ的内容包括消息类型、组播组ID、路由序列号、源节点ID、源节点序列号、路由度量值列表等,其中路由度量值列表记录进行路由选择的参数,如跳数、时延、能量消耗、稳定度或其他可衡量的量化值;
(2)第一次收到MRREQ的中间节点根据MRREQ中的信息,建立到源节点的路由,然后继续广播MRREQ,如果收到相同的MRREQ,将丢弃;
(3)组播接收节点收到MRREQ后,比较收到的所有MRREQ消息,从中选取一条最优的路由(最优的条件可以是跳数最少、或时延最小、或能量消耗最小、或稳定度最高、或其他可衡量的量化值等);
(4)组播接收节点沿最优路由的反向路由向源节点回复组播路由应答消息MRREP(Multicast Route Reply),MRREP的内容包括消息类型、下一跳节点ID、组播组ID、路由序列号、组播接收节点ID、所经过的节点序列等;
(5)收到MRREP且自己的ID等于MRREP中的下一跳节点ID的中间节点,将自己的ID加入到MRREP所经过的节点序列中,然后修改MRREP的下一跳节点ID并继续转发MRREP;
(6)源节点会收到多个接收节点回复的MRREP,根据所接收到的MRREP,源节点将计算出一棵最优的组播树,并沿此组播树向组播接收节点发送组播源树建立消息MSTC(Multicast Source Tree Creation),MSTC的内容包括消息类型、组播组ID、源树ID、源节点ID、源节点序列号、源树结构与组成列表等;如果经过规定时间T(T>0)后,源节点没有接收到MRREP,源节点等待一段时间后再发起源树的建立,如果尝试规定的次数后仍然收不到MRREP,则放弃组播源树的建立;
(7)接收到MSTC并且属于该源树的中间节点将保存源树信息,标记自己为此源树的树结点(Tree node),但对于其它源树来讲它仍为初始节点,然后继续转发MSTC;
(8)组播接收节点收到MSTC后,记录源树信息,标记自己为此源树的树结点;
(9)组播数据将沿所建立的源树进行转发。
所述的无线自组织网络组播路由方法,源树备份路由建立过程,首先依赖于组播源树的建立过程,在MSTC消息的传递过程中,发送MSTC节点的邻居节点都会收到MSTC,其中不属于该源树的邻居节点称为该源树的备份节点(Source Tree Backup Node)。源树备份路由建立过程的具体步骤包括:
(1)当一个节点收到MSTC时,首先判断该MSTC是否已由自己发送,如果是由自己发送,则丢弃该分组;如果不是,则继续;
(2)如果节点ID包含在源树结构与组成列表中,则标记自己为所述源树的树节点,并保存源树的信息,根据源树路由继续转发MSTC;
(3)如果节点ID没有包含在源树结构与组成列表中,则标记自己为所述源树的备份节点,并保存到达源树节点的信息;
(4)备份节点将自己知道的与源树之间路由信息通过源树备份路由通告消息SBRN(Source-tree Backup RouteNotification)广播给自己的邻居节点,SBRN的内容包括消息类型、组播组ID、源树ID、发送节点ID、备份路由序列列表等;
(5)收到SBRN的源树树节点和源树备份节点判断其中的路由信息是否是新的或者是更优的路由信息,如果是,则存储该路由信息;
(6)当源树备份节点检测到备份路由有更新时,也将广播SBRN通知邻居节点备份路由更新信息;
(7)没有所述源树标记的节点(即初始节点)收到SBRN时,将丢弃该分组。
所述的无线自组织网络组播路由方法,源树的动态维护过程是指当源树中的节点或链路出现失效时,利用已有的源树备份路由信息对源树进行动态修复。具体步骤包括:
(1)当一个源树备份节点检测到某条或多条备份路由失效时,将向自己的邻居节点广播源树备份路由出错消息SBERR(Source-tree Backup-route Error),其内容包括消息类型、组播组ID、源树ID、发送节点ID、不可达源树树节点列表、不可达源树备份节点列表等;
(2)收到SBERR的源树树节点和源树备份节点,根据SBRERR更新自己的路由表,在规定时间内没有可用备份路由的源树备份节点将撤销所作源树标记。
(3)当一个源树树节点检测到源树的下游链路失效或下游节点失效(节点移走或节点能量耗尽)时,查询是否有备份路由可以修复出现失效的源树,如果有,将选择最优的备份路由作为修复源树的路由,并沿新的源树向下游节点发送源树路由更新通告消息SRUN(Source-tree Route Update Notification),其内容包括消息类型、组播组ID、源树ID、发送节点ID、源树更新部分路由信息、需要修复的源树信息等;
(4)收到SRUN的源树备份节点,如果自己的ID属于更新后的源树,则将自己标记为所述源树的树节点,更新SRUN中的源树信息,并选择一条最优路由转发SRUN;
(5)收到SRUN的源树树节点,如果自己的ID仍属于更新后的源树,则根据新的源树信息更新自己的路由表;如果源树已经修复则不再转发SRUN,否则更新SRUN中的源树信息继续转发SRUN;如果树节点收到多个SRUN,则选择其中具有最优路由的一个作为源树路由;如果自己的ID已不属于更新后的源树,则将自己标记为源树的备份节点,该节点上仍然有效的路由作为源树备份路由,源树备份路由有更新时将向邻居节点广播源树备份路由通告消息SBRN;
(6)收到SRUN的初始节点,将自己标记为源树备份节点,并广播源树备份路由通告消息SBRN通知邻居节点源树备份路由更新情况;
(7)当源树树节点无法修复源树,或者检测到源树下游链路失效或下游节点失效且没有备份路由时,该树节点将向源节点发送源树路由出错消息SRERR(Source-tree RouteError),通知源节点源树出现失效分枝且无法修复;SRERR的内容包括消息类型、组播组ID、源树ID、发送节点ID、不可达源树分枝信息等;
(8)源树源节点收到SRERR后,可能采用两种操作方式:一种方式是源节点首先沿现有的源树发送组播源树释放消息MSTR(Multicast Source Tree Release),收到MSTR的树节点和备份节点将撤销所作的源树标记,并删除相应的路由信息,成为初始节点,然后源节点重新发起组播源树的建立;MSTR的内容包括消息类型、组播组ID、源树ID、源节点ID、源节点序列号、源树释放指示等。另一种方式是源节点继续利用有效的源树发送数据,那些脱离了源树的接收节点需要通过“节点加入源树过程”重新加入到源树中来;
(9)源树树节点检测到自己已经脱离组播源树且在规定时间内没有被修复的情况下,将沿脱离源树的分枝向自己的子孙节点发送源树节点释放消息STNR(Source Tree NodesRelease),STNR的内容包括消息类型、组播组ID、源树ID、源树节点释放指示等;
(10)收到STNR的源树树节点和源树备份节点,都将撤销所作的源树标记,并删除相应的路由信息,成为初始节点;
(11)收到STNR的源树备份节点还会广播SBERR,通告删除的备份路由信息已失效。
所述的无线自组织网络组播路由方法,节点加入源树过程是指一个组播组接收节点加入到一棵已经建立的源树中。具体步骤包括:
(1)需要加入源树的接收节点广播加入源树请求消息JREQ(Join Request),JREQ的内容包括消息类型、组播组ID、源树ID、组播接收节点ID、所经过的节点序列、TTL(Time-to-Live)等,其中TTL用于控制JREQ的传播范围;
(2)第一次收到JREQ的中间节点将自己的ID加入到所经过的节点序列中,然后继续广播JREQ,如果收到相同的JREQ,将丢弃;
(3)如果源树的树节点接收到JREQ,则向接收节点回复加入源树应答消息JREP(JoinReply),JREP的内容包括消息类型、组播组ID、源树ID、组播接收节点ID、发送节点ID、所经过的节点序列、路由度量值列表等;
(4)中间节点根据JREP中所经过的节点序列转发JREP;
(5)如果组播接收节点收到了多个JREP,它将根据每个JREP的路由度量值,选择一条最优的路由作为自己加入组播源树的路由,并向被选中的JREP的发送节点回复加入源树确认消息JCON(Join Confirm),JCON的内容包括消息类型、组播组ID、源树ID、组播接收节点ID、目的节点ID、所经过的节点序列等;
(6)中间节点接收到JCON,如果自己的ID属于所经过的节点序列中,则将自己标记为所述源树的树节点,否则将自己标记为所述源树的备份节点;新加入的树节点和备份节点执行源树备份路由建立过程;继续发送JCON;
(7)JCON的目的节点收到JCON后,将更新所述源树的路由表,确保将组播数据发送给新加入的接收节点;
(8)如果组播接收节点在规定的时间内无法收到JREP,则增大TTL的值再次发送JREQ;如果尝试规定的次数后,仍然无法收到JREP,则放弃加入源树。
所述的无线自组织网络组播路由方法,节点离开源树过程是指组播组的源节点或接收节点离开一棵已经建立的源树,其中源节点离开源树的过程只需源节点沿现有的源树发送组播源树释放消息MSTR释放源树的所有树节点和备份节点即可完成。接收节点离开源树的具体步骤包括:
(1)接收节点首先判断自己是否有子节点,如果有,则将自己由所述源树的接收节点转变为树节点,以后不再接收组播数据,只对组播数据进行转发;如果没有子节点,则继续;
(2)接收节点沿源树上行(向源节点)的方向发送源树节点离开消息STNL(Source TreeNode Leaving),并撤销与所述源树有关的所有参数;STNL的内容包括消息类型、组播组ID、源树ID、组播接收节点ID等;
(3)接收到STNL的树节点,如果只有发送STNL消息这一个子节点且自己不是接收节点,则将STNL发送给自己的父节点,并撤销与所述源树有关的所有参数;如果接收到STNL的树节点是接收节点,或者有两个或两个以上子节点,则将发送STNL的子节点从所述源树的路由表中删除,且不再转发STNL;
(4)接收到STNL的所述源树备份节点,将撤销与所述源树有关的所有参数。
本发明与现有的无线自组织网络组播路由协议相比,其优势主要表现在:
(1)在建立组播源树的基础上,为源树建立备份路由,当源树出现链路失效或节点失效时,能够利用备份路由对源树进行及时修复,因此,当源树链路失效或节点失效时,不会因为重建源树而增加业务时延,从而保证了业务质量。
(2)备份路由的建立能够随着源树的动态变化而变化,但始终限制在源树周围一跳的范围内,这样就限制了参与备份路由的节点范围,达到了有效控制处理开销的目的。
(3)本发明所提供的组播路由方法中,动态源树不仅传输效率高,而且鲁棒性也好。这样,既发挥了树结构的优势,又保障了树结构的可靠性。
附图说明
图1组播源树建立消息MSTC格式示意图。
图2源树备份路由通告消息SBRN格式示意图。
图3源树备份路由出错消息SBERR格式示意图。
图4组播源树释放消息MSTR格式示意图。
图5加入源树确认消息JCON格式示意图。
图6本发明实施例初始网络示意图。
图7本发明实施例中组播源树S_1建立后的网络示意图。
图8源树备份路由建立流程图。
图9本发明实施例中节点B失效后,源树S_1动态修复后的网络示意图。
图10源树路由更新通告消息SRUN格式示意图。
图11源树路由出错消息SRERR格式示意图。
图12组播源树动态修复流程图。
图13本发明实施例中,节点R加入源树S_1后的网络示意图。
图14节点加入源树流程图。
图15本发明实施例中,节点E离开源树S_1后的网络示意图。
图16节点离开源树流程图。
具体实施方式
本发明所提供的一种基于动态源树的无线自组织网络组播路由方法,用到了如下一些控制消息,一并列举如下:
MRREQ:组播路由请求消息,由组播组中的源节点向网络中广播,发起组播源树建立过程。
MRREP:组播路由应答消息,由组播组中的接收节点收到MRREQ后,沿MRREQ的反向路径向源节点发送。
MSTC:组播源树建立消息,由源节点计算出一棵最优的组播树后,沿此组播树向组播接收节点发送,建立一棵组播源树,其格式如图1所示。
SBRN:源树备份路由通告消息,由备份节点广播给自己的邻居节点,以通告备份路由更新信息,其格式如图2所示。
SBERR:源树备份路由出错消息,由备份节点广播给自己的邻居节点,以通告备份路由失效信息,其格式如图3所示。
SRUN:源树路由更新通告消息,由执行源树修复的树节点沿新的源树向下游节点发送,以通告源树路由信息的更新和需要修复的源树信息,其格式如图10所示。
SRERR:源树路由出错消息,由树节点向源节点发送,通知源节点源树出现失效分枝且无法修复,其格式如图11所示。
MSTR:组播源树释放消息,由源节点沿源树发送,以释放源树的所有树节点和备份节点,其格式如图4所示。
STNR:源树节点释放消息,由脱离源树的树节点向自己的子孙节点发送,释放所在分枝的树节点和备份节点。
JREQ:加入源树请求消息,由需要加入源树的接收节点广播,以申请加入到某一棵源树中。
JREP:加入源树应答消息,由收到JREQ消息的源树树节点回复给申请加入的接收节点,为其提供加入源树的路由信息。
JCON:加入源树确认消息,由申请加入源树接收节点发给被选中的JREP的发送节点,确认加入源树的路由,其格式如图5所示。
STNL:源树节点离开消息,由离开源树的接收节点发送给自己的父节点,通告自己已经离开源树。
下面结合实施例来说明本发明所提供的基于动态源树的无线自组织网络组播路由方法,除非特别说明,文中的源节点、树节点、备份节点、接收节点都是指所述组播源树的源节点、树节点、备份节点和接收节点。本实施例网络结构如图6所示,由18个节点组成,最初每个节点均为初始节点,其中节点S为组播源节点,E、G、O为组播接收节点,节点之间的连线表示存在无线链路,可以直接通信。
一、组播源树建立过程
(1)源节点S广播组播路由请求消息MRREQ(Multicast Route Request),本实施例中组播组ID=MG_1,路由度量值选择路由所经过的跳数。
(2)第一次收到MRREQ的中间节点如A,根据MRREQ中的信息,建立到源节点S的路由,然后继续广播MRREQ,如果收到相同的MRREQ,将丢弃。
(3)组播接收节点E、G、O收到MRREQ后,比较收到的所有MRREQ消息,从中选取一条最优的路由(本实施例中最优的条件是跳数最少)。E、G、O选取的最优路由分别为SABCDE、SABG、SABCO。
(4)组播接收节点E、G、O分别沿最优路由SABCDE、SABG、SABCO的反向路由向源节点S回复组播路由应答消息MRREP,MRREP记录了所经过的节点序列。
(5)收到MRREP且自己的ID等于MRREP中的下一跳节点ID的中间节点如D、B、C,将自己的ID加入到MRREP所经过的节点序列中,然后修改MRREP的下一跳节点ID并继续转发MRREP。
(6)源节点S会收到三个接收节点E、G、O回复的MRREP,根据所接收到的MRREP,源节点S将计算出一棵最优的组播树,称之为源树S_1(取源树ID=S_1),如表1所示,并沿此组播树向组播接收节点E、G、O发送组播源树建立消息MSTC,其中源树ID=S_1。
表1
节点ID | 节点类型 | 父节点 | 子节点 |
S | 源节点 | A | |
A | 树节点 | S | B |
B | 树节点 | A | G,C |
C | 树节点 | B | D,O |
D | 树节点 | C | E |
E | 接收节点 | D |
G | 接收节点 | B | |
O | 接收节点 | C |
(7)接收到MSTC并且属于该源树的中间节点A、B、C、D将保存源树信息,标记自己为此源树的树结点(但对于其它源节点建立的源树来讲它们仍为初始节点),然后继续转发MSTC;
(8)组播接收节点E、G、O收到MSTC后,记录源树信息,标记自己为此源树的树结点,因此,源树的源节点、接收节点也都是源树的树节点。
(9)组播源树S_1建立以后,S将沿所建立的源树发送组播数据。由S发起建立组播源树S_1后的网络如图7所示。
二、源树备份路由建立过程
源树S_1备份路由的建立是基于组播源树S_1的建立,在MSTC消息的传递过程中,发送MSTC的节点有S、A、B、C、D,它们的邻居节点K、L、F、G、M、H、O、P、E都会收到MSTC,其中不属于该源树的邻居节点K、L、F、M、H、P称为源树S_1的备份节点。源树S_1备份路由建立过程如下:
(1)当一个节点如A收到MSTC时,首先判断该MSTC是否已由自己发送,如果是由自己发送,则丢弃该分组,如A收到B发送的MSTC时将丢弃;如果收到S发送的MSTC,则继续转发;
(2)如果节点ID包含在源树结构与组成列表中,如A、B、C、D、G、O、E,则标记自己为源树S_1的树节点,并保存源树的信息,根据源树S_1的路由继续转发MSTC;
(3)如果节点ID没有包含在源树结构与组成列表中,如K、L、F、M、H、P,则标记自己为源树S_1的备份节点,并保存到达源树节点的信息,如K可以到达S、L可以到达A等。
(4)备份节点K、L、F、M、H、P将自己知道的与源树之间路由信息通过源树备份路由通告消息SBRN广播给自己的邻居节点。
(5)收到SBRN的源树树节点S、A、B、C、D、G、O、E和源树备份节点K、L、F、M、H、P判断其中的路由信息是否是新的或者是更优的路由信息,如果是,则存储该路由信息。
(6)当源树备份节点K、L、F、M、H、P检测到备份路由有更新时,也将广播SBRN通知邻居节点备份路由更新信息;
(7)没有源树S_1标记的节点如J、R收到SBRN时,将丢弃该分组。
(8)源树S_1的树节点获取的备份路由如表2所示,源树备份路由建立流程如图8所示。
表2
树节点 | 备份路由 |
S | SKLA;SKLMB |
A | ALMB;AFG |
B | |
C | |
D | |
E | |
G | GHC |
O | OPD |
三、源树的动态维护过程
源树的动态维护过程是指当源树中的节点或链路出现失效时,利用已有的源树备份路由信息对源树进行动态修复,其中也包括对备份路由的维护。在本实施例中,备份节点M和树节点B出现失效。维护的具体步骤如下:
(1)当源树S_1的备份节点L检测到M失效时,将向自己的邻居节点K、A广播源树备份路由出错消息SBERR。
(2)收到SBERR的源树树节点A和源树备份节点K,根据SBRERR更新自己的路由表。然后K会发送源树备份路由通告消息SBRN通知S备份路由所发生的变化,于是S即时更新自己的备份路由,删除备份路由SKLMB。
(3)当源树S_1的树节点A检测到源树的下游节点B失效时,查询到有备份路由AFG可以尝试修复出现失效的源树,于是沿AFG向下游节点发送源树路由更新通告消息SRUN。
(4)收到SRUN的源树备份节点F,属于更新后的源树,于是,将自己标记为源树S_1的树节点,更新SRUN中的源树信息后并将SRUN继续发送给G。
(5)收到SRUN的源树树节点G,也属于更新后的源树,就根据新的源树信息更新自己的路由表;由于源树还没有修复,于是,将SRUN经过H发送给C。C收到SRUN后,发现已经将源树修复,于是,不再转发SRUN。
(6)收到SRUN的初始节点I、J,将自己标记为源树S_1的备份节点,并广播源树备份路由通告消息SBRN通知邻居节点源树备份路由更新情况。节点B出现失效后,动态修复源树后的网络结构如图9所示,源树S_1修复后树节点备份路由如表3所示。
表3
树节点 | 备份路由 |
S | SKLA |
A | |
F |
G | GIJH |
H | |
C | |
D | |
E | |
O | OPD |
(7)当源树树节点无法修复源树,或者检测到源树下游链路失效或下游节点失效,又没有备份路由时,如本实施例中C失效时,其上游节点B将无法修复源树,于是B向源节点S发送源树路由出错消息SRERR,通知源节点源树出现失效分枝且无法修复。动态修复组播源树的流程如图12所示。
(8)源树源节点S收到SRERR后,可能采用两种操作方式:一种方式是源节点首先沿现有的源树发送组播源树释放消息MSTR,收到MSTR的树节点和备份节点将撤销所作的源树标记,并删除相应的路由信息,成为初始节点,然后源节点S重新发起组播源树的建立。另一种方式是源节点S继续利用有效的源树发送数据,那些脱离了源树的接收节点O和E需要通过“节点加入源树过程”重新加入到源树S_1中来。
(9)源树树节点如O、D检测到自己已经脱离组播源树S_1且在规定时间T(取T=30秒)内没有被修复的情况下,将沿脱离源树的分枝向自己的子孙节点发送源树节点释放消息STNR,收到STNR的源树树节点和源树备份节点,都将撤销所作的源树标记,并删除相应的路由信息,成为初始节点。本实施例中,当C失效时,O、D、E都将成为初始节点。
(10)收到STNR的源树备份节点如P还会广播一次SBERR,通告删除的备份路由信息已失效,让没有收到STNR而已没有作用的备份节点撤销所作的源树标记,并删除相应的路由信息。
四、节点加入源树过程
本实施例中,新的组播组接收节点R需要加入到源树S_1中,具体步骤如下:
(1)R广播加入源树请求消息JREQ,其中JREQ的TTL=3,每发送一次,TTL减1,由此可知,P、Q、O、D、C、E会收到R发送JREQ。
(2)第一次收到JREQ的中间节点如P、Q,将自己的ID加入到JREQ所经过的节点序列中,然后继续广播JREQ,如果收到相同的JREQ,将丢弃。如节点O会先后收到P或者Q发送的JREQ,O只会接收第一个。
(3)源树S_1的树节点O、D、C、E接收到JREQ后,向接收节点R回复加入源树应答消息JREP,其中路由度量值取路由经过跳数和负载两个参数。
(4)中间节点根据JREP中所经过的节点序列转发JREP。
(5)R共收到了O、D、C、E发来的四个JREP,它将根据每个JREP的路由度量值(本实施例为路由跳数和负载),这里R到O与R到D的跳数都为2,但考虑到O是接收节点,需要接收处理组播数据,所以选择路由DPR作为自己加入源树S_1的路由,并向D回复加入源树确认消息JCON。
(6)中间节点P接收到JCON,因为其ID属于JCON所经过的节点序列,所以将自己标记为源树S_1的树节点,而收到JCON的节点Q由于不在JCON所经过的节点序列中,于是将自己标记为源树S_1的备份节点。新加入的树节点P、R和备份节点Q都执行源树S_1的备份路由建立过程。
(7)D收到JCON后,将更新源树S_1的路由表,确保将组播数据发送给新加入的接收节点R。节点R加入源树S_1后的网络如图13所示。
(8)如果组播接收节点R在规定的时间T(取T=15秒)内无法收到JREP,则会增大TTL的值再次发送JREQ;如果尝试规定的次数(取尝试次数上限=5)后,仍然无法收到JREP,则放弃加入源树S_1。节点加入源树的流程如图14所示。
五、节点离开源树过程
本实施例中,如图7,当源节点S需要离开源树S_1时,S沿现有的源树S_1发送组播源树释放消息MSTR释放源树S_1的所有树节点和备份节点即完成离开过程。
接收节点E离开源树的具体步骤如下:
(1)E首先判断自己是否有子节点,如果有,则E不能离开源树S_1,只能将自己由源树S_1的接收节点转变为树节点,以后不再接收组播数据,只对组播数据进行转发。因为E没有子节点,所以继续下面的过程。
(2)E沿源树上行(向源节点S)的方向发送源树节点离开消息STNL,并撤销与源树S_1有关的所有参数。
(3)接收到STNL的树节点D,因为只有E这一个子节点且自己不是接收节点,所以D将STNL发送给自己的父节点C,并撤销与源树S_1有关的所有参数。但由于C有两个子节点D和O,所以C不再转发STNL,只将D从源树S_1的路由表中删除。
(4)接收到STNL的源树备份节点P,将撤销与源树S_1有关的所有参数。节点E离开源树S_1后的网络如图15所示。
节点离开源树的流程如图16所示。
本发明所提供的基于动态源树的无线自组织网络组播路由方法,是针对增强无线自组织网络中基于源树的组播路由协议的鲁棒性而提出的。但本发明所提供的方法同样适用于无线自组织网络中基于共享树的组播路由协议,使用此方法不仅可以充分发挥组播共享树在传输效率方面的优势,而且也能保障共享树的可靠性。
Claims (5)
1.一种基于动态源树的无线自组织网络组播路由方法,其特征在于包括组播源树建立过程、源树备份路由建立过程、源树的动态维护过程、节点加入源树过程和节点离开源树过程,
所述组播源树建立过程是指当组播组中的源节点需要发送数据时,建立到达组播接收节点的路由,路由形成的拓扑结构是以源节点为根的树结构,此树结构即为所述的组播源树,设最初所有节点的类型为初始节点;所述组播源树建立过程包括如下步骤:
(1)源节点广播组播路由请求消息MRREQ,MRREQ的内容包括消息类型、组播组ID、路由序列号、源节点ID、源节点序列号和路由度量值列表,其中路由度量值列表记录进行路由选择的参数,该参数包括跳数、时延、能量消耗和稳定度;
(2)第一次收到MRREQ的中间节点根据MRREQ中的信息,建立到源节点的路由,然后继续广播MRREQ,如果收到相同的MRREQ,则将该MRREQ丢弃;
(3)组播接收节点收到MRREQ后,比较收到的所有MRREQ消息,从中选取一条最优的路由,所述最优的条件为跳数最少、时延最小、能量消耗最小或稳定度最高;
(4)组播接收节点沿最优路由的反向路由向源节点回复组播路由应答消息MRREP,MRREP的内容包括消息类型、下一跳节点ID、组播组ID、路由序列号、组播接收节点ID和所经过的节点序列;
(5)收到MRREP且自己的ID等于MRREP中的下一跳节点ID的中间节点,将自己的ID加入到MRREP所经过的节点序列中,然后修改MRREP的下一跳节点ID并继续转发MRREP;
(6)源节点会收到多个接收节点回复的MRREP,根据所接收到的MRREP,源节点将计算出一棵最优的组播树,并沿此组播树向组播接收节点发送组播源树建立消息MSTC,MSTC的内容包括消息类型、组播组ID、源树ID、源节点ID、源节点序列号和源树结构与组成列表;如果经过规定时间T后,源节点没有接收到MRREP,源节点等待规定时间后再发起源树的建立,所述T>0,如果尝试规定的次数后仍然收不到MRREP,则放弃组播源树的建立;
(7)接收到MSTC并且属于该源树的中间节点将保存源树信息,标记自己为此源树的树节点,但对于其它源树来讲它仍为初始节点,然后继续转发MSTC;
(8)组播接收节点收到MSTC后,记录源树信息,标记自己为此源树的树节点;
(9)组播数据将沿所建立的源树进行转发;
所述源树备份路由建立过程,首先依赖于组播源树的建立过程,在组播源树建立消息的传递过程中,发送组播源树建立消息节点的邻居节点都会收到组播源树建立消息,其中不属于该源树的邻居节点称为该源树的备份节点;
所述源树的动态维护过程是指当源树中的节点或链路出现失效时,利用已有的源树备份路由信息对源树进行动态修复;
所述节点加入源树过程是指一个组播组接收节点加入到一棵已经建立的源树中;
所述节点离开源树过程是指组播组的源节点或接收节点离开一棵已经建立的源树,其 中源节点离开源树的过程只需源节点沿现有的源树发送组播源树释放消息释放源树的所有树节点和备份节点即可完成。
2.根据权利要求1所述的基于动态源树的无线自组织网络组播路由方法,其特征在于所述源树备份路由建立过程具体步骤包括:
(1)当一个节点收到MSTC时,首先判断该MSTC是否已由自己发送,如果是由自己发送,则丢弃该MSTC;如果不是,则继续下一步;
(2)如果节点ID包含在源树结构与组成列表中,则标记自己为所述源树的树节点,并保存源树的信息,根据源树路由继续转发MSTC;
(3)如果节点ID没有包含在源树结构与组成列表中,则标记自己为所述源树的备份节点,并保存到达源树的树节点的信息;
(4)备份节点将自己知道的与源树之间路由信息通过源树备份路由通告消息SBRN广播给自己的邻居节点,SBRN的内容包括消息类型、组播组ID、源树ID、发送节点ID和备份路由序列列表;
(5)收到SBRN的源树树节点和源树备份节点判断其中的路由信息是否是新的或者是更优的路由信息,如果是,则存储该路由信息;
(6)当源树备份节点检测到备份路由有更新时,也将广播SBRN通知邻居节点备份路由更新信息;
(7)没有所述源树标记的节点收到SBRN时,将丢弃该SBRN。
3.根据权利要求2所述的基于动态源树的无线自组织网络组播路由方法,其特征在于所述源树的动态维护过程具体步骤包括:
(1)当一个源树备份节点检测到某条或多条备份路由失效时,将向自己的邻居节点广播源树备份路由出错消息SBERR,SBERR的内容包括消息类型、组播组ID、源树ID、发送节点ID、不可达源树树节点列表和不可达源树备份节点列表;
(2)收到SBERR的源树树节点和源树备份节点,根据SBERR更新自己的路由表,在规定时间内没有可用备份路由的源树备份节点将删除所作源树标记;
(3)当一个源树树节点检测到源树的下游链路失效或下游节点失效时,查询是否有备份路由可以修复出现失效的源树,如果有,将选择最优的备份路由作为修复源树的路由,并沿新的源树向下游节点发送源树路由更新通告消息SRUN,所述节点失效指节点移走或节点能量耗尽或出现故障而不能正常工作,消息SRUN的内容包括消息类型、组播组ID、源树ID、发送节点ID、源树更新部分路由信息和需要修复的源树信息;
(4)收到SRUN的源树备份节点,如果自己的ID属于更新后的源树,则将自己标记为所述源树的树节点,更新SRUN中的源树信息,并选择一条最优路由转发SRUN;
(5)收到SRUN的源树树节点,如果自己的ID仍属于更新后的源树,则根据新的源树信息更新自己的路由表;如果源树已经修复则不再转发SRUN,否则更新SRUN中的源树信息继续转发SRUN;如果树节点收到多个SRUN,则选择其中具有最优路由的一个作为源树路由;如果自己的ID已不属于更新后的源树,则将自己标记为源树的备份节点,该 节点上仍然有效的路由作为源树备份路由,源树备份路由有更新时将向邻居节点广播源树备份路由通告消息SBRN;
(6)收到SRUN的初始节点,将自己标记为源树备份节点,并广播源树备份路由通告消息SBRN通知邻居节点源树备份路由更新情况;
(7)当源树树节点无法修复源树,或者检测到源树下游链路失效且没有备份路由或下游节点失效且没有备份路由时,该树节点将向源节点发送源树路由出错消息SRERR,通知源节点源树出现失效分枝且无法修复;SRERR的内容包括消息类型、组播组ID、源树ID、发送节点ID、不可达源树分枝信息;
(8)源树源节点收到SRERR后,可能采用两种操作方式:一种方式是源节点首先沿现有的源树发送组播源树释放消息MSTR,收到MSTR的树节点和备份节点将撤销所作的源树标记,并删除相应的路由信息,成为初始节点,然后源节点重新发起组播源树的建立;MSTR的内容包括消息类型、组播组ID、源树ID、源节点ID、源节点序列号、源树释放指示;另一种方式是源节点继续利用有效的源树发送数据,那些脱离了源树的接收节点需要通过所述节点加入源树过程重新加入到源树中来;
(9)源树树节点检测到自己已经脱离组播源树且在规定时间内没有被修复的情况下,将沿脱离源树的分枝向自己的子孙节点发送源树的树节点释放消息STNR,STNR的内容包括消息类型、组播组ID、源树ID、源树的树节点释放指示;
(10)收到STNR的源树树节点和源树备份节点,都将撤销所作的源树标记,并删除相应的路由信息,成为初始节点;
(11)收到STNR的源树备份节点还会广播SBERR,通告删除的备份路由信息已失效。
4.根据权利要求3所述的基于动态源树的无线自组织网络组播路由方法,其特征在于所述节点加入源树过程具体步骤包括:
(1)需要加入源树的接收节点广播加入源树请求消息JREQ,JREQ的内容包括消息类型、组播组ID、源树ID、组播接收节点ID、所经过的节点序列和TTL,其中TTL用于控制JREQ的传播范围;
(2)第一次收到JREQ的中间节点将自己的ID加入到所经过的节点序列中,然后继续广播JREQ,如果收到相同的JREQ,将丢弃;
(3)如果源树的树节点接收到JREQ,则向接收节点回复加入源树应答消息JREP,JREP的内容包括消息类型、组播组ID、源树ID、组播接收节点ID、发送节点ID、所经过的节点序列和路由度量值列表;
(4)中间节点根据JREP中所经过的节点序列转发JREP;
(5)如果组播接收节点收到了多个JREP,它将根据每个JREP的路由度量值,选择一条最优的路由作为自己加入组播源树的路由,并向被选中的JREP的发送节点回复加入源树确认消息JCON,JCON的内容包括消息类型、组播组ID、源树ID、组播接收节点ID、目的节点ID和所经过的节点序列;
(6)中间节点接收到JCON,如果自己的ID属于所经过的节点序列中,则将自己标记 为所述源树的树节点,否则将自己标记为所述源树的备份节点;新加入的树节点和备份节点执行源树备份路由建立过程;继续发送JCON;
(7)JCON的目的节点收到JCON后,将更新所述源树的路由表,确保将组播数据发送给新加入的接收节点;
(8)如果组播接收节点在规定的时间内无法收到JREP,则增大生存时间TTL的值再次发送JREQ;如果尝试规定的次数后,仍然无法收到JREP,则放弃加入源树。
5.根据权利要求4所述的基于动态源树的无线自组织网络组播路由方法,其特征在于所述节点离开源树过程具体步骤包括:
(1)接收节点首先判断自己是否有子节点,如果有,则将自己由所述源树的接收节点转变为树节点,以后不再接收组播数据,只对组播数据进行转发;如果没有子节点,则继续;
(2)接收节点沿源树上行方向向源节点发送源树的树节点离开消息STNL,并删除与所述源树有关的所有参数;STNL的内容包括消息类型、组播组ID、源树ID和组播接收节点ID;
(3)接收到STNL的树节点,如果只有发送STNL消息这一个子节点且自己不是接收节点,则将STNL发送给自己的父节点,并删除与所述源树有关的所有参数;如果接收到STNL的树节点是接收节点,或者有两个或两个以上子节点,则将发送STNL的子节点从所述源树的路由表中删除,且不再转发STNL;
(4)接收到STNL的所述源树备份节点,将删除与所述源树有关的所有参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102203202A CN101478801B (zh) | 2008-12-23 | 2008-12-23 | 基于动态源树的无线自组织网络组播路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102203202A CN101478801B (zh) | 2008-12-23 | 2008-12-23 | 基于动态源树的无线自组织网络组播路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101478801A CN101478801A (zh) | 2009-07-08 |
CN101478801B true CN101478801B (zh) | 2011-03-16 |
Family
ID=40839420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102203202A Expired - Fee Related CN101478801B (zh) | 2008-12-23 | 2008-12-23 | 基于动态源树的无线自组织网络组播路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101478801B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827025A (zh) * | 2010-04-02 | 2010-09-08 | 华为技术有限公司 | 一种通信网络组播保护方法、系统及设备 |
CN101986727B (zh) * | 2010-11-18 | 2013-07-31 | 北京交通大学 | 网络按需距离矢量多播路由协议的多路径改进方法和装置 |
CN102075442B (zh) * | 2011-02-25 | 2012-11-07 | 北京交通大学 | 基于网络按需距离矢量多播路由的数据传输方法与系统 |
CN102938920B (zh) * | 2012-11-21 | 2016-03-02 | 山东大学 | 一种基于认知的Ad Hoc网络移动组播路由方法 |
CN105764110B (zh) * | 2014-12-16 | 2017-06-06 | 中国科学院沈阳自动化研究所 | 一种基于免疫克隆选择的无线传感器网络路由优化方法 |
CN107276780B (zh) * | 2016-04-07 | 2019-10-22 | 中国科学院声学研究所 | 一种用于拓扑不完全可测网络的动态生成树方法 |
CN105916123A (zh) * | 2016-06-22 | 2016-08-31 | 南京农业大学 | 一种无线Ad Hoc网络中节点群组的管理方法 |
CN106612231B (zh) * | 2016-12-30 | 2019-06-04 | 中国矿业大学 | 一种基于wmn的矿井下多策略混合修复路由方法 |
WO2020042029A1 (zh) * | 2018-08-29 | 2020-03-05 | 华为技术有限公司 | 调用链路的发现方法、装置、设备及存储介质 |
CN111988220B (zh) * | 2020-08-14 | 2021-05-28 | 山东大学 | 基于强化学习的数据中心间多目标灾难备份方法和系统 |
-
2008
- 2008-12-23 CN CN2008102203202A patent/CN101478801B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101478801A (zh) | 2009-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101478801B (zh) | 基于动态源树的无线自组织网络组播路由方法 | |
CN101335701B (zh) | 一种多跳无线自组织网络的按需路由动态维护方法 | |
US8289883B2 (en) | Hybrid multicast routing protocol for wireless mesh networks | |
CN102148756B (zh) | 一种基于6LoWPAN邻居发现的树状路由方法 | |
US20040018839A1 (en) | Protocol and structure for mobile nodes in a self-organizing communication network | |
CN101707793B (zh) | 一种多跳无线自组织网络按需路由维护的洪泛控制方法 | |
JP5812917B2 (ja) | マルチホップネットワークにおいて複数の経路を発見する方法および複数の経路を検索するノード | |
CN101355496A (zh) | 基站发起的多跳分簇路由协议 | |
CN101883048A (zh) | 多维网络的路由方法 | |
Khelifa et al. | An energy multi-path AODV routing protocol in ad hoc mobile networks | |
CN102802230A (zh) | 一种能量高效的无线传感器网络路由算法 | |
CN101951656A (zh) | 具有能量有效和编码感知的无线网络路由协议的设计方法 | |
CN101494599A (zh) | Ad Hoc网络上实现基于跨层机制的多播节能路由协议的方法 | |
CN101394352B (zh) | 基于环路分群的单向无线自组织网络路由方法 | |
JP2008193407A (ja) | 無線端末及び無線通信システム | |
CN101938804A (zh) | 适用于无线传感网路的多路径路由协议 | |
Tan et al. | Queue management for network coding in ad hoc networks | |
CN104219156A (zh) | 一种适用于层次化空中自组织网络的组播路由方法 | |
EP2482589B1 (en) | Method and system for flooding and multicast routing in an AD-HOC network | |
CN105657774A (zh) | 无线自组织网络中自适应核心转发网络的建立方法和系统 | |
Lee et al. | Issues in scalable clustered network architecture for mobile ad hoc networks | |
Vashist et al. | New multicast routing protocol in ad-hoc network | |
Su et al. | An efficient multi-source multicast routing protocol in mobile ad hoc networks | |
Patil et al. | Intelligent Energy Efficient Routing Protocol based on Biological Agents for MANETS | |
Ghasemi et al. | Classification of multicast routing protocols for Mobile Ad Hoc 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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110316 Termination date: 20131223 |