具体实施方式
图1为组播通信网络中使用集中设备任意播组时,可能出现组播业务中断的场景示意图。在图1中所示的网络拓扑结构中,包括一个组播源S1,指定路由器DR,三个任意播集中设备RP1、RP2和RP3,R1、R1’、R2和R3是用户终端。这里假设RP1是主集中设备,图中的虚线表示从指定路由器到集中设备的最短路径树还没有建立起来。
如图1所示,在过程P11中,当从DR到RP1的最短路径树已经建立,但是从DR到RP2和RP3的最短路径树还没有建立起来时,根据PIM-SM协议,当RP1接收到注册消息时,RP1可以发送注册停止消息给DR。根据RFC4610,RP1发送注册停止消息给DR时没有考虑与RP2和RP3的注册停止消息关联起来。在过程P12中,如果在接收来自RP2和RP3的注册停止消息之前,RP1发送了注册停止消息给DR。在过程P13中,DR收到所述注册停止消息后,会在一定时间内(也就是DR中的注册停止定时器运转期间,详情请参考PIM-SM协议)会停止发送注册消息给RP1。这样在过程P14中,RP2和RP3不能接收到来自RP1的注册消息,R2和R3的组播业务就会中断。
另外一个严重的业务中断情形如图2所示。在这个情况下,没有一个用户终端在RP1下面。在过程P21中,在从DR到RP2和RP3的最短路径树还没有建立。根据PIM-SM协议注册机制和RFC4610,在过程P22中,因为在RP1下面没有用户终端,RP1接收到来自DR的注册消息以后,就发送注册停止消息给DR,此时,RP1还没有接收到来自RP2和RP3的注册停止消息。在过程P23中,DR收到来自RP1的注册停止消息以后,会在一定时间内(也就是DR中的注册停止定时器运转期间,详情请参考PIM-SM协议)停止发送注册消息给RP1。在过程P24中,在上述一定时间内RP2和RP3不能得到注册消息,从而导致用户终端R2和R3的组播业务中断。
图3描述了在任意播组中集中设备之间的带宽是如何被浪费的。在此情况下,在过程P31中,RP2下没有用户终端,从DR到RP3的最短路径树已经建立起来了,但是从DR到RP1的最短路径树还没有完全建立。这样当RP1接收到来自DR的注册消息时,根据RFC4610,在过程P32中,RP1于是会拷贝来自DR的注册消息给RP2和RP3。根据PIM-SM协议,在过程P33中,RP2和RP3会发送注册停止消息给RP1,因为RP2下面没有用户终端,RP3经由DR直接通过它的最短路径树,已经接收到了纯组播数据包。根据RFC4610,当RP1处理注册停止消息时没有任何的操作,这样会导致在过程P34中,RP1继续给RP2和RP3发送注册消息,没有考虑到RP2和RP3此时已经不再需要注册消息了,因而RP1浪费了它的CPU资源,同时由于发送没有用处的注册消息给RP2和RP3,也浪费了带宽。
显然,协作机制需要加到主集中设备上面去。为了解决由于在任意播组中集中设备成员之间没有协作机制造成的组播业务中断和CPU资源以及带宽浪费的问题,本发明提出了一种在主集中设备中向指定路由器联合注册的方法及装置,其特征在于,当任意播中其它集中设备以及本集中设备都不需要来自指定路由器的注册消息时,才向指定路由器发送注册停止消息,从来完成一个联合注册的过程。
图4示出根据本发明的一个具体实施方式在组播通信网络的任意播组中的主集中设备中联合注册的流程示意图。
首先在步骤S11中,主集中设备接收来自指定路由器的注册消息,注册消息在到达主集中设备之前可能会经过多跳。
然后在步骤S12中,主集中设备检测该任意播网络中其它所有的集中设备和本集中设备是否还需要注册消息。
最后在步骤S13中,当所述其它所有的集中设备和本集中设备都不再需要注册消息时,主集中设备向所述指定路由器发送注册停止消息,告知指定路由器不需要再向其发送注册消息了。
在主集中设备中,用不同的方式来检测其它集中设备和本集中设备是否还需要注册消息。
图5示出了根据本发明的一个具体实施方式在组播通信网络的任意播组中的主集中设备中检测其它任一个集中设备是否还需要注册消息的步骤。
首先在步骤S1211中,计算自最近接收到来自所述其它所有集中设备中任一个集中设备的注册停止消息起的持续时间。
然后在步骤S1212中,当所述持续时间小于一个预定数值时,则判断所述任一个集中设备不再需要注册消息。
设上述预定数值为PT,下面给出PT的一个参考取值范围。
假设从同一任意播组中其它集中设备(RP1,RP2,...RPn)发往主集中设备的注册停止消息的传输时延分别为T1,T2,...Tn,定义 则PT最小不得小于T.假设从指定路由器到主集中设备的传输时延为T0,从主RP集中设备到指定路由器的传输时延为T′0,根据PIM-SM协议,如果指定路由器中注册消息停止定时器(Register-Stop Timer)的取值为Tv(注册停止定时器是前面所述的注册抑制时间长度的一个具体实现方式,前面所述的注册抑制时间是注册消息停止定时器的缺省取值,Tv的取值范围见PIM-SM协议),则PT最大不得大于(Tv+T0+T′0)。
当检测到其它任一个集中设备不再需要该注册消息时,此时,可能是所述任一个集中设备已经建好从所述指定路由器到该集中设备的最短路径树(见PIM-SM协议),或者是所述任一个集中设备下没有用户终端需要接收所述注册消息中的组播包,控制停止向所述任一个集中设备转发该注册消息,这样一方面减轻了主集中设备的CPU的负担,因为主集中设备不需要再将来自指定路由器的注册消息解包,重新打包之后转发给所述不再需要注册消息的集中设备。另一方面也节省了主集中设备和所述不再需要注册消息的集中设备之间的带宽。
本集中设备检测其自身是否还需要注册消息的情形分为以下两种情况,一种是没有要经由本集中设备接收该注册消息相关组播业务的用户终端,另一种是有要经由本集中设备接收该注册消息相关的组播业务的用户终端。前一种情形中,根据注册消息中的组播包中的组播地址来检查是否有接收该组播地址对应的组播业务的用户终端,一般会事先建好一个组播转发表,包括组播地址与通向接收该组播地址对应的组播业务的用户终端的本集中设备上的出接口的列表之间的对应关系,根据该表进行查询即可判断有无要经由本集中设备接收组播地址对应的组播业务的用户终端。在后一种情形中,当从所述指定路由器到主集中设备之间的最短路径树已经建好(其判断的依据在PIM-SM协议里有详细的说明),则认为不再需要注册消息了。在上述两种情形中,可以分别设立一个标志位,也可共享一个标志位,表示不再需要注册消息。
图6示出了根据本发明的一个具体实施方式在组播通信网络的任意播组中的主集中设备中检测本集中设备是否还需要注册包的步骤。
当接收到来自所述指定路由器的注册消息时,首先在步骤S1221中,检查有否要经由本集中设备来接收与所述注册消息相关的组播业务的用户终端。
如果有要接收与所述注册消息相关的组播业务的用户终端时,则在步骤S1223中,检测指定路由器与本集中设备之间的最短路径树是否已经建立。
当上述最短路径树已经建立或者在步骤S1221中判断没有接收与所述注册消息相关的组播业务的用户终端,则在步骤S1224中判断本集中设备不需要来自指定路由器的所述注册消息了。
为了同PIM-SM协议保持一致,根据PIM-SM协议,本集中设备还设置了一个策略函数SwitchToSptDesired,当其返回值为真时,其含义是允许从指定路由器到本集中设备的通信路径从当前的注册消息单播通信路径切换到最短路径树进行组播业务通信;当其返回值为假时,表示不允许从当前接收注册消息的单播通信路径切换到从指定路由器到本集中设备的组播最短路径树进行组播业务通信。该返回值可以静态设定,也可在集中设备运行中对其赋值(详见PIM-SM协议)。这里为了同PIM-SM协议保持一致,在步骤S1222中,当没有要经由本集中设备接收与所述注册消息相关的组播业务的用户终端时,并且SwitchToSptDesired的返回值为真时,则判断本集中设备不需要来自指定路由器的所述注册消息了;当没有要经由本集中设备接收与所述注册消息相关的组播业务的用户终端时,并且SwitchToSptDesired的返回值为假时,则认为本集中设备还需要来自指定路由器的所述注册消息。
以上在主集中设备中判断本集中设备是否还需要注册消息的过程同样也适用其它的集中设备,实际上,其它集中设备也是根据以上过程判断其不需要注册消息后向主集中设备发送注册停止消息的。在其它集中设备中,当策略函数SwitchToSptDesired的返回值为真时,其物理意义是允许从当前经由主集中设备接收来自指定路由器的注册消息的单播通信路径切换到从指定路由器到本集中设备的最短路径树进行组播业务通信;当其返回值为假时,表示不允许从当前经由主集中设备接收来自指定路由器的注册消息的单播通信路径切换到从指定路由器到本集中设备的组播最短路径树进行组播业务通信。其赋值及判断过程与上述主集中设备中相同,在此不再赘述。
图7示出了根据本发明的一个具体实施方式在组播通信网络的任意播组中的主集中设备中的注册装置示意框图,其中,当任意播网络中其它集中设备以及本集中设备都不需要来自指定路由器的注册消息时,才向指定路由器发送注册停止消息,从而完成一个联合注册的过程。所述注册装置1包括接收装置11,第一检测装置12,发送装置13和发送控制装置14。其中所述第一检测装置12还包括计算装置1211,第一判断装置1212,第二检测装置1221,第二判断装置1222,第三检测装置1223和第三判断装置1224。
首先,接收装置11接收来自所述指定路由器的注册消息,该消息的包头为单播数据包,包含来自源S1的一个组播数据包。
然后,第一检测装置12判断该任意播组中其它所有的集中设备和本集中设备是否都还需要上述来自指定路由器的注册消息。
最后,当第一检测装置12检测到该任意播组中所有的集中设备都不再需要来自所述指定路由器的注册消息时,则发送装置13向该指定路由器发送注册停止消息,指示指定路由器不要再向主集中设备发送注册消息。
当一个集中设备下面没有要接收该组播数据包的用户终端(为了同PIM-SM协议兼容,并且与该组播业务对应的策略函数SwitchToSptDesired返回值为真),或者所述指定路由器到该集中设备之间的最短路径树已经建立起来了,则该集中设备不需要来自指定路由器的注册消息了,此时该集中设备可设置一个标志位,当接收到来自主集中设备的注册消息时,向主集中设备发送注册停止消息。
在使用任意播组的组播通信网络中,各个集中设备的实际物理距离可能会比较远,在其它一个集中设备发出注册停止消息时,主集中设备已转发出多个注册消息,因此主集中设备会接收到多个来自其它集中设备的注册停止消息。
其中所述第一检测装置12中的计算装置1211计算自最近接收到来自所述其它所有集中设备中任一个集中设备的注册停止消息起的持续时间;当所述持续时间小于一个预定数值时,第一判断装置1212则判断所述集中设备不再需要注册消息。此时,发送控制装置14则控制本集中设备停止向所述集中设备发送注册消息。这里可用定时器来计算自最近接收到来自所述其它所有集中设备中任一个集中设备的注册停止消息起的持续时间。
设上述持续时间的预定数值为PT,下面给出PT的一个参考取值范围。
假设从同一任意播组中其它集中设备(RP1,RP2,...RPn)到主集中设备的注册停止消息的传输时延分别为T1,T2,...Tn,定义 则PT最小不得小于T,假设从指定路由器到主集中设备的传输时延为T0,从主RP集中设备到指定路由器的传输时延为T′0,根据PIM-SM协议,如果指定路由器中注册消息停止定时器(Register-Stop Timer)的取值为Tv(注册停止定时器是前面所述的注册抑制时间长度的一个具体实现方式,前面所述的注册抑制时间是注册消息停止定时器的缺省取值,Tv的其取值范围见PIM-SM协议),则PT最大不得大于(Tv+T0+T′0)。
本集中设备检测其自身是否还需要注册消息的情形分为以下两种情况,一种是没有要经由本集中设备接收该注册消息相关组播业务的用户终端,另一种是有要经由本集中设备接收该注册消息相关的组播业务的用户终端。根据注册消息中的组播包中的组播地址来检查是否有接收该组播地址对应的组播业务的用户终端,一般会事先建好一个组播转发表,包括组播地址与通向接收该组播地址对应的组播业务的用户终端的出接口的集合之间的对应关系,根据该表进行查询即可判断本集中设备下面有无接收组播地址对应的组播业务的用户终端。在后一种情形中,当从所述指定路由器到主集中设备之间的最短路径树已经建好(其判断的依据在PIM-SM协议里有详细的说明),则不再需要所述注册消息。
其详细的过程如下:首先第二检测装置1221检查是否有要经由本集中设备接收与所述注册消息相关的组播业务的用户终端,这里一般在每个集中设备中对应每个组播业务会有一个通往要接收该组播业务的用户终端的本集中设备上出接口的列表,当该列表为空,则表示没有用户终端要经由本集中设备接收该组播业务,此时,为了同PIM-SM协议保持一致,可再进一步判断该组播业务对应的策略函数SwitchToSptDesired返回值是否为真,若前述列表为空且前述策略函数返回值为真,可以设立一个标志位来表明此情形,则第二判断装置1222判断本集中设备不再需要同所述组播业务相关的注册消息了;如果进一步判断SwitchToSptDesired的返回值为假时,则第二判断装置1222判断本集中设备还需要来自指定路由器的所述注册消息。
当该列表不为空时,则说明有一个或多个要经由本集中设备接收与所述注册消息相关的组播业务的用户终端,第三检测装置1223会去检测从所述指定路由器到本集中设备的有关上述组播业务的最短路径树是否已经建立,如果已经建立,则第三判断装置1224判断本集中设备不再需要所述注册消息了。根据PIM-SM协议,可在主集中设备中设一个最短路径树是否已经建立的标志位。
这里需要说明的是,第二判断装置1222也可忽略上述策略函数SwitchToSptDesired,当没有要经由本集中设备接收该注册消息相关组播业务的用户终端时,直接判断本集中设备不需要同所述组播业务相关的注册消息了。
以上在主集中设备中判断本集中设备是否还需要注册消息的过程同样也适用其它的集中设备,实际上,其它集中设备也是根据以上过程判断其不需要注册消息后向主集中设备发送注册停止消息的。稍有不同的是,上述策略函数SwitchToSptDesired在主集中设备和其它集中设备的物理意义有所不同,其返回值为真时,在主集中设备中是指允许从当前从指定路由器到本集中设备的注册消息单播通信路径切换到从指定路由器到本集中设备的组播最短路径树进行组播业务通信;在其它集中设备中是指允许从当前经由主集中设备接收来自指定路由器的注册消息的单播通信路径切换到从指定路由器到本集中设备的组播最短路径树进行组播业务通信;当其返回值为假时,在主集中设备中是指不允许从当前从指定路由器到本集中设备的注册消息单播通信路径切换到从指定路由器到本集中设备的组播最短路径树进行组播业务通信;在其它集中设备中是指不允许从当前经由主集中设备接收来自指定路由器的注册消息的单播通信路径切换到从指定路由器到本集中设备的组播最短路径树进行组播业务通信。
图8为根据本发明的一个具体实施方式在组播网络中使用集中设备任意播组的网络拓扑结构图。在图8中所示的网络拓扑结构中,包括一个组播源S1,指定路由器DR,三个任意播集中设备RP1、RP2和RP3,R1、R1’、R2和R3是用户终端。这里假设RP1是主集中设备。
在过程P81中,当RP1第一次接收到来自RP2的注册停止消息时,RP1启动一个与RP2相对应的定时器,该定时器的时间值可以同指定路由器中的注册停止定时器的取值一样。然后再次接收到来自RP2的注册停止消息时,将该定时器清零重新开始计时。对RP3同理设置相同的定时器。在过程P82中,在RP1发送注册停止消息给DR之前,RP1检查RP2和RP3所对应的定时器是否正在运行。如果都在运行,这表明RP2和RP3都已经分别发送了注册停止消息给RP1,此时如果RP1本身也不再需要注册消息,就可给指定路由器发送注册停止消息了。在过程P83中,在RP1发送从DR接收到的注册消息给RP2或RP3之前,先检查与RP2或者RP3对应的定时器是否正在运行,如果定时器在运行,则表明RP1不再需要向与该定时器对应的RP2或RP3发送注册消息了。否则RP1应该按照RFC4610中所描述的那样,发送注册消息给RP2或RP3。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在所附权利要求的范围内做出各种变形或修改。