组播流转发方法及其路由器和系统的制作方法

文档序号:7956043阅读:331来源:国知局
专利名称:组播流转发方法及其路由器和系统的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种当路由器到达组播源的单播路由发生改变时,组播数据流的转发方法,以及应用于该方法的路由器和系统。
背景技术
单播路由协议不相关组播协议(Protocol Independent Multicast,PIM)是一种与单播路由选择协议无关的组播路由协议,它不依赖于特定的单播路由协议,使用现存的单播路由表实现逆向路径转发(Reverse Path Forwarding,RPF)检查。单播路由协议不相关组播-稀疏模式(Protocol IndependentMulticast-Sparse Mode,PIM-SM)通过PIM路由器显式发送加入或剪枝(Join/Prune)消息建立起基于会聚点(Rendezvous Point,RP)的共享树(Rendezvous Point Tree,RPT)或基于源的源路径树(SPT),组播数据沿着共享树RPT或源路径树SPT流到加入到该组播组的网段。单播路由协议不相关组播-特定源组播(Protocol Independent Multicast-source-specific multicast,PIM-SSM)是对PIM-SM的改进,PIM路由器显式发送加入或剪枝(Join/Prune)消息建立源路径树SPT,从而省略了共享树RPT的建立过程以及RPT向SPT切换的过程。
随着宽带网络技术的不断发展和成熟,越来越多的网络运营商正在部署PIM组播网络,从而向公众提供高质量的IP电视(IPTV)业务,以此增加宽带业务收入。IPTV就是利用IP网络中的组播技术,向公众提供高清晰的宽带视频业务。因此,PIM组播网络的可靠性成为网络运营商普遍关注的关键技术。PIM组播网络的可靠性就是将网络故障对IPTV业务中断的影响减小到最低程度。
在Internet工程任务组(Internet Engineering Task Force,IETF)关于PIM-SM的标准文档[PIM-SM]中,关于单播路由改变导致SPT切换的协议处理过程有如下描述当单播路由改变时,所有活动的(S,G),(*,G)和(*,*,RP)条目都要进行RPT检查,并且所有受其影响的入接口都要进行更新。特别地,若新的入接口出现在出接口列表中,则其将被从出接口列表中删除。原有的入接口可能由于从下游路由器发送来的周期性的Join/Prune消息触发而被加入到出接口列表中。当前入接口接收的Join/Prune消息被忽略,而新接口或现有出接口接收的Join/Prune消息则不会被忽略。其他的出接口将被保留下来,直到它们被下游路由器明确地剪枝,或由于缺乏适当的Join/Prune消息维持而超时。若路由器有一个包含SPT位标记的(S,G)条目,并且最新的iif(S,G)条目与iif(*,G)条目或iif(*,*,RP)条目相同,则该路由器重置SPT位。
路由器必须通过新的入接口发送一个Join消息,在该消息的Join列表中携带S信息,以通知上游路由器希望通过该新的接口接收组播数据流。如果原有入接口还是活动状态的话,该路由器还要通过原有入接口发送一个Prune消息,在该消息的Prune列表中携带S信息,以通知上游路由器不再需要组播分发树的这个分支了。
在上述[PIM-SM]的规定中,当达到组播源的用于RPF计算的单播路由发生改变(从次优路由改变切换到最优路由)之后,PIM路由器会向新的上游PIM邻居发送Join消息,以此建立新的SPT,与此同时,如果原有入接口仍然处于活动状态,则向原有的上游PIM邻居发送Prune消息,以此剪枝原有的SPT。但是在原有的SPT被剪枝之后,新的SPT还没有完全建立起来的情况下,组播数据流转发就会出现暂时的中断。

