基于mpls的组播数据报文转发方法和装置的制作方法

文档序号:7890743阅读:199来源:国知局
专利名称:基于mpls的组播数据报文转发方法和装置的制作方法
技术领域
本发明涉及通信技术领域,特别涉及一种基于MPLS (多协议标签交换)的组播数据报文转发方法和装置
背景技术
MPLS是一种在开放的通信网上利用标签引导数据高速、高效传输的技术,通过应用MPLS技术可以有效提高单播数据报文的转发效率,然而,对于组播数据报文却无法实现高转发效率。现有技术中,基于MPLS的组播数据报文的转发的实现原理与单播数据报文的转发的实现原理相同下游标签交换路由器(LSR)向上游LSR分发一个入标签,上游LSR把下游LSR分发的标签和对应的出接口进行绑定;在转发组播数据报文时,针对每个出接口进行报文的复制和标签封装,将封装后的组播数据报文转发出去。参见图1,图I是现有技术基于MPLS的组播应用组网示意图,包括组播源、组播接收者I、组播接收者2、组播接收者3、路由器R1、路由器R2、路由器R3、路由器R4 ;其中,R1、 R2、R3、R4是支持组播转发和标签交换功能的组播标签交换路由器(LSR)。在图I所示组网中,为了实现组播数据报文转发,R3、R4分别向R2分发入标签L3、 L4,R2将入标签L3和出接口 P3进行绑定,将入标签L4和出接口 P4进行绑定;R2向Rl分发入标签L2,Rl将入标签L2和出接口 P2进行绑定;这样,当组播数据报文进入Rl后,Rl 将组播数据报文封装上入标签L2并从出接口 P2发送到R2 ;R2将接收到的组播数据报文中的L2标签弹出,复制并封装入标签L3后转发到R3,复制并封装入标签L4后转发到R4 ;R3 和R4则分别将接收到的组播数据报文中的标签弹出,并转发到各自连接的点播者。在上述过程中,R2中存在多个出接口,需要针对每个出接口进行报文的复制和标签封装,这会导致组播数据报文的转发效率低下,不能体现通过标签转发组播数据报文的意义。

发明内容
有鉴于此,本发明的目的在于提供一种基于MPLS的组播数据报文转发方法,该方法能够提高组播数据报文的转发效率。为了达到上述目的,本发明提供了一种基于MPLS的组播数据报文转发方法,该方法包括当前组播标签交换路由器LSR作为组播传送路径的头节点,获取自举路由器BSR 选择的主组播标签分配器为组播传送路径的组播FEC分配的组播标签;根据所述组播FEC 的组播转发表确定所有下游邻居组播LSR,如果不存在下游邻居组播LSR,则建立所述组播 FEC的组播转发表对应的关联于所述组播标签的组播标签转发表,根据组播标签转发表转发组播数据报文;否则,向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR的组播标签确认报文后,建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表,根据组播标签转发表转发组播数据报文;当前组播LSR作为组播传送路径的转发节点和/或尾接点,接收到上游邻居组播LSR的组播标签通告报文后,获取组播标签通告报文中携带的为所述组播FEC分配的组播标签;根据所述组播FEC的组播转发表确定所有下游邻居组播LSR,如果不存在下游邻居组播LSR,则向上游邻居组播LSR发送组播标签确认报文,并建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表,根据组播标签转发表转发组播数据报文;否则,向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR的组播标签确认报文后,向上游邻居组播LSR发送组播标签确认报文,并建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表,根据组播标签转发表转发组播数据报文。
本发明还提供了一种组播LSR,该组播LSR为组播组的头节点,该组播LSR包括标签获取单元、标签通告单元、表建立单元、报文转发单元;所述标签获取单元,用于获取自举路由器BSR选择的主组播标签分配器为组播传送路径的组播FEC分配的组播标签;所述标签通告单元,用于在标签获取单元获取主组播标签分配器为所述组播FEC分配的组播标签后,根据所述组播FEC的组播转发表确定所有下游邻居组播LSR,如果不存在下游邻居组播LSR,则向表建立单元发送第一通知,否则,向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR的组播标签确认报文后,向表建立单元发送第一通知;所述表建立单元,用于接收到标签通告单元的第一通知后,建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表;所述报文转发单元,用于根据所述组播标签转发表转发组播数据报文。本发明还提供了另一种组播LSR,该组播LSR为组播组的转发节点和/或尾结点,该组播LSR包括标签获取单元、标签通告单元、表建立单元、报文转发单元;所述标签获取单元,用于接收上游邻居组播LSR的组播标签通告报文,获取组播标签通告报文中携带的主组播标签分配器为组播传送路径的组播FEC分配的组播标签;用于接收到标签通告单元的第四通知后,向上游邻居组播LSR发送组播标签确认报文;所述标签通告单元,用于在标签获取单元获取为所述组播FEC分配的组播标签后,根据所述组播FEC的组播转发表确定所有下游邻居组播LSR,如果不存在下游邻居组播LSR,则向标签获取单元发送第四通知,并向表建立单元发送第五通知,否则,向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR的组播标签确认报文后,向标签获取单元发送第四通知,并向表建立单元发送第五通知;由上面的技术方案可知,本发明中,组播传送路径的头节点获取主组播标签分配器为组播传送路径的组播FEC分配的组播标签后,将该组播标签通告给自身的每个下游邻居组播LSR ;头节点的每个下游邻居组播LSR获取该组播标签后,再继续通告给自身的每个下游邻居组播LSR,依次类推,直到从头节点到尾节点之间的所有组播LSR均获得该组播标签,在此过程中每个组播LSR建立各自的组播转发表对应的关联于该组播标签的组播标签转发表,并根据该组播标签转发表进行组播数据报文的转发。本发明在组播LSR具有多个出接口时,不需要针对每个出接口进行报文复制和封装,因此能够提高组播报文的转发效率。


