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

数据包处理方法及电子设备、存储介质与流程

2022-03-09 05:28:14 来源:中国专利 TAG:


1.本技术涉及云信息安全技术领域,特别涉及一种数据包处理方法及电子设备、计算机可读存储介质。


背景技术:

2.在云计算时代,由于网络流量变得错综复杂,对数据包的收发、分析处理是云安全领域的基本功能需求。由于数据包的收取和转发环节处理速率很快,而分析处理环节需要耗费大量cpu(central processing unit,中央处理器)计算资源而速率较慢,因此,分析处理环节是数据包处理流程的性能瓶颈。
3.相关技术基于dpdk(data plane development kit,数据平面开发套件)上采用运行至终结(run to completion)模型开发服务架构。dprk用于接收数据包,并将数据包转发至是数据安全检测引擎模块,在获得数据安全检测引擎模块返回的转发信息之后,依据转发信息对数据包进行处理。整个过程采用多线程/进程方式,每一进程/线程绑定一个核心,并单独执行数据包处理整个流程的工作。每一进程/线程从网卡接收数据包之后,进入安全检测引擎的处理流程,在其中调用安全检测引擎注册的各hook模块,从而得到转发信息,进而依据转发信息转发或丢弃数据包。
4.由于采用多进程/现程方式,在异步处理数据时需要实现内存管理、互斥访问等机制,并要建立和维护全局连接表,给开发增加了难度。并且,该方案在数据包收取和发送过程高效,在安全检测环节效率较低,当安全检测所耗费时间过长导致未及时从网卡收取数据包时,网卡接收队列可能因空间不足而产生丢包的问题。


技术实现要素:

5.本技术实施例的目的在于提供一种数据包处理方法及电子设备、计算机可读存储介质,用于提高数据包处理流程的整体效率。
6.一方面,本技术提供了一种数据包处理方法,应用于多核平台,所述多核平台包括多个cpu核心,包括:
7.在获取目标数据包之后,多个安全检测协程对所述目标数据包进行检测,确定与所述目标数据包对应的转发信息;其中,每一安全检测协程分别对应一个cpu核心;
8.依据所述转发信息对所述目标数据包进行处理。
9.在一实施例中,在所述多个安全检测协程对所述目标数据包进行检测之前,所述方法还包括:
10.数据接收协程从所述多核平台的网卡接收所述目标数据包,并上传至所述多个安全检测协程;其中,所述数据接收协程对应一个cpu核心。
11.在一实施例中,所述多个安全检测协程对应不同检测类型;
12.所述多个安全检测协程对所述目标数据包进行检测,确定与所述目标数据包对应的转发信息,包括:
13.每一安全检测协程对所述目标数据包进行检测,获得所述安全检测协程对应检测类型的检测结果;
14.根据多个检测结果,确定所述目标数据包的转发信息。
15.在一实施例中,所述依据所述转发信息对所述目标数据包进行处理,包括:
16.如果所述转发信息指示丢弃所述目标数据包,数据释放协程将所述目标数据包进行丢弃;其中,所述数据释放协程对应一个cpu核心。
17.在一实施例中,所述依据所述转发信息对所述目标数据包进行处理,包括:
18.如果所述转发信息指示转发所述目标数据包,数据转发协程对所述目标数据包进行转发;其中,所述数据转协程对应一个cpu核心。
19.在一实施例中,在所述多个安全检测协程对所述目标数据包进行检测之前,所述方法还包括:
20.创建多个安全检测协程,并为每一安全检测协程分别绑定一个cpu核心。
21.在一实施例中,在所述数据接收协程从所述多核平台的网卡接收所述目标数据包之前,所述方法还包括:
22.创建所述数据接收协程,并为所述数据接收协程绑定一个cpu核心。
23.在一实施例中,在所述数据释放协程将所述目标数据包进行丢弃之前,所述方法还包括:
24.创建所述数据释放协程,并为所述数据释放协程绑定一个cpu核心;
25.在所述数据转发协程对所述目标数据包进行转发之前,所述方法还包括:
26.创建所述数据转发协程,并为所述数据转发协程绑定一个cpu核心。
27.进一步的,本技术提供了一种电子设备,所述电子设备包括:
28.处理器;
29.用于存储处理器可执行指令的存储器;
30.其中,所述处理器被配置为执行上述数据包处理方法。
31.此外,本技术还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述数据包处理方法。
32.本技术方案,包含多个cpu核心的多核平台在获取目标数据包之后,多核平台的多个安全检测协程可以对目标数据包进行检测,确定与目标数据包对应的转发信息;其中,每一安全检测协程分别对应一个cpu核心;进一步的,可以依据转发信息对目标数据包进行处理;
33.将需要耗费大量cpu计算资源的安全检测任务,分配至多个cpu核心,使得多个cpu核心可以并行执行多个安全检测协程对应的安全检测任务,从而基于多核架构优势,提高了数据包处理流程中分析处理环节的处理效率,避免无法从网卡接收队列及时收包而导致丢包的问题。此外,本技术方案通过协程机制代替线程机制,协程相比线程更为轻量,可以减少线程创建及切换的运算成本。
附图说明
34.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍。
35.图1为本技术一实施例提供的数据包处理方法的应用场景示意图;
36.图2为本技术一实施例提供的电子设备的结构示意图;
37.图3为本技术一实施例提供的数据包处理方法的流程示意图;
38.图4为本技术一实施例提供的数据包处理方法的架构示意图;
39.图5为本技术一实施例提供的数据包处理装置的框图。
具体实施方式
40.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
41.相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
42.图1为本技术实施例提供的数据包处理方法的应用场景示意图。如图1所示,该应用场景包括客户端20和服务端30;客户端20可以是主机、手机、平板电脑等用户终端,用于向服务端30发送数据包;服务端30可以是服务器、服务器集群或云计算中心,服务端30为多核平台,包含多个cpu核心;服务端30可以接收客户端20发送的数据包,并对数据包进行处理。
43.如图2所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图2中以一个处理器11为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程。在一实施例中,电子设备1可以是上述服务端30,用于执行数据包处理方法。为便于说明方案,下文以多核平台作为执行主体进行描述。
44.存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read only memory,简称eprom),可编程只读存储器(programmable red-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
45.本技术还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器11执行以完成本技术提供的数据包处理方法。
46.参见图3,为本技术一实施例提供的数据包处理方法的流程示意图,如图3所示,该方法可以包括以下步骤310-步骤320。
47.步骤310:在获取目标数据包之后,多个安全检测协程对目标数据包进行检测,确定与目标数据包对应的转发信息;其中,每一安全检测协程分别对应一个cpu核心。
48.本技术方案应用于包含多个cpu核心的多核平台,该多核平台可以以dpdk架构为基础。多核平台可以对需要耗费大量cpu计算资源的安全检测环节进行拆分,分配到多个cpu核心上并行处理,充分利用多核架构优势,提升了数据安全分析的性能。
49.目标数据包为多核平台当前所处理的数据包。安全检测协程(coroutine)用于执行安全检测任务。这里,安全检测任务可以包括但不限于ids(intrusion detection system,入侵检测系统)任务、ips(intrusion prevention system,入侵防御系统)任务、
waf(web application firewall,网站应用级入侵防御系统)任务等。
50.在获得目标数据包之后,多核平台可以通过多个安全检测协程对目标数据包进行并行检测。这里,由于每一安全检测协程分别对应一个cpu核心,并行检测时,多个cpu核心执行对应安全检测协程的检测任务。通过并行检测,可以得到目标数据包对应的转发信息,该转发信息可以指示丢弃或转发目标数据包。
51.步骤320:依据转发信息对目标数据包进行处理。
52.多核平台在获得目标数据包的转发信息之后,可以以此转发或丢弃目标数据包。
53.通过上述措施,将需要耗费大量cpu计算资源的安全检测任务,分配至多个cpu核心,使得多个cpu核心可以并行执行多个安全检测协程对应的安全检测任务,从而基于多核架构优势,提高了数据包处理流程中分析处理环节的处理效率,避免无法从网卡接收队列及时收包而导致丢包的问题。此外,本技术方案通过协程机制代替线程机制,协程相比线程更为轻量,可以减少线程创建及切换的运算成本。
54.在一实施例中,在多个安全检测协程对目标数据包进行检测之前,多核平台的数据接收协程,可以从多核平台的网卡接收目标数据包。其中,数据接收协程对应一个cpu核心,数据接收协程用于接收并传递数据包。
55.在接收目标数据包之后,数据接收协程可以将目标数据包上传至多个安全检测协程,使得多个安全检测协程可以并行对目标数据包进行检测。
56.通过该措施,以独立cpu核心通过数据接收协程执行数据接收任务,可以更高效地从网卡接收目标数据包。
57.在一实施例中,多个安全检测协程可以对应不同检测类型,检测类型指示不同的安全检测任务。示例性的,多核平台包括四个安全检测协程;一个安全检测协程用于执行ids任务、一个安全检测协程用于执行ips任务、一个安全检测协程用于执行waf任务、一个安全检测协程用于执行反病毒任务。
58.在执行步骤310时,每一安全检测协程可以对目标数据包进行检测,从而获得安全检测协程对应检测类型的检测结果。这种情况下,可以获得多个检测结果,每一检测结果可以指示目标数据包是否存在攻击行为。
59.多核平台可以根据多个检测结果,确定目标数据包的转发信息。一方面,如果所有检测结果,均指示目标数据包不存在攻击行为,可以确定目标数据包不存在攻击行为,此时,确定转发信息为转发目标数据包。另一方面,如果存在任意一种检测类型对应的检测结果,指示目标数据包存在攻击行为,可以确定目标数据包存在攻击行为,此时,确定转发信息为丢弃目标数据包。
60.在一实施例中,在执行步骤320时,如果转发信息指示丢弃目标数据包,多核平台的数据释放协程可以将目标数据包进行丢弃。其中,数据释放协程对应一个cpu核心,数据释放协程用于丢弃数据包。转发信息指示丢弃目标数据包的情况下,数据释放协程对应的cpu核心,可以丢弃目标数据包。
61.在一实施例中,在执行步骤320时,如果转发信息指示转发目标数据包,多核平台的数据转发协程可以对目标数据包进行转发。其中,数据转发协程对应一个cpu核心,数据转发协程用于转发数据包。转发信息指示转发目标数据包的情况下,数据转发协程对应的cpu核心,可以转发目标数据包。
62.通过该措施,以独立cpu核心通过数据释放协程丢弃数据包,以独立cpu核心通过数据转发协程转发数据包,可以高效地对数据包进行处理。
63.在一实施例中,多核平台在执行步骤310之前,可以创建多个安全检测协程,并为每一安全检测协程分别绑定一个cpu核心。
64.多核平台可以为分析处理环节创建对应的安全检测模块,该安全检测模块包括多个安全检测子模块,每一安全检测子模块对应一个检测类型的安全检测任务。为每一安全检测子模块分配一个安全检测协程,并为每一安全检测协程绑定cpu核心之后,后续可以通过多个cpu核心并行对数据包执行多种检测类型的安全检测任务。
65.对于一些安全检测子模块,其对应的安全检测任务与不同连接(connection)的连接信息相关。这种情况下,针对每一连接,多核平台可以创建对应的安全检测协程,并将安全检测协程绑定cpu核心。
66.示例性的,安全检测模块包括5个安全检测子模块,分别执行5种类型的安全检测任务。其中,第5种安全检测任务与不同连接的连接信息相关。对于第1种至第4种安全检测子模块,多核平台可以分别创建一个安全检测协程,并绑定至cpu。对于第5种安全检测子模块,多核平台可以在每次接收到一个连接的数据包时,为该连接创建唯一对应的安全检测协程,并绑定至cpu。当后续不再接收到该连接的数据包时,可以释放为该连接所创建的安全检测协程。
67.对于与连接相关的安全检测任务。采用每一连接分配一个协程(coroutine-per-connection)的模式,各个连接的安全检测相互独立,互不干扰。此时,无需建立和维护全局连接表,在同时处理多个连接的流量时,可以显著提升处理效率。
68.在一实施例中,在数据接收协程从网卡接收目标数据包之前,多核平台可以创建数据接收协程,并为数据接收协程绑定一个cpu核心。
69.这种情况下,绑定数据接收协程的cpu核心可以专注于数据包的接收工作,从而提高了数据接收效率。
70.在一实施例中,在数据释放协程将目标数据包进行丢弃之前,多核平台可以创建数据释放协程,并为数据释放协程绑定一个cpu核心。
71.在数据转发协程对目标数据包进行转发之前,多核平台可以创建数据转发协程,并为数据转发协程绑定cpu核心。
72.这种情况下,数据释放协程和数据转发协程分别绑定一个cpu核心,使得cpu核心可以专注于数据包丢弃或数据包转发工作,从而提高了数据包处理的效率。
73.参见图4,为本技术一实施例提供的数据包处理方法的架构示意图,如图4所示,多核平台包含多个cpu核心,且各cpu核心被绑定到一个协程,负责执行协程对应的数据包处理任务。虚线框表示安全检测模块,包含多个执行不同检测类型任务的安全检测协程。多核平台接收数据包之后,数据接收协程对应的cpu核心可以从网卡接收数据包,并上传至安全检测模块。安全检测模块的多个安全检测协程可以并行对数据包进行安全检测,从而依据检测结果,确定转发信息。当转发信息指示丢弃数据包,数据释放协程对应的cpu核心可以丢弃数据包;当转发信息指示转发数据包,数据转发协程对应的cpu核心可以转发数据包。
74.通过协程机制替代线程机制,可以减少线程创建、切换的开销,从而提升数据包处理的整体性能;此外,为每一协程绑定一个cpu核心,可以充分利用多核架构,提高多核平台
的使用效率。
75.图5是本发明一实施例的一种数据包处理装置的框图,如图5所示,该装置可以包括:
76.检测模块510,用于在获取目标数据包之后,多个安全检测协程对所述目标数据包进行检测,确定与所述目标数据包对应的转发信息;其中,每一安全检测协程分别对应一个cpu核心;
77.处理模块520,用于依据所述转发信息对所述目标数据包进行处理。
78.上述装置中各个模块的功能和作用的实现过程具体详见上述数据包处理方法中对应步骤的实现过程,在此不再赘述。
79.在本技术所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
80.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
81.功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

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

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

相关文献