基于IOAM报文封装的网络设备智能运维方法及系统转让专利

申请号 : CN202010402729.7

文献号 : CN113676364B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张小虎王索

申请人 : 烽火通信科技股份有限公司

摘要 :

本发明公开了一种基于IOAM报文封装的网络设备智能运维方法及系统,涉及IOAM领域。该方法包括以下步骤:在源站点或中继站点,在MPLS业务报文中封装熵标签层,用于标识IOAM功能开启;每经过一站点,在MPLS业务报文中添加对应的IOAM元数据层,封装被监控业务经过该站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率;根据所述IOAM元数据层计算该站点时延、抖动。本发明能精确计算业务经过每个站点的时延、抖动及丢包,在网络繁忙时避免数据失真,有效提高故障定位精度和问题排查效率。

权利要求 :

1.一种基于IOAM报文封装的网络设备智能运维方法,其特征在于,包括以下步骤:在源站点或中继站点,在MPLS业务报文中封装熵标签层,用于标识IOAM功能开启;

每经过一站点,在MPLS业务报文中添加对应的IOAM元数据层,封装被监控业务经过该站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率;

根据所述IOAM元数据层计算该站点时延、抖动;

根据所述IOAM元数据层计算该站点时延、抖动的公式为:该站点时延=当前队列长度/出端口速率+设备转发固定时延;

该站点抖动=前后两个数据包的当前队列长度差值/出端口速率。

2.如权利要求1所述的方法,其特征在于:

在源站点或中继站点,在MPLS业务报文中封装熵标签层,包括以下步骤:在源站点或中继站点,在原始MPLS报文头后面的两层MPLS报文头中,封装熵标签编号和IOAM流编号。

3.如权利要求2所述的方法,其特征在于:

每经过一站点,在MPLS业务报文中添加对应的IOAM元数据层,包括以下步骤:每经过一站点,在熵标签层与Payload之间的三层MPLS报文头中,基于IOAM流编号封装被监控业务经过该站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率。

4.如权利要求1所述的方法,其特征在于:

根据所述IOAM元数据层计算该站点时延、抖动之后,还包括以下步骤:在宿站点或者中继站点,剥离MPLS业务报文中的熵标签层和IOAM元数据层。

5.如权利要求1所述的方法,其特征在于:

根据所述IOAM元数据层计算该站点时延、抖动之后,还包括以下步骤:预设单站点时延、抖动、丢包的门限值,若单站点时延、抖动、丢包均小于门限值,则认为满足预期;否则认为不满足预期,根据预设的采样比,对不满足预期的单站点时延、抖动、丢包计数进行筛选采样,封装进上送报文,上送至管控设备。

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

所述上送报文中封装有IOAM流编号、被监控业务不满足预期的站点编号、采样周期内的最大时延、最大抖动和丢包总数。

7.一种基于IOAM报文封装的网络设备智能运维系统,其特征在于,布置在每个站点内,该系统包括:熵标签层封装模块,用于:本站点为源站点或中继站点时,在MPLS业务报文中封装熵标签层,用于标识IOAM功能开启;

IOAM元数据层封装模块,用于:在MPLS业务报文中添加对应的IOAM元数据层,封装被监控业务经过本站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率;

计算模块,用于:根据所述IOAM元数据层计算本站点时延、抖动;

计算模块根据所述IOAM元数据层计算本站点时延、抖动的公式为:本站点时延=当前队列长度/出端口速率+设备转发固定时延;本站点抖动=前后两个数据包的当前队列长度差值/出端口速率。

8.如权利要求7所述的系统,其特征在于:

熵标签层封装模块具体用于:本站点为源站点或中继站点时,熵标签层封装模块在原始MPLS报文头后面的两层MPLS报文头中,封装熵标签编号和IOAM流编号。

9.如权利要求8所述的系统,其特征在于:

IOAM元数据层封装模块在MPLS业务报文中添加对应的IOAM元数据层,包括以下步骤:IOAM元数据层封装模块在熵标签层与Payload之间的三层MPLS报文头中,基于IOAM流编号封装被监控业务经过本站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率。

