一种报文处理方法及网络安全设备与流程

文档序号:32007560发布日期:2022-11-02 14:04阅读:37来源:国知局
一种报文处理方法及网络安全设备与流程

1.本技术涉及通信技术领域,尤其涉及一种报文处理方法及网络安全设备。


背景技术:

2.深度报文检测(deep packet inspection,dpi)是一种基于每条流的数据包的深度检测技术。针对不同的网络应用层载荷(例如http、dns等)进行深度检测,通过对报文的有效载荷检测决定其合法性。由于检测是对一条流载荷进行检测,所以报文转发模式是基于流的核负载分担,即相同五元组的一条流的所有报文都要上报给同一个处理核,以由该处理核逐个处理收到的该条流的报文。
3.由于dpi检测对报文载荷深度的检测使其对算力资源消耗较大,在网络安全设备开启dpi检测业务后,当遭遇突发单条大流量攻击时,短时间会超出该网络安全设备中某个处理核的dpi业务的七层吞吐能力,导致该处理核处理流量超负载,驱动不停地接收报文但得不到该处理核的及时处理,进而导致一定时间内大量的缓存报文消耗完内存资源mbuf。由于mbuf资源是所有处理核共用的(受限于底层硬件架构无法实现为每个用于转发的处理核配置自己独立的mbuf资源),当其他处理核上有正常流量到达时,由于该其他处理核申请不到mbuf资源导致不得不丢包,从而影响所有处理核的转发。
4.因此,如何有效应对单条大流量,解决网络安全设备中单个处理核因受到大流量攻击而导致的网络安全设备的报文处理能力下降的问题是值得考虑的技术问题之一。


技术实现要素:

