一种全路径探测方法、装置和系统转让专利

申请号 : CN201610782778.1

文献号 : CN107800579B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐晓旸厉益舟庄艳

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

摘要 :

本发明公开了一种全路径探测方法、装置和系统,以适应业务链在SF负载均衡模式下的路径连通性检测。该方法为,控制器为每个SF生成变化因子,并将所述SF对应的变化因子下发给所述SF对应的SFF,所述变化因子用于生成报文编号;向业务链中第一跳SFF发送携带初始报文编号的探测报文,使第一跳SFF基于所述初始报文编号、第一跳SFF的本地SF对应的变化因子生成新的报文编号携带在探测报文中,并将所述携带了新的报文编号的探测报文转发至本地SF,以完成探测报文的转发;接收上报的携带目的报文编号的探测报文,并基于目的报文编号、预设规则得到探测报文的转发路径,完成全路径探测。这样,能够实现业务链场景下的全路径探测。

权利要求 :

1.一种全路径探测方法,其特征在于,包括:

控制器根据预设规则确定每个业务功能SF的变化因子,并将所述SF对应的变化因子下发给所述SF对应的业务功能转发器SFF,所述变化因子用于生成报文编号;

所述控制器向业务链中的第一跳SFF发送携带初始报文编号的探测报文,使所述第一跳SFF基于所述初始报文编号、所述第一跳SFF的本地SF对应的变化因子生成新的报文编号携带在探测报文,并将所述携带了新的报文编号的探测报文转发至所述本地SF;

所述控制器接收目的SF或目的SF对应的SFF上报的携带目的报文编号的探测报文,并基于所述目的报文编号、所述预设规则得到所述探测报文的转发路径,完成全路径探测。

2.如权利要求1所述的方法,其特征在于,所述控制器根据预设规则确定每个SF的变化因子包括所述控制器根据预设规则生成每个SF的变化因子,所述预设规则符合下述公式:其中,factormn表示第m跳内的逻辑编号为n的SF对应的变化因子,m,n均为正整数,SfNumi表示第i跳的SF的数量。

3.如权利要求1所述的方法,其特征在于,所述控制器根据预设规则确定每个SF的变化因子包括所述控制器根据预设规则生成每个SF的变化因子,所述预设规则符合下述公式:其中,factormn表示第m跳内的逻辑编号为n的SF对应的变化因子,m,n均为正整数,[SfNumi]表示不小于第i跳的SF的数量且与第i跳的SF的数量最接近的2的指数次方。

4.如权利要求1所述的方法,其特征在于,所述控制器根据预设规则确定每个SF的变化因子,包括:所述控制器预先为每个SF配置对应的变化因子,其中,相邻SF的变化因子的差值大于预设阈值。

5.一种全路径探测方法,其特征在于,包括:

业务链中的业务功能转发器SFF接收探测报文,所述探测报文中携带有报文编号;

所述SFF确定所述探测报文的上一跳设备;

当所述探测报文的上一跳设备为所述SFF的本地SF时,将所述探测报文转发至下一跳SFF;

当所述探测报文的上一跳设备为控制器或另一SFF时,针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号,并将所述新的报文编号携带在探测报文中,将携带所述新的报文编号的探测报文转发至所述本地SF。

6.如权利要求5所述的方法,其特征在于,所述方法还包括:

当所述探测报文的上一跳设备为目的SF时,将所述探测报文发送至所述控制器。

7.如权利要求5所述的方法,其特征在于,所述SFF针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号,包括:所述SFF针对所述SFF的每个本地SF,计算所述报文编号与所述本地SF的变化因子之和,得到所述新的报文编号。

8.一种全路径探测系统,其特征在于,包括:控制器和至少一个业务功能转发器SFF,所述控制器,用于根据预设规则确定每个业务功能SF的变化因子,并将所述SF对应的变化因子下发给所述SF对应的SFF,所述变化因子用于生成报文编号;向业务链中的第一跳SFF发送携带初始报文编号的探测报文,使所述第一跳SFF基于所述初始报文编号、所述第一跳SFF的本地SF对应的变化因子生成新的报文编号携带在探测报文中,并将所述携带了新的报文编号的探测报文转发至所述本地SF;接收目的SF或目的SF对应的SFF上报的携带目的报文编号的探测报文,并基于所述目的报文编号、所述预设规则得到所述探测报文的转发路径,完成全路径探测;

每个SFF,用于接收探测报文,所述探测报文中携带有报文编号;确定所述探测报文的上一跳设备,当所述探测报文的上一跳设备为所述SFF的本地SF时,将所述探测报文转发至下一跳的SFF;当所述探测报文的上一跳设备为所述控制器或另一SFF时,针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号,并将所述新的报文编号携带在探测报文中,将携带所述新的报文编号的探测报文转发至所述本地SF。

9.一种全路径探测装置,其特征在于,包括:

处理单元,用于根据预设规则确定每个业务功能SF的变化因子,并将所述SF对应的变化因子下发给所述SF对应的业务功能转发器SFF,所述变化因子用于生成报文编号;

