CN115033407B - 一种适用于云计算的采集识别流量的***和方法 - Google Patents

一种适用于云计算的采集识别流量的***和方法 Download PDF

Info

Publication number
CN115033407B
CN115033407B CN202210947404.6A CN202210947404A CN115033407B CN 115033407 B CN115033407 B CN 115033407B CN 202210947404 A CN202210947404 A CN 202210947404A CN 115033407 B CN115033407 B CN 115033407B
Authority
CN
China
Prior art keywords
original data
data message
module
kernel
cloud computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210947404.6A
Other languages
English (en)
Other versions
CN115033407A (zh
Inventor
黄剑锋
章璟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microstack Technology Zhejiang Co ltd
Original Assignee
Microstack Technology Zhejiang Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microstack Technology Zhejiang Co ltd filed Critical Microstack Technology Zhejiang Co ltd
Priority to CN202210947404.6A priority Critical patent/CN115033407B/zh
Publication of CN115033407A publication Critical patent/CN115033407A/zh
Application granted granted Critical
Publication of CN115033407B publication Critical patent/CN115033407B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种适用于云计算的采集识别流量的***,涉及云计算技术领域,包括内核态采集插件模块和用户态采集模块,内核态采集插件模块部署在Linux的内核空间,用户态采集模块部署在Linux的用户空间,内核态采集插件模块和用户态采集模块通信连接。本***还公开了一种适用于云计算的采集识别流量的方法,包括S100、准备工作;S200、接收原始数据报文并通知;S300、读取并解析原始数据报文;S400、分析和处理流日志和未完全解析的原始数据报文片段。本发明在不改变Linux操作***内核数据包处理架构及流程的前提下,提高了适用于云计算的采集识别流量的性能。

Description

一种适用于云计算的采集识别流量的***和方法
技术领域
本发明涉及云计算技术领域,尤其涉及一种适用于云计算的采集识别流量的***和方法。
背景技术
传统的以太网络数据采集软件在基于网络的应用特征识别及安全特征识别被广泛使用,其中基于通用型服务器硬件架构及Linux操作***,业界已广泛使用的方案有多种技术路线,主要有以下四种:
1)用户态的采集程序调用tcpdump/libpcap工具,在Linux操作***用户态执行,该过程需将数据包从内核sk_buff(Linux内核用于存放原始数据包的内存块,简称为skb)复制到一个专用内存区,再从这个内存区复制到用户态采集程序的内存,整个过程需要经历两次数据包拷贝。
2)用户态采集程序调用Linux***的packet_mmap工具,在Linux操作***用户态执行,该过程需将数据包从内核skb复制到共享内存空间(内核态和用户态均有访问权限的循环使用的内存块),再调用mmap(Linux中一种实现内核态内存地址和用户态内存地址映射的函数)从用户态采集程序直接访问共享内存,整个过程只需经历一次数据包拷贝。专利《用于网络及应用性能管理的流量采集方法》(CN108989151A)属于该类型技术路线。
3)通过修改网卡驱动程序代码,将网卡收到的数据数据包,写入在内核中新申请多个类似skb结构的内存块,而不再是默认的Linux内核原生的skb的地址。然后再通过修改Linux内核代码,新增1个套接字设备接口,同时将该内存块的标识映射共享给用户态采集程序,采集程序获得地址映射标识后,再通过这个套接字接口实现用户态采集程序直接访问内核中的自定义的skb结构的内存块地址。通过以上的一套机制,整个过程实现了零次数据包拷贝,也就是俗称的零拷贝。专利《一种基于Linux操作***实现零拷贝的装置和方法》(CN100464304C)属于该类型技术路线。
4)通过Linux内核标准Userspace I/O(简称UIO)机制,将网卡映射成用户态能够直接访问的网卡设备,通过加载用户态的网卡驱动实现数据包的收发。一种简单通俗的描述,可视作用户态程序旁路了Linux内核,直接从网卡硬件缓存队列上收发数据包,该技术典型的实现即为Intel公司推出的Data Plane Development Kit(简称DPDK)工具套件。专利《一种基于DPDK的用户空间内数据包快速检测方法》(CN107911237A)属于该类型技术路线。
以上四种技术路线都可适用于数据采集场景,第一种和第二种较适用于云计算场景,但在数据包的采集过程中都产生了数据包拷贝,数据包的解析识别均由用户态的采集程序负责完成,性能上存在明显的劣势。第三种和第四种对Linux操作***及云计算架构的侵入性太强,在兼容性方面并不友好,并且开发难度大,所以不适合用于云计算场景下的数据包采集。
因此,本领域的技术人员致力于开发一种适用于云计算的采集识别流量的***和方法。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是在不改变Linux操作***内核数据包处理架构及流程的前提下,提高适用于云计算的采集识别流量的性能。
随着近些年云计算市场的迅猛发展,产生了云平台虚拟机、容器粒度的网络及应用性能监控的市场需求,采集软件被要求部署在计算节点服务器操作***上而不是虚机或容器上,且需要确保极低的计算资源开销,不能对云平台计算节点主机的生产造成影响。
发明人分析,网络流量在Linux***中默认的数据包转发路径,均必须先经过内核态,然后再到用户态。采集流量时采用的最佳工作模式只有采用旁路模式,才不会对云平台上虚机及容器的网络造成任何的风险和影响。发明人研究,采集程序在默认的内核skb中直接读取数据包并解析识别输出分析结果即观测模式,将等同于实现了完全的零拷贝;在此基础之上,充分利用内核自带的传输层协议栈的解析结果,无需内核态采集程序做重新解析,将明显减少采集程序的算力消耗。因此,发明人通过套接字接口采集这台服务器上所有物理网口及虚拟网口,并且以一种观测者的工作模式,不修改网卡驱动、不修改原生Linux内核,设计并开发了适用于云计算的采集识别流量的***和方法。
本发明的一个实施例中,提供了一种适用于云计算的采集识别流量的***,包括:
内核态采集插件模块(简称kTap),响应于接收原始数据报文通知,读取并解析原始数据报文,生成流日志,拷贝流日志和未完全解析的原始数据报文片段到共享内存空间,即内核态和用户态均有访问权限的循环使用的内存块;
用户态采集模块(简称uAgent),响应于内核态采集插件模块输出的流日志和未完全解析的原始数据报文片段,对流日志和未完全解析的原始数据报文片段进行分析和处理,生成完整日志。
内核态采集插件模块部署在Linux的内核空间,用户态采集模块部署在Linux的用户空间,内核态采集插件模块和用户态采集模块通信连接,用户态采集模块配置内核态采集插件模块的采集识别规则,向内核态采集插件模块发送控制指令,并和内核态采集插件模块进行数据交换。
可选地,在上述实施例中的适用于云计算的采集识别流量的***中,内核态采集插件模块从sk_buff中读取原始数据报文。
可选地,在上述任一实施例中的适用于云计算的采集识别流量的***中,内核态采集插件模块通过调用快速识别栈解析原始数据报文。
可选地,在上述任一实施例中的适用于云计算的采集识别流量的***中,流日志包括传输层流日志、部分应用层流日志和相关的分析指标数据字段。
可选地,在上述任一实施例中的适用于云计算的采集识别流量的***中,内核态采集插件模块以插件的形式部署在Linux的内核空间。
可选地,在上述任一实施例中的适用于云计算的采集识别流量的***中,采集识别规则包括虚拟设备唯一标识、源IP、目标IP、源端口、目的端口、网络层协议类型、传输协议类型、包数量、包长度、采集持续时间、应用协议类型、流规则模板ID,其中虚拟设备唯一标识是必选字段,其余是可选,采集识别规则无约定时,默认为不做限制过滤及识别要求。
进一步地,在上述实施例中的适用于云计算的采集识别流量的***中,流规则模板包含一种协议类型及该协议类型的每个待解析的协议字段及该协议字段的在流日志中的标签名及分析指标的标签名。
可选地,在上述任一实施例中的适用于云计算的采集识别流量的***中,内核态采集插件模块和用户态采集模块数据交换通过mmap的方式。
基于上述任一实施例,本发明的另一个实施例中,提供了一种适用于云计算的采集识别流量的方法,包括如下步骤:
S100、准备工作;
S200、接收原始数据报文并通知,网卡接收原始数据报文完成后,Linux内核通知内核态采集插件模块完成接收原始数据报文;
S300、读取并解析原始数据报文,响应于接收原始数据报文完成的通知,内核态采集插件模块读取并解析原始数据报文,生成流日志,拷贝流日志和未完全解析的原始数据报文片段到共享内存空间,即内核态和用户态均有访问权限的循环使用的内存块;
S400、分析和处理流日志和未完全解析的原始数据报文片段,响应于流日志和未完全解析的原始数据报文片段,用户态采集模块对流日志和未完全解析的原始数据报文片段进行分析和处理,生成完整日志。
可选地,在上述实施例中的适用于云计算的采集识别流量的方法中,步骤S100中包括:
S110、加载内核态采集插件模块,在Linux的内核空间加载内核态采集插件模块;
S120、启动用户态采集模块,在Linux的用户空间启动用户态采集模块;
S130、内核态采集插件模块及用户态采集模块分别加载采集识别规则。
进一步地,在上述实施例中的适用于云计算的采集识别流量的方法中,采集识别规则包括虚拟设备唯一标识、源IP、目标IP、源端口、目的端口、网络层协议类型、传输协议类型、包数量、包长度、采集持续时间、应用协议类型、流规则模板ID,其中虚拟设备唯一标识是必选字段,其余是可选,采集识别规则无约定时,默认为不做限制过滤及识别要求。
进一步地,在上述实施例中的适用于云计算的采集识别流量的方法中,流规则模板包含一种协议类型及该协议类型的每个待解析的协议字段及该协议字段的在流日志中的标签名及分析指标的标签名。
可选地,在上述任一实施例中的适用于云计算的采集识别流量的方法中,步骤S200包括:
S210、接收原始数据报文,网卡接收原始数据报文;
S220、发送原始数据报文,网卡以DMA的方式把原始数据报文发送到内核sk_buff;
S230、通知接收原始数据报文完成,Linux内核通知内核态采集插件模块原始数据报文已写入sk_buff。
进一步地地,在上述实施例中的适用于云计算的采集识别流量的方法中,接收原始数据报文完成的通知中包含原始数据报文的访问地址。
可选地,在上述实施例中的适用于云计算的采集识别流量的方法中,步骤S300包括:
S310、读取原始数据报文,响应于接收原始数据报文完成的通知,内核态采集插件模块从sk_buff中读取原始数据报文;
S320、解析原始数据报文,内核态采集插件模块调用快速识别栈对原始数据报文按照会话进行解析;
S330、发送流日志和未完全解析的原始数据报文片段,内核态采集插件模块生成流日志,拷贝流日志和未完全解析的原始数据报文片段到共享内存空间。
进一步地,在上述实施例中的适用于云计算的采集识别流量的方法中,步骤S320包括:
S321、记录原始数据报文的内存地址及会话标识,内核态采集插件模块把原始数据报文的内存地址及生成的唯一会话标识记录到共享内存空间;
S322、解析原始数据报文,内核态采集插件模块根据采集识别规则对原始数据报文进行解析;
S323、判断传输层协议类型和会话,原始数据报文的传输层协议类型可识别,且会话已完整或者会话持续时间超过了最大会话记录间隔时长,执行步骤S325;否则等待会话下一个报文;
S324、判断采集识别规则,原始数据报文的传输层协议类型不可识别,符合采集识别规则时,内核态采集插件模块把未完全解析的原始数据报文片段拷贝到共享内存空间;不符合采集识别规则时,内核态采集插件模块丢弃原始数据报文;
S325、解析原始数据报文的应用层协议,内核态采集插件模块解析原始数据报文的应用层协议,生成流日志,把未完全解析的原始数据报文片段拷贝到共享内存空间。
进一步地,在上述实施例中的适用于云计算的采集识别流量的***中,步骤S325中流日志包括传输层流日志、部分应用层流日志和相关的分析指标数据字段。
可选地,在上述任一实施例中的适用于云计算的采集识别流量的方法中,步骤S400包括:
S410、用户态采集模块通过mmap方法,定期检查内核态的共享内存空间的流日志和未完全解析的原始数据报文片段;
S420、用户态采集模块对收到的流日志和未完全解析的原始数据报文片段进行分析和处理,关联后生成完整的流日志。
本发明使用内核态、用户态之间任务调度分配机制,确保在运行效能、安全及稳定性上通过精确的调度规则实现内核态和用户态的平衡。本发明使用运行在内核中的快速识别协议栈,以极低的算力开销,不但判断出协议种类,还判断出收到的原始数据报文适合在内核中解析识别还是复制到用户态做深度解析识别,由内核态采集插件和用户态采集程序协作,完成数据流量的采集和解析。本发明在无侵入性、不改变Linux原生代码及技术框架体系的基础上实现了介于零拷贝和一次拷贝,提高了适用于云计算的采集识别流量的性能。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是图示根据示例性实施例的适用于云计算的采集识别流量的***结构示意图;
图2是图示根据示例性实施例的适用于云计算的采集识别流量的方法的流程图;
图3是图示根据示例性实施例的读取并解析原始数据报文的流程图;
图4是图示根据示例性实施例的解析原始数据报文的流程图。
具体实施方式
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方示意性地适当夸大了部件的厚度。
发明人分析,网络流量在Linux***中默认的数据包转发路径,均必须先经过内核态,然后再到用户态。采集流量时采用的最佳工作模式只有采用旁路模式,才不会对云平台上虚机及容器的网络造成任何的风险和影响。发明人研究,采集程序在默认的内核skb中直接读取数据包并解析识别输出分析结果即观测模式,将等同于实现了完全的零拷贝;在此基础之上,充分利用内核自带的传输层协议栈的解析结果,无需内核态采集程序做重新解析,将明显减少采集程序的算力消耗。因此,发明人通过套接字接口采集这台服务器上所有物理网口及虚拟网口,并且以一种观测者的工作模式,不修改网卡驱动、不修改原生Linux内核,设计并开发了适用于云计算的采集识别流量的***和方法。
发明人设计了一种适用于云计算的采集识别流量的***,如图1所示,包括:
内核态采集插件模块(简称kTap),响应于接收原始数据报文通知,从sk_buff中读取原始数据报文,并通过调用快速识别栈解析原始数据报文,生成流日志,流日志包括传输层流日志、部分应用层流日志和相关的分析指标数据字段;拷贝流日志和未完全解析的原始数据报文片段到共享内存空间,即内核态和用户态均有访问权限的循环使用的内存块;
用户态采集模块(简称uAgent),响应于内核态采集插件模块输出的流日志和未完全解析的原始数据报文片段,对流日志和未完全解析的原始数据报文片段进行分析和处理,生成完整日志。
内核态采集插件模块部署在Linux的内核空间,用户态采集模块部署在Linux的用户空间,内核态采集插件模块和用户态采集模块通信连接,用户态采集模块配置内核态采集插件模块的采集识别规则,向内核态采集插件模块发送控制指令,并和内核态采集插件模块通过mmap的方式进行数据交换;其中,采集识别规则包括虚拟设备唯一标识、源IP、目标IP、源端口、目的端口、网络层协议类型、传输协议类型、包数量、包长度、采集持续时间、应用协议类型、流规则模板ID,流规则模板包含一种协议类型及该协议类型的每个待解析的协议字段及该协议字段的在流日志中的标签名及分析指标的标签名;其中虚拟设备唯一标识是必选字段,其余是可选,采集识别规则无约定时,默认为不做限制过滤及识别要求。
基于上述实施例,发明人提供了一种适用于云计算的采集识别流量的方法,如图2所示,包括如下步骤:
S100、准备工作,具体包括:
S110、加载内核态采集插件模块,在Linux的内核空间加载内核态采集插件模块;
S120、启动用户态采集模块,在Linux的用户空间启动用户态采集模块;
S130、内核态采集插件模块及用户态采集模块分别加载采集识别规则,包括虚拟设备唯一标识、源IP、目标IP、源端口、目的端口、网络层协议类型、传输协议类型、包数量、包长度、采集持续时间、应用协议类型、流规则模板ID,流规则模板包含一种协议类型及该协议类型的每个待解析的协议字段及该协议字段的在流日志中的标签名及分析指标的标签名;其中虚拟设备唯一标识是必选字段,其余是可选,采集识别规则无约定时,默认为不做限制过滤及识别要求。
S200、接收原始数据报文并通知,网卡接收原始数据报文完成后,Linux内核通知内核态采集插件模块完成接收原始数据报文,具体包括:
S210、接收原始数据报文,网卡接收原始数据报文;
S220、发送原始数据报文,网卡以DMA的方式把原始数据报文发送到内核sk_buff;
S230、通知接收原始数据报文完成,Linux内核通知内核态采集插件模块原始数据报文已写入sk_buff,通知中包含原始数据报文的访问地址。
S300、读取并解析原始数据报文,响应于接收原始数据报文完成的通知,内核态采集插件模块读取并解析原始数据报文,生成流日志,拷贝流日志和未完全解析的原始数据报文片段到共享内存空间,即内核态和用户态均有访问权限的循环使用的内存块;如图3所示,具体包括:
S310、读取原始数据报文,响应于接收原始数据报文完成的通知,内核态采集插件模块从sk_buff中读取原始数据报文;
S320、解析原始数据报文,内核态采集插件模块调用快速识别栈对原始数据报文按照会话进行解析;如图4所示,具体包括:
S321、记录原始数据报文的内存地址及会话标识,内核态采集插件模块把原始数据报文的内存地址及生成的唯一会话标识记录到共享内存空间;
S322、解析原始数据报文,内核态采集插件模块根据采集识别规则对原始数据报文进行解析;
S323、判断传输层协议类型和会话,原始数据报文的传输层协议类型可识别,且会话已完整或者会话持续时间超过了最大会话记录间隔时长,执行步骤S325;否则等待会话下一个报文;
S324、判断采集识别规则,原始数据报文的传输层协议类型不可识别,符合采集识别规则时,内核态采集插件模块把未完全解析的原始数据报文片段拷贝到共享内存空间;不符合采集识别规则时,内核态采集插件模块丢弃原始数据报文;
S325、解析原始数据报文的应用层协议,内核态采集插件模块解析原始数据报文的应用层协议,生成流日志,把未完全解析的原始数据报文片段拷贝到共享内存空间,流日志包括传输层流日志、部分应用层流日志和相关的分析指标数据字段。
S330、发送流日志和未完全解析的原始数据报文片段,内核态采集插件模块生成流日志,拷贝流日志和未完全解析的原始数据报文片段到共享内存空间。
S400、分析和处理流日志和未完全解析的原始数据报文片段,响应于流日志和未完全解析的原始数据报文片段,用户态采集模块对流日志和未完全解析的原始数据报文片段进行分析和处理,生成完整日志;具体包括:
S410、用户态采集模块通过mmap方法,定期检查内核态的共享内存空间的流日志和未完全解析的原始数据报文片段;
S420、用户态采集模块对收到的流日志和未完全解析的原始数据报文片段进行分析和处理,关联后生成完整的流日志。
为了验证性能优势,发明人在kubenetes容器云运行环境使用传统流量采集方式与本发明进行了性能对比。使用网测工具产生流量,包长度为1KB。被测主机是kubernetes容器云上的一个node节点服务器,包含了1个主机网卡端口及为6个POD分配的veth虚机端口,其中3个POD做压测客户端,另外3个POD做压测服务端。
使用上述适用于云计算的采集识别流量的***,按照适用于云计算的采集识别流量的方法进行操作,和使用tcpdump/libpcap方法、packet_mmap方法,包速率设定为500kpps,全部为TCP报文,平均包大小设定为1500Byte。性能对比如下表格:
Figure 423779DEST_PATH_IMAGE001
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

