调整链路开销的方法和装置转让专利

申请号 : CN201380076705.5

文献号 : CN105247823B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张旭东胡志波

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

摘要 :

本发明实施例提供了一种调整链路开销的方法,能够避免微环现象的发生,方法包括:确定至少一个待处理节点对;确定各待处理节点的路径开销变化值,各待处理节点的路径开销变化值是各待处理节点的第一路径开销与第二路径开销的差值;根据待处理节点的路径开销变化值,对第一链路的链路开销进行至少两次调整,以在第一链路在从故障中恢复时,使各待处理节点对中在第一路径上的下一跳节点先于上一跳节点将至第一节点的最优路径迁移至第一路径,或在第一链路发生故障时,使各待处理节点对中在第一路径上的上一跳节点先于下一跳节点将至第一节点的最优路径迁移出第一路径。

权利要求 :

1.一种调整链路开销的方法,其特征在于,在包括至少三个节点的通信系统中执行,其中,第一节点与第二节点之间通过第一链路直接连接,所述第一链路用于传输需要发送至所述第一节点的数据,所述方法包括:当所述第一链路发生故障或从故障中恢复时,网络设备从所述至少三个节点中确定至少一个待处理节点对,其中,每个待处理节点对包括经由一条链路相连的两个待处理节点,所述待处理节点能够通过不包括所述第一链路的第二路径向所述第一节点发送报文,并且,所述待处理节点能够在所述第一链路正常时通过包括所述第一链路的第一路径向所述第一节点发送报文,其中,一个第二路径是从一个待处理节点在至所述第一节点的不包括所述第一链路的路径中总的链路开销最小的路径,一个第一路径是在所述第一链路正常时从一个待处理节点至所述第一节点的最优路径,并且,每个待处理节点对中的各待处理节点在第二路径上和第一路径上的上下跳关系相异;

所述网络设备确定各待处理节点的路径开销变化值,所述各待处理节点的路径开销变化值是各待处理节点的第一路径开销与第二路径开销的差值,所述第一路径开销是当第一链路正常时在第一路径上的总的链路开销,所述第二路径开销是在第二路径上的总的链路开销;

所述网络设备根据所述待处理节点的路径开销变化值,对所述第一链路的链路开销进行至少两次调整,以在所述第一链路在从故障中恢复时,使各待处理节点对中在第一路径上的下一跳节点先于上一跳节点将至所述第一节点的最优路径迁移至所述第一路径,或以在所述第一链路发生故障时,使各待处理节点对中在第一路径上的上一跳节点先于下一跳节点将至所述第一节点的最优路径迁移出所述第一路径。

2.根据权利要求1所述的方法,其特征在于,所述网络设备根据所述待处理节点的路径开销变化值,对所述第一链路的链路开销进行至少两次调整,包括:所述网络设备根据各待处理节点的路径开销变化值,确定各待处理节点的调整范围,其中,一个待处理节点的调整范围为小于等于所述待处理节点的路径开销变化值,且大于等于所述待处理节点的参考节点的路径开销变化值,一个待处理节点的参考节点是所述待处理节点在各第一路径上的上一跳节点中路径开销变化值最大的节点;

所述网络设备根据所述待处理节点的调整范围,对所述第一链路的链路开销进行至少两次调整。

3.根据权利要求1所述的方法,其特征在于,所述网络设备根据所述待处理节点的路径开销变化值,对所述第一链路的链路开销进行至少两次调整,包括:所述网络设备从所述待处理节点中,确定N个目标节点,其中,所述目标节点的数目小于等于所述待处理节点的数目;

所述网络设备根据各所述目标节点的路径开销变化值,对所述第一链路的链路开销进行N次调整。

4.根据权利要求3所述的方法,其特征在于,所述网络设备从所述待处理节点中,确定N个目标节点,包括:所述网络设备将所述待处理节点的全部,作为所述N个目标节点。

5.根据权利要求3或4所述的方法,其特征在于,所述网络设备根据各所述目标节点的路径开销变化值,对所述第一链路的链路开销进行N次调整,包括:在所述第一链路在从故障中恢复时,所述网络设备以递减的方式,对各所述目标节点的路径开销变化值进行第一排序处理;

所述网络设备对所述第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与所述第一链路正常时的链路开销之差小于第一值且大于第二值,其中,所述第一值是经过所述第一排序处理后的第i个路径开销变化值,所述第二值是经过所述第一排序处理后的第i+1个路径开销变化值。

6.根据权利要求3或4所述的方法,其特征在于,所述网络设备根据各所述目标节点的路径开销变化值,对所述第一链路的链路开销进行N次调整,包括:在所述第一链路在从故障中恢复时,所述网络设备以递增的方式,对各所述目标节点的路径开销变化值进行第二排序处理;

所述网络设备对所述第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与所述第一链路正常时的链路开销之差小于第三值且大于第四值,其中,所述第三值是经过所述第二排序处理后的第N-i+1个路径开销变化值,所述第四值是经过所述第二排序处理后的第N-i个路径开销变化值。

7.根据权利要求3或4所述的方法,其特征在于,所述网络设备根据各所述目标节点的路径开销变化值,对所述第一链路的链路开销进行N次调整,包括:在所述第一链路发生故障时,所述网络设备以递增的方式,对各所述目标节点的路径开销变化值进行第三排序处理;

所述网络设备对所述第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与所述第一链路正常时的链路开销之差大于第五值且小于第六值,其中,所述第六值是经过所述第三排序处理后的第i+1个路径开销变化值,所述第五值是经过所述第三排序处理后的第i个路径开销变化值。

8.根据权利要求3或4所述的方法,其特征在于,所述网络设备根据各所述目标节点的路径开销变化值,对所述第一链路的链路开销进行N次调整,包括:在所述第一链路发生故障时,所述网络设备以递减的方式,对各所述目标节点的路径开销变化值进行第四排序处理;

所述网络设备对所述第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与所述第一链路正常时的链路开销之差大于第七值且小于第八值,其中,所述第八值是经过所述第四排序处理后的第N-i个路径开销变化值,所述第七值是经过所述第四排序处理后的第N-i+1个路径开销变化值。

9.根据权利要求1至4中任一项所述的方法,其特征在于,所述网络设备对所述第一链路的链路开销进行至少两次调整包括:所述网络设备确定各目标节点计算最优路径所需要的处理时间;

所述网络设备根据所述处理时间,确定所述至少两次调整之间的时间间隔;

所述网络设备根据所述时间间隔,对所述第一链路的链路开销进行至少两次调整。

10.根据权利要求1至4中任一项所述的方法,其特征在于,所述网络设备为所述第二节点。

11.一种调整链路开销的装置,其特征在于,所述装置配置于包括至少三个节点的通信系统中,其中,第一节点与第二节点之间通过第一链路直接连接,所述第一链路用于传输需要发送至所述第一节点的数据,所述装置包括:待处理节点确定单元,用于当所述第一链路发生故障或从故障中恢复时,从至少三个节点中确定至少一个待处理节点对,其中,每个待处理节点对包括经由一条链路相连的两个待处理节点,所述待处理节点能够通过不包括第一链路的第二路径向所述至少三个节点的第一节点发送报文,并且,所述待处理节点能够在所述第一链路正常时通过包括所述第一链路的第一路径向所述第一节点发送报文,其中,一个第二路径是从一个待处理节点在至所述第一节点的不包括所述第一链路的路径中总的链路开销最小的路径,一个第一路径是在所述第一链路正常时从一个待处理节点至所述第一节点的最优路径,并且,每个待处理节点对中的各待处理节点在第二路径上和第一路径上的上下跳关系相异,所述至少三个节点中的第二节点与所述第一节点之间通过所述第一链路直接连接,所述第一链路用于传输需要发送至所述第一节点的数据;

路径开销变化值确定单元,用于确定各待处理节点的路径开销变化值,所述各待处理节点的路径开销变化值是各待处理节点的第一路径开销与第二路径开销的差值,所述第一路径开销是当第一链路正常时在第一路径上的总的链路开销,所述第二路径开销是在第二路径上的总的链路开销;

链路开销调整单元,用于根据各待处理节点的路径开销变化值,对所述第一链路的链路开销进行至少两次调整,以在所述第一链路在从故障中恢复时,使各待处理节点对中在第一路径上的下一跳节点先于上一跳节点将至所述第一节点的最优路径迁移至所述第一路径,或以在所述第一链路发生故障时,使各待处理节点对中在第一路径上的上一跳节点先于下一跳节点将至所述第一节点的最优路径迁移出所述第一路径。

12.根据权利要求11所述的装置,其特征在于,所述链路开销调整单元具体用于根据各待处理节点的路径开销变化值,确定各待处理节点的调整范围,其中,一个待处理节点的调整范围为小于等于所述待处理节点的路径开销变化值,且大于等于所述待处理节点的参考节点的路径开销变化值,一个待处理节点的参考节点是所述待处理节点在各第一路径上的上一跳节点中路径开销变化值最大的节点;

用于根据所述待处理节点的调整范围,对所述第一链路的链路开销进行至少两次调整。

13.根据权利要求11所述的装置,其特征在于,所述链路开销调整单元还用于从所述待处理节点中,确定N个目标节点,其中,所述目标节点的数目小于等于所述待处理节点的数目;

用于根据各所述目标节点的路径开销变化值,对所述第一链路的链路开销进行N次调整。

14.根据权利要求13所述的装置,其特征在于,所述链路开销调整单元具体用于将所述待处理节点的全部,作为所述N个目标节点。

15.根据权利要求13或14所述的装置,其特征在于,所述链路开销调整单元具体用于在所述第一链路在从故障中恢复时,以递减的方式,对各所述目标节点的路径开销变化值进行第一排序处理;

用于对所述第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与所述第一链路正常时的链路开销之差小于第一值且大于第二值,其中,所述第一值是经过所述第一排序处理后的第i个路径开销变化值,所述第二值是经过所述第一排序处理后的第i+1个路径开销变化值。

16.根据权利要求13或14所述的装置,其特征在于,所述链路开销调整单元具体用于在所述第一链路在从故障中恢复时,以递增的方式,对各所述目标节点的路径开销变化值进行第二排序处理;

用于对所述第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与所述第一链路正常时的链路开销之差小于第三值且大于第四值,其中,所述第三值是经过所述第二排序处理后的第N-i+1个路径开销变化值,所述第四值是经过所述第二排序处理后的第N-i个路径开销变化值。

17.根据权利要求13或14所述的装置,其特征在于,所述链路开销调整单元具体用于在所述第一链路发生故障时,以递增的方式,对各所述目标节点的路径开销变化值进行第三排序处理;

用于对所述第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与所述第一链路正常时的链路开销之差大于第五值且小于第六值,其中,所述第六值是经过所述第三排序处理后的第i+1个路径开销变化值,所述第五值是经过所述第三排序处理后的第i个路径开销变化值。

18.根据权利要求13或14所述的装置,其特征在于,所述链路开销调整单元具体用于在所述第一链路发生故障时,以递减的方式,对各所述目标节点的路径开销变化值进行第四排序处理;

用于对所述第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与所述第一链路正常时的链路开销之差大于第七值且小于第八值,其中,所述第八值是经过所述第四排序处理后的第N-i个路径开销变化值,所述第七值是经过所述第四排序处理后的第N-i+1个路径开销变化值。

19.根据权利要求11至14中任一项所述的装置,其特征在于,所述链路开销调整单元还用于确定各目标节点计算最优路径所需要的处理时间;

用于根据所述处理时间,确定所述至少两次调整之间的时间间隔;

用于根据所述时间间隔,对所述第一链路的链路开销进行至少两次调整。

20.根据权利要求11至14中任一项所述的装置,其特征在于,所述装置为所述第二节点。

说明书 :

调整链路开销的方法和装置

技术领域

[0001] 本发明涉及通信领域,并且更具体地,涉及调整链路开销的方法和装置。

背景技术

[0002] 目前,已知一种技术,在网际协议(IP,Internet Protocol)网络的网络设备中,采用分布式的域内网关协议(Interior Gateway Protocol)计算,即,每台网络设备单独调度执行路由计算,彼此之间无顺序控制。因此,在发生链路故障或者故障恢复时,由于各网络设备在硬件能力上的差别以及设备运行的内外环境上的差别,导致路由计算的启动时间点、运行时长、计算结束时间点以及下发转发信息库(FIB,Fowarding Information Base)表项的时间点不一致,进而导致微环现象的出现。
[0003] 具体地说,在图2所示的IP网络中,例如,当节点a与节点b之间的链路从故障中恢复时,例如,如果节点c的硬件能力比节点b的硬件能力强,且节点c的负载低于节点b的负载,则节点c对路由的计算及对FIB表项的下发先于节点b完成,进而,节点c将从节点c到节点a的最优路径从路径1(该路径按转发顺序依次为节点c、节点d、节点e、节点f、节点a)切换至路径2(该路径按转发顺序依次包括节点c、节点b、节点a),或者说,节点c从链路c→d切换至链路c→b,从而,节点c在需要向节点a发送数据时,将该数据发送给节点b。此时,节点b对路由的计算及对FIB表项的下发尚未完成,节点b依然将路径3(该路径按转发顺序依次包括节点b、节点c、节点d、节点e、节点f、节点a)作为从节点b到节点a的最优路径,因而,节点b在需要向节点a发送数据时,选择链路b→c,将该数据送给节点c。这样,在节点b与节点c之间出现了微环现象,即,数据在节点b与节点c之间多次转发,可能导致数据在IP网络中传输的时间过长而被丢弃。
[0004] 因此,希望提供一种技术,能够防止微环现象的出现。

