专利名称:组播转发表项维护方法及协议无关组播路由器的制作方法
技术领域:
本发明涉及组播技术领域,具体涉及组播转发表项维护方法及协议无关组播 (PIM, Protocol Independent Multicast)路由器。
背景技术:
因特网协议(IP, Internet Protocol)视频监控已经成为安防领域的主流和未来。 监控业务中的实况点播业务存在多方点播者同时观看某一摄像机场景的需求。显然,IP组播是解决这一需求的很好途径。图I给出了现有的IP组播的典型组网图,如图I所示,如果两台监控主机和电视墙要同时点播同一个摄像机,那么,摄像机只需要出一路组播流,PM路由器Rtr-I复制出两份组播流,PM路由器Rtr-3也复制出两份组播流。如此,相对于单播的实况点播,摄像机的压力就小了很多,不用负责流的复制,网络设备根据接收者的需求在合适的节点复制组播流,网络流量压力也小了很多。虽然现有的IP组播技术有如上的优点,但在监控业务中存在一个表项容量消耗的问题,这通常存在于组播点播者为轮切者的场景中。当组播点播者为轮切者时,轮切者每隔一段时间轮切一次所加入的组播组,即轮切者会每隔一段时间加入一个或一批组播组, 当每一段时间结束时,会离开该段时间内加入的这个或这批组播组再加入另一个或另一批组播组。例如当轮切者为监控电视墙时,监控电视墙通常每隔5秒轮切一次所加入的组播组,即每隔5秒加入十多个组播组接收组播流,然后离开这些组播组再加入另一批组播组, 当离开一批组播组时,虽然PIM路由器不再转发这些组的组播流,但是这些组的(S,G)表项并不会从PM路由器上立即删除,而是要保留3分钟左右的时间,这是为了防止频繁地接收和离开对PIM路由器的性能消耗而设计的。但是大量无用(S,G)表项的残留又会占用紧张的转发表项容量,这些无用表项积累到一定程度会消耗光PM路由器的转发资源,最终导致轮切者无法再接收新的组播流。
发明内容
本发明提供组播转发表项维护方法及PIM路由器,以提高组播转发效率。本发明的技术方案是这样实现的—种组播转发表项维护方法,该方法包括协议无关组播PM路由器接收针对一个组播组的组播加入消息,且该消息带有轮切标记,判断是否存在针对该组播组的组播转发表项,若已存在,将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记;若不存在,生成针对该组播组的组播转发表项,将该消息的入接口添加到该表项的出接口列表中,同时在该出接口列表中的该入接口上添加轮切标记;PIM路由器接收针对一个组播组的组播离开消息,在自身查找针对该组播组的组播转发表项,将该消息的入接口从该表项的出接口列表中删除,若该出接口列表中的该入接口上带有轮切标记且该表项的出接口列表为空,则直接或加速删除该表项。当不存在针对该组播组的组播转发表项时,所述在该出接口列表中的该入接口上添加轮切标记的同时进一步包括在该新生成的组播转发表项上添加轮切标记,同时向上游PM路由器发送带有轮切标记的组播加入消息。当存在针对该组播组的组播转发表项时,所述将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记之前进一步包括判断该入接口是否已存在于该表项中,若已存在,判断该表项是否带有轮切标记, 若带有,向上游P頂路由器发送带有轮切标记的组播加入消息,若不带有,向上游P頂路由器发送不带轮切标记的组播加入消息;若不存在,则执行所述将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记的动作,且所述将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记的同时进一步包括判断该表项是否带有轮切标记,若带有,向上游PIM路由器发送带有轮切标记的组播加入消息,若不带有,向上游P頂路由器发送不带轮切标记的组播加入消息。所述方法进一步包括当PM路由器接收针对一个组播组的组播加入消息,且该消息不带轮切标记时, 判断是否存在针对该组播组的组播转发表项,若已存在,将该消息的入接口添加到该表项的出接口列表中,向上游PM路由器发送不带轮切标记的组播加入消息,且若该表项上带有轮切标记,则清除该轮切标记;若不存在,生成针对该组播组的组播转发表项,将该消息的入接口添加到该表项的出接口列表中,向上游PM路由器发送不带轮切标记的组播加入消息。当PM路由器接收针对一个组播组的组播加入消息,且该消息不带轮切标记时, 若已存在针对该组播组的组播转发表项,所述将该消息的入接口添加到该表项的出接口列表中之前进一步包括判断该入接口是否已存在于该表项的出接口列表中,若已存在于,则判断该出接口列表中该入接口上是否带有轮切标记,若带有,则清除该入接口上的轮切标记,且若该表项上带有轮切标记,则清除该表项上的轮切标记;若不存在于,则执行所述将该消息的入接口添加到该表项的出接口列表中的动作。所述PIM路由器将该消息的入接口从该表项的出接口列表中删除之后进一步包括若该出接口列表中的该入接口上不带轮切标记,且该出接口列表不为空,则判断该出接口列表中剩余的出接口上是否都带有轮切标记,若都带有,则在该表项上添加轮切标记。所述组播加入消息为因特网组管理协议IGMP加入消息,或者PM加入消息,或者组播侦听者发现MLD协议加入消息;所述组播离开消息为IGMP离开消息,或者PIM离开消息,或者MLD协议离开消
一种PM路由器,包括第一表项维护模块接收针对一个组播组的组播加入消息,且该消息带有轮切标记,判断是否存在针对该组播组的组播转发表项,若已存在,将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记;若不存在,生成针对该组播组的组播转发表项,将该消息的入接口添加到该表项的出接口列表中,同时在该出接口列表中的该入接口上添加轮切标记;第二表项维护模块接收针对一个组播组的组播离开消息,查找针对该组播组的组播转发表项,将该消息的入接口从该表项的出接口列表中删除,若该出接口列表中的该入接口上带有轮切标记且该表项的出接口列表为空,则直接或加速删除该表项。所述第一表项维护模块进一步用于,当不存在针对该组播组的组播转发表项时, 所述在该出接口列表中的该入接口上添加轮切标记的同时,在该新生成的组播转发表项上添加轮切标记,同时向上游PM路由器发送带有轮切标记的组播加入消息。所述第一表项维护模块进一步用于,当存在针对该组播组的组播转发表项时,所述将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记之前,判断该入接口是否已存在于该表项中,若已存在,判断该表项是否带有轮切标记,若带有,向上游PIM路由器发送带有轮切标记的组播加入消息,若不带有,向上游PIM路由器发送不带轮切标记的组播加入消息;若不存在,则执行所述将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记的动作,且,所述将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记的同时,判断该表项是否带有轮切标记,若带有,向上游PM路由器发送带有轮切标记的组播加入消息,若不带有,向上游PM路由器发送不带轮切标记的组播加入消息。所述PIM路由器进一步包括第三表项维护模块,用于当接收针对一个组播组的组播加入消息,且该消息不带轮切标记时,判断是否存在针对该组播组的组播转发表项,若已存在,将该消息的入接口添加到该表项的出接口列表中,向上游PM路由器发送不带轮切标记的组播加入消息,且若该表项上带有轮切标记,则清除该轮切标记;若不存在,生成针对该组播组的组播转发表项,将该消息的入接口添加到该表项的出接口列表中,向上游P頂路由器发送不带轮切标记的组播加入消息。所述第三表项维护模块进一步用于,当已存在针对该组播组的组播转发表项时, 所述将该消息的入接口添加到该表项的出接口列表中之前,判断该入接口是否已存在于该表项的出接口列表中,若已存在于,则判断该出接口列表中该入接口上是否带有轮切标记, 若带有,则清除该入接口上的轮切标记,且若该表项上带有轮切标记,则清除该表项上的轮切标记;若不存在于,则执行所述将该消息的入接口添加到该表项的出接口列表中的动作。所述第二表项维护模块进一步用于,当将所述组播离开消息的入接口从所述组播转发表项的出接口列表中删除之后,若该出接口列表中的该入接口上不带轮切标记,且该出接口列表不为空,则判断该出接口列表中剩余的出接口上是否都带有轮切标记,若都带有,则在该表项上添加轮切标记。与现有技术相比,本发明对于监控轮切这类特殊业务生成的转发表项可以加速清除,避免无用表项对于路由器组播转发表项容量的消耗,同时不影响正常组播业务的开展,提高了组播转发效率。
图
阅;
图程图流程图
I为现有的IP组播的典型组网2为本发明实施例提供的轮切者加入组播组时的组播转发表项维护方法流程 3为本发明实施例提供的非轮切者加入组播组时的组播转发表项维护方法流 4为本发明实施例提供的组播接收者离开组播组时的组播转发表项维护方法 5为本发明实施例提供的PIM路由器的组成示意图。
具体实施例方式下面结合附图及具体实施例对本发明再作进一步详细的说明。本发明实施例主要由三个部分组成当组播点播者为轮切者时,组播点播者加入组播组时的组播转发表项维护流程;当组播点播者为非轮切者时,组播点播者加入组播组时的组播转发表项维护流程;以及,组播接收者离开组播组时的组播转发表项维护流程。以下对这三个部分分别进行详细说明。图2为本发明实施例提供的轮切者加入组播组时的组播转发表项维护方法流程图,如图2所示,其具体步骤如下步骤201 :当轮切者要接收一组播组G的组播流时,发出因特网组管理协议(IGMP, Internet Group Management Protocol)加入消息,该消息携带要加入的组播组G标识,同时该消息带有轮切标记。如图I所示,假设图I中的电视墙为4*4分屏,则电视墙会一次发送针对16个组播组的IGMP加入消息,该16个IGMP加入消息中均需带有轮切标记。步骤202 =PIM路由器接收IGMP加入消息,从该消息中获取组播组G标识,判断是否已存在针对该组播组G的(S,G)表项或(*,G)表项,若是,执行步骤204;否则,执行步骤 203。S为组播源标识,G为组播组标识。步骤203 =PIM路由器生成针对该组播组的(S,G)表项或(*,G)表项,将该IGMP加入消息的入接口添加到该表项的出接口列表中,在该接口上添加轮切标记,同时在该表项上添加轮切标记,并向上游P頂路由器发送PM加入消息,该消息携带组播组G标识,同时带有轮切标记,转至步骤207。如图I中的Rtr-3从接口 pi收到来自电视墙的带有轮切标记的16个IGMP加入消息时,对于任一个IGMP加入消息,若发现不存在对应的(S,G)或(*,G)表项,则生成(S, G)或(*,G)表项,将接口 pi添加到表项的出接口列表中,在接口 Pl上添加轮切标记,同时在表项上添加轮切标记,并向上游PM路由器发送带有轮切标记的PM加入消息。步骤204 :PM路由器判断该IGMP加入消息的入接口是否已存在于该针对该组播组G的(S,G)表项或(*,G)表项的出接口列表中,若是,执行步骤206 ;否则,执行步骤205。
步骤205 =PIM路由器将该IGMP加入消息的入接口添加到针对该组播组的(S,G) 表项或(*,G)表项的出接口列表中,在该接口上添加轮切标记,同时向上游PM路由器发送 PM加入消息,该消息携带组播组G标识,同时若该(S,G)表项或(*,G)表项带有轮切标记, 则该P頂加入消息同时带有轮切标记,转至步骤207。本步骤中,若该(S,G)表项或(*,G)表项不带轮切标记,则说明PM路由器下还存在非轮切者,则向上游P頂路由器发出的PM加入消息不应带轮切标记。如图I中的Rtr-3从接口 pi收到来自电视墙的带有轮切标记的16个IGMP加入消息时,对于任一个IGMP加入消息,若发现已存在对应的(S,G)或(*,G)表项,则若接口 Pl已存在于表项的出接口列表中,则无需重复添加;否则,将接口 Pl添加到表项的出接口列表中,并在接口 Pl上添加轮切标记。同时,当接口 Pl已存在于表项的出接口列表中时, 若接口 Pl上已经带有了轮切标记,就无需再添加轮切标记;若接口 Pl上未添加轮切标记, 则说明接口 Pl下还同时存在非轮切接收者,也不应添加轮切标记。步骤206 =PIM路由器向上游PM路由器发送PM加入消息,该消息携带组播组G 标识,同时若该(S,G)表项或(*,G)表项带有轮切标记,则该PIM加入消息同时带有轮切标记。同样本步骤中,若该(S,G)表项或(*,G)表项不带轮切标记,则说明PM路由器下还存在非轮切者,则向上游P頂路由器发出的PM加入消息不应带轮切标记。步骤207 :上游PM路由器接收带有轮切标记的PM加入消息,从该消息中获取组播组G标识,判断是否已存在针对该组播组G的(S,G)表项或(*,G)表项,若是,执行步骤 209 ;否则,执行步骤208。步骤208 :上游PM路由器生成针对该组播组的(S,G)表项或(*,G)表项,将该 PIM加入消息的入接口添加到该表项的出接口列表中,在该接口上添加轮切标记,并在该表项上添加轮切标记,同时向其上游PM路由器发送PM加入消息,该消息携带组播组G标识,同时带有轮切标记,本流程结束。如图I中的Rtr-I从接口 p4收到来自Rtr_3的带有轮切标记的16个PM加入消息时,对于任一个PIM加入消息,若发现不存在对应的(S, G)或(*, G)表项,则生成(S, G) 或(*,G)表项,将接口 p4添加到表项的出接口列表中,在接口 p4上添加轮切标记,并在该表项上添加轮切标记,同时向上游PM路由器发送带有轮切标记的PM加入消息。步骤209 :上游PM路由器判断该PM加入消息的入接口是否已存在于该针对该组播组G的(S,G)表项或(*,G)表项的出接口列表中,若是,执行步骤211 ;否则,执行步骤 210。步骤210 :上游PM路由器将该PM加入消息的入接口添加到针对该组播组的(S, G)表项或(*,G)表项的出接口列表中,在该接口上添加轮切标记,同时向其上游PIM路由器发送PIM加入消息,该消息携带组播组G标识,同时若该(S,G)表项或(*,G)表项带有轮切标记,则该P頂加入消息同时带有轮切标记,本流程结束。如图I中的Rtr-I从接口 p4收到来自Rtr_3的带有轮切标记的16个PM加入消息时,对于任一个PIM加入消息,若发现已存在对应的(S,G)或(*,G)表项,贝1J若接口 p4已存在于表项的出接口列表中,则无需重复添加;否则,将接口 p4添加到表项的出接口列表中,并在接口 p4上添加轮切标记。同时,当接口 p4已存在于表项的出接口列表中时,若接口 p4上已经带有了轮切标记,就无需再添加轮切标记;若接口 p4上未添加轮切标记,则说明接口 P4下还同时存在非轮切接收者,也不应添加轮切标记。步骤211 :上游PM路由器向其上游PM路由器发送PM加入消息,该消息携带组播组G标识,同时若该(S,G)表项或(*,G)表项带有轮切标记,则该PIM加入消息同时带有轮切标记。当上游PM路由器接收到不带轮切标记的PM加入消息时,其处理过程见图3所示步骤311 319。图3为本发明实施例提供的非轮切者加入组播组时的组播转发表项维护方法流程图,如图3所示,其具体步骤如下步骤301 :非轮切者要接收一组播组G的组播流,发出IGMP加入消息,该消息携带要加入的组播组G标识。本步骤中的IGMP加入消息与现有的IGMP加入消息相同,不带轮切标记。步骤302 =PIM路由器接收IGMP加入消息,从该消息中获取组播组G标识,判断是否已存在针对该组播组G的(S,G)表项或(*,G)表项,若是,执行步骤304;否则,执行步骤 303。步骤303 =PIM路由器生成针对该组播组的(S,G)表项或(*,G)表项,将该IGMP加入消息的入接口添加到该表项的出接口列表中,同时向上游P頂路由器发送PM加入消息, 该消息携带组播组G标识,转至步骤311。步骤304 :PM路由器判断该IGMP加入消息的入接口是否已存在于该针对该组播组G的(S,G)表项或(*,G)表项的出接口列表中,若是,执行步骤308 ;否则,执行步骤305。步骤305 =PIM路由器将该IGMP加入消息的入接口添加到针对该组播组的(S,G) 表项或(*,G)表项的出接口列表中,并判断针对该组播组的(S,G)表项或(*,G)表项是否具有轮切标记,若是,执行步骤306 ;否则,执行步骤307。步骤306 =PIM路由器清除该(S,G)表项或(*,G)表项上的轮切标记,同时向上游 PIM路由器发送PM加入消息,该消息携带组播组G标识,转至步骤311。步骤307 =PIM路由器向上游PM路由器发送PM加入消息,该消息携带组播组G 标识,转至步骤311。步骤308 :PM路由器判断出接口列表中该IGMP加入消息的入接口上是否带有轮切标记,若是,执行步骤309 ;否则,执行步骤310。步骤309 :PM路由器清除出接口列表中该IGMP加入消息的入接口上的轮切标记, 同时向上游PM路由器发送PM加入消息,该消息携带组播组G标识,且,若针对该组播组 G的(S,G)表项或(*,G)表项上带有轮切标记,则也要清除该标记,转至步骤311。步骤310 :PM路由器向上游PM路由器发送PM加入消息,该消息携带组播组G 标识。步骤311 :上游PM路由器接收PM加入消息,从该消息中获取组播组G标识,判断是否已存在针对该组播组G的(S,G)表项或(*,G)表项,若是,执行步骤313;否则,执行步骤312。步骤312 :上游PM路由器生成针对该组播组的(S,G)表项或(*,G)表项,将该 PM加入消息的入接口添加到该表项的出接口列表中,同时向其上游PM路由器发送PM加入消息,该消息携带组播组G标识,本流程结束。步骤313 :上游PM路由器判断该PM加入消息的入接口是否已存在于该针对该组播组G的(S,G)表项或(*,G)表项的出接口列表中,若是,执行步骤317 ;否则,执行步骤 314。步骤314 :上游PM路由器将该PM加入消息的入接口添加到针对该组播组的(S, G)表项或(*,G)表项的出接口列表中,并判断针对该组播组的(S,G)表项或(*,G)表项是否具有轮切标记,若是,执行步骤315 ;否则,执行步骤316。步骤315 :上游PM路由器清除该(S,G)表项或(*,G)表项上的轮切标记,同时向其上游PIM路由器发送PIM加入消息,该消息携带组播组G标识,本流程结束。步骤316 :上游PM路由器向其上游PM路由器发送PM加入消息,该消息携带组播组G标识,本流程结束。步骤317 :上游PM路由器判断出接口列表中该PM加入消息的入接口上是否带有轮切标记,若是,执行步骤318 ;否则,执行步骤319。步骤318 :上游PM路由器清除出接口列表中该IGMP加入消息的入接口上的轮切标记,同时向其上游PM路由器发送PM加入消息,该消息携带组播组G标识,且,若针对该组播组G的(S,G)表项或(*,G)表项上带有轮切标记,则也要清除该标记,本流程结束。步骤319 :上游PM路由器向其上游PM路由器发送PM加入消息,该消息携带组播组G标识。图4为本发明实施例提供的组播接收者离开组播组时的组播转发表项维护方法流程图,如图4所示,其具体步骤如下步骤401 :组播接收者要离开一组播组G,发出IGMP离开消息,该消息携带组播组 G标识。步骤402 :PM路由器接收IGMP离开消息,从消息中获取组播组G标识,在自身查找到针对该组播组G的(S,G)表项或(*,G)表项,在该表项的出接口列表中查找到该IGMP 离开消息的入接口。步骤403 :PM路由器判断出接口列表中该IGMP离开消息的入接口上是否带有轮切标记,若是,执行步骤407 ;否则,执行步骤404。步骤404 :PM路由器将该IGMP离开消息的入接口从该表项的出接口列表中删除, 判断该出接口列表是否为空,若是,执行步骤405;否则,执行步骤406。步骤405 =PIM路由器向上游PM路由器发送PM离开消息,该消息携带组播组G 标识,转至步骤409。本步骤中,PM路由器还要在老化时长到达时,删除该表项。步骤406 :PM路由器若发现该出接口列表中剩余的出接口上都带有轮切标记,则在该表项上添加轮切标记,本流程结束。本步骤中,若PIM路由器发现该出接口列表中剩余的出接口上不都带有轮切标记,则不作进一步处理,本流程结束。步骤407 :PM路由器将该IGMP离开消息的入接口从该表项的出接口列表中删除, 判断该表项的出接口列表是否为空,若是,执行步骤408;否则,不作进一步处理,本流程结束。
步骤408 =PIM路由器直接或加速删除该表项,并向上游PM路由器发送PM离开消息,该消息携带组播组G标识。步骤409 :上游PM路由器接收PM离开消息,从消息中获取组播组G标识,在自身查找到针对该组播组G的(S,G)表项或(*,G)表项,在该表项的出接口列表中查找到该 PIM离开消息的入接口。步骤410 :上游PM路由器判断出接口列表中该PM离开消息的入接口上是否带有轮切标记,若是,执行步骤414 ;否则,执行步骤411。步骤411 :上游PM路由器将该PM离开消息的入接口从该表项的出接口列表中删除,判断该出接口列表是否为空,若是,执行步骤412;否则,执行步骤413。步骤412 :上游PM路由器向其上游PM路由器发送PM离开消息,该消息携带组播组G标识,本流程结束。本步骤中,上游PM路由器还要在老化时长到达时,删除该表项。步骤413 :上游PM路由器若发现该出接口列表中剩余的出接口上都带有轮切标记,则在该表项上添加轮切标记,本流程结束。本步骤中,若上游PIM路由器发现该出接口列表中剩余的出接口上不都带有轮切标记,则不作进一步处理,本流程结束。步骤414 :上游PM路由器将该PM离开消息的入接口从该表项的出接口列表中删除,判断该表项的出接口列表是否为空,若是,执行步骤415;否则,不作进一步处理,本流程结束。步骤415 :上游PM路由器直接或加速删除该表项,并向其上游PM路由器发送 PIM离开消息,该消息携带组播组G标识。图2 4所示实施例针对的是IPv4组播网络。对于IPv6组播网络,只需将图2 4所示实施例中的IGMP由组播侦听者发现(MLD, Multicast ListenerDiscovery)协议代替即可,其它完全相同。图5为本发明实施例提供的PM路由器的组成示意图,如图5所示,其主要包括 第一表项维护模块51、第二表项维护模块52、第三表项维护模块53和表项存储模块54,其中第一表项维护模块51 :接收针对一个组播组的组播加入消息,且该消息带有轮切标记,判断表项存储模块54中是否存在针对该组播组的组播转发表项,若已存在,将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记;若不存在,在表项存储模块54中生成针对该组播组的组播转发表项,将该消息的入接口添加到该表项的出接口列表中,同时在该出接口列表中的该入接口上添加轮切标记;其中,当轮切者点播组播组时,发出针对该组播组的组播加入消息,该消息带有轮切标记。第一表项维护模块51进一步用于,当不存在针对该组播组的组播转发表项时,在该出接口列表中的该入接口上添加轮切标记的同时,在该新生成的组播转发表项上添加轮切标记,同时向上游PM路由器发送带有轮切标记的组播加入消息。第一表项维护模块51进一步用于,当存在针对该组播组的组播转发表项时,将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记之前,判断该入接口是否已存在于该表项中,若已存在,判断该表项是否带有轮切标记,若带有,向上游P頂路由器发送带有轮切标记的组播加入消息,若不带有,向上游P頂路由器发送不带轮切标记的组播加入消息;若不存在,则执行将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记的动作,且,将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记的同时,判断该表项是否带有轮切标记,若带有,向上游P頂路由器发送带有轮切标记的组播加入消息,若不带有,向上游PM路由器发送不带轮切标记的组播加入消息。第二表项维护模块52 :接收针对一个组播组的组播离开消息,在表项存储模块54 中查找针对该组播组的组播转发表项,将该消息的入接口从该表项的出接口列表中删除, 若该出接口列表中的该入接口上带有轮切标记且该表项的出接口列表为空,则直接或加速删除该表项。第二表项维护模块52进一步用于,当将组播离开消息的入接口从组播转发表项的出接口列表中删除之后,若该出接口列表中的该入接口上不带轮切标记,且该出接口列表不为空,则判断该出接口列表中剩余的出接口上是否都带有轮切标记,若都带有,则在该表项上添加轮切标记。第三表项维护模块53 :接收针对一个组播组的组播加入消息,且该消息不带轮切标记,判断表项存储模块54中是否存在针对该组播组的组播转发表项,若已存在,将该消息的入接口添加到该表项的出接口列表中,向上游PM路由器发送不带轮切标记的组播加入消息,且若该表项上带有轮切标记,则清除该轮切标记;若不存在,生成针对该组播组的组播转发表项,将该消息的入接口添加到该表项的出接口列表中,向上游P頂路由器发送不带轮切标记的组播加入消息;其中,当非轮切者点播组播组时,发出针对该组播组的组播加入消息,该消息不带有轮切标记。第三表项维护模块53进一步用于,当已存在针对该组播组的组播转发表项时,将该消息的入接口添加到该表项的出接口列表中之前,判断该入接口是否已存在于该表项的出接口列表中,若已存在于,则判断该出接口列表中该入接口上是否带有轮切标记,若带有,则清除该入接口上的轮切标记,且若该表项上带有轮切标记,则清除该表项上的轮切标记;若不存在于,则执行将该消息的入接口添加到该表项的出接口列表中的动作。表项存储模块54 :存储组播转发表项。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种组播转发表项维护方法,其特征在于,该方法包括协议无关组播PM路由器接收针对一个组播组的组播加入消息,且该消息带有轮切标记,判断是否存在针对该组播组的组播转发表项,若已存在,将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记;若不存在,生成针对该组播组的组播转发表项,将该消息的入接口添加到该表项的出接口列表中,同时在该出接口列表中的该入接口上添加轮切标记;PIM路由器接收针对一个组播组的组播离开消息,在自身查找针对该组播组的组播转发表项,将该消息的入接口从该表项的出接口列表中删除,若该出接口列表中的该入接口上带有轮切标记且该表项的出接口列表为空,则直接或加速删除该表项。
2.根据权利要求I所述的方法,其特征在于,当不存在针对该组播组的组播转发表项时,所述在该出接口列表中的该入接口上添加轮切标记的同时进一步包括在该新生成的组播转发表项上添加轮切标记,同时向上游PM路由器发送带有轮切标记的组播加入消肩、O
3.根据权利要求2所述的方法,其特征在于,当存在针对该组播组的组播转发表项时, 所述将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记之前进一步包括判断该入接口是否已存在于该表项中,若已存在,判断该表项是否带有轮切标记,若带有,向上游PM路由器发送带有轮切标记的组播加入消息,若不带有,向上游PM路由器发送不带轮切标记的组播加入消息;若不存在,则执行所述将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记的动作,且所述将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记的同时进一步包括判断该表项是否带有轮切标记,若带有,向上游P頂路由器发送带有轮切标记的组播加入消息,若不带有,向上游PM路由器发送不带轮切标记的组播加入消息。
4.根据权利要求I至3任一所述的方法,其特征在于,所述方法进一步包括当PIM路由器接收针对一个组播组的组播加入消息,且该消息不带轮切标记时,判断是否存在针对该组播组的组播转发表项,若已存在,将该消息的入接口添加到该表项的出接口列表中,向上游PM路由器发送不带轮切标记的组播加入消息,且若该表项上带有轮切标记,则清除该轮切标记;若不存在,生成针对该组播组的组播转发表项,将该消息的入接口添加到该表项的出接口列表中,向上游PM路由器发送不带轮切标记的组播加入消肩、O
5.根据权利要求4所述的方法,其特征在于,当PIM路由器接收针对一个组播组的组播加入消息,且该消息不带轮切标记时,若已存在针对该组播组的组播转发表项,所述将该消息的入接口添加到该表项的出接口列表中之前进一步包括判断该入接口是否已存在于该表项的出接口列表中,若已存在于,则判断该出接口列表中该入接口上是否带有轮切标记,若带有,则清除该入接口上的轮切标记,且若该表项上带有轮切标记,则清除该表项上的轮切标记;若不存在于,则执行所述将该消息的入接口添加到该表项的出接口列表中的动作。
6.根据权利要求I至3任一所述的方法,其特征在于,所述PIM路由器将该消息的入接口从该表项的出接口列表中删除之后进一步包括若该出接口列表中的该入接口上不带轮切标记,且该出接口列表不为空,则判断该出接口列表中剩余的出接口上是否都带有轮切标记,若都带有,则在该表项上添加轮切标记。
7.根据权利要求I所述的方法,其特征在于,所述组播加入消息为因特网组管理协议 IGMP加入消息,或者PM加入消息,或者组播侦听者发现MLD协议加入消息;所述组播离开消息为=IGMP离开消息,或者PIM离开消息,或者MLD协议离开消息。
8.—种PM路由器,其特征在于,包括第一表项维护模块接收针对一个组播组的组播加入消息,且该消息带有轮切标记,判断是否存在针对该组播组的组播转发表项,若已存在,将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记;若不存在,生成针对该组播组的组播转发表项,将该消息的入接口添加到该表项的出接口列表中,同时在该出接口列表中的该入接口上添加轮切标记;第二表项维护模块接收针对一个组播组的组播离开消息,查找针对该组播组的组播转发表项,将该消息的入接口从该表项的出接口列表中删除,若该出接口列表中的该入接口上带有轮切标记且该表项的出接口列表为空,则直接或加速删除该表项。
9.根据权利要求8所述的PIM路由器,其特征在于,所述第一表项维护模块进一步用于,当不存在针对该组播组的组播转发表项时,所述在该出接口列表中的该入接口上添加轮切标记的同时,在该新生成的组播转发表项上添加轮切标记,同时向上游PM路由器发送带有轮切标记的组播加入消息。
10.根据权利要求8所述的PIM路由器,其特征在于,所述第一表项维护模块进一步用于,当存在针对该组播组的组播转发表项时,所述将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记之前,判断该入接口是否已存在于该表项中,若已存在,判断该表项是否带有轮切标记,若带有,向上游P頂路由器发送带有轮切标记的组播加入消息,若不带有,向上游PM路由器发送不带轮切标记的组播加入消息;若不存在,则执行所述将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记的动作,且,所述将该消息的入接口添加到该表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记的同时,判断该表项是否带有轮切标记,若带有,向上游PM路由器发送带有轮切标记的组播加入消息,若不带有,向上游PM路由器发送不带轮切标记的组播加入消息。
11.根据权利要求8至10任一所述的PM路由器,其特征在于,所述PM路由器进一步包括第三表项维护模块,用于当接收针对一个组播组的组播加入消息,且该消息不带轮切标记时,判断是否存在针对该组播组的组播转发表项,若已存在,将该消息的入接口添加到该表项的出接口列表中,向上游PM路由器发送不带轮切标记的组播加入消息,且若该表项上带有轮切标记,则清除该轮切标记;若不存在,生成针对该组播组的组播转发表项,将该消息的入接口添加到该表项的出接口列表中,向上游PM路由器发送不带轮切标记的组播加入消息。
12.根据权利要求11所述的PIM路由器,其特征在于,所述第三表项维护模块进一步用于,当已存在针对该组播组的组播转发表项时,所述将该消息的入接口添加到该表项的出接口列表中之前,判断该入接口是否已存在于该表项的出接口列表中,若已存在于,则判断该出接口列表中该入接口上是否带有轮切标记,若带有,则清除该入接口上的轮切标记,且若该表项上带有轮切标记,则清除该表项上的轮切标记;若不存在于,则执行所述将该消息的入接口添加到该表项的出接口列表中的动作。
13.根据权利要求8所述的PIM路由器,其特征在于,所述第二表项维护模块进一步用于,当将所述组播离开消息的入接口从所述组播转发表项的出接口列表中删除之后,若该出接口列表中的该入接口上不带轮切标记,且该出接口列表不为空,则判断该出接口列表中剩余的出接口上是否都带有轮切标记,若都带有,则在该表项上添加轮切标记。
全文摘要
本发明公开了组播转发表项维护方法及协议无关组播路由器。方法包括PIM路由器接收针对一个组播组的组播加入消息,且该消息带有轮切标记,将该消息的入接口添加到针对该组播组的组播转发表项的出接口列表中,并在该出接口列表中的该入接口上添加轮切标记;PIM路由器接收针对一个组播组的组播离开消息,在自身查找针对该组播组的组播转发表项,将该消息的入接口从该表项的出接口列表中删除,若该出接口列表中的该入接口上带有轮切标记且该表项的出接口列表为空,则直接或加速删除该表项。本发明提高了组播转发效率。
文档编号H04N21/63GK102595248SQ201210014059
公开日2012年7月18日 申请日期2012年1月18日 优先权日2012年1月18日
发明者刘宇, 周迪, 陈旭盛 申请人:杭州华三通信技术有限公司