一种用于处理组播加入消息的方法及其设备与流程

文档序号:13937378阅读:249来源:国知局
一种用于处理组播加入消息的方法及其设备与流程

本发明涉及数据通信领域,尤其涉及一种用于处理组播加入消息的方法及其设备。



背景技术:

高可靠性组播业务,在目前各类解决方案中具有越来越多的需求,例如在因特网协议电视iptv(internetprotocoltelevision)解决方案中,当发生网络的链路或节点故障时,组播业务需要实现快速收敛。

pim(protocolindependentmulticast)称为协议无关组播,运行于转发设备如路由器之间,是目前最为常见的组播路由协议之一。在运行pim协议的组播网络中,建立组播备份路径可以大大提高组播网络可靠性,降低设备发生故障之后的恢复时间,保障iptv业务对于实时性的要求。

建立组播备份路径过程中,在某些场景例如环形组网中某些路由节点的链路开销会造成基于单播路由来建立组播路由表时,组播加入消息的传递过程出现环路的情况,无法建立组播备份路径。



技术实现要素:

本发明实施例提供了一种用于处理组播加入消息的方法及其设备,有助于解决基于单播路由传递组播加入消息会出现环路,无法建立组播备份路径的问题。

第一方面,提供了一种用于处理组播加入消息的方法,所述方法包括:

第一转发设备接收来自第二转发设备的第一组播加入消息,所述第一组播加入消息包括第一标识队列,所述第一标识队列包括n个标识,所述n为大于或等于1的整数,所述n个标识用于标识在组播备份路径上沿第一方向依次经过的转发设备,所述第一方向为从组播接收者到组播源的方向;

所述第一转发设备判断所述第一标识队列的第一标识是否与所述第一转发设备的标识相同,所述第一标识为位于所述第一标识队列的队首的标识;

所述第一转发设备确定所述第一标识与所述第一转发设备的标识相同,从所述第一组播加入消息的所述第一标识队列中删除所述第一标识,获得第二组播加入消息;

所述第一转发设备向第三转发设备发送所述第二组播加入消息,所述第三转发设备为所述第一转发设备在所述组播备份路径上沿所述第一方向的下一跳。

可选地,所述n为大于1的整数,所述第二组播加入消息包括第二标识队列,所述第二标识队列为从所述第一标识队列删除所述第一标识后获得的队列,所述第二标识队列包括n-1个标识。所述第一转发设备向第三转发设备发送所述第二组播加入消息包括:所述第一转发设备获得所述第二标识队列的第二标识,所述第二标识为位于所述第二标识队列的队首的标识,所述第二标识用于标识所述第三转发设备;以及所述第一转发设备根据所述第二标识,向所述第三转发设备发送所述第二组播加入消息。

可选地,所述n为1,所述第一转发设备向第三转发设备发送所述第二组播加入消息包括:所述第一转发设备确定所述第二组播加入消息包括的第二标识队列为空或者确定所述第二组播加入消息不包括所述第二标识队列后,获得所述第三转发设备的标识,所述第二标识队列为所述第一标识队列删除所述第一标识后获得的标识队列,所述第三转发设备为沿所述第一方向上所述第一转发设备的下一跳;以及所述第一转发设备根据所述第三转发设备的标识,向所述第三转发设备发送所述第二组播加入消息。可选地,所述第一、第二和第三转发设备位于同一环形网络中。

可选地,所述第一转发设备确定所述第一标识与所述第一转发设备的标识不同,根据所述第一标识向第四转发设备发送所述第一组播加入消息,所述第一标识用于标识所述第四转发设备,所述第四转发设备为在所述组播备份路径上沿所述第一方向上所述第一转发设备的下一跳或下m跳,所述m为大于1的整数,所述下m跳为与所述第一转发设备间隔m跳。

可选地,所述第一转发设备接收来自第二转发设备的第一组播加入消息之前,所述方法还包括:所述第一转发设备与其邻居设备进行能力协商消息的交互,所述第一转发设备的邻居设备为与所述第一转发设备直接相连的转发设备,所述第一转发设备的邻居设备包括所述第二转发设备,所述能力协商消息用于协商是否支持标识队列的识别和处理。通过能力协商消息的交互,使转发设备获得邻居设备的支持能力,减少无效转发和网络资源的浪费。

第二方面,提供了一种用于处理组播加入消息的方法,所述方法包括:

第二转发设备根据配置的第一标识队列,生成第一组播加入消息,所述第一组播加入消息包括所述第一标识队列,所述第一标识队列包括n个标识,所述n为大于1的整数,所述n个标识用于标识在组播备份路径上沿第一方向依次经过的转发设备,所述第一方向为从组播接收者到组播源的方向;