5.有鉴于此,本技术提供一种报文处理方法及网络安全设备,用以有效应对单条大流量,解决网络安全设备中单个处理核因受到大流量攻击而导致的网络安全设备的报文处理能力下降的问题。
6.具体地,本技术是通过如下技术方案实现的:
7.根据本技术的第一方面,提供一种报文处理方法,应用于网络安全设备中,所述网络安全设备包括操作系统、驱动和多个处理核,所述方法,包括:
8.在控制平面,所述操作系统确定每个处理核的cpu使用率;
9.所述操作系统当检测到多个处理核中目标处理核的cpu使用率满足第一告警条件时,则向驱动发送告警事件;
10.所述驱动在控制平面接收到所述告警事件后,若确认当前的硬件缓存资源的资源使用率满足第二告警条件,则在转发平面对所述目标处理核对应的数据流进行逐包负载分担处理,以由其他处理核处理所述目标处理核对应的数据流。
11.根据本技术的第二方面,提供一种网络安全设备,包括操作系统、驱动和多个处理核,其中:
12.所述操作系统,用于在控制平面,所述操作系统确定每个处理核的cpu使用率;当检测到多个处理核中目标处理核的cpu使用率满足第一告警条件时,则向驱动发送告警事
件;
13.所述驱动,用于在控制平面接收到所述告警事件后,若确认当前的硬件缓存资源的资源使用率满足第二告警条件,则在转发平面对所述目标处理核对应的数据流进行逐包负载分担处理,以由其他处理核处理所述目标处理核对应的数据流。
14.本技术实施例的有益效果:
15.本技术实施例提供的报文处理方法及网络安全设备中,在控制平面,操作系统确定每个处理核的cpu使用率;然后当检测到多个处理核中目标处理核的cpu使用率满足第一告警条件时,则向驱动发送告警事件;这样,该驱动在控制平面接收到该告警事件后,若确认当前的硬件缓存资源的资源使用率满足第二告警条件,则在转发平面对所述目标处理核对应的数据流进行逐包负载分担处理,以由其他处理核处理所述目标处理核对应的数据流。这样一来,当网络安全设备中目标处理核的cpu使用率达到第一告警条件且硬件缓存资源的利用率达到第二告警条件时,即表明网络安全设备报文处理压力比较大时,则驱动在转发平面对发往目标处理核的数据流进行逐包负载分担处理,以使得其他处理核处理该数据流,从而也就缓解了目标处理核的报文处理压力,同时能够让该数据流得到及时处理,有效解决了网络安全设备中单个处理核因受到大流量攻击而导致的网络安全设备的报文处理能力下降的问题。
附图说明
16.图1是本技术实施例提供的一种报文处理方法的流程示意图;
17.图2是本技术实施例提供的另一种报文处理方法的流程示意图;
18.图3是本技术实施例提供的一种网络安全设备的结构示意图;
19.图4是本技术实施例提供的另一种网络安全设备的结构示意图。
具体实施方式
20.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如本技术的一些方面相一致的装置和方法的例子。
21.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。
22.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
23.下面对本技术提供的报文处理方法进行详细地说明。
24.参见图1,图1是本技术提供的一种报文处理方法的流程图,应用于网络安全设备
中,该网络安全设备包括操作系统、驱动和多个处理核,操作系统与驱动之间的交互流程可包括如下所示步骤:
25.s101、在控制平面,操作系统确定每个处理核的cpu使用率。
26.目前,网络安全设备是要串联在网络里,当开启了ips(入侵防御检测)、av(防病毒)和应用审计等业务后,网络安全设备需要对流经该设备的流量持续进行深度检测,而且这种检测模式是以数据流为单位检测的,即针对每条数据流都要执行安全检测,设备转发模式一般是基于数据流的核负载分担模式,一旦单个处理核的负载压力过大就会消耗完整个网络安全设备的mbuf资源,从而影响该网络安全设备的报文业务处理和报文转发性能。有鉴于此,本步骤提出,在控制平面,由网络安全设备的操作系统对每个处理核进行监控,即确定每个处理核的cpu使用率。
27.s102、操作系统当检测到多个处理核中目标处理核的cpu使用率满足第一告警条件时,则向驱动发送告警事件。
28.本步骤中,当操作系统检测到目标处理核的cpu使用率满足告警条件时,表明该目标处理核当前业务处理量较大,也即可能遇见数据流为大流量的场景,可能会导致在处理该目标处理核的业务过程中占用较多的硬件缓存资源mbuf,进而可能导致其他处理核无法正常处理业务,为了避免这一情况的发生,本实施例提出,当确定出目标处理核的cpu使用率达到第一告警条件时,则向驱动发送告警事件。
29.可选地,上述告第一警条件可以但不限于为cpu使用率达到第一设定阈值,该第一设定阈值的具体取值可以根据实际情况而定。
30.需要说明的是,当操作系统检测到每个处理核的cpu使用率都不满足告警条件时,则继续执行步骤s101的流程。操作系统可以周期性地执行步骤s101,即在检测周期到达时,执行本实施例提供的报文处理流程。
31.可选地,上述检测周期可以但不限于以秒为单位进行设置,具体可以根据实际情况进行配置,本实施例对检测周期的具体取值不进行限定。
32.需要说明的是,上述目标处理核可以为安全网络设备中任一处理核。
33.s103、驱动在控制平面接收到所述告警事件后,若确认当前的硬件缓存资源的资源使用率满足第二告警条件,则在转发平面对所述目标处理核对应的数据流进行逐包负载分担处理,以由其他处理核处理所述目标处理核对应的数据流。
34.本步骤中,驱动接收到操作系统发送的告警事件后,为了避免出现硬件缓存资源不足且影响网络安全设备中处理核的报文处理性能的情况发生,本步骤提出,驱动先确认当前的硬件缓存资源的资源使用率,当确认资源使用率满足第二告警条件时,表明该网络安全设备当前的硬件缓存资源的使用率比较高,可能存在发生硬件缓存资源不足进而导致影响处理核的报文处理性能的情况,有鉴于此,本实施例提出,当驱动确认硬件缓存资源的资源使用率满足第二告警条件时,则在转发平面对本来要发往目标处理核的数据流进行逐包负载分担处理,以使得其他处理核能够转发该目标处理核对应的数据流。这样一来,也就避免了目标处理核的数据流占用过多的硬件缓存资源,同时使得网络安全设备上被分配到要处理目标处理核的流量的其他处理核和目标处理核能够及时处理目标处理核的数据流,进而能够保证硬件缓存资源得到逐步释放,缓解了硬件缓存资源的报文缓存压力,同时也避免了网络安全设备单个处理核因受到大流量攻击而导致的网络安全设备的报文处理能
力下降的问题发生。同时,还减少了目标处理核所占用的mbuf资源,进而避免了其他处理核因可用的mbuf资源不足所导致的丢包问题的发生。
35.值得注意的是,上述第二告警条件可以但不限于为资源使用率达到第二设定阈值,上述第二设定阈值的取值可以根据实际情况进行配置,本实施例对其取值不进行限定。
36.需要说明的是,上述目标处理核对应的数据流可以理解为驱动从网卡读取到数据流后,识别出的本需要发往目标处理核的数据流。
37.通过实施本技术提供的报文处理方法,在控制平面,操作系统确定每个处理核的cpu使用率;然后当检测到多个处理核中目标处理核的cpu使用率满足第一告警条件时,则向驱动发送告警事件;这样,该驱动在控制平面接收到该告警事件后,若确认当前的硬件缓存资源的资源使用率满足第二告警条件,则在转发平面对所述目标处理核对应的数据流进行逐包负载分担处理,以由其他处理核处理所述目标处理核对应的数据流。这样一来,当网络安全设备中目标处理核的cpu使用率达到第一告警条件且硬件缓存资源的利用率达到第二告警条件时,即表明网络安全设备报文处理压力比较大时,则驱动在转发平面对发往目标处理核的数据流进行逐包负载分担处理,以使得其他处理核处理该数据流,从而也就缓解了目标处理核的报文处理压力,同时能够让该数据流得到及时处理,有效解决了网络安全设备中单个处理核因受到大流量攻击而导致的网络安全设备的报文处理能力下降的问题。
38.可选地,在转发平面对所述目标处理核对应的数据流进行逐包负载分担处理,以由其他处理核处理所述目标处理核对应的数据流时,可以确定当前情况下各处理核的cpu使用率,然后让cpu使用率低于第三设定阈值的处理核来处理目标处理核对应的数据流。具体来说,可以将发往目标处理核的数据流缓存到公共报文队列中,这样,当其他处理核就可以轮询读取该公共报文队列中该数据流的网络报文,然后对该网络报文执行对应处理。
39.可选地,基于上述实施例,本实施例中提供的报文处理方法,还可以包括下述过程:驱动为所述目标处理核设置第一标记,所述第一标记用于指示对所述目标处理核的数据流采用逐包负载分担方式。
40.在此基础之上,可以按照下述过程执行步骤s103中的在转发平面对所述目标处理核对应的数据流进行逐包负载分担处理,以由其他处理核处理所述目标处理核对应的数据流:驱动若接收到数据流,若确认该数据流对应的处理核为所述目标处理核,则当读取到所述目标处理核的第一标记,则采用逐包负载分担方式由其他处理核分别对该数据流进行处理。
41.具体地,操作系统在发送告警事件时,为了方便驱动获知哪个处理核出现使用率高的情况,会在告警事件中写入目标处理核的核标识;这样一来,在控制平面,当驱动接收到告警事件后,就可以从告警事件中解析出核标识,然后为核标识对应的处理核即目标处理核设置用于表征逐包负载分担的第一标记;这样一来,当在转发平面进行数据流转发时,驱动在接收到数据流后,可以对该数据流进行识别,当识别出需要处理该数据流的处理核后,可以判断是否能够读取处理核对应的第一标记,当读取到第一标记时,则表明该处理核当前cpu使用率较高且硬件缓存资源的资源使用率也较高,则为了能够更好地处理该处理核的数据流,则可以将发往该处理核的数据流采用逐包负载分担的方式分担给其他处理核,以由其他处理核处理该数据流。
42.具体来说,每个处理核对应一个存储空间,该存储空间的对应位置处就可以记录该处理核的第一标记,即当驱动在接收到目标处理核的告警事件后,当确认硬件缓存资源的资源使用率满足第二告警条件时,就可以将第一标记写入到该目标处理核对应的存储空间中。这样,在转发平面,当驱动接收到数据流后,可以对该数据流信息识别,以识别出用于处理该数据流的处理核,若识别出的处理核为目标处理核,则从目标处理核对应的存储空间的对应位置处确认是否能够读取到第一标记,当读取到第一标记时,则在转发平面对该目标处理核对应的数据流进行逐包负载分担处理,以由其他处理核处理该目标处理核对应的数据流。这样一来,该目标处理核的数据流就可以得到及时的处理,从而不会造成网络安全设备中报文的处理性能下降的问题,而且由于该目标处理核的数据流由其他处理核和目标处理核共同分担处理,由于处理够及时,也能缓解硬件缓存资源的缓存压力,进而避免硬件缓存资源无法缓存其他处理核的报文的情况发生。
43.此外,为了方便转发平面对目标处理核的数据流的处理,驱动还可以维护一个标记列表,然后在该标记列表记录产生告警的处理核的核标识与第一标记之间的对应关系,即,操作系统在确定目标处理核的cpu使用率达到第一告警条件时,在向驱动发送告警事件时,可以在该告警事件中携带该目标处理核的核标识,这样,驱动在接收到告警事件后,就可以从告警事件中解析出核标识,然后在标记列表中写入该目标处理核的核标识与第一标记之间的对应关系。
44.在此基础上,在转发平面,驱动在接收到数据流后,若确认该数据流对应的处理核为目标处理核,则可以先从标记列表中读取该目标处理核是否具有第一标记,当成功读取出该目标处理核的第一标记时,则采用逐包负载分担方式由其他处理核分别对该数据流进行处理。
45.需要说明的是,上述第一标记的具体值可以根据实际情况进行配置,本技术对其具体取值不进行限定。
46.可选地,基于上述任一实施例,本实施例中,还可以执行图2所示的报文处理方法的流程:
47.s201、在控制平面,操作系统再次确认目标处理核的cpu使用率。
48.本步骤中,由于每个处理核有自己应该要处理的流量,正常情况下,一般不会处理其他处理核的数据流,有鉴于此,为了避免其他处理核需要一直处理目标处理核的数据流的情况发生,本实施例提供,操作系统会在控制平面继续确认目标处理核的cpu使用率。
49.s202、操作系统当检测到所述目标处理核的cpu使用率不满足所述第一告警条件时,则向所述驱动发送恢复事件。
50.本步骤中,当操作系统确认该目标处理核在一段时间后其cpu使用率不满足第一告警条件时,则表明该目标处理核在执行图1所示的流程后,目标处理核的cpu使用率得到了缓解,则表明该目标处理核可以处理本需要该目标处理核处理的数据流,则此时操作系统会向驱动发送针对该目标处理核的恢复事件。
51.需要说明的是,当确认目标处理核的cpu使用率不高于第一设定阈值时,则可以确认目标处理核的cpu使用率不满足第一告警条件。
52.需要说明的是,操作系统在检测目标处理核的cpu使用率的同时,也会检测其他处理核的cpu使用率,当其他处理核的cpu使用率满足第一告警条件,则执行图1所示的流程;
而当其他处理核的cpu使用率不满足第一告警条件时,则不满足告警条件的其他处理核即为上述目标处理核,执行流程可以参考针对目标处理核的处理流程,即图2所示的流程,此处不再一一详细说明。
53.s203、驱动在接收到所述恢复事件后,若确认当前的硬件缓存资源的资源使用率不满足所述第二告警条件,则在转发平面对所述目标处理核对应的数据流进行逐流负载分担处理。
54.本步骤中,驱动在接收到针对该目标处理核的恢复事件后,还可以确认当前的硬件缓存资源的资源使用率是否满足第二告警条件,当不满足第二告警条件时,则表明网络安全设备中的硬件缓存资源比较空闲,可以继续缓存网络安全设备内各个处理核所需要处理的数据流的网络报文,则在转发平面,驱动在接收到数据流后,若识别出该数据流的处理核为目标处理核,则可以对该数据流进行逐流负载分担处理,即,由该目标处理核处理接收到的数据流。这样,在网络安全设备的硬件缓存资源充足且目标处理核的cpu使用率不高的情况下,继续由原本由该目标处理核处理的数据流继续逐流转发给该目标处理核,由此一来,既能够保证各处理核的充分利用,避免一个处理核负载分担较大的情况发生,而且也能较好的保证各处理核的数据流的正常处理,从而保证网络安全设备的报文处理性能及最大化地保证其内硬件缓存资源的充分使用且不会造成缓存负担较大的情况。
55.此外,若确认当前的硬件缓存资源的资源使用率满足所述第二告警条件,则在转发平面对所述目标处理核对应的数据流继续进行逐包负载分担处理,以由其他处理核处理所述目标处理核对应的数据流。
56.具体来说,当确认当前的硬件缓存资源的资源使用率满足第二告警条件时,则表明当前的硬件缓存资源依然不够,则此时为了进一步缓解硬件缓存资源,可以继续由该目标处理核及其他处理核共同处理该目标处理核的数据流,从而进一步释放硬件缓存资源。同时,驱动会等待设定时间,当到达设定时间时,可以再次确认硬件缓存资源的资源使用率,当硬件缓存资源的资源使用率不满足第二告警条件时,则在转发平面对所述目标处理核对应的数据流进行逐流负载分担处理。从而更好地保证网络安全设备中报文的处理性能及硬件缓存资源充分使用。
57.可选地,基于上述实施例,本实施例中提出的报文处理方法,还可以包括下述过程:驱动清除所述目标处理核的所述第一标记,并为所述目标处理核设置第二标记,所述第二标记用于指示对所述目标处理核的数据流采用逐包负载分担方式。
58.在此基础之上,可以按照下述过程执行步骤s203中的在转发平面对所述目标处理核对应的数据流进行逐流负载分担处理的步骤:驱动在接收到数据流后,若确认该数据流对应的处理核为所述目标处理核,则当读取到所述目标处理核的第二标记,则采用逐流负载分担方式处理该数据流。
59.具体地,一种实施例中,当驱动维护有标记列表时,在操作系统下发恢复事件时,会携带目标处理核的核标识。这样驱动在接收到恢复事件后,可以从恢复事件中解析出该核标识,然后在标记列表中删除该核标识与第一标记之间的对应关系,从而也就清除了第一标记,同时在该标记列表中写入核标识与第二标记之间的对应关系,相当于由第二标记替换了第一标记,这样也就实现了为目标处理核设置第二标记的目的。
60.在此基础上,驱动在接收到数据流后,若确认该数据流对应的处理核为目标处理
核,则可以先从标记列表中读取该目标处理核是否具有第二标记,即基于该目标处理核的核标识从标记列表中确认是否能读取到对应的第二标记,当读取到第二标记时,则表明目标处理核当前的cpu使用率不高,此时,采用逐流负载分担方式处理该数据流。这样,保证了同一条数据流按照逐流的方式分担到目标处理核上,从而保证了该数据流的连续性;此外,也能够缓解其他处理核的报文处理压力,或者当目标处理核的cpu使用率不高的情况下,也能够承担其他处理核的数据流,进而保证了网络安全设备的报文处理性能,同时缓解硬件缓存资源的缓存压力。
61.另一种实施例中,将目标处理核的第一标记写入到目标处理核对应的存储空间时,在驱动从接收到的恢复事件中解析出核标识后,可以将该核标识对应的目标处理核对应的存储空间中存储的第一标记进行清除,同时在对应位置处写入第二标记。在此基础上,驱动在接收到数据流后,若确认该数据流对应的处理核为目标处理核,则可以先确认是否能够从目标处理核对应的存储空间中读取第二标记,当读取到第二标记,则表明目标处理核当前的cpu使用率不高,此时,采用逐流负载分担方式处理该数据流。这样,保证了同一条数据流按照逐流的方式分担到目标处理核上,从而保证了该数据流的连续性;此外,也能够缓解其他处理核的报文处理压力,或者当目标处理核的cpu使用率不高的情况下,也能够承担其他处理核的数据流,进而保证了网络安全设备的报文处理性能,同时缓解硬件缓存资源的缓存压力。
62.当未读取到第二标记时,或者依然能够读取到第一标记,则继续按照逐包负载分担方式处理该目标处理核对应的数据流。
63.可选地,基于上述任一实施例,本实施例中,操作系统若确认所述目标处理核的cpu使用率不满足所述第一告警条件,在等待时长达到设定时长时,再次执行确定每个处理核的cpu使用率的步骤;
64.进一步地,在转发平面,驱动在接收到数据流后,若确认所述数据流为发往所述目标处理核的数据流,则确认当前的硬件缓存资源的资源使用率是否满足第二告警条件;若满足所述第二告警条件,则在转发平面对所述目标处理核的数据流进行逐流负载分担处理,并处理cpu使用率满足第一告警条件的其他处理核的数据流;若不满足所述第二告警条件,则在转发平面对所述目标处理核的数据流进行逐流负载分担处理。
65.具体地,在执行步骤s101之后,若确认网络安全设备中各处理核的cpu使用率不满足第一告警条件,则表明当前各处理核的cpu有足够的能力处理数据流,则此时操作系统会等待执行,在等待时长达到设定时长时,则再从执行步骤s101。在此基础上,在转发平面接收到数据流后,可以继续确认当前硬件缓存资源的资源使用率是否达到第二告警条件,则当达到第二告警条件时,由于该目标处理核当前cpu使用率不高,则此时可以将该数据流写入该目标处理核对应的报文缓存队列中,然后由该目标处理核处理该数据流;同时,由于该目标处理核的cpu使用率不高,而当前的硬件缓存资源的资源使用率比较高,则此时可以由该目标处理核处理cpu使用率满足第一告警条件的其他处理核的数据流,即目标处理核在处理自身报文缓存队列中的报文的同时,还可以从公共缓存队列中读取数据流,以实现对cpu使用率比较高的其他处理核的数据流的处理,从而缓解了硬件缓存资源的缓存压力,同时还保证了其他处理核的数据流的及时处理。而当网络安全设备中各处理核的cpu使用率都不高(不满足第一告警条件)且当前的硬件缓存资源的资源使用率也不高(不满足第二告
警条件)时,则此时在转发平面由各处理核处理各自需要处理的数据流。从而在保证cpu资源及硬件缓存资源充足的情况下,保证了网络安全设备中报文的处理性能,同时保证了硬件缓存资源的充分利用,同时也不会造成硬件缓存资源存在缓存压力。
66.基于同一发明构思,本技术还提供了实施上述报文处理方法的网络安全设备。参见图3,图3是本技术一示例性实施例提供的一种网络安全设备的结构示意图,包括:操作系统301、驱动302和多个处理核(参考图3中的处理核1~处理核n),其中:
67.上述操作系统301,用于在控制平面,所述操作系统确定每个处理核的cpu使用率;当检测到多个处理核中目标处理核的cpu使用率满足第一告警条件时,则向驱动发送告警事件;
68.上述驱动302,用于在控制平面接收到所述告警事件后,若确认当前的硬件缓存资源的资源使用率满足第二告警条件,则在转发平面对所述目标处理核对应的数据流进行逐包负载分担处理,以由其他处理核处理所述目标处理核对应的数据流。
69.可选地,上述驱动包括控制平面的控制模块3021和转发平面的业务处理模块3022,请参考图4所示,其中:
70.所述操作系统301,具体用于向所述控制模块3021发送告警事件,所述告警事件包括所述目标处理核的核标识;
71.所述控制模块3021,用于基于所述核标识,为所述目标处理核设置第一标记,所述第一标记用于指示对所述目标处理核的数据流采用逐包负载分担方式;
72.所述业务处理模块3022,用于在转发平面,接收到数据流后,若确认该数据流对应的处理核为所述目标处理核,则当读取到所述目标处理核的第一标记,则采用逐包负载分担方式由其他处理核分别对该数据流进行处理。
73.具体地,控制模块3021会在控制平面接收到告警事件后,从告警事件中解析出目标处理核的核标识,然后为该目标处理核设置第一标记,然后在目标处理核的核标识与第一标记之间的对应关系写入到标记列表中,或者,将目标处理核的第一标记写入到目标处理核对应的存储空间中。该存储空间为可以控制模块3021预先为各个处理核申请并维护的。在此基础上,业务处理模块3022在转发平面在接收到数据流后,当确认该数据流为发往目标处理核的数据流时,就可以从标记列表或目标处理核对应的存储空间中读取第一标记,当成功读取到第一标记时,则采用逐包负载分担方式由其他处理核分别对该数据流进行处理。
74.可选地,基于上述任一实施例,本实施例中,上述操作系统301,还用于在控制平面,再次确认所述目标处理核的cpu使用率;当检测到所述目标处理核的cpu使用率不满足所述第一告警条件时,则向所述驱动发送恢复事件;
75.所述驱动302,还用于在接收到所述恢复事件后,若确认当前的硬件缓存资源的资源使用率不满足所述第二告警条件,则在转发平面对所述目标处理核对应的数据流进行逐流负载分担处理。
76.具体地,操作系统301和驱动302的处理过程请上述对应方法实施例中的具体实施过程,此处不再一一详细说明。
77.可选地,基于上述实施例,本实施例中的驱动302包括控制平面的控制模块3021和转发平面的业务处理模块3022,也请参考图4所示。
78.在此基础上,上述操作系统301,具体用于向所述控制模块3021发送所述恢复事件,所述恢复事件包括所述目标处理核的核标识;
79.所述控制模块3021,用于在控制平面接收到所述恢复事件后,基于所述恢复事件中的核标识,清除所述目标处理核的所述第一标记,并为所述目标处理核设置第二标记,所述第二标记用于指示对所述目标处理核的数据流采用逐包负载分担方式;
80.所述业务处理模块3022,用于在转发平面接收到数据流后,若确认该数据流对应的处理核为所述目标处理核,则当读取到所述目标处理核的第二标记,则采用逐流负载分担方式处理该数据流。
81.具体地,控制模块3021会在控制平面接收到恢复事件后,从恢复事件中解析出目标处理核的核标识,然后在标记列表中清除目标处理核的核标识与第一标记之间的对应关系,同时写入目标处理核的核标识与第二标记之间的对应关系;或者,从目标处理核对应的存储空间中清除第一标记,同时写入第二标记。这样,业务处理模块3022在转发平面在接收到数据流后,若识别出该数据流的处理核为目标处理核,则可以从标记列表或目标处理核对应的存储空间中读取第二标记,当读取到第二标记时,则采用逐流负载分担方式处理该数据流,详细描述请参考方法实施例中的对应描述,此处不再一一详细说明。
82.可选地,基于上述实施例,本实施例中,上述驱动302,还用于若确认当前的硬件缓存资源的资源使用率满足所述第二告警条件,则在转发平面对所述目标处理核对应的数据流继续进行逐包负载分担处理,以由其他处理核处理所述目标处理核对应的数据流。
83.具体地,当上述驱动302包括图4所示的控制模块3021和业务处理模块3022时,控制模块3021在接收到恢复事件后,当确认当前的硬件缓存资源的资源使用率满足第二告警条件时,则表明当前的硬件缓存资源的缓存压力比较大,则此时继续对目标处理核对应的数据流进行逐包负载分担处理,以由其他处理核处理所述目标处理核对应的数据流,从而减轻硬件缓存资源的缓存压力。
84.可选地,基于上述任一实施例,本实施例中,上述操作系统301,还用于若确认所述目标处理核的cpu使用率不满足所述第一告警条件,在等待时长达到设定时长时,再次执行确定每个处理核的cpu使用率的步骤;
85.所述驱动302,还用于在接收到数据流后,若确认所述数据流为发往所述目标处理核的数据流,则确认当前的硬件缓存资源的资源使用率是否满足第二告警条件;若满足所述第二告警条件,则在转发平面对所述目标处理核的数据流进行逐流负载分担处理,并处理cpu使用率满足第一告警条件的其他处理核的数据流;若不满足所述第二告警条件,则在转发平面对所述目标处理核的数据流进行逐流负载分担处理。
86.具体来说,当上述驱动302包括图4所示的控制模块3021和业务处理模块3022时,当目标处理核的cpu使用率不高的情况下,而可能会存在其他处理核的cpu使用率比较高进而导致硬件缓存资源的资源使用率比较高的情况,基于此,控制模块3021会定期确认网络安全设备中当前的硬件缓存资源的资源使用率,当资源使用率较高时,则可以为目标处理核配置第三标记,以指示该目标处理核处理其他处理核的数据流。这样,在转发平面,业务处理模块3022当确认接收到的数据流为目标处理核的数据流时,则可以确认是否能够读取到标记,当读取到第三标记时,则将该数据流写入到目标处理核对应的报文队列,以由该目标处理核逐流处理该数据流,同时由于该目标处理核的cpu使用率不高,此时,可以由该目
标处理核从公共报文队列中读取数据流,以缓解其他处理核的报文处理压力及硬件缓存资源的缓存压力。而读取不到任何标记时,则将该数据流写入到目标处理核对应的报文队列,以由该目标处理核逐流处理该数据流。
87.通过提供上述安全网络设备,不仅避免了处理核的cpu使用率较高时占用较多的mbuf资源的情况发生,而且实现了有效应对单条大流量的目的,同时解决了网络安全设备中单个处理核因受到大流量攻击而导致的网络安全设备的报文处理能力下降的问题,同时加强了网络安全设备的抗单核攻击的能力,避免了网络安全设备因单核被攻击而导致的整机转发受阻的情况发生。
88.基于同一发明构思,本实施例还提供一种机器可读存储介质,机器可读存储介质存储有计算机程序,在被操作系统和/或驱动调用和执行时,计算机程序促使处理器执行本技术实施例上述任一实施例所提供的报文处理方法。
89.上述机器可读存储介质可以为存储器,该存储器可以包括随机存取存储器(random access memory,ram)、ddr sram(double data rate synchronous dynamic random access memory,双倍速率同步动态随机存储器),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
90.对于机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
91.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
92.上述装置中各个单元/模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
93.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元/模块可以是或者也可以不是物理上分开的,作为单元/模块显示的部件可以是或者也可以不是物理单元/模块,即可以位于一个地方,或者也可以分布到多个网络单元/模块上。可以根据实际的需要选择其中的部分或者全部单元/模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
94.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1