发明内容
有鉴于此,本发明的目的在于提供一种IP监控网络中的组播转发方法及装置,提高组播监控网络的性能,满足大规模监控网络的需求。
为达到上述目的,本发明提供的技术方案如下:
IP监控网络中的组播转发方法,所述IP监控网络中包括一台以上核心交换设备和汇聚设备,各台核心交换设备运行VRRP协议组成VRRP组,为汇聚设备提供VRRP服务,且VRRP组中有一台主核心交换设备,其它为备核心交换设备,该方法包括:
对于来自所述汇聚设备的PIM请求报文,主、备核心交换设备都根据收到的PIM请求报文建立软件组播转发表项,只有所述主核心交换设备下发硬件组播转发表项,进行组播数据转发;所述备核心交换设备在接收到所述主核心交换设备的请求后下发硬件组播转发表项,进行组播数据转发。
所述汇聚设备与VRRP组的虚拟IP地址建立邻居关系。
当所述主核心交换设备上的硬件组播转发表项已满或已达到预设阈值时,所述主核心交换设备向所述备核心交换设备发送请求,请求备核心交换设备进行负载分担。
所述请求备核心交换设备进行负载分担的过程包括:
主核心交换设备向备核心交换设备发出组播查询报文,询问备核心交换设备是否能够到达该PIM请求报文请求点播的组播源,如果可达,则请求备核心交换设备向该组播源方向发送PIM请求报文,备核心交换设备收到后向该组播源方向发送PIM请求报文,并下发硬件组播转发表项,完成组播数据转发。
该方法进一步包括:
对于来自非汇聚设备的PIM请求报文,主核心交换设备收到后建立软件组播转发表项,并判断自身的硬件组播转发表项是否已满,如果未满,则下发硬件组播转发表项,进行组播数据转发;如果已满,则请求备核心交换设备进行负载分担。
所述请求备核心交换设备进行负载分担的过程包括:
主核心交换设备从自身已有的硬件组播转发表项中选择一条来自于汇聚设备的硬件组播转发表项,并向备核心交换设备发送组播查询报文,询问备核心交换设备是否能够到达该被选择的硬件组播转发表项的组播源,如果可达,则请求备核心交换设备向该组播源方向发送PIM请求报文;备核心交换设备收到后向该组播源方向发送PIM请求报文,并下发硬件组播转发表项,下发成功后向主核心交换设备返回成功响应;主核心交换设备收到成功响应后,删除该条被选择的来自于汇聚设备的硬件组播转发表项,并根据接收到的来自于非汇聚设备的PIM请求报文下发一条新的硬件组播转发表项,完成组播数据转发。
该方法进一步包括:
对于来自非汇聚设备的PIM请求报文,备核心交换设备收到后建立软件组播转发表项,并判断自身的硬件组播转发表项是否已满,若未满,则下发硬件组播转发表项,进行组播数据转发;若已满,则不作处理。
该方法进一步包括:
当主核心交换设备出现故障时,备核心交换设备转为主核心交换设备,并判断自身是否已下发硬件组播转发表项,若未下发,则根据自身维护的软件组播转发表项下发硬件组播转发表项,接替原主核心交换设备完成组播数据转发;若已下发,则不作处理。
该方法进一步包括:
当发生故障的原主核心交换设备又恢复正常时,该设备将自身的状态设置为备,并与新的主核心交换设备进行软件组播转发表项同步,同时侦听新的主核心交换设备的状态。
该方法进一步包括:
当备核心交换设备出现故障时,主核心交换设备检查自身的硬件组播转发表项是否已满或是否达到预设阈值,若未满或未达到,则不做处理;若已满或已达到,则找出自身未下发硬件组播转发表项的软件组播转发表项,当备核心交换设备恢复正常时,主核心交换设备将找出的软件组播转发表项信息同步给备核心交换设备,并通知备核心交换设备下发硬件组播转发表项,完成组播数据转发。
一种位于IP监控网络中的主核心交换设备,所述IP监控网络中还包括备核心交换机和汇聚设备,各台核心交换设备运行VRRP协议组成VRRP组,为汇聚设备提供VRRP服务,所述主核心交换设备包括:表项管理单元、硬件转发芯片和主备通信单元,其中,
表项管理单元,用于在收到PIM请求报文后,根据收到的PIM请求报文建立软件组播转发表项,并判断本设备的硬件组播转发表项是否已满或是否达到预设阈值,若未满或未达到,则向硬件转发芯片下发硬件组播转发表项,硬件转发芯片根据下发的硬件组播转发表项进行组播数据转发;若已满或已达到,则通知主备通信单元请求备核心交换设备进行负载分担。
当所述PIM请求报文来自汇聚设备时,所述主备通信单元向备核心交换设备发出组播查询报文,询问备核心交换设备是否能够到达所述PIM请求报文请求点播的组播源,如果可达,则请求备核心交换设备向该组播源方向发送PIM请求报文并下发硬件组播转发表项,完成组播数据转发;
当所述PIM请求报文来自非汇聚设备时,所述主备通信单元从主核心交换设备上已有的硬件组播转发表项中选择一条来自于汇聚设备的硬件组播转发表项,并向备核心交换设备发送组播查询报文,询问备核心交换设备是否能够到达该被选择的硬件组播转发表项的组播源,如果可达,则请求备核心交换设备向该组播源方向发送PIM请求报文并下发硬件组播转发表项,当备核心交换设备返回成功响应时,主备通信单元删除该条被选择的来自于汇聚设备的硬件组播转发表项,并通知表项管理单元根据接收到的来自于非汇聚设备的PIM请求报文下发一条新的硬件组播转发表项,完成组播数据转发。
该设备进一步包括:
故障处理单元,用于在备核心交换设备出现故障时,检查主核心交换设备的硬件组播转发表项是否已满或是否达到预设阈值,若未满或未达到,则不做处理;若已满或已达到,则找出主核心交换设备未下发硬件组播转发表项的软件组播转发表项,当备核心交换设备恢复正常时,将找出的软件组播转发表项信息同步给备核心交换设备,并通知备核心交换设备下发硬件组播转发表项,完成组播数据转发。
所述故障处理单元进一步用于,在主核心交换设备发生故障又恢复正常时,将主核心交换设备的状态设置为备,并与新的主核心交换设备进行软件组播转发表项同步,同时侦听新的主核心交换设备的状态。
一种位于IP监控网络中的备核心交换设备,所述IP监控网络中还包括主核心交换机和汇聚设备,各台核心交换设备运行VRRP协议组成VRRP组,为汇聚设备提供VRRP服务,所述备核心交换设备包括:表项管理单元、硬件转发芯片和主备通信单元,其中,
表项管理单元,用于在收到PIM请求报文后,根据收到的PIM请求报文建立软件组播转发表项;
主备通信单元,用于在接收到主核心交换设备发送的负载分担请求后,根据主核心交换设备的请求,通知表项管理单元向硬件转发芯片下发硬件组播转发表项,进行组播数据转发,与主核心交换设备分担负载。
当所述PIM请求报文来自非汇聚设备时,所述表项管理单元进一步用于,在建立软件组播转发表项后,判断备核心交换设备的硬件组播转发表项是否已满或是否达到预设阈值,若未满或未达到,则向硬件转发芯片下发硬件组播转发表项,进行组播数据转发;若已满或已达到,则不作处理。
该设备进一步包括:
故障处理单元,用于在主核心交换设备出现故障时,将备核心交换设备的状态转换为主,并判断备核心交换设备是否已下发硬件组播转发表项,若未下发,则根据备核心交换设备维护的软件组播转发表项下发硬件组播转发表项,接替原主核心交换设备完成组播数据转发;若已下发,则不作处理。
由此可见,本发明所提供的技术方案充分利用了IP监控网络中已有的各台核心交换设备的作用,当主核心交换设备上的业务量超过预设限度时,备核心交换设备可参与负荷分担,这样就避免了现有技术中因只有一台核心交换设备进行组播转发而造成的不能大范围监控的问题,从而提高了组播监控网络的性能,满足了大规模监控网络的需求。另外,本发明所提供的技术方案还无需对现有的网络硬件设备进行任何改动,实现起来较为便捷,不会造成硬件成本的增加。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本发明作进一步详细说明。
本发明的基本思想是,充分发挥各台核心交换设备的作用,在各核心交换设备之间实现负荷分担,以提高组播监控网络的性能,满足大规模监控网络的需求。
本发明中,每台汇聚设备都与上行的各台核心交换设备保持连接,多台核心交换设备运行VRRP协议组成一个VRRP组,为下面的每台汇聚设备提供VRRP服务。在VRRP组中,各台核心交换设备之间通过协商确定一个主核心交换设备,其它的为备核心交换设备,且每台核心交换设备都维护如表1所示的主备设备信息。
表1
其中,虚拟IP地址是VRRP组对外提供的一个虚拟IP地址信息,而不是各核心交换设备的实际IP地址。在初始状态下,主核心交换设备以虚拟IP地址为源地址发送PIM邻居协商报文,汇聚设备收到主核心交换设备发送的PIM邻居协商报文后,与所述虚拟IP地址建立邻居关系,备核心交换设备侦听主核心交换设备和汇聚设备发送的报文。
在后续过程中,当有用户点播摄像机发送的组播流时,汇聚设备以组播地址为目的地址向VRRP组发送PIM请求报文,VRRP组中的主备核心交换设备收到来自汇聚设备的PIM请求报文后,每台核心交换设备的软件层都会根据收到的PIM请求报文进行组播转发表项学习,建立起相同的软件组播转发表项。但是,只有主核心交换设备才真正将学习到的软件组播转发表项下发给硬件转发芯片,生成硬件组播转发表项,完成组播数据的转发;其它备核心交换设备只生成软件组播转发表项,而不下发硬件转发芯片,不负责组播数据的转发。
上述主核心交换设备对PIM请求报文的处理,主要是针对主核心交换设备上的硬件组播转发表项还没有满或者还未达到预设阈值的情况进行说明的;当主核心交换设备发现自身的硬件组播转发表项已满或者已达到预设阈值时,如果又收到PIM请求报文,则需要采取其它的处理方式。下面以判断硬件组播转发表项是否已满为例,并结合图2对上述两种情况下主核心交换设备收到PIM请求报文的处理过程进行详细说明。
图2包括以下步骤:
步骤201:主核心交换设备收到PIM请求报文后,根据收到的PIM请求报文建立软件组播转发表项,并判断本设备的硬件组播转发表项是否已满,如果未满,执行步骤202;如果已满,执行步骤203。
其中,建立软件组播转发表项的过程具体可包括:首先判断该PIM请求报文请求点播的组播源是否已存在相应的软件组播转发表项,若不存在,则生成一个新的软件组播转发表项;如果存在,则只需在已有的软件组播转发表项中添上所述PIM请求报文的出接口即可。
步骤202:主核心交换设备将建立的软件组播表项下发硬件转发芯片,生成硬件组播转发表项,之后主核心交换设备根据硬件组播转发表项完成组播数据转发,然后结束本流程。
步骤203:主核心交换设备判断该PIM请求报文是否来自于VRRP组服务的汇聚设备,若是,执行步骤204;否则,执行步骤206。
步骤204:主核心交换设备向备核心交换设备发出组播查询报文,询问备核心交换设备是否能够到达该PIM请求报文请求点播的组播源,如果可达,执行步骤205;否则,结束本流程。
步骤205:主核心交换设备请求备核心交换设备向该组播源方向发送PIM请求报文,备核心交换设备收到后向组播源方向发送PIM请求报文,并下发硬件组播转发表项,完成组播数据的转发,然后结束本流程。
步骤206:主核心交换设备从现有的硬件组播转发表项中选择一条来自于VRRP汇聚设备的硬件组播转发表项。
步骤207:主核心交换设备向备核心交换设备发送组播查询报文,询问备核心交换设备是否能够到达该被选择的硬件组播转发表项的组播源,如果可达,执行步骤208;否则,结束本流程。
步骤208:主核心交换设备请求备核心交换设备向该组播源方向发送PIM请求报文,备核心交换设备收到后向组播源方向发送PIM请求报文,并下发硬件组播转发表项,下发成功后向主核心交换设备返回成功响应。
步骤209:主核心交换设备收到成功响应后,删除该条被选择的来自于VRRP汇聚设备的硬件组播转发表项,并根据接收到的来自于非VRRP汇聚设备的PIM请求报文下发一条新的硬件组播转发表项,完成组播数据转发。
从以上描述可以看出,对于来自于VRRP组所服务的汇聚设备的PIM请求报文,即从VRRP接口接收到的报文,无论是主核心交换设备还是备核心交换设备都会建立软件组播转发表项。但在正常情况下,只有主核心交换设备才会将软件组播转发表项下发硬件转发芯片,生成硬件组播转发表项进行组播数据转发;备核心交换设备只生成软件组播转发表项而并不下发硬件转发芯片,除非主核心交换设备的硬件转发表项已满或已达到预设阈值,备核心交换设备才会根据主核心交换设备的请求生成硬件组播转发表项进行组播数据转发。也就是说,在同一时间对于同一条组播流,只有一台核心交换设备进行转发,其它设备即使收到相应的组播流也不做处理,这就决定了本发明不需要像现有技术那样必须通过触发Assert机制来防止同一组播流被多个核心交换设备转发的情况发生。
另外,无论是主核心交换设备还是备核心交换设备,都有可能会从非VRRP接口接收到PIM请求报文。对于主核心交换设备从非VRRP接口接收到的PIM请求报文,主核心交换设备的处理过程参见图2。对于备核心交换设备从非VRRP接口接收到的PIM请求报文,备核心交换设备的处理过程如下:
备核心交换设备判断本设备的硬件组播转发表项是否已满或是否达到预设阈值,若已满或已达到预设阈值,则不作处理;若未满或未达到预设阈值,则判断该PIM请求报文请求点播的组播源是否已存在相应的软件组播转发表项,若不存在,则直接生成软件组播转发表项并下发硬件转发芯片,生成硬件组播转发表项,完成组播数据转发;如果存在,则只需在已有的软件组播转发表项中添上所述非VRRP接口即可,且在下发硬件表项时,只需下发出接口为非VRRP接口的接口,由备核心交换设备完成该非VRRP接口组播数据的转发。
以上对主、备核心交换设备均正常情况下的组播数据转发过程进行了详细说明,下面简单说明一下主或备核心交换设备出现故障时的处理方法。
一、主核心交换设备出现故障
在实际运行过程中,备核心交换设备会一直侦听主核心交换设备的状态,当备核心交换设备通过侦听发现主核心交换设备down掉后即出现故障后,备核心交换设备立即转为主核心交换设备,并判断自身是否已下发硬件组播转发表项,如果没有下发,则立即根据自身维护的软件组播转发表项下发硬件组播转发表项,接替原主核心交换设备完成组播数据转发;如果已下发硬件组播转发表项,则不作处理。
当原发生故障的主核心交换设备又恢复正常时,该设备将自身的状态设置为备,并与新的主核心交换设备进行软件组播转发表项同步,以及侦听新的主核心交换设备的状态。
二、备核心交换设备出现故障
当主核心交换设备发现备核心交换设备down掉时,主核心交换设备首先检查自己的硬件组播转发表项是否已满或是否达到预设阈值,若未满或未达到预设阈值,则不做处理;若已满或已达到预设阈值,则找出自己未下发硬件组播转发表项的软件组播转发表项信息,当侦听到备核心交换设备恢复正常时,主核心交换设备立即将上述找出的软件组播转发表项信息同步给备核心交换设备,并通知备核心交换设备下发硬件组播转发表项,完成组播数据转发,以缩短因备核心交换设备出现故障而造成的业务中断时间。
相应地,本发明还提供了一种位于IP监控网络中的主核心交换设备,所述IP监控网络中还包括备核心交换机和汇聚设备,各台核心交换设备运行VRRP协议组成VRRP组,为汇聚设备提供VRRP服务。图3示出了本发明提供的主核心交换设备的结构示意图,主要包括:表项管理单元、硬件转发芯片和主备通信单元。其中,
表项管理单元,用于在收到PIM请求报文后,根据收到的PIM请求报文建立软件组播转发表项,并判断本设备的硬件组播转发表项是否已满或是否达到预设阈值,若未满或未达到,则向硬件转发芯片下发硬件组播转发表项,硬件转发芯片根据下发的硬件组播转发表项进行组播数据转发;若已满或已达到,则通知主备通信单元请求备核心交换设备进行负载分担。
主备通信单元请求备核心交换设备进行负载分担的过程具体包括:
当所述PIM请求报文来自汇聚设备时,所述主备通信单元向备核心交换设备发出组播查询报文,询问备核心交换设备是否能够到达所述PIM请求报文请求点播的组播源,如果可达,则请求备核心交换设备向该组播源方向发送PIM请求报文并下发硬件组播转发表项,完成组播数据转发;
当所述PIM请求报文来自非汇聚设备时,所述主备通信单元从主核心交换设备上已有的硬件组播转发表项中选择一条来自于汇聚设备的硬件组播转发表项,并向备核心交换设备发送组播查询报文,询问备核心交换设备是否能够到达该被选择的硬件组播转发表项的组播源,如果可达,则请求备核心交换设备向该组播源方向发送PIM请求报文并下发硬件组播转发表项,当备核心交换设备返回成功响应时,主备通信单元删除该条被选择的来自于汇聚设备的硬件组播转发表项,并通知表项管理单元根据接收到的来自于非汇聚设备的PIM请求报文下发一条新的硬件组播转发表项,完成组播数据转发。
图3所示设备可进一步包括:
故障处理单元,用于在备核心交换设备出现故障时,检查主核心交换设备的硬件组播转发表项是否已满或是否达到预设阈值,若未满或未达到,则不做处理;若已满或已达到,则找出主核心交换设备未下发硬件组播转发表项的软件组播转发表项,当备核心交换设备恢复正常时,将找出的软件组播转发表项信息同步给备核心交换设备,并通知备核心交换设备下发硬件组播转发表项,完成组播数据转发。
所述故障处理单元还可进一步用于,在主核心交换设备发生故障又恢复正常时,将主核心交换设备的状态设置为备,并与新的主核心交换设备进行软件组播转发表项同步,同时侦听新的主核心交换设备的状态。
另外,本发明还提供了一种位于IP监控网络中的备核心交换设备,所述IP监控网络中还包括主核心交换机和汇聚设备,各台核心交换设备运行VRRP协议组成VRRP组,为汇聚设备提供VRRP服务。图4示出了本发明提供的备核心交换设备的结构示意图,主要包括:表项管理单元、硬件转发芯片和主备通信单元。其中,
表项管理单元,用于在收到PIM请求报文后,根据收到的PIM请求报文建立软件组播转发表项;
主备通信单元,用于在接收到主核心交换设备发送的负载分担请求后,根据主核心交换设备的请求,通知表项管理单元向硬件转发芯片下发硬件组播转发表项,进行组播数据转发,与主核心交换设备分担负载。
当所述PIM请求报文来自非汇聚设备时,所述表项管理单元还进一步用于,在建立软件组播转发表项后,判断备核心交换设备的硬件组播转发表项是否已满或是否达到预设阈值,若未满或未达到,则向硬件转发芯片下发硬件组播转发表项,进行组播数据转发;若已满或已达到,则不作处理。
图4所示设备可进一步包括:
故障处理单元,用于在主核心交换设备出现故障时,将备核心交换设备的状态转换为主,并判断备核心交换设备是否已下发硬件组播转发表项,若未下发,则根据备核心交换设备维护的软件组播转发表项下发硬件组播转发表项,接替原主核心交换设备完成组播数据转发;若已下发,则不作处理。
以上所述对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。