所述第二转发设备根据所述第一标识队列的第一标识,向第一转发设备发送所述第一组播加入消息,所述第一标识为位于所述第一标识队列的队首的标识,所述第一标识用于标识所述第二转发设备在所述组播备份路径上沿所述第一方向经过的转发设备,所述第一转发设备为所述第二转发设备在所述组播备份路径上沿所述第一方向的下一跳;

其中,所述第二转发设备与所述组播接收者通信。

可选地,所述第一标识队列根据拓扑无关无环备份路径ti-lfa的修复列表生成。可选地,所述ti-lfa的修复列表包括n个标识,将所述n个标识顺序放入所述第一标识队列,所述第一标识队列中n个标识的顺序与所述ti-lfa的修复列表中n个标识的顺序相同。通过利用ti-lfa,将单播快速重路由的计算结果引入组播备份路径的建立,有助于解决环路下无法传递组播加入消息的问题。

可选地,所述第一标识队列根据用户配置参数生成。用户配置参数直接指定要经过路径上中间一段的转发设备,规划组播备份路径的走向,借助用户提供的关于网络中转发设备情况的辅助信息,有助于解决环路下无法传递组播加入消息的问题。

可选地,所述第二转发设备根据所述第一标识队列的第一标识,向第一转发设备发送所述第一组播加入消息之前,所述方法还包括:所述第二转发设备与其邻居设备进行能力协商消息的交互,所述第二转发设备的邻居设备为与所述第二转发设备直接相连的转发设备,所述第二转发设备的邻居设备包括所述第一转发设备,所述能力协商消息用于协商是否支持标识队列的识别和处理。通过能力协商消息的交互,使转发设备获得邻居设备的支持能力,减少无效转发和网络资源的浪费。

第三方面,提供了一种第一转发设备,所述第一转发设备包括:

接收单元,用于接收来自第二转发设备的第一组播加入消息,所述第一组播加入消息包括第一标识队列,所述第一标识队列包括n个标识,所述n为大于或等于1的整数,所述n个标识用于标识在组播备份路径上沿第一方向依次经过的转发设备,所述第一方向为从组播接收者到组播源的方向;

判断单元,用于判断所述第一标识队列的第一标识是否与所述第一转发设备的标识相同,所述第一标识为位于所述第一标识队列的队首的标识;

消息处理单元,用于确定所述第一标识与所述第一转发设备的标识相同,从所述第一组播加入消息的所述第一标识队列中删除所述第一标识,获得第二组播加入消息;

第一发送单元,用于向第三转发设备发送所述第二组播加入消息,所述第三转发设备为所述第一转发设备在所述组播备份路径上沿所述第一方向的下一跳。

可选地,所述n为大于1的整数,所述第二组播加入消息包括第二标识队列,所述第二标识队列为从所述第一标识队列删除所述第一标识后获得的队列,所述第二标识队列包括n-1个标识,所述第一发送单元具体用于:获得所述第二标识队列的第二标识,所述第二标识为位于所述第二标识队列的队首的标识,所述第二标识用于标识所述第三转发设备;以及根据所述第二标识,向所述第三转发设备发送所述第二组播加入消息。

可选地,所述n为1,所述第一发送单元具体用于:确定所述第二组播加入消息包括的第二标识队列为空或者确定所述第二组播加入消息不包括所述第二标识队列后,获得所述第三转发设备的标识,所述第二标识队列为所述第一标识队列删除所述第一标识后获得的标识队列,所述第三转发设备为沿所述第一方向上所述第一转发设备的下一跳;以及根据所述第三转发设备的标识,向所述第三转发设备发送所述第二组播加入消息。可选地,所述第一、第二和第三转发设备位于同一环形网络中。

可选地,所述第一转发设备还包括:第二发送单元,用于确定所述第一标识与所述第一转发设备的标识不同,根据所述第一标识向第四转发设备发送所述第一组播加入消息,所述第一标识用于标识所述第四转发设备,所述第四转发设备为在所述组播备份路径上沿所述第一方向上所述第一转发设备的下一跳或下m跳,所述m为大于1的整数,所述下m跳为与所述第一转发设备间隔m跳。

可选地,所述第一转发设备还包括:能力协商单元,用于在所述接收单元接收来自第二转发设备的第一组播加入消息之前,与所述第一转发设备的邻居设备进行能力协商消息的交互,所述第一转发设备的邻居设备为与所述第一转发设备直接相连的转发设备,所述第一转发设备的邻居设备包括所述第二转发设备,所述能力协商消息用于协商是否支持标识队列的识别和处理。通过能力协商消息的交互,使转发设备获得邻居设备的支持能力,减少无效转发和网络资源的浪费。

第四方面,提供了一种第二转发设备,所述第二转发设备包括:

