组播故障恢复方法和组播路由器的制作方法

文档序号:7962303阅读:308来源:国知局
专利名称:组播故障恢复方法和组播路由器的制作方法
技术领域
本发明涉及组播技术领域,具体涉及组播故障恢复方法和组播路由器。
背景技术
在组播分发网络中,若有两台或两台以上的组播路由器连接到同一共享网段,为了保证网络中不出现组播报文重复复制的情况,需要通过协商选举机制在该多台组播路由器之间选举出一台组播路由器作为指定路由器(DR,Designated Router),剩余的组播路由器作为备份DR。DR向上游方向的组播源发送协议无关组播(PIM,Protocol Independent Multicast)加入(Join)消息,以申请从上游的组播源牵引组播数据流。
DR的选举机制是基于PIM探测(hello)报文来进行的。图1是现有的DR选举的流程图,如图1所示,其具体步骤如下步骤101共享同一网段的各组播路由器上电,各组播路由器建立自身与组播源之间的最短上行反向路径(RP,Reverse Path)。
步骤102各组播路由器每隔一个预定周期向与自身共享同一网段的其它组播路由器发送PIM hello报文,该报文中携带发送者的IP地址。
步骤103各组播路由器收到用户发来的IGMP报告(Report),根据该IGMP报告,建立IGMP组播组(Group)。
步骤104各组播路由器根据与自身共享同一网段的其它组播路由器的IP地址以及自身的IP地址,选举IP地址最大的组播路由器作为DR,剩余组播路由器作为备份DR。
步骤105选举为DR的组播路由器将IGMP Group的出端口同步到自身的出端口,并通过自身建立的最短上行RP向组播源发送PIM加入(Join)消息,以申请从组播源牵引组播流。
当组播路由器上电后,组播路由器会每隔一个周期向与自身共享同一网段的其它组播路由器发送一次PIM hello报文。PIM hello报文的默认周期为30秒,备份DR若在3.5倍的hello周期内没收到DR发来的hello报文,则自己升级为DR。PIM hello报文的最短周期可以设置为1秒,因此,当DR发生故障或者DR与备份DR之间的共享链路发生故障时,备份DR切换为DR所需的最短时间为3.5秒。
另外,由于PIM路由协议规定DR需要每隔5秒进行一次反向路径转发(RPF,Reverse Path Forwarding)端口的选举,因此,若DR的最短上行RP发生故障,则要等到DR进行最新一次的RPF端口选举以后,新的最短上行RP才能选举出来,然后DR重新通过新的最短上行PR向组播源发送PIM加入消息,以恢复组播流的牵引。可看出DR的上行链路故障会造成DR的下游用户在5秒左右收不到组播流。
综上所述,现有技术中在组播路由器上电后,共享同一网段的组播路由器之间通过PIM hello报文进行通信,由于PIM hello报文的周期较长,导致当DR发生故障或者DR与备份DR之间的共享链路发生故障时,备份DR切换为DR的最短时长为3.5秒,这无法满足IP电视(IPTV)等实时业务的实时性要求;另外,当DR的上行RP发生故障时,最长会导致组播业务中断5秒以上,同样无法满足实时业务的需求。