Claims (8)

1.一种适用于云计算的采集识别流量的***,其特征在于,包括:
内核态采集插件模块,响应于接收原始数据报文通知,读取并解析所述原始数据报文,所述内核态采集插件模块从sk_buff中读取所述原始数据报文,生成流日志,拷贝所述流日志和未完全解析的原始数据报文片段到共享内存空间;
用户态采集模块,响应于所述内核态采集插件模块输出的所述流日志和所述未完全解析的原始数据报文片段,对所述流日志和所述未完全解析的原始数据报文片段进行分析和处理,生成完整日志;
所述内核态采集插件模块部署在Linux的内核空间,所述用户态采集模块部署在Linux的用户空间,所述内核态采集插件模块和所述用户态采集模块通信连接,所述用户态采集模块配置所述内核态采集插件模块的采集识别规则,向所述内核态采集插件模块发送控制指令,并和所述内核态采集插件模块进行数据交换,所述内核态采集插件模块和所述用户态采集模块数据交换通过mmap的方式。
2.如权利要求1所述的适用于云计算的采集识别流量的***,其特征在于,所述内核态采集插件模块通过调用快速识别栈解析原始数据报文。
3.如权利要求2所述的适用于云计算的采集识别流量的***,其特征在于,所述流日志包括传输层流日志、部分应用层流日志和相关的分析指标数据字段。
4.一种适用于云计算的采集识别流量的方法,使用如权利要求3所述的适用于云计算的采集识别流量的***,其特征在于,包括如下步骤:
S100、准备工作;
S200、接收原始数据报文并通知,网卡接收所述原始数据报文完成后,Linux内核通知所述内核态采集插件模块完成接收所述原始数据报文;
S300、读取并解析原始数据报文,响应于接收所述原始数据报文完成的通知,所述内核态采集插件模块读取并解析所述原始数据报文,生成流日志,拷贝所述流日志和未完全解析的原始数据报文片段到共享内存空间;
S400、分析和处理流日志和未完全解析的原始数据报文片段,响应于所述流日志和所述未完全解析的原始数据报文片段,所述用户态采集模块对所述流日志和所述未完全解析的原始数据报文片段进行分析和处理,生成完整日志。
5.如权利要求4所述的适用于云计算的采集识别流量的方法,其特征在于,所述步骤S100包括:
S110、加载内核态采集插件模块,在Linux的内核空间加载所述内核态采集插件模块;
S120、启动用户态采集模块,在Linux的用户空间启动所述用户态采集模块;
S130、所述内核态采集插件模块及所述用户态采集模块分别加载采集识别规则。
6.如权利要求4或5所述的适用于云计算的采集识别流量的方法,其特征在于,所述步骤S200包括:
S210、接收原始数据报文,网卡接收所述原始数据报文;
S220、发送原始数据报文,网卡以DMA的方式把所述原始数据报文发送到内核sk_buff;
S230、通知接收原始数据报文完成,Linux内核通知所述内核态采集插件模块所述原始数据报文已写入sk_buff。
7.如权利要求6所述的适用于云计算的采集识别流量的方法,其特征在于,所述步骤S300包括:
S310、读取原始数据报文,响应于接收所述原始数据报文完成的通知,所述内核态采集插件模块从sk_buff中读取所述原始数据报文;
S320、解析原始数据报文,所述内核态采集插件模块调用快速识别栈对所述原始数据报文按照会话进行解析;
S330、发送流日志和未完全解析的原始数据报文片段,所述内核态采集插件模块生成流日志,拷贝所述流日志和未完全解析的原始数据报文片段到共享内存空间。
8.如权利要求7所述的适用于云计算的采集识别流量的方法,其特征在于,所述步骤S400包括:
S410、所述用户态采集模块通过mmap方法,定期检查内核态的所述共享内存空间的流日志和未完全解析的原始数据报文片段;
S420、所述用户态采集模块对收到的所述流日志和所述未完全解析的原始数据报文片段进行分析和处理,关联后生成完整的流日志。
CN202210947404.6A 2022-08-09 2022-08-09 一种适用于云计算的采集识别流量的***和方法 Active CN115033407B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210947404.6A CN115033407B (zh) 2022-08-09 2022-08-09 一种适用于云计算的采集识别流量的***和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210947404.6A CN115033407B (zh) 2022-08-09 2022-08-09 一种适用于云计算的采集识别流量的***和方法