消息生成单元,用于根据配置的第一标识队列,生成第一组播加入消息,所述第一组播加入消息包括所述第一标识队列,所述第一标识队列包括n个标识,所述n为大于1的整数,所述n个标识用于标识在组播备份路径上沿第一方向依次经过的转发设备,所述第一方向为从组播接收者到组播源的方向;

发送单元,用于根据所述第一标识队列的第一标识,向第一转发设备发送所述第一组播加入消息,所述第一标识为位于所述第一标识队列的队首的标识,所述第一标识用于标识所述第二转发设备在所述组播备份路径上沿所述第一方向经过的转发设备,所述第一转发设备为所述第二转发设备在所述组播备份路径上沿所述第一方向的下一跳;

其中,所述第二转发设备与所述组播接收者通信。

可选地,所述第二转发设备还包括:标识队列生成单元,用于根据拓扑无关无环备份路径ti-lfa的修复列表生成所述第一标识队列。可选地,所述ti-lfa的修复列表包括n个标识,将所述n个标识顺序放入所述第一标识队列,所述第一标识队列中n个标识的顺序与所述ti-lfa的修复列表中n个标识的顺序相同。通过利用ti-lfa,将单播快速重路由的计算结果引入组播备份路径的建立,有助于解决环路下无法传递组播加入消息的问题。

可选地,所述第二转发设备还包括:标识队列指定单元,用于根据用户配置参数生成所述第一标识队列。用户配置参数直接指定要经过路径上中间一段的转发设备,规划组播备份路径的走向,借助用户提供的关于网络中转发设备情况的辅助信息,有助于解决环路下无法传递组播加入消息的问题。

可选地,所述第二转发设备还包括:能力协商单元,用于在所述发送单元根据所述第一标识队列的第一标识,向第一转发设备发送所述第一组播加入消息之前,与所述第二转发设备的邻居设备进行能力协商消息的交互,所述第二转发设备的邻居设备为与所述第二转发设备直接相连的转发设备,所述第二转发设备的邻居设备包括所述第一转发设备,所述能力协商消息用于协商是否支持标识队列的识别和处理。通过能力协商消息的交互,使转发设备获得邻居设备的支持能力,减少无效转发和网络资源的浪费。

第五方面,提供了一种转发设备,所述转发设备包括:

处理器,用于读取存储器中的程序代码和数据,控制所述转发设备执行如以上第一方面或第二方面所述的方法;

通信接口,用于在所述处理器控制下,与其他转发设备进行消息的接收和发送;

存储器,用于存储用于该转发设备的程序代码和数据。

通过上述第一至第五方面的方案,在基于单播路由传递组播加入消息会出现环路的情况下,通过第一标识队列指导组播加入消息的传播路径,使得组播加入消息能够顺利传递,从而成功建立组播备份路径,提高组播网络可靠性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种网络场景示意图;

图2为本发明实施例提供的一种用于处理组播加入消息的方法流程图;

图3为本发明实施例提供的一种第二转发设备的结构示意图;

图4为本发明实施例提供的一种第一转发设备的结构示意图;

图5为本发明实施例提供的一种用于处理组播加入消息的转发设备的结构示意图。

图6为本发明实施例提供的另一种用于处理组播加入消息的转发设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做出进一步地详细描述。对于本领域普通技术人员在没有付出创造性劳动的前提下所获得的其它所有实施例,都属于本发明保护的范围。

协议无关组播(protocolindependentmulticast,pim)运行于转发设备如路由器、交换机等设备之间。组播数据报文在网络中沿着树型转发路径进行转发,转发设备间通过pim协议来建立组播树和转发组播数据报文。按照转发机制的不同,pim可以分为密集模式(densemode,dm)和稀疏模式(sparsemode,sm)两种模式。在pim-sm模式中,pim-sm通过显式的组播加入/剪枝机制来完成组播分发树的建立与维护。其中组播接收者向组播源或组播汇聚点(rendezvouspoint,rp)发送组播加入消息,该组播加入消息经网络中的转发设备逐跳转发后到达组播源或rp,组播加入消息经过的路径组成组播分发树。对组播分发树包括的组播路径建立备份路径可以大大提高组播网络可靠性,降低设备发生故障之后的恢复时间。

图1为本发明实施例提供的一种网络场景示意图。在该场景下组播转发设备rta、rtb、rtc、rte、rth、rtg、rtf和rtd依序形成环形组网。该组网中可以选择运行各种单播路由协议,如isis或ospf等。rta-rtb-rtc路径上,rta-rtb的链路开销是10,rtb-rtc的链路开销是9。同理,rta-rtd-rtf-rtg-rth-rte-rtc路径上,rta-rtd、rtd-rtf、rtf-rtg、rtg-rth、rth-rte和rte-rtc的链路开销分别是10、10、20、40、20和20。举例来说,rta为所述环形组网入口的转发设备。rta与组播接收者进行通信。rtc为与组播源通信的转发设备。可选地,rtc也可以是与rp进行通信,组播源将组播数据报文经该rp发送到rtc。