发送单元,用于向业务链中的第一跳SFF发送携带初始报文编号的探测报文,使所述第一跳SFF基于所述初始报文编号、所述第一跳SFF的本地SF对应的变化因子生成新的报文编号携带在探测报文,并将所述携带了新的报文编号的探测报文转发至所述本地SF;

接收单元,用于接收目的SF或目的SF对应的SFF上报的携带目的报文编号的探测报文;

所述处理单元,还用于基于所述目的报文编号、所述预设规则得到所述探测报文的转发路径,完成全路径探测。

10.如权利要求9所述的装置,其特征在于,所述处理单元根据预设规则确定每个SF的变化因子包括所述处理单元根据预设规则生成每个SF的变化因子时,所述预设规则符合下述公式:其中,factormn表示第m跳内的逻辑编号为n的SF对应的变化因子,m,n均为正整数,SfNumi表示第i跳的SF的数量。

11.如权利要求9所述的装置,其特征在于,所述处理单元根据预设规则确定每个SF的变化因子包括所述处理单元根据预设规则生成每个SF的变化因子时,所述预设规则符合下述公式:其中,factormn表示第m跳内的逻辑编号为n的SF对应的变化因子,m,n均为正整数,[SfNumi]表示不小于第i跳的SF的数量且与第i跳的SF的数量最接近的2的指数次方。

12.如权利要求9所述的装置,其特征在于,所述处理单元根据预设规则确定每个业务功能SF的变化因子时,具体用于:预先为每个SF配置对应的变化因子,其中,相邻SF的变化因子的差值大于预设阈值。

13.一种全路径探测装置,应用于业务链中的业务功能转发器SFF,其特征在于,包括:接收单元,用于接收探测报文,所述探测报文中携带有报文编号;

处理单元,用于确定所述探测报文的上一跳设备;

当所述探测报文的上一跳设备为所述SFF的本地业务功能SF时,将所述探测报文转发至下一跳SFF;

当所述探测报文的上一跳设备为控制器或另一SFF时,针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号,并将所述新的报文编号携带在探测报文中,将携带所述新的报文编号的探测报文转发至所述本地SF。

14.如权利要求13所述的装置,其特征在于,所述装置还包括:

发送单元,用于当所述探测报文的上一跳设备为目的SF时,将所述探测报文发送至所述控制器。

15.如权利要求13所述的装置,其特征在于,所述处理单元针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号时,具体用于:针对所述SFF的每个本地SF,计算所述报文编号与所述本地SF的变化因子之和,得到所述新的报文编号。

说明书 :

一种全路径探测方法、装置和系统

技术领域

[0001] 本发明涉及计算机领域,尤其涉及一种全路径探测方法、装置和系统。

背景技术

[0002] 业务功能链(英文:service function chain,简称:SFC)定义并实例化一组有序的供业务流通过的业务功能(英文:service function,简称:SF),业务功能链也被简称为业务链(英文:service chain),其目的是为用户提供端到端的业务路径。其中,SF可以指防火墙(英文:firewalls)、网络地址转换器(英文:Network Address Translators,简称:NATs)或者其他特定应用(英文:application-specific)的功能,例如,负载均衡器(英文:
load balancer)等。当报文从业务链的一端被转发到另一端时,需要经过一条由多个SFs以及它们连结的业务功能转发器(英文:Service Function Forwarder,简称:SFF)构成的具体业务路径(英文:Rendered Service Path,简称:RSP)。每条RSP有一个唯一的路径标识(Service Path Identifier,SPI),如图1所示为一条具体的业务链的业务路径示意图。
[0003] 业务链架构由控制面、SF、SFF及分类器(classifier)组成。控制面主要负责业务链的生命周期管理、业务链构建、配置下发、状态管理等,其功能通常由控制器实现;分类器通过流量识别策略识别出特定业务链的流量,将其转发给对应业务链的第一跳SFF,分类器可以是具体的业务设备,也可以集成到网络设备中;SF负责具体的业务策略执行,主要由业务厂商提供;SFF负责将分类器识别的流量根据业务链规则转发给本地SF和下一跳SFF,主要由网络厂商提供。
[0004] 在现网环境下,SF通常由传统的硬件设备(如防火墙、负载均衡器)或软件虚拟化设备组成。单个SF设备的性能规格有限,当业务路径上的流量过大时,SF容易出现性能瓶颈。为应对这一问题,IETF SFC工作组引入了业务功能组(英文:Service Function Group,简称:SFG)的概念。即,业务路径的每一跳不一定是单个SF,也可以是由多个相同类型的SFs构成的SFG。此时,业务流量均衡地流过SFG内的每个SF,当SFG内的SF达到性能阈值时,可以往该SFG内动态插入新的SF来均衡流量。这种模式称为SF负载均衡模式。
[0005] 全路径探测是检测网络连通性的一个重要手段,通过向网络中端到端的所有路径发送探测报文,诊断各条路径的连通性。
[0006] 当业务链中出现SF负载均衡模式时,一条RSP对应的实际业务路径往往存在多条,确保所有实际业务路径的连通性对于实现完整的业务链功能至关重要。因此,需要实现业务链的全路径探测。
[0007] 现有的基于因特网协议(英文:Internet Protocol,简称:IP)网络的全路径探测方案由控制器向源设备下发探测报文,在路径上的所有设备配置访问控制列表(英文:access control list,简称:ACL)引导探测报文的转发,通过为不同的路径下发不同的探测报文以及配置不同的ACL达到全路径遍历的效果。由于业务链涉及的是上层业务转发,且转发规则与基于IP网络的转发规则存在巨大差异,现有的基于IP网络的全路径探测方案并不适用,因此急亟需一种全路径探测方案,以适应业务链在SF负载均衡模式下的路径连通性检测。