Publications (2)

Publication Number Publication Date
CN115033407A CN115033407A (zh) 2022-09-09
CN115033407B true CN115033407B (zh) 2022-11-04

Family

ID=83130369

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210947404.6A Active CN115033407B (zh) 2022-08-09 2022-08-09 一种适用于云计算的采集识别流量的***和方法

Country Status (1)

Country Link
CN (1) CN115033407B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116166508B (zh) * 2023-04-18 2023-07-07 天津市天河计算机技术有限公司 Io数据分析方法、装置、设备、存储介质及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109561105A (zh) * 2018-12-29 2019-04-02 江苏博智软件科技股份有限公司 一种基于报文零拷贝方式的高性能报文捕获发送平台
CN111371920A (zh) * 2020-03-16 2020-07-03 广州根链国际网络研究院有限公司 Dns前端解析方法及***
WO2021164262A1 (zh) * 2020-02-18 2021-08-26 平安科技(深圳)有限公司 虚拟网络的流量采集方法、装置、计算机设备及存储介质
CN113472580A (zh) * 2021-07-01 2021-10-01 交通运输信息安全中心有限公司 基于动态加载机制的告警***及告警方法
CN114356598A (zh) * 2021-12-29 2022-04-15 山东浪潮科学研究院有限公司 Linux内核态与用户态的数据交互方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9354977B1 (en) * 2008-12-15 2016-05-31 Open Invention Network Llc System and method for hybrid kernel- and user-space incremental and full checkpointing
CN114244560B (zh) * 2021-11-10 2024-04-16 奇安信科技集团股份有限公司 流量处理方法及装置,电子设备,存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109561105A (zh) * 2018-12-29 2019-04-02 江苏博智软件科技股份有限公司 一种基于报文零拷贝方式的高性能报文捕获发送平台
WO2021164262A1 (zh) * 2020-02-18 2021-08-26 平安科技(深圳)有限公司 虚拟网络的流量采集方法、装置、计算机设备及存储介质
CN111371920A (zh) * 2020-03-16 2020-07-03 广州根链国际网络研究院有限公司 Dns前端解析方法及***
CN113472580A (zh) * 2021-07-01 2021-10-01 交通运输信息安全中心有限公司 基于动态加载机制的告警***及告警方法
CN114356598A (zh) * 2021-12-29 2022-04-15 山东浪潮科学研究院有限公司 Linux内核态与用户态的数据交互方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GREBE: Unveiling Exploitation Potential for Linux Kernel Bugs;Zhenpeng Lin;《IEEE》;20220727;全文 *
零拷贝技术在网络流量控制***中的应用;张素娟等;《河北联合大学学报(自然科学版)》;20130725(第03期);全文 *

