掌桥专利:专业的专利平台
掌桥专利
首页

内核空间处理分类任务的方法及装置

文献发布时间:2024-04-18 20:00:50


内核空间处理分类任务的方法及装置

技术领域

本文件涉及数据包处理技术领域,尤其涉及一种内核空间处理分类任务的方法及装置。

背景技术

随着深度学习技术的快速发展,相关研究人员开始关注包含分类任务在内的深度学习模型处理任务的效率,传统处理方式需要将请求数据包传输至用户空间处理,处理效率低下且需要大量资源消耗。

近年来网络数据包捕获与分析技术中的eBFP技术发展迅速,该技术能够插入到正在运行的Linux系统中,实现数据包捕获、安全防御及系统追踪等功能,XDP处理器是一种特殊的eBFP技术,能够在协议栈早期处理数据包,尽可能减少内核开销。

综合以上该技术领域发展状况分析,现有的技术需要在用户空间处理分类模型任务,缺少在内核空间直接处理的方案。

发明内容

本发明的目的在于提供一种内核空间处理分类任务的方法及装置,旨在解决现有技术中的上述问题。

根据本公开实施例的第一方面,提供一种内核空间处理分类任务的方法,包括:

获取请求数据包,将请求数据包解析为HTTP请求数据包,过滤HTTP请求数据包的冗余信息,清洗过滤后HTTP请求数据包,将清洗后HTTP请求数据包的信息存入哈希型eBPFmap中;

捕获与请求数据包对应的HTTP响应数据包,清洗HTTP响应数据包,将清洗后HTTP响应数据包的信息存入哈希型eBPF map中,与对应的清洗后HTTP请求数据包进行关联;

对清洗后HTTP请求数据包和清洗后HTTP响应数据包进行特征提取,得到用户访问特征;将用户访问特征存入哈希型eBPF map中,将用户访问特征与要使用的分类器模型的参数数据对应;其中,分类器模型为在用户空间训练好的模型;

在哈希型eBPF map中,将用户访问特征输入到对应的分类器模型,得到分类结果,将分类结果放入数组型eBPF map中。

根据本公开实施例的第二方面,提供一种内核空间处理分类任务的装置,包括:

数据包处理模块,用于将请求数据包解析为HTTP请求数据包,过滤HTTP请求数据包的冗余信息,清洗过滤后HTTP请求数据包,将清洗后HTTP请求数据包的信息存入哈希型eBPF map中;

关联标记模块,用于捕获与请求数据包对应的HTTP响应数据包,清洗HTTP响应数据包,将清洗后HTTP响应数据包的信息存入哈希型eBPF map中,与对应的清洗后HTTP请求数据包进行关联;

特征提取及存储模块,用于对清洗后HTTP请求数据包和清洗后HTTP响应数据包进行特征提取,得到用户访问特征;将用户访问特征存入哈希型eBPF map中,将用户访问特征与要使用的分类器模型的参数数据对应;其中,分类器模型为在用户空间训练好的模型;

分类模块,用于在哈希型eBPF map中将用户访问特征输入到对应的分类器模型,得到分类结果,将分类结果放入数组型eBPF map中。

根据本公开实施例的第三方面,提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现本公开第一方面所提供的在内核空间处理分类任务的方法的步骤。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有信息传递的实现程序,程序被处理器执行时实现本公开第一方面所提供的在内核空间处理分类任务的方法的步骤。

本发明实施例提供的技术方案包括以下有益效果:通过内核空间的数据包捕获技术解析处理分类任务的请求数据包,在eBPF map中获取已经在用户空间训练过模型的参数信息,使分类器模型能够在内核空间运行,而无需在用户空间完成分类任务;提升了分类任务的处理效率,减少了处理的资源消耗。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例的内核空间处理分类任务的方法的流程图;

图2是本发明实施例的用清洗后HTTP数据包保留特征的示意图;

图3是本发明实施例的哈希型eBPF map工作原理的示意图;

图4是本发明实施例的请求数据包捕获、关联标记及特征提取的示意图;

图5是本发明实施例的内核空间处理分类任务的装置的示意图;

图6是本发明实施例的电子设备的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。

方法实施例

根据本发明实施例,提供了一种内核空间处理分类任务的方法,图1是本发明实施例的内核空间处理分类任务的方法的流程图,如图1所示,根据本发明实施例的内核空间处理分类任务的方法,具体包括:

在步骤S110中,获取请求数据包,将请求数据包解析为HTTP请求数据包,过滤HTTP请求数据包的冗余信息,清洗过滤后HTTP请求数据包,将清洗后HTTP请求数据包的信息存入哈希型eBPF map中。具体包括:

使用LLVM编译器和JIT编译器,将eBPF程序编译成机器码,通过将机器码插入内核中,在XDP处理器处捕获入口的请求数据包,并将请求数据包解析为HTTP请求数据包。

通过XDP处理器过滤HTTP请求数据包中的图片媒体文件、javascript文件、CSS文件及静态HTML页面,得到过滤后请求数据包;剔除过滤后请求数据包中冗余信息,如无用的用户浏览器、cookie、session等特征无关的信息数据,保留ip地址、访问次数及访问数据,得到清洗后HTTP数据包;其中,访问数据包括访问路径、访问时间、与上次访问的时间间隔及响应数据包的大小。图2是本发明实施例的用清洗后HTTP数据包保留特征的示意图,如图2所示,展示了清洗后HTTP数据包中特征的存储形式。

通过XDP处理器过滤HTTP请求数据包中的图片媒体文件、javascript文件、CSS文件及静态HTML页面,得到过滤后请求数据包;

剔除过滤后请求数据包中冗余信息,如无用的用户浏览器、cookie、session等特征无关的信息数据,保留ip地址、访问次数及访问数据,得到清洗后HTTP请求数据包;其中,访问数据包括访问路径、访问时间及与上次访问的时间间隔。

在步骤S120中,捕获与请求数据包对应的HTTP响应数据包,清洗HTTP响应数据包,将清洗后HTTP响应数据包的信息存入哈希型eBPF map中,与对应的清洗后HTTP请求数据包进行关联。具体包括:

在sockets层捕获与请求数据包内部token字段一致的HTTP响应数据包,剔除HTTP响应数据包中冗余信息,保留ip地址、访问次数及访问数据,得到清洗后HTTP响应数据包,其中,访问数据包括访问路径、访问时间、上次访问的时间间隔及响应数据包大小;如图2所示,展示了清洗后HTTP请求数据包和清洗后响应数据包中特征的存储形式。

在哈希型eBPF map中寻找对应请求数据包的信息所在的键值,将清洗后HTTP响应数据包的信息添加到该键值对应的索引里。

在步骤S130中,对清洗后HTTP请求数据包和清洗后HTTP响应数据包进行特征提取;将用户访问特征存入哈希型eBPF map中,将用户访问特征与要使用的分类器模型的参数数据对应;其中,分类器模型为在用户空间训练好的模型。具体包括:

通过正则匹配法提取特征的序列,提取清洗后HTTP请求数据包和清洗后HTTP响应数据包中的ip地址、访问次数及访问数据,得到用户访问特征。

将一段实际内的用户访问特征存入哈希型eBPF map中,防止过少的访问请求无法确定用户类型,因此借助哈希型eBPF map存储。

在步骤S140中,在哈希型eBPF map中,将用户访问特征输入到对应的分类器模型,得到分类结果,将分类结果放入数组型eBPF map中。具体包括:

用户访问特征在哈希型eBPF map中存储一段时间后,将用户特征输入到对应的分类器模型中,得到分类结果,等待的时间可以为一个预定的时间窗口,也可以根据访问请求的数量达到某个预定的值而定;如果分类结果的准确率达不到预定值,将分类器模型送入用户空间重新训练,得到新参数数据,使用新参数数据更新哈希型eBPF map中分类器模型对应的参数数据,重新得到分类结果。图3是本发明实施例的哈希型eBPF map工作原理的示意图,如图3所示,展示了哈希型eBPF map的工作过程。

在本实施例中哈希型eBPF map和数组型eBPF map能够存储的数据大小是有限的,默认情况下最多存储232个键值对,每个键和值的大小的范围是1到64字节之间,具体限制取决于操作系统版本、内存大小、内核参数等多个因素,因此完成分类后将数据从map中清除。

进一步在本实施例中,处理分类任务用于判断攻击,根据分类结果判断用户是否为攻击者,将攻击者的IP地址放入黑名单,将非攻击者的IP地址放入白名单。

综上所述,针对现状存在的问题,本次发明一种内核空间处理分类任务的方法,使用eBPF技术在XDP存储器处捕获请求数据包,在sockets层捕获响应数据包,提升了捕获数据包的速度和准确率;对解析为HTTP格式的请求数据包清洗并储存,过滤了无用的静态信息,能够在一定程度上减少内核开销,在哈希型eBPF map中存储便于响应数据包与请求数据包进行关联标记和特征提取,且能辅助记录用户访问数据;哈希型eBPF map中存储了已经在用户空间训练好的分类模型,使分类器模型能够在内核空间运行,而无需在用户空间完成分类任务,提升了分类任务的处理效率,减少了处理的资源消耗,且分类器模型参数可随时根据分类效果更新,便于提升分类器模型的性能。

结合以下附图,对本发明实施例的上述技术方案进行举例说明。

图4是本发明实施例的请求数据包捕获、关联标记及特征提取的示意图,如图4所示,展示了请求数据包从网卡进入XDP层被XDP处理器捕获,转化为HTTP数据格式并过滤,并清洗过滤后,将清洗后HTTP请求数据包放入哈希型eBPF map中,等待eBPF程序在sockets层捕获对应的HTTP响应数据包,清洗HTTP响应数据包后与清洗后HTTP请求数据包进行关联标记,关联标记成功后,对清洗后HTTP请求数据包和清洗后HTTP响应数据包进行特征提取。

装置实施例

根据本发明实施例,提供了一种内核空间处理分类任务的装置,图5是本发明实施例的内核空间处理分类任务的装置的示意图,如图5所示,根据本发明实施例的内核空间处理分类任务的装置,具体包括:

数据包处理模块50,用于将请求数据包解析为HTTP请求数据包,过滤HTTP请求数据包的冗余信息,清洗过滤后HTTP请求数据包,将清洗后HTTP请求数据包的信息存入哈希型eBPF map中。具体用于:

使用LLVM编译器和JIT编译器,将eBPF程序编译成机器码,通过将机器码插入内核中,在XDP处理器处捕获入口的请求数据包,并将请求数据包解析为HTTP请求数据包。

通过XDP处理器过滤HTTP请求数据包中的图片媒体文件、javascript文件、CSS文件及静态HTML页面,得到过滤后请求数据包;

剔除过滤后请求数据包中冗余信息,保留ip地址、访问次数及访问数据,得到清洗后HTTP请求数据包;其中,访问数据包括访问路径、访问时间及与上次访问的时间间隔。

关联标记模块52,用于捕获与请求数据包对应的HTTP响应数据包,清洗HTTP响应数据包,将清洗后HTTP响应数据包的信息存入哈希型eBPF map中,与对应的清洗后HTTP请求数据包进行关联。具体用于:

在sockets层捕获与请求数据包内部token字段一致的HTTP响应数据包,剔除HTTP响应数据包中冗余信息,保留ip地址、访问次数及访问数据,得到清洗后HTTP响应数据包,其中,访问数据包括访问路径、访问时间、上次访问的时间间隔及响应数据包的大小;

在哈希型eBPF map中寻找对应请求数据包的信息所在的键值,将清洗后HTTP响应数据包的信息添加到该键值对应的索引里。

特征提取及存储模块54,用于对清洗后HTTP请求数据包和清洗后HTTP响应数据包进行特征提取,得到用户访问特征;将用户访问特征存入哈希型eBPF map中,将用户访问特征与要使用的分类器模型的参数数据对应;其中,分类器模型为在用户空间训练好的模型。具体用于:

通过正则匹配法提取特征的序列,提取清洗后HTTP请求数据包和清洗后HTTP响应数据包中的ip地址、访问次数及访问数据,得到用户访问特征。

在哈希型eBPF map中寻找用户访问特征要使用的分类器模型的参数数据所在的键值,将用户访问特征添加到该键值对应的索引里。

分类模块56,用于在哈希型eBPF map中将用户访问特征输入到对应的分类器模型,得到分类结果,将分类结果放入数组型eBPF map中。具体用于:

将用户访问特征输入到对应的分类器模型,如果分类结果的准确率达不到预定值,将分类器模型送入用户空间重新训练,得到新参数数据,使用新参数数据更新哈希型eBPF map中分类器模型对应的参数数据,重新得到分类结果。

综上所述,针对现状存在的问题,本次发明一种内核空间处理分类任务的装置,使用eBPF技术在XDP存储器处捕获请求数据包,在sockets层捕获响应数据包,提升了捕获数据包的速度和准确率;对解析为HTTP格式的请求数据包清洗并储存,过滤了无用的静态信息,能够在一定程度上减少内核开销,在哈希型eBPF map中存储便于响应数据包与请求数据包进行关联标记和特征提取,且能辅助记录用户访问数据;哈希型eBPF map中存储了已经在用户空间训练好的分类模型,使分类器模型能够在内核空间运行,而无需在用户空间完成分类任务,提升了分类任务的处理效率,减少了处理的资源消耗,且分类器模型参数可随时根据分类效果更新,便于提升分类器模型的性能。

电子设备实施例

图6是本发明实施例的电子设备的示意图。电子设备600,可包括至少一个处理器610和存储器620。处理器610可以执行存储在存储器620中的指令。处理器610通过数据总线与存储器620通信连接。除存储器620外,处理器610还可通过数据总线与输入设备630、输出设备640、通信设备650通信连接。

处理器610可以是任何常规的处理器,诸如商业可获得的CPU。处理器还可以包括诸如图像处理器(Graphic Process Unit,GPU),现场可编程门阵列(Field ProgrammableGate Array,FPGA)、片上系统(System on Chip,SOC)、专用集成芯片(ApplicationSpecific Integrated Circuit,ASIC)或它们的组合。

存储器620可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

在本公开实施例中,存储器620中存储有可执行指令,处理器610可以从存储器620中读取可执行指令,并执行指令以实现上述示例性实施例中任一的内核空间处理分类任务的方法的全部或部分步骤。

计算机可读存储介质实施例

除了上述方法和装置以外,本公开的示例性实施例还可以是计算机程序产品或存储有该计算机程序产品的计算机可读存储介质,该计算机产品中包括计算机程序指令,该计算机程序指令可被处理器执行,以实现上述示例性实施例中任一的内核空间处理分类任务的方法中描述的全部或部分步骤。

计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言以及脚本语言(例如Python)。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线电连接的静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘,或者上述的任意合适的组合。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

相关技术
  • 一种微波谐振腔的腔长测量装置、传感器
  • 一种两腔式一体化传感器
  • 一种两腔式一体化传感器
技术分类

06120116545021