一种建立保护路径的方法、系统及网络节点转让专利

申请号 : CN200910110600.2

文献号 : CN101699784B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐耀

申请人 : 华为技术有限公司

摘要 :

本发明涉及通信领域,公开了一种建立保护路径的方法、系统及网络节点,适用于树形组播网络,所述组播网络包括至少一棵组播树,所述组播树至少包括两个节点,分别为第一节点和第二节点,通过获取所述第一节点与所述第二节点的位置差异度,所述位置差异度指示所述第一节点与所述第二节点的位置差异,所述位置差异度由所述第一节点的位置码和所述第二节点的位置码经过计算获得,所述位置码指示节点在所述组播树中的位置,当所述位置差异度大于等于设定的位置差异度阈值时,所述第一节点选择选择所述第二节点作为保护节点,所述第一节点建立与所述第二节点相连接的保护路径,达到了动态建立保护路径的技术效果,节约了网络资源。

权利要求 :

1.一种建立保护路径的方法,其特征在于,适用于树形组播网络,所述组播网络包括至少一棵组播树,所述组播树至少包括第一节点和第二节点,获取所述第一节点与所述第二节点的位置差异度,所述位置差异度指示所述第一节点与所述第二节点的位置差异,所述位置差异度由所述第一节点的位置码和所述第二节点的位置码经过计算获得,所述位置码指示节点在所述组播树中的位置;

当第N节点为根节点时,所述第N节点的位置码为特定数值以指示所述第N节点在所述组播树中的位置;

当第N节点不为根节点时,所述第N节点的位置码由上游第N-1节点的位置码和所述第N节点的位置标识组合而成,所述位置标识指示所述第N节点相对于所述上游第N-1节点的拓扑位置,其中,当所述第N节点位于所述上游第N-1节点的第一分支路径时,所述位置标识为第一数值,当所述第N节点位于所述上游第N-1节点的第二分支路径时,所述位置标识为第二数值,N为自然数;

所述位置差异度由所述第一节点的位置码和所述第二节点的所述位置码经过计算获得,包括:以字节的整数倍为比较单位,将所述第一节点的所述位置码与所述第二节点的所述位置码进行比较,计算首次出现不同的所述比较单位之间的差值,所述差值为所述位置差异度;

当所述位置差异度大于等于设定的位置差异度阈值时,所述第一节点选择所述第二节点作为保护节点;

所述第一节点建立与所述第二节点相连接的保护路径。

2.根据权利要求1所述的方法,其特征在于,所述获取第一节点与第二节点的位置差异度包括:所述第一节点向所述第二节点发送第一位置码报文,所述第一位置码报文携带所述第一节点的位置码;接收第二节点发送的响应报文,所述响应报文携带所述第一节点与所述第二节点的位置差异度;或者所述第一节点接收来自所述第二节点发送的第二位置码报文,所述第二位置码报文携带所述第二节点的位置码;所述第一节点根据所述第二位置码报文计算所述第一节点与所述第二节点的所述位置差异度。

3.根据权利要求2所述的方法,其特征在于,所述第一节点选择所述第二节点作为保护节点包括:所述第一节点向所述第二节点发送选择报文,所述选择报文携带所述第二节点的位置码;

所述第一节点接收所述第二节点发送的确认报文,所述确认报文指示所述确认第二节点作为所述第一节点的保护节点;

当所述第一节点接收到来自所述第二节点发送的确认报文时,选择所述第二节点作为保护节点。

4.根据权利要求3所述的方法,其特征在于,所述获取第一节点与第二节点的位置差异度之前,所述方法还包括:所述第一节点接收来自上游节点的位置码通告协议报文,获取所述位置码通告协议报文中携带的位置码,将所述位置码作为所述第一节点的位置码;

所述第一节点计算下游节点的位置码,向所述下游节点发送位置码通告协议报文,所述位置码通告协议报文中携带所述下游节点的位置码。