rtc和rta之间的主备组播路径建立过程中,rta沿与组播数据报文传递方向相反的方向,向rtc发送组播加入消息。该组播加入消息可以是pimjoin消息。rta分别向其下一跳转发设备,比如rtb和rtd,发送所述组播加入消息。从rtb和rtd开始,后续每个转发设备都需要基于单播路由选路,即对链路开销进行计算并根据计算结果选择下一跳转发设备。出于通信效率的考虑,每个转发设备都会选择到目的地转发设备的链路开销和最小的路径来发送所述组播加入消息。到目的地转发设备的链路开销和为到目的地转发设备所经过的各跳链路的开销之和。

目的地转发设备为rtc,rtb收到rta发送的组播加入消息后进行选路。rtb-rtc的链路开销和为9,rtb-rta-rtd-rtf-rtg-rth-rte-rtc的链路开销和为130,则rtb选择链路开销和较小的rtb-rtc,即选择rtc作为其下一跳转发设备。rtb向rtc发送所述组播加入消息,以建立起rta-rtb-rtc这条组播路径。

目的地转发设备为rtc,rtd收到rta发送的组播加入消息后进行选路。rtd-rtf-rtg-rth-rte-rtc的链路开销和为110,rtd-rta-rtb-rtc的链路开销和为29,则rtd会选择链路开销和较小的rtd-rta-rtb-rtc,即选择rta作为其下一跳转发设备。rtd将从rta接收的所述组播加入消息又发送回rta,导致出现环路。在出现环路的情况下,rta发送的所述组播加入消息发送到rtd后又发送回rta,因而无法建立组播备份路径。

为了解决上述问题,本发明实施例提供了一种用于处理组播加入消息的方法,即通过组播加入消息携带标识队列的方法来实现组播备份路径的建立。该标识队列中的标识用于标识在组播备份路径上沿组播接收者到组播源的方向上需要依次经过的转发设备。通过将该标识队列携带在组播加入消息中,指示所述组播加入消息的传递路径,实现对组播备份路径建立过程的控制,从而解决在组播备份路径上存在如前述环路时无法成功建立组播备份路径的问题。

图2为本发明实施例提供的一种用于处理组播加入消息的方法流程图。下面结合图1和图2,对本发明实施例提供的一种用于处理组播加入消息的方法进行介绍。

201,rta根据配置的第一标识队列生成第一组播加入消息。

举例说明,rta为所述环形组网入口的转发设备,与组播接收者进行通信。rta上配置有第一标识队列,该第一标识队列用于标识在组播备份路径上沿组播接收者到组播源的方向上依次需要经过的转发设备。第一标识队列可以包括rtf,rtg和rth三个顺序排列的标识,也就是说所述第一组播加入消息需要依次经过rtf,rtg和rth三个转发设备。rtf为所述第一标识队列的队首标识,rth为所述第一标识队列的队尾标识,rtg在所述第一标识队列中处于所述rtf和rth间。rta将所述第一标识队列加入到所述第一组播加入消息中。

举例来说,本实施例中的所述第一组播加入消息可以是pimjoin消息。在pimjoin消息中携带标识队列需要对pimjoin消息进行扩展。rfc5384描述了一种对pimjoin消息进行扩展的方式,在pimjoin消息中使用类型-长度-值(type-length-value,tlv)格式的属性信息来实现扩展,用于在建立组播分发树时指定额外的信息。本实施例中针对pimjoin消息携带标识队列的情况定义新类型,例如可以定义新类型type=5,并将标识队列加入值value中。可选地,加入值value中的还可以包括标识队列中的标识数量等信息。

可选地,rta上配置的第一标识队列可以是根据拓扑无关无环备份路径ti-lfa的修复列表生成的。ti-lfa可以用于在单播快速重路由frr(fastreroute)中发生节点和链路故障时提供修复路径或是备份路径。ietf2013年草案“draft-francois-spring-segment-routing-fi-lfa-00”中对ti-lfa进行了定义。

基于ti-lfa计算的修复列表可以为空、包括1个节点标识或者包括多于1个的节点标识。这些节点标识用于在网络中标识出指定节点或指定转发设备。本实施例针对的是所述修复列表中包括多于1个节点标识的情况。rta根据ti-lfa的修复列表生成所述第一标识队列时,例如ti-lfa的修复列表包括多个标识,比如rtf、rtg和rth,则以同样的先后顺序放入第一标识队列,于是所述第一标识队列中包括rtf、rtg和rth,队首标识为rtf。