发明内容

[0005] 本发明提供一种调整链路开销的方法和装置,能够防止微环现象的出现。
[0006] 第一方面,提供了一种调整链路开销的方法,在包括至少三个节点的通信系统中执行,其中,第一节点与第二节点之间通过第一链路直接连接,该第一链路用于传输需要发送至该第一节点的数据,该方法包括:当该第一链路发生故障或从故障中恢复时,网络设备从该至少三个节点中确定至少一个待处理节点对,其中,每个待处理节点对包括经由一条链路相连的两个待处理节点,该待处理节点能够通过不包括该第一链路的第二路径向该第一节点发送报文,并且,该待处理节点能够在该第一链路正常时通过包括该第一链路的第一路径向该第一节点发送报文,其中,一个第二路径是从一个待处理节点在至该第一节点的不包括该第一链路的路径中总的链路开销最小的路径,一个第一路径是在该第一链路正常时从一个待处理节点至该第一节点的最优路径,并且,每个待处理节点对中的各待处理节点在第二路径上和第一路径上的上下跳关系相异;该网络设备确定各待处理节点的路径开销变化值,该各待处理节点的路径开销变化值是各待处理节点的第一路径开销与第二路径开销的差值,该第一路径开销是当第一链路正常时在第一路径上的总的链路开销,该第二路径开销是在第二路径上的总的链路开销;该网络设备根据该待处理节点的路径开销变化值,对该第一链路的链路开销进行至少两次调整,以在该第一链路在从故障中恢复时,使各待处理节点对中在第一路径上的下一跳节点先于上一跳节点将至该第一节点的最优路径迁移至该第一路径,或以在该第一链路发生故障时,使各待处理节点对中在第一路径上的上一跳节点先于下一跳节点将至该第一节点的最优路径迁移出该第一路径。
[0007] 结合第一方面,在第一方面的第一种实现方式中,该网络设备根据该待处理节点的路径开销变化值,对该第一链路的链路开销进行至少两次调整,包括:该网络设备从该待处理节点中,确定N个目标节点,其中,该目标节点的数目小于等于该待处理节点的数目;该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整。
[0008] 结合第一方面及其上述实现方式,在第一方面的第二种实现方式中,该网络设备从该待处理节点中,确定N个目标节点,包括:该网络设备将该待处理节点的全部,作为该N个目标节点。
[0009] 结合第一方面及其上述实现方式,在第一方面的第三种实现方式中,该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整,包括:在该第一链路在从故障中恢复时,该网络设备以递减的方式,对各该目标节点的路径开销变化值进行第一排序处理;该网络设备对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差小于第一值且大于第二值,其中,该第一值是经过该第一排序处理后的第i个路径开销变化值,该第二值是各第一目标节点的路径开销变化值中的最大的值,该第一目标节点与第二目标节点构成待处理节点对,且该第一目标节点在第一路径中为该第二目标节点的上一跳节点,该第二目标节点是经过该第一排序处理后的第i个路径开销变化值所对应的节点,或该第二值是经过该第一排序处理后的第i+1个路径开销变化值。
[0010] 结合第一方面及其上述实现方式,在第一方面的第四种实现方式中,该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整,包括:在该第一链路在从故障中恢复时,该网络设备以递增的方式,对各该目标节点的路径开销变化值进行第二排序处理;该网络设备对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差小于第三值且大于第四值,其中,该第三值是经过该第二排序处理后的第N-i+1个路径开销变化值,该第四值是各第三目标节点的路径开销变化值中的最大的值,该第三目标节点与第四目标节点构成待处理节点对,且该第三目标节点在第一路径中为该第四目标节点的上一跳节点,该第四目标节点是经过该第二排序处理后的第N-i+1个路径开销变化值所对应的节点,或该第四值是经过该第二排序处理后的第N-i个路径开销变化值。
[0011] 结合第一方面及其上述实现方式,在第一方面的第五种实现方式中,该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整,包括:在该第一链路发生故障时,该网络设备以递增的方式,对各该目标节点的路径开销变化值进行第三排序处理;该网络设备对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差大于第五值且小于第六值,其中,该第六值是经过该第三排序处理后的第i+1个路径开销变化值,该第五值是各第五目标节点的路径开销变化值中的最大的值,该第五目标节点与第六目标节点构成待处理节点对,且该第五目标节点在第一路径中为该第六目标节点的上一跳节点,该第六目标节点是经过该第三排序处理后的第i+1个路径开销变化值所对应的节点,或该第五值是经过该第三排序处理后的第i个路径开销变化值。
[0012] 结合第一方面及其上述实现方式,在第一方面的第六种实现方式中,该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整,包括:在该第一链路发生故障时,该网络设备以递减的方式,对各该目标节点的路径开销变化值进行第四排序处理;该网络设备对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差大于第七值且小于第八值,其中,该第八值是经过该第四排序处理后的第N-i个路径开销变化值,该第七值是各第七目标节点的路径开销变化值中的最大的值,该第七目标节点与第八目标节点构成待处理节点对,且该第七目标节点在第一路径中为该第八目标节点的上一跳节点,该第八目标节点是经过该第四排序处理后的第N-i+1个路径开销变化值所对应的节点,或该第七值是经过该第四排序处理后的第N-i+1个路径开销变化值。
[0013] 结合第一方面及其上述实现方式,在第一方面的第七种实现方式中,该网络设备对该第一链路的链路开销进行至少两次调整包括:该网络设备确定各目标节点计算最优路径所需要的处理时间;该网络设备根据该处理时间,确定该至少两次调整之间的时间间隔;该网络设备根据该时间间隔,对该第一链路的链路开销进行至少两次调整。
[0014] 结合第一方面及其上述实现方式,在第一方面的第八种实现方式中,该网络设备为该第二节点。
[0015] 第二方面,提供了一种调整链路开销的装置,该装置包括:待处理节点确定单元,用于当该第一链路发生故障或从故障中恢复时,从至少三个节点中确定至少一个待处理节点对,其中,每个待处理节点对包括经由一条链路相连的两个待处理节点,该待处理节点能够通过不包括第一链路的第二路径向该至少三个节点的第一节点发送报文,并且,该待处理节点能够在该第一链路正常时通过包括该第一链路的第一路径向该第一节点发送报文,其中,一个第二路径是从一个待处理节点在至该第一节点的不包括该第一链路的路径中总的链路开销最小的路径,一个第一路径是在该第一链路正常时从一个待处理节点至该第一节点的最优路径,并且,每个待处理节点对中的各待处理节点在第二路径上和第一路径上的上下跳关系相异,该至少三个节点中的第二节点与该第一节点之间通过该第一链路直接连接,该第一链路用于传输需要发送至该第一节点的数据;路径开销变化值确定单元,用于确定各待处理节点的路径开销变化值,该各待处理节点的路径开销变化值是各待处理节点的第一路径开销与第二路径开销的差值,该第一路径开销是当第一链路正常时在第一路径上的总的链路开销,该第二路径开销是在第二路径上的总的链路开销;链路开销调整单元,用于根据各待处理节点的路径开销变化值,对该第一链路的链路开销进行至少两次调整,以在该第一链路在从故障中恢复时,使各待处理节点对中在第一路径上的下一跳节点先于上一跳节点将至该第一节点的最优路径迁移至该第一路径,或以在该第一链路发生故障时,使各待处理节点对中在第一路径上的上一跳节点先于下一跳节点将至该第一节点的最优路径迁移出该第一路径。
[0016] 结合第二方面,在第二方面的第一种实现方式中,该链路开销调整单元还用于从该待处理节点中,确定N个目标节点,其中,该目标节点的数目小于等于该待处理节点的数目;用于根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整。
[0017] 结合第二方面及其上述实现方式,在第二方面的第二种实现方式中,该链路开销调整单元具体用于将该待处理节点的全部,作为该N个目标节点。
[0018] 结合第二方面及其上述实现方式,在第二方面的第三种实现方式中,该链路开销调整单元具体用于在该第一链路在从故障中恢复时,该网络设备以递减的方式,对各该目标节点的路径开销变化值进行第一排序处理;用于对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差小于第一值且大于第二值,其中,该第一值是经过该第一排序处理后的第i个路径开销变化值,该第二值是各第一目标节点的路径开销变化值中的最大的值,该第一目标节点与第二目标节点构成待处理节点对,且该第一目标节点在第一路径中为该第二目标节点的上一跳节点,该第二目标节点是经过该第一排序处理后的第i个路径开销变化值所对应的节点,或该第二值是经过该第一排序处理后的第i+1个路径开销变化值。
[0019] 结合第二方面及其上述实现方式,在第二方面的第四种实现方式中,该链路开销调整单元具体用于在该第一链路在从故障中恢复时,该网络设备以递增的方式,对各该目标节点的路径开销变化值进行第二排序处理;用于对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差小于第三值且大于第四值,其中,该第三值是经过该第二排序处理后的第N-i+1个路径开销变化值,该第四值是各第三目标节点的路径开销变化值中的最大的值,该第三目标节点与第四目标节点构成待处理节点对,且该第三目标节点在第一路径中为该第四目标节点的上一跳节点,该第四目标节点是经过该第二排序处理后的第N-i+1个路径开销变化值所对应的节点,或该第四值是经过该第二排序处理后的第N-i个路径开销变化值。
[0020] 结合第二方面及其上述实现方式,在第二方面的第五种实现方式中,该链路开销调整单元具体用于在该第一链路发生故障时,该网络设备以递增的方式,对各该目标节点的路径开销变化值进行第三排序处理;用于对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差大于第五值且小于第六值,其中,该第六值是经过该第三排序处理后的第i+1个路径开销变化值,该第五值是各第五目标节点的路径开销变化值中的最大的值,该第五目标节点与第六目标节点构成待处理节点对,且该第五目标节点在第一路径中为该第六目标节点的上一跳节点,该第六目标节点是经过该第三排序处理后的第i+1个路径开销变化值所对应的节点,或该第五值是经过该第三排序处理后的第i个路径开销变化值。
[0021] 结合第二方面及其上述实现方式,在第二方面的第六种实现方式中,该链路开销调整单元具体用于在该第一链路发生故障时,该网络设备以递减的方式,对各该目标节点的路径开销变化值进行第四排序处理;用于对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差大于第七值且小于第八值,其中,该第八值是经过该第四排序处理后的第N-i个路径开销变化值,该第七值是各第七目标节点的路径开销变化值中的最大的值,该第七目标节点与第八目标节点构成待处理节点对,且该第七目标节点在第一路径中为该第八目标节点的上一跳节点,该第八目标节点是经过该第四排序处理后的第N-i+1个路径开销变化值所对应的节点,或该第七值是经过该第四排序处理后的第N-i+1个路径开销变化值。
[0022] 结合第二方面及其上述实现方式,在第二方面的第七种实现方式中,该链路开销调整单元还用于确定各目标节点计算最优路径所需要的处理时间;用于根据该处理时间,确定该至少两次调整之间的时间间隔;用于根据该时间间隔,对该第一链路的链路开销进行至少两次调整。
[0023] 结合第二方面及其上述实现方式,在第二方面的第八种实现方式中,该装置为该第二节点。
[0024] 根据本发明实施例的调整链路开销的方法和装置,通过对与第一节点直接连接的第一链路的链路开销进行多次调整,在包括该第一链路且在该第一链路正常时作为至该第一节点的最优链路的各第一路径中,在第一链路在从故障中恢复时,使可能出现微环现象的待处理节点对中在第一路径上的下一跳节点先于上一跳节点将至第一节点的最优路径迁移至第一路径,或在第一链路发生故障时,在使可能出现微环现象的待处理节点对中在第一路径上的上一跳节点先于下一跳节点将至第一节点的最优路径迁移出第一路径,从而,能够防止各待处理节点对之间出现微环现象。

附图说明

[0025] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0026] 图1是本发明一实施例的调整链路开销的方法的示意性流程图。
[0027] 图2是本发明一实施例的调整链路开销的方法所适用的通信系统的一例的示意性架构图。
[0028] 图3是本发明一实施例的调整链路开销的方法所适用的通信系统中以第一节点作为树根时的逆向最优路径优先算法的示意性拓扑图。
[0029] 图4是本发明一实施例的调整链路开销的装置的示意性框图。
[0030] 图5是本发明一实施例的调整链路开销的设备的示意性结构图。

具体实施方式