5.一种网络节点,其特征在于,所述网络节点为组播树的第一节点,所述网络节点包括:位置差异度获取模块,用于获取所述第一节点与第二节点的位置差异度,所述位置差异度指示所述第一节点与所述第二节点的位置差异,所述位置差异度由所述第一节点的位置码和所述第二节点的所述位置码经过计算获得,包括:以字节的整数倍为比较单位,将所述第一节点的所述位置码与所述第二节点的所述位置码进行比较,计算首次出现不同的所述比较单位之间的差值,所述差值为所述位置差异度;所述位置码指示节点在所述组播树中的位置,当第N节点为根节点时,所述第N节点的位置码为特定数值以指示所述第N节点在所述组播树中的位置,当第N节点不为根节点时,所述第N节点的位置码由上游第N-1节点的位置码和所述第N节点的位置标识组合而成,所述位置标识指示所述第N节点相对于所述上游第N-1节点的拓扑位置,其中,当所述第N节点位于所述上游第N-1节点的第一分支路径时,所述位置标识为第一数值,当所述第N节点位于所述上游第N-1节点的第二分支路径时,所述位置标识为第二数值,N为自然数;

位置差异度比较模块,用于比较所述位置差异度获取模块获取的所述位置差异度与设定的位置差异度阈值;

选择模块,用于当所述位置差异度比较模块比较出所述位置差异度大于等于所述位置差异度阈值时,选择所述第二节点作为保护节点;

保护路径建立模块,用于建立与所述第二节点相连接的保护路径。

6.根据权利要求5所述的路由设备,其特征在于,所述位置差异度获取模块,包括:

位置码发送单元,用于向所述第二节点发送第一位置码报文,所述第一位置码报文携带所述第一节点的位置码;

响应报文接收单元,用于接收所述第二节点发送的响应报文,所述响应报文携带所述第一节点与所述第二节点的所述位置差异度;

位置差异度提取单元,用于提取所述响应报文接收单元接收的所述响应报文中携带的所述位置差异度。

7.根据权利要求5所述的路由设备,其特征在于,所述位置差异度获取模块,包括:

位置码接收单元,用于接收来自所述第二节点发送的第二位置码报文,所述第二位置码报文携带所述第二节点的位置码;

位置差异度计算单元,用于获取所述位置码接收单元接收的所述第二位置码报文中携带的所述第二节点的位置码,计算所述第一节点与所述第二节点的所述位置差异度。

8.一种建立保护路径的系统,其特征在于,所述系统位于树形组播网络中,所述系统包括至少一棵组播树,所述组播树至少包括第一节点和第二节点,所述第一节点包括:位置差异度获取模块,用于获取所述第一节点与所述第二节点的位置差异度,所述位置差异度由所述第一节点的位置码和所述第二节点的位置码经过计算获得,包括:以字节的整数倍为比较单位,将所述第一节点的所述位置码与所述第二节点的所述位置码进行比较,计算首次出现不同的所述比较单位之间的差值,所述差值为所述位置差异度;所述位置码指示节点在所述组播树中的位置;当第N节点为根节点时,所述第N节点的位置码为特定数值以指示所述第N节点在所述组播树中的位置;当第N节点不为根节点时,所述第N节点的位置码由上游第N-1节点的位置码和所述第N节点的位置标识组合而成,所述位置标识指示所述第N节点相对于所述上游第N-1节点的拓扑位置,其中,当所述第N节点位于所述上游第N-1节点的第一分支路径时,所述位置标识为第一数值,当所述第N节点位于所述上游第N-1节点的第二分支路径时,所述位置标识为第二数值,N为自然数;

选择模块,用于当所述位置差异度大于等于位置设定的差异度阈值时,选择所述第二节点作为保护节点;

保护路径建立模块,用于建立与所述第二节点相连接的保护路径。

9.根据权利要求8所述的系统,其特征在于,所述第一节点获取所述第一节点与所述第二节点的位置差异度之前,所述第一节点接收来自上游节点的位置码通告协议报文,获取所述位置码通告协议报文中携带的位置码,将所述位置码作为所述第一节点的位置码;

所述第一节点计算下游节点的位置码,向所述下游节点发送位置码通告协议报文,所述位置码通告协议报文中携带所述下游节点的位置码。

说明书 :

一种建立保护路径的方法、系统及网络节点

技术领域

[0001] 本发明涉及通信领域,特别涉及一种建立保护路径的方法、系统及网络节点。

背景技术