Also Published As

Publication number Publication date
CN115033407A (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
CN111371779B (zh) 一种基于dpdk虚拟化管理***的防火墙及其实现方法
US10432745B2 (en) Accelerated network packet processing
EP2933955B1 (en) Deep packet inspection method, device, and coprocessor
WO2022134942A1 (zh) 一种海量流量下报文识别的方法和装置
US9356844B2 (en) Efficient application recognition in network traffic
CN112929299B (zh) 基于fpga加速卡的sdn云网络实现方法、装置及设备
CN114244560B (zh) 流量处理方法及装置,电子设备,存储介质
CN108989151B (zh) 用于网络或应用性能管理的流量采集方法
CN107133109B (zh) 一种模块间通信的方法、装置及计算设备
CN109787823B (zh) 服务质量QoS标记方法、装置及存储介质
CN104158764B (zh) 报文处理方法及装置
CN107769992B (zh) 一种报文解析分流方法及装置
CN102098227A (zh) 报文捕获方法及内核模块
CN115033407B (zh) 一种适用于云计算的采集识别流量的***和方法
WO2022267815A1 (zh) 数据包过滤方法和装置、电子设备、和计算机可读存储介质
US20120140640A1 (en) Apparatus and method for dynamically processing packets having various characteristics
CN114885045B (zh) 一种在高速智能网卡/dpu内节约dma通道资源方法和装置
CN112437028A (zh) 一种嵌入式***扩展多个网口的方法及***
CN113067810A (zh) 网络抓包方法、装置、设备和介质
CN113986969A (zh) 数据处理方法、装置、电子设备和存储介质
CN116723162B (zh) 一种网络首包处理方法、***、装置、介质及异构设备
CN113114594A (zh) 一种策略生成方法及装置、存储介质
WO2021128936A1 (zh) 报文的处理方法及装置
US9258273B2 (en) Duplicating packets efficiently within a network security appliance
US20230060132A1 (en) Coordinating data packet processing between kernel space and user space

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant