CN103178976A - 组播树组建及故障恢复方法 - Google Patents
组播树组建及故障恢复方法 Download PDFInfo
- Publication number
- CN103178976A CN103178976A CN2011104347239A CN201110434723A CN103178976A CN 103178976 A CN103178976 A CN 103178976A CN 2011104347239 A CN2011104347239 A CN 2011104347239A CN 201110434723 A CN201110434723 A CN 201110434723A CN 103178976 A CN103178976 A CN 103178976A
- Authority
- CN
- China
- Prior art keywords
- node
- interface
- list
- message
- iif
- 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.)
- Pending
Links
Images
Abstract
本发明涉及数据通信的技术。本发明解决了现有组播协议在故障发生后重新计算数据转发路由,导致故障恢复时间较长的问题,提供了一种组播树组建及故障恢复方法,其技术方案可概括为:组播树组建及故障恢复方法,根据节点中数据转发方向的选择规则,组建两棵不同的到源节点的转发树,网络中各组播目的节点通过转发树向源节点方向发送加入消息,组建组播树,若某节点检测到通过该转发树的上游节点发生故障,则该节点的数据输入接口更换为另一棵转发树的上游节点。本发明的有益效果是:有效减少组播故障恢复时间,适用于数据通信领域中的组播树组建及故障恢复。
Description
技术领域
本发明涉及数据通信的技术,特别涉及数据通信领域中的组播技术。
背景技术
随着互联网技术和网络规模的不断发展壮大,以组播技术为基础的大量业务不断涌现,如在线聊天、视频点播、视频会议及远程教育等,对于这些延迟敏感型的网络应用使得组播故障后的快速恢复技术成为数据通信领域内的一个重要研究内容,这些技术目标是以有效的方式确保网络通信尽量少的中断或不发生中断,这要求应用中故障发生后通信数据能绕过故障点或故障链路,以尽量快的方式组建一条新的路由链路,确保数据流的持续性。
现今多数路由协议如PIM协议(协议无关组播路由协议)是在故障发生后,利用可用的资源建立备用路径,这种方法在故障发生后重新计算数据转发路由,需要较长的故障恢复时间,而数据流的长时间中断,对于一些实时应用是不能忍受的,寻求一种快速的故障恢复方法是非常必要的。
现在的组播树有很多都应用于2连接网络,且路径节点不相交的网络中,所述2连接网络,即点到点之间至少有两条通过不同节点的路径;所述节点不相交是指如果从节点s到节点d的一条路径通过节点i,则另一条从节点s到节点d的路径将不再通过节点i。
发明内容
本发明的目的就是克服目前组播协议在故障发生后重新计算数据转发路由,导致故障恢复时间较长的缺点,提供一种组播树组建及故障恢复方法。
本发明解决其技术问题,采用的技术方案是,组播树组建及故障恢复方法,其特征在于,包括以下步骤:
步骤1.以组播源点为根节点,利用DFS(深度优先搜索)遍历2连接网络,遍历时为网络中各节点分发DFS序号,并计算各节点的全局低点值glpv(x);
步骤2.每个节点根据设定的规则计算其自己的势值pot(x),并根据规则计算各节点所属节点层;
步骤3.根据节点中数据转发方向的选择规则,组建两棵不同的到源节点的转发树;
步骤4.网络中各组播目的节点通过转发树向源节点方向发送加入消息,组建组播树;
步骤5.若某节点检测到通过该转发树的上游节点发生故障,则该节点的数据输入接口更换为另一棵转发树的上游节点。
具体的,步骤1所述DFS序号为遍历过程中各节点遍历的先后顺序号,所述节点的全局低点值glpv(x)指某节点通过贯穿一系列节点所能达到的最小DFS序号即为该节点的全局低点值glpv(x),即glpv(x)=min(DFS序号)。
进一步的,步骤2中,所述节点层包括odd层和even层。
具体的,步骤2所述计算势值pot(x)和计算各节点所属节点层的具体规则为:
a.源节点初始化势值为0,初始化所属节点层为odd层;
b.判断节点x的全局低点值glpv(x)是否小于其DFS的双亲节点p(x)的势值pot(p(x)),若小于则进入c步骤,若不小于则进入d步骤;
c.节点x的势值pot(x)等于其DFS的双亲节点p(x)的势值pot(p(x)),且该节点x所属节点层与其DFS双亲节点相同;
d.节点x的势值pot(x)等于其DFS的双亲节点p(x)的DFS序号dfs(p(x)),且该节点x所属节点层与其DFS双亲节点不同。
再进一步的,步骤3所述选择规则为:
e.若节点x在even层,则节点x选择其DFS双亲节点p(x)为左转发节点,为第一转发树的路径,节点x选择其全局低点邻居glpn(x)为右转发节点,为第二转发树的路径;
f.若节点x在odd层,则节点x选择其全局低点邻居glpn(x)为左转发节点,为第一转发树的路径,节点x选择其DFS双亲节点p(x)为右转发节点,为第二转发树的路径。
具体的,所述全局低点邻居指节点x到达其全局低点路径中的下一跳节点。
再进一步的,步骤4所述组建组播树的方法为:
步骤401.每个中间节点设置两个组播表项,包括组播数据输入接口列表iif_list和组播数据输出接口列表oif_list;
步骤402.组播目的节点g沿第一转发树向源节点方向发送加入报文;
步骤403.中间节点x收到加入报文后,将给其发送加入报文的节点接口添加到oif_list中,并检查该中间节点x的iif_list是否为空,若为空则进入步骤404,若不为空则沿加入报文的发送来的方向返回success报文;
步骤404.将加入报文转发到节点x的左转发节点,并添加该左转发节点的接口到iif_list中;
步骤405.若加入报文一直转发到达源节点,则由源节点沿加入报文的发送来的方向返回success报文;
步骤406.在加入报文向上游节点发送过程中,若某个中间节点检测到第一转发树的上游节点或链路是否发生故障,则将该加入报文转发到该中间节点的右转发节点,若检测到第二转发树的上游节点或链路也发生故障,则沿加入报文的发送来的方向返回failure报文;
步骤407.若中间节点x接收到failure报文,则将其转发至oif_list中的各接口,并删除iif_list和oif_list中的相应接口;
步骤408.组播目的节点若接收到success报文则成功加入组播树,若接收到failure报文则加入组播树失败。
具体的,步骤4所述组建组播树的方法中还包括以下步骤:
步骤409.若组播目的节点不再需要接收组播报文,则沿组播树上游方向发送prune报文;
步骤410.中间节点接收到prune报文,删除oif_list中发送该prune报文的输入接口;
步骤411.检查oif_list表中是否还有接口存在,若有则不再转发prune报文,若oif_list已经为空则转发prune报文至iif_list中的接口,之后删除iif_list中相应的接口。
再进一步的,步骤5包括以下步骤:
步骤501.若某节点检测到其上游节点发生故障,若该节点的iif_list中的接口对应其的左转发节点,则向其右转发节点对应的接口发送change报文,并将iif_list中的接口更新为其右转发节点对应的接口;若该节点的iif_list中的接口对应其的右转发节点,则向其左转发节点对应的接口发送change报文,并将iif_list中的接口更新为其左转发节点对应的接口;
步骤502.中间节点若接收到change报文,判断发送该change报文到本中间节点的接口是否与iif_list中的接口相同,若不相同则将此接口加入到oif_list中,若相同则删除iif_list中对应的该接口,并判断iif_list是否为空,若不为空则沿change报文的发送来的方向返回done报文直到初始change报文的发送节点,故障处理成功,若为空则进入步骤503;
步骤503.若发送该change报文到本中间节点的接口为本中间节点的左转发节点对应的接口,则该中间节点向其右转发节点对应的接口转发change报文,并将iif_list中的接口更新为其右转发节点对应的接口;若发送该change报文到本中间节点的接口为本中间节点的右转发节点对应的接口,则该中间节点向其左转发节点对应的接口转发change报文,并将iif_list中的接口更新为其左转发节点对应的接口;
步骤504.若该中间节点的第一转发树路径和第二转发树路径对应的接口都不能成功发射change报文,则沿change报文的发送来的方向返回exit报文直到初始change报文的发送节点,故障处理失败;
步骤505.若故障节点或其上游节点检测到故障处理失败,删除对应的oif_list中的输出接口,并判断oif_list中是否还有其他接口,若有则不进行处理,若没有则向其iif_list中的接口发送prune报文,之后删除iif_list中的接口;
步骤506.中间节点接收到prune报文,删除oif_list中发送该prune报文的输入接口;
步骤507.检查oif_list表中是否还有接口存在,若有则不再转发prune报文,若oif_list已经为空则转发prune报文至iif_list中的接口,之后删除iif_list中相应的接口。
本发明的有益效果是,通过上述组播树组建及故障恢复方法,由于在网络中建立两棵不同的转发树,网络中节点通过动态加入的方式组建一棵以组播源为根的单点到多点的组播树,组播通信时若发生某节点或某链路故障时,通过预先建立的两棵不同的转发树路径,可以快速组建新的组播树,有效减少组播故障恢复时间。
附图说明
图1是本发明实施例网络逻辑拓扑图。
图2是本发明实施例分配DFS序号和glpv值后的网络逻辑拓扑示意图。
图3是本发明实施例网络节点逻辑分层示意图。
图4是本发明实施例网络各节点到源点的第一转发树路径示意图。
图5是本发明实施例网络各节点到源点的第二转发树路径示意图。
图6是本发明实施例成功组建的组播转发树示意图。
图7是本发明实施例节点12发送prune报文后的组播转发树示意图。
图8是本发明实施例节点5故障后组建的组播转发树示意图。
图9是本发明实施例节点7故障后组建的组播转发树示意图。
具体实施方式
下面结合实施例及附图,详细描述本发明的技术方案。
本发明组播树组建及故障恢复方法中,首先以组播源点为根节点,利用DFS遍历2连接网络,遍历时为网络中各节点分发DFS序号,并计算各节点的全局低点值glpv(x),然后每个节点根据设定的规则计算其自己的势值pot(x),并根据规则计算各节点所属节点层,再根据节点中数据转发方向的选择规则,组建两棵不同的到源节点的转发树,最后网络中各组播目的节点通过转发树向源节点方向发送加入消息,组建组播树;若某节点检测到通过该转发树的上游节点发生故障,则该节点的数据输入接口更换为另一颗转发树的上游节点。
实施例
本发明实施例中网络逻辑拓扑图参见图1,本发明实施例中分配DFS序号和glpv值后的网络逻辑拓扑示意图参见图2,本发明实施例中网络节点逻辑分层示意图参见图3,本发明实施例中网络各节点到源点的第一转发树路径示意图参见图4,本发明实施例中网络各节点到源点的第二转发树路径示意图参见图5,本发明实施例中成功组建的组播转发树示意图参见图6。本实施例的组播树组建及故障恢复方法,其具体过程如下:
步骤1.以组播源点为根节点,利用DFS(深度优先搜索)遍历2连接网络,遍历时为网络中各节点分发DFS序号,并计算各节点的全局低点值glpv(x);
这里,DFS序号为遍历过程中各节点遍历的先后顺序号,所述节点的全局低点值glpv(x)指某节点通过贯穿一系列节点所能达到的最小DFS序号即为该节点的全局低点值glpv(x),即glpv(x)=min(DFS序号);如图2所示,图中实线箭头方向为DFS遍历的路径,节点旁的序号是为节点分发的DFS序号,括号里的值为每个节点的glpv值(全局低点值),全局低点值即节点通过贯穿一系列节点所能达到的最小DFS序号,例如2(1)表示此节点的DFS序号为2,此节点能到达网络中的节点的最小DFS序号为1;7(4)表示此节点的DFS序号为7,此节点所能到达的网络中的节点的最小DFS序号为4(通过7-8-4路径到达)。
步骤2.每个节点根据设定的规则计算其自己的势值pot(x),并根据规则计算各节点所属节点层;
这里,节点层包括odd层和even层,其计算势值pot(x)和计算各节点所属节点层的具体规则为:源节点初始化势值为0,初始化所属节点层为odd层,再判断节点x的全局低点值glpv(x)是否小于其DFS的双亲节点p(x)的势值pot(p(x)),若小于则节点x的势值pot(x)等于其DFS的双亲节点p(x)的势值pot(p(x)),且该节点x所属节点层与其DFS双亲节点相同,若不小于则节点x的势值pot(x)等于其DFS的双亲节点p(x)的DFS序号dfs(p(x)),且该节点x所属节点层与其DFS双亲节点不同。如图3所示,节点1初始化势值pot(x)为0,将其划分到odd层,节点1将自己的势值和所属层发送到它的孩子节点2;由于glpv(2)=1,根据节点分层规则,所有全局低点值glpv(x)为1的节点将放在紧挨着源节点的下一层,因此将节点2划分到even层,其势值pot(2)为1(节点1的DFS序号),且节点2将它的势值发送到所有它的孩子节点;节点3的glpv(3)=1和节点4的glpv(4)=1,根据规则,将节点3和节点4划分到与节点2相同的even层;节点4的势值Pot(4)为1,并将其转发到它的孩子节点5;由于glpv(5)=2大于pot(4)=1,节点5划分到节点4的下一层odd层,且其势值pot(5)=4;glpv(6)=3小于pot(5)=4,则将节点6划分到与节点5相同的层odd层,节点6的势值pot(6)=pot(5)=4;节点7接收到双亲节点5发送的势值,由于glpv(7)=4等于pot(5)=4,则将节点7划分到even层,节点7的势值pot(7)=dfs(5)=5;节点8的全局低点值glpv(8)=4小于pot(7)=5,则节点8与节点7划分到同一层,pot(8)=pot(7)=5;glpv(9)=7大于pot(8)=5,则节点9划分到odd层。节点10和11划分到相同的层odd层;节点12的全局低点值glpv(12)=8等于pot(11)=8,则将节点12划分到even层。
步骤3.根据节点中数据转发方向的选择规则,组建两棵不同的到源节点的转发树;
这里,其选择规则为:若节点x在even层,则节点x选择其DFS双亲节点p(x)为左转发节点,为第一转发树的路径,节点x选择其全局低点邻居glpn(x)为右转发节点,为第二转发树的路径;若节点x在odd层,则节点x选择其全局低点邻居glpn(x)为左转发节点,为第一转发树的路径,节点x选择其DFS双亲节点p(x)为右转发节点,为第二转发树的路径;其中,全局低点邻居指节点x到达其全局低点路径中的下一跳节点。如图4和图5,第一转发树的路径选择为:如图3中,根据规则,even层的节点2、3、4、7、8、12分别选择它们的双亲节点为其左转发路径节点,分别对应节点为1、2、3、5、7、11(如节点2的左转发节点为节点1,节点3的左转发节点为节点2);odd层的节点5、6、9、10、11的左路径转发节点为其全局低点邻居,分别对应节点为2、3、10、7、7(如节点9的左路径转发节点为10、节点10对应节点7、节点11对应节点7),则得到第一转发树路径如图4。第二转发树的路径选择为:根据规则,even层的节点2、3、4、7、8、12分别选择它们的全局低点邻居节点为其右路径转发节点,分别对应节点为3、4、1、8、4、8;odd层的节点5、6、9、10、11的右路径转发节点为它们的双亲节点,分别对应节点为4、5、8、9、9,则得到第二转发树路径如图5。
步骤4.网络中各组播目的节点通过转发树向源节点方向发送加入消息,组建组播树;
这里,组建组播树的方法为:每个中间节点设置两个组播表项,包括组播数据输入接口列表iif_list和组播数据输出接口列表oif_list,然后由组播目的节点g沿第一转发树向源节点方向发送加入报文,当中间节点x收到加入报文后,将给其发送加入报文的节点接口添加到oif_list中,并检查该中间节点x的iif_list是否为空,若为空则将加入报文转发到节点x的左转发节点,并添加该左转发节点的接口到iif_list中,若不为空则沿加入报文的发送来的方向返回success报文,若加入报文一直转发到达源节点,则由源节点沿加入报文的发送来的方向返回success报文,在加入报文向上游节点发送过程中,若某个中间节点检测到第一转发树的上游节点或链路是否发生故障,则将该加入报文转发到该中间节点的右转发节点,若检测到第二转发树的上游节点或链路也发生故障,则沿加入报文的发送来的方向返回failure报文,若中间节点x接收到failure报文,则将其转发至oif_list中的各接口,并删除iif_list和oif_list中的相应接口,组播目的节点若接收到success报文则成功加入组播树,若接收到failure报文则加入组播树失败,若组播目的节点不再需要接收组播报文,则沿组播树上游方向发送prune报文,中间节点接收到prune报文,删除oif_list中发送该prune报文的输入接口,检查oif_list表中是否还有接口存在,若有则不再转发prune报文,若oif_list已经为空则转发prune报文至iif_list中的接口,之后删除iif_list中相应的接口。本例中根据组播树的组建规则,网络中有组成员节点4、8、9、12,则节点4、8、9、12分别沿第一转发树的转发节点方向发送加入报文;在网络节点和链路没有故障的情况下,组建加入报文沿第一转发树发送至源节点1,源节点1返回success报文,success报文沿各节点加入报文接收的方向转发至各组播组成员,则成功组建组播树如图6所示,组播源节点1可以沿组播路径树发送数组播数据到各组播组成员。如果在加入报文发送过程中,某节点检测到第一路径树上游链路或节点发生故障,则此节点沿第二路径树的转发节点方向发送加入报文;此处选择第一或第二路径树发送加入报文的规则是:某节点接收到加入报文,如果第一路径树上链路和节点正常,则沿第一路径树转发加入报文;如第一路径树链路或节点故障,则选择第二路径树转发加入报文;如果第一和第二路径树都不能成功发送加入报文,则返回failure报文至加入报文接收的方向,表示组建组播树失败,须等待新的路径树的重新组建。在组播树组建成功后,如组播目的节点不再想接收组播数据,则沿组播数据接收的方向发送prune报文,如图6所示组播组成员节点12,发送prune报文至节点11,节点11删除oif_list中prune报文接收的接口,删除后发现组播路径下游不再有组成员时,则转发prune报文至上游节点7,且节点11删除iif_list中相应接口,节点7接收到prune报文,首先删除oif_list中prune报文接收的接口,节点7检测到自己的oif_list中还有组播组成员,则不再转发prune报文,节点12发送prune报文后的组播转发树如图7所示。
步骤5.若某节点检测到通过该转发树的上游节点发生故障,则该节点的数据输入接口更换为另一颗转发树的上游节点;
整个故障处理的具体方式为:若某节点检测到其上游节点发生故障,若该节点的iif_list中的接口对应其的左转发节点,则向其右转发节点对应的接口发送change报文,并将iif_list中的接口更新为其右转发节点对应的接口;若该节点的iif_list中的接口对应其的右转发节点,则向其左转发节点对应的接口发送change报文,并将iif_list中的接口更新为其左转发节点对应的接口;中间节点若接收到change报文,判断发送该change报文到本中间节点的接口是否与iif_list中的接口相同,若不相同则将此接口加入到oif_list中,若相同则删除iif_list中对应的该接口,并判断iif_list是否为空,若不为空则沿change报文的发送来的方向返回done报文直到初始change报文的发送节点,故障处理成功,若为空且发送该change报文到本中间节点的接口为本中间节点的左转发节点对应的接口,则该中间节点向其右转发节点对应的接口转发change报文,并将iif_list中的接口更新为其右转发节点对应的接口;若iif_list为空且发送该change报文到本中间节点的接口为本中间节点的右转发节点对应的接口,则该中间节点向其左转发节点对应的接口转发change报文,并将iif_list中的接口更新为其左转发节点对应的接口;若iif_list为空且该中间节点的第一转发树路径和第二转发树路径对应的接口都不能成功发射change报文,则沿change报文的发送来的方向返回exit报文直到初始change报文的发送节点,故障处理失败;若某节点检测到其下游节点发生故障,则删除对应的oif_list中的输出接口,并判断oif_list中是否还有其他接口,若有则不进行处理,若没有则向其iif_list中的接口发送prune报文,之后删除iif_list中的接口;中间节点接收到prune报文后,删除oif_list中发送该prune报文的输入接口,并检查oif_list表中是否还有接口存在,若有则不再转发prune报文,若oif_list已经为空则转发prune报文至iif_list中的接口,之后删除iif_list中相应的接口。
本例中,图6所示的组播转发树中如节点5发生故障,下游节点7检测到上游节点失败后,删除iif_list中相应接口,并发送change报文到第二转发树路径中的上游节点,即向节点8发送change报文,节点8检测到change报文的接收接口与iif_list中接口相同,则删除iif_list中对应的此接口,并将此接口添加到oif_list中,再次检查iif_list为空,则转发change报文,由于change报文的接收接口为节点8左转发节点对应的接口,因此将change报文转发至节点8右转发(第二路径树)节点对应的接口,同时将此右转发节点对应的接口添加到iif_list中,此时将change报文转发至节点4,节点4接收到change报文后,检测iif_list中不为空,则不再转发change报文,同时沿change报文的发送来的方向返回done报文,done报文将一直转发至节点7,此时节点5故障后组建的组播转发树组建成功,故障节点5的上游节点2检测到下游节点失败后,删除oif_list中节点5对应的接口,同时检测到oif_list中有接口存在,则不再做其它动作,节点5故障后组建的组播转发树如图8所示。
如果节点7发生故障,其下游节点8、10、11检测到故障后,将分别做相应的恢复工作:节点8检测到上游节点故障后,删除iif_list中相应的接口,并发送change报文至其右转发路径(第二转发树)接口,同时将第二转发树的路径接口添加到iif_list中,change报文发送至节点4,节点4将change报文的入接口加入到oif_list中,由于节点4的iif_list不为空,则不再转发change报文,并返回done报文至节点8,节点10检测到上游节点故障后,删除iif_list中相应接口,并发送change报文到第二转发树的路径接口,如oif_list中有此第二转发树路径接口,须删除oif_list中此接口,且将第二转发树的路径接口添加到iif_list中;节点9接收change报文后,将change的入接口添加到oif_list中,由于节点9的iif_list为空,则转发change报文至第二转发树的路径接口,并将其添加到iif_list中,节点8将接收到change报文,节点8将change报文的入接口添加到oif_list中,由于节点8的iif_list不为空,则不再转发change报文,并返回done报文至节点9,节点11检测到上游节点故障后,删除iif_list中相应接口,并发送change报文至第二转发树的路径接口,同时将第二转发树的路径接口添加到iif_list中;节点9接收change报文,将change报文的入接口添加到oif_list中,节点9检查自己的iif_list不为空,则不再转发change报文,并返回done报文至节点11。故障节点7的下游节点8、10、11,通过第二转发树建立了新的组播转发树,组播数据可以通过新的组播转发树将组播数据发送到受故障影响的各组播目的节点8、9、12。节点10将会检查到自己的oif_list为空,则向新建立的组播路径上游节点发送prune报文,并删除iif_list中接口。节点9将接收prune报文,删除prune报文的输入接口,同时检测到自己的iif_list不为空,则不再转发prune报文。节点7故障后,通过故障处理的具体方式,得到的节点7故障后组建的组播转发树示意图如图8所示。
综上所述,本发明中,通过建立两棵不同的到源节点的转发树,网络中各节点可以通过不同路径到达源节点;组播组成员各节点通过已经建立的两棵转发树的转发路径,发送join报文快速组建一棵组播转发树,同时网络中组成员可以动态的加入或退出组播树;在组播树中单节点或单链路发生故障后,能通过预先建立的两棵转发树,可以快速的组建新的组播转发路径,有效减少组播故障对组成员节点的影响。
Claims (9)
1.组播树组建及故障恢复方法,其特征在于,包括以下步骤:
步骤1.以组播源点为根节点,利用DFS(深度优先搜索)遍历2连接网络,遍历时为网络中各节点分发DFS序号,并计算各节点的全局低点值glpv(x);
步骤2.每个节点根据设定的规则计算其自己的势值pot(x),并根据规则计算各节点所属节点层;
步骤3.根据节点中数据转发方向的选择规则,组建两棵不同的到源节点的转发树;
步骤4.网络中各组播目的节点通过转发树向源节点方向发送加入消息,组建组播树;
步骤5.若某节点检测到通过该转发树的上游节点发生故障,则该节点的数据输入接口更换为另一棵转发树的上游节点。
2.如权利要求1所述的组播树组建及故障恢复方法,其特征在于,步骤1所述DFS序号为遍历过程中各节点遍历的先后顺序号,所述节点的全局低点值glpv(x)指某节点通过贯穿一系列节点所能达到的最小DFS序号即为该节点的全局低点值glpv(x),即glpv(x)=min(DFS序号)。
3.如权利要求1所述的组播树组建及故障恢复方法,其特征在于,步骤2中,所述节点层包括odd层和even层。
4.如权利要求3所述的组播树组建及故障恢复方法,其特征在于,步骤2所述计算势值pot(x)和计算各节点所属节点层的具体规则为:
a.源节点初始化势值为0,初始化所属节点层为odd层;
b.判断节点x的全局低点值glpv(x)是否小于其DFS的双亲节点p(x)的势值pot(p(x)),若小于则进入c步骤,若不小于则进入d步骤;
c.节点x的势值pot(x)等于其DFS的双亲节点p(x)的势值pot(p(x)),且该节点x所属节点层与其DFS双亲节点相同;
d.节点x的势值pot(x)等于其DFS的双亲节点p(x)的DFS序号dfs(p(x)),且该节点x所属节点层与其DFS双亲节点不同。
5.如权利要求3或4所述的组播树组建及故障恢复方法,其特征在于,步骤3所述选择规则为:
e.若节点x在even层,则节点x选择其DFS双亲节点p(x)为左转发节点,为第一转发树的路径,节点x选择其全局低点邻居glpn(x)为右转发节点,为第二转发树的路径;
f.若节点x在odd层,则节点x选择其全局低点邻居glpn(x)为左转发节点,为第一转发树的路径,节点x选择其DFS双亲节点p(x)为右转发节点,为第二转发树的路径。
6.如权利要求5所述的组播树组建及故障恢复方法,其特征在于,所述全局低点邻居指节点x到达其全局低点路径中的下一跳节点。
7.如权利要求5所述的组播树组建及故障恢复方法,其特征在于,步骤4所述组建组播树的方法为:
步骤401.每个中间节点设置两个组播表项,包括组播数据输入接口列表iif_list和组播数据输出接口列表oif_list;
步骤402.组播目的节点g沿第一转发树向源节点方向发送加入报文;
步骤403.中间节点x收到加入报文后,将给其发送加入报文的节点接口添加到oif_list中,并检查该中间节点x的iif_list是否为空,若为空则进入步骤404,若不为空则沿加入报文的发送来的方向返回success报文;
步骤404.将加入报文转发到节点x的左转发节点,并添加该左转发节点的接口到iif_list中;
步骤405.若加入报文一直转发到达源节点,则由源节点沿加入报文的发送来的方向返回success报文;
步骤406.在加入报文向上游节点发送过程中,若某个中间节点检测到第一转发树的上游节点或链路发生故障,则将该加入报文转发到该中间节点的右转发节点,若检测到第二转发树的上游节点或链路也发生故障,则沿加入报文的发送来的方向返回failure报文;
步骤407.若中间节点x接收到failure报文,则将其转发至oif_list中的各接口,并删除iif_list和oif_list中的相应接口;
步骤408.组播目的节点若接收到success报文则成功加入组播树,若接收到failure报文则加入组播树失败。
8.如权利要求7所述的组播树组建及故障恢复方法,其特征在于,步骤4所述组建组播树的方法中还包括以下步骤:
步骤409.若组播目的节点不再需要接收组播报文,则沿组播树上游方向发送prune报文;
步骤410.中间节点接收到prune报文,删除oif_list中发送该prune报文的输入接口;
步骤411.检查oif_list表中是否还有接口存在,若有则不再转发prune报文,若oif_list已经为空则转发prune报文至iif_list中的接口,之后删除iif_list中相应的接口。
9.如权利要求7所述的组播树组建及故障恢复方法,其特征在于,步骤5包括以下步骤:
步骤501.若某节点检测到其上游节点发生故障,若该节点的iif_list中的接口对应其的左转发节点,则向其右转发节点对应的接口发送change报文,并将iif_list中的接口更新为其右转发节点对应的接口;若该节点的iif_list中的接口对应其的右转发节点,则向其左转发节点对应的接口发送change报文,并将iif_list中的接口更新为其左转发节点对应的接口;
步骤502.中间节点若接收到change报文,判断发送该change报文到本中间节点的接口是否与iif_list中的接口相同,若不相同则将此接口加入到oif_list中,若相同则删除iif_list中对应的该接口,并判断iif_list是否为空,若不为空则沿change报文的发送来的方向返回done报文直到初始change报文的发送节点,故障处理成功,若为空则进入步骤503;
步骤503.若发送该change报文到本中间节点的接口为本中间节点的左转发节点对应的接口,则该中间节点向其右转发节点对应的接口转发change报文,并将iif_list中的接口更新为其右转发节点对应的接口;若发送该change报文到本中间节点的接口为本中间节点的右转发节点对应的接口,则该中间节点向其左转发节点对应的接口转发change报文,并将iif_list中的接口更新为其左转发节点对应的接口;
步骤504.若该中间节点的第一转发树路径和第二转发树路径对应的接口都不能成功发送change报文,则沿change报文的发送来的方向返回exit报文直到初始change报文的发送节点,故障处理失败;
步骤505.若某节点检测到其下游节点发生故障,则删除对应的oif_list中的输出接口,并判断oif_list中是否还有其他接口,若有则不进行处理,若没有则向其iif_list中的接口发送prune报文,之后删除iif_list中的接口;
步骤506.中间节点接收到prune报文,删除oif_list中发送该prune报文的输入接口;
步骤507.检查oif_list表中是否还有接口存在,若有则不再转发prune报文,若oif_list已经为空则转发prune报文至iif_list中的接口,之后删除iif_list中相应的接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104347239A CN103178976A (zh) | 2011-12-22 | 2011-12-22 | 组播树组建及故障恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104347239A CN103178976A (zh) | 2011-12-22 | 2011-12-22 | 组播树组建及故障恢复方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103178976A true CN103178976A (zh) | 2013-06-26 |
Family
ID=48638608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104347239A Pending CN103178976A (zh) | 2011-12-22 | 2011-12-22 | 组播树组建及故障恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103178976A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105490935A (zh) * | 2015-12-08 | 2016-04-13 | 国网浙江省电力公司宁波供电公司 | 多点间路径分析方法及系统 |
CN105610708A (zh) * | 2014-10-31 | 2016-05-25 | 杭州华三通信技术有限公司 | 一种trill网络中组播frr的实现方法和rb设备 |
CN108414693A (zh) * | 2018-03-19 | 2018-08-17 | 翼捷安全设备(昆山)有限公司 | 气体信息监测系统及其方法 |
CN109428750A (zh) * | 2017-08-29 | 2019-03-05 | 北京华为数字技术有限公司 | 一种点到多点业务传输方法和装置 |
CN110999230A (zh) * | 2017-10-18 | 2020-04-10 | 华为技术有限公司 | 传输组播报文的方法、网络设备和系统 |
US11582053B2 (en) | 2018-06-30 | 2023-02-14 | Huawei Technologies, Co., Ltd. | Data multicast implementation method, apparatus, and system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6047331A (en) * | 1997-02-19 | 2000-04-04 | Massachusetts Institute Of Technology | Method and apparatus for automatic protection switching |
CN1859156A (zh) * | 2005-07-15 | 2006-11-08 | 华为技术有限公司 | 链路故障的恢复方法 |
US7738365B2 (en) * | 2006-11-02 | 2010-06-15 | Polytechnic Institute Of New York University | Determining rerouting information for double-link failure recovery in an internet protocol network |
US7801031B2 (en) * | 2006-11-02 | 2010-09-21 | Polytechnic Institute Of New York University | Rerouting for double-link failure recovery in an internet protocol network |
-
2011
- 2011-12-22 CN CN2011104347239A patent/CN103178976A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6047331A (en) * | 1997-02-19 | 2000-04-04 | Massachusetts Institute Of Technology | Method and apparatus for automatic protection switching |
CN1859156A (zh) * | 2005-07-15 | 2006-11-08 | 华为技术有限公司 | 链路故障的恢复方法 |
US7738365B2 (en) * | 2006-11-02 | 2010-06-15 | Polytechnic Institute Of New York University | Determining rerouting information for double-link failure recovery in an internet protocol network |
US7801031B2 (en) * | 2006-11-02 | 2010-09-21 | Polytechnic Institute Of New York University | Rerouting for double-link failure recovery in an internet protocol network |
Non-Patent Citations (2)
Title |
---|
GIRIDHAR JAYAVELU, ET AL.: "Maintaining Colored Tree for Disjoint Multipath Routing Under Node Failure", 《IEEE/ACM TRANSACTIONS ON NETWORKING》 * |
孙伟,等: "基于SimCT的多播路由及故障恢复研究", 《电信科学》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105610708A (zh) * | 2014-10-31 | 2016-05-25 | 杭州华三通信技术有限公司 | 一种trill网络中组播frr的实现方法和rb设备 |
US10523468B2 (en) | 2014-10-31 | 2019-12-31 | Hewlett Packard Enterprise Development Lp | Traffic forwarding |
CN105490935A (zh) * | 2015-12-08 | 2016-04-13 | 国网浙江省电力公司宁波供电公司 | 多点间路径分析方法及系统 |
CN109428750A (zh) * | 2017-08-29 | 2019-03-05 | 北京华为数字技术有限公司 | 一种点到多点业务传输方法和装置 |
CN109428750B (zh) * | 2017-08-29 | 2021-10-26 | 北京华为数字技术有限公司 | 一种点到多点业务传输方法和装置 |
CN110999230A (zh) * | 2017-10-18 | 2020-04-10 | 华为技术有限公司 | 传输组播报文的方法、网络设备和系统 |
CN108414693A (zh) * | 2018-03-19 | 2018-08-17 | 翼捷安全设备(昆山)有限公司 | 气体信息监测系统及其方法 |
US11582053B2 (en) | 2018-06-30 | 2023-02-14 | Huawei Technologies, Co., Ltd. | Data multicast implementation method, apparatus, and system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103460647B (zh) | 用于操作网络节点的技术 | |
US8761044B2 (en) | Selection of multicast router interfaces in an L2 switch connecting end hosts and routers, which is running IGMP and PIM snooping | |
CN101656679B (zh) | 一种组播快速收敛方法、路由器和通信系统 | |
US20150312138A1 (en) | Bicasting using non-congruent paths in a loop-free routing topology having routing arcs | |
EP3340550B1 (en) | Service message multicast method and device | |
CN109150580B (zh) | 协议无关多播加入熵 | |
EP2109260A1 (en) | Multicast method and multicast routing method | |
CN100525312C (zh) | Mac帧转发的方法及设备 | |
CN104038417A (zh) | 应用于mpls网络的服务实例 | |
CN103795626B (zh) | 组播快速保护倒换的方法与装置 | |
CN106209622A (zh) | 一种基于sdn的组播方法 | |
CN101645790B (zh) | 一种组播分发树的切换方法、装置和系统 | |
CN103178976A (zh) | 组播树组建及故障恢复方法 | |
CN103051536A (zh) | 一种二层冗余链路的快速组播切换方法 | |
CN104767680B (zh) | 路由快速切换的方法和装置 | |
US20140226525A1 (en) | Safe Multicast Distribution with Predictable Topology Changes | |
CN103209134B (zh) | 一种组播转发的方法和设备 | |
WO2013053276A1 (zh) | 一种网络路由收敛处理方法和装置 | |
CN104980355A (zh) | 一种sdn环境下的源端可控组播数据传输方法及系统 | |
CN102137000A (zh) | 一种建立切换组播分发树的方法、装置及系统 | |
CN101682552A (zh) | 具有串连节点的网络中的故障通知 | |
CN101702689A (zh) | 组播业务数据负载均衡的传输控制方法及接入设备 | |
CN103609063B (zh) | 协议无关组播最后一跳路由器发现的方法及设备 | |
CN101163103A (zh) | 一种实现快速重路由的方法 | |
CN104937878A (zh) | 在单向隧道存在的情况下建立协议无关多播树的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130626 |