10.如权利要求7所述的系统,其特征在于:还包括:剥离模块,用于:计算模块根据所述IOAM元数据层计算本站点时延、抖动之后,本站点为宿站点或者中继站点时,剥离MPLS业务报文中的熵标签层和IOAM元数据层。

11.如权利要求7所述的系统,其特征在于:还包括:上送模块,用于:预设单站点时延、抖动、丢包的门限值,计算模块根据所述IOAM元数据层计算本站点时延、抖动之后,若单站点时延、抖动、丢包均小于门限值,则认为满足预期;

否则认为不满足预期,上送模块根据预设的采样比,对不满足预期的单站点时延、抖动、丢包计数进行筛选采样,封装进上送报文,上送至管控设备。

12.如权利要求11所述的系统,其特征在于:

所述上送报文中封装有IOAM流编号、被监控业务不满足预期的站点编号、采样周期内的最大时延、最大抖动和丢包总数。

说明书 :

基于IOAM报文封装的网络设备智能运维方法及系统

技术领域

[0001] 本发明涉及IOAM领域,具体是涉及一种基于IOAM报文封装的网络设备智能运维方法及系统。

背景技术

[0002] 随着网络的快速普及和相关应用的日益深入,各种业务已广泛部署,网络管理变得越来越复杂,对网络监控也提出了更高的性能及精度要求。此外,4G、5G通信标准的飞速发展,网络传输能力的不断增强,SDN(Software Defined Network)的持续演进,对网络质量的要求也已经达到一个新的高度。网络传输过程中存在很多的微突发现象,此时如果报文超过设备转发能力将被丢弃,报文有突发导致时延抖动过大,导致通信双方重传报文,进而影响通信质量。微突发流量越多,网络通信质量越差,因此网管需要及时检测到微突发现象,并且快速进行调整。此时,需要提供快速、高效的网络服务,便于及时监控网络的性能状况。
[0003] 在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:5G设备对时延抖动,丢包都比较敏感,除了丢包之外时延抖动没有好的检测方法,虽然现在OAM(Operation Administration andMaintenance,操作、管理、维护)中的LM(Frame Loss Measurement,帧丢失测量)和DM(Packet Delay And Packet Delay Measurement,包时延和包时延变化测量)可以检测,但是这些OAM报文和业务报文往往走的不是相同的路径,并且OAM报文是高优先级报文,一旦端口出现了拥塞,业务丢包了但是OAM也会优先得到保证,所以检测出来的数据不能反映业务的真实情况。现有的IOAM技术每个周期只上报一个D bit的报文,难以精确计算某些站点的抖动。因此,工程上因为时延抖动引起的数据失真问题,导致故障定位精度低,问题排查效率低。

发明内容