可选地,rta上配置的第一标识队列也可以根据用户配置参数生成。用户可以基于收集到的网络中转发设备情况设置用户配置参数,直接指定要经过的转发设备,以便规划组播备份路径的走向。在所述第一标识队列根据用户配置参数生成的情况下,用户可以直接配置要经过路径上中间一段的转发设备,例如直接指定经过rtf、rtg和rth。

可选地,在rta根据配置的第一标识队列生成第一组播加入消息前,rta接收作为所述组播接收者的主机发送的因特网组管理协议(internetgroupmanagementprotocol,igmp)报告。所述作为所述组播接收者的主机向rta发送所述igmp报告来指定要加入所述组播源的组播组。

202,rta向rtd发送所述第一组播加入消息。

举例说明,rta在生成所述第一组播加入消息后,根据第一标识队列的队首标识,即rtf,进行选路。作为队首标识的rtf用于标识所述第一组播加入消息需要经过rtf。rta可以采用前述选择链路开销和最小的路径等方式进行选路。图1中rta到rtf的链路开销最小的路径是rta-rtd-rtf。rta将rtd作为到达rtf的下一跳转发设备,进而向rtd发送所述第一组播加入消息。该rtd是在组播接收者朝向组播源的方向rta的下一跳转发设备。

可选地,202前,本发明实施例提供的方法还包括:rta可以与邻居设备进行能力协商消息的交互。rta的邻居设备为与rta直接相连的转发设备,例如图1中的rtb和rtd。rtd的邻居设备为rta和rtf。所述能力协商消息用于协商是否支持标识队列的识别和处理。所述能力协商消息的交互有助于rta获知邻居设备是否支持在组播加入消息中加入标识队列。可选地,所述能力协商消息可以通过pimhello消息来实现。rtd、rtf、rtg、rth、rte和rtc在发送组播加入消息之前,均可与其邻居设备进行能力协商消息的交互。通过能力协商消息的交互,使转发设备获得邻居设备的支持能力,减少无效转发和网络资源的浪费。

可选地,rta可将rtd的标识加入rta的组播路由表的入口列表中。所述组播路由表的入口列表可用于保存组播备份路径上朝向组播源方向的下一跳转发设备,即rtd为rta在组播备份路径上朝向组播源方向的下一跳转发设备。

203,rtd确定所述第一标识队列的队首标识与自身标识不同。

举例说明,rtd接收rta发送的所述第一组播加入消息。rtd在接收到所述第一组播加入消息后,判断所述第一标识队列的队首标识是否与自身标识相同。所述第一标识队列的队首标识为rtf,与rtd的标识不同,则所述rtd确定所述第一标识队列的队首标识与自身标识不同,执行204。

可选地,rtd将rta的标识加入rtd的组播路由表的出口列表中。所述组播路由表的出口列表可用于保存组播备份路径上朝向组播接收者方向的下一跳转发设备,即rta为rtd在组播备份路径上朝向组播接收者方向的下一跳转发设备。

204,rtd向rtf发送所述第一组播加入消息。

举例说明,rtd可采用202中rta采用的方式,即采用前述选择链路开销和最小的路径等方式进行选路,确定rtd的下一跳转发设备。图1中rtd到rtf链路开销和最小路径就是rtd-rtf,rtd确定的下一跳转发设备是rtf。可选地,在rtd到rtf间的路径上还包括多个转发设备的情况下,rtd到rtf间的路径上的每个转发设备都可采用203和204方法进行选路,直到所述第一组播加入消息被发送至rtf。

可选地,rtd可将rtf的标识加入rtd的组播路由表的入口列表中,rtf为rtd在组播备份路径上朝向组播源方向的下一跳转发设备。

205,rtf根据所述第一组播加入消息,获得第二组播加入消息。

举例说明,rtf接收rtd发送的所述第一组播加入消息,所述第一组播加入消息包括第一标识队列,所述第一标识队列包括rtf、rtg和rth,且rtf为所述第一标识队列的队首标识,rth为所述第一标识队列的队尾标识,rtg在所述第一标识队列中处于所述rtf和rth间。所述第一标识队列包含的标识的数量是3。rtf判断所述第一标识队列的队首标识是否与自身标识相同,确定相同,则rtf删除所述第一标识队列的队首标识,即rtf删除所述第一标识队列中的rtf,获得第二标识队列。所述第二标识队列包括的标识的数量是2。所述第二标识队列的队首标识为rtg,所述第二标识队列的队尾标识为rth。rtf可用所述第二标识队列替换所述第一组播加入消息中的所述第一标识队列,以获得所述第二组播加入消息。

举例说明,rtf根据所述第一组播加入消息,获得所述第二组播加入消息包括:rtf可用所述第二标识队列替换所述第一组播加入消息中的所述第一标识队列,获得所述第二组播加入消息。或者rtf将所述第一组播加入消息中的所述第一标识队列的队首标识删除,获得所述第二组播加入消息。