图I是现有技术基于MPLS的组播应用组网不意图;图2是本发明实施例组播标签分配过程图;图3是本发明实施例组播标签通告过程图;图4是本发明实施例基于MPLS的组播报文转发方法的流程示意图;图5是本 发明实施例一种组播LSR的结构示意图;图6是本发明实施例另一种组播LSR的结构示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例, 对本发明的技术方案进行详细说明。为了便于描述,以下将从组播源到组播接收者之间的组播传送路径中,直连组播源的组播LSR称为头(Ingress)节点,直连组播接收者的组播LSR称为尾(egress)节点, 其它的组播LSR称为转发(Transit)节点。本发明的主要思想是为组播传送路径的组播FEC分配一个唯一的组播标签,将该组播标签通告给组播传送路径中的所有组播LSR ;组播传送路径中的每个组播LSR获得为组播FEC分配的组播标签后,建立该组播FEC的组播转发表对应的关联于该组播标签的组播标签转发表;根据组播标签转发表进行组播数据报文的转发。这里,组播FEC以组播组信息为标识,也即组播FEC与组播组信息具有一一对应的关系;或以组播组及组播源信息为标识,也即组播FEC与组播组及组播源信息具有一一对应的关系。本发明适用于协议无关组播(PIM)稀疏模式/源特定组播(SM/SSM)和双向协议独立组播(BIdir PIM)应用组网。首先对组播标签和组播标签分配器进行说明由于需要对网络中的每个组播FEC分配一个唯一的组播标签,本发明实施例中可以预先设定一个组播标签范围,该组播标签范围内的所有标签只能用于分配给组播FEC,可由系统保证该组播标签范围内的标签不会再被其它标签分发协议进行分配和使用。例如, 可以定义组播标签范围为65536到86016,那么从65536和86016之间的所有值都只能被分配给组播FEC。可以在组播MPLS范围域内设置一个组播标签分配器,通过组播标签分配器进行网络内的组播标签的统一分配和回收。可以将网络内任何一个路由器配置成组播标签分配器,例如在图I中,Rl、R2、R3、R4均可以被配置为组播标签分配器,也可以配置专用的组播标签分配器。基于可靠性考虑,可以同时配置多个组播标签分配器,选择其中一个作为主组播标签分配器,由主组播标签分配器执行组播标签的分配和回收,当主组播标签分配器故障时,在其它所有未故障组播标签分配器重新选择一个作为主组播标签分配器。可以配置一台设备,例如自举路由器(BSR)来进行组播标签分配器的故障检测和主组播标签分配器的选择。每个组播标签分配器可以向BSR发送组播标签分配器通告报文,在组播标签分配器通告报文中携带该组播标签分配器相关信息,例如该组播标签分配器的地址、优先级等信息,从而告知BSR自身为组播标签分配器。BSR在接收到所有组播标签分配器的组播标签分配器通告报文后,可以获取并存储组播标签分配器通告报文中携带的组播标签分配器相关信息,并从中选择一个作为主组播标签分配器。在选择了主组播标签分配器之后,BSR还需要将该选择的主组播标签分配器泛洪到网络中。这里,BSR可以将主组播标签分配器相关信息随同候选汇聚点(RP)信息封装成扩展的BSR报文向全网泛洪,最终使网络内所有的组播LSR获得相同的主标签分配器相关信息和RP信息。BSR可以通过对组播标签分配器进行老化处理来检测组播标签分配器是否故障。每个组播标签分配器可以周期性(例如每隔第一预设时间)向BSR发送组播标签分配器通告报文;BSR首次接收到该组播标签分配器的组播标签分配器通告报文时,可以获取并存储组播标签分配器通告报文中携带的该组播标签分配器的相关信息,同时还可以设置该组播标签分配器的第一老化时间;这里,第一老化时间应小于第一预设时间,该第一老化时间可以在BSR中预先设定,也可以在组播标签分配器中预先设定,并携带在组播标签分配器通告报文中通告给BSR。组播标签分配器正常的情况下,会每隔第一预设时间发送组播标签分配器通告报文,这样,BSR会在该组播标签分配器的第一老化时间内再次接收到该组播标签分配器的组播标签分配器通告报文,并刷新该组播标签分配器的第一老化时间。组播标签分配器故障的情况下,无法再继续发送组播标签分配器通告报文,因此,BSR会在该组播标签分配器的第一老化时间超时后,确定该组播标签分配器故障,将存储的该组播标签分配器的相关信息老化。BSR检测到某个组播标签分配器故障后,需要判断该组播标签分配器是否是主组播标签分配器,如果是,则还需要在未故障的所有组播标签分配器中重新选择一个作为主组播标签分配器,并将该选择的新的主组播标签路由器相关信息泛洪到网络中,使得网络内所有的组播LSR获得新的主标签分配器相关信息。其次,对组播标签分配和回收进行说明组播标签分配可以由组播传送路径的头节点发起。头节点可以向主组播标签分配器发送携带组播传送路径的组播FEC信息的组播标签请求报文,所述组播FEC信息可以包括组播组、组播源信息;主组播标签分配器接收到头节点的组播标签请求报文后,如果尚未为该组播FEC分配组播标签,则可以在组播标签范围内随机选择一个未分配的组播标签,将该组播标签携带在组播标签映射报文中返回给头节点。这样,头节点就获得了主组播标签分配器为该组播FEC分配的组播标签。 以图I为例,Rl为头节点,假设R2被配置并选择为主组播标签分配器,组播组地址为10. I. I. 100,则头节点发起的组播标签分配如图2所示的本发明实施例组播标签分配过程图,Rl首先向R2发送组播标签请求报文,其中携带组播组地址10. I. I. 100,以及组播源地址255. I. I. 1,R2接收到Rl的组播标签请求报文后,确定尚未为以组播组10. I. I. 100和组播源255. I. I. I为标识的组播FEC分配组播标签,因此在所有未分配的组播标签中选择一个组播标签,例如60091,将该组播标签携带在组播标签映射报文中返回给R1,从而Rl获得主组播标签分配器为以组播组10. I. I. 100和组播源255. I. I. I为标识的组播FEC分配的组播标签60091。基于组播标签的有限性,需要对组播标签进行及时回收。当组播传送路径的头节点中组播传送路径的组播FEC对应的组播转发表老化时,需要同步删除该组播转发表对应的组播标签转发表,同时,还可以向主组播标签分配器发送携带组播传送路径的组播FEC 信息的组播标签释放报文,主组播标签分配器接收到头节点的组播标签释放报文后,会释放此前为该组播FEC分配的组播标签。当组播传送路径中的传输节点和/或尾节点中,组播传送路径的组播FEC对应的组播转发表老化时,需要同步删除该组播转发表对应的组播标签转发表。
再次,对组播标签的刷新和老化处理进行说明为了保证网络中的组播标签一致性和使用效率,主组播标签分配器需要对分配给每个组播FEC的组播标签进行刷新和老化处理。为此,主组播标签分配器为每个组播FEC分配组播标签后,可以记录为该组播FEC 分配的组播标签,并对该组播标签进行刷新和老化处理。组播传送路径的头节点在获得主组播标签分配器为组播传送路径的组播FEC分配的组播标签后,也可以记录该组播标签, 并对该组播标签进行刷新和老化处理。头节点对组播标签的刷新和老化处理可以如下组播传送路径的头节点获得主组播标签分配器为组播传送路径的组播FEC分配的组播标签后,设置该组播标签的第二老化时间(例如360秒),并在此后每隔第二预设时间(例如120秒)向主组播标签分配器发送组播标签请求报文,如果在第二老化时间内接收到主组播标签路由器返回的组播标签映射报文,则刷新该组播标签的第二老化时间,如果未在第二老化时间内接收到主组播标签路由器返回的组播标签映射报文,则删除该组播标签。另外,这里,第二预设时间应小于第二老化时间,该第二老化时间可以在组播标签分配器中预先设定,并携带在组播标签映射报文中发送给组播传送路径的头节点,也可以在组播传送路径的头节点中预先设定。实际实现中,头节点每隔第二预设时间发送的组播标签请求报文中可以只携带组播FEC信息,不携带已分配给该组播FEC的组播标签信息;也可以同时携带组播FEC信息以及已分配给该组播FEC的组播标签信息。相应地,根据组播标签请求报文中携带的内容不同,主组播标签分配器可以执行不同的处理。如果主组播标签分配器接收到的组播标签请求报文中只携带了组播FEC信息,而未携带已分配给该组播FEC的组播标签信息,则可以查找为该组播FEC分配的组播标签,若未查找到,则说明尚未为该组播FEC分配组播标签,需要在组播标签范围内选择一个未分配的组播标签分配给该组播FEC,并将该组播标签携带在组播标签映射报文中返回给头节点,若查找到,则说明已经为该组播FEC分配组播标签,因此,只需将查找到的组播标签携带在组播标签映射报文中返回给头节点。如果主组播标签分配器接收到的组播标签请求报文中同时携带了组播FEC信息以及已分配给该组播FEC的组播标签信息,则可以直接将组播标签请求报文中携带的组播标签信息携带在组播标签映射报文中返回给头节点。另外,主组播标签分配器接收到头节点发来的携带组播FEC信息的组播标签请求报文,并为该组播FEC分配组播标签后,可以记录该组播FEC和组播标签的对应关系,并设置该对应关系的老化时间(例如360秒),如果在该对应关系的老化时间内再次接收到该头节点发来的组播标签请求报文,则可以刷新该对应关系的老化时间,否则,删除该对应关系并释放该组播标签。这里,主组播标签分配器设置的组播FEC和组播标签的对应关系的老化时间,可以预先设定,应该大于第二预设时间,较佳地,大于或者等于第二老化时间,以避免组播标签分配器已经释放组播标签,而组播标签路径上的各组播LSR尚未删除该组播标签的情况出现。BSR检测到原主组播标签分配器故障,并选择出新的主组播标签分配器后,新的主组播标签分配器中并未记录原主组播标签分配器已分配给每个组播FEC的组播标签。另一方面,组播传送路径的头节点已经获取原主组播标签分配器为组播传送路径的组播FEC分配的组播标签,并进行了后续的组播标签通告和组播标签转发表建立等操作,如果重新请求新的主组播标签分配器为该组播FEC分配组播标签,则会造成网络中的组播标签不一致,并会导致流量中断,因此,需要请求新的主组播标签分配器将原来已经分配给该组播FEC的组播标签仍然分配该组播FEC。 为此,当组播传送路径的头节点接收到检测到新的主组播标签分配器后,可以向新的主组播标签分配器发送携带组播转发路径的组播FEC信息以及已分配给该组播FEC的组播标签信息的组播标签请求报文,新的主组播标签分配器接收到头节点的该组播标签请求报文后,记录该组播FEC和组播标签的对应关系,并设置该对应关系的老化时间,同时返回携带已分配给该组播FEC的组播标签信息的组播标签映射报文,从而使得新的主组播标签分配器可以将原来已分配该组播FEC的组播标签仍分配给该组播FEC。此后,头节点将和新的主组播标签分配器进行组播标签请求报文和组播标签映射报文的交互,以对分配给该组播FEC的组播标签进行刷新和老化处理。另外,头节点获得主组播标签分配器为组播传送路径的组播FEC分配的组播标签后,可以将该组播标签通告给自身的每个下游邻居组播LSR,每个下游邻居组播LSR获得主组播标签分配器为该组播FEC分配的组播标签后,可以继续将该组播标签通告给自身的每个下游邻居组播LSR,依次类推,直到组播传送路径中的所有组播LSR均获得主组播标签分配器为组播传送路径的组播FEC分配的组播标签。各组播LSR可以通过发送组播标签通告报文,向自身的每个下游邻居组播LSR进行组播标签通告。这里的组播标签通告报文可以是一个TTL为I的组播报文,组播标签通告报文中可以携带组播FEC信息以及已分配给该组播FEC的组播标签信息。参见图3,图3是本发明实施例组播标签通告过程图,图3基于图1,其中,Rl已经获得了 R2为以组播组10. I. I. 100和组播源255. I. I. I为标识的组播FEC分配的组播标签60091。那么,该组播标签的通告过程如下Rl根据组播转发表确定存在一个下游邻居组播LSR R2,因此向R2发送组播标签通告报文,报文中携带组播组地址10. I. I. 100、组播源地址255. I. I. 1,以及组播标签60091 ;R2接收到Rl的组播标签通告报文后,获得R2为以组播组10. I. I. 100和组播源255. I. I. I为标识的组播FEC分配的组播标签60091,然后根据组播转发表确定存在2个下游邻居组播LSR R3和R4,因此,分贝向R3和R4发送组播标签通告报文;R3、R4接收到R2的组播标签报文后,获得R2为以组播组10. I. I. 100和组播源255. I. I. I为标识的组播FEC分配的组播标签60091 ;由于R3和R4不存在下游邻居组播LSR,因此均向R2发送组播标签确认报文; R2接收完R3和R4的组播标签确认报文后,向Rl发送组播标签确认报文;Rl接收到R2的组播标签确认报文后,组播标签通告完成。在上述过程中,R2、R3、R4最终均获得了 R2为以组播组10. I. I. 100和组播源 255. I. I. I为标识的组播FEC分配的组播标签60091。在实际应用中,组播传送路径中的每个组播LSR在获得主组播标签分配器为组播传送路径的组播FEC分配的组播标签后,均需要对该组播标签进行刷新和老化处理。可以利用组播传送路径的头节点定期发送组播标签通告报文来触发组播传送路径上的其它各节点对获取的主组播标签分配器为组播传送路径的组播FEC分配组播标签进行刷新和老化处理。组播传送路径的头节点在获取主组播标签分配器为组播传送路径的组播FEC分配的组播标签后,可以每隔第三预设时间(例如60秒)向自身的每个下游邻居组播LSR发送组播标签通告报文进行组播标签通告;每个下游邻居组播LSR首次接收到上游邻居组播 LSR发送的组播标签通告报文时,获取组播标签通告报文中携带的主组播标签分配器为该组播FEC分配的组播标签,并设置该组播标签的第三老化时间(例如180秒),后续如果在第四老化时间内再次接收到上游邻居组播LSR发送的组播标签通告报文,则可以刷新该组播标签的第四老化时间,如果超过第四老化时间未接收到上游邻居组播LSR发送的组播标签通告报文,则可以删除该组播标签。另外,每个下游邻居组播LSR在接收到上游邻居组播 LSR发送的组播标签通告报文后,还可以继续向自身的每个下游邻居组播LSR发送组播标签通告报文,使得自身的每个下游邻居组播LSR也可以获取组播标签通告报文中携带的主组播标签分配器为该组播FEC分配的组播标签,并设置该组播标签的第四老化时间,并根据是否在第四老化时间内再次接收到上游邻居组播LSR发送的组播标签通告报文来对该组播标签进行的刷新和老化处理,依次类推,从而使组播传送路径中的所有组播LSR均可以对获得的主组播标签分配器为组播传送路径的组播FEC分配的组播标签进行刷新和老化处理,以保证网络中的组播标签一致性和使用效率。这里,第三预设时间应小于第三老化时间,该第三老化时间可以在组播传送路径的头节点中预先设定,并携带在组播标签通告报文中发送给下游组播LSR,也可以在组播传送路径的每个组播LSR上预先设定。最后,对组播LSP的建立和组播数据报文的转发进行说明在图3所示的本发明实施例组播标签通告过程中,可以建立组播标签转发表,用以进行组播数据报文的转发。组播标签通告和组播标签转发表建立的完整过程可以如下头节点获得主组播标签分配器为组播传送路径的组播FEC分配的组播标签,根据该组播FEC的组播转发表确定所有的下游邻居组播LSR,如果不存在下游邻居组播LSR,则建立该组播FEC的组播转发表对应的关联于该组播标签的组播标签转发表,如果存在下游邻居组播LSR,则向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR返回的组播标签确认报文后,建立该组播FEC的组播转发表对应的关联于该组播标签的组播标签转发表。相应地,转发节点和/或尾节点接收到上游邻居组播LSR发送的组播标签通告报文后,可以获取组播标签通告报文中携带的已经分配给该组播FEC的组播标签信息,根据该组播FEC的组播转发表确定所有的下游邻居组播LSR,如果不存在下游邻居组播LSR,则建立该组播FEC的组播转发表对应的关联于该组播标签的组播标签转发表,并返回组播标签确认报文;如果存在下游邻居组播LSR,则向每个下游邻居MLR发送组播标签通告报文,接收完所有下游邻居组播LSR返回的组播标签确认报文后,建立该组播FEC的组播转发表对应的关联于该组播标签的组播标签转发表,并返回组播标签确认报文。
组播传送路径中的各个组播LSR建立组播标签转发表后,组播LSP建立。在上述组播标签通告和组播标签转发表建立的过程中,尾节点最先建立组播标签转发表,头节点最后建立组播标签转发表,最终从所有尾节点到头节点之间建立完整的组播LSP,这样,可以避免组播数据报文丢失。需要说明的是,在实际应用中,同一个组播LSR可以同时作为头节点、转发节点、和/或尾节点,例如,假设某个组播LSR是组播传送路径上与组播源直接相连的节点(也即指定路由器),该组播LSR有三个出接口,则如果该三个出接口连接的均为组播LSR,则该组播LSR只作为头节点,如果该三个接口中存在至少一个接口连接的是组播接收者,则该组播LSR同时作为头节点和尾节点,如果该三个出接口中存在至少一个接口连接的是组播接收者,还存在至少一个接口连接的是组播LSR,则该组播LSR同时作为头节点、尾节点、转发节点。组播LSP建立后,对于头节点,其接收到组播数据报文后,需要根据组播标签转发表从每个出接口转发,如果该出接口连接的是组播LSR,则需要在组播数据报文中压入对应的组播标签后从该出接口转发出去,如果该出接口连接的不是组播LSR,则说明该出接口连接的是组播接收者或不支持标签转发的组播路由器,因此需要将组播数据报文直接从该出接口转发出去。对于转发节点和/或尾节点,其接收到组播数据报文后,需要根据组播标签转发表从每个出接口转发,如果该出接口连接的是组播LSR,由于组播数据报文中已经携带组播标签,又因为所有组播LSR共用一个组播标签,因此不需要进行标签交换,直接从该出接口转发即可,如果该出接口连接的不是组播LSR,则说明该出接口连接的是组播接收者或不支持标签转发的组播路由器,因此需要将组播数据报文,因此需要将组播数据报文中的组播标签弹出后再从该出接口转发。为此,本发明实施例中,定义了三种标签操作压入(push),表示压入组播标签到组播数据报文后从出接口转发。说明当前设备是与组播源直接相连的头节点,而且该出接口连接的下游设备是组播LSR ;转发(go),表示不对组播数据报文的组播标签进行修改,直接从出接口转发组播标签数据报文。如果当前设备是头节点,则说明该出接口连接的下游设备是组播接收者或不支持标签转发的组播路由器;如果当前设备不是头节点,则说明该出接口连接的下游设备是组播LSR ;弹出(pop),表示将组播数据报文中的组播标签弹出后从出接口转发。说明该出接口连接的下游设备是组播接收者或不支持标签转发的组播路由器。因此,在上述组播标签通告和组播标签转发表建立的过程中,头节点建立该组播FEC的组播转发表对应的关联于该组播标签的组播标签转发表的方法具体可以为针对组播转发表的每个出接口,在组播标签转发表中添加该出接口,如果该出接口连接的是组播LSR,则将该出接口对应的标签操作设置为push,否则,将该出接口对应的标签操作设置为
gO O
相应地,转发节点和/或尾节点建立该组播FEC的组播转发表对应的关联于该组播标签的组播标签转发表的方法具体可以为针对组播转发表的每个出接口,在组播标签转发表中添加该出接口,如果该出接口连接的是组播LSR,则将该出接口对应的标签操作设置为go,否则,将该出接口对应的标签操作设置为pop。组播标签转发表中内容可以如表一所示
组播标签老化时间入接口 I出接口标签操作 69001360 秒 G1/0/1 G2/0/1go
G3/0/1go
G2/0/5pop表一其中,由于组播标签是主组播标签分配器为组播FEC分配的,组播FEC又具有对应的组播转发表,因此,组播标签转发表和组播转发表具有对应关系。老化时间是该组播标签转发表的老化时间。入接口和各出接口与组播转发表中的入接口和出接口一致,标签操作是根据各出接口连接的是否是组播LSR而确定的该出接口对应的标签操作。另外,组播传送路径中的任一组播LSR检测到新的出接口时,需要进行组播标签通告,以及在组播转发表中增加该新的出接口对应的组播转发表项,在组播标签转发表增加该新的出接口以及该新的出接口对应的标签操作,检测到需要删除原有的出接口时,需要从组播转发表中删除该原有的出接口对应的组播转发表项,从组播标签转发表删除该原有的出接口以及该原有的出接口对应的标签操作。具体过程可以如下当前组播LSR检测到新的出接口时,建立该出接口对应的组播转发表项,如果该出接口连接的是组播LSR,则向该组播LSR发送组播标签通告报文,在接收到该组播LSR返回的组播标签确认报文后,建立该出接口对应的关联于相应的组播标签的标签转发表项在组播标签转发表中增加该出接口,若当前组播LSR是头节点,则将建立的标签转发表项的该出接口对应的标签操作设置为push,若当前组播LSR是转发节点和/或尾节点,则将建立的标签转发表项的该出接口对应的标签操作设置为go,;如果该出接口连接的是组播接收者或不支持标签转发的组播路由器,则在组播标签转发表中增加该出接口建立该出接口对应的关联于相应的组播标签的标签转发表项,若当前组播LSR是头节点,则将建立的标签转发表项的该出接口对应的标签操作设置为go,若当前组播LSR是转发节点和/或尾节点,则将建立的标签转发表项的该出接口对应的标签操作设置为pop ;当前组播LSR检测到需要删除原有出接口时,则删除组播转发表中该处接口对应的组播转发表项,并删除组播标签转发表中该出接口以及该出接口对应的标签操作。另外,根据组播标签转发表转发组播数据报文,实际上也就是根据组播标签转发表中各出接口对应的标签操作执行不同的处理和转发。对于任一出接口,如果该出接口对应的标签操作为push,则将组播标签转发表关联的组播标签压入该组播数据报文后从该出接口转发;如果该出接口对应的标签操作为go,则将该组播数据报文从该出接口转发;如果该出接口对应的标签操作为pop,则将该组播数据报文中的组播标签弹出后从该出接口转发基于前文所述的原理性说明,本发明实施例中提供了基于MPLS的组播报文转发方法。参见图4,图4为本发明实施例基于MPLS的组播报文转发方法的流程示意图,包括以下步骤步骤401、当前组播LSR作为组播传送路径的头节点,获取自举路由器BSR选择的主组播标签分配器为组播传送路径的组播FEC分配的组播标签;根据所述组播FEC的组播转发表确定所有下游邻居组播LSR,如果不存在下游邻居组播LSR,则建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表,根据组播标签转发表转发组播数据报文;否则,向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR的组播标签确认报文后,建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表,根据组播标签转发表转发组播数据报文。步骤402、当前组播LSR作为组播传送路径的转发节点和/或尾接点,接收到上游邻居组播LSR的组播标签通告报文后,获取组播标签通告报文中携带的为所述组播FEC分配的组播标签;根据所述组播FEC的组播转发表确定所有下游邻居组播LSR,如果不存在下游邻居组播LSR,则向上游邻居组播LSR发送组播标签确认报文,并建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表,根据组播标签转发表转发组播数据报文;否则,向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR的组播标签确认报文后,向上游邻居组播LSR发送组播标签确认报文,并建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表,根据组播标签转发表转发组播数据报文。图4所示本发明实施例中,所述组播FEC以组播组信息为标识,与所述组播组具有一一对应的关系;或者,所述组播FEC以组播组及组播源信息为标识,与所述组播组和组播源具有对应的关系。所述获取BSR选择的主组播标签分配器为组播传送路径的组播FEC分配的组播标签的方法具体可以为向主组播标签分配器发送携带所述组播FEC信息的组播标签请求报文,接收主组播标签分配器返回的组播标签映射报文,所述组播标签映射报文中携带了主组播标签分配器在接收到所述组播标签请求报文后为所述组播FEC分配的组播标签。图4所示本发明实施例中,在网络中配置至少一个组播标签分配器;每个组播标签分配器可以每隔第一预设时间向BSR发送组播标签分配器通告报文,所述组播标签分配器通告报文中携带该组播标签分配器的地址信息;如果需要按优先级选择主组播标签分配器,则还可以携带该组播标签分配器的优先级信息。BSR选择主组播标签分配器的方法具体可以为接收所有组播标签分配器发送的组播标签分配器通告报文,获取并存储每个组播标签分配器的地址信息,选择其中一个作为主组播标签分配器,并将选择的主组播标签分配器泛洪到网络中。另外,所述组播标签分配器通告报文中还可以携带第一老化时间;这样,在存储每个组播标签分配器的地址信息时,还可以进一步设置该组播标签分配器的第一老化时间,如果在第一老化时间内再次接收到该组播标签分配器的组播标签分配器通告报文,则刷新该第一老化时间,否则,确定该组播标签分配器故障,若该故障的组播标签分配器为主组播标签分配器,则在所有未故障的组播标签分配器中选择一个作为新的主组播标签分配器,并将新的主组播标签分配器泛洪到网络中;相应地,当前组播LSR作为组播组的头节点,检测到新的主组播标签分配器时,需要向新的主组播标签分配器发送携带所述组播FEC信息以及为所述组播FEC分配的组播标签的组播标签请求报文,接收新的主组播标签分配器返回的组播标签映射报文,所述组播标签映射报文中携带新的主组播标签分配器在接收到的所述组播标签请求报文中携带的为所述组播FEC分配的组播标签。图4所示本发明实施例中,所述组播标签映射报文中还可以携带第二老化时间;当前组播LSR作为组播传送路径的头节点,获得主组播标签分配器为所述组播 FEC分配的组播标签后,进一步包括设置该组播标签的第二老化时间,每隔第二预设时间向主组播标签分配器发送携带所述组播FEC信息的组播标签请求报文,如果接收到主组播标签分配器返回的携带已分配给所述组播FEC的组播标签的组播标签映射报文,则刷新该组播标签的第二老化时间,否则,删除该组播标签;其中,所述第二预设时间小于第二老化时间。图4所示本发明实施例中,所述组播标签通告报文中还可以携带第三老化时间; 当前组播LSR作为组播传送路径的头节点,向每个下游邻居组播LSR发送组播标签通告报文的方法为每隔第三预设时间向该下游邻居组播LSR发送组播标签通告报文;另外,当前组播LSR作为组播传送路径的转发节点和/或尾接点,获取组播标签通告报文中携带的为所述组播FEC分配的组播标签后,进一步包括设置该组播标签的第三老化时间,如果在第三老化时间内再次接收到上游邻居组播LSR发送的组播标签通告报文,则刷新该组播标签的第三老化时间,并向自身的每个下游邻居组播LSR发送组播标签通告报文,否则,删除该组播标签;所述第三预设时间小于第三老化时间。此外,所述删除该组播标签时,还需要进一步删除关联于该组播标签的组播标签转发表。图4所示本发明实施例中,当前组播LSR作为组播传送路径的头节点,建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表的方法可以为针对组播转发表中的每个出接口,在组播标签转发表中添加该出接口,如果该出接口连接的是组播LSR,则将该出接口对应的标签操作设置为push,否则,将该出接口对应的标签操作设置为go ;相应地,当前组播LSR作为组播传送路径的转发节点和/或尾接点,建立所述组播 FEC的组播转发表对应的关联于所述组播标签的组播标签转发表的方法可以为针对组播转发表中的每个出接口,在组播标签转发表中添加该出接口,如果该出接口连接的是组播 LSR,则将该出接口对应的标签操作设置为转发go,否则,将该出接口对应的标签操作设置为 pop。较佳地,该方法还可以进一步包括当前组播LSR作为组播传送路径的头节点,检测到新的出接口时,在组播转发表中添加该出接口对应的组播转发表项,如果该出接口连接的是组播LSR,则向该组播LSR发送组播标签通告报文,接收到该组播LSR返回的组播标签确认报文后,在组播标签转发表中添加该出接口,将该出接口对应的标签操作设置为push,否则,在组播标签转发表中添加该出接口,将该出接口对应的标签操作设置为go ;同样,当前组播LSR作为组播传送路径的转发节点和/或尾节点,检测到新的出接口时,建立该出接口对应的组播转发表项,如果该出接口连接的是组播LSR,则向该组播LSR发送组播标签通告报文,接收到该组播LSR返回的组播标签确认报文后,在组播标签转发表中添加该出接口,将该出接口对应的标签操作设置为go,否则,在组播标签转发表中添加该出接口,将该出接口对应的标签操作设置为pop ;
另外,当前组播LSR检测到需要删除原有出接口时,无论当前组播LSR是头节点、转发结点、或尾结点,均需删除组播转发表中该原有出接口对应的组播转发表项,并删除组播标签转发表中该原有出接口以及该原有出接口对应的标签操作。图4所示本发明实施例中,所述根据标签转发表转发组播数据报文的方法具体可以为针对标签转发表中的每个出接口,如果该出接口对应的标签操作为push,则将该组播标签转发表关联的组播标签压入组播数据报文,将压入了组播标签的组播数据报文从该出接口转发;如果该出接口对应的标签操作为go,则将组播数据报文从该出接口转发;如果该出接口对应的标签操作为pop,则将组播数据报文中的组播标签弹出,将弹出了组播标签的组播数据报文从该出接口转发。本发明还提供了一种组播LSR,该组播LSR是组播传送路径的头结点,下面结合图5进行说明。参见图5,图5是本发明实施例一种组播LSR的结构示意图,该组播LSR包括标签获取单元501、标签通告单元502、表建立单元503、报文转发单元504 ;其中,标签获取单元501,用于获取自举路由器BSR选择的主组播标签分配器为组播传送路径的组播FEC分配的组播标签;标签通告单元502,用于在标签获取单元501获取主组播标签分配器为所述组播FEC分配的组播标签后,根据所述组播FEC的组播转发表确定所有下游邻居组播LSR,如果不存在下游邻居组播LSR,则向表建立单元503发送第一通知,否则,向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR的组播标签确认报文后,向表建立单兀503发送第一通知;表建立单元503,用于接收到标签通告单元502的第一通知后,建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表;报文转发单元504,用于根据所述组播标签转发表转发组播数据报文。较佳地,所述组播FEC以组播组信息为标识;或者,所述组播FEC以组播组及组播源信息为标识;所述标签获取单元501在获取主组播标签分配器为所述组播FEC分配的组播标签时,用于向主组播标签分配器发送携带所述组播FEC信息的组播标签请求报文,接收主组播标签分配器返回的组播标签映射报文,所述组播标签映射报文中携带了主组播标签分配器在接收到所述组播标签请求报文后为所述组播FEC分配的组播标签。较佳地,所述标签获取单元501,用于检测到新的主组播标签分配器时,向新的主组播标签分配器发送携带所述组播FEC信息以及为所述组播FEC分配的组播标签的组播标签请求报文,接收新的主组播标签分配器返回的组播标签映射报文,所述组播标签映射报文中携带新的主组播标签分配器接收到的所述组播标签请求报文中携带的为所述组播FEC分配的组播标签。为了对组播标签进行刷新和老化处理,保持组播标签的一致性和有效性,所述组播标签映射报文中还携带了第二老化时间所述标签获取单元501在获得主组播标签分配器为所述组播FEC分配的组播标签后,进一步用于设置该组播标签的第二老化时间,每隔第二预设时间向主组播标签分配器发送携带所述组播FEC信息的组播标签请求报文,如果接收到主组播标签分配器返回的携带已分配给所述组播FEC的组播标签的组播标签映射报文,则刷新该组播标签的第二老化时间,否则,删除该组播标签;所述第二预设时间小于第二老化时间。此外,所述组播标签通告报文中还携带第三老化时间;所述标签通告单元502,向每个下游邻居组播LSR发送组播标签通告报文时,用于每隔第三预设时间向该下游邻居组播LSR发送组播标签通告报文,用以使该下游组播LSR在获得为所述组播FEC分配的组播标签后,设置该组播标签的第三老化时间,并根据是否在第三老化时间内再次接收到上游邻居组播LSR的组播标签通告报文确定刷新该组播标签的第三老化时间或删除该组播标签;所述第三预设时间小于第三老化时间。另外,所述删除该组播标签时,还需要进一步删除关联于该组播标签的组播标签转发表。较佳地,所述表建立单元503在建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表时,用于针对组播转发表中的每个出接口,在组播标签转发表中添加该出接口,如果该出接口连接的是组播LSR,则将该出接口对应的标签操作设置为push,否则,将该出接口对应的标签操作设置为go。当检测到新的出接口时,需要进行组播标签的通告,在组播转发表中添加新的出接口对应的组播转发表项,并在组播标签转发表中添加该新的出接口以及该新的出接口对应的标签操作,从而建立通往该出接口的组播LSP。当需要删除原有出接口时,同样也需要执行相应的删除操作。为此,所述表建立单元503,用于检测到新的出接口时,建立该出接口对应的组播转发表项,如果该出接口连接的是组播LSR,则向标签通告单元502发送第二通知,接收到标签通告单元502的第三通知后,在组播标签转发表中添加该出接口,并将该出接口对应的标签操作设置为push,否则,在组播标签转发表中添加该出接口,并将该出接口对应的标签操作设置为go ;用于检测到需要删除原有出接口时,删除组播转发表中该原有出接口对应的组播转发表项,并删除组播标签转发表中该原有出接口以及该原有出接口对应的标签操作;所述标签通告单元502,用于接收到表建立单元503的第二通知后,向所述新的出接口连接的组播LSR发送组播标签通告报文,接收到所述新的出接口连接的组播LSR返回的组播标签确认报文后,向表建立单元503发送第三通知。实际实现中,所述报文转发单元504在根据标签转发表转发组播数据报文时,用于针对组播标签转发表中的每个出接口,如果该出接口对应的标签操作为push,则将该组播标签转发表关联的组播标签压入组播数据报文,将压入了组播标签的组播数据报文从该出接口转发;如果该出接口对应的标签操作为go,则将组播数据报文从该出接口转发。本发明还提供了另一种组播LSR,该组播LSR为组播传送路径的转发节点和/或尾节点,下面结合图6进行说明。参见图6,图6是本发明实施例另一种组播LSR的结构示意图,该组播LSR包括 标签获取单元601、标签通告单元602、表建立单元603、报文转发单元604 ;其中,标签获取单元601,用于接收上游邻居组播LSR的组播标签通告报文,获取组播标签通告报文中携带的主组播标签分配器为组播传送路径的组播FEC分配的组播标签;用于接收到标签通告单元602的第四通知后,向上游邻居组播LSR发送组播标签确认报文;标签通告单元602,用于在标签获取单元601获取为所述组播FEC分配的组播标签后,根据所述组播FEC的组播转发表确定所有下游邻居组播LSR,如果不存在下游邻居组播 LSR,则向标签获取单元601发送第四通知,并向表建立单元603发送第五通知,否则,向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR的组播标签确认报文后,向标签获取单元601发送第四通知,并向表建立单元603发送第五通知;表建立单元603,用于接收到标签通告单元602的第五通知后,建立所述组播FEC 的组播转发表对应的关联于所述组播标签的组播标签转发表;报文转发单元604,用于根据所述组播标签转发表转发组播数据报文。较佳地,所述组播FEC以组播组信息为标识;或者,所述组播FEC以组播组及组播源信息为标识。为了对组播标签进行刷新和老化处理,保持组播标签的一致性和有效性,所述组播标签通告报文中还携带第三老化时间;所述标签获取单元601,用于接收上游邻居组播LSR每隔第三预设时间发来的组播标签通告报文;在获取组播标签通告报文中携带的主组播标签分配器为组播传送路径的组播FEC分配的组播标签后,进一步用于设置该组播标签的第三老化时间,如果在第三老化时间内再次接收到上游邻居组播LSR的组播标签通告报文,则刷新该组播标签的第三老化时间,并向自身的每个下游邻居组播LSR发送组播标签通告报文,否则,删除该组播标签;所述第三预设时间小于第三老化时间。另外,所述标签获取单元601在该组播标签时,还需要进一步删除关联于该组播标签的组播标签转发表。较佳地,所述表建立单元603在建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表时,用于针对组播转发表中的每个出接口,在组播标签转发表中添加该出接口,如果该出接口连接的是组播LSR,则将该出接口对应的标签操作设置为转发go,否则,将该出接口对应的标签操作设置为弹出pop。当检测到新的出接口时,需要进行组播标签的通告,在组播转发表中添加新的出接口对应的组播转发表项,并在组播标签转发表中添加该新的出接口以及该新的出接口对应的标签操作,从而建立通往该新接口的组播LSP。当需要删除原有出接口时,同样也需要执行相应的删除操作。为此,所述表建立单元603,用于检测到新的出接口时,在组播转发表中添加该出接口对应的组播转发表项,如果该出接口连接的是组播LSR,则向标签通告单元602发送第六通知,接收到标签通告单元602的第七通知后,在组播标签转发表中添加该出接口,将该出接口对应的标签操作设置为go,否则,在组播标签转发表中添加该出接口,并将该出接口对应的标签操作设置为pop ;用于检测到需要删除原有出接口时,删除组播转发表中该原有出接口对应的组播转发表项,并删除组播标签转发表中该原有出接口以及该原有出接口对应的标签操作;所述标签通告单元602,用于接收到表建立单元603的第六通知后,向新的出接口连接的组播LSR发送组播标签通告报文,接收到新的出接口连接的组播LSR返回的组播标 签确认报文后,向表建立单元603发送第七通知。在实际实现中,所述报文转发单元604在根据标签转发表转发组播数据报文时,用于针对组播标签转发表中的每个出接口,如果该出接口对应的标签操作为go,则将组播数据报文从该出接口转发;如果该出接口对应的标签操作为pop,则将组播数据报文中的组播标签弹出,将弹出了组播标签的组播数据报文从该出接口转发。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种基于多协议标签交换MPLS的组播数据报文转发方法,其特征在于,该方法包括 当前组播标签交换路由器LSR作为组播传送路径的头节点,获取自举路由器BSR选择的主组播标签分配器为组播传送路径的组播FEC分配的组播标签;根据所述组播FEC的组播转发表确定所有下游邻居组播LSR,如果不存在下游邻居组播LSR,则建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表,根据组播标签转发表转发组播数据报文;否则,向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR的组播标签确认报文后,建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表,根据组播标签转发表转发组播数据报文; 当前组播LSR作为组播传送路径的转发节点和/或尾接点,接收到上游邻居组播LSR的组播标签通告报文后,获取组播标签通告报文中携带的为所述组播FEC分配的组播标签;根据所述组播FEC的组播转发表确定所有下游邻居组播LSR,如果不存在下游邻居组播LSR,则向上游邻居组播LSR发送组播标签确认报文,并建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表,根据组播标签转发表转发组播数据报文;否贝1J,向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR的组播标签确认报文后,向上游邻居组播LSR发送组播标签确认报文,并建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表,根据组播标签转发表转发组播数据报文。
2.根据权利要求I所述的基于MPLS的组播数据报文转发方法,其特征在于, 所述组播FEC以组播组信息为标识;或者,所述组播FEC以组播组及组播源信息为标识; 所述获取BSR选择的主组播标签分配器为组播传送路径的组播FEC分配的组播标签的方法为向主组播标签分配器发送携带所述组播FEC信息的组播标签请求报文,接收主组播标签分配器返回的组播标签映射报文,所述组播标签映射报文中携带了主组播标签分配器在接收到所述组播标签请求报文后为所述组播FEC分配的组播标签。
3.根据权利要求2所述的基于MPLS的组播数据报文转发方法,其特征在于,配置至少一个组播标签分配器; 每个组播标签分配器每隔第一预设时间向BSR发送组播标签分配器通告报文,所述组播标签分配器通告报文中携带该组播标签分配器的地址信息; BSR选择主组播标签分配器的方法为接收所有组播标签分配器发送的组播标签分配器通告报文,获取并存储每个组播标签分配器的地址信息,选择其中一个作为主组播标签分配器,并将选择的主组播标签分配器泛洪到网络中。
4.根据权利要求3所述的基于MPLS的组播数据报文转发方法,其特征在于, 所述组播标签分配器通告报文中还携带第一老化时间; 存储每个组播标签分配器的地址信息时,进一步设置该组播标签分配器的第一老化时间,如果在第一老化时间内再次接收到该组播标签分配器的组播标签分配器通告报文,则刷新该组播标签分配器的第一老化时间,否则,确定该组播标签分配器故障,若该故障的组播标签分配器为主组播标签分配器,则在所有未故障的组播标签分配器中选择一个作为新的主组播标签分配器,并将新的主组播标签分配器泛洪到网络中;当前组播LSR作为组播组的头节点,检测到新的主组播标签分配器时,向新的主组播标签分配器发送携带所述组播FEC信息以及为所述组播FEC分配的组播标签的组播标签请求报文,接收新的主组播标签分配器返回的组播标签映射报文,所述组播标签映射报文中携带新的主组播标签分配器在接收到的所述组播标签请求报文中携带的为所述组播FEC分配的组播标签。
5.根据权利要求2所述的基于MPLS的组播数据报文转发方法,其特征在于,所述组播标签映射报文中还携带第二老化时间; 当前组播LSR作为组播传送路径的头节点,获得主组播标签分配器为所述组播FEC分配的组播标签后,进一步包括设置该组播标签的第二老化时间,每隔第二预设时间向主组播标签分配器发送携带所述组播FEC信息的组播标签请求报文,如果接收到主组播标签分配器返回的携带已分配给所述组播FEC的组播标签的组播标签映射报文,则刷新该组播标签的第二老化时间,否则,删除该组播标签;所述第二预设时间小于第二老化时间。
6.根据权利要求2所述的基于MPLS的组播数据报文转发方法,其特征在于, 所述组播标签通告报文中还携带第三老化时间; 当前组播LSR作为组播传送路径的头节点,向每个下游邻居组播LSR发送组播标签通告报文的方法为每隔第三预设时间向该下游邻居组播LSR发送组播标签通告报文; 当前组播LSR作为组播传送路径的转发节点和/或尾接点,获取组播标签通告报文中携带的为所述组播FEC分配的组播标签后,进一步包括设置该组播标签的第三老化时间,如果在第三老化时间内再次接收到上游邻居组播LSR发送的组播标签通告报文,则刷新该组播标签的第三老化时间,并向自身的每个下游邻居组播LSR发送组播标签通告报文,否贝丨J,删除该组播标签;所述第三预设时间小于第三老化时间。
7.根据权利要求5或6所述的基于MPLS的组播数据报文转发方法,其特征在于, 所述删除该组播标签时,进一步删除关联于该组播标签的组播标签转发表。
8.根据权利要求I所述的基于MPLS的组播数据报文转发方法,其特征在于, 当前组播LSR作为组播传送路径的头节点,建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表的方法为针对组播转发表中的每个出接口,在组播标签转发表中添加该出接口,如果该出接口连接的是组播LSR,则将该出接口对应的标签操作设置为压入push,否则,将该出接口对应的标签操作设置为转发go ; 当前组播LSR作为组播传送路径的转发节点和/或尾接点,建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表的方法为针对组播转发表中的每个出接口,在组播标签转发表中添加该出接口,如果该出接口连接的是组播LSR,则将该出接口对应的标签操作设置为转发go,否则,将该出接口对应的标签操作设置为pop。
9.根据权利要求8所述的基于MPLS的组播数据报文转发方法,其特征在于,该方法进一步包括 当前组播LSR作为组播传送路径的头节点,检测到新的出接口时,在组播转发表中添加该出接口对应的组播转发表项,如果该出接口连接的是组播LSR,则向该组播LSR发送组播标签通告报文,接收到该组播LSR返回的组播标签确认报文后,在组播标签转发表中添加该出接口,并将该出接口对应的标签操作设置为push,否则,在组播标签转发表中添加该出接口,并将该出接口对应的标签操作设置为go ;当前组播LSR作为组播传送路径的转发节点和/或尾节点,检测到新的出接口时,在组播转发表中添加该出接口对应的组播转发表项,如果该出接口连接的是组播LSR,则向该组播LSR发送组播标签通告报文,接收到该组播LSR返回的组播标签确认报文后,在组播标签转发表中添加该出接口,并将该出接口对应的标签操作设置为go,否则,在组播标签转发表中添加该出接口,并将该出接口对应的标签操作设置为pop ; 当前组播LSR检测到需要删除原有出接口时,删除组播转发表中该原有出接口对应的组播转发表项,并删除组播标签转发表中该出接口以及该出接口对应的标签操作。
10.根据权利要求8或9所述的基于MPLS的组播数据报文转发方法,其特征在于, 根据标签转发表转发组播数据报文的方法为针对标签转发表中的每个出接口,如果该出接口对应的标签操作为push,则将该标签转发表关联的组播标签压入组播数据报文,将压入了组播标签的组播数据报文从该出接口转发;如果该出接口对应的标签操作为go,则将组播数据报文从该出接口转发;如果该出接口对应的标签操作为pop,则将组播数据报文中的组播标签弹出,将弹出了组播标签的组播数据报文从该出接口转发。
11.一种组播标签交换路由器LSR,该组播LSR为组播传送路径的头节点,其特征在于,该组播LSR包括标签获取单元、标签通告单元、表建立单元、报文转发单元; 所述标签获取单元,用于获取自举路由器BSR选择的主组播标签分配器为组播传送路径的组播FEC分配的组播标签; 所述标签通告单元,用于在标签获取单元获取主组播标签分配器为所述组播FEC分配的组播标签后,根据所述组播FEC的组播转发表确定所有下游邻居组播LSR,如果不存在下游邻居组播LSR,则向表建立单元发送第一通知,否则,向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR的组播标签确认报文后,向表建立单元发送第一通知; 所述表建立单元,用于接收到标签通告单元的第一通知后,建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表; 所述报文转发单元,用于根据所述组播标签转发表转发组播数据报文。
12.根据权利要求11所述的组播LSR,其特征在于, 所述组播FEC以组播组信息为标识;或者,所述组播FEC以组播组及组播源信息为标识; 所述标签获取单元在获取主组播标签分配器为所述组播FEC分配的组播标签时,用于向主组播标签分配器发送携带所述组播FEC信息的组播标签请求报文,接收主组播标签分配器返回的组播标签映射报文,所述组播标签映射报文中携带了主组播标签分配器在接收到所述组播标签请求报文后为所述组播FEC分配的组播标签。
13.根据权利要求12所述的组播LSR,其特征在于, 所述标签获取单元,用于检测到新的主组播标签分配器时,向新的主组播标签分配器发送携带所述组播FEC信息以及为所述组播FEC分配的组播标签的组播标签请求报文,接收新的主组播标签分配器返回的组播标签映射报文,所述组播标签映射报文中携带新的主组播标签分配器接收到的所述组播标签请求报文中携带的为所述组播FEC分配的组播标签。
14.根据权利要求12所述的组播LSR,其特征在于,所述组播标签映射报文中还携带第二老化时间; 所述标签获取单元在获得主组播标签分配器为所述组播FEC分配的组播标签后,进一步用于设置该组播标签的第二老化时间,每隔第二预设时间向主组播标签分配器发送携带所述组播FEC信息的组播标签请求报文,如果接收到主组播标签分配器返回的携带已分配给所述组播FEC的组播标签的组播标签映射报文,则刷新该组播标签的第二老化时间,否则,删除该组播标签;所述第二预设时间小于第二老化时间。
15.根据权利要求12所述的组播LSR,其特征在于, 所述组播标签通告报文中还携带第三老化时间; 所述标签通告单元,向每个下游邻居组播LSR发送组播标签通告报文时,用于每隔第三预设时间向该下游邻居组播LSR发送组播标签通告报文,用以使该下游组播LSR在获得为所述组播FEC分配的组播标签后,设置该组播标签的第三老化时间,并根据是否在第三老化时间内再次接收到上游邻居组播LSR的组播标签通告报文确定刷新该组播标签的第三老化时间或删除该组播标签;所述第三预设时间小于第三老化时间。
16.根据权利要求14所述的组播LSR,其特征在于, 所述删除该组播标签时,进一步删除关联于该组播标签的组播标签转发表。
17.根据权利要求11所述的组播LSR,其特征在于, 所述表建立单元在建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表时,用于针对组播转发表中的每个出接口,在组播标签转发表中添加该出接口,如果该出接口连接的是组播LSR,则将该出接口对应的标签操作设置为压入push,否则,将该出接口对应的标签操作设置为转发go。
18.根据权利要求17所述的组播LSR,其特征在于, 所述表建立单元,用于检测到新的出接口时,在组播转发表中添加该出接口对应的组播转发表项,如果该出接口连接的是组播LSR,则向标签通告单元发送第二通知,接收到标签通告单元的第三通知后,在组播标签转发表中添加该出接口,并将该出接口对应的标签操作设置为push,否则,在组播标签转发表中添加该出接口,并将该出接口对应的标签操作设置为go ;用于检测到需要删除原有出接口时,删除组播转发表中该原有出接口对应的组播转发表项,并删除组播标签转发表中该出接口以及该出接口对应的标签操作; 所述标签通告单元,用于接收到表建立单元的第二通知后,向所述新的出接口连接的组播LSR发送组播标签通告报文,接收到所述新的出接口连接的组播LSR返回的组播标签确认报文后,向表建立单元发送第三通知。
19.根据权利要求17或18所述的组播LSR,其特征在于, 所述报文转发单元在根据标签转发表转发组播数据报文时,用于针对组播标签转发表中的每个出接口,如果该出接口对应的标签操作为push,则将该标签转发表关联的组播标签压入组播数据报文,将压入了组播标签的组播数据报文从该出接口转发;如果该出接口对应的标签操作为go,则将组播数据报文从该出接口转发。
20.一种组播标签交换路由器LSR,该组播LSR为组播传送路径的转发节点和/或尾节点,其特征在于,该组播LSR包括标签获取单元、标签通告单元、表建立单元、报文转发单元; 所述标签获取单元,用于接收上游邻居组播LSR的组播标签通告报文,获取组播标签通告报文中携带的主组播标签分配器为组播传送路径的组播FEC分配的组播标签;用于接收到标签通告单元的第四通知后,向上游邻居组播LSR发送组播标签确认报文; 所述标签通告单元,用于在标签获取单元获取为所述组播FEC分配的组播标签后,根据所述组播FEC的组播转发表确定所有下游邻居组播LSR,如果不存在下游邻居组播LSR,则向标签获取单元发送第四通知,并向表建立单元发送第五通知,否则,向每个下游邻居组播LSR发送组播标签通告报文,接收完所有下游邻居组播LSR的组播标签确认报文后,向标签获取单元发送第四通知,并向表建立单元发送第五通知; 所述表建立单元,用于接收到标签通告单元的第五通知后,建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表; 所述报文转发单元,用于根据所述组播标签转发表转发组播数据报文。
21.根据权利要求20所述的组播LSR,其特征在于, 所述组播FEC以组播组信息为标识;或者,所述组播FEC以组播组及组播源信息为标识。
22.根据权利要求20所述的组播LSR,其特征在于, 所述组播标签通告报文中还携带第三老化时间; 所述标签获取单元,用于接收上游邻居组播LSR每隔第三预设时间发来的组播标签通告报文;在获取组播标签通告报文中携带的主组播标签分配器为组播传送路径的组播FEC分配的组播标签后,进一步用于设置该组播标签的第三老化时间,如果在第三老化时间内再次接收到上游邻居组播LSR的组播标签通告报文,则刷新该组播标签的第三老化时间,并向自身的每个下游邻居组播LSR发送组播标签通告报文,否则,删除该组播标签;所述第三预设时间小于第三老化时间。
23.根据权利要求22所述的组播LSR,其特征在于, 所述标签获取单元在该组播标签时,进一步删除关联于该组播标签的组播标签转发表。
24.根据权利要求20所述的组播LSR,其特征在于, 所述表建立单元在建立所述组播FEC的组播转发表对应的关联于所述组播标签的组播标签转发表时,用于针对组播转发表中的每个出接口,在组播标签转发表中添加该出接口,如果该出接口连接的是组播LSR,则将该出接口对应的标签操作设置为转发go,否则,将该出接口对应的标签操作设置为弹出pop。
25.根据权利要求24所述的组播LSR,其特征在于, 所述表建立单元,用于检测到新的出接口时,在组播转发表中添加该出接口对应的组播转发表项,如果该出接口连接的是组播LSR,则向标签通告单元发送第六通知,接收到标签通告单元的第七通知后,在组播标签转发表中添加该出接口,将该出接口对应的标签操作设置为go,否则,在组播标签转发表中添加该出接口,并将该出接口对应的标签操作设置为pop ;用于检测到需要删除原有出接口时,删除组播转发表中该原有出接口对应的组播转发表项,并删除组播标签转发表中该原有出接口以及该原有出接口对应的标签操作; 所述标签通告单元,用于接收到表建立单元的第六通知后,向新的出接口连接的组播LSR发送组播标签通告报文,接收到新的出接口连接的组播LSR返回的组播标签确认报文后,向表建立单元发送第七通知。
26.根据权利要求24或25所述的组播LSR,其特征在于, 所述报文转发单元在根据标签转发表转发组播数据报文时,用于针对组播标签转发表中的每个出接口,如果该出接口对应的标签操作为go,则将组播数据报文从该出接口转发;如果该出接口对应的标签操作为pop,则将组播数据报文中的组播标签弹出,将弹出了组播标签的组播数据报文从该出接口转发。
全文摘要
本发明提供了一种基于MPLS的组播数据报文转发方法和装置,该方法中,为组播传送路径的组播FEC分配专用的组播标签,将该组播标签通告给组播传送路径中的所有节点;组播传送路径中的每个节点获得为组播FEC分配的组播标签后,建立该组播FEC的组播转发表对应的关联于该组播标签的组播标签转发表;根据组播标签转发表进行组播数据报文的转发。本发明能够提高组播数据报文的转发效率。
文档编号H04L12/56GK102624615SQ20121005390
公开日2012年8月1日 申请日期2012年3月2日 优先权日2012年3月2日
发明者陈锦军 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1