发明内容
本发明提供一种组播流转发方法,用以解决现有技术中当路由器到达组播源或会聚点RP的单播路由改变而导致组播转发路径切换时,组播数据流转发中断的问题。
基于上述方法,本发明另提供一种用于转发组播数据流的路由器。
本发明还提供一种组播流转发系统。
本发明方法包括当路由器到达组播源或会聚点RP的单播路由从第一路由切换到第二路由时,执行步骤该路由器与所述第二路由对应的相邻上游路由器建立新的组播转发路径,并保持通过原有组播转发路径转发组播流;当所述路由器从新建的组播转发路径接收到组播流时,断开原有组播转发路径,并通过新建立的组播转发路径转发组播流。
根据本发明的上述方法,所述路由器从新建的组播转发路径接收到组播流后,丢弃从原有组播转发路径重复接收的组播流。
根据本发明的上述方法,所述路由器通过该路由器与所述第二路由对应的相邻上游路由器连接的入接口发送加入消息,建立起所述相邻上游路由器到该入接口的组播转发路径;所述路由器从该入接口接收组播流,并从原有组播转发路径对应的出接口向该路由器的下游设备转发组播流。
所述路由器通过从原有组播转发路径对应的入接口向所述原有组播转发路径对应的相邻上游路由器发送剪枝消息,断开所述相邻上游路由器到该入接口的组播转发路径。
根据本发明的上述方法,若组播流通过源路径树SPT转发,则当所述路由器到达组播源的单播路由从次优路由切换到最优路由时,所述路由器建立新的组播转发路径SPT;若组播流通过基于会聚点的共享树RPT转发,则当所述路由器到达组播会聚点的单播路由从次优路由切换到最优路由时,所述路由器建立新的组播转发路径RPT。
本发明提供的转发组播流的路由器,包括路由模块、转发模块、检测模块和至少两个入接口和一个出接口;所述路由模块与分别与两个入接口和所述转发模块连接;所述转发模块与两个入接口和一个出接口连接;所述检测模块分别与一个入接口和所述路由模块连接;当路由器到达组播源或会聚点RP的单播路由从第一路由切换到第二路由时,所述路由模块通过与所述第二路由对应的相邻上游路由器连接的入接口通知该上游路由器建立新的组播转发路径,通知所述检测模块对该入接口接收组播流进行检测,并通知原有组播转发路径对应的入接口保持接收组播流;并接收所述检测模块发送的信号,通过所述原有组播转发路径对应的入接口通知原有组播转发路径对应上游路由器断开该路径;所述检测模块检测到所述入接口接收到组播流时,向所述路由模块发送信号;所述转发模块从入接口接收组播流,并接受所述路由模块的控制将其发送到指定的出接口,转发到所述路由器的下游设备。
所述路由模块收到所述检测模块发送的信号后,通知原有入接口忽略其接收到的组播流;所述转发模块将从与所述第二路由对应的相邻上游路由器连接的入接口接收到的组播流发送到所述路由模块指定的出接口,并转发到所述路由器的下游设备。
当路由器到达组播源或会聚点RP的单播路由从第一路由切换到第二路由时,所述路由模块通过所述与第二路由对应的相邻上游路由器连接的入接口向该上游路由器发送加入消息,建立起所述相邻上游路由器到该入接口的组播转发路径;所述路由器从该入接口接收组播流,从原有组播转发路径对应的出接口向该路由器的下游设备转发组播流。
当所述路由模块收到所述检测模块发送的信号时,所述路由模块通过原有入接口向所述原有组播转发路径对应的相邻上游路由器发送剪枝消息,断开所述相邻上游路由器到该入接口的组播转发路径。
本发明提供的组播流转发系统,包括组播流发送端、组播流接收端和至少3个本发明提供的路由器;所述路由器互相连接,且其中一个路由器与所述组播流发送端连接,另一个路由器与所述组播流接收端连接,将组播流从所述发送端,通过路由器互相连接后形成的组播流转发路径,转发到所述组播流接收端。
本发明的有益效果如下(1)本发明通过在当路由器到达组播源或会聚点RP的单播路由从次优路由切换到最优路由而导致组播转发路径切换时,路由器在建立新的转发路径时,继续从原有转发路径接收并转发组播数据流,直到从新的转发路径接收到组播数据流之后,才断开原有转发路径,从而保证了组播数据流在转发过程中无中断。
(2)路由器在从新的转发路径收到组播数据流后,将从原有转发路径收到的组播数据流丢弃,从而避免了因重复接收组播数据流而造成的组播数据接收和播放错误。