[0004] 本发明的目的是为了克服上述背景技术的不足,提供一种基于IOAM报文封装的网络设备智能运维方法及系统,能够精确计算业务经过每个站点的时延、抖动及丢包,在网络繁忙时避免数据失真,有效提高故障定位精度和问题排查效率。
[0005] 第一方面,提供一种基于IOAM报文封装的网络设备智能运维方法,包括以下步骤:
[0006] 在源站点或中继站点,在MPLS业务报文中封装熵标签层,用于标识IOAM功能开启;
[0007] 每经过一站点,在MPLS业务报文中添加对应的IOAM元数据层,封装被监控业务经过该站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率;
[0008] 根据所述IOAM元数据层计算该站点时延、抖动。
[0009] 根据第一方面,在第一方面的第一种可能的实现方式中,根据所述IOAM元数据层计算该站点时延、抖动的公式为:
[0010] 该站点时延=当前队列长度/出端口速率+设备转发固定时延;
[0011] 该站点抖动=前后两个数据包的当前队列长度差值/出端口速率。
[0012] 根据第一方面,在第一方面的第二种可能的实现方式中,在源站点或中继站点,在MPLS业务报文中封装熵标签层,包括以下步骤:
[0013] 在源站点或中继站点,在原始MPLS报文头后面的两层MPLS报文头中,封装熵标签编号和IOAM流编号。
[0014] 根据第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,每经过一站点,在MPLS业务报文中添加对应的IOAM元数据层,包括以下步骤:
[0015] 每经过一站点,在熵标签层与Payload之间的三层MPLS报文头中,基于IOAM流编号封装被监控业务经过该站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率。
[0016] 根据第一方面,在第一方面的第四种可能的实现方式中,根据所述IOAM元数据层计算该站点时延、抖动之后,还包括以下步骤:
[0017] 在宿站点或者中继站点,剥离MPLS业务报文中的熵标签层和IOAM元数据层。
[0018] 根据第一方面,在第一方面的第五种可能的实现方式中,根据所述IOAM元数据层计算该站点时延、抖动之后,还包括以下步骤:
[0019] 预设单站点时延、抖动、丢包的门限值,若单站点时延、抖动、丢包均小于门限值,则认为满足预期;否则认为不满足预期,根据预设的采样比,对不满足预期的单站点时延、抖动、丢包计数进行筛选采样,封装进上送报文,上送至管控设备。
[0020] 根据第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述上送报文中封装有IOAM流编号、被监控业务不满足预期的站点编号、采样周期内的最大时延、最大抖动和丢包总数。
[0021] 第二方面,提供一种基于IOAM报文封装的网络设备智能运维系统,布置在每个站点内,该系统包括:
[0022] 熵标签层封装模块,用于:本站点为源站点或中继站点时,在MPLS业务报文中封装熵标签层,用于标识IOAM功能开启;
[0023] IOAM元数据层封装模块,用于:在MPLS业务报文中添加对应的IOAM元数据层,封装被监控业务经过本站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率;
[0024] 计算模块,用于:根据所述IOAM元数据层计算本站点时延、抖动。
[0025] 根据第二方面,在第二方面的第一种可能的实现方式中,计算模块根据所述IOAM元数据层计算本站点时延、抖动的公式为:本站点时延=当前队列长度/出端口速率+设备转发固定时延;本站点抖动=前后两个数据包的当前队列长度差值/出端口速率。
[0026] 根据第二方面,在第二方面的第二种可能的实现方式中,熵标签层封装模块具体用于:本站点为源站点或中继站点时,熵标签层封装模块在原始MPLS报文头后面的两层MPLS报文头中,封装熵标签编号和IOAM流编号。
[0027] 根据第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,IOAM元数据层封装模块在MPLS业务报文中添加对应的IOAM元数据层,包括以下步骤:
[0028] IOAM元数据层封装模块在熵标签层与Payload之间的三层MPLS报文头中,基于IOAM流编号封装被监控业务经过本站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率。
[0029] 根据第二方面,在第二方面的第四种可能的实现方式中,所述系统还包括:剥离模块,用于:计算模块根据所述IOAM元数据层计算本站点时延、抖动之后,本站点为宿站点或者中继站点时,剥离MPLS业务报文中的熵标签层和IOAM元数据层。
[0030] 根据第二方面,在第二方面的第五种可能的实现方式中,所述系统还包括:上送模块,用于:预设单站点时延、抖动、丢包的门限值,计算模块根据所述IOAM元数据层计算本站点时延、抖动之后,若单站点时延、抖动、丢包均小于门限值,则认为满足预期;否则认为不满足预期,上送模块根据预设的采样比,对不满足预期的单站点时延、抖动、丢包计数进行筛选采样,封装进上送报文,上送至管控设备。
[0031] 根据第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述上送报文中封装有IOAM流编号、被监控业务不满足预期的站点编号、采样周期内的最大时延、最大抖动和丢包总数。
[0032] 与现有技术相比,本发明的优点如下:
[0033] 本发明在源站点或中继站点,在MPLS业务报文中封装熵标签层,用于标识IOAM功能开启;每经过一站点,在MPLS业务报文中添加对应的IOAM元数据层,封装被监控业务经过该站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率;根据所述IOAM元数据层计算该站点时延、抖动。本发明能够精确计算业务经过每个站点的时延、抖动及丢包,在网络繁忙时避免数据失真,有效提高故障定位精度和问题排查效率。

附图说明