[0002] 组播技术是一种把信息从一个节点发送到多个接收者的技术,可以应用于音频/视频流发布、短消息发布、数据分发、信息公告、远程教学、同步资源等许多领域,而且目前在很多领域已经开始广泛应用,例如:IPTV业务,远程教学等。现在随着城域网IPTV业务的快速发展,组播技术在城域网中的应用已经变得越来越重要,对组播技术的要求也越来越高,例如对组播流的延时、抖动,以及当网络发生故障时组播业务的可靠性保护等方面的要求都比较高。对于组播业务的可靠性保护,可通过保护切换来提高组播业务的可靠性,针对这一点,现有技术采用MPLS TE(Multi-Protocol Label Switching Traffic Engineering,多协议标签交换流量工程)快速重路由实现保护切换,具体如下:
[0003] MPLS TE快速重路由是MPLS TE中一种用于链路保护和节点保护的机制。当LSP(Label Switching Path,标签交换路径)链路或者节点故障时,在发现故障的节点进行保护,这样可以允许流量继续从保护链路或者保护节点的隧道中通过,以使得数据传输不至于发生中断。
[0004] MPLS TE快速重路由的基本原理是用一条预先建立的LSP来保护一条或多条LSP。预先建立的LSP称为快速重路由LSP,被保护的LSP称为主LSP。MPLS TE快速重路由的最终目的就是利用Bypass隧道绕过故障的链路或者节点,从而达到保护主LSP的功能。当上游节点检测到主LSP出现故障时,上游节点会将主LSP上的数据会切换到Bypass LSP上。
[0005] 在实现本发明的过程中,本发明的发明人发现现有技术至少存在以下问题:
[0006] 1、Bypass隧道是预先建立好的,不能根据网络拓扑的变化动态调整,不能动态保护主LSP。
[0007] 2、Bypass隧道的带宽一般是用于保护主LSP的,Bypass隧道上所有资源仅为切换后使用,当主LSP没有故障的时候,造成资源浪费。

发明内容

[0008] 本发明实施例的目的是提供一种建立保护路径的方法、系统及网络节点,实现动态建立保护路径,并节约网络资源。
[0009] 本发明实施例的目的是通过以下技术方案实现的:
[0010] 一种建立保护路径的方法,适用于多协议标签交换MPLS组播网络,所述组播网络包括至少一棵组播树,所述组播树至少包括第一节点和第二节点,
[0011] 获取所述第一节点与所述第二节点的位置差异度,所述位置差异度指示所述第一节点与所述第二节点的位置差异,所述位置差异度由所述第一节点的位置码和所述第二节点的位置码经过计算获得,所述位置码指示节点在所述组播树中的位置;
[0012] 当第N节点为根节点时,所述第N节点的位置码为特定数值以指示所述第N节点在所述组播树中的位置;
[0013] 当第N节点不为根节点时,所述第N节点的位置码由上游第N-1节点的位置码和所述第N节点的位置标识组合而成,所述位置标识指示所述第N节点相对于所述上游第N-1节点的拓扑位置,其中,当所述第N节点位于所述上游第N-1节点的第一分支路径时,所述位置标识为第一数值,当所述第N节点位于所述上游第N-1节点的第二分支路径时,所述位置标识为第二数值,N为自然数;
[0014] 所述位置差异度由所述第一节点的位置码和所述第二节点的所述位置码经过计算获得,包括:以字节的整数倍为比较单位,将所述第一节点的所述位置码与所述第二节点的所述位置码进行比较,计算首次出现不同的所述比较单位之间的差值,所述差值为所述位置差异度;
[0015] 当所述位置差异度大于等于设定的位置差异度阈值时,所述第一节点选择所述第二节点作为保护节点;
[0016] 所述第一节点建立与所述第二节点相连接的保护路径。
[0017] 一种网络节点,所述网络节点为组播树的第一节点,所述网络节点包括:
[0018] 位置差异度获取模块,用于获取所述第一节点与第二节点的位置差异度,所述位置差异度指示所述第一节点与所述第二节点的位置差异,所述位置差异度由所述第一节点的位置码和所述第二节点的所述位置码经过计算获得,包括:以字节的整数倍为比较单位,将所述第一节点的所述位置码与所述第二节点的所述位置码进行比较,计算首次出现不同的所述比较单位之间的差值,所述差值为所述位置差异度;所述位置码指示节点在所述组播树中的位置,当第N节点为根节点时,所述第N节点的位置码为特定数值以指示所述第N节点在所述组播树中的位置,当第N节点不为根节点时,所述第N节点的位置码由上游第N-1节点的位置码和所述第N节点的位置标识组合而成,所述位置标识指示所述第N节点相对于所述上游第N-1节点的拓扑位置,其中,当所述第N节点位于所述上游第N-1节点的第一分支路径时,所述位置标识为第一数值,当所述第N节点位于所述上游第N-1节点的第二分支路径时,所述位置标识为第二数值,N为自然数;
[0019] 位置差异度比较模块,用于比较所述位置差异度获取模块获取的所述位置差异度与设定的位置差异度阈值;
[0020] 选择模块,用于当所述位置差异度比较模块比较出所述位置差异度大于等于所述位置差异度阈值时,选择所述第二节点作为保护节点;
[0021] 保护路径建立模块,用于建立与所述第二节点相连接的保护路径。
[0022] 一种建立保护路径的系统,所述系统位于树形组播网络中,所述系统包括至少一棵组播树,所述组播树至少包括第一节点和第二节点,所述第一节点包括:
[0023] 位置差异度获取模块,用于获取所述第一节点与所述第二节点的位置差异度,所述位置差异度由所述第一节点的位置码和所述第二节点的位置码经过计算获得,包括:以字节的整数倍为比较单位,将所述第一节点的所述位置码与所述第二节点的所述位置码进行比较,计算首次出现不同的所述比较单位之间的差值,所述差值为所述位置差异度;所述位置码指示节点在所述组播树中的位置;当第N节点为根节点时,所述第N节点的位置码为特定数值以指示所述第N节点在所述组播树中的位置;当第N节点不为根节点时,所述第N节点的位置码由上游第N-1节点的位置码和所述第N节点的位置标识组合而成,所述位置标识指示所述第N节点相对于所述上游第N-1节点的拓扑位置,其中,当所述第N节点位于所述上游第N-1节点的第一分支路径时,所述位置标识为第一数值,当所述第N节点位于所述上游第N-1节点的第二分支路径时,所述位置标识为第二数值,N为自然数;
[0024] 选择模块,用于当所述位置差异度大于等于位置设定的差异度阈值时,选择所述第二节点作为保护节点;
[0025] 保护路径建立模块,用于建立与所述第二节点相连接的保护路径。
[0026] 采用本实施例的技术方案,通过比较位置差异度是否大于位置差异度阈值,当位置差异度大于位置差异度阈值时,选择至少一个保护节点,并建立与保护节点相连接的保护路径,达到了动态建立保护路径的技术效果,节约了网络资源。