发明内容

[0008] 本发明实施例提供一种全路径探测方法、装置和系统,以适应业务链在SF负载均衡模式下的路径连通性检测。
[0009] 本发明实施例提供的具体技术方案如下:
[0010] 第一方面,本发明提供一种全路径探测方法,包括:
[0011] 控制器根据预设规则确定每个业务功能SF的变化因子,并将所述SF对应的变化因子下发给所述SF对应的业务功能转发器SFF,所述变化因子用于生成报文编号;向业务链中的第一跳SFF发送携带初始报文编号的探测报文,使所述第一跳SFF基于所述初始报文编号、所述第一跳SFF的本地SF对应的变化因子生成新的报文编号携带在探测报文,并将所述携带了新的报文编号的探测报文转发至所述本地SF;接收目的SF或目的SF对应的SFF上报的携带目的报文编号的探测报文,并基于所述目的报文编号、所述预设规则得到所述探测报文的转发路径,完成全路径探测。
[0012] 这样,控制器为业务链中的每个SF配置变化因子,通过向业务链中的第一条SFF发送携带初始报文编号的探测报文,使所述第一跳SFF基于初始报文编号、第一跳SFF的本地SF对应的变化因子生成新的报文编号携带在探测报文中进行后续报文的转发,不仅使控制器向业务链下发的探测报文数量得到有效控制,而且能够基于接收到的目的报文编号得到探测报文的转发路径,从而实现全路径探测,方法简单易于实现。
[0013] 一种可能的设计中,所述控制器根据预设规则确定每个SF的变化因子包括所述控制器根据预设规则生成每个SF的变化因子,所述预设规则符合下述公式:
[0014]
[0015] 其中,factormn表示第m跳内的逻辑编号为n的SF对应的变化因子,m,n均为正整数,SfNumi表示第i跳的SF的数量。
[0016] 上述预设规则生成的变化因子,能够保证每个SF对应的探测报文中的报文编号都各不相同,从而使控制器能够根据目的报文编号准确得到探测报文的转发路径。
[0017] 一种可能的设计中,所述控制器根据预设规则确定每个SF的变化因子包括所述控制器根据预设规则生成每个SF的变化因子,所述预设规则符合下述公式:
[0018]
[0019] 其中,factormn表示第m跳内的逻辑编号为n的SF对应的变化因子,m,n均为正整数,[SfNumi]表示不小于第i跳的SF的数量且与第i跳的SF的数量最接近的2的指数次方。
[0020] 上述预设规则生成的变化因子规律性取值,能够保证每个SF对应的探测报文中的报文编号都各不相同,从而使控制器能够根据目的报文编号准确得到探测报文的转发路径。
[0021] 一种可能的设计中,所述控制器根据预设规则确定每个SF的变化因子,包括:
[0022] 所述控制器预先为每个SF配置对应的变化因子,其中,相邻SF的变化因子的差值大于预设阈值。
[0023] 这种设计中配置的变化因子具有很大的灵活性,在相邻SF的变化因子的差值大于预设阈值时才能够保证每个SF对应的探测报文中的报文编号都各不相同,从而使控制器能够根据目的报文编号准确得到探测报文的转发路径。
[0024] 一种可能的设计中,所述控制器在接收到目的报文编号后,基于预先存储的目的报文编号与转发路径的映射关系,得到探测报文对应的转发路径,从而完成全路径探测,其中,目的报文编号与转发路径的映射关系基于预设规则、初始报文编号、业务链的转发路径,预先计算得到的。
[0025] 这种设计中,通过预先存储的目的报文编号与转发路径的映射关系,根据目的报文编号得到探测报文对应的转发路径,方案简单,便于实现。
[0026] 第二方面,提供一种全路径探测方法,包括:
[0027] 业务链中的业务功能转发器SFF接收探测报文,所述探测报文中携带有报文编号;确定所述探测报文的上一跳设备;当所述探测报文的上一跳设备为所述SFF的本地SF时,将所述探测报文转发至下一跳SFF;当所述探测报文的上一跳设备为控制器或另一SFF时,针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号,并将所述新的报文编号携带在探测报文中,将携带所述新的报文编号的探测报文转发至所述本地SF。
[0028] 这样,业务链中的SFF能够基于接收到的探测报文中携带的报文编号,针对每个本地SF,生成新的报文编号,并所述新的报文编号携带在探测报文中,进行探测报文的转发,由于报文编号在探测报文的转发过程中发生了改变,使得不同的目的报文编号对应不同的转发路径,有效应用于业务链的全路径探测。
[0029] 一种可能的设计中,所述方法还包括:
[0030] 当所述探测报文的上一跳设备为目的SF时,将所述探测报文发送至所述控制器。
[0031] 一种可能的设计中,所述SFF针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号,包括:
[0032] 所述SFF针对所述SFF的每个本地SF,计算所述报文编号与所述本地SF的变化因子之和,得到所述新的报文编号。
[0033] 这种设计中,SFF根据原来的报文编号、每个本地SF的变化因子,更改每个本地SF的报文编号得到新的报文编号,实现报文编号在探测报文的转发过程中的更改。
[0034] 第三方面,提供一种全路径探测系统,包括:控制器和至少一个业务功能转发器SFF,
[0035] 所述控制器,用于根据预设规则确定每个业务功能SF的变化因子,并将所述SF对应的变化因子下发给所述SF对应的SFF,所述变化因子用于生成报文编号;向业务链中的第一跳SFF发送携带初始报文编号的探测报文,使所述第一跳SFF基于所述初始报文编号、所述第一跳SFF的本地SF对应的变化因子生成新的报文编号携带在探测报文中,并将所述携带了新的报文编号的探测报文转发至所述本地SF;接收目的SF或目的SF对应的SFF上报的携带目的报文编号的探测报文,并基于所述目的报文编号、所述预设规则得到所述探测报文的转发路径,完成全路径探测;
[0036] 每个SFF,用于接收探测报文,所述探测报文中携带有报文编号;确定所述探测报文的上一跳设备,当所述探测报文的上一跳设备为所述SFF的本地SF时,将所述探测报文转发至下一跳的SFF;当所述探测报文的上一跳设备为所述控制器或另一SFF时,针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号,并将所述新的报文编号携带在探测报文中,将携带所述新的报文编号的探测报文转发至所述本地SF。
[0037] 第四方面,提供一种全路径探测装置,包括:
[0038] 处理单元,用于根据预设规则确定每个业务功能SF的变化因子,并将所述SF对应的变化因子下发给所述SF对应的业务功能转发器SFF,所述变化因子用于生成报文编号;
[0039] 发送单元,用于向业务链中的第一跳SFF发送携带初始报文编号的探测报文,使所述第一跳SFF基于所述初始报文编号、所述第一跳SFF的本地SF对应的变化因子生成新的报文编号携带在探测报文,并将所述携带了新的报文编号的探测报文转发至所述本地SF;
[0040] 接收单元,用于接收目的SF或目的SF对应的SFF上报的携带目的报文编号的探测报文;
[0041] 所述处理单元,用于基于所述目的报文编号、所述预设规则得到所述探测报文的转发路径,完成全路径探测。
[0042] 第五方面,提供一种全路径探测装置,应用于业务链中的业务功能转发器SFF,包括:
[0043] 接收单元,用于接收探测报文,所述探测报文中携带有报文编号;
[0044] 处理单元,用于确定所述探测报文的上一跳设备;
[0045] 当所述探测报文的上一跳设备为所述SFF的本地业务功能SF时,将所述探测报文转发至下一跳SFF;
[0046] 当所述探测报文的上一跳设备为控制器或另一SFF时,针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号,并将所述新的报文编号携带在探测报文中,将携带所述新的报文编号的探测报文转发至所述本地SF。
[0047] 第六方面,提供一种设备,该设备包括处理器、存储器、发射器和接收器,其中,所述存储器中存有计算机可读程序,所述处理器通过运行所述存储器中的程序,控制所述发射器和接收器,实现第一方面涉及的全路径探测方法。
[0048] 第七方面,提供一种设备,该设备包括处理器、存储器和接收器,其中,所述存储器中存有计算机可读程序,所述处理器通过运行所述存储器中的程序,控制所述接收器,实现第二方面涉及的全路径探测方法。
[0049] 第八方面,本申请提供一种计算机存储介质,用于储存为上述第一方面、第二方面所述的控制器所用的计算机软件指令,其包含用于执行上述由控制实现的方法所设计的程序。
[0050] 第九方面,本申请提供一种计算机存储介质,用于储存为上述第一方面、第二方面所述的SFF所用的计算机软件指令,其包含用于执行上述由SFF实现的方法所设计的程序。