可选地,rtf将rtd的标识加入rtf的组播路由表的出口列表中,即rtd为rtf在组播备份路径上朝向组播接收者方向的下一跳转发设备。可选地,在rtd到rtf间的路径上还包括多个转发设备的情况下,rtd到rtf间的路径上的每一跳转发设备都将在组播备份路径上朝向组播接收者方向的下一跳转发设备的标识加入自身的组播路由表的出口列表中。

206,rtf向rtg发送所述第二组播加入消息。

举例说明,rtf朝组播源方向的下一跳转发设备发送所述第二组播加入消息。rtf确定下一跳转发设备的方法与rta确定下一跳转发设备的方法相同。比如:rtf根据所述第二标识队列的队首标识rtg,确定以rtg为目的地转发设备的链路开销最小的路径为rtf-rtg。rtf向rtg发送所述第二组播加入消息。

可选地,rtf可将rtg的标识加入rtf的组播路由表的入口列表中,即rtg为rtf在组播备份路径上朝向组播源方向的下一跳转发设备。

207,rtg根据所述第二组播加入消息,获得第三组播加入消息。

举例说明,rtg接收到所述第二组播加入消息后,获得所述第二组播加入消息包括的第二标识队列。所述第二标识队列的队首标识为rtg。rtg判断所述第二标识队列的队首标识是否与其自身标识相同,确定相同,则rtg删除所述第二标识队列的队首标识,即删除所述第二标识队列的rtg,获得第三标识队列。所述第三标识队列包括的标识的数量为1。所述第三标识队列包括rth。rtg获得所述第三组播加入消息的方法与rtf获得所述第二组播加入消息的方法相同,在此不再赘述

可选地,rtg将rtf的标识加入rtg的组播路由表的出口列表中,即rtf为rtg在组播备份路径上朝向组播接收者方向的下一跳转发设备。

208,rtg向rth发送所述第三组播加入消息。

举例说明,rtg朝组播源方向的下一跳转发设备发送所述第三组播加入消息。rtg确定下一跳转发设备的方法与rta确定下一跳转发设备的方法相同。比如:rtg根据所述第三标识队列的队首标识(唯一的标识)rth,确定以rth为目的地转发设备的链路开销最小的路径为rtg-rth。rtg向rth发送所述第三组播加入消息。

可选地,rtg可将rth的标识加入rtg的组播路由表的入口列表中,即rth为rtg在组播备份路径上朝向组播源方向的下一跳转发设备。

209,rth根据所述第三组播加入消息,获得第四组播加入消息。

举例说明,rth接收rtg发送的所述第三组播加入消息,所述第三组播加入消息中包括的第三标识队列为rth,标识数量是1。rth判断所述第三标识队列的队首标识是否与自身标识相同。rth确定所述第三标识队列的队首标识为rth。rth从所述第三标识队列中删除作为队首标识的rth,获得第四组播加入消息。所述第四组播加入消息不包括标识队列,或者可以理解成所述第四组播加入消息中包括的第四标识队列为空。

可选地,rth将rtg的标识加入rth的组播路由表的出口列表中,即rtg为rth在组播备份路径上朝向组播接收者方向的下一跳转发设备。

210,rth向rte发送所述第四组播加入消息。

举例说明,rth朝组播源方向的下一跳转发设备发送所述第四组播加入消息。所述第四组播加入消息中未携带标识队列或者所述第四组播加入消息中携带的标识队列为空,rth不再以队列标识中的标识作为目的地转发设备进行选路。rth以rtc为目的地转发设备进行选路,具体可采用前述选择链路开销和最小的路径等选择方式。rth到rtc的链路开销和最小的路径是rth-rte-rtc,由此选出到rtc的下一跳转发设备rte。rth向rte发送所述第四组播加入消息。

可选地,rth可将rte的标识加入rth的组播路由表的入口列表中,即rte为rth在组播备份路径上朝向组播源方向的下一跳转发设备。

211,rte向rtc发送所述第四组播加入消息。

举例说明,rte向rtc发送所述第四组播加入消息的方法与210相同,在此不再赘述。

可选地,rte将rth的标识加入rte的组播路由表的出口列表中,即rth为rte在组播备份路径上朝向组播接收者方向的下一跳转发设备。可选地,rtc收到所述第四组播加入消息后,将rte的标识加入rtc的组播路由表的出口列表中,即rte为rtc在组播备份路径上朝向组播接收者的下一跳转发设备。

以上从rta-rtd-rtf-rtg-rth-rte-rtc路径传递组播加入消息的过程中,每个收到组播加入消息的当前转发设备更新自身的组播路由表,将当前转发设备在组播备份路径上朝向组播接收者方向的下一跳转发设备的标识加入到当前转发设备的组播路由表的出口列表中,实现组播备份路径的建立。