附图说明

[0027] 图1为本发明实施例的组网示意图;
[0028] 图2为本发明实施例中一种建立保护路径的方法流程图;
[0029] 图3为本发明的实施例中提供的一种位置码的示意图;
[0030] 图4为本发明实施中的自定义报文格式示意图;
[0031] 图5为本发明实施中的自定义报文的数据字段403示意图;
[0032] 图6为本发明实施例中另一种建立保护路径的方法流程图;
[0033] 图7为本发明实施例中确定位置码的方法流程图;
[0034] 图8为本发明实施中的Path消息格式示意图;
[0035] 图9为本发明实施中的Path消息格式的对象字段808示意图;
[0036] 图10为本发明的实施例中提供的一种网络节点结构示意图。

具体实施方式

[0037] 为了使本发明实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0038] 为便于说明,下面介绍本发明的一个具体实施例。如图1所示的MPLS组播树,该MPLS组播网络包括组播服务器110、用户终端151、用户终端161、用户终端171、用户终端181和连接组播服务器110与各个用户终端的组播树,其中,组播树具体包括节点120、节点
130、节点140、节点150、节点160、节点170和节点180,其中,节点120为根节点,节点120与节点130之间通过链路121连接,链路122和链路131为组播树的分支路径,节点120与节点140之间通过链路122连接,节点130与节点140之间通过链路131连接,链路121、链路122和链路131均为已有物理链路。
[0039] 本实施例中,如图1所示的网络组网示意图还可以为其它树形结构的组播网络。
[0040] 上述节点可以是具备路由功能的任何网络设备,例如:路由器和三层交换机等。
[0041] 下面以节点130为例,对本发明实施例中实现保护切换的方法进行具体介绍。
[0042] 下面以节点130为被保护节点,节点140作为节点130的保护节点为例,分别对节点130和节点140的动作进行介绍:
[0043] (一)节点130建立保护路径的流程如图2所示,具体为:
[0044] 201、获取位置差异度,具体为获取节点130与节点140的位置差异度;
[0045] 202、比较位置差异度是否大于位置差异度阈值,具体为比较节点130与节点140的位置差异度是否大于设定的位置差异度阈值;当位置差异度大于设定的位置差异度阈值时,执行步骤203;否则,本流程操作结束;
[0046] 203、选择保护节点,具体为:当节点130与节点140的位置差异度大于等于设定的位置差异度阈值时,节点130选择节点140作为保护节点;
[0047] 204、建立保护路径,具体为:节点130在组播组表项中,添加与上述保护节点对应的表项,将链路131确定为保护路径。未发生故障时,节点130不需要接收来自保护路径的流量,因此,204中还需要禁止上述保护节点对应的表项,以阻断来自保护节点的流量。
[0048] 本发明实施例中,节点130可以选择多个节点作为保护节点,具体选择方法与节点130选择140作为保护节点的过程类似。
[0049] 本实施例在步骤202中还可以再比较节点140的负载流量是否大于负载流量阈值,相应的,202具体为:比较节点130与节点140的位置差异度是否大于等于设定的位置差异度阈值;比较节点140的负载流量是否大于负载流量阈值;当位置差异度大于位置差异度阈值,且负载流量大于负载流量阈值时,跳转至203;否则,本流程操作结束。
[0050] 采用本实施例的技术方案,通过比较被保护节点与其他节点的位置差异度是否大于等于设定的位置差异度阈值,当被保护节点与其他节点的位置差异度是否大于等于设定的位置差异度阈值时,被保护节点选择至少一个保护节点,并建立被保护节点与保护节点相连接的保护路径,达到了动态建立保护路径的技术效果,进一步地,达到了节约网络资源的技术效果。
[0051] 本实施例中,位置码的定义如图3所示,位置码经过一个迭代过程获得,具体为:节点N的位置码由上游节点N-1的位置码和节点N的位置标识组合得到,其中,N为自然数,根节点位置码为特定数值,指示根节点在所述组播树中的位置,节点N的位置标识指示节点N相对于上游节点N-1的拓扑位置,具体为当节点N位于上游节点N-1的第一分支路径时,位置标识为第一数值,当节点位于上游节点N-1的第二分支路径时,位置标识为第二数值。例如:节点130的位置码由根节点位置码和节点130的位置标识组合而成,根节点(节点120)位置码为特定数值(十六进制表示为0x0000),因为节点130位于节点120的第一分支路径121,所以节点130的位置标识为第一数值(十六进制表示为0x0001),将节点130的位置标识置于根节点的位置码之后,得到节点130的位置码为0x00000001,其中,前两个字节为根节点位置码,后两个字节为节点130的位置标识。类似地,节点160的位置码由节点130的位置码和节点160的位置标识组合而成,因为节点160位于节点130的第二分支路径,所以节点160的位置标识为第二数值(十六进制表示为0x0002),其中,上述组合不限定具体的组合形式。
[0052] 位置差异度由节点的位置码和其他节点的位置码经过计算获得,具体为:以字节的整数倍为比较单位,将节点的位置码与其他节点的位置码进行比较,计算首次出现不同的比较单位之间的差值,该差值即为节点与其它节点的位置差异度,例如:计算节点130与节点140的位置差异度,其中,节点130的位置码为0x00000001,节点140的位置码为0x00000002,如表1所示,如下:
[0053] 表1
[0054]位置码 第一比较单位 第二比较单位
节点130的位置码 0x0000 0x0001
节点140的位置码 0x0000 0x0002
[0055] 以双字节为比较单位从左向右进行比较,首次出现不同的比较单位为第一比较单位,计算得到第一比较单位中数值的差值为1,则节点130与节点140的位置差异度为1。另外,当两个节点的位置码长度不同时,也按照类似方法进行比较。
[0056] 上述实施例中,201还可以包括:
[0057] 201-A1、节点130向节点140发送第一位置码报文,该第一位置码报文携带节点130的位置码;
[0058] 201-B1、接收节点140发送的Response(响应)报文,Response报文携带节点130与节点140的位置差异度。
[0059] 上述实施例中,201还可以包括:
[0060] 201-A2、节点130接收来自节点140发送的第二位置码报文,该第二位置码报文携带节点140的位置码;
[0061] 201-B2、计算节点130与节点140的位置差异度。
[0062] 其中,第一位置码报文和第二位置码报文可以为Hello报文,Hello报文为扩展的协议报文,可以采用如图4所示的格式定义,具体格式定义为:
[0063] 首部400,为三层报文首部,包括UDP报文首部或RawIP报文首部。报文的目的IP地址使用广播地址,以使同一网段的所有节点能够接收到Hello报文。
[0064] 类型401,用于表明报文的不同类型,设置其为特定数值(0x01),以表示该报文为Hello报文。
[0065] 组播树标识402,用于区别不同的组播树。
[0066] 数据403,用于承载位置码,数据字段403可以采用固定的格式承载位置码,也可以采用TLV(Type、Length、Value)格式承载位置码。
[0067] 固定格式可以是采用固定字段承载位置码,例如,固定几个字节用于承载位置码。
[0068] TLV格式可以是如图5所示的格式,其中:
[0069] 类型501,用于表示数据字段403的类型。
[0070] 长度502,用于标识数据字段403的长度,可以以字节计算。
[0071] 数值503,用于承载位置码或位置差异度阈值。
[0072] 位置码和位置差异度阈值也可以分别采用不同的TLV格式承载。
[0073] 以上自定义格式不限定具体的定义方式。
[0074] 其中,Response报文可以为自定义的协议报文,可以采用如图4所示的格式定义,通过数据字段403携带节点140与节点130的位置差异度。
[0075] 格式定义具体为:
[0076] 首部400,为三层报文首部,包括UDP报文首部或TCP报文首部。
[0077] 类型401,用于表明报文的不同类型,设置其为特定数值(0x02),以表示该报文为Response报文。
[0078] 组播树标识402,用于区别不同的组播树。
[0079] 数据403,用于承载节点140与节点130的位置差异度,数据字段403可以采用固定的格式承载节点140与节点130的位置差异度。也可以采用TLV格式承载节点140与节点130的位置差异度。
[0080] 固定格式可以是采用固定字段承载节点140与节点130的位置差异度,例如,固定几个字节用于承载位置差异度。
[0081] TLV格式可以是如图5所示的格式,其中:
[0082] 类型501,用于表示数据字段403的类型。
[0083] 长度502,用于标识数据字段403的长度,可以以字节计算。
[0084] 数值503,用于承载节点140与节点130的位置差异度。
[0085] 以上自定义格式不限定具体的定义方式。
[0086] 上述实施例中,203还可以包括:
[0087] 203-A、当节点130与节点140的位置差异度大于等于位置差异度阈值时,节点130向节点140发送Selected(选择)报文,Selected报文携带节点140的位置码;
[0088] 203-B、节点130接收来自节点140发送的ACK(确认)报文,ACK报文指示节点140确认作为节点130的保护节点;
[0089] 203-C、当节点130接收到来自节点140发送的ACK报文时,选择节点140作为保护节点。
[0090] 选择保护节点过程中,节点140的拓扑位置可能发生变化,导致节点140不能作为保护节点,203-A、203-B和203-C可以确保节点140在选择保护节点过程中,拓扑位置没有发生变化,提高选择保护节点的正确性。
[0091] 其中,Selected报文与ACK报文的格式定义与Response报文定义类似,只是携带的信息不同而已,Selected报文携带节点140的位置码,ACK报文指示节点140可以作为节点130的保护节点。
[0092] 其中,203-B中节点140的拓扑位置发生变化导致不能作为保护节点时,节点130将接收不到节点140发送的ACK报文,此时,节点130将判断接收ACK报文超时,不选择节点140作为保护节点;或者,节点140将向节点130发送Cancel(取消)报文,节点130接收到Cancel报文时,不选择节点140作为保护节点。
[0093] 其中,Cancel报文的格式定义与Response报文定义类似,只是携带的信息不同而已,Cancel报文指示节点140不可以作为节点130的保护节点。
[0094] 上述实施例中,节点130选择节点140作为保护节点,下面介绍节点140对应的工作流程如图6所示,具体为:
[0095] 601、计算位置差异度,具体为计算节点130与节点140的位置差异度;
[0096] 602、确定作为保护节点,具体为:当节点140与节点130的位置差异度大于等于位置差异度阈值时,节点140确定作为节点130的保护节点;
[0097] 其中,节点140可以确定作为多个节点的保护节点;
[0098] 603、建立保护路径,具体为:节点140在组播组表项中,添加与上述节点130对应的表项,节点140向节点130发送组播流量,将链路131确定为保护路径。
[0099] 本发明实施例中,601还可以包括:
[0100] 601-A1、节点140接收来自节点130的第一位置码报文,该第一位置码报文携带节点130的所述位置码;
[0101] 601-B1、计算节点130与节点140的位置差异度;
[0102] 601-C1、发送Response,Response携带节点130与节点140的位置差异度。
[0103] 上述实施例中,601可以省去,由节点130来计算节点130与节点140的位置差异度,具体为节点140向节点130发送第二位置码报文,该第二位置码报文携带节点140的位置码。
[0104] 上述实施例中,602还可以包括:
[0105] 602-A、节点140接收来自节点130的Selected报文,Selected报文携带节点140的位置码;
[0106] 602-B、当节点140判断出所述位置码未发生变化时,向节点130发送ACK报文,ACK报文指示节点140确定作为节点130的保护节点。
[0107] 本发明实施例中,节点140可以既作为其它节点的保护节点,又作为其它节点的被保护节点。
[0108] 本发明实施例中,保护路径建立之后,还包括:
[0109] 当节点130将工作路径切换为保护路径之后,向上游节点发送位置码更新请求报文,以重新确定节点130的位置码;
[0110] 其中,位置码更新请求报文为自定义的协议报文,可以采用如图4所示的格式定义,格式定义具体为:
[0111] 首部400,为三层报文首部,具体为UDP报文首部或TCP报文首部。
[0112] 类型401,用于表明报文的不同类型,设置其为特定数值(0x06),以表示该报文为位置码更新请求报文。
[0113] 组播树标识402,用于区别MPLS网络中不同的组播树。
[0114] 数据403,用于扩展选项,数据字段403可以采用固定格式承载扩展选项,也可以采用TLV格式承载扩展选项。
[0115] 固定格式可以是采用固定字段承载扩展选项,例如,固定几个字节分别作为承载扩展选项的字段。
[0116] TLV格式可以是如图5所示的格式,其中:
[0117] 类型501,用于表示数据字段403的类型。
[0118] 长度502,用于标识数据字段403的长度,可以以字节为单位计算长度。
[0119] 数值503,用于承载扩展选项,应用于其它用途。
[0120] 当节点130将工作路径切换为保护路径之后,节点130的上游节点已经发生变化,节点130通过向新的上游节点发送位置码更新请求报文,以重新确定节点130的位置码,使得节点130的位置码能够根据组播树的拓扑变化,动态确定新的位置码。
[0121] 本发明实施例中,获取节点130与节点140的位置差异度之前,还包括确定节点位置码的过程,下面以节点130为例,介绍确定位置码的过程,如图7所示,具体如下:
[0122] 701、确定位置码,具体为:
[0123] 接收来自上游节点120的位置码通告协议报文时,获取位置码通告协议报文中携带的位置码,将该位置码作为节点130的位置码。
[0124] 其中,位置码通告协议报文可以是已有的标准协议中定义的报文,如用于创建路径的Path消息;也可以是自定义的协议报文,下面详细介绍两种位置码通告协议报文:
[0125] 当位置码通告协议报文是已有的标准协议报文时,位置码通告协议报文为Path消息,如图8所示,PATH消息的报文格式具体包括:
[0126] IP首部801:因特网协议IP报文头
[0127] 版本802:RSVP版本信息;
[0128] 标志803:标志位;
[0129] 消息类型804:消息类型,当前数值为1,以表示该消息为Path消息;
[0130] 消息校验和805:校验和;
[0131] 生存时间806:生存时间;
[0132] 消息长度807:RSVP报文的长度;
[0133] 对象808:用于携带节点的位置码。
[0134] 其中,对象808可以采用图9所示的表示方式,具体为:
[0135] Length 901:用于表示对象808的长度。
[0136] C-Type 902:用于区分不同的对象,例如:设置该字段为特定数值(0X0666)以表示对象808为携带位置码的对象。
[0137] Class Num 903:用于表示位置码的单位个数,例如:当位置码为0x000000009002时,位置码的最小单位为两个字节,则位置码的单位个数为3。
[0138] Object Content 904:用于携带节点的位置码。
[0139] 当位置码通告协议报文为自定义的协议报文时,位置码通告协议报文为自定义协议报文格式如图4所示,具体包括:
[0140] 首部400,三层报文首部,包括UDP报文首部或TCP报文首部。
[0141] 类型401,用于表明报文的不同类型,设置其为特定数值(0x06),以表示该报文为位置码通告协议报文。
[0142] 组播树标识402,用于区别不同的组播树。
[0143] 数据403,用于承载节点的位置码,数据字段403可以采用固定格式承载位置码,也可以采用TLV格式承载位置码。
[0144] 其中,固定格式可以是采用固定字段承载位置码,例如,固定几个字节作为承载位置码的字段。
[0145] TLV格式可以是如图5所示的格式,其中:
[0146] 类型501,用于标识数据字段403的类型。
[0147] 长度502,用于标识数据字段403的长度,可以以字节计算。
[0148] 数值503,用于承载位置码。
[0149] 以上自定义格式不限定具体的定义方式,只要能够携带节点的位置码即可。
[0150] 702、计算下游节点位置码,具体为:计算节点130的下游节点的位置标识,将该位置标识与节点130的位置码组合得到下游节点的位置码,例如:节点130的位置码为0x00000001,节点160的位置标识为0x0002,则节点160的位置码由0x00000001与0x0002组合得到,节点160的位置码为0x000000010002。
[0151] 703、发送位置码通告协议报文,具体为:
[0152] 节点130向下游节点发送位置码通告协议报文,位置码通告协议报文携带下游节点的位置码。例如:节点130分别向节点150和节点160发送位置码通告协议报文,其中,发送给节点150的位置码通告协议报文携带节点150的位置码(0x000000010001),发送给节点160的位置码通告协议报文携带节点160的位置码(0x000000010002)。
[0153] 本发明实施例中,提供了一种网络节点,如图10所示,该网络节点包括:
[0154] 位置差异度获取模块1010,用于获取第一节点与第二节点的位置差异度,位置差异度指示第一节点与第二节点的位置差异,位置差异度由第一节点的位置码和第二节点的位置码经过计算获得,位置码指示节点在组播树中的位置;
[0155] 位置差异度比较模块1020,用于比较位置差异度获取模块1010获取的位置差异度与设定的位置差异度阈值;
[0156] 选择模块1030,用于当位置差异度比较模块1020比较出位置差异度大于等于位置差异度阈值时,选择第二节点作为保护节点;
[0157] 保护路径建立模块1040,用于建立与第二节点相连接的保护路径。
[0158] 其中,位置差异度获取模块1010可以包括:
[0159] 位置码发送单元,用于向第二节点发送第一位置码报文,第一位置码报文携带第一节点的位置码;
[0160] 响应报文接收单元,用于接收第二节点发送的响应报文,响应报文携带第一节点与第二节点的位置差异度;
[0161] 位置差异度提取单元,用于提取响应报文接收单元接收的响应报文中携带的位置差异度。
[0162] 其中,位置差异度获取模块1010还可以包括:
[0163] 位置码接收单元,用于接收来自第二节点发送的第二位置码报文,第二位置码报文携带第二节点的位置码;
[0164] 位置差异度计算单元,用于获取位置码接收单元接收的第二位置码报文中携带的第二节点的位置码,计算第一节点与第二节点的位置差异度。
[0165] 其中,选择模块1030可以包括:
[0166] 选择报文发送单元,用于向第二节点发送选择报文,该选择报文携带第二节点的位置码;
[0167] 确认报文接收单元,用于接收来自第二节点的确认报文,该确认报文指示确认第二节点作为保护节点;
[0168] 确认单元,用于当确认报文接收单元接收到确认报文时,选择第二节点作为保护节点。
[0169] 网络节点还可以包括:
[0170] 位置码接收模块,用于接收来自上游节点的位置码通告协议报文,获取该位置码通告协议报文中携带的位置码,将该位置码作为网络节点的位置码;
[0171] 位置码计算模块,用于根据位置码接收模块接收的该网络节点的位置码,计算下游节点的位置码;
[0172] 位置码发送模块,用于向下游节点发送位置码通告协议报文,该位置码通告协议报文中携带下游节点的位置码。
[0173] 本发明实施例中,还提供了一种建立保护路径的系统,该系统包括:
[0174] 一种建立保护路径的系统,系统位于树形组播网络中,系统包括至少一棵组播树,组播树至少包括第一节点和第二节点,
[0175] 第一节点获取第一节点与第二节点的位置差异度,位置差异度由第一节点的位置码和第二节点的位置码经过计算获得,位置码指示节点在组播树中的位置;当位置差异度大于等于位置设定的差异度阈值时,第一节点选择第二节点作为保护节点;第一节点建立与第二节点相连接的保护路径。
[0176] 其中,第一节点获取第一节点与第二节点的位置差异度之前,
[0177] 第一节点接收来自上游节点的位置码通告协议报文,获取位置码通告协议报文中携带的位置码,将位置码作为第一节点的位置码;
[0178] 第一节点计算下游节点的位置码,向下游节点发送位置码通告协议报文,位置码通告协议报文中携带下游节点的位置码。
[0179] 通过以上的实施方式的描述,本领域的普通技术人员可以清楚地了解到本发明实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备、或者服务器、或者其他网络设备执行本发明各个实施例或者实施例的某些部分所述的方法。
[0180] 以上仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。