一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于网络安全设备的异常慢速流程检测方法及装置与流程

2022-04-30 15:16:43 来源:中国专利 TAG:


1.本发明涉及计算机网络技术领域,尤其涉及一种用于网络安全设备的异常慢速流程检测方法及装置。


背景技术:

2.随着计算机网络技术的发展,网络业务越来越丰富,网络安全设备需要处理大量的报文。当某个报文的业务处理走到一个异常慢速流程时,因业务处理消耗时间过久,可能会导致其它报文来不及处理。当来不及处理的报文数量超过芯片缓存能力后,就会出现丢失报文的现象,影响客户网络。因此需要快速发现异常慢速流程,才能有效避免报文处理不及时的情况,进而保证客户网络的正常运行。
3.现有技术是通过提前测试的方法来发现异常慢速流程,在测试环境开启各种功能模块后回放流量,观察流量报文的性能值和报文转发延时,并使用perf工具分析各流程函数的占比,对于不符合预期的函数占比进行代码优化,从而避免发生报文异常。
4.但是,鉴于实际使用场景中,网络中报文内容复杂、特殊或者异常报文不可能被完全预估,并且不同客户的设备配置也不相同,因此提前测试方法无法在测试环境中构造出所有的可能性,所以无法在测试环境中完全覆盖到所有的异常慢速流程,也就不能做到快速、自动、精确的收集报文异常。


技术实现要素:

5.本发明提供的一种用于网络安全设备的异常慢速流程检测方法及装置,以解决网络安全设备处理大量报文时,某个报文的业务处理走到一个异常慢速流程,因业务处理消耗时间过久,可能会导致其它报文来不及处理的问题。因此需要快速发现异常慢速流程,才能有效避免报文处理不及时的情况,进而保证客户网络的正常运行。
6.第一方面,本技术实施例提供了一种用于网络安全设备的异常慢速流程检测方法,所述方法包括:
7.通过从芯片中获取转发进程开始处理报文的时间点;
8.根据当前时间点减去转发进程开始处理报文的时间点,得到转发进程的消耗时间;
9.若转发进程的消耗时间超过设定值,则向转发进程发送信号;
10.通过转发进程中的信号机制响应所述发送信号,得到异常信息,将所述异常信息写入共享内存。
11.进一步地,若所述消耗时间未超过所述设定值,则间隔预设的毫秒值后,通过从芯片中获取转发进程开始处理报文的时间点。
12.进一步地,所述转发进程为未执行完处理报文的转发进程。
13.进一步地,通过从芯片中获取转发进程开始处理报文的时间点包括:
14.从芯片中获取报文并使用cpu cycle值记录报文开始处理的时间点,并记录报文
内容指针;
15.根据所述报文内容指针获取报文内容。
16.进一步地,若转发进程的消耗时间超过设定值,则向转发进程发送信号包括:
17.当从芯片中获取报文的数量超过一半时,则向转发进程发送信号;
18.通过转发进程中的信号机制响应所述发送信号,得到异常信息,将所述异常信息写入共享内存。
19.进一步地,所述异常信息包括:函数调用栈、所述报文内容和最新消耗时间;
20.根据接收所述发送信号的时间点减去接收所述发送信号后转发进程处理报文的时间点,得到所述最新消耗时间;
21.所述函数调用栈通过使用backtrace处理函数获取。
22.进一步地,将所述异常信息写入共享内存还包括:当转发进程执行完成所述异常信息写入时,读取所述共享内存,并将所述异常信息写入文件中同时收集设备配置文件、操作日志、系统日志,得到文件压缩包。
23.进一步地,所述设定值设置为1秒至10秒。
24.第二方面,本技术实施例还提供了一种用于网络安全设备的异常慢速流程检测装置,所述装置包括:
25.获取模块:所述获取模块被配置为执行通过从芯片中获取转发进程开始处理报文的时间点;
26.检测模块:所述检测模块被配置为执行根据当前时间点减去转发进程开始处理报文的时间点,得到转发进程的消耗时间;
27.若转发进程的消耗时间超过设定值,则向转发进程发送信号;
28.若所述消耗时间未超过所述设定值,每间隔预设的毫秒值后,重新执行所述获取模块;
29.转发进程响应模块:所述转发进程响应模块被配置为执行通过转发进程中的信号机制响应所述发送信号,得到异常信息,将所述异常信息写入共享内存。
30.进一步地,所述检测模块包括:
31.从芯片中获取报文并使用cpu cycle值记录报文开始处理的时间点,并记录报文内容指针;
32.根据所述报文内容指针获取报文内容。
33.本发明提供的一种用于网络安全设备的异常慢速流程检测方法及装置,所述方法包括:通过从芯片中获取转发进程开始处理报文的时间点;根据当前时间点减去转发进程开始处理报文的时间点,得到转发进程的消耗时间;若转发进程的消耗时间超过设定值,则向转发进程发送信号;通过转发进程中的信号机制响应所述发送信号,得到异常信息,将所述异常信息写入共享内存。本技术可以实现快速、自动、精确的收集到秒级别异常慢速流程,降低解决问题的时间和人力成本。本技术通过快速发现报文转发慢速,并为管理员收集产生慢速的相关信息,以便管理员可以快速的分析并解决异常,提高报文转发效率,保证报文转发的稳定性和客户网络的正常运行。
附图说明
34.为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
35.图1为本技术实施例提供的一种用于网络安全设备的异常慢速流程检测方法流程图;
36.图2为本技术实施例提供的一种用于网络安全设备的异常慢速流程检测装置的结构示意图。
具体实施方式
37.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.当某个报文的业务处理走到一个异常慢速流程时,因业务处理消耗时间过久,可能会导致其它报文来不及处理。当来不及处理的报文数量超过芯片缓存能力后,就会出现丢失报文的现象,影响客户网络。因此需要快速发现异常慢速流程,才能有效避免报文处理不及时的情况,进而保证客户网络的正常运行。
39.目前,通常采用提前测试的方法来发现异常慢速流程,通过使用perf工具分析各流程函数的占比,对于不符合预期的函数占比进行代码优化,从而避免发生报文异常。但是,鉴于实际使用场景中,网络中报文内容复杂、特殊或者异常报文不可能被完全预估,并且不同客户的设备配置也不相同,不能实现快速发现报文异常并收集报文异常的功能。
40.因此,基于上述问题,本技术实施例提供一种用于网络安全设备的异常慢速流程检测方法。以解决网络安全设备处理大量报文时,可以快速发现异常慢速流程,并为管理员收集产生慢速的相关信息,以便管理员可以快速的分析并解决异常,提高报文转发效率。
41.参见图1,为本技术提供的一种用于网络安全设备的异常慢速流程检测方法的流程示意图;
42.由图1可知,本技术提供一种用于网络安全设备的异常慢速流程检测方法,所述方法包括:
43.s1:通过从芯片中获取转发进程开始处理报文的时间点。
44.在网络安全设备中转发进程有多个,各转发进程都是从芯片中获取报文成功后,并使用cpu cycle值记录开始处理报文的时间点和报文内容指针,根据记录的报文内容指针获取对应转发进程的报文内容。报文指的是网络中承载数据信息的传输单元,报文包括报文头和数据段。报文头中有报文的源、目的地址,报文头用于网络传输。数据段用来承载程序交互的数据信息,一份完整的数据信息可以被拆分为多个报文在网络中传输,并且报文的长度和内容不固定。
45.cpu cycle值也称为cpu时钟周期,指的是cpu可识别的最小时间单元,在cpu固定频率时,cpu cycle值会随着时间增长而线性增长,因此使用cpu cycle值的变化来记录开始处理报文的时间点,更加精确。
46.需要说明的是各转发进程为未执行完处理报文的转发进程。对于已经执行完成业务处理的报文,在网络安全设备中一种情况是允许报文转发,就是将报文交回芯片进行转发,转发后会清除报文处理时间点和报文内容指针,另一种情况就是不允许转发,直接丢包即可,不需要交回芯片。
47.s2:根据当前时间点减去转发进程开始处理报文的时间点,得到转发进程的消耗时间。
48.每间隔预设的毫秒值,进行一次计算,例如,转发进程开始处理报文的时间点为a,而当前的时间点为b,那么转发进程的消耗时间为b-a,得到的时间差值即为转发进程的消耗时间。预设的毫秒值可以任意选择,可以是50毫秒,或者其他的数值均可。间隔预设的毫秒值不要设置过长,若间隔的时间较长会影响对转发进程处理报文时长的判断。
49.s3:若转发进程的消耗时间超过设定值,则向转发进程发送信号。
50.所述设定值设置为1秒至10秒,因此所述设定值可以设置为1秒也可以设置为其他时长,例如5秒。当转发进程的消耗时间大于5秒,也就是当b-a>5,则立即向所有转发进程发送信号。设定值的时间同样也不能设置过长,设定值的时间设置较长会影响转发进程发送信号,并且无法实现在短时间内快速的判断出是否出现异常慢速。
51.另一种情况是还可以通过判断当从芯片中获取报文的数量是否超过芯片缓存规格一半时,若超过一半,也会向转发进程发送信号。因为报文在被软件层处理前,是缓存在芯片中,芯片有缓存规格限制,正常情况下芯片有报文就会立即被软件层处理掉,所以芯片中只会有少量报文,只有当软件层处理慢时,芯片中缓存的报文来不及处理,就会出现芯片中缓存大量报文的情况,若芯片中获取待处理报文的数量超过芯片缓存规格的一半时,会主动向转发进程发送信号。这样双重保障可以保证不会出现报文丢包的现象,也可以实现快速判断出哪个转发进程出现异常慢速并进行异常信息收集。
52.s4:通过转发进程中的信号机制响应所述发送信号,得到异常信息,将所述异常信息写入共享内存。
53.所有的转发进程都会配置有信号机制,用于响应所述发送信号,进而知道各个转发进程当前的状况,就可以判断出当前出现异常慢速是不是因为其他转发进程出现问题而导致慢速,还是因为自身的问题而导致出现异常慢速。信号机制是进程之间相互传递消息的一种方法,信号机制可以被理解成转发进程的软中断,在实时性方面使用频率相对比较高。软件中可以自由设定信号的处理函数,转发进程在收到信号后会立即响应信号并执行相应处理函数。
54.响应所述发送信号后,得到异常信息,所述异常信息包括:函数调用栈、报文内容和最新消耗时间。其中所述报文内容是通过步骤s1获得。
55.所述函数调用栈通过使用backtrace处理函数获取。各个转发进程在网络安全设备启动前就已经被配置为带有信号的响应回调函数,这样可以确保各个转发进程可以立即响应所述发送信号。
56.所述最新消耗时间是根据接收所述发送信号的时间点减去接收所述发送信号后各转发进程处理报文的时间点。由于信号在响应过程中,在时间上会发生微妙的变化,因此需要得到最新的消耗时间,这样得到最新消耗时间才最精确。
57.最后将转发进程的函数调用栈、报文内容和最新消耗时间这三个关键信息写入共
享内存中,也就是将异常信息写入共享内存,达到快速收集的目的。此时收集的是若干个转发进程中其中一个转发进程发生异常慢速,所收集有关这个转发进程异常慢速的异常信息。将收集的异常信息写入共享内存后,需要等待判断其他的转发进程还有没有出现异常慢速的情况,并将出现异常慢速的转发进程对应的三个关键信息也写入共享内存中,当所有的转发进程完成异常信息写入时,读取所述共享内存,并将所述异常信息写入文件中同时收集设备配置文件、操作日志、系统日志打包到同一个压缩包,得到文件压缩包,可供管理员下载分析异常。
58.所谓异常慢速流程就是对于网络安全设备需要处理大量的报文时,软件层一般是创建多个转发进程,转发进程对报文的处理流程一般为从芯片中获取报文、对报文进行业务处理、按处理结果将报文交回芯片进行转发。其中,对报文进行业务处理时,在不同配置不同报文内容的情况下,会走到不同的代码流程,所消耗的时间也是不一致的。一般情况下,单个报文处理的时间是在微秒级别,不会很久。但若出现软件代码处理有缺陷的情况,例如锁冲突大或者代码不够优化,就会出现单个报文的业务处理用时达到秒级别甚至分钟级别。这种导致单个报文处理时间异常的缺陷代码流程,就是异常慢速流程。
59.本技术具体实施方式:在具有四核的网络安全设备上,共有四个转发进程,分别是转发进程1、2、3和4,因报文识别流程代码有误,转发进程3处理特定报文时会遍历内存中大量无关数据导致报文处理达到了5秒钟,并在此5秒钟内持续占用了一把全局锁,导致其它转发进程1、2和4,一直等待此把锁无法继续处理报文,就出现了设备所有的转发进程都有5秒未转发报文的现象,引起客户网络环境出现短时间的网络不通。
60.本技术检测与收集异常方法如下:
61.通过步骤s1:转发进程1从芯片取出报文p1后,将本进程的时间点记录为a1和报文内容指针记录为m1,转发进程2从芯片取出报文p2后,将本进程的时间点记录为a2和报文内容指针记录为m2,转发进程3从芯片取出报文p3后,将本进程的时间点记录为a3和报文内容指针记录为m3,转发进程4从芯片取出报文p4后,将本进程的时间点记录为a4和报文内容指针记录为m4。
62.通过步骤s2和s3:开始计算这四个转发进程处理报文已经消耗的时间。转发进程1用时是c1=b1-a1=955毫秒,转发进程2用时是c2=b1-a2=955毫秒,转发进程3用时是c3=b1-a3=1040毫秒,转发进程4用时是c4=b1-a4=955毫秒。根据结果发现c3超过设定值1秒,认为发生异常,向转发进程1、2、3和4发送信号a。若没有超过设定值,则会继续等待50毫秒后进行下一次检测。
63.通过步骤s4:转发进程1收到信号a,用当前时间点d-a1=955毫秒,使用backtrack获取转发进程1的函数调用栈,并通过m1获取报文内容,把当前消耗的时间955毫秒、函数调用栈和报文内容这三个信息写入共享内存中。
64.转发进程2收到信号a,用当前时间点d-a2=957毫秒(此时时间点与转发进程1收到信号a的时间点已经不同,滞后了2毫秒),使用backtrack获取函数调用栈,并通过m2获取报文内容,把当前消耗的时间957毫秒、函数调用栈和报文内容这三个信息写入共享内存中。
65.转发进程3收到信号a,用当前时间点d-a3=1042毫秒(此时时间点与转发进程2收到信号a的时间点相同),使用backtrack获取函数调用栈,并通过m3获取报文内容,把当前
消耗的时间1042毫秒、函数调用栈和报文内容这三个信息写入共享内存中。
66.转发进程4收到信号a,用当前时间点d-a4=957毫秒(此时时间点与转发进程2收到信号a的时间点相同),使用backtrack获取函数调用栈,并通过m4获取报文内容,把当前消耗的时间957毫秒、函数调用栈和报文内容这三个信息写入共享内存中。
67.最后,将检测到这四个转发进程的三项信息在共享内存中已经可以读到。将共享内存中的信息写入文件e。并将设备的配置文件、操作日志、系统日志与文件e合并到一个压缩包中。到此异常检测与收集结束。
68.本技术通过从芯片中获取转发进程开始处理报文的时间点;根据当前时间点减去转发进程开始处理报文的时间点,得到转发进程的消耗时间;若转发进程的消耗时间超过设定值,则向转发进程发送信号;通过转发进程中的信号机制响应所述发送信号,得到异常信息,将所述异常信息写入共享内存的方法。实现快速、自动、精确的收集到秒级别异常慢速流程,降低解决问题的时间和人力成本。另外,本技术通过快速发现报文转发慢速,并为管理员收集产生慢速的相关信息,以便管理员可以快速的分析并解决异常,提高报文转发效率,保证报文转发的稳定性和客户网络的正常运行。
69.参见图2,为本技术提供的一种用于网络安全设备的异常慢速流程检测装置的结构示意图。前文已经详细讨论根据本发明实施例的一种用于网络安全设备的异常慢速流程检测方法及其步骤,下面仅结合图2简单描述相应的一种用于网络安全设备的异常慢速流程检测装置,更多细节可以参考上文的讨论。
70.由图2可知,基于上述公开的方法,本技术实施例还公开了一种用于网络安全设备的异常慢速流程检测装置,所述装置包括:
71.获取模块11:所述获取模块11被配置为执行通过从芯片中获取转发进程开始处理报文的时间点;
72.从芯片中获取报文并使用cpu cycle值记录报文开始处理的时间点,并记录报文内容指针,根据所述报文内容指针获取报文内容。
73.检测模块12:所述检测模块12被配置为执行根据当前时间点减去转发进程开始处理报文的时间点,得到转发进程的消耗时间。
74.若转发进程的消耗时间超过设定值,则向转发进程发送信号;
75.若所述消耗时间未超过所述设定值,每间隔预设的毫秒值后,重新执行所述获取模块12;
76.转发进程响应模块13:所述转发进程响应模块13被配置为执行通过转发进程中的信号机制响应所述发送信号,得到异常信息,将所述异常信息写入共享内存。
77.所述装置还包括信息汇总模块14,所述信息汇总模块14被配置为执行当转发进程完成所述异常信息写入时,读取所述共享内存,并将所述异常信息写入文件中同时收集设备配置文件、操作日志、系统日志,得到文件压缩包,可供管理员下载分析异常。
78.由以上技术方案可知,本技术提供一种用于网络安全设备的异常慢速流程检测方法及装置,所述方法包括:通过从芯片中获取转发进程开始处理报文的时间点;根据当前时间点减去转发进程开始处理报文的时间点,得到转发进程的消耗时间;若转发进程的消耗时间超过设定值,则向转发进程发送信号;通过转发进程中的信号机制响应所述发送信号,得到异常信息,将所述异常信息写入共享内存。本技术可以实现快速、自动、精确的收集到
秒级别异常慢速流程,降低解决问题的时间和人力成本。本技术通过快速发现报文转发慢速,并为管理员收集产生慢速的相关信息,以便管理员可以快速的分析并解决异常,提高报文转发效率,保证报文转发的稳定性和客户网络的正常运行。
79.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本技术旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。
80.应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献