图2所述的方法,在组播加入消息加入标识队列,指导组播加入消息在标识队列指示的路径上传输,能够在基于单播路由传递组播加入消息出现环路的情况下实现组播备份路径的建立,有效提高组播网络可靠性。

图2所述的方法中,根据ti-lfa修复列表生成所述第一标识队列,可以将单播快速重路由的计算结果引入组播备份路径的建立,有效实现组播加入消息的传递,有助于解决如前所述的环路下无法建立组播备份路径的问题。根据用户配置参数生成所述第一标识队列,可以直接指定要经过路径上的转发设备,规划组播备份路径的走向,借助用户提供的关于网络中转发设备情况的辅助信息,实现组播加入消息的传递,有助于解决环路下无法建立组播备份路径的问题。

图3示出了本发明实施例提供的一种第二转发设备的结构示意图。该第二转发设备可采用图2对应的实施例中rta采用的方法。该第二转发设备可以是具有转发功能的各类网络设备,例如路由器、交换机等。该第二转发设备包括消息生成单元和发送单元。

所述消息生成单元用于根据配置的第一标识队列,生成第一组播加入消息。所述第一组播加入消息包括所述第一标识队列。所述第一标识队列包括n个标识,所述n为大于1的整数。所述n个标识用于标识在组播备份路径上沿第一方向依次经过的转发设备。所述第一方向为从组播接收者到组播源的方向。所述第二转发设备用于与所述组播接收者通信。

所述发送单元用于根据所述第一标识队列的第一标识,向第一转发设备发送所述第一组播加入消息。所述第一标识为位于所述第一标识队列的队首的标识。所述第一标识用于标识所述第二转发设备在所述组播备份路径上沿所述第一方向经过的转发设备。所述第一转发设备为所述第二转发设备在所述组播备份路径上沿所述第一方向的下一跳。

可选地,所述第二转发设备还包括标识队列生成单元,用于根据拓扑无关无环备份路径ti-lfa的修复列表生成所述第一标识队列。可选地,所述ti-lfa的修复列表包括n个标识,将所述n个标识顺序放入所述第一标识队列,所述第一标识队列中n个标识的顺序与所述ti-lfa的修复列表中n个标识的顺序相同。或者所述第二转发设备还包括标识队列指定单元,用于根据用户配置参数生成所述第一标识队列。

可选地,所述第二转发设备还包括能力协商单元。所述能力协商单元用于在所述发送单元向第一转发设备发送所述第一组播加入消息之前,与所述第二转发设备的邻居设备进行能力协商消息的交互。所述第二转发设备的邻居设备为与所述第二转发设备直接相连的转发设备。所述第二转发设备的邻居设备包括所述第一转发设备。所述能力协商消息用于协商是否支持标识队列的识别和处理。

可选地,所述第二转发设备接收作为所述组播接收者的主机发送的igmp报告。所述作为所述组播接收者的主机向所述第二转发设备发送所述igmp报告来指定要加入所述组播源的组播组。

图3所述的第二转发设备,在组播加入消息加入标识队列,指导组播加入消息的传递路径,使得组播加入消息能够顺利完成传递,从而能够在基于单播路由传递组播加入消息出现环路的情况下,实现组播备份路径的建立,有效提高组播网络可靠性。

图4示出了本发明实施例提供的一种用于处理组播加入消息的第一转发设备结构示意图。该第一转发设备可采用图2对应的实施例中除rta之外的转发设备所采用的方法。该第一转发设备可以是具有转发功能的各类网络设备,例如路由器、交换机等。该第一转发设备包括接收单元、判断单元、消息处理单元和第一发送单元。

所述接收单元用于接收来自第二转发设备的第一组播加入消息。所述第一组播加入消息包括第一标识队列。所述第一标识队列包括n个标识。所述n为大于或等于1的整数。所述n个标识用于标识在组播备份路径上沿第一方向依次经过的转发设备。所述第一方向为从组播接收者到组播源的方向。

所述判断单元用于判断所述第一标识队列的第一标识是否与所述第一转发设备的标识相同。所述第一标识为位于所述第一标识队列的队首的标识。

所述消息处理单元。用于确定所述第一标识与所述第一转发设备的标识相同,从所述第一组播加入消息的所述第一标识队列中删除所述第一标识,获得第二组播加入消息。

所述第一发送单元用于向第三转发设备发送所述第二组播加入消息。所述第三转发设备为所述第一转发设备在所述组播备份路径上沿所述第一方向的下一跳。