[0034] 图1为传统MPLS业务报文的格式示意图;
[0035] 图2为本发明实施例中基于IOAM报文封装的网络设备智能运维方法的简化流程图;
[0036] 图3为本发明实施例中带内OAM报文的封装格式示意图;
[0037] 图4为本发明实施例中不同网络站点的不同处理示意图(以所有站点指标均不满足预期、且未配置采样比为例);
[0038] 图5为本发明实施例中上送给管控设备的报文封装格式示意图;
[0039] 图6为本发明实施例中基于IOAM报文封装的网络设备智能运维方法的详细流程图。

具体实施方式

[0040] 现在将详细参照本发明的具体实施例,在附图中例示了本发明的例子。尽管将结合具体实施例描述本发明,但将理解,不是想要将本发明限于所述的实施例。相反,想要覆盖由所附权利要求限定的在本发明的精神和范围内包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。
[0041] 为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。
[0042] 注意:接下来要介绍的示例仅是一个具体的例子,而不作为限制本发明的实施例必须为如下具体的步骤、数值、条件、数据、顺序等等。本领域技术人员可以通过阅读本说明书来运用本发明的构思来构造本说明书中未提到的更多实施例。
[0043] 本发明实施例中网络设备智能运维报文的封装格式不需要芯片提供额外的封装能力,修改图1中所示的现有的MPLS(Multi‑Protocol Label Switching,多协议标签交换)报文的封装格式,实现携带带内OAM需要的信息。
[0044] 参见图1所示,现有的MPLS报文包括以下4个部分:
[0045] MPLS Label为标签值,长度为20bit,用来标识不同的MPLS业务;
[0046] TC为预留位,长度为3bit,现在多用于优先级调度;
[0047] B为标志位,占1bit,值为1时表示为最底层标签;
[0048] TTL长度为生存时间,占8bit,用于防止环路。
[0049] 参见图2所示,本发明实施例提供一种用于网络设备智能运维的IOAM(In‑band Operation Administration and Maintenance,带内操作管理维护)报文封装方法,包括以下步骤:
[0050] 步骤101、在源站点或中继站点,在MPLS业务报文中封装熵标签层,用于标识IOAM功能开启;
[0051] 步骤102、每经过一站点,在MPLS业务报文中添加对应的IOAM元数据层,封装被监控业务经过该站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率;
[0052] 步骤103、根据所述IOAM元数据层计算该站点时延、抖动。
[0053] 作为优选的实施方式,根据所述IOAM元数据层计算该站点时延、抖动的公式为:
[0054] 该站点时延=当前队列长度/出端口速率+设备转发固定时延;
[0055] 该站点抖动=前后两个数据包的当前队列长度差值/出端口速率。
[0056] 作为优选的实施方式,在源站点或中继站点,在MPLS业务报文中封装熵标签层,包括以下步骤:
[0057] 在源站点或中继站点,在原始MPLS报文头后面的两层MPLS报文头中,封装熵标签编号和IOAM流编号。
[0058] 作为优选的实施方式,每经过一站点,在MPLS业务报文中添加对应的IOAM元数据层,包括以下步骤:
[0059] 每经过一站点,在熵标签层与Payload之间的三层MPLS报文头中,基于IOAM流编号封装被监控业务经过该站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率。
[0060] 参见图3所示,本发明实施例封装的IOAM报文从最外层到最内层依次为:MPLS层报文头、Entropy Label(熵标签)层、IOAM metadata(带内操作管理维护元数据)层、Payload(用户净荷)。
[0061] 本发明实施例封装的IOAM报文的最外层是MPLS层报文头,并未做任何修改,就是传统意义上的MPLS报文头;IOAM报文的最内层是Payload,即报文内容。
[0062] 在原始MPLS报文头与Payload之间,添加本发明实施例所提供的封装信息,具体包括以下步骤:
[0063] 首先,在源站点或中继站点,封装Entropy Label(熵标签)层,用于标识IOAM功能开启。
[0064] Entropy Label层通过修改原始MPLS报文头后面的两层MPLS报文头而成,包括ELI(Entropy Label ID,熵标签编号)和IOAM Flow ID(In‑band Operation Administration and Maintenance Flow ID,带内操作管理维护流编号)。
[0065] ELI是修改原始MPLS报文头后面的一层MPLS报头中的MPLSLabel而成,用于区分带内OAM;ELI等于7(1‑13中某个全网约定的值);同时,第二层的TTL等于1,则表示本发明实施例所述的带内OAM。
[0066] IOAM Flow ID是通过修改原始MPLS报文头后面的第二层MPLS报头的MPLS Label而成,用于区分拟检测业务流,且IOAM Flow ID为全局唯一。
[0067] 其次,每经过一站点,在MPLS业务报文中添加对应的IOAM metadata(带内操作管理维护元数据)层。
[0068] IOAM metadata层通过修改Entropy Label层之后的三层MPLS报头而成,基于IOAM流编号封装被监控业务经过该站点的Current Queue Length(当前队列长度)、Fixed Delay(设备转发固定时延)、Drop Counter(丢包计数)、Egress Speed(出端口速率)。
[0069] 参见图3所示,Current Queue Length占外层MPLS Label的前18bit,表示此站点当前所用队列的长度。
[0070] Fixed Delay占外层MPLS Label的后2bit和TC的3bit以及TTL的8bit,一共16bit,表示设备在不拥塞情况下转发的固定时延,其值的大小取决于设备硬件的转发流程,为固定值。
[0071] 由于要保持MPLS报头栈底标志位B1所在的bit不变,故将Fixed Delay分为Fixed Delay H5(固定时延高5位)和Fixed Delay L8(固定时延低8位)。
[0072] 同理,Drop Counter占中层MPLS报头中MPLS Label、TC、TTL共31bit,被分为Drop Counter H23和Drop Counter L8,即高23位和低8位。
[0073] Egress Speed占内层MPLS报头中MPLS Label、TC、TTL共31bit,被分为Egress Speed H23和Egress Speed L8,即高23位和低8位,表示所监控业务的出端口速率,用于计算队列报文发出所需的时间。此外,若B3为1,则代表此IOAM metadata为栈底,即最后封装的一层IOAM metadata。
[0074] 作为优选的实施方式,根据所述IOAM元数据层计算该站点时延、抖动之后,还包括以下步骤:
[0075] 在宿站点或者中继站点,剥离MPLS业务报文中的熵标签层和IOAM元数据层。
[0076] 中继站点或宿站点的转发芯片会记录每条开启IOAM流的上一次IOAM metadata数据,当下一个报文到中继站点或宿站点时,会将熵标签层和IOAM元数据层剥离。
[0077] 参见图4所示,以所有站点指标均不满足预期、且未配置采样比为例,在宿站点或者中继站点,经过采集器逐层剥离MPLS业务报文中的熵标签层和IOAM元数据层,依次得到的就是第一个、第二个……第N个站点的信息。
[0078] 作为优选的实施方式,根据所述IOAM元数据层计算该站点时延、抖动之后,还包括以下步骤:
[0079] 预设单站点时延、抖动、丢包的门限值,若单站点时延、抖动、丢包均小于门限值,则认为满足预期;否则认为不满足预期,根据预设的采样比,对不满足预期的单站点时延、抖动、丢包计数进行筛选采样,封装进上送报文,上送至管控设备。
[0080] 作为优选的实施方式,所述上送报文中封装有IOAM流编号、被监控业务不满足预期的站点编号、采样周期内的最大时延、最大抖动和丢包总数。
[0081] 为避免经过站点较多,IOAM metadata数量过多,占用业务带宽比较多,本发明实施例通过管控系统预先设置单站点时延、抖动、丢包的门限值,再根据预设采样比来采样上送报文。
[0082] 若单站点时延、抖动、丢包这三项指标都小于门限值,则认为满足预期;若存在数据大于门限值,则认为不满足预期。
[0083] 设置比较合理的门限值过滤掉满足预期的站点的时延、抖动、丢包数据,只将不满足预期,需要调整网络拓扑的站点线路的站点编号、采样周期内的最大时延、最大抖动和丢包总数上送管控系统;设置采样比,可以大幅减少单条流同一站点多次上送的报文数量。
[0084] 参见图5所示,本发明实施例中用于上送管控系统的报文中封装有:
[0085] IOAM Flow ID(IOAM流编号),16bit,全局唯一的IOAM流编号,由源站点和中继站点分配,用于区分不同的数据流。
[0086] Sending Data(上送数据),用于:区分同一数据流不同站点,并上送采样到的数据,Sending Data封装有被监控业务不满足预期的全局唯一的站点编号,采样到的周期内的最大时延、最大抖动和丢包总数,具体包括:
[0087] Site ID(站点编号),16bit,全局唯一的站点编号,用于区分不同的站点,上送时与IOAM Flow ID一块上送至管控系统,均属于管控需要的基本信息。
[0088] Drop Count(丢包计数),64bit,同一条流两次采样之间所有不满足预期的丢包计数的总和。
[0089] Delay(时延),16bit,取同一条流两次采样之间最大的单站点时延。
[0090] Jitter(抖动),16bit,取同一条流两次采样之间最大的单站点抖动。
[0091] 最大的单站点时延、抖动是站点底层转发芯片存储的数据,每当新的包过来,将新的单站点时延、抖动与之前存储的最大的单站点时延、抖动比较,并取两者中较大值作为新的最大的单站点时延、抖动。
[0092] 丢包总数是底层转发芯片存储的不满足预期的丢包总数,每当新的包过来,将新的丢包计数与之前的丢包总数求和,成为新的丢包总数。
[0093] 预先设置采样比,避免重复多次上送同一数据流同一站点信息,而上送的数据为IOAM Flow ID、Site ID、Drop Count、Delay、Jitter,其中IOAM Flow ID和Site ID为报文基础信息,Drop Count、Delay、Jitter为三种指标,Drop Count取两次上送过程之间的所有丢包计数之和,Delay和Jitter则是取两次上送过程之间的最大时延和最大抖动。
[0094] 本发明实施例利用芯片计算能力设置采样上送,不同于传统的采样,本发明实施例的采样,对于丢包会累加采样周期内的所有丢包数,对于时延和Jitter上送采样周期内的最大值。采样上送的单站点时延、抖动为同一条流两次采样周期之间的最大值,而单站点丢包则为同一条流两次采样周期之间的不满足预期丢包计数之和。
[0095] 以检测1条256Mbps流量的流为例,假设每秒都有128k(即131072)个包。网络路径上有10个站点,其中有源站点、中继站点、宿站点各1个,中继站点为第5个站点,第4个站点出现异常,时延为200us,其他各站点的时延都为50us。
[0096] 第一种处理方式为:中继站点和宿站点将带IOAM封装格式的业务的IOAM FLOW ID和该业务经过所有站点的编号、时延、抖动、丢包总数上送到管控系统,则所需带宽为中继站点所需带宽和宿站点所需带宽之和,根据下面公式可以算出:
[0097] 上送站点所需带宽=(IOAM Flow ID比特数×剥离次数+所有上送站点数量×Sending Data比特数)×(每秒的包数)=(16bit×2+10×112bit)×(131072/1s)=150994944bps
[0098] 本发明实施例采用第二种处理方式:采取门限值为100us、采样比为100:1,报文到达中继站点时,可以判断出第4个站点的时延为200us,大于100us,只上送第4个节点的IOAM Flow ID和Sending Data。
[0099] 上送站点所需带宽=((IOAM Flow ID比特数+异常站点数量×Sending Data比特数)×(每秒的包数))/采样比=((16bit+1×112bit)×(131072/1s)/(100/1)=167772.16bps。
[0100] 报文到达宿站点时,所有站点的时延均小于100us,不会上送数据给管控系统,并不占用上送带宽,故此模式下该所需上送带宽只有167772.16bps。
[0101] 经过对比可知,第二种处理方式所需要的带宽(167772.16bps)远小于第一种处理方式所需的带宽(150994944bps)。
[0102] 实际网络中,各个站点之间的时延情况会不一样,流的数量和流量的大小也会比上诉案例复杂得多。通过多个中继站点来处理带IOAM封装格式的报文,采取第二种处理方式所占用的上送带宽比第一种处理方式所占用的上送带宽少很多。通过预设门限值和采样比的方法,不仅能降低所需的上送带宽,还大幅减少了上送报文的数量,降低了采集器的容量和性能要求,这也意味着能增强设备使用有效率,一定程度上也降低了成本。
[0103] 参见图6所示,本发明实施例中基于IOAM报文封装的网络设备智能运维方法,具体包括以下步骤:
[0104] 步骤S1:在设备侧和网管侧都配置了Telemetry(远距离测量)和门限值、采样比的情况下,在源站点或中继站点,根据流分类识别要进行监控的业务流,封装Entropy Label ID(熵标签编号)和全局唯一的IOAM Flow ID,其中,Entropy Label ID可以配置为1‑13任一数字,在源站点或中继站点的转发芯片下发一张IOAM Flow ID表项,包含每条流的IOAM Flow ID。
[0105] 步骤S2:基于全局唯一的IOAM Flow ID进行IOAM metadata数据封装。而IOAM metadata数据包含丢包计数、当前队列长度、设备转发固定时延、出端口速率,并将报文IOAM metadata中的B3位设置成1。
[0106] 步骤S3:将封装后的携带IOAM信息的业务报文传给下一个站点。
[0107] 步骤S4:由于Ingress为第一个站点,而流程执行到此时已经经过了一个站点了(原因见步骤S3),故此节点不可能是Ingress站点。此时,判断本站点是否为transit(传输)站点,若是,则转到步骤S5;若本节点不是transit节点,则本节点只能为IOAM Relay节点或者Egress节点,这两种节点都要剥离IOAM数据,转到步骤S6。
[0108] 步骤S5:对IOAM Flow ID之后的每96bits(即1个IOAMmetadata的长度)进行检测,如果检测到其倒数第9bit为1,即B3为1,表明此IOAM metadata是最后一层封装的IOAM metadata,即前一个站点的IOAM metadata,将其倒数第9bit(B3)改为0,然后返回到步骤S2;
[0109] 步骤S6:剥离前面封装的MPLS业务报文中的熵标签层和IOAM元数据层,然后结合记录的前一个报文的各站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率,计算出单站点的时延、抖动:单站点时延=当前队列长度/出端口速率+设备转发固定时延;单站点抖动=前后两个数据包的当前队列长度差值/出端口速率。
[0110] 然后,依次比较单站点时延、抖动、丢包与预设门限值的大小,若此三类值均小于门限值,则不作处理;若存在一种或几种值大于门限值,则查底层Flow表项是否已经存储该不满足预期站点的Sending Data。若没有该站点的信息,则创建一个Sending Data,将该站点的Site ID、Drop Count、Delay、Jitter存入其中;若存在该站点的信息,则将该站点Sending Data中的Delay、Jitter与IOAM metadata中的时延、抖动分别比较,并取其较大值存入Sending Data中,将该站点Sending Data中的Drop Count加上IOAM metadata中的丢包计数存入Sending Data中。
[0111] 最后,将当前报文IOAM metadat中每个站点的当前队列长度和出端口速率替换上一个报文的数据进行记录,转到步骤S7。
[0112] 步骤S7:判断本站点是否为Egress(出口)站点,若是,转到步骤S9;若不是,则该节点为IOAM Relay节点,转到步骤S8。
[0113] 步骤S8:重新封装Entropy Label ID和IOAM Flow ID,然后返回到步骤S2。
[0114] 步骤S9:还原Payload数据,流程结束。
[0115] 本发明实施例提供了一种带内OAM报文封装技术,在配置使能的情况下,将逐站添加该站的时延抖动及丢包信息到被监控的业务报文中,在宿站点或者中继站点,将添加的这些信息剥离,并筛选采样上送至对应的采集器,分析器通过分析采集的数据进行决策。
[0116] 当流量出现无法容忍的丢包或者时延抖动时,将对业务的网络路径进行优化,此时分析器将决策结果发给控制器,由控制器调整设备的配置,进而调整流量转发路径。
[0117] 本发明实施例为随路检测,即在原始业务报文上添加IOAMmetadata检测信息,并不改变业务报文的路径,以达到收集到的信息和业务报文路径相同;而使用当前队列长度来计算时延、及使用前后报文的当前队列长度差值来计算抖动,利用一个数据完成两种指标的检测效率更高,且相对OAM采样的记录数据更精确;增加中继站点上送,可以防止添加数据过多导致链路负载加重。
[0118] 本发明实施例能够精确记录业务经过每个站点的时延,抖动及丢包情况,将这些信息汇总给采集器,这些信息经过分析器的分析后可以通过控制器做出网络的拓扑调整,为智能运维提供基础,同时也可以在网络中出现故障时主动开启,迅速的定位丢包站点或者时延抖动过大的站点,从及时解决工程问题。
[0119] 本发明实施例还提供一种基于IOAM报文封装的网络设备智能运维系统,布置在每个站点内,该系统包括:
[0120] 熵标签层封装模块,用于:本站点为源站点或中继站点时,在MPLS业务报文中封装熵标签层,用于标识IOAM功能开启;
[0121] IOAM元数据层封装模块,用于:在MPLS业务报文中添加对应的IOAM元数据层,封装被监控业务经过本站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率;
[0122] 计算模块,用于:根据所述IOAM元数据层计算本站点时延、抖动。
[0123] 作为优选的实施方式,计算模块根据所述IOAM元数据层计算本站点时延、抖动的公式为:本站点时延=当前队列长度/出端口速率+设备转发固定时延;本站点抖动=前后两个数据包的当前队列长度差值/出端口速率。
[0124] 作为优选的实施方式,熵标签层封装模块具体用于:本站点为源站点或中继站点时,熵标签层封装模块在原始MPLS报文头后面的两层MPLS报文头中,封装熵标签编号和IOAM流编号。
[0125] 作为优选的实施方式,IOAM元数据层封装模块在MPLS业务报文中添加对应的IOAM元数据层,包括以下步骤:
[0126] IOAM元数据层封装模块在熵标签层与Payload之间的三层MPLS报文头中,基于IOAM流编号封装被监控业务经过本站点的当前队列长度、设备转发固定时延、丢包计数和出端口速率。
[0127] 作为优选的实施方式,所述系统还包括:
[0128] 剥离模块,用于:计算模块根据所述IOAM元数据层计算本站点时延、抖动之后,本站点为宿站点或者中继站点时,剥离MPLS业务报文中的熵标签层和IOAM元数据层。
[0129] 作为优选的实施方式,所述系统还包括:
[0130] 上送模块,用于:预设单站点时延、抖动、丢包的门限值,计算模块根据所述IOAM元数据层计算本站点时延、抖动之后,若单站点时延、抖动、丢包均小于门限值,则认为满足预期;否则认为不满足预期,上送模块根据预设的采样比,对不满足预期的单站点时延、抖动、丢包计数进行筛选采样,封装进上送报文,上送至管控设备。
[0131] 作为优选的实施方式,所述上送报文中封装有IOAM流编号、被监控业务不满足预期的站点编号、采样周期内的最大时延、最大抖动和丢包总数。
[0132] 本发明实施例并不会将所有采集的数据上送,而是先初步筛选出不符合预期的数据,再根据预先设置的采样比进一步减少上送报文流量,大幅减轻了采集器的负载。采样上送的单站点时延、抖动为同一条流两次采样周期之间的最大值,采样上送的单站点丢包计数为同一条流两次采样周期之间的不满足预期丢包计数之和。
[0133] 另外,若采集器的性能有限,可以通过配置采样比来上送采集的数据。例如设置每次采样6个报文,就可以得到6组时延数据和5组抖动数据(前后两个数据包队列长度差值/出端口速率),显著提高了智能运维的效率。
[0134] 基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的所有方法步骤或部分方法步骤。
[0135] 本发明实现上述方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0136] 基于同一发明构思,本申请实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法中的所有方法步骤或部分方法步骤。
[0137] 所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
[0138] 存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(例如声音播放功能、图像播放功能等);存储数据区可存储根据手机的使用所创建的数据(例如音频数据、视频数据等)。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0139] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、服务器或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0140] 本发明是参照根据本发明实施例的方法、设备(系统)、服务器和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0141] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0142] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0143] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。