图1为本发明在组播源的单播路由发生改变时PIM路由器转发组播数据流的流程示意图;图2为本发明实施例的组播数据流转发系统结构示意图;图3为本发明实施例单播路由改变前的组播数据流转发示意图;图4为本发明实施例单播路由改变时的组播数据流转发示意图;图5为本发明实施例单播路由改变后的组播数据流转发示意图;图6为本发明路由器的结构示意图。
具体实施例方式
本发明通过到达组播源或会聚点RP的单播路由发生改变(从次优路由切换到最优路由)的情况下,PIM路由器在组播数据流从新的入接口收到之前,继续接收并转发从原有入接口收到的组播数据流,只有组播数据流从新的入接口收到之后,才向原有相邻的上游路由器发送Prune消息,并将从原有入接口收到的组播数据流丢弃,从而到达组播数据流无中断转发的目的。
参见图1,为本发明PIM路由器在组播源的单播路由发生改变,导致SPT切换时的转发组播流的流程示意图,具体包括步骤S1、PIM路由器获知达到组播源的用于RPF计算的单播路由发生改变,即从次优路由切换到最优路由;步骤S2、PIM路由器向最优路由对应的上游路由器发送Join消息,建立新的源路径树SPT;同时,从原有的SPT接收组播数据流并进行转发;步骤S3、当PIM路由器从新建立的SPT接收到组播数据流时,向原有上游路由器发送Prune消息,断开原有的SPT,并丢弃从原有SPT接收的组播数据流,通过新的SPT接收并转发组播数据流。
上述组播流转发过程通过本发明的组播流转发系统实现。本发明的组播流转发系统包括组播流发送端、组播流接收端和多个转发组播流的路由器。这些路由器中包括与组播发送端连接的最上游路由器,与组播流接收端连接的最下游路由器,以及介于最上游路由器和最下游路由器之间存在的多个彼此连接的中间路由器,组播流发送端发送的组播流经过这些路由器连接形成的组播转发路径到达组播流接收端。
下面以具有3个路由器的PIM-SM组播流转发系统为实施例,对本发明进行详细说明。
参见图2,为本发明的组播流转发系统,包括组播数据发送端、组播数据接收端和PIM路由器R1、R2和R3。R1与组播数据发送端连接,R3与组播数据接收端连接,R2分别与R1和R3连接,R1和R3连接。
当到达组播源的单播路由发生改变(从次优路由切换到最优路由)而导致SPT切换,此时的组播数据流转发过程如下所述。
参见图3,为本发明实施例单播路由改变前的组播数据流转发示意图。PIM路由器R1与R3之间的链路处于中断状态,R3到达组播源的单播路由的下一跳是R2,R2到达R1的单播路由的下一跳是R1,所有PIM路由器沿着到达组播源的最短路径方向周期性发送Join消息,建立并维持SPT。组播数据流沿着建立的SPT(R1->R2->R3)从组播数据发送端被转发到组播数据接收端。其间,R3通过与其上游邻居路由器R2连接的入接口E1接收组播数据流。
当R1与R3之间的链路恢复正常,PIM路由器R3发现到达组播源的单播路由发生改变(从次优路由改变切换到最优路由),即到达组播源的单播路由下一跳从R2变为R1时,R3通过接口E0向新的上游邻居路由器R1发送PIMJoin消息,如图4所示,建立新的从R1到R3的SPT;同时,R3在组播数据流从新的入接口E0被接收到之前,继续接收从原有的入接口E1收到的组播数据流,并通过原有的出接口转发该组播数据流;当R3从新的入接口E0接收到组播数据流之后,如图5所示,立即向原有的上游邻居R2发送PIM Prune消息,断开原有的SPT;同时,R3忽略掉此刻和以后从接口E1接收的组播数据流,以避免因E0和E1重复接收组播数据流而引起的组播数据流接收错误,影响组播数据流的播放。R3将从入接口E0接收到的组播数据流通过原有的出接口转发到组播数据流接收端。
上述路由器R1、R2和R3具有如下结构,如图6所示,包括路由模块、转发模块、检测模块和多个入/出接口(包括与R1连接的入接口E0、与R2连接的入接口E1和一个出接口)。其中,转发模块与入接口E0和E1,以及出接口连接,负责组播数据流转发;路由模块与入接口E0和E1连接,控制其建立或断开对应的上游路径,并与转发模块连接,控制其转发组播数据流;检测模块分别与入接口E0和路由模块连接,检测入接口E0接收数据情况,并当检测到入接口接收数据后,向路由模块发送信号,以通知路由模块向入接口E1发送剪枝消息,断开入接口E1对应的上游路径。图中实线代表组播数据流,虚线代表信号数据流。
对应上述流程,当到达组播源的单播路由从次优路由切换到最优路由而导致原有组播转发路径SPT切换时,路由器的路由处理过程如下所述。
初始状态下,路由器R3与R1之间的链路处于中断状态,此时的组播数据流沿着现有的SPT(R1->R2->R3)从组播数据发送端被转发到组播数据接收端。其间,R3通过与其上游邻居路由器R2连接的入接口E1接收组播数据流,转发模块将接收的组播数据流发送到路由模块指定的出接口,转发到组播数据流接收端。
当到达组播源的单播路由从次优路由切换到最优路由时,即R1与R3之间的链路恢复正常,路由模块通过与R1连接的入接口E0向R1发送PIM Join消息,建立新的从R1到R3的SPT,并通知检测模块对入接口E0接收组播数据流进行检测;同时,路由模块通知与R2连接的入接口E1保持接收组播数据流,并通知转发模块将接收的组播数据流发送到原有的出接口。
当检测模块检测到入接口E0接收到组播数据流时,向路由模块发送信号;路由模块收到信号后,立即通知入接口E1向R2发送PIM Prune消息,断开原有的SPT;同时,路由模块通知入接口E1忽略此刻和以后接收的组播数据流。转发模块将从入接口E0接收到的组播数据流发送到路由模块指定的原有出接口,转发到组播数据流接收端。
上述实施例以PIM-SM为例,说明当到达组播源的单播路由发生改变(从次优路由切换到最优路由)而导致SPT切换的过程中,实现组播数据流转发的流程,对于PIM-SSM模式下,当到达组播源的单播路由发生改变(从次优路由切换到最优路由)而导致SPT切换的过程中,实现组播数据流转发的流程与上述流程类似。在PIM-SM模式下,若组播数据流通过RPT进行转发,那么当到达RP的单播路由发生改变(从次优路由切换到最优路由)而导致RPT切换的过程中,组播数据流转发流程与上述流程类似。
通过以上描述可知,PIM路由器发现到达组播源的单播路由发生改变(从次优路由切换到最优路由)时,在组播流从新建立的入接口收到之前,继续从原有入接口接收并转发组播数据流,只有在组播数据流从新的入接口收到之后,才向原有上游邻居路由器发送Prune消息,断开原有转发路径,从而保证了组播数据流无中断转发。同时,在从新的入接口收到组播数据流后,将从原有入接口重复收到的组播数据流丢弃,从而避免了因重复接收组播数据流而造成的组播数据接收和播放错误。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种组播流转发方法,当路由器到达组播源或会聚点RP的单播路由从第一路由切换到第二路由时,执行步骤该路由器与所述第二路由对应的相邻上游路由器建立新的组播转发路径,并保持通过原有组播转发路径转发组播流;当所述路由器从新建的组播转发路径接收到组播流时,断开原有组播转发路径,并通过新建立的组播转发路径转发组播流。
2.如权利要求1所述的方法,其特征在于,所述路由器从新建的组播转发路径接收到组播流后,丢弃从原有组播转发路径重复接收的组播流。
3.如权利要求1所述的方法,其特征在于,所述路由器通过该路由器与所述第二路由对应的相邻上游路由器连接的入接口发送加入消息,建立起所述相邻上游路由器到该入接口的组播转发路径;所述路由器从该入接口接收组播流,并从原有组播转发路径对应的出接口向该路由器的下游设备转发组播流。
4.如权利要求1所述的方法,其特征在于,所述路由器通过从原有组播转发路径对应的入接口向所述原有组播转发路径对应的相邻上游路由器发送剪枝消息,断开所述相邻上游路由器到该入接口的组播转发路径。
5.如权利要求1所述的方法,其特征在于,若组播流通过源路径树SPT转发,则当所述路由器到达组播源的单播路由从次优路由切换到最优路由时,所述路由器建立新的组播转发路径SPT;若组播流通过基于会聚点的共享树RPT转发,则当所述路由器到达组播会聚点的单播路由从次优路由切换到最优路由时,所述路由器建立新的组播转发路径RPT。
6.一种转发组播流的路由器,包括路由模块、转发模块、检测模块和至少两个入接口和一个出接口;所述路由模块与分别与两个入接口和所述转发模块连接;所述转发模块与两个入接口和一个出接口连接;所述检测模块分别与一个入接口和所述路由模块连接;当路由器到达组播源或会聚点RP的单播路由从第一路由切换到第二路由时,所述路由模块通过与所述第二路由对应的相邻上游路由器连接的入接口通知该上游路由器建立新的组播转发路径,通知所述检测模块对该入接口接收组播流进行检测,并通知原有组播转发路径对应的入接口保持接收组播流;并接收所述检测模块发送的信号,通过所述原有组播转发路径对应的入接口通知原有组播转发路径对应上游路由器断开该路径;所述检测模块检测到所述入接口接收到组播流时,向所述路由模块发送信号;所述转发模块从入接口接收组播流,并接受所述路由模块的控制将其发送到指定的出接口,转发到所述路由器的下游设备。
7.如权利要求6所述的路由器,其特征在于,所述路由模块收到所述检测模块发送的信号后,通知原有入接口忽略其接收到的组播流;所述转发模块将从与所述第二路由对应的相邻上游路由器连接的入接口接收到的组播流发送到所述路由模块指定的出接口,并转发到所述路由器的下游设备。
8.如权利要求6所述的路由器,其特征在于,当路由器到达组播源或会聚点RP的单播路由从第一路由切换到第二路由时,所述路由模块通过所述与第二路由对应的相邻上游路由器连接的入接口向该上游路由器发送加入消息,建立起所述相邻上游路由器到该入接口的组播转发路径;所述路由器从该入接口接收组播流,从原有组播转发路径对应的出接口向该路由器的下游设备转发组播流。
9.如权利要求6所述的路由器,其特征在于,当所述路由模块收到所述检测模块发送的信号时,所述路由模块通过原有入接口向所述原有组播转发路径对应的相邻上游路由器发送剪枝消息,断开所述相邻上游路由器到该入接口的组播转发路径。
10.一种组播流转发系统,包括组播流发送端和组播流接收端,其特征在于,还包括至少3个如权利要求6所述的路由器;所述路由器互相连接,且其中一个路由器与所述组播流发送端连接,另一个路由器与所述组播流接收端连接,将组播流从所述发送端,通过路由器互相连接后形成的组播流转发路径,转发到所述组播流接收端。
全文摘要
本发明公开了一种组播流转发方法,当路由器到达组播源或会聚点RP的单播路径从第一路由切换到第二路由时,该路由器与所述第二路由对应的相邻上游路由器建立新的组播转发路径,并通过原有组播转发路径转发组播数据流;当所述路由器从新建的组播转发路径接收到组播数据流时,断开原有的组播转发路径,并通过新的组播转发路径转发组播数据流。采用本发明方法,可以避免在到达组播源或会聚点RP的单播路切换而导致组播转发路径切换时,组播数据流转发中断。
文档编号H04L29/06GK101035063SQ20061005681
公开日2007年9月12日 申请日期2006年3月7日 优先权日2006年3月7日
发明者徐小虎 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1