可选地,所述n为大于1的整数,所述第二组播加入消息包括第二标识队列,所述第二标识队列为从所述第一标识队列删除所述第一标识后获得的队列,所述第二标识队列包括n-1个标识。所述第一发送单元具体用于:获得所述第二标识队列的第二标识,所述第二标识为位于所述第二标识队列的队首的标识,所述第二标识用于标识所述第三转发设备;以及根据所述第二标识,向所述第三转发设备发送所述第二组播加入消息。

可选地,所述n为1,所述第一发送单元具体用于:确定所述第二组播加入消息包括的第二标识队列为空或者确定所述第二组播加入消息不包括所述第二标识队列后,获得所述第三转发设备的标识,所述第二标识队列为所述第一标识队列删除所述第一标识后获得的标识队列,所述第三转发设备为沿所述第一方向上所述第一转发设备的下一跳;以及根据所述第三转发设备的标识,向所述第三转发设备发送所述第二组播加入消息。可选地,所述第一、第二和第三转发设备位于同一环形网络中。

可选地,所述第一转发设备还包括:第二发送单元。所述第二发送单元用于确定所述第一标识与所述第一转发设备的标识不同,根据所述第一标识向第四转发设备发送所述第一组播加入消息。所述第一标识用于标识所述第四转发设备。所述第四转发设备为在所述组播备份路径上沿所述第一方向上所述第一转发设备的下一跳或下m跳。所述m为大于1的整数,所述下m跳为与所述第一转发设备间隔m跳。

可选地,所述第一转发设备还包括:能力协商单元。所述能力协商单元用于在所述接收单元接收来自第二转发设备的第一组播加入消息之前,与所述第一转发设备的邻居设备进行能力协商消息的交互。所述第一转发设备的邻居设备为与所述第一转发设备直接相连的转发设备。所述第一转发设备的邻居设备包括所述第二转发设备。所述能力协商消息用于协商是否支持标识队列的识别和处理。

上述图3、图4中各个单元可以是逻辑意义上的单元,在具体实施过程中既可以是由cpu读取存储器中存储的软件代码运行之后生成的功能组件,也可以是由硬件单元来实现。

图4所述的第一转发设备,通过识别组播加入消息中的标识队列,选择组播加入消息的传递路径,使得组播加入消息能够顺利完成传递,从而能够在基于单播路由传递组播加入消息出现环路的情况下,实现组播备份路径的建立,有效提高组播网络可靠性。

图5示出了本发明实施例提供的一种用于处理组播加入消息的转发设备的结构示意图,该转发设备可以用于执行如图2中rta执行的方法。该转发设备可以是图3对应的实施例提供的第二转发设备。该转发设备可以包括处理器501、通信接口502和存储器503。

所述处理器501,用于读取所述存储器503中的程序代码和数据,控制所述转发设备执行图2中本发明实施例提供的用于处理组播加入消息的方法中的201和202。

所述通信接口502,用于在所述处理器501控制下,与其他转发设备进行消息的接收和发送。

所述存储器503,用于存储用于该转发设备的程序代码和数据。

可选地,所述处理器501还可以用于图2所述方法中根据ti-lfa修复列表来生成所述第一标识队列或是根据用户配置参数生成所述第一标识队列。

可选地,所述处理器501还可以用于控制所述通信接口502执行图2所述方法中与邻居设备进行能力协商消息的交互。

图5所述的转发设备具有与图3所述第二转发设备相同的技术效果。

图6示出了本发明实施例提供的另一种用于处理组播加入消息的转发设备的结构示意图,该转发设备可以用于执行如图2中rtd、rtf、rtg和rth执行的方法。该转发设备可以是图4对应的实施例提供的第一转发设备。该转发设备可以包括处理器601、通信接口602和存储器603。

所述处理器601,用于读取所述存储器603中的程序代码和数据,控制所述转发设备执行图3中本发明实施例提供的用于处理组播加入消息的方法中的203至210。

所述通信接口602,用于在所述处理器601控制下,与其他转发设备进行消息的接收和发送。

所述存储器603,用于存储用于该转发设备的程序代码和数据。

可选地,所述处理器601还可以用于控制所述通信接口602执行图2所述方法中与邻居设备进行能力协商消息的交互。

图6所述的转发设备具有与图4所述第一转发设备相同的技术效果。

以上图5和图6中所述处理器501和601可以是例如中央处理器(centralprocessingunit,cpu)或数字信号处理器(digitalsignalprocessor,dsp)等,所述存储器502和602可以是随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、光盘只读存储器(compactdiscread-onlymemory,cd-rom)、硬盘驱动器(harddiskdrive,hdd)或固态硬盘(solidstatedisk,ssd)等,所述通信接口503和603可以是例如光纤分布式数据接口(fiberdistributeddatainterface,fddi)或千兆以太网(gigabitethernet,ge)接口等。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的流量转发方法和设备,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域的普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1