发明内容
有鉴于此,本发明提供一种组播故障恢复方法,以提高发现组播网络故障的速度,从而提高组播流恢复速度,有效满足实时业务需求;本发明同时提供一种组播路由器,以提高组播流恢复速度。
为达到上述目的,本发明的技术方案是这样实现的一种组播网络故障恢复方法,应用在至少包括共享同一网段的一台DR及一台备份DR的组播网络中,在共享同一网段的组播路由器之间建立双向转发检测(BFD)会话通道,该方法包括备份DR根据BFD会话检测到组播网络发生故障,将自身升级为DR。
所述备份DR根据BFD会话检测到组播网络发生故障包括备份DR在预定BFD报文周期来临时,未收到DR发来的BFD报文。
所述备份DR将自身升级为DR之后进一步包括原DR检测到自身故障恢复,将自身由DR变为备份DR。
所述组播网络故障为DR和备份DR之间的共享链路发生故障,所述备份DR将自身升级为DR之后进一步包括原DR和原备份DR之间的共享链路故障恢复,原DR和原备份DR通过BFD报文协商出新DR。
所述备份DR检测到组播网络发生故障之前进一步包括DR收到自身上行RP端口发来的RP故障指示,停止向备份DR发送BFD报文。
所述备份DR根据BFD会话检测到组播网络发生故障包括DR收到自身上行RP端口发来的RP故障指示,向备份DR发送携带RP故障指示的BFD报文,同时将自身由DR变为备份DR,备份DR收到DR发来的RP故障指示,判定组播网络发生故障。
所述备份DR检测到组播网络发生故障之前进一步包括各组播路由器上电,向与自身共享同一网段的其它组播路由器发送携带DR选举信息的BFD会话,各组播路由器根据与自身共享同一网段的其它组播路由器发来的DR选举信息以及自身的DR选举信息,选举一个组播路由器作为DR。
一种组播路由器,该组播路由器包括BFD会话模块和DR选举模块,其中,BFD会话模块,用于在上电后,与自身共享同一网段的其它组播路由器建立BFD会话,在自身为备份DR时,若根据BFD会话检测到组播网络发生故障,则向DR选举模块发送组播网络故障指示;DR选举模块,在收到BFD会话模块发来的组播网络故障指示后,选举自身为DR。
所述BFD会话模块进一步用于,在自身为DR时,若检测到组播网络发生故障,则停止与备份DR间的BFD会话或向备份DR发送携带组播网络故障指示的BFD会话。
所述BFD会话模块包括BFD会话收发模块和故障检测模块,其中BFD会话收发模块,用于在上电后,与自身共享同一网段的其它组播路由器间建立BFD会话,当自身为DR时,若收到故障检测模块发来的故障指示,则停止与其它组播路由器间的BFD会话或将组播网络故障指示通过BFD会话转发给与自身共享同一网段的其它组播路由器;当自身为备份DR时,若在预定BFD会话周期来临时,未收到DR发来的BFD会话或收到组播网络故障指示,则向DR选举模块发送组播网络故障指示;故障检测模块,用于在自身DR时,若检测到自身发生故障或收到自身的上行RP端口发来的故障指示,则向BFD会话收发模块发送故障指示。
所述BFD会话模块进一步用于,将自身的DR选举信息通过BFD会话发送给与自身共享同一网段的组播路由器,并将其它组播路由器通过BFD会话发来的DR选举信息发送给DR选举模块;且,所述DR选举模块进一步用于,根据自身的DR选举信息和BFD会话模块发来的与自身共享同一网段的其它组播路由器的DR选举信息,选举一个组播路由器作为DR。
与现有技术相比,本发明在共享同一网段的组播路由器之间建立BFD会话,备份DR若在预定BFD报文周期来临时未收到DR发来的BFD报文,或收到DR发来的携带RP故障指示的BFD报文,则将自身升级为DR。由于BFD报文的发送周期可达到毫秒级,所以当DR自身或DR的上行RP发生故障时,或DR与备份DR之间的共享链路发生故障时,备份DR会在较短时间内检测到组播网络发生故障,立即将自身升级为DR,大大降低了组播流的中断时间,提高了组播流恢复速度,满足了实时业务的实行性需求。