附图说明

[0051] 图1为一条具体的业务链的业务路径示意图;
[0052] 图2为本发明实施例中的一种全路径探测方法流程图;
[0053] 图3为本发明实施例中的一种全路径探测方法流程图;
[0054] 图4为本发明实施例中一个具体的业务链的全路径探测示例图;
[0055] 图5为本发明实施例中一个具体的业务链的全路径探测示例图;
[0056] 图6为本发明实施例中一个具体的业务链的全路径探测示例图;
[0057] 图7为本发明实施例中的一种全路径探测装置结构图;
[0058] 图8为本发明实施例中的一种全路径探测设备结构图;
[0059] 图9为本发明实施例中的另一种全路径探测装置结构图;
[0060] 图10为本发明实施例中的另一种全路径探测设备结构图。

具体实施方式

[0061] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。
[0062] 图1呈现了一条SPI为10的RSP,该RSP由三个SFs构成,第一跳为SF1、第二跳为SF2、第三跳为SF3,它们连接的SFF分别为SFF1、SFF2与SFF3。在实际部署过程中,SFF1、SFF2与SFF3可能重叠。当源设备(src)需要发送流量给目的设备(dst)时,分类器识别出流量符合该RSP的匹配策略,于是将报文加上业务链封装后转发给SFF1,所有的SFFs与SFs沿RSP转发报文,最后一跳的SFF3收到SF3返回的业务链报文后剥去业务链封装,将原始报文发给dst。
[0063] 可选的,上述图1中的业务路径的每一个SF,不限定为单个SF,也可以是多个相同类型的SFs构成的SFG。
[0064] 针对现有技术中基于IP网络的全路径探测方案无法应用于业务链的场景,本发明实施例提供一种全路径探测方法、装置和系统,以适应业务链在SF负载均衡模式下的路径连通性检测。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
[0065] 参阅图2所示,图2为本发明实施例提供的全路径探测方法流程图,所述方法由控制器执行,具体流程如下所示:
[0066] 步骤21:控制器根据预设规则确定每个SF的变化因子,并将所述SF对应的变化因子下发给所述SF对应的SFF,所述变化因子用于生成报文编号。
[0067] 可选的,控制器为每个SF配置变化因子时,每个SF对应的变化因子没有关联关系,不同SF对应的变化因子可以相同,也可以不同。预设规则由控制器决定,控制器配置变化因子后通过配置面下发给各SF对应的SFF。
[0068] 具体的,所述控制器根据预设规则确定每个SF的变化因子时,包括以下三种可能的实施方式:
[0069] 第一种可能的实施方式中,所述控制器根据预设规则生成每个SF的变化因子,所述预设规则符合下述公式:
[0070]
[0071] 其中,m表示SF在业务链中所处的跳数位置,n表示该SF在所处跳数内的逻辑编号,m,n均为正整数,factormn表示所述业务链中第m跳内的逻辑编号为n的SF对应的变化因子,SfNumi表示第i跳的SF的数量。
[0072] 第二种可能的实施方式中,所述控制器根据预设规则生成每个SF的变化因子,所述预设规则符合下述公式:
[0073]
[0074] 其中,m表示SF在业务链中所处的跳数位置,n表示该SF在所处跳数内的逻辑编号,m,n均为正整数,factormn表示所述业务链中第m跳内的逻辑编号为n的SF对应的变化因子,[SfNumi]表示不小于第i跳的SF的数量且与第i跳的SF的数量最接近的2的指数次方。
[0075] 第三种可能的实施方式中,所述控制器根据预设规则生成每个SF的变化因子,包括:
[0076] 所述控制器预先为每个SF配置对应的变化因子,其中,相邻SF的变化因子的差值大于预设阈值。
[0077] 需要说明的是,为了准确区分不同的业务路径,需要对业务路径中的每一跳SF或每一跳SFG中的SF进行逻辑编号,可选的,针对每一跳SF或每一跳SFG中的SF进行逻辑编号时,需要重新编号,例如,每一跳SF或每一跳SFG中的SF都从0开始,依次递增,进行整数值的编号,这样,能够准确识别SF在相应跳数的逻辑位置。
[0078] 步骤22:所述控制器向业务链中第一跳SFF发送携带初始报文编号的探测报文,使所述第一跳SFF基于所述初始报文编号、所述第一跳SFF的本地SF对应的变化因子生成新的报文编号携带在探测报文中,并将所述携带了新的报文编号的探测报文转发至所述本地SF。
[0079] 由此可知,控制器向业务链下发的探测报文数量能够得到有效控制,下发的探测报文数量等于第一跳SFF的数量,远远小于业务链中的转发路径的数量,方案简单,易于实现。
[0080] 可选的,第一跳SFF将携带了新的报文编号的探测报文中转发至所述本地SF后,所述本地SF将所述探测报文发送至所述本地SF对应的SFF。
[0081] 步骤23:所述控制器接收目的SF或目的SF对应的SFF上报的携带目的报文编号的探测报文,并基于所述目的报文编号、所述预设规则得到所述探测报文的转发路径,完成全路径探测。
[0082] 可选的,控制器基于预设规则、初始报文编号、业务链的转发路径,预先计算得到目的报文编号与转发路径的映射关系,这样,控制器在接收到目的报文编号后,能够基于目的报文编号与转发路径的映射关系,得到该目的报文对应的转发路径,从而完成全路径探测。
[0083] 参阅图3所示,图3为本发明实施例提供的全路径探测方法流程图,所述方法由业务链中的SFF执行,具体流程如下所示:
[0084] 步骤31:业务链中的SFF接收探测报文,所述探测报文中携带有报文编号。
[0085] 步骤32:所述SFF确定所述探测报文的上一跳设备。
[0086] 步骤33:当所述探测报文的上一跳设备为所述SFF的本地SF时,将所述探测报文转发至下一跳SFF。
[0087] 步骤34:当所述探测报文的上一跳设备为控制器或另一SFF时,针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号,并将所述新的报文编号携带在探测报文中,将携带所述新的报文编号的探测报文转发至所述本地SF。
[0088] 可选的,所述SFF在检测到所述探测报文来自目的SF时,将所述探测报文发送至所述控制器。
[0089] 其中,步骤32中所述SFF所述探测报文的上一跳设备,包括两种情形:
[0090] 第一种情形,所述SFF在检测到所述探测报文来自上一跳SFF。
[0091] 第二种情形,所述SFF在检测到所述探测报文来自控制器。
[0092] 具体的,当所述探测报文的上一跳设备为控制器或另一SFF时,所述SFF针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号时,针对所述SFF的每个本地SF,计算所述探测报文中携带的报文编号与所述本地SF的变化因子之和,得到所述新的报文编号。报文编号的变更规则具体符合下述公式(3):
[0093] PacketId=PacketId+factor  (3)
[0094] 其中,PacketId表示报文编号,factor表示一个本地SF对应的变化因子。
[0095] 上述公式描述了SF的报文编号的变更规则:新的报文编号等于SFF接收到的原始报文编号加上该SF对应的变化因子。
[0096] 实施例一:
[0097] SF的预设规则采用上述第一种可能的实施方式中的公式(1):其中:m表示该SF在业务链中所处的跳数位置,第
一跳SF对应的m=1,第二跳SF对应的m=2,以此类推;n表示该SF在所处跳数内的逻辑编号,每一跳内的SF的逻辑编号从0开始,依次递增,m,n均为正整数。factormn表示业务链中第m跳内的逻辑编号为n的SF对应的变化因子,SfNumi表示第i跳的SF的数量, 表示从第1跳到第m-1跳的SF数量的乘积。
[0098] 公式(1)表示的SF的预设规则:该SF的变化因子值等于SF当前跳数之前的所有SF的数量乘积乘以该SF的逻辑编号。
[0099] 报文编号的变更规则采用上述公式(3):PacketId=PacketId+factor[0100] 其中,探测报文的初始报文编号记为BaseId,缺省情况下BaseId=0。
[0101] 公式(3)代表的报文编号的变更规则:该SF对应的新的报文编号值等于原始的报文编号值加上该SF对应的变化因子值。
[0102] 控制器还原探测报文转发路径时采用正向还原方式。具体的,控制器的正向还原规则如下:
[0103] 控制器根据BaseId、预设规则以及业务链拓扑等信息预先生成探测报文的每条转发路径对应的目的报文编号值,并在控制器本地存储转发路径与目的报文编号的对应关系,控制器收到上报的探测报文时,通过本地查找得到该探测报文中的目的报文编号对应的转发路径,完成业务链的全路径探测。
[0104] 图4所示为一个具体的业务链的全路径探测示例图。图4中的业务链共两跳,第一跳为SFG1,包含3个SFs,第二跳为SFG2,包含2个SFs,这些SF的逻辑编号n与对应的变化因子值已在图4中标出。
[0105] 具体的,各SF的变化因子由控制根据公式(1)生成。例如,第一跳中的SF1的变化因子Factor10=1*0=0,第一跳中的SF2的变化因子Factor11=1*1=1,第一跳中的SF3的变化因子Factor13=1*2=2,第二跳中的SF4的变化因子Factor20=3*0=0,第二跳中的SF5的变化因子Factor21=3*1=3。
[0106] 控制器首先向第一跳的SFF1和SFF2发送初始PacketId=0的探测报文,SFF1收到上述探测报文后,根据公式(3)更改PacketId,发给对应SF,SF1收到探测报文的PakcetId=0+0=0,SF2收到探测报文的PacketId=0+1=1,同理,SF3收到探测报文的PacketId=0+2=2;SF1、SF2、SF3处理完探测报文后将其发给对应的SFF,即SF1、SF2将处理后的探测报文发给SFF1,SF3将处理后的探测报文发给SFF2,SFF1和SFF2收到从对应的本地SF返回的探测报文后将其转发给下一跳SFF,即SFF3;SFF3收到从上一跳SFF发来的探测报文后向SFF3的本地SF(即SF4和SF5)转发,转发之前根据公式(3)更改PacketId,最终SF4收到三个探测报文,PacketId=0,1,2,SF5收到三个探测报文,PacketId=3,4,5。SF4与SF5为业务链中的目的SF,向控制器上报探测报文,可选的,SF4与SF5将探测报文发送给SFF3,由SFF3上报探测报文给控制器;控制器根据预先计算的转发路径与目的报文编号的映射表校验探测结果,映射表示例如表1所示。
[0107] 表1
[0108] 路径 PacketIdSF1==>SF4 0
SF2==>SF4 1
SF3==>SF4 2
SF1==>SF5 3
SF2==>SF5 4
SF3==>SF5 5
[0109] 例如,若控制器接收到SFF4上报的探测报文0,1,2,由表1可知,SF1==>SF4,SF2==>SF4,SF3==>SF4的转发路径均连通;若控制器接收到SFF5上报的探测报文3,4,5,由表1可知,SF1==>SF5,SF2==>SF5,SF3==>SF5的转发路径均连通;若控制器接收到SFF5上报的探测报文3,4,由表1可知,SF1==>SF5,SF2==>SF5的路径均连通,而SF3==>SF5的转发路径存在故障。实施例二:
[0110] 上述实施例一中的SF的预设规则采用上述第二种可能的实施方式中的公式(2):
[0111] 公式(2)中的元素定义同公式(1),其中[SfNumi]表示不小于SfNumi且与SfNumi最接近的2的指数次方。
[0112] 图5为一个具体的业务链的全路径探测示例图,图5中的业务链共两跳,第一跳为SFG1,包含3个SFs,第二跳为SFG2,包含2个SFs,这些SF的逻辑编号n与对应的变化因子值已在图5中标出。图5中SFG2中的SF5对应的变化因子值为4,具体的业务链全路径探测过程与实施例一相同,在此不再赘述。
[0113] 实施例三:
[0114] SF的预设规则采用上述第三种可能的实施方式,只要设置相邻SF的变化因子的间隔足够大,所设置的变化因子值须满足最后生成的报文编号唯一,图6为一个具体的业务链的全路径探测示例图,图6中的业务链共两跳,第一跳为SFG1,包含3个SFs,第二跳为SFG2,包含2个SFs,这些SF的逻辑编号n与对应的变化因子值已在图6中标出。其中,SF的变化因子取值没有遵循公式,只是保证最后的报文编号不重复,最后的报文编号为(110,120,130,210,220,230)。具体的业务链全路径探测过程与实施例一相同,在此不再赘述。
[0115] 此时,该业务链的探测报文的转发路径与报文编号的映射表如表2所示。
[0116] 表2
[0117] 路径 PacketIdSF1==>SF4 110
SF2==>SF4 120
SF3==>SF4 130
SF1==>SF5 210
SF2==>SF5 220
SF3==>SF5 230
[0118] 实施例四:
[0119] 若SF的转发因子按照公式(1)生成,此时控制器还原探测报文的转发路径时采用反向还原方式。
[0120] 控制器的反向还原方式如下:
[0121] 假定转发路径的总跳数为m,先对上报的探测报文中的目的报文编号做预处理,记km=PacketId–BaseId,PacketId为上报的目的报文编号,BaseId为控制器下发的初始报文编号,然后通过迭代计算出探测报文在第i跳经过的SF的逻辑编号ni,i=m,m-1,m-2,…,1,m为正整数。
[0122] ni=ki/AMi(i=m,m-1,m-2,…,1)
[0123] ki-1=ki%AMi(i=m,m-1,m-2,…,2)
[0124]
[0125] 以图4为例,探测路径共两跳,即m=2,且AM1=1,AM2=3,BaseId=0;当控制器收到PakectId=4的报文后,先计算出k2=4–0=4;随后迭代计算n与k:
[0126] n2=k2/AM2=4/3=1,
[0127] k1=k2%AM2=4%3=1,
[0128] n1=k1%AM1=1/1=1,
[0129] 由此可推断出PacketId=4的探测报文对应的路径为n1=1(即SF2),,n2=1(即SF5),此时PacketId=4对应的探测报文的转发路径为SF2==>SF5。
[0130] 如图7所示,本发明实施例提供一种全路径探测系统,包括:控制器和至少一个SFF,其中:
[0131] 所述控制器,用于根据预设规则确定每个业务功能SF的变化因子,并将所述SF对应的变化因子下发给所述SF对应的SFF,所述变化因子用于生成报文编号;向所述业务链中的第一跳SFF发送携带初始报文编号的探测报文,使所述第一跳SFF基于所述初始报文编号、所述第一跳SFF的本地SF对应的变化因子生成新的报文编号携带在探测报文中,并将所述携带了新的报文编号的探测报文转发至所述本地SF;接收目的SF或目的SF对应的SFF上报的携带目的报文编号的探测报文,并基于所述目的报文编号、所述预设规则得到所述探测报文的转发路径,完成全路径探测;
[0132] 每个SFF,用于接收探测报文,所述探测报文中携带有报文编号;确定所述探测报文的上一跳设备,当所述探测报文的上一跳设备为所述SFF的本地SF时,将所述探测报文转发至下一跳的SFF;当所述探测报文的上一跳设备为所述控制器或另一SFF时,针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号,并将所述新的报文编号携带在探测报文中,将携带所述新的报文编号的探测报文转发至所述本地SF。
[0133] 基于上述实施例,如图7所示,基于上述实施例提供的全路径探测方法,本发明实施例提供一种全路径探测装置700,所述装置用于执行上述方法实施例中的控制器的执行过程,如图7所示,该装置700包括处理单元701、发送单元702和接收单元703,其中:
[0134] 处理单元701,用于根据预设规则确定每个业务功能SF的变化因子,并将所述SF对应的变化因子下发给所述SF对应的SFF,所述变化因子用于生成报文编号;其中,SFF可以为图9所示的装置900或图10所示的设备1000。
[0135] 发送单元702,用于向业务链中的第一跳SFF发送携带初始报文编号的探测报文,使所述第一跳SFF基于所述初始报文编号、所述第一跳SFF的本地SF对应的变化因子生成新的报文编号携带在探测报文,并将所述携带了新的报文编号的探测报文转发至所述本地SF;
[0136] 接收单元703,用于接收目的SF或目的SF对应的SFF上报的携带目的报文编号的探测报文;
[0137] 所述处理单元701,用于基于所述目的报文编号、所述预设规则得到所述探测报文的转发路径,完成全路径探测。
[0138] 可选的,所述处理单元701根据预设规则确定每个SF的变化因子包括所述控制器根据预设规则生成每个SF的变化因子时,所述预设规则符合下述公式:
[0139]
[0140] 其中,factormn表示第m跳内的逻辑编号为n的SF对应的变化因子,m,n均为正整数,SfNumi表示第i跳的SF的数量。
[0141] 可选的,所述处理单元701根据预设规则确定每个SF的变化因子包括所述控制器根据预设规则生成每个SF的变化因子时,所述预设规则符合下述公式:
[0142]
[0143] 其中,factormn表示第m跳内的逻辑编号为n的SF对应的变化因子,m,n均为正整数,[SfNumi]表示不小于第i跳的SF的数量且与第i跳的SF的数量最接近的2的指数次方。
[0144] 可选的,所述处理单元701根据预设规则确定每个业务功能SF的变化因子时,具体用于:
[0145] 预先为每个SF配置对应的变化因子,其中,相邻SF的变化因子的差值大于预设阈值。
[0146] 需要说明的是,本发明实施例中的装置700的各个单元的功能实现以及交互方式可以进一步参照相关方法实施例的描述,在此不再赘述。
[0147] 基于同一发明构思,本发明实施例还提供一种全路径探测设备800,所述设备800用于执行上述方法实施例中的控制器的执行过程,如图8所示,该设备800包括处理器801、存储器802、发射器803和接收器804,执行本发明方案的程序代码保存在存储器802中,用于指令处理器801与发射器803或接收器804配合执行图2所示的全路径探测方法。
[0148] 本发明还可以通过对处理器进行设计编程,将图2所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图2所示的方法。如图9所示,基于上述实施例提供的全路径探测方法,本发明实施例提供一种全路径探测装置900,所述装置用于执行上述方法实施例中的SFF的执行过程,如图9所示,该装置900包括处理单元901和接收单元902,其中:
[0149] 接收单元902,用于接收探测报文,所述探测报文中携带有报文编号;
[0150] 处理单元901,用于确定所述探测报文的上一跳设备;
[0151] 当所述探测报文的上一跳设备为所述SFF的本地业务功能SF时,将所述探测报文转发至下一跳SFF;
[0152] 当所述探测报文的上一跳设备为控制器或另一SFF时,针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号,并将所述新的报文编号携带在探测报文中,将携带所述新的报文编号的探测报文转发至所述本地SF。
[0153] 其中,控制器可以为图7所示的装置700或图8所示的设备800。
[0154] 可选的,所述装置还包括:
[0155] 发送单元903,用于当所述探测报文的上一跳设备为目的SF时,将所述探测报文发送至所述控制器。
[0156] 可选的,所述处理单元901针对所述SFF的每个本地SF,基于所述报文编号、以及所述本地SF的变化因子生成新的报文编号时,具体用于:
[0157] 针对所述SFF的每个本地SF,计算所述报文编号与所述本地SF的变化因子之和,得到所述新的报文编号。
[0158] 本发明实施例中的装置900的各个单元的功能实现以及交互方式可以进一步参照相关方法实施例的描述,在此不再赘述。
[0159] 应理解以上装置700和900中的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。例如,以上各个单元可以为单独设立的处理元件,也可以集成在控制器的某一个芯片中实现,此外,也可以以程序代码的形式存储于控制器的存储元件中,由控制器的某一个处理元件调用并执行以上各个单元的功能。此外各个单元可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。该处理元件可以是通用处理器,例如中央处理器(英文:central processing unit,简称:CPU),还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(英文:application-specific integrated circuit,简称:ASIC),或,一个或多个微处理器(英文:digital signal processor,简称:DSP),或,一个或者多个现场可编程门阵列(英文:
field-programmable gate array,简称:FPGA)等。基于同一发明构思,本发明实施例还提供一种全路径探测设备1000,所述设备1000用于执行上述方法实施例中的SFF的执行过程,如图10所示,该设备1000包括处理器1001、存储器1002、接收器1003和发射器1004,执行本发明方案的程序代码保存在存储器1002中,用于指令处理器1001与所述接收器1003和发射器1004配合执行图3所示的全路径探测方法
[0160] 本发明还可以通过对处理器进行设计编程,将图3所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图3所示的方法。可以理解的是,本实施例的设备1000可用于实现上述方法实施例中涉及SFF的所有功能,其具体实现过程可以参照上述方法实施例SFF执行方法的相关描述,此处不再赘述。
[0161] 可以理解的是,本发明实施例上述设备800和设备1000中涉及的处理器可以是一个CPU,DSP,ASIC,或一个或多个用于控制本发明方案程序执行的集成电路。计算机系统中包括的一个或多个存储器,可以是只读存储器(英文:read-only memory,简称ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(英文:random access memory,简称:RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是磁盘存储器。这些存储器通过总线与处理器相连接;上述接收器和发射器可以通过收发器实现其功能,所述收发器可以是能够实现收发功能的实体模块,以便与其他设备通信。上述存储器可以是RAM,保存有执行本发明方案的程序。
[0162] 这些存储器、发射器和接收器可以通过总线与处理器相连接,或者也可以通过专门的连接线分别与处理器连接。
[0163] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0164] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。