[0031] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032] 本发明的技术方案,可以应用于各种通信系统,例如:全球移动通讯系统(GSM,Global System of Mobile communication),码分多址(CDMA,Code Division Multiple Access)系统,宽带码分多址(WCDMA,Wideband Code Division Multiple Access Wireless),通用分组无线业务(GPRS,General Packet Radio Service),长期演进(LTE,Long Term Evolution)等。
[0033] 图1是本发明一实施例的调整链路开销的方法100的示意性流程图。该方法100在包括至少三个节点的通信系统中执行,其中,第一节点与第二节点之间通过第一链路直接连接,该第一链路用于传输需要发送至该第一节点的数据,如图1所示,该方法100包括:
[0034] S110,当该第一链路发生故障或从故障中恢复时,网络设备从该至少三个节点中确定至少一个待处理节点对,其中,每个待处理节点对包括经由一条链路相连的两个待处理节点,该待处理节点能够通过不包括该第一链路的第二路径向该第一节点发送报文,并且,该待处理节点能够在该第一链路正常时通过包括该第一链路的第一路径向该第一节点发送报文,其中,一个第二路径是从一个待处理节点在至该第一节点的不包括该第一链路的路径中总的链路开销最小的路径,一个第一路径是在该第一链路正常时从一个待处理节点至该第一节点的最优路径,并且,每个待处理节点对中的各待处理节点在第二路径上和第一路径上的上下跳关系相异;
[0035] S120,该网络设备确定各待处理节点的路径开销变化值,该各待处理节点的路径开销变化值是各待处理节点的第一路径开销与第二路径开销的差值,该第一路径开销是当第一链路正常时在第一路径上的总的链路开销,该第二路径开销是在第二路径上的总的链路开销;
[0036] S130,该网络设备根据该待处理节点的路径开销变化值,对该第一链路的链路开销进行至少两次调整,以在该第一链路在从故障中恢复时,使各待处理节点对中在第一路径上的下一跳节点先于上一跳节点将至该第一节点的最优路径迁移至该第一路径,或[0037] 以在该第一链路发生故障时,使各待处理节点对中在第一路径上的上一跳节点先于下一跳节点将至该第一节点的最优路径迁移出该第一路径。
[0038] 在现有技术中,在发生链路故障或者故障恢复时,一次性地调整并发布故障链路的链路开销,网络中的各节点基于该链路开销重新计算最优路径,由于各网络设备在硬件能力上的差别以及设备运行的内外环境上的差别,导致路由计算的启动时间点、运行时长、计算结束时间点以及下发转发信息库表项的时间点不一致,进而导致微环现象的出现。
[0039] 与此相对,在本发明实施例中,通过多次(至少两次)调整并发布故障链路的链路开销,在链路恢复时,使包括该故障链路的原最优路径上的下一跳节点先于上一条节点将最优路径切换回原最优路径,在链路故障时,使原最优路径上的上一跳节点先于下一条节点将最优路径迁移出原最优路径。从而,能够避免微环现象的出现。
[0040] 具体地说,在本发明实施例中,该方法100需要在包括多个(至少三个)节点的IP网络中执行,图2示出了该方法100所适用的通信系统200的一例。如图2所示,该通信系统200中包括例如,10个节点,即:节点a、节点b、节点c、节点d、节点e、节点f、节点g、节点h、节点i、节点g。
[0041] 应理解,以上列举的通信系统200的结构仅为示例性说明,本发明并不限定于此,可以对所包括的节点的数目,以及各节点之间的连接关系进行任意变更。
[0042] 以下为了便于理解,不失一般性地,以节点a作为第一节点,以节点b作为第二节点,以用于传输节点b发送给节点a的数据的链路b→a作为第一链路进行说明。
[0043] 可选地,在本发明实施例中,该网络设备为该第二节点。
[0044] 具体地说,作为该方法100的实施主体,可以是第二节点(例如,节点b),也可以是用于在第一链路(例如,链路b→a)发生故障或故障恢复时调节链路开销的网络设备,并且,该网络设备可以独立设置,也可以设置在一个或多个节点上,并且,在本发明实施例中,对于系统200内的每一条链路,可以分别配置一个用于执行该方法100的网络设备,也可以由一个网络设备统一地对各链路进行发生故障或故障恢复时的链路开销调整,本发明并未特别限定。
[0045] 以下,为了便于理解,不失一般性地,以节点b作为该网络设备,进行说明。
[0046] S110,节点b可以检测链路b→a的工作情况,并在链路b→a发生故障或从故障中恢复时,确定需要执行该方法100,并且,该检测方法可以与现有技术相同或相似,这里,为了避免赘述,省略其说明。
[0047] 如上所述,由于微环现象发生在一对待处理节点之间,即,两个待处理节点在链路b→a发生故障前后,在所选择的最优路径上的上下跳关系相反,因此,节点b可以确定受链路b→a发生故障或从故障中恢复的影响而需要重新计算并选择最优路径的各节点(待处理节点)。
[0048] 在图2所示的系统200中,链路b→a的链路开销为10,链路b→g的链路开销为10,链路g→i的链路开销为10,链路i→j的链路开销为10,链路j→a的链路开销为100,链路b→c的链路开销为10,链路c→d的链路开销为10,链路d→e的链路开销为10,链路e→f的链路开销为10,链路f→a的链路开销为100,链路f→a的链路开销为10。
[0049] 应理解,以上列举的各链路开销的数值仅为示例性说明,本发明并未限定于此,对于各链路的链路开销,可以任意变更。
[0050] 节点b至节点a的路径包括:路径1(即,链路b→a)、路径2(包括链路b→g、链路g→i、链路i→j、链路j→a)、路径3(包括链路b→c、链路c→d、链路d→e、链路e→f、链路f→a)。其中,路径1的总链路开销为链路b→a的链路开销(即,10),路径2的总链路开销为链路b→g的链路开销、链路g→i的链路开销、链路i→j的链路开销、链路j→a的链路开销之和(即,
130),路径3的总链路开销为链路b→c的链路开销、链路c→d的链路开销、链路d→e的链路开销、链路e→f的链路开销、链路f→a的链路开销之和(即,140)。因此,当链路b→a正常时,节点b至节点a的最优路径为路径1。当链路b→a故障时,节点b至节点a的最优路径为路径2。
[0051] 节点c至节点a的路径包括:路径4(包括链路c→b、链路b→a)、路径5(包括链路c→b、链路b→g、链路g→i、链路i→j、链路j→a)、路径6(包括链路c→d、链路d→e、链路e→f、链路f→a)。其中,通过如上所述的求和计算,可以确定路径4的总链路开销为20,路径5的总链路开销为140,路径6的总链路开销为130。因此,当链路b→a正常时,节点c至节点a的最优路径为路径4。当链路b→a故障时,节点c至节点a的最优路径为路径6。
[0052] 节点d至节点a的路径包括:路径7(包括链路d→c、链路c→b、链路b→a)、路径8(包括链路d→c、链路c→b、链路b→g、链路g→i、链路i→j、链路j→a)、路径9(包括链路d→e、链路e→f、链路f→a)。其中,通过如上所述的求和计算,可以确定路径7的总链路开销为30,路径8的总链路开销为150,路径9的总链路开销为120。因此,当链路b→a正常时,节点d至节点a的最优路径为路径7。当链路b→a故障时,节点d至节点a的最优路径为路径9。
[0053] 节点e至节点a的路径包括:路径10(包括链路e→d、链路d→c、链路c→b、链路b→a)、路径11(包括链路e→d、链路d→c、链路c→b、链路b→g、链路g→i、链路i→j、链路j→a)、路径12(包括链路e→f、链路f→a)。其中,通过如上所述的求和计算,可以确定路径10的总链路开销为40,路径11的总链路开销为160,路径12的总链路开销为110。因此,当链路b→a正常时,节点e至节点a的最优路径为路径10。当链路b→a故障时,节点e至节点a的最优路径为路径12。
[0054] 节点f至节点a的路径包括:路径13(包括链路f→e、链路e→d、链路d→c、链路c→b、链路b→a)、路径14(包括链路f→e、链路e→d、链路d→c、链路c→b、链路b→g、链路g→i、链路i→j、链路j→a)、路径15(包括链路f→a)。其中,通过如上所述的求和计算,可以确定路径13的总链路开销为50,路径14的总链路开销为170,路径15的总链路开销为100。因此,当链路b→a正常时,节点f至节点a的最优路径为路径13。当链路b→a故障时,节点f至节点a的最优路径为路径15。
[0055] 节点g至节点a的路径包括:路径16(包括链路g→b、链路b→a)、路径17(包括链路g→i、链路i→j、链路j→a)、路径18(包括链路g→b、链路b→c、链路c→d、链路d→e、链路e→f、链路f→a)。其中,通过如上所述的求和计算,可以确定路径16的总链路开销为20,路径17的总链路开销为120,路径18的总链路开销为150。因此,当链路b→a正常时,节点g至节点a的最优路径为路径16。当链路b→a故障时,节点g至节点a的最优路径为路径17。
[0056] 节点h至节点a的路径包括:路径19(包括链路h→g、链路g→b、链路b→a)、路径20(包括链路h→g、链路g→i、链路i→j、链路j→a)、路径21(包括链路h→g、链路g→b、链路b→c、链路c→d、链路d→e、链路e→f、链路f→a)。其中,通过如上所述的求和计算,可以确定路径19的总链路开销为30,路径20的总链路开销为130,路径21的总链路开销为160。因此,当链路b→a正常时,节点h至节点a的最优路径为路径19。当链路b→a故障时,节点h至节点a的最优路径为路径20。
[0057] 节点i至节点a的路径包括:路径22(包括链路i→g、链路g→b、链路b→a)、路径23(包括链路i→j、链路j→a)、路径24(包括链路i→g、链路g→b、链路b→c、链路c→d、链路d→e、链路e→f、链路f→a)。其中,通过如上所述的求和计算,可以确定路径22的总链路开销为30,路径23的总链路开销为110,路径24的总链路开销为160。因此,当链路b→a正常时,节点i至节点a的最优路径为路径22。当链路b→a故障时,节点i至节点a的最优路径为路径23。
[0058] 节点j至节点a的路径包括:路径25(包括链路j→i、链路i→g、链路g→b、链路b→a)、路径26(包括链路j→a)、路径27(包括链路j→i、链路i→g、链路g→b、链路b→c、链路c→d、链路d→e、链路e→f、链路f→a)。其中,通过如上所述的求和计算,可以确定路径25的总链路开销为40,路径26的总链路开销为100,路径27的总链路开销为170。因此,当链路b→a正常时,节点j至节点a的最优路径为路径25。当链路b→a故障时,节点j至节点a的最优路径为路径26。
[0059] 如上所述,对于上述节点b、节点c、节点d、节点e、节点f、节点g、节点h、节点i、节点j,当链路b→a发生故障或故障恢复时,至节点a的最优路径均发生变化,并且,在链路b→a正常时,最优链路均包括链路b→a。因此,可以确定在该系统200中,节点b、节点c、节点d、节点e、节点f、节点g、节点h、节点i、节点j为在链路b→a发生故障或故障恢复时受影响的节点(待处理节点)。
[0060] 应理解,由于网络架构随节点之间的连接以及节点的增减而变化,受第一链路影响的节点在不同的架构或架构发生变化时也会发生变化,因此,以上列举的待处理节点仅为示例性说明,本发明并不限定于此,可以根据网络架构来选择该受影响节点。
[0061] 在确定受影响节点后,可以从上述受影响节点中,确定各可能出现微环先现象的待处理节点对,例如,在路径4(节点c的第一路径)中,节点b是节点c的下一跳节点,在路径2(节点b的第二路径)中,节点b是节点c的上一跳节点,即,在链路b→a故障前后,节点b与节点c的上下跳关系发生变化,在节点b与节点c之间可能出现微环现象,因此,节点b与节点c构成了一对待处理节点对。
[0062] 同理,节点c与节点b构成了一对待处理节点对;节点d与节点c构成了一对待处理节点对,节点e与节点d构成了一对待处理节点对,节点f与节点e构成了一对待处理节点对,节点b与节点g构成了一对待处理节点对,节点g与节点i构成了一对待处理节点对,节点i与节点j构成了一对待处理节点对。
[0063] 需要说明的是,在本发明实施例中,在路径19(节点h的第一路径)和路径20(节点h的第二路径)中,节点h的下一跳节点均为节点g,所以节点h和节点g之间不存在微环问题。因此,不将节点h作为待处理节点。
[0064] 应理解,在本发明实施例中,“第一路径”是指,在故障链路(例如,链路b→a)正常时,一个节点至该故障链路的一端节点(例如,节点a)的最优路径,并且,该路径以链路b→a作为路径的一段。因此,对于不同节点,第一路径是相异的。
[0065] “第二路径”是指,在故障链路(例如,链路b→a)故障时,一个节点至该故障链路的一端节点(例如,节点a)的最优路径,由于链路b→a此时发生故障,从而该路径不会以链路b→a作为路径的一段。因此,对于不同节点,第二路径是相异的。
[0066] 需要说明的是,在本发明实施例中,一个待处理节点对所包括的两个待处理节点之间通过一条链路相连,并且,如上所述确定的待处理节点(或者说,在第一链路发生故障或故障恢复时受影响的节点)中不包括第一节点(这里,是节点a)。
[0067] S120,节点b可以将上述待处理节点对中的节点,作为待处理节点,并且,节点b可以确定上述待处理节点的切换阈值(路径开销变化值),该“切换阈值”是指触发路径切换的临界值,即,当链路b→a的链路开销大于该切换阈值时,受影响的节点不会选择包括链路b→a的路径作为至节点a的最优路径,当链路b→a的链路开销小于该切换阈值时,受影响的节点会选择包括链路b→a的路径作为至节点a的最优路径。
[0068] 在本发明实施例中,可以将一个待处理节点的在第一链路故障时的最优路径上的总的链路开销(第二路径开销)与在第一链路正常时的最优路径上的总的链路开销(第一路径开销)的差值,作为该待处理节点的切换阈值。以下表1示出了系统200中各待处理节点(节点b、节点c、节点d、节点e、节点f、节点g、节点i、节点j)的切换阈值。
[0069] 表1
[0070]
[0071] 在S130,节点b可以根据如上所述,确定的各待处理节点所对应的切换阈值,对链路b→a的链路开销进行多次(至少两次)调整,以使每次调整后,对于同一路径上的上一跳节点和下一跳节点,不会同时对最优路径进行切换。
[0072] 在本发明实施例中,在链路b→a从故障中恢复时(即,情况1)以及在链路b→a发生故障时(即,情况2),对链路b→a的链路开销的调整方式相异,下面,分别对以上两种情况下的调整动作及方法进行说明。
[0073] 情况1
[0074] 在链路b→a从故障中恢复时,节点b可以将链路b→a的链路开销从预设的最高值(例如,16777215)逐次调整至正常值(这里,是10)。
[0075] 可选地,在本发明实施例中,该网络设备根据该待处理节点的路径开销变化值,对该第一链路的链路开销进行至少两次调整,包括:
[0076] 该网络设备从该待处理节点中,确定N个目标节点;
[0077] 该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整。
[0078] 在本发明实施例中,可以根据上述待处理节点的个数,确定调整的次数(与目标节点的个数N相同)。
[0079] 可选地,该网络设备从该待处理节点中,确定至少一个目标节点,包括:
[0080] 该网络设备将该待处理节点的全部,作为该N个目标节点。
[0081] 具体地说,在本发明实施例中,可以使调整的次数与待处理节点的个数相同。在系统200中,待处理节点的个数为8,因此,可以进行例如,8次调整。
[0082] 例如,可选地,该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整,包括:
[0083] 在该第一链路在从故障中恢复时,该网络设备以递减的方式,对各该目标节点的路径开销变化值进行第一排序处理;
[0084] 该网络设备对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差小于等于第一值且大于第二值,其中,该第一值是经过该第一排序处理后的第i个路径开销变化值,该第二值是经过该第一排序处理后的第i+1个路径开销变化值。
[0085] 并且,可选地,该网络设备从该待处理节点中,确定至少一个目标节点,包括:
[0086] 该网络设备从该待处理节点中,确定N个目标节点,该N个目标节点的路径开销变化值彼此相异。
[0087] 具体地说,在上述实施例中,各待处理节点的切换阈值均相异,但不排除各待处理节点的切换阈值有重复情况发生,当各待处理节点的切换阈值有重复时,可以仅保留一个切换阈值发生重复的待处理节点,或者说,对于重复的切换阈值,可以仅保留一个。
[0088] 节点b可以按递减的顺序,对目标节点的各切换阈值进行排序,即,可以得到如下排列顺序:
[0089] 120(节点b的切换阈值),110(节点c的切换阈值),100(节点g和节点h的切换阈值),90(节点d的切换阈值),80(节点i的切换阈值),70(节点e的切换阈值),60(节点j的切换阈值),50(节点f的切换阈值)。
[0090] 其后,节点b可以对链路b→a的链路开销进行8次(该次数与表1中不互相重复的切换阈值的数量相同)调整。
[0091] 第一次调整并发布的链路b→a的链路开销可以为小于130(120+10)且大于120(110+10)的任意数值,例如,125(115+10),经第一次调整后,仅节点b会将至节点a的最优路径切换至路径2(包括链路b→a),由于经第一次调整后的链路b→a的链路开销变化(115)大于节点c和节点g的切换阈值,因此,节点c不会将至节点a的最优路径切换至路径6,并且,节点g不会将至节点a的最优路径切换至路径17,从而,能够避免因节点g或节点c的硬件能力及处理环境优于节点b而导致节点c与节点b之间或节点g与节点b之间发生微环现象。
[0092] 第二次调整并发布的链路b→a的链路开销可以为小于120(110+10)且大于110(100+10)的任意数值,例如,115(105+10),经第二次调整后,节点c会将至节点a的最优路径切换至路径6(包括链路b→a),由于经第二次调整后的链路b→a的链路开销变化(105)大于节点d的切换阈值,因此,节点d不会将至节点a的最优路径切换至路径9,从而,能够避免因节点d的硬件能力及处理环境优于节点c而导致节点d与节点c之间发生微环现象。并且,由于在第一次调整后节点b已将至节点a的最优路径切换至路径2,因此节点b与节点c之间不会发生微环现象。
[0093] 第三次调整并发布的链路b→a的链路开销可以为小于110(100+10)且大于100(90+10)的任意数值,例如,105(95+10),经第三次调整后,节点g会将至节点a的最优路径切换至路径17(包括链路b→a),由于经第三次调整后的链路b→a的链路开销变化(95)大于节点i的切换阈值,因此,节点i不会将至节点a的最优路径切换至路径23,从而,能够避免因节点i的硬件能力及处理环境优于节点g而导致节点i与节点g之间发生微环现象。并且,由于在第一次调整后节点b已将至节点a的最优路径切换至路径2,因此节点b与节点g之间不会发生微环现象。
[0094] 需要说明的是,在本发明实施例中,节点h的切换阈值与节点g的切换阈值均为100,因此,节点h与节点g同时对至节点a的最优链路进行切换。但是,由于节点h的切换阈值与节点g的切换阈值相同,表示在路径19和路径20中,节点h均为节点g的上一跳节点,所以节点h和节点g之间不存在微环问题。
[0095] 第四次调整并发布的链路b→a的链路开销可以为小于100(90+10)且大于90(80+10)的任意数值,例如,95(85+10),经第四次调整后,节点d会将至节点a的最优路径切换至路径9(包括链路b→a),由于经第四次调整后的链路b→a的链路开销变化(85)大于节点e的切换阈值,因此,节点e不会将至节点a的最优路径切换至路径12,从而,能够避免因节点e的硬件能力及处理环境优于节点d而导致节点e与节点d之间发生微环现象。并且,由于在第二次调整后节点c已将至节点a的最优路径切换至路径6,因此节点c与节点d之间不会发生微环现象。
[0096] 第五次调整并发布的链路b→a的链路开销可以为小于90(80+10)且大于80(70+10)的任意数值,例如,85(75+10),经第五次调整后,节点i会将至节点a的最优路径切换至路径23(包括链路b→a),由于经第五次调整后的链路b→a的链路开销变化(75)大于节点j的切换阈值,因此,节点j不会将至节点a的最优路径切换至路径26,从而,能够避免因节点j的硬件能力及处理环境优于节点i而导致节点j与节点i之间发生微环现象。并且,由于在第三次调整后节点g已将至节点a的最优路径切换至路径17,因此节点g与节点i之间不会发生微环现象。
[0097] 第六次调整并发布的链路b→a的链路开销可以为小于80(70+10)且大于70(60+10)的任意数值,例如,75(65+10),经第六次调整后,节点e会将至节点a的最优路径切换至路径12(包括链路b→a),由于经第六次调整后的链路b→a的链路开销变化(65)大于节点f的切换阈值,因此,节点f不会将至节点a的最优路径切换至路径15,从而,能够避免因节点f的硬件能力及处理环境优于节点e而导致节点f与节点e之间发生微环现象。并且,由于在第四次调整后节点d已将至节点a的最优路径切换至路径9,因此节点d与节点e之间不会发生微环现象。
[0098] 第七次调整并发布的链路b→a的链路开销可以为小于70(60+10)且大于60(50+10)的任意数值,例如,65(55+10),经第七次调整后,节点j会将至节点a的最优路径切换至路径26(包括链路b→a),由于在第五次调整后节点i已将至节点a的最优路径切换至路径
23,因此节点i与节点j之间不会发生微环现象。
[0099] 第八次调整并发布的链路b→a的链路开销可以为小于60(50+10)的任意数值,例如,55(45+10),经第八次调整后,节点f会将至节点a的最优路径切换至路径15(包括链路b→a),由于在第六次调整后节点e已将至节点a的最优路径切换至路径12,因此节点e与节点f之间不会发生微环现象。
[0100] 再例如,可选地,该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整,包括:
[0101] 在该第一链路在从故障中恢复时,该网络设备以递增的方式,对各该目标节点的路径开销变化值进行第二排序处理;
[0102] 该网络设备对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差小于第三值且大于第四值,其中,该第三值是经过该第二排序处理后的第N-i+1个路径开销变化值,该第四值是经过该第二排序处理后的第N-i个路径开销变化值。
[0103] 并且,可选地,该网络设备从该待处理节点中,确定至少一个目标节点,包括:
[0104] 该网络设备从该待处理节点中,确定N个目标节点,该N个目标节点的路径开销变化值彼此相异。
[0105] 具体地说,在上述实施例中,各待处理节点的切换阈值均相异,但不排除各待处理节点的切换阈值有重复情况发生,当各待处理节点的切换阈值有重复时,可以仅保留一个切换阈值发生重复的待处理节点,或者说,对于重复的切换阈值,可以仅保留一个。
[0106] 节点b可以按递增的顺序,对目标节点的各切换阈值进行排序,即,可以得到如下排列顺序:
[0107] 50(节点f的切换阈值),60(节点j的切换阈值),70(节点e的切换阈值),80(节点i的切换阈值),90(节点d的切换阈值),100(节点g和节点h的切换阈值),110(节点c的切换阈值),120(节点b的切换阈值)。
[0108] 其后,节点b可以对链路b→a的链路开销进行8次(该次数与表1中不互相重复的切换阈值的数量相同)调整。
[0109] 第一次调整并发布的链路b→a的链路开销可以为小于130(120+10)且大于120(110+10)的任意数值,例如,125(115+10),经第一次调整后,仅节点b会将至节点a的最优路径切换至路径2(包括链路b→a),由于经第一次调整后的链路b→a的链路开销变化(115)大于节点c和节点g的切换阈值,因此,节点c不会将至节点a的最优路径切换至路径6,并且,节点g不会将至节点a的最优路径切换至路径17,从而,能够避免因节点g或节点c的硬件能力及处理环境优于节点b而导致节点c与节点b之间或节点g与节点b之间发生微环现象。
[0110] 第二次调整并发布的链路b→a的链路开销可以为小于120(110+10)且大于110(100+10)的任意数值,例如,115(105+10),经第二次调整后,节点c会将至节点a的最优路径切换至路径6(包括链路b→a),由于经第二次调整后的链路b→a的链路开销变化(105)大于节点d的切换阈值,因此,节点d不会将至节点a的最优路径切换至路径9,从而,能够避免因节点d的硬件能力及处理环境优于节点c而导致节点d与节点c之间发生微环现象。并且,由于在第一次调整后节点b已将至节点a的最优路径切换至路径2,因此节点b与节点c之间不会发生微环现象。
[0111] 第三次调整并发布的链路b→a的链路开销可以为小于110(100+10)且大于100(90+10)的任意数值,例如,105(95+10),经第三次调整后,节点g会将至节点a的最优路径切换至路径17(包括链路b→a),由于经第三次调整后的链路b→a的链路开销变化(95)大于节点i的切换阈值,因此,节点i不会将至节点a的最优路径切换至路径23,从而,能够避免因节点i的硬件能力及处理环境优于节点g而导致节点i与节点g之间发生微环现象。并且,由于在第一次调整后节点b已将至节点a的最优路径切换至路径2,因此节点b与节点g之间不会发生微环现象。
[0112] 需要说明的是,在本发明实施例中,节点h的切换阈值与节点g的切换阈值均为100,因此,节点h与节点g同时对至节点a的最优链路进行切换。但是,由于节点h的切换阈值与节点g的切换阈值相同,表示在路径19和路径20中,节点h均为节点g的上一跳节点,所以节点h和节点g之间不存在微环问题。
[0113] 第四次调整并发布的链路b→a的链路开销可以为小于100(90+10)且大于90(80+10)的任意数值,例如,95(85+10),经第四次调整后,节点d会将至节点a的最优路径切换至路径9(包括链路b→a),由于经第四次调整后的链路b→a的链路开销变化(85)大于节点e的切换阈值,因此,节点e不会将至节点a的最优路径切换至路径12,从而,能够避免因节点e的硬件能力及处理环境优于节点d而导致节点e与节点d之间发生微环现象。并且,由于在第二次调整后节点c已将至节点a的最优路径切换至路径6,因此节点c与节点d之间不会发生微环现象。
[0114] 第五次调整并发布的链路b→a的链路开销可以为小于90(80+10)且大于80(70+10)的任意数值,例如,85(75+10),经第五次调整后,节点i会将至节点a的最优路径切换至路径23(包括链路b→a),由于经第五次调整后的链路b→a的链路开销变化(75)大于节点j的切换阈值,因此,节点j不会将至节点a的最优路径切换至路径26,从而,能够避免因节点j的硬件能力及处理环境优于节点i而导致节点j与节点i之间发生微环现象。并且,由于在第三次调整后节点g已将至节点a的最优路径切换至路径17,因此节点g与节点i之间不会发生微环现象。
[0115] 第六次调整并发布的链路b→a的链路开销可以为小于80(70+10)且大于70(60+10)的任意数值,例如,75(65+10),经第六次调整后,节点e会将至节点a的最优路径切换至路径12(包括链路b→a),由于经第六次调整后的链路b→a的链路开销变化(65)大于节点f的切换阈值,因此,节点f不会将至节点a的最优路径切换至路径15,从而,能够避免因节点f的硬件能力及处理环境优于节点e而导致节点f与节点e之间发生微环现象。并且,由于在第四次调整后节点d已将至节点a的最优路径切换至路径9,因此节点d与节点e之间不会发生微环现象。
[0116] 第七次调整并发布的链路b→a的链路开销可以为小于70(60+10)且大于60(50+10)的任意数值,例如,65(55+10),经第七次调整后,节点j会将至节点a的最优路径切换至路径26(包括链路b→a),由于在第五次调整后节点i已将至节点a的最优路径切换至路径
23,因此节点i与节点j之间不会发生微环现象。
[0117] 第八次调整并发布的链路b→a的链路开销可以为小于60(50+10)的任意数值,例如,55(45+10),经第八次调整后,节点f会将至节点a的最优路径切换至路径15(包括链路b→a),由于在第六次调整后节点e已将至节点a的最优路径切换至路径12,因此节点e与节点f之间不会发生微环现象。
[0118] 以上,列举了根据待处理节点来确定调整次数的实施例,但本发明并未限定于此,例如,在链路b→a从故障中恢复时,可以通过一次调整,使两个或者两个以上的待处理节点对中的在第一路径上的下一跳节点先于上一跳节点将最优路径切换至第一路径。作为实现方法,可以进行以下动作。
[0119] 即,可选地,该网络设备根据该待处理节点的路径开销变化值,对该第一链路的链路开销进行至少两次调整,包括:
[0120] 该网络设备根据各待处理节点的路径开销变化值,确定各待处理节点的调整范围,其中,一个待处理节点的调整范围为小于等于该待处理节点的路径开销变化值,且大于等于该待处理节点的参考节点的路径开销变化值,一个待处理节点的参考节点是该待处理节点在各第一路径上的上一跳节点中路径开销变化值最大的节点;
[0121] 该网络设备根据该待处理节点的调整范围,对该第一链路的链路开销进行至少两次调整。
[0122] 具体地说,图3是本发明一实施例的调整链路开销的方法所适用的通信系统中以第一节点作为树根时的逆向最优路径优先算法的示意性拓扑图。。需要说明的是,图3中的数字标识所对应的待处理节点的切换阈值。在链路b→a从故障中恢复时,由于需要确保各待处理节点对中的下一跳节点(距节点a的跳数较小)先于上一跳节点(距节点a的跳数较大)对最优路径进行切换,并且,由于各节点的第一路径均包括链路b→a,或者说,各第一路径均以节点b作为最后一个中转节点,因此,需要确保距节点a的跳数最小的待处理节点(即,节点b)最先完成切换。
[0123] 在本发明实施例中,首先,可以对于第一链路故障情况下,使用逆向最短路径优先(RSPF,Reverse Shortest Path FIRST)算法,计算各待处理节点到根节点(第一节点)的路径cost值D(i,max)。对于链路正常情况下,使用RSPF算法,计算各待处理节点到根节点cost值D(i,min)。
[0124] 其后,计算对于各待处理节点的防微环切换需要调整的第一链路的最大链路开销值Δcost(i,max):
[0125] Δcost(i,max)=D(i,max)-D(i,min)。
[0126] 计算各待处理节点的防微环切换需要调整的第一链路的最小链路开销值Δcost(i,min):
[0127] Δcost(i,min)=MAX{Δcost(j,max)},其中,节点j是节点i在第一链路正常情况下的儿子节点(或者说,节点j是节点i在第一路径上的上一跳节点)。
[0128] 从而,对于节点i的防微环切换需要调整的第一链路的cost值范围(即,调整范围)是<Δcost(i,min)+K,Δcost(i,max)+K>,其中K是第一链路正常时的cost值。
[0129] 其后,可以根据各节点的调整范围,进行调整,例如,在系统200中,节点g的调整范围为[80,100],节点c的调整范围为[90,110],并且,节点g构成待处理节点对的节点的切换阈值不在节点c与节点d的切换阈值之间(即,节点b的切换阈值为120大于110,节点i的切换阈值为80小于90),则在调节链路开销以使节点c对最优路径进行切换时,该节点g可以同时切换。
[0130] 如图3所示,由于剩余各节点至节点b的路径可能存在差异,例如,节点c、节点d、节点e、节点f需要按距节点a的跳数由小到大的顺序依次切换,并且,节点g、节点i、节点j也需要按距节点a的跳数由小到大的顺序依次切换。因此,对于分别位于上述两条路径上的节点,可能存在通过一次开销调整同时切换至最优路径的情况。
[0131] 如上所述,在系统200中,节点g的切换阈值(即,100),落入一对待处理节点对(即,节点c与节点d)的切换阈值之间(即,[90,110]),并且,节点g构成待处理节点对的节点的切换阈值不在节点c与节点d的切换阈值之间(即,节点b的切换阈值为120大于110,节点i的切换阈值为80小于90),则在调节链路开销以使节点c对最优路径进行切换时,该节点g可以同时切换。
[0132] 同理,节点i与节点d可以同时切换最优路径,节点j与节点e可以同时切换最优路径。
[0133] 即,节点g、节点i和节点j可以作为非目标节点而从待处理节点中删除。
[0134] 不失一般性,可以采用以下方法从待处理节点中确定非目标节点。
[0135] 1.初始化三个列表:处理链表(TentList),候选链表(CandList),输出链表(OutPutList)。
[0136] 2.链路故障变化最近的节点(这里,是节点b)是首先要做防微环切换,记该节点为self。
[0137] 3.将节点self推入TentList。
[0138] 4.从TentList中获取一个节点x,其中,节点x是TentList中调整范围的下限值(或者说,在第一路径上的上一跳节点的链路开销变化值)最大的节点。若TentList为空,则算法结束。
[0139] 5.将节点x推入OutPutList。
[0140] 6.将节点x的所有可能存在微环切换的孩子节点y(这里,是节点c与节点g)加入CandList。
[0141] 7.确定CandList中所有节点的切换阈值中最大的一个切换阈值cost 1,与TentList中节点z的切换阈值cost 2,若cost 2>cost 1,则将节点z从TentList中删除。
[0142] 8.若节点z从TentList中删除,则将节点z所有可能存在微环切换(与节点z构成待处理节点对)的孩子节点w加入CandList。
[0143] 9.重复执行7~8,直到完成TentList中的所有节点的切换阈值与cost 1的比较及删除。
[0144] 10.将CandList中的所有节点移到TentList中,使CandList为空。
[0145] 11.跳转执行4。
[0146] 从而,可以确定OutPutList中的各节点为目标节点。
[0147] 这里,在系统200中,经上述方法确定的OutPutList中的各节点为节点b、节点c、节点d、节点e、节点f。
[0148] 其后,可以对OutPutList中的各节点的切换阈值进行排序(递增或递减),并根据各切换阈值进行链路b→a的链路开销的调整及发布,该具体过程可以与上述根据待处理节点的切换阈值进行链路b→a的链路开销的调整及发布的过程相似,这里,为了避免赘述,省略其说明。
[0149] 另外,在根据OutPutList中的各节点的切换阈值,进行链路b→a的链路开销的调整及发布时,还可以采用以下调整方法:
[0150] 即,可选地,该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整,包括:
[0151] 在该第一链路在从故障中恢复时,该网络设备以递减的方式,对各该目标节点的路径开销变化值进行第一排序处理;
[0152] 该网络设备对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差小于第一值且大于第二值,其中,该第一值是经过该第一排序处理后的第i个路径开销变化值,
[0153] 该第二值是各第一目标节点的路径开销变化值中的最大的值,该第一目标节点与第二目标节点构成待处理节点对,且该第一目标节点在第一路径中为该第二目标节点的上一跳节点,该第二目标节点是经过该第一排序处理后的第i个路径开销变化值所对应的节点。
[0154] 具体地说,在对OutPutList中的各节点的切换阈值进行排序(这里,以按递减顺序排列为例)后,可以进行T次调整,T为OutPutList中包括的节点的数量,如上所述,在系统200中,T为5。
[0155] 即,第一次调整并发布的链路b→a的链路开销可以为小于130(120+10)且大于120(110+10)的任意数值,例如,121(111+10),经第一次调整后,仅节点b会将至节点a的最优路径切换至路径2(包括链路b→a),由于经第一次调整后的链路b→a的链路开销变化(111)大于节点c和节点g的切换阈值,因此,节点c不会将至节点a的最优路径切换至路径6,并且,节点g不会将至节点a的最优路径切换至路径17,从而,能够避免因节点g或节点c的硬件能力及处理环境优于节点b而导致节点c与节点b之间或节点g与节点b之间发生微环现象。
[0156] 第二次调整并发布的链路b→a的链路开销可以为小于120(110+10)且大于100(90+10)的任意数值,例如,101(91+10),经第二次调整后,节点c会将至节点a的最优路径切换至路径6(包括链路b→a),并且,节点g会将至节点a的最优路径切换至路径17(包括链路b→a)。由于经第二次调整后的链路b→a的链路开销变化(91)大于节点d的切换阈值,因此,节点d不会将至节点a的最优路径切换至路径9,从而,能够避免因节点d的硬件能力及处理环境优于节点c而导致节点d与节点c之间发生微环现象。并且,由于在第一次调整后节点b已将至节点a的最优路径切换至路径2,因此节点b与节点c之间不会发生微环现象。并且,由于经第二次调整后的链路b→a的链路开销变化(91)大于节点i的切换阈值,因此,节点i不会将至节点a的最优路径切换至路径23,从而,能够避免因节点i的硬件能力及处理环境优于节点g而导致节点i与节点g之间发生微环现象。并且,由于在第一次调整后节点b已将至节点a的最优路径切换至路径2,因此节点b与节点g之间不会发生微环现象。
[0157] 需要说明的是,如图3所示,在系统200中,节点c仅有一个孩子节点,但本发明并不限定于此,当节点c具有多个孩子节点的情况下,可以使所调整的链路b→a的链路开销大于节点c的各孩子节点的路径开销变化值中最大的值。
[0158] 需要说明的是,在本发明实施例中,节点h的切换阈值与节点g的切换阈值均为100,因此,节点h与节点g同时对至节点a的最优链路进行切换。但是,由于节点h的切换阈值与节点g的切换阈值相同,表示在路径19和路径20中,节点h均为节点g的上一跳节点,所以节点h和节点g之间不存在微环问题。
[0159] 第三次调整并发布的链路b→a的链路开销可以为小于100(90+10)且大于80(70+10)的任意数值,例如,81(71+10),经第三次调整后,节点d会将至节点a的最优路径切换至路径9(包括链路b→a),由于经第三次调整后的链路b→a的链路开销变化(71)大于节点e的切换阈值,因此,节点e不会将至节点a的最优路径切换至路径12,从而,能够避免因节点e的硬件能力及处理环境优于节点d而导致节点e与节点d之间发生微环现象。并且,由于在第二次调整后节点c已将至节点a的最优路径切换至路径6,因此节点c与节点d之间不会发生微环现象。并且,经第三次调整后,节点i会将至节点a的最优路径切换至路径23(包括链路b→a),由于经第三次调整后的链路b→a的链路开销变化(71)大于节点j的切换阈值,因此,节点j不会将至节点a的最优路径切换至路径26,从而,能够避免因节点j的硬件能力及处理环境优于节点i而导致节点j与节点i之间发生微环现象。并且,由于在第二次调整后节点g已将至节点a的最优路径切换至路径17,因此节点g与节点i之间不会发生微环现象。
[0160] 需要说明的是,如图3所示,在系统200中,节点d仅有一个孩子节点,但本发明并不限定于此,当节点d具有多个孩子节点的情况下,可以使所调整的链路b→a的链路开销大于节点d的各孩子节点的路径开销变化值中最大的值。
[0161] 第四次调整并发布的链路b→a的链路开销可以为小于80(70+10)且大于60(50+10)的任意数值,例如,61(51+10),经第四次调整后,节点e会将至节点a的最优路径切换至路径12(包括链路b→a),由于经第四次调整后的链路b→a的链路开销变化(61)大于节点f的切换阈值,因此,节点f不会将至节点a的最优路径切换至路径15,从而,能够避免因节点f的硬件能力及处理环境优于节点e而导致节点f与节点e之间发生微环现象。并且,由于在第三次调整后节点d已将至节点a的最优路径切换至路径9,因此节点d与节点e之间不会发生微环现象。并且,经第四次调整后,节点j会将至节点a的最优路径切换至路径26(包括链路b→a),由于在第三次调整后节点i已将至节点a的最优路径切换至路径23,因此节点i与节点j之间不会发生微环现象。
[0162] 需要说明的是,如图3所示,在系统200中,节点e仅有一个孩子节点,但本发明并不限定于此,当节点e具有多个孩子节点的情况下,可以使所调整的链路b→a的链路开销大于节点e的各孩子节点的路径开销变化值中最大的值。
[0163] 第五次调整并发布的链路b→a的链路开销可以为小于60(50+10)的任意数值,例如,55(45+10),经第五次调整后,节点f会将至节点a的最优路径切换至路径15(包括链路b→a),由于在第四次调整后节点e已将至节点a的最优路径切换至路径12,因此节点e与节点f之间不会发生微环现象。
[0164] 同理,可以对OutPutList中的各节点的切换阈值按递增顺序排列,并进行调整,该过程与上述过程相似,这里,为了避免赘述,省略其说明。
[0165] 即,可选地,该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整,包括:
[0166] 在该第一链路在从故障中恢复时,该网络设备以递增的方式,对各该目标节点的路径开销变化值进行第二排序处理;
[0167] 该网络设备对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差小于第三值且大于第四值,其中,该第三值是经过该第二排序处理后的第N-i+1个路径开销变化值,
[0168] 该第四值是各第三目标节点的路径开销变化值中的最大的值,该第三目标节点与第四目标节点构成待处理节点对,且该第三目标节点在第一路径中为该第四目标节点的上一跳节点,该第四目标节点是经过该第二排序处理后的第N-i+1个路径开销变化值所对应的节点。
[0169] 根据本发明实施例的调整链路开销的方法,通过对待处理节点进一步地进行删除处理,能够减少处理次数,提高调整的效率,从而提高调整的实用性。
[0170] 情况2
[0171] 在链路b→a发生故障时,节点b可以将链路b→a的链路开销从正常值(这里是,10)逐次调整至预设的最高值(例如,16777215)。
[0172] 可选地,在本发明实施例中,该网络设备根据该待处理节点的路径开销变化值,对该第一链路的链路开销进行至少两次调整,包括:
[0173] 该网络设备从该待处理节点中,确定N个目标节点;
[0174] 该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整。
[0175] 在本发明实施例中,可以根据上述待处理节点的个数,确定调整的次数(与目标节点的个数N相同)。
[0176] 可选地,该网络设备从该待处理节点中,确定至少一个目标节点,包括:
[0177] 该网络设备将该待处理节点的全部,作为该N个目标节点。
[0178] 具体地说,在本发明实施例中,可以使调整的次数与待处理节点的个数相同。在系统200中,待处理节点的个数为8,因此,可以进行例如,8次调整。
[0179] 例如,可选地,该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整,包括:
[0180] 在该第一链路发生故障时,该网络设备以递减的方式,对各该目标节点的路径开销变化值进行第四排序处理;
[0181] 该网络设备对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差大于第七值且小于第八值,其中,该第七值是经过该第四排序处理后的第N-i+1个路径开销变化值,该第八值是经过该第四排序处理后的第N-i个路径开销变化值。
[0182] 并且,可选地,该网络设备从该待处理节点中,确定至少一个目标节点,包括:
[0183] 该网络设备从该待处理节点中,确定N个目标节点,该N个目标节点的路径开销变化值彼此相异。
[0184] 具体地说,在上述实施例中,各待处理节点的切换阈值均相异,但不排除各待处理节点的切换阈值有重复情况发生,当各待处理节点的切换阈值有重复时,可以仅保留一个切换阈值发生重复的待处理节点,或者说,对于重复的切换阈值,可以仅保留一个。
[0185] 节点b可以按递减的顺序,对目标节点的各切换阈值进行排序,即,可以得到如下排列顺序:
[0186] 120(节点b的切换阈值),110(节点c的切换阈值),100(节点g和节点h的切换阈值),90(节点d的切换阈值),80(节点i的切换阈值),70(节点e的切换阈值),60(节点j的切换阈值),50(节点f的切换阈值)。
[0187] 其后,节点b可以对链路b→a的链路开销进行8次(该次数与表1中不互相重复的切换阈值的数量相同)调整。
[0188] 第一次调整并发布的链路b→a的链路开销可以为小于70(60+10)且大于60(50+10)的任意数值,例如,65(55+10),经第一次调整后,仅节点f会将至节点a的最优路径切换至路径13(不包括链路b→a),由于经第一次调整后的链路b→a的链路开销变化(55)小于节点e的切换阈值,因此,节点e不会将至节点a的最优路径切换至路径10,从而,能够避免因节点e的硬件能力及处理环境优于节点f而导致节点e与节点f之间发生微环现象。
[0189] 第二次调整并发布的链路b→a的链路开销可以为小于80(70+10)且大于70(60+10)的任意数值,例如,75(65+10),经第二次调整后,节点j会将至节点a的最优路径切换至路径25(不包括链路b→a),由于经第二次调整后的链路b→a的链路开销变化(65)小于节点i的切换阈值,因此,节点i不会将至节点a的最优路径切换至路径110,从而,能够避免因节点i的硬件能力及处理环境优于节点j而导致节点i与节点j之间发生微环现象。
[0190] 第三次调整并发布的链路b→a的链路开销可以为小于90(80+10)且大于80(70+10)的任意数值,例如,85(75+10),经第三次调整后,节点e会将至节点a的最优路径切换至路径10(不包括链路b→a),由于经第三次调整后的链路b→a的链路开销变化(75)小于节点d的切换阈值,因此,节点d不会将至节点a的最优路径切换至路径7,从而,能够避免因节点d的硬件能力及处理环境优于节点e而导致节点d与节点e之间发生微环现象。并且,由于在第一次调整后节点f已将至节点a的最优路径切换至路径13,因此节点e与节点f之间不会发生微环现象。
[0191] 第四次调整并发布的链路b→a的链路开销可以为小于100(90+10)且大于90(80+10)的任意数值,例如,95(85+10),经第四次调整后,节点i会将至节点a的最优路径切换至路径22(不包括链路b→a),由于经第四次调整后的链路b→a的链路开销变化(85)小于节点g的切换阈值,因此,节点g不会将至节点a的最优路径切换至路径16,从而,能够避免因节点g的硬件能力及处理环境优于节点i而导致节点g与节点i之间发生微环现象。并且,由于在第二次调整后节点j已将至节点a的最优路径切换至路径25,因此节点i与节点j之间不会发生微环现象。
[0192] 第五次调整并发布的链路b→a的链路开销可以为小于110(100+10)且大于100(90+10)的任意数值,例如,105(95+10),经第五次调整后,节点d会将至节点a的最优路径切换至路径7(不包括链路b→a),由于经第五次调整后的链路b→a的链路开销变化(95)小于节点c的切换阈值,因此,节点c不会将至节点a的最优路径切换至路径4,从而,能够避免因节点c的硬件能力及处理环境优于节点d而导致节点c与节点d之间发生微环现象。并且,由于在第三次调整后节点e已将至节点a的最优路径切换至路径10,因此节点d与节点e之间不会发生微环现象。
[0193] 第六次调整并发布的链路b→a的链路开销可以为小于120(110+10)且大于110(100+10)的任意数值,例如,115(105+10),经第六次调整后,节点g会将至节点a的最优路径切换至路径16(不包括链路b→a),由于经第六次调整后的链路b→a的链路开销变化(105)小于节点b的切换阈值,因此,节点b不会将至节点a的最优路径切换至路径1,从而,能够避免因节点b的硬件能力及处理环境优于节点g而导致节点b与节点g之间发生微环现象。并且,由于在第四次调整后节点i已将至节点a的最优路径切换至路径22,因此节点g与节点i之间不会发生微环现象。
[0194] 需要说明的是,在本发明实施例中,节点h的切换阈值与节点g的切换阈值均为100,因此,节点h与节点g同时对至节点a的最优链路进行切换。但是,由于节点h的切换阈值与节点g的切换阈值相同,表示在路径19和路径20中,节点h均为节点g的上一跳节点,所以节点h和节点g之间不存在微环问题。
[0195] 第七次调整并发布的链路b→a的链路开销可以为小于130(120+10)且大于120(110+10)的任意数值,例如,125(115+10),经第七次调整后,节点c会将至节点a的最优路径切换至路径4(不包括链路b→a),由于经第七次调整后的链路b→a的链路开销变化(115)小于节点b的切换阈值,因此,节点b不会将至节点a的最优路径切换至路径1,从而,能够避免因节点b的硬件能力及处理环境优于节点c而导致节点b与节点c之间发生微环现象。并且,由于在第五次调整后节点d已将至节点a的最优路径切换至路径7,因此节点c与节点d之间不会发生微环现象。
[0196] 第八次调整并发布的链路b→a的链路开销可以为大于130(120+10)的任意数值,例如,130(125+10),经第八次调整后,节点b会将至节点a的最优路径切换至路径1(不包括链路b→a),由于在第六次调整后节点g已将至节点a的最优路径切换至路径16,因此节点b与节点g之间不会发生微环现象。并且,由于在第七次调整后节点c已将至节点a的最优路径切换至路径4,因此节点b与节点c之间不会发生微环现象。
[0197] 再例如,可选地,该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整,包括:
[0198] 在该第一链路发生故障时,该网络设备以递增的方式,对各该目标节点的路径开销变化值进行第三排序处理;
[0199] 该网络设备对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差大于第五值且小于第六值,其中,该第五值是经过该第三排序处理后的第i个路径开销变化值,该第六值是经过该第三排序处理后的第i+1个路径开销变化值。
[0200] 并且,可选地,该网络设备从该待处理节点中,确定至少一个目标节点,包括:
[0201] 该网络设备从该待处理节点中,确定N个目标节点,该N个目标节点的路径开销变化值彼此相异。
[0202] 具体地说,在上述实施例中,各待处理节点的切换阈值均相异,但不排除各待处理节点的切换阈值有重复情况发生,当各待处理节点的切换阈值有重复时,可以仅保留一个切换阈值发生重复的待处理节点,或者说,对于重复的切换阈值,可以仅保留一个。
[0203] 节点b可以按递增的顺序,对目标节点的各切换阈值进行排序,即,可以得到如下排列顺序:
[0204] 50(节点f的切换阈值),60(节点j的切换阈值),70(节点e的切换阈值),80(节点i的切换阈值),90(节点d的切换阈值),100(节点g和节点h的切换阈值),110(节点c的切换阈值),120(节点b的切换阈值)。
[0205] 其后,节点b可以对链路b→a的链路开销进行8次(该次数与表1中不互相重复的切换阈值的数量相同)调整。
[0206] 第一次调整并发布的链路b→a的链路开销可以为小于70(60+10)且大于60(50+10)的任意数值,例如,65(55+10),经第一次调整后,仅节点f会将至节点a的最优路径切换至路径13(不包括链路b→a),由于经第一次调整后的链路b→a的链路开销变化(55)小于节点e的切换阈值,因此,节点e不会将至节点a的最优路径切换至路径10,从而,能够避免因节点e的硬件能力及处理环境优于节点f而导致节点e与节点f之间发生微环现象。
[0207] 第二次调整并发布的链路b→a的链路开销可以为小于80(70+10)且大于70(60+10)的任意数值,例如,75(65+10),经第二次调整后,节点j会将至节点a的最优路径切换至路径25(不包括链路b→a),由于经第二次调整后的链路b→a的链路开销变化(65)小于节点i的切换阈值,因此,节点i不会将至节点a的最优路径切换至路径110,从而,能够避免因节点i的硬件能力及处理环境优于节点j而导致节点i与节点j之间发生微环现象。
[0208] 第三次调整并发布的链路b→a的链路开销可以为小于90(80+10)且大于80(70+10)的任意数值,例如,85(75+10),经第三次调整后,节点e会将至节点a的最优路径切换至路径10(不包括链路b→a),由于经第三次调整后的链路b→a的链路开销变化(75)小于节点d的切换阈值,因此,节点d不会将至节点a的最优路径切换至路径7,从而,能够避免因节点d的硬件能力及处理环境优于节点e而导致节点d与节点e之间发生微环现象。并且,由于在第一次调整后节点f已将至节点a的最优路径切换至路径13,因此节点e与节点f之间不会发生微环现象。
[0209] 第四次调整并发布的链路b→a的链路开销可以为小于100(90+10)且大于90(80+10)的任意数值,例如,95(85+10),经第四次调整后,节点i会将至节点a的最优路径切换至路径22(不包括链路b→a),由于经第四次调整后的链路b→a的链路开销变化(85)小于节点g的切换阈值,因此,节点g不会将至节点a的最优路径切换至路径16,从而,能够避免因节点g的硬件能力及处理环境优于节点i而导致节点g与节点i之间发生微环现象。并且,由于在第二次调整后节点j已将至节点a的最优路径切换至路径25,因此节点i与节点j之间不会发生微环现象。
[0210] 第五次调整并发布的链路b→a的链路开销可以为小于110(100+10)且大于100(90+10)的任意数值,例如,105(95+10),经第五次调整后,节点d会将至节点a的最优路径切换至路径7(不包括链路b→a),由于经第五次调整后的链路b→a的链路开销变化(95)小于节点c的切换阈值,因此,节点c不会将至节点a的最优路径切换至路径4,从而,能够避免因节点c的硬件能力及处理环境优于节点d而导致节点c与节点d之间发生微环现象。并且,由于在第三次调整后节点e已将至节点a的最优路径切换至路径10,因此节点d与节点e之间不会发生微环现象。
[0211] 第六次调整并发布的链路b→a的链路开销可以为小于120(110+10)且大于110(100+10)的任意数值,例如,115(105+10),经第六次调整后,节点g会将至节点a的最优路径切换至路径16(不包括链路b→a),由于经第六次调整后的链路b→a的链路开销变化(105)小于节点b的切换阈值,因此,节点b不会将至节点a的最优路径切换至路径1,从而,能够避免因节点b的硬件能力及处理环境优于节点g而导致节点b与节点g之间发生微环现象。并且,由于在第四次调整后节点i已将至节点a的最优路径切换至路径22,因此节点g与节点i之间不会发生微环现象。
[0212] 需要说明的是,在本发明实施例中,节点h的切换阈值与节点g的切换阈值均为100,因此,节点h与节点g同时对至节点a的最优链路进行切换。但是,由于节点h的切换阈值与节点g的切换阈值相同,表示在路径19和路径20中,节点h均为节点g的上一跳节点,所以节点h和节点g之间不存在微环问题。
[0213] 第七次调整并发布的链路b→a的链路开销可以为小于130(120+10)且大于120(110+10)的任意数值,例如,125(115+10),经第七次调整后,节点c会将至节点a的最优路径切换至路径4(不包括链路b→a),由于经第七次调整后的链路b→a的链路开销变化(115)小于节点b的切换阈值,因此,节点b不会将至节点a的最优路径切换至路径1,从而,能够避免因节点b的硬件能力及处理环境优于节点c而导致节点b与节点c之间发生微环现象。并且,由于在第五次调整后节点d已将至节点a的最优路径切换至路径7,因此节点c与节点d之间不会发生微环现象。
[0214] 第八次调整并发布的链路b→a的链路开销可以为大于130(120+10)的任意数值,例如,130(125+10),经第八次调整后,节点b会将至节点a的最优路径切换至路径1(不包括链路b→a),由于在第六次调整后节点g已将至节点a的最优路径切换至路径16,因此节点b与节点g之间不会发生微环现象。并且,由于在第七次调整后节点c已将至节点a的最优路径切换至路径4,因此节点b与节点c之间不会发生微环现象。
[0215] 以上,列举了根据待处理节点来确定调整次数的实施例,但本发明并未限定于此,例如,在链路b→a发生故障中时,可以通过一次调整,使两个或者两个以上的待处理节点对中的在第一路径上的上一跳节点先于下一跳节点将最优路径迁移出第一路径。作为实现方法,可以进行以下动作。
[0216] 即,可选地,该网络设备根据该待处理节点的路径开销变化值,对该第一链路的链路开销进行至少两次调整,包括:
[0217] 该网络设备根据各待处理节点的路径开销变化值,确定各待处理节点的调整范围,其中,一个待处理节点的调整范围为小于等于该待处理节点的路径开销变化值,且大于等于该待处理节点的参考节点的路径开销变化值,一个待处理节点的参考节点是该待处理节点在各第一路径上的上一跳节点中路径开销变化值最大的节点;
[0218] 该网络设备根据该待处理节点的调整范围,对该第一链路的链路开销进行至少两次调整。
[0219] 具体地说,图3是本发明一实施例的调整链路开销的方法所适用的通信系统中以第一节点作为树根时的逆向最优路径优先算法的示意性拓扑图。。需要说明的是,图3中的数字标识所对应的待处理节点的切换阈值。在链路b→a从故障中恢复时,由于需要确保各待处理节点对中的下一跳节点(距节点a的跳数较小)先于上一跳节点(距节点a的跳数较大)对最优路径进行切换,并且,由于各节点的第一路径均包括链路b→a,或者说,各第一路径均以节点b作为最后一个中转节点,因此,需要确保距节点a的跳数最小的待处理节点(即,节点b)最先完成切换。
[0220] 在本发明实施例中,首先,可以对于第一链路故障情况下,使用逆向最短路径优先(RSPF,Reverse Shortest Path FIRST)算法,计算各待处理节点到根节点(第一节点)的路径cost值D(i,max)。对于链路正常情况下,使用RSPF算法,计算各待处理节点到根节点cost值D(i,min)。
[0221] 其后,计算对于各待处理节点的防微环切换需要调整的第一链路的最大链路开销值Δcost(i,max):
[0222] Δcost(i,max)=D(i,max)-D(i,min)。
[0223] 计算各待处理节点的防微环切换需要调整的第一链路的最小链路开销值Δcost(i,min):
[0224] Δcost(i,min)=MAX{Δcost(j,max)},其中,节点j是节点i在第一链路正常情况下的儿子节点(或者说,节点j是节点i在第一路径上的上一跳节点)。
[0225] 从而,对于节点i的防微环切换需要调整的第一链路的cost值范围(即,调整范围)是<Δcost(i,min)+K,Δcost(i,max)+K>,其中K是第一链路正常时的cost值。
[0226] 其后,可以根据各节点的调整范围,进行调整,例如,在系统200中,节点g的调整范围为[80,100],节点c的调整范围为[90,110],并且,节点g构成待处理节点对的节点的切换阈值不在节点c与节点d的切换阈值之间(即,节点b的切换阈值为120大于110,节点i的切换阈值为80小于90),则在调节链路开销以使节点c对最优路径进行切换时,该节点g可以同时切换。
[0227] 如图3所示,由于剩余各节点至节点b的路径可能存在差异,例如,节点c、节点d、节点e、节点f需要按距节点a的跳数由小到大的顺序依次切换,并且,节点g、节点i、节点j也需要按距节点a的跳数由小到大的顺序依次切换。因此,对于分别位于上述两条路径上的节点,可能存在通过一次开销调整同时切换至最优路径的情况。
[0228] 如上所述,在系统200中,节点g的切换阈值(即,100),落入一对待处理节点对(即,节点c与节点d)的切换阈值之间(即,[90,110]),并且,节点g构成待处理节点对的节点的切换阈值不在节点c与节点d的切换阈值之间(即,节点b的切换阈值为120大于110,节点i的切换阈值为80小于90),则在调节链路开销以使节点c对最优路径进行切换时,该节点g可以同时切换。
[0229] 同理,节点i与节点d可以同时切换最优路径,节点j与节点e可以同时切换最优路径。
[0230] 即,节点g、节点i和节点j可以作为非目标节点而从待处理节点中删除。
[0231] 不失一般性,可以采用以下方法从待处理节点中确定非目标节点。
[0232] 1.初始化三个列表:处理链表(TentList),候选链表(CandList),输出链表(OutPutList)。
[0233] 2.链路故障变化最近的节点(这里,是节点b)是首先要做防微环切换,记该节点为self。
[0234] 3.将节点self推入TentList。
[0235] 4.从TentList中获取一个节点x,其中,节点x是TentList中调整范围的下限值最大的节点。若TentList为空,则算法结束。
[0236] 5.将节点x推入OutPutList。
[0237] 6.将节点x的所有可能存在微环切换的孩子节点y(这里,是节点c与节点g)加入CandList。
[0238] 7.确定CandList中所有节点的切换阈值中最大的一个切换阈值cost 1,与TentList中节点z的切换阈值cost 2,若cost 2>cost 1,则将节点z从TentList中删除。
[0239] 8.若节点z从TentList中删除,则将节点z所有可能存在微环切换(与节点z构成待处理节点对)的孩子节点w加入CandList。
[0240] 9.重复执行7~8,直到完成TentList中的所有节点的切换阈值与cost 1的比较及删除。
[0241] 10.将CandList中的所有节点移到TentList中,使CandList为空。
[0242] 11.跳转执行4。
[0243] 从而,可以确定OutPutList中的各节点为目标节点。
[0244] 这里,在系统200中,经上述方法确定的OutPutList中的各节点为节点b、节点c、节点d、节点e、节点f。
[0245] 其后,可以对OutPutList中的各节点的切换阈值进行排序(递增或递减),并根据各切换阈值进行链路b→a的链路开销的调整及发布,该具体过程可以与上述根据待处理节点的切换阈值进行链路b→a的链路开销的调整及发布的过程相似,这里,为了避免赘述,省略其说明。
[0246] 另外,在根据OutPutList中的各节点的切换阈值,进行链路b→a的链路开销的调整及发布时,还可以采用以下调整方法:
[0247] 即,可选地,该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整,包括:
[0248] 在该第一链路发生故障时,该网络设备以递增的方式,对各该目标节点的路径开销变化值进行第三排序处理;
[0249] 该网络设备对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差大于第五值且小于第六值,其中,该第六值是经过该第三排序处理后的第i+1个路径开销变化值,
[0250] 该第五值是各第五目标节点的路径开销变化值中的最大的值,该第五目标节点与第六目标节点构成待处理节点对,且该第五目标节点在第一路径中为该第六目标节点的上一跳节点,该第六目标节点是经过该第三排序处理后的第i+1个路径开销变化值所对应的节点。
[0251] 具体地说,在对OutPutList中的各节点的切换阈值进行排序(这里,以按递增顺序排列为例)后,可以进行T次调整,T为OutPutList中包括的节点的数量,如上所述,在系统200中,T为5。
[0252] 即,第一次调整并发布的链路b→a的链路开销可以为小于80(70+10)且大于60(50+10)的任意数值,例如,61(51+10),经第一次调整后,节点f会将至节点a的最优路径切换至路径13(不包括链路b→a),由于经第一次调整后的链路b→a的链路开销变化(51)小于节点e的切换阈值,因此,节点e不会将至节点a的最优路径切换至路径10,从而,能够避免因节点e的硬件能力及处理环境优于节点f而导致节点e与节点f之间发生微环现象。
[0253] 需要说明的是,如图3所示,在系统200中,节点e仅有一个孩子节点,但本发明并不限定于此,当节点e具有多个孩子节点的情况下,可以使所调整的链路b→a的链路开销大于节点e的各孩子节点的路径开销变化值中最大的值。
[0254] 第二次调整并发布的链路b→a的链路开销可以为小于100(90+10)且大于80(70+10)的任意数值,例如,81(71+10),经第二次调整后,节点e会将至节点a的最优路径切换至路径10(不包括链路b→a),由于经第二次调整后的链路b→a的链路开销变化(71)小于节点d的切换阈值,因此,节点d不会将至节点a的最优路径切换至路径7,从而,能够避免因节点d的硬件能力及处理环境优于节点e而导致节点d与节点e之间发生微环现象。并且,由于在第一次调整后节点f已将至节点a的最优路径切换至路径13,因此节点e与节点f之间不会发生微环现象。并且,经第二次调整后,节点j会将至节点a的最优路径切换至路径25(不包括链路b→a),由于经第二次调整后的链路b→a的链路开销变化(71)小于节点i的切换阈值,因此,节点i不会将至节点a的最优路径切换至路径110,从而,能够避免因节点i的硬件能力及处理环境优于节点j而导致节点i与节点j之间发生微环现象。
[0255] 需要说明的是,如图3所示,在系统200中,节点d仅有一个孩子节点,但本发明并不限定于此,当节点d具有多个孩子节点的情况下,可以使所调整的链路b→a的链路开销大于节点d的各孩子节点的路径开销变化值中最大的值。
[0256] 第三次调整并发布的链路b→a的链路开销可以为小于120(110+10)且大于100(90+10)的任意数值,例如,101(91+10),经第三次调整后,节点d会将至节点a的最优路径切换至路径7(不包括链路b→a),由于经第三次调整后的链路b→a的链路开销变化(91)小于节点c的切换阈值,因此,节点c不会将至节点a的最优路径切换至路径4,从而,能够避免因节点c的硬件能力及处理环境优于节点d而导致节点c与节点d之间发生微环现象。并且,由于在第二次调整后节点e已将至节点a的最优路径切换至路径10,因此节点d与节点e之间不会发生微环现象。并且,经第二次调整后,节点i会将至节点a的最优路径切换至路径22(不包括链路b→a),由于经第二次调整后的链路b→a的链路开销变化(91)小于节点g的切换阈值,因此,节点g不会将至节点a的最优路径切换至路径16,从而,能够避免因节点g的硬件能力及处理环境优于节点i而导致节点g与节点i之间发生微环现象。并且,由于在第二次调整后节点j已将至节点a的最优路径切换至路径25,因此节点i与节点j之间不会发生微环现象。
[0257] 需要说明的是,如图3所示,在系统200中,节点c仅有一个孩子节点,但本发明并不限定于此,当节点c具有多个孩子节点的情况下,可以使所调整的链路b→a的链路开销大于节点c的各孩子节点的路径开销变化值中最大的值。
[0258] 第四次调整并发布的链路b→a的链路开销可以为小于130(120+10)且大于120(110+10)的任意数值,例如,121(111+10),经第四次调整后,节点c会将至节点a的最优路径切换至路径4(不包括链路b→a),由于经第四次调整后的链路b→a的链路开销变化(115)小于节点b的切换阈值,因此,节点b不会将至节点a的最优路径切换至路径1,从而,能够避免因节点b的硬件能力及处理环境优于节点c而导致节点b与节点c之间发生微环现象。并且,由于在第三次调整后节点d已将至节点a的最优路径切换至路径7,因此节点c与节点d之间不会发生微环现象。并且,经第四次调整后,节点g会将至节点a的最优路径切换至路径16(不包括链路b→a),由于经第四次调整后的链路b→a的链路开销变化(105)小于节点b的切换阈值,因此,节点b不会将至节点a的最优路径切换至路径1,从而,能够避免因节点b的硬件能力及处理环境优于节点g而导致节点b与节点g之间发生微环现象。并且,由于在第三次调整后节点i已将至节点a的最优路径切换至路径22,因此节点g与节点i之间不会发生微环现象。
[0259] 需要说明的是,在本发明实施例中,节点h的切换阈值与节点g的切换阈值均为100,因此,节点h与节点g同时对至节点a的最优链路进行切换。但是,由于节点h的切换阈值与节点g的切换阈值相同,表示在路径19和路径20中,节点h均为节点g的上一跳节点,所以节点h和节点g之间不存在微环问题。
[0260] 需要说明的是,如图3所示,在系统200中,由于节点c是节点b的孩子节点(节点c和节点g)中路径开销变化值最大的节点,因此使本次调整的链路开销大于节点c的路径开销变化值。
[0261] 第五次调整并发布的链路b→a的链路开销可以为大于130(120+10)的任意数值,例如,130(125+10),经第八次调整后,节点b会将至节点a的最优路径切换至路径1(不包括链路b→a),由于在第四次调整后节点g已将至节点a的最优路径切换至路径16,因此节点b与节点g之间不会发生微环现象。并且,由于在第四次调整后节点c已将至节点a的最优路径切换至路径4,因此节点b与节点c之间不会发生微环现象。
[0262] 同理,可以对OutPutList中的各节点的切换阈值按递减顺序排列,并进行调整,该过程与上述过程相似,这里,为了避免赘述,省略其说明。
[0263] 即,可选地,该网络设备根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整,包括:
[0264] 在该第一链路发生故障时,该网络设备以递减的方式,对各该目标节点的路径开销变化值进行第四排序处理;
[0265] 该网络设备对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差大于第七值且小于第八值,其中,该第八值是经过该第四排序处理后的第N-i个路径开销变化值,
[0266] 该第七值是各第七目标节点的路径开销变化值中的最大的值,该第七目标节点与第八目标节点构成待处理节点对,且该第七目标节点在第一路径中为该第八目标节点的上一跳节点,该第八目标节点是经过该第四排序处理后的第N-i+1个路径开销变化值所对应的节点。
[0267] 根据本发明实施例的调整链路开销的方法,通过对待处理节点进一步地进行删除处理,能够减少处理次数,提高调整的效率,从而提高调整的实用性。
[0268] 可选地,该网络设备对该第一链路的链路开销进行至少两次调整包括:
[0269] 该网络设备确定各目标节点计算最优路径所需要的处理时间;
[0270] 该网络设备根据该处理时间,确定该至少两次调整之间的时间间隔;
[0271] 该网络设备根据该时间间隔,对该第一链路的链路开销进行至少两次调整。
[0272] 具体地说,在本发明实施例中,还可以确定本次调整中能够完成最优路径重选的节点的所需要的重计算处理时间,例如,可以(例如,从供应商)获取各节点的硬件信息,从而根据该硬件信息进行计算能力估算,从而确定该重计算处理时间,确定下一次调整及发布的时间,以使该本次调整中能够完成最优路径重选的节点完成重选后,进行下一次调整及发布。
[0273] 根据本发明实施例的调整链路开销的方法,能够进一步可靠地避免微环现象的发生。
[0274] 根据本发明实施例的调整链路开销的方法,通过对与第一节点直接连接的第一链路的链路开销进行多次调整,在包括该第一链路且在该第一链路正常时作为至该第一节点的最优链路的各第一路径中,在第一链路在从故障中恢复时,使可能出现微环现象的待处理节点对中在第一路径上的下一跳节点先于上一跳节点将至第一节点的最优路径迁移至第一路径,或在第一链路发生故障时,在使可能出现微环现象的待处理节点对中在第一路径上的上一跳节点先于下一跳节点将至第一节点的最优路径迁移出第一路径,从而,能够防止各待处理节点对之间出现微环现象。
[0275] 以上,结合图1至图3详细说明了根据本发明实施例的调整链路开销的方法,下面,结合图4详细说明根据本发明实施例的调整链路开销的装置。
[0276] 图4示出了根据本发明实施例的调整链路开销的装置300的示意性框图。如图4所示,该装置300包括:
[0277] 待处理节点确定单元310,用于当该第一链路发生故障或从故障中恢复时,从至少三个节点中确定至少一个待处理节点对,其中,每个待处理节点对包括经由一条链路相连的两个待处理节点,该待处理节点能够通过不包括第一链路的第二路径向该至少三个节点的第一节点发送报文,并且,该待处理节点能够在该第一链路正常时通过包括该第一链路的第一路径向该第一节点发送报文,其中,一个第二路径是从一个待处理节点在至该第一节点的不包括该第一链路的路径中总的链路开销最小的路径,一个第一路径是在该第一链路正常时从一个待处理节点至该第一节点的最优路径,并且,每个待处理节点对中的各待处理节点在第二路径上和第一路径上的上下跳关系相异,该至少三个节点中的第二节点与该第一节点之间通过该第一链路直接连接,该第一链路用于传输需要发送至该第一节点的数据;
[0278] 路径开销变化值确定单元320,用于确定各待处理节点的路径开销变化值,该各待处理节点的路径开销变化值是各待处理节点的第一路径开销与第二路径开销的差值,该第一路径开销是当第一链路正常时在第一路径上的总的链路开销,该第二路径开销是在第二路径上的总的链路开销;
[0279] 链路开销调整单元330,用于根据各待处理节点的路径开销变化值,对该第一链路的链路开销进行至少两次调整,以在该第一链路在从故障中恢复时,使各待处理节点对中在第一路径上的下一跳节点先于上一跳节点将至该第一节点的最优路径迁移至该第一路径,或
[0280] 在该第一链路发生故障时,使各待处理节点对中在第一路径上的上一跳节点先于下一跳节点将至该第一节点的最优路径迁移出该第一路径。
[0281] 可选地,该链路开销调整单元330还用于从该待处理节点中,确定N个目标节点,其中,该目标节点的数目小于等于该待处理节点的数目;
[0282] 用于根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整。
[0283] 可选地,该链路开销调整单元330具体用于将该待处理节点的全部,作为该N个目标节点。
[0284] 可选地,该链路开销调整单元330具体用于在该第一链路在从故障中恢复时,该网络设备以递减的方式,对各该目标节点的路径开销变化值进行第一排序处理;
[0285] 用于对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差小于第一值且大于第二值,其中,该第一值是经过该第一排序处理后的第i个路径开销变化值,该第二值是经过该第一排序处理后的第i+1个路径开销变化值。
[0286] 可选地,该链路开销调整单元330具体用于在该第一链路在从故障中恢复时,该网络设备以递增的方式,对各该目标节点的路径开销变化值进行第二排序处理;
[0287] 用于对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差小于第三值且大于第四值,其中,该第三值是经过该第二排序处理后的第N-i+1个路径开销变化值,该第四值是经过该第二排序处理后的第N-i个路径开销变化值。
[0288] 可选地,该链路开销调整单元330具体用于在该第一链路发生故障时,该网络设备以递增的方式,对各该目标节点的路径开销变化值进行第三排序处理;
[0289] 用于对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差大于第五值且小于第六值,其中,该第六值是经过该第三排序处理后的第i+1个路径开销变化值,该第五值是经过该第三排序处理后的第i个路径开销变化值。
[0290] 可选地,该链路开销调整单元330具体用于在该第一链路发生故障时,该网络设备以递减的方式,对各该目标节点的路径开销变化值进行第四排序处理;
[0291] 用于对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差大于第七值且小于第八值,其中,该第八值是经过该第四排序处理后的第N-i个路径开销变化值,该第七值是经过该第四排序处理后的第N-i+1个路径开销变化值。
[0292] 可选地,该链路开销调整单元330还用于确定各目标节点计算最优路径所需要的处理时间;
[0293] 用于根据该处理时间,确定该至少两次调整之间的时间间隔;
[0294] 用于根据该时间间隔,对该第一链路的链路开销进行至少两次调整。
[0295] 可选地,该装置为该第二节点。
[0296] 可选地,该链路开销调整单元330具体用于根据各待处理节点的路径开销变化值,确定各待处理节点的调整范围,其中,一个待处理节点的调整范围为小于等于该待处理节点的路径开销变化值,且大于等于该待处理节点的参考节点的路径开销变化值,一个待处理节点的参考节点是该待处理节点在各第一路径上的上一跳节点中路径开销变化值最大的节点;
[0297] 用于根据该待处理节点的调整范围,对该第一链路的链路开销进行至少两次调整。
[0298] 根据本发明实施例的调整链路开销的装置300可对应于本发明实施例的方法中的网络设备(例如,第二节点),并且,该装置300中的各单元即模块和上述其他操作和/或功能分别为了实现图1中的方法100的相应流程,为了简洁,在此不再赘述。
[0299] 根据本发明实施例的调整链路开销的装置,通过对与第一节点直接连接的第一链路的链路开销进行多次调整,在包括该第一链路且在该第一链路正常时作为至该第一节点的最优链路的各第一路径中,在第一链路在从故障中恢复时,使可能出现微环现象的待处理节点对中在第一路径上的下一跳节点先于上一跳节点将至第一节点的最优路径迁移至第一路径,或在第一链路发生故障时,在使可能出现微环现象的待处理节点对中在第一路径上的上一跳节点先于下一跳节点将至第一节点的最优路径迁移出第一路径,从而,能够防止各待处理节点对之间出现微环现象。
[0300] 以上,结合图1至图3详细说明了根据本发明实施例的调整链路开销的方法,下面,结合图5详细说明根据本发明实施例的调整链路开销的设备。
[0301] 图5示出了根据本发明实施例的调整链路开销的设备400的示意性框图。如图5所示,该设备400包括:
[0302] 总线410;
[0303] 与该总线相连的处理器420;
[0304] 与该总线相连的存储器430;
[0305] 其中,该处理器420通过该总线410,调用该存储器430中存储的程序,以用于当该第一链路发生故障或从故障中恢复时,网络设备从该至少三个节点中确定至少一个待处理节点对,其中,每个待处理节点对包括经由一条链路相连的两个待处理节点,该待处理节点能够通过不包括该第一链路的第二路径向该第一节点发送报文,并且,该待处理节点能够在该第一链路正常时通过包括该第一链路的第一路径向该第一节点发送报文,其中,一个第二路径是从一个待处理节点在至该第一节点的不包括该第一链路的路径中总的链路开销最小的路径,一个第一路径是在该第一链路正常时从一个待处理节点至该第一节点的最优路径,并且,每个待处理节点对中的各待处理节点在第二路径上和第一路径上的上下跳关系相异;
[0306] 用于确定各待处理节点的路径开销变化值,该各待处理节点的路径开销变化值是各待处理节点的第一路径开销与第二路径开销的差值,该第一路径开销是当第一链路正常时在第一路径上的总的链路开销,该第二路径开销是在第二路径上的总的链路开销;
[0307] 用于根据各待处理节点的路径开销变化值,对该第一链路的链路开销进行至少两次调整,以在该第一链路在从故障中恢复时,使各待处理节点对中在第一路径上的下一跳节点先于上一跳节点将至该第一节点的最优路径迁移至该第一路径,或
[0308] 在该第一链路发生故障时,使各待处理节点对中在第一路径上的上一跳节点先于下一跳节点将至该第一节点的最优路径迁移出该第一路径。
[0309] 可选地,该处理器420还用于从该待处理节点中,确定N个目标节点,其中,该目标节点的数目小于等于该待处理节点的数目;
[0310] 用于根据各该目标节点的路径开销变化值,对该第一链路的链路开销进行N次调整。
[0311] 可选地,该处理器420具体用于将该待处理节点的全部,作为该N个目标节点。
[0312] 可选地,该处理器420具体用于在该第一链路在从故障中恢复时,该网络设备以递减的方式,对各该目标节点的路径开销变化值进行第一排序处理;
[0313] 用于对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差小于第一值且大于第二值,其中,该第一值是经过该第一排序处理后的第i个路径开销变化值,该第二值是经过该第一排序处理后的第i+1个路径开销变化值。
[0314] 可选地,该处理器420具体用于在该第一链路在从故障中恢复时,该网络设备以递增的方式,对各该目标节点的路径开销变化值进行第二排序处理;
[0315] 用于对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差小于第三值且大于第四值,其中,该第三值是经过该第二排序处理后的第N-i+1个路径开销变化值,该第四值是经过该第二排序处理后的第N-i个路径开销变化值。
[0316] 可选地,该处理器420具体用于在该第一链路发生故障时,该网络设备以递增的方式,对各该目标节点的路径开销变化值进行第三排序处理;
[0317] 用于对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差大于第五值且小于第六值,其中,该第六值是经过该第三排序处理后的第i+1个路径开销变化值,该第五值是经过该第三排序处理后的第i个路径开销变化值。
[0318] 可选地,该处理器420具体用于在该第一链路发生故障时,该网络设备以递减的方式,对各该目标节点的路径开销变化值进行第四排序处理;
[0319] 用于对该第一链路的链路开销进行N次调整,以使第i次调整后的第一链路的链路开销与该第一链路正常时的链路开销之差大于第七值且小于第八值,其中,该第八值是经过该第四排序处理后的第N-i个路径开销变化值,该第七值是经过该第四排序处理后的第N-i+1个路径开销变化值。
[0320] 可选地,该处理器420还用于确定各目标节点计算最优路径所需要的处理时间;
[0321] 用于根据该处理时间,确定该至少两次调整之间的时间间隔;
[0322] 用于根据该时间间隔,对该第一链路的链路开销进行至少两次调整。
[0323] 可选地,该设备400为该第二节点。
[0324] 可选地,该处理器420具体用于根据各待处理节点的路径开销变化值,确定各待处理节点的调整范围,其中,一个待处理节点的调整范围为小于等于所述待处理节点的路径开销变化值,且大于等于所述待处理节点的参考节点的路径开销变化值,一个待处理节点的参考节点是所述待处理节点在各第一路径上的上一跳节点中路径开销变化值最大的节点;
[0325] 用于根据所述待处理节点的调整范围,对所述第一链路的链路开销进行至少两次调整。
[0326] 根据本发明实施例的调整链路开销的设备400可对应于本发明实施例的方法中的网络设备(例如,第二节点),并且,该设备400中的各单元即模块和上述其他操作和/或功能分别为了实现图1中的方法100的相应流程,为了简洁,在此不再赘述。
[0327] 应理解,在本发明实施例中,该处理器420可以是中央处理单元(Central Processing Unit,简称为“CPU”),该处理器420还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0328] 该存储器430可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。存储器430的一部分还可以包括非易失性随机存取存储器。例如,存储器430还可以存储设备类型的信息。
[0329] 该总线410除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统410。
[0330] 在实现过程中,上述方法的各步骤可以通过处理器410中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器430,处理器420读取存储器430中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0331] 根据本发明实施例的调整链路开销的设备,通过对与第一节点直接连接的第一链路的链路开销进行多次调整,在包括该第一链路且在该第一链路正常时作为至该第一节点的最优链路的各第一路径中,在第一链路在从故障中恢复时,使可能出现微环现象的待处理节点对中在第一路径上的下一跳节点先于上一跳节点将至第一节点的最优路径迁移至第一路径,或在第一链路发生故障时,在使可能出现微环现象的待处理节点对中在第一路径上的上一跳节点先于下一跳节点将至第一节点的最优路径迁移出第一路径,从而,能够防止各待处理节点对之间出现微环现象。
[0332] 应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0333] 应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0334] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0335] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0336] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0337] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0338] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0339] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0340] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。