图1为现有的DR选举流程图;
图2为本发明实施例提供的DR选举流程图;图3为本发明实施例提供的RP故障处理流程图;图4为本发明实施例提供的组播路由器的结构示意图;图5为本发明实施例提供的BFD会话模块的组成示意图。
具体实施例方式
由于双向转发检测(BFD,Bidirectional Forwarding Detection)协议是通过定期发送基于用户数据报协议(UDP,User Datagram Protocol)层的故障检测数据包,不但可以检测和判断传输链路、光接口和设备端口的中断故障,还可检测和判断传输层、链路层、IP层和应用层存在的误码、丢包等软故障。目前BFD的缺省检测周期为10ms,若连续3次检测到故障就判定发生故障,即可在30ms内检测和确定故障。因此,本发明的核心思想是共享同一网段的组播路由器之间建立BFD会话,若备份DR检测到与DR的BFD会话中断,则将自身升级为DR。
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图2是本发明实施例提供的DR选举流程图,如图2所示,其具体步骤如下步骤201在共享同一网段的各组播路由器之间建立BFD会话通道。
步骤202共享同一网段的各组播路由器上电,每个组播路由器建立一条自身到组播源的最短上行RP,以用于从组播源牵引组播流。
步骤203共享同一网段的各组播路由器之间通过BFD会话通道建立BFD会话。
组播路由器上电后,会周期性地向与自身共享同一网段的其它组播路由器发送BFD报文,BFD报文携带发送该报文的组播路由器的IP地址,BFD报文的周期在10ms与几百ms之间。
步骤203各组播路由器根据用户发来的IGMP报告(Report),建立IGMP组播组(Group)。
步骤204各组播路由器根据与自身共享同一网段的其它组播路由器发来的BFD报文中包含的IP地址,选举IP地址最大的组播路由器为DR,则IP地址非最大的组播路由器为备份DR。
步骤205选举为DR的组播路由器将IGMP Group的出端口同步到自身的出端口,并通过自身建立的最短上行RP向组播源发送PIM加入消息,以申请从组播源牵引组播流。
在本发明中,各组播路由器之间也可通过PIM hello报文通知与自身共享同一网段的其它组播路由器自身的IP地址,即本发明可采用与现有技术同样的方法选举DR。
需要指出的是,在实际应用中,共享同一网段的组播路由器通常只有两个,因此,以下给出的实施例都以两个组播路由器共享同一网段为例。
以下给出本发明实施例提供的DR故障或共享链路故障的处理过程,其具体步骤如下步骤01备份DR在预定BFD报文周期来临时,未收到DR发来的BFD报文,则确定组播网络发生故障。
当DR发生故障时,DR将停止向备份DR发送BFD报文;当DR与备份DR之间的共享链路发生故障时,DR发送的BFD报文将无法到达备份DR,因此,这两种故障都会导致备份DR在预定BFD报文周期来临时,没有收到DR发来的BFD报文。
步骤02备份DR将自身升级为DR,并通过自身建立的最短上行RP向组播源发送PIM加入消息,以申请从组播源牵引组播流。
这里,当DR与备份DR之间的共享链路未发生故障时,DR与备份DR共享同一物理网段;当DR与备份DR之间的共享链路发生故障时,DR与备份DR分属不同的物理网段,此时DR将只能向属于自身物理网段的用户分发组播流,而无法向属于备份DR的物理网段的用户分发组播流。因此,当DR与备份DR之间的共享链路发生故障后,备份DR升级为DR,可使得与原备份DR同属一个物理网段的用户可从原备份DR获取组播流,避免了该部分用户的组播流中断,可以看出此时,原DR与原备份DR都充当了DR的角色。
进一步地,原DR在故障恢复后,会恢复向当前DR发送BFD报文,此时,为了保证组播流的连续分发,原DR可以充当备份DR的角色,由原备份DR继续充当DR的角色;当然,也可与现有技术一样,原DR继续充当DR的角色,而原备份DR收到原DR发来的BFD报文后,将自身恢复为备份DR。原DR与原备份DR之间的共享链路故障恢复后,原DR发送的BFD报文会到达原备份DR,原备份DR收到该BFD报文后,将自身由DR恢复为备份DR;或者,原DR与原备份DR之间的共享链路故障恢复后,原DR和原备份DR通过BFD报文协商出是由原DR继续作DR,还是由原备份DR继续作DR。
图3为本发明实施例提供的DR的上行RP发生故障的处理流程图,如图3所示,其具体步骤如下步骤301DR的上行RP发生故障,RP端口向DR发送RP故障指示。
步骤302DR收到该RP故障指示后,停止向备份DR发送BFD报文。
步骤303备份DR在预定BFD报文周期来临时,未收到DR发来的BFD报文,则确定组播网络发生故障。
在步骤302中,DR收到RP故障指示后,也可以不停止向备份DR发送BFD报文,而将RP故障指示携带在BFD报文中转发给备份DR,同时将自身由DR变为备份DR;同时,步骤303变为原备份DR接收原DR发来的携带RP故障指示的BFD报文,然后转至步骤304。
步骤304备份DR将自身升级为DR,并通过自身建立的最短上行RP向组播源发送PIM加入消息,以申请从组播源牵引组播流。
同样,原DR在自身的上行RP重新建立后,会恢复向当前DR发送BFD报文,当前DR收到该BFD报文后,根据预先约定,可以将自身恢复为备份DR,也可以继续充当DR,直至自身发生故障,再由原DR恢复充当DR。
图4是本发明实施例提供的组播路由器的结构示意图,如图4所示,其主要包括BFD会话模块41用于在上电后,每隔一个预定BFD报文周期向与自身共享同一网段的其它组播路由器发送BFD报文,在自身为备份DR时,若检测到在预定BFD报文周期来临时未收到DR发来的BFD报文或收到DR发来的携带RP故障指示的BFD报文,向DR选举模块42发送组播网络故障指示;在自身为DR时,若检测到自身故障,则停止向与自身共享同一网段的其它组播路由器发送BFD报文,若收到自身的上行RP端口发来的RP故障指示,则停止向与自身共享同一网段的其它组播路由器发送BFD报文或向与自身共享同一网段的其它组播路由器发送携带组播网络故障指示的BFD报文。
进一步地,BFD会话模块41用于,将自身的IP地址携带在BFD报文中,并将其它组播路由器发来的BFD报文中携带的IP地址发送给DR选举模块42。
DR选举模块42在收到BFD会话模块41发来的组播网络故障指示后,选举自身为DR。
进一步地,DR选举模块42用于,根据自身的IP地址和BFD会话模块41发来的与自身共享同一网段的其它组播路由器的IP地址,选举IP地址最大的组播路由器作为DR,将该DR信息发送给BFD会话模块41。
如图5所示,BFD会话模块41包括BFD会话收发模块411和故障检测模块412,其中BFD会话收发模块411用于在上电后,每隔一个预定BFD报文周期向与自身共享同一网段的其它组播路由器发送BFD报文,在自身为DR时,若收到故障检测模块412发来的DR故障指示,则停止向与自身共享同一网段的其它组播路由器发送BFD报文,若收到故障检测模块412发来的RP故障指示,则停止向与自身共享同一网段的其它组播路由器发送BFD报文或将组播网络故障指示携带在BFD报文中发送给与自身共享同一网段的其它组播路由器;当自身为备份DR时,若在预定BFD报文周期来临时,未收到DR发来的BFD报文或收到携带RP故障指示的BFD报文,则向DR选举模块42发送组播网络故障指示;故障检测模块412,用于在自身为DR时,若检测到自身发生故障,则向BFD会话收发模块411发送DR故障指示,若收到自身的上行RP端口发来的故障指示,则向BFD会话收发模块411发送RP故障指示。
需要指出的是,在本发明给出的实施例中,在选举DR时,是将IP地址最大的组播路由器选为DR,在实际应用中,也可将IP地址最小的组播路由器选为DR,或者,也可以根据其它预先设定的DR选举规则来选举DR。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种组播网络故障恢复方法,应用在至少包括一台指定路由器DR及一台备份DR的组播网络中,其特征在于,在共享同一网段的组播路由器之间建立双向转发检测BFD会话通道,该方法包括备份DR根据BFD会话检测到组播网络发生故障,将自身升级为DR。
2.如权利要求1所述的方法,其特征在于,所述备份DR根据BFD会话检测到组播网络发生故障包括备份DR在预定BFD会话周期来临时,未收到DR发来的BFD报文。
3.如权利要求2所述的方法,其特征在于,所述备份DR将自身升级为DR之后进一步包括原DR检测到自身故障恢复,将自身由DR变为备份DR。
4.如权利要求2所述的方法,其特征在于,所述组播网络故障为DR和备份DR之间的共享链路发生故障,所述备份DR将自身升级为DR之后进一步包括原DR和原备份DR之间的共享链路故障恢复,原DR和原备份DR通过BFD报文协商出新DR。
5.如权利要求2所述的方法,其特征在于,所述备份DR检测到组播网络发生故障之前进一步包括DR收到自身上行RP端口发来的上行反向路径RP故障指示,停止向备份DR发送BFD报文。
6.如权利要求1所述的方法,其特征在于,所述备份DR根据BFD会话检测到组播网络发生故障包括DR收到自身上行RP端口发来的RP故障指示,向备份DR发送携带RP故障指示的BFD报文,同时将自身由DR变为备份DR,备份DR收到DR发来的RP故障指示,判定组播网络发生故障。
7.如权利要求1所述的方法,其特征在于,所述备份DR检测到组播网络发生故障之前进一步包括各组播路由器根据其它组播路由器通过BFD会话发来的DR选举信息以及自身的DR选举信息,选举一个组播路由器作为DR。
8.一种组播路由器,其特征在于,该组播路由器包括BFD会话模块和DR选举模块,其中,BFD会话模块,用于在上电后,与自身共享同一网段的其它组播路由器建立BFD会话,在自身为备份DR时,若根据BFD会话检测到组播网络发生故障,则向DR选举模块发送组播网络故障指示;DR选举模块,在收到BFD会话模块发来的组播网络故障指示后,选举自身为DR。
9.如权利要求8所述的组播路由器,其特征在于,所述BFD会话模块进一步用于,在自身为DR时,若检测到组播网络发生故障,则停止与备份DR间的BFD会话或向备份DR发送携带组播网络故障指示的BFD会话。
10.如权利要求9所述的组播路由器,其特征在于,所述BFD会话模块包括BFD会话收发模块和故障检测模块,其中BFD会话收发模块,用于在上电后,与自身共享同一网段的其它组播路由器间建立BFD会话,当自身为DR时,若收到故障检测模块发来的故障指示,则停止与其它组播路由器间的BFD会话或将组播网络故障指示通过BFD会话转发给与自身共享同一网段的其它组播路由器;当自身为备份DR时,若在预定BFD会话周期来临时,未收到DR发来的BFD会话或收到组播网络故障指示,则向DR选举模块发送组播网络故障指示;故障检测模块,用于在自身DR时,若检测到自身发生故障或收到自身的上行RP端口发来的故障指示,则向BFD会话收发模块发送故障指示。
11.如权利要求8所述的组播路由器,其特征在于,所述BFD会话模块进一步用于,将自身的DR选举信息通过BFD会话发送给与自身共享同一网段的组播路由器,并将其它组播路由器通过BFD会话发来的DR选举信息发送给DR选举模块;且,所述DR选举模块进一步用于,根据自身的DR选举信息和BFD会话模块发来的与自身共享同一网段的其它组播路由器的DR选举信息,选举一个组播路由器作为DR。
全文摘要
本发明公开了一种组播故障恢复方法,包括在共享同一网段的组播路由器间建立BFD会话通道,备份DR根据BFD会话检测到组播网络发生故障,将自身升级为DR;本发明同时公开了一种组播路由器,包括BFD会话模块和DR选举模块。由于BFD报文的发送周期可达到毫秒级,所以当DR自身或DR的上行RP发生故障时,或DR与备份DR之间的共享链路发生故障时,备份DR会在较短时间内升级为DR,大大降低了组播流的中断时间,提高了组播流恢复速度,满足了实时业务需求。
文档编号H04L12/66GK1874315SQ20061008645
公开日2006年12月6日 申请日期2006年6月21日 优先权日2006年6月21日
发明者刘建锋, 宁军, 姚民 申请人:杭州华为三康技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1