CN114356593A - 数据处理方法、装置、网络设备及介质 - Google Patents

数据处理方法、装置、网络设备及介质 Download PDF

Info

Publication number
CN114356593A
CN114356593A CN202111459217.5A CN202111459217A CN114356593A CN 114356593 A CN114356593 A CN 114356593A CN 202111459217 A CN202111459217 A CN 202111459217A CN 114356593 A CN114356593 A CN 114356593A
Authority
CN
China
Prior art keywords
data
data packet
space
kernel
packet
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.)
Pending
Application number
CN202111459217.5A
Other languages
English (en)
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.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN202111459217.5A priority Critical patent/CN114356593A/zh
Publication of CN114356593A publication Critical patent/CN114356593A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本公开提供一种数据处理方法、装置、网络设备及介质,涉及计算机通信技术领域。本公开通过在网络设备的操作系统的内核空间中获取到待传输的第一数据包之后,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包,以便在传输位于内核空间的第一数据包的同时,可以基于对用户空间的第二数据包进行数据识别,从而使得数据识别过程不会影响数据包的正常传输,进而可以在保证实现网络内容识别的基础上,提高数据传输效率。

Description

数据处理方法、装置、网络设备及介质
技术领域
本公开涉及计算机通信技术领域,尤其涉及一种数据处理方法、装置、 网络设备及介质。
背景技术
随着互联网技术的不断发展,人们对网络的使用越来越频繁。与此同时, 网络环境中可能存在着一些不符合网络环境规范的内容,这些内容很容易对 用户的身心健康产生不良影响。此外,家长可能需要对孩子使用各个应用的 时长进行监督。因此,亟需一种数据处理方法,来对网络内容进行识别。
相关技术中,主要是通过在Linux内核网络协议栈中,劫持要返回给终 端的数据包,进而对劫持到的数据包所包括的数据进行识别。
在上述实现过程中,需要等待已劫持到的数据包识别完成后,根据识别 结果,来对数据包进行放行或阻断,从而导致数据传输效率较低。
发明内容
有鉴于此,本公开提供一种数据处理方法、装置、网络设备及介质,可 以有效提高数据传输效率。
根据本公开实施例的第一方面,提供了一种数据处理方法,该方法包括:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;
传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行 数据识别。
在本公开的一些实施例中,响应于在网络设备的操作系统的内核空间中 获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得 到位于用户空间的第二数据包,包括:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 将第一数据包缓存至内核空间的目标缓存区域中,并将第一数据包从目标缓 存区域复制到用户空间,得到位于用户空间的第二数据包。
在本公开的一些实施例中,响应于在网络设备的操作系统的内核空间中 获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得 到位于用户空间的第二数据包,包括:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 在第一数据包满足第二目标条件的情况下,将第一数据包从内核空间复制到 用户空间,得到位于用户空间的第二数据包。
在本公开的一些实施例中,响应于在网络设备的操作系统的内核空间中 获取到待传输的第一数据包,在第一数据包满足第二目标条件的情况下,将 第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包, 包括:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 基于第一数据包生成内核连接表;
基于内核连接表,获取第一数据包的地址信息、目标连接的连接信息以 及第一数据包对应的深度包检测DPI标识,目标连接为用于传输第一数据包 的连接;
在地址信息为目标地址信息,且基于连接信息确定目标连接为新建立的 连接,且DPI标识指示第一数据包待进行数据检测的情况下,将第一数据包 从内核空间复制到用户空间,得到位于用户空间的第二数据包。
在本公开的一些实施例中,地址信息包括网际协议IP地址和/或媒体存 取控制MAC地址,IP地址包括源IP地址和/或目的IP地址,MAC地址包 括源MAC地址和/或目的MAC地址。
在本公开的一些实施例中,将第一数据包从内核空间复制到用户空间, 得到位于用户空间的第二数据包之后,该方法还包括:
基于内核连接表和第二数据包,生成用户态连接表和连接标识;
将连接标识分别添加至内核连接表和用户态连接表中;
基于包括连接标识的内核连接表和包括连接标识的用户态连接表,对位 于用户空间的第二数据包进行数据识别。
在本公开的一些实施例中,传输位于内核空间的第一数据包,并对位于 用户空间的第二数据包进行数据识别之后,该方法还包括:
在第二数据包所包括的数据满足第一目标条件的情况下,停止传输第一 数据包。
在本公开的一些实施例中,在第二数据包所包括的数据满足第一目标条 件的情况下,停止传输第一数据包,包括下述至少一项:
在第二数据包所包括的数据中存在目标类型的数据的情况下,停止传输 第一数据包;
在第二数据包所包括的数据对应的数据流量超过流量阈值的情况下,停 止传输第一数据包。
在本公开的一些实施例中,传输位于内核空间的第一数据包,并对位于 用户空间的第二数据包进行数据识别之后,该方法还包括下述任一项:
基于第二数据包对应的目标应用,确定流经目标连接的目标应用的数据 流量对应的应用使用时长,目标连接为用于传输第一数据包的连接;
基于第二数据包识别完成的时间以及第一数据包传输完成的时间,确定 第二数据包对应的目标应用的应用使用时长。
根据本公开实施例的第二方面,提供了一种数据处理装置,该装置包括:
复制模块,用于响应于在网络设备的操作系统的内核空间中获取到待传 输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户 空间的第二数据包;
数据传输模块,用于传输位于内核空间的第一数据包;
数据识别模块,用于对位于用户空间的第二数据包进行数据识别。
在本公开的一些实施例中,该复制模块,在用于响应于在网络设备的操 作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间 复制到用户空间,得到位于用户空间的第二数据包时,用于:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 将第一数据包缓存至内核空间的目标缓存区域中,并将第一数据包从目标缓 存区域复制到用户空间,得到位于用户空间的第二数据包。
在本公开的一些实施例中,该复制模块,在用于响应于在网络设备的操 作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间 复制到用户空间,得到位于用户空间的第二数据包时,用于:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 在第一数据包满足第二目标条件的情况下,将第一数据包从内核空间复制到 用户空间,得到位于用户空间的第二数据包。
在本公开的一些实施例中,该复制模块,在用于响应于在网络设备的操 作系统的内核空间中获取到待传输的第一数据包,在第一数据包满足第二目 标条件的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户 空间的第二数据包时,包括生成单元、获取单元和复制单元;
生成单元,用于响应于在网络设备的操作系统的内核空间中获取到待传 输的第一数据包,基于第一数据包生成内核连接表;
获取单元,用于基于内核连接表,获取第一数据包的地址信息、目标连 接的连接信息以及第一数据包对应的深度包检测DPI标识,目标连接为用于 传输第一数据包的连接;
复制单元,用于在地址信息为目标地址信息,且基于连接信息确定目标 连接为新建立的连接,且DPI标识指示第一数据包待进行数据检测的情况下, 将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。
在本公开的一些实施例中,地址信息包括网际协议IP地址和/或媒体存 取控制MAC地址,IP地址包括源IP地址和/或目的IP地址,MAC地址包括 源MAC地址和/或目的MAC地址。
在本公开的一些实施例中,该装置还包括:
生成模块,用于基于内核连接表和第二数据包,生成用户态连接表和连 接标识;
添加模块,用于将连接标识分别添加至内核连接表和用户态连接表中;
该数据识别模块,还用于基于包括连接标识的内核连接表和包括连接标 识的用户态连接表,对位于用户空间的第二数据包进行数据识别。
在本公开的一些实施例中,该数据传输模块,还用于在第二数据包所包 括的数据满足第一目标条件的情况下,停止传输第一数据包。
在本公开的一些实施例中,该数据传输模块,在用于在第二数据包所包 括的数据满足第一目标条件的情况下,停止传输第一数据包时,用于下述至 少一项:
在第二数据包所包括的数据中存在目标类型的数据的情况下,停止传输 第一数据包;
在第二数据包所包括的数据对应的数据流量超过流量阈值的情况下,停 止传输第一数据包。
在本公开的一些实施例中,该装置还包括:
确定模块,用于基于第二数据包对应的目标应用,确定流经目标连接的 目标应用的数据流量对应的应用使用时长,目标连接为用于传输第一数据包 的连接;
该确定模块,还用于基于第二数据包识别完成的时间以及第一数据包传 输完成的时间,确定第二数据包对应的目标应用的应用使用时长。
根据本公开实施例的第三方面,提供了一种非临时性计算机可读存储介 质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面及第 一方面的任一实施例所提供的数据处理方法的步骤。
根据本公开实施例的第四方面,提供了一种网络设备,该网络设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,该处理器被配置为:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;
传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行 数据识别。
根据本公开实施例的第五方面,提供了一种计算机程序产品,该计算机 程序产品包括计算机程序,程序被处理器执行时实现上述第一方面及第一方 面的任一实施例所提供的数据处理方法的步骤。
本公开实施例提供的技术方案可以包括以下有益效果:
通过在网络设备的操作系统的内核空间中获取到待传输的第一数据包之 后,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数 据包,以便在传输位于内核空间的第一数据包的同时,可以对位于用户空间 的第二数据包进行数据识别,从而使得数据识别过程不会影响数据包的正常 传输,进而可以在保证实现网络内容识别的基础上,提高数据传输效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的, 并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公 开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开根据一示例性实施例示出的一种数据处理方法的实施环境 示意图;
图2是本公开根据一示例性实施例示出的一种数据处理方法的流程图;
图3是本公开根据一示例性实施例示出的一种PF_RING技术的实现原 理图;
图4是本公开根据一示例性实施例示出的一种内核连接表的结构示意图;
图5是本公开根据一示例性实施例示出的一种数据包处理过程的流程示 意图;
图6是本公开根据一示例性实施例示出的一种用户态连接表的结构示意 图;
图7是本公开根据一示例性实施例示出的一种PF_RING报文的结构示 意图;
图8是本公开根据一示例性实施例示出的一种实现内核连接表和用户态 连接表的连接的原理示意图;
图9是本公开根据一示例性实施例示出的一种用户策略的设置过程的示 意图;
图10是本公开根据一示例性实施例示出的一种数据处理方法的原理示 意图;
图11是本公开根据一示例性实施例示出的一种数据处理装置的框图;
图12是本公开根据一示例性实施例示出的一种网络设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描 述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。 以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方 式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一 致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本 公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该” 也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中 使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能 组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信 息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区 分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息, 类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如 果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本公开提供了一种数据处理方法,用于对待传输的数据包进行数据识别, 从而保证待传输的数据包所包括的数据中不存在不符合网络环境规范的内容, 或者,保证待传输的数据包满足家长对孩子使用网络的时长的限制。该数据 处理方法可以由网络设备执行,参见图1,图1是本公开根据一示例性实施 例示出的一种数据处理方法的实施环境示意图,该实施环境包括终端101、 网络设备102和服务器103。
终端101可以为智能手机、智能手表、台式计算机、平板电脑、笔记本 电脑等;网络设备102可以为路由器,可选地,网络设备102还可以为其他 类型的网关设备;服务器103可以为一台服务器、多台服务器、服务器集群、 云计算平台等,本公开对终端101、网络设备102和服务器103的设备数量 和设备类型均不加以限定。
本公开所提供的数据处理方法,可以应用在终端101和服务器103的上 行数据传输过程中,还可以应用在终端101和服务器103的下行数据传输过 程中,下面分别对这两种情况进行说明。
在终端101和服务器103的上行数据传输过程中,终端101可以生成待 传输的数据包,进而将待传输的数据包发送给网络设备102,以便通过网络 设备102,来将待传输的数据包发送给服务器103,实现终端101和服务器 103的上行数据传输。
在终端101和服务器103的下行数据传输过程中,服务器103在获取到 待传输的数据包后,将待传输的数据包发送给网络设备102,以便通过网络 设备102,将待传输的数据包发送给终端101,实现终端101和服务器103 的下行数据传输。
在上述两种传输过程中,网络设备102均可以在传输待传输的数据包时, 通过本公开所提供的数据处理方法,来对待传输的数据包进行数据识别。也 即是,该数据处理方法可以由如图1所示的实施环境中的网络设备102执行。
其中,待传输的数据包可以为多种类型的数据对应的数据包,如网页数 据对应的数据包、文本数据对应的数据包、图像数据对应的数据包、视频数 据对应的数据包、音频数据对应的数据包等,可选地,待传输的数据包还可 以为其他类型的数据对应的数据包,本公开对数据包的类型不加以限定。
通过以路由器作为网络设备,从而通过路由器来执行本公开所提供的数 据处理方法,来对待传输的数据包进行数据识别,可以做到一机部署,整个 家庭受用。
需要说明的是,上述仅为对本公开的实施环境的示例性说明,并不构成 对本公开的实施环境的限定,在更多可能的实现方式中,本公开所提供的数 据处理方法,还可以应用到其他类型的实施环境中。
在介绍了本公开的实施环境后,下面结合本公开对应的多个实施例,对 本公开所提供的数据处理方法进行详细说明。
图2是本公开根据一示例性实施例示出的一种数据处理方法的流程图, 参见图2,应用于网络设备,该数据处理方法包括:
步骤201、响应于在网络设备的操作系统的内核空间中获取到待传输的 第一数据包,将述第一数据包从内核空间复制到用户空间,得到位于用户空 间的第二数据包。
在网络设备的操作系统中,每个进程都运行在属于自己的虚拟内存中, 这块空间被称为虚拟地址空间(Virtual Address Space)。
进一步地,操作系统可以将虚拟地址空间分为内核空间(Kernel Space) 和用户空间(User Space),在不同类型的操作系统中,用户空间和内核空 间的大小比例不同。以Linux操作系统为例,在Linux操作系统的虚拟地址 空间中,用户空间和内核空间的大小比例为3:1;以Windows操作系统为例, 在Windows操作系统的虚拟地址空间中,用户空间和内核空间的大小比例为2:2。
在程序运行在内核空间的情况下,进程处于内核态,在程序运行在用户 空间的情况下,进程处于用户态。
在对数据包进行传输时,进程处于内核态,从而在内核空间对数据包进 行传输;而在对数据包进行识别时,进程处于用户态,从而在用户空间对数 据包进行识别。
步骤202、传输位于内核空间的第一数据包,并对位于用户空间的第二 数据包进行数据识别。
在一种可能的实现方式中,在获取到待传输的第一数据包时,在通过内 核空间对第一数据包进行传输的同时,在用户空间对基于第一数据包复制得 到的第二数据包进行识别。
其中,在对第一数据包进行传输时,可以通过Linux协议栈,实现第一 数据包的传输。
本公开所提供的方案,通过在网络设备的操作系统的内核空间中获取到 待传输的第一数据包之后,将第一数据包从内核空间复制到用户空间,得到 位于用户空间的第二数据包,以便在传输位于内核空间的第一数据包的同时, 可以对位于用户空间的第二数据包进行数据识别,从而使得数据识别过程不 会影响数据包的正常传输,进而使得进行数据识别时的数据传输时延,与不 进行数据识别时的数据传输时延相同,从而可以保证进行数据识别时数据传 输的低时延,也即是,可以在保证实现网络内容识别的基础上,提高数据传 输效率。
在介绍了本公开的基本实现过程之后,下面介绍本公开几个非限制性的 可选实施例。
在一些实施例中,网络设备可以通过设备驱动,来获取待传输的第一数 据包。
其中,设备驱动可以作为网络设备的操作系统与终端和服务器之间的接 口,从终端或服务器接收待传输的第一数据包,从而通过网络设备的操作系 统,来对第一数据包进行处理。
需要说明的是,网络设备在通过设备驱动接收待传输的第一数据包时, 网络设备中的进程处于内核态,从而使得所获取到的第一数据包是位于内核 空间中的。
在一些实施例中,在获取到位于操作系统的内核空间的第一数据包后, 可以将第一数据包从内核空间复制到用户空间。而在将第一数据包从内核空 间复制到用户空间时,可以先将第一数据包缓存至位于内核空间的目标缓存 区域中,再基于目标缓存区域中所存储的第一数据包,实现第一数据包的复 制,或者说,实现第一数据包的镜像。
也即是,对于上述步骤201,在响应于在网络设备的操作系统的内核空 间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间, 得到位于用户空间的第二数据包时,可以通过如下方式实现:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 将第一数据包缓存至内核空间的目标缓存区域中,并将第一数据包从目标缓 存区域复制到用户空间,得到位于用户空间的第二数据包。
可选地,响应于接收到待传输的第一数据包,可以先采用套接字缓存 (SocketBuffer,SKB)技术,来对第一数据包进行缓存,以便基于所缓存 的第一数据包继续进行处理。也即是,将基于SKB技术所缓存的第一数据包 存储至内核空间的目标缓存区域中,并将第一数据包从目标缓存区域复制到 用户空间,得到位于用户空间的第二数据包。
在一种可能的实现方式中,可以通过高效数据包捕获技术(PF_RING), 来对第一数据包进行缓存和复制。
其中,PF_RING可以作为一种实现内核态和用户态之间的数据镜像的技 术,采用环形缓存区(Circular Buffer,还可以称为环形缓冲区、圆形缓冲区 等)作为目标缓存区域,从而在获取到待传输的第一数据包之后,将第一数 据包缓存到环形缓存区中,并将环形缓存区所缓存的数据包,复制到用户空 间,得到位于用户空间的第二数据包。需要说明的是,第一数据包和第二数 据包所包括的数据相同。
通过采用PF_RING技术,来进行第一数据包的缓存和复制,可以大大 减少内存拷贝和内核态用户态的切换次数,而且,PF_RING技术占用的系统 资源较少,从而可以有效降低系统负载。
需要说明的是,在将环形缓存区所缓存的数据包,复制到用户空间时, 可以采用内存映射技术(mmap),实现数据包的复制。
在一种可能的实现方式中,从环形缓存区获取第一数据包,从而通过 mmap技术,将第一数据包从内核空间映射到用户空间,得到位于用户空间 的第二数据包,实现数据包的复制。需要说明的是,在将第一数据包从内核 空间映射到用户空间后,内核空间仍存在原始的第一数据包,以便后续可以 直接传输位于内核空间的第一数据包。
需要说明的是,环形缓存区中可能存在多个待传输的第一数据包,在对 这多个第一数据包进行数据包的复制时,可以采用轮询的方式,逐个对这多 个第一数据包进行处理,各个第一数据包的处理过程与上述过程同理,此处 不再赘述。
参见图3,图3是本公开根据一示例性实施例示出的一种PF_RING技术 的实现原理图,网络设备在通过设备驱动获取到待传输的第一数据包后,采 用NAPI轮询机制,将获取到的第一数据包存储至环形缓存区中,并通过 PF_RING轮询机制,从环形缓存区中获取待传输的第一数据包,从而通过 mmap技术,将获取到的第一数据包从内核空间复制到用户空间,得到位于 用户空间的第二数据包。其中,NAPI是Linux操作系统下的新的网卡数据处理应用程序接口(Application Programming Interface,API)。
通过将位于内核空间的数据包复制到用户空间,从而实现数据包的镜像, 以便可以对镜像得到的第二数据包进行数据识别,而不会影响原始的第一数 据包的传输。
可选地,可以在协议栈入口,将第一数据包从内核空间复制到用户空间。 其中,协议栈用于对第一数据包进行传输,相应地,在协议栈入口对第一数 据包进行复制,也即是在对第一数据包进行传输之间,对第一数据包进行复 制。
在一些实施例中,在对第一数据包进行复制之前,可以对第一数据包进 行检测,从而在第一数据包满足第二目标条件的情况下,再进行第一数据包 的复制。
也即是,对于上述步骤201,在响应于在网络设备的操作系统的内核空 间中获取到待传输的第一数据包,将第一数据包从内核空间镜像到用户空间, 得到位于用户空间的第二数据包时,可以有如下实现方式:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 在第一数据包满足第二目标条件的情况下,将第一数据包从内核空间复制到 用户空间,得到位于用户空间的第二数据包。
其中,第二目标条件可以为第一数据包的地址信息为目标地址信息,且 用于传输第一数据包的连接为新建立的连接,且第一数据包对应的深度包检 测(Deep PacketInspection,DPI)标识指示所述第一数据包待进行数据包检 测。
需要说明的是,网络设备可以维护有一个设备过滤表,该设备过滤表中 记录有需要进行复制及识别的数据包对应的地址信息。可选地,该设备过滤 表中所记录的地址信息可以为源IP地址、目的IP地址、源MAC地址、目 的MAC地址中的至少一项。
通过维护一个设备过滤表,以便网络设备在获取到第一数据包的地址信 息后,可以基于设备过滤表,确定是否需要对第一数据包进行复制,从而根 据所确定的结果,对第一数据包进行相应的处理。
基于上述实施例,在响应于获取到待传输的第一数据包,响应于在内核 空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空 间,得到位于用户空间的第二数据包时,可以包括如下步骤:
步骤2011、响应于在网络设备的操作系统的内核空间中获取到待传输的 第一数据包,基于第一数据包生成内核连接表。
其中,内核连接表中可以包括连接跟踪模块(nf_conntrack)字段、镜像 标识字段和阻断标识字段,下面分别对内核连接表所包括的各个字段进行介 绍。
nf_conntrack字段中可以包括连接信息和深度包检测(Deep PacketInspection,DPI)标识,基于连接信息即可确定用于传输第一数据包的连接 是否是新建立的连接,基于DPI标识即可确定第一数据包是否需要进行数据 检测。
需要说明的是,对于网络设备与其他设备之间所建立的连接,在一次数 据传输过程中,待传输的数据可能被分为多个数据包,因此,在一次数据传 输过程中,一个连接可能用于传输多个数据包,而在对数据包进行识别时, 可以无需对一个连接所传输的所有数据包进行识别,而仅识别目标数量的数 据包即可,基于此,可以通过对数据包的DPI标识进行设置,以便可以基于 DPI标识,确定哪些是需要进行数据识别的数据包。可选地,目标数量可以 为任意正整数值,例如,目标数量可以为8-16中的任意正整数值。
通过识别目标数量的数据包,可以有效减少网络设备的处理压力,从而 降低网络设备的系统负载,提高网络设备的处理速度。
镜像标识字段可以用于承载镜像标识,该镜像标识可以用于指示第一数 据包是否需要进行镜像处理,镜像标识可以包括需要进行镜像处理和无需进 行镜像处理两种。可选地,该镜像标识采用二进制形式表示,例如,在第一 数据包不需要进行镜像处理时,将该镜像标识设置为0,在第一数据包需要 进行镜像处理时,将该镜像标识设置为1。
阻断标识字段可以用于承载阻断标识,该阻断标识可以用于指示目标连 接是否被拒绝使用,阻断标识可以包括连接被允许使用和连接被拒绝使用两 种,可以用“pass”来表示连接被允许使用,用“reject”来表示连接被拒绝使用。 可选地,该阻断标识还可以采用二进制形式表示,例如,在目标连接被允许 使用的情况下,将阻断标识设置为0,在目标连接被拒绝使用的情况下,将 阻断标识设置为1。
该内核连接表的结构可以参见图4,图4是本公开根据一示例性实施例 示出的一种内核连接表的结构示意图,一个第一数据包对应有一个五元组哈 希值(五元组HASH ID,NF_HASH ID),而一个五元组HASH ID即对应 有一个内核连接表,每个内核连接表中包括nf_conntrack、镜像标识和阻断 标识。
其中,五元组为源网际协议(Internet Protocol,IP)地址、源端口、目 的IP地址、目的端口和传输层协议这五个量组成的集合,五元组HASH ID 也即是源IP地址、源端口、目的IP地址、目的端口和传输层协议这五个量 的哈希值所组成的集合。根据五元组HASH ID,可以快速定位到内核连接表 对应的虚拟桶(Hash Slot),从而根据定位到的Hash Slot,确定对应的内核 连接表。相应地,根据内核连接表,也可以确定出对应的五元组HASH ID。
需要说明的是,端口可以预先与媒体存取控制(Media Access Control, MAC)地址绑定,从而使得基于源端口即可确定出源MAC地址,基于目的 端口即可确定出目的MAC地址。
步骤2012、基于内核连接表,获取第一数据包的地址信息、目标连接的 连接信息以及第一数据包对应的DPI标识,目标连接为用于传输第一数据包 的连接。
在一种可能的实现方式中,可以通过内核连接表所包括的nf_conntrack, 获取连接信息和DPI标识,并从内核连接表对应的五元组HASH ID中,获 取地址信息。
可选地,地址信息包括IP地址和/或MAC地址,IP地址包括源IP地址 和/或目的IP地址,MAC地址包括源MAC地址和/或目的MAC地址。
步骤2013、在地址信息为目标地址信息,且基于连接信息确定目标连接 为新建立的连接,且DPI标识指示第一数据包待进行数据包检测的情况下, 将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。
其中,将第一数据包从内核空间复制到用户空间的过程可以参见上述实 施例,此处不再赘述。
上述确定第一数据包是否满足第二目标条件,从而在第一数据包满足第 二目标条件的情况下,将第一数据包从内核空间复制到用户空间的过程可以 参见图5,图5是本公开根据一示例性实施例示出的一种数据包处理过程的 流程示意图,以源IP地址为8.8.8.8、源端口为88、目的IP地址为10.1.1.1、 目的端口为10000的数据包为例,在通过SKB技术缓存数据包后,通过查询 内核连接表,可以确定经过网络地址转换(NetworkAddress Translation,NAT) 处理后,该数据包在进行下行传输时的源IP地址为8.8.8.8、源端口为88、 目的IP地址为192.168.31.77、目的端口为10000,并从内核连接表中获取nf_conntrack ID、HASH ID、镜像标识和阻断标识,并通过查询包括目的IP 地址的设备过滤表,以确定该数据包是否需要进行复制,若镜像标识指示该 数据包需要进行镜像处理,且阻断标识指示用于传输该数据包的连接被允许 使用,且该数据包的目标IP地址存在于设备过滤表中,则通过PF_RING技 术,对数据包进行镜像处理,也即是,将数据包从内核空间复制到用户空间。
在一些实施例中,在将第一数据包从内核空间复制到用户空间,得到位 于用户空间的第二数据包之后,该方法还包括以下步骤:
步骤一、基于内核连接表和第二数据包,生成用户态连接表和连接标识。
其中,连接(Identity,ID)用于代表一个连接,该连接ID可以由内核 的nf_conntrack生成并记录,并将所生成的连接ID传递到用户态,可选地, 该连接ID可以为一个随机数,用于唯一性标识一个连接。
用户态连接表中可以包括五元组HASH ID字段、五元组字段、应用识别 信息字段、时间信息字段和计数信息字段,下面分别对用户态连接表所包括 的各个字段进行介绍。
五元组HASH ID字段可以用于承载五元组HASH ID,五元组字段可以 用于承载五元组,关于五元组和五元组HASH ID的介绍可以参见内核连接表 中关于五元组和五元组HASH ID的介绍,此处不再赘述。需要强调的是,用 户态连接表中所包括的五元组为上行五元组,该五元组仅用于调试和日志记 录,而不会用于代表一个连接。
应用识别信息字段可以用于承载应用识别信息,该应用识别信息可以用 于指示第一数据包对应的应用程序(Application,APP),以便基于该应用 识别信息可以获知用户正在访问的是哪个应用程序。
时间信息字段可以用于承载时间信息,该时间信息可以用于确定用户态 连接表的老化情况,以及用于对第一数据包的传输和处理过程进行调试。
计数信息字段可以用于承载计数信息,该计数信息可以用于指示已复制 的报文数量,网络设备中可以预先设置有报文数量阈值,该报文数量阈值用 于指示可处理的最大报文数量,在计数信息超过该报文数量阈值的情况下, 通知内核不再进行数据包的复制。其中,该报文数量阈值可以通过Sniper模 拟器预先设置。
步骤二、将连接标识分别添加至内核连接表和用户态连接表中。
在一种可能的实现方式中,在内核连接表的阻断标识字段后新增连接ID 字段,在用户态连接表的五元组HASH ID字段后新增连接ID字段,并将所 生成的连接ID分别添加至内核连接表中的连接ID字段和用户态连接表中的 连接ID字段。
参见图6,图6是本公开根据一示例性实施例示出的一种用户态连接表 的结构示意图,如图6所示,增加连接ID字段后的用户态连接表中包括五 元组HASH ID字段、连接ID字段、五元组字段、应用识别信息字段、时间 信息字段和计数信息字段。
通过将连接ID分别添加至内核连接表和用户态连接表中,使得通过连 接标ID可以实现内核连接表和用户态连接表的连接,以便内核连接表和用 户态连接表之间可以通过连接ID相互进行查找。
可选地,在通过连接ID实现内核连接表和用户态连接表的连接后,可 以对PF_RING报文进行扩展,以实现第一数据包和第二数据包的关联,方 便后续对第二数据包的查找。
在一种可能的实现方式中,可以在PF_RING报文的报文头(PF_RING HEAD)字段后增加五元组HASH ID字段和连接ID字段,从而将内核连接 表中的五元组HASH ID添加至五元组HASH ID字段,将通过内核所生成的 连接ID添加至连接ID字段,实现PF_RING报文的扩展。
参见图7,图7是本公开根据一示例性实施例示出的一种PF_RING报文 的结构示意图,如图7所示,扩展后的PF_RING报文包括PF_RING HEAD 字段、五元组HASH ID字段、连接ID字段和SKB字段,其中,SKB字段 包括待传输的第一数据包对应的报文。
上述通过连接ID实现内核连接表和用户态连接表的连接的过程可以参 见图8,图8是本公开根据一示例性实施例示出的一种实现内核连接表和用 户态连接表的连接的原理示意图,在通过内核生成连接ID后,内核连接表 和用户态连接表中分别新增连接ID字段,从而将所生成的连接ID分别添加 至内核连接表的连接ID字段以及用户态连接表的连接ID字段中,从而基于 连接ID,实现内核连接表和用户态连接表的关联,以便后续可以在对应的内 核连接表和用户态连接表中进行相互查找。
步骤三、基于包括连接标识的内核连接表和包括连接标识的用户态连接 表,对位于用户空间的第二数据包进行数据识别。
在一种可能的实现方式中,可以基于连接标识,确定相对应的第一数据 包和第二数据包,从而在对第二数据包进行数据识别的同时,对第一数据包 进行传输。
在一些实施例中,通过对第二数据包进行识别,即可确定第二数据包是 否满足第一目标条件,从而可以根据识别结果,来进行相应的处理。
在一种可能的实现方式中,在第二数据包满足第一目标条件的情况下, 停止传输第一数据包。
在另一种可能的实现方式中,在第二数据包不满足第一目标条件的情况 下,无需对第一数据的传输进行处理,保持第一数据包的正常传输即可。
其中,第一目标条件可以为待传输的数据包所包括的数据中存在目标类 型的数据,第一目标条件还可以为待传输的数据包所包括的数据对应的数据 流量超过流量阈值,第一目标条件还可以为上述两种条件的结合,也即是, 第一目标条件还可以为待传输的数据包所包括的数据中存在目标类型的数据, 且待传输的数据包所包括的数据对应的数据流量超过流量阈值,可选地,第 一目标条件还可以包括其他类型条件,本公开对第一目标条件的具体类型不 加以限定。
基于上述两种示例性的第一目标条件,对于上述步骤203,在第二数据 包所包括的数据满足第一目标条件的情况下,停止传输第一数据包时,可以 包括下述至少一种实现方式:
在一种可能的实现方式中,在第二数据包所包括的数据中存在目标类型 的数据的情况下,停止传输第一数据包。
其中,目标类型的数据可以为包含敏感信息的数据、不符合网络环境规 范的数据等等,本公开对此不加以限定。
在另一种可能的实现方式中,在第二数据包所包括的数据对应的数据流 量超过流量阈值的情况下,停止传输第一数据包。
其中,流量阈值可以为用户在网络设备上预先设置的取值,该流量阈值 可以为任意取值,本公开对流量阈值的具体取值不加以限定。
可选地,在停止传输第一数据包时,可以通过Linux Iptables防火墙,实 现对第一数据包的数据传输的阻断。此外,还可以采用其他方式,本公开对 具体采用哪种方式来停止传输第一数据包不加以限定。
在一些实施例中,在传输位于内核空间的第一数据包,并对位于用户空 间的第二数据包进行数据识别之后,除可以对满足第一目标条件的第二数据 包对应的第一数据包的传输进行阻断外,还可以统计流经目标连接的数据流 量,目标连接为用于传输第一数据包的连接,以便可以基于统计得到的数据 流量进行日志记录、日志分析和流量统计等。
可选地,可以结合统计得到的数据流量和预先设置的用户策略,来实现 数据传输阻断、日志记录、日志分析和流量统计等过程。
例如,可以通过用户配置表和策略管理表来对用户策略进行设置。用户 配置表可以基于APP、全球广域网(World Wide Web,WEB)前端的用户配 置生成,用户配置表可以包括多个IP地址、各个IP地址对应的应用ID、允 许应用使用的起始时间和截止时间以及对该应用对应的数据流量要采取的处 理方式(Action),可选地,Action可以包括阻断、复制(也即是镜像)等。
策略管理表可以包括对第二数据包进行数据识别所得到的结果,经过用 户配置表查询后生成的策略。策略管理表可以包括nf_conntrack ID、 nf_conntrack槽位ID、应用ID、Action和时间,nf_conntrack ID和nf_conntrack 槽位ID可以基于用户配置表所包括的IP地址确定,应用ID可以基于用户配 置表所包括的应用ID确定,Action可以基于用户配置表所包括的对该应用 对应的数据流量要采取的Action确定,时间可以基于用户配置表所包括的允 许应用使用的起始时间和截止时间确定。
参见图9,图9是本公开根据一示例性实施例示出的一种用户策略的设 置过程的示意图,用户可以通过APP、WEB前端对用户配置进行设置,网 络设备可以基于所设置的用户配置,在用户空间生成用户配置表,并基于所 生成的用户配置表,在用户空间生成策略管理表,从而基于所生成的用户配 置表,对内核空间的设备过滤表进行同步更新,并基于所生成的策略管理表, 对内核空间的内核连接表中的五元组、阻断标识、镜像标识等进行设置。
此外,在基于统计得到的数据流量进行日志记录、日志分析时,由于日 志记录主要关注第二数据包识别完成的时间和第一数据包传输完成的时间, 而第二数据包识别完成的时间要从用户空间获取,且确定出第二数据包的识 别结果后,即无需对后续通过目标连接所接收到的数据包进行复制(也即是 镜像)。此外,还可以在第一数据包传输完成的时间,删除目标连接并输出 日志,从而实现日志记录,并基于所输出的日志进行日志分析。
通过日志分析,可以确定出应用的使用时长。在进行日志分析时析过程, 可以采用预估分析和精确分析两种分析方式,下面分别对这两种分析方式进 行介绍。
在一种可能的实现方式中,在采用预估分析方式确定应用的使用时长时, 可以基于第二数据包对应的目标应用,确定流经目标连接的目标应用的数据 流量对应的应用使用时长,目标连接为用于传输第一数据包的连接。
在上述预估分析方式中,可以在输出日志后,按照日志中应用种类进行 预估。以分析应用使用时间为例,对于一个连接,视频类应用对应的使用时 间一般为2分钟,游戏类应用对应的使用时间一般为5分钟,WEB类应用对 应的使用时间一般为20秒。
在另一种可能的实现方式中,在采用精确分析方式确定应用的使用时长 时,可以基于第二数据包识别完成的时间以及第一数据包传输完成的时间, 确定第二数据包对应的目标应用的应用使用时长。
在上述精确分析方式中,可以确定第二数据包识别完成的时间以及第一 数据包传输完成的时间的时间差,从而将所确定的时间差作为目标应用的应 用使用时长。
可选地,在获取到日志分析结果(如应用使用时长)后,可以分析结果 上报云端,以便云端对接收到的分析结果进行整合和进一步分析,从而向用 户输出日报、周报、通知等。
上述各个实施例所涉及的过程可以参见图10,图10是本公开根据一示 例性实施例示出的一种数据处理方法的原理示意图,在通过设备驱动获取到 待传输的数据包后,通过采样保持电路(S/H),将获取到的数据包压入网 络设备的内核空间,实现硬件快转,进而按照内核连接表,来对数据包进行 协议栈转发。此外,在数据包需要进行镜像处理时,基于内核连接表和设备 过滤表,通过PF_RING技术,实现数据包的镜像,从而基于镜像数据包对应的用户态连接表,来进行数据识别(如应用识别),从而在得到Sniper识 别结果后,基于用户配置表生成对于数据包的处理策略,并将所生成的策略 发送至内核空间,以便基于所生成的策略,来对正在传输的数据包进行如阻 断之类的处理。此外,还可以基于用户配置表,对设备过滤表进行同步更新。
上述图10仅为关于本公开的原理性说明,具体实现过程可以参见上述各 个实施例,此处不再赘述。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动 作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的 限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。
其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可 选实施例,所涉及的动作和模块并不一定是本公开所必须的。
与前述数据处理方法实施例相对应,本公开还提供了数据处理装置及相 应的网络设备的实施例。
图11是本公开根据一示例性实施例示出的一种数据处理装置的框图,参 见图11,该装置包括:
复制模块1101,用于响应于在网络设备的操作系统的内核空间中获取到 待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于 用户空间的第二数据包;
数据传输模块1102,用于传输位于内核空间的第一数据包;
数据识别模块1103,用于对位于用户空间的第二数据包进行数据识别。
在一些实施例中,该复制模块1101,在用于响应于在网络设备的操作系 统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制 到用户空间,得到位于用户空间的第二数据包时,用于:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 将第一数据包缓存至内核空间的目标缓存区域中,并将第一数据包从目标缓 存区域复制到用户空间,得到位于用户空间的第二数据包。
在一些实施例中,该复制模块1101,在用于响应于在网络设备的操作系 统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制 到用户空间,得到位于用户空间的第二数据包时,用于:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 在第一数据包满足第二目标条件的情况下,将第一数据包从内核空间复制到 用户空间,得到位于用户空间的第二数据包。
在一些实施例中,该复制模块1101,在用于响应于在网络设备的操作系 统的内核空间中获取到待传输的第一数据包,在第一数据包满足第二目标条 件的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户空间 的第二数据包时,包括生成单元、获取单元和复制单元;
生成单元,用于响应于在网络设备的操作系统的内核空间中获取到待传 输的第一数据包,基于第一数据包生成内核连接表;
获取单元,用于基于内核连接表,获取第一数据包的地址信息、目标连 接的连接信息以及第一数据包对应的深度包检测DPI标识,目标连接为用于 传输第一数据包的连接;
复制单元,用于在地址信息为目标地址信息,且基于连接信息确定目标 连接为新建立的连接,且DPI标识指示第一数据包待进行数据检测的情况下, 将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。
在一些实施例中,地址信息包括网际协议IP地址和/或媒体存取控制 MAC地址,IP地址包括源IP地址和/或目的IP地址,MAC地址包括源MAC 地址和/或目的MAC地址。
在一些实施例中,该装置还包括:
生成模块,用于基于内核连接表和第二数据包,生成用户态连接表和连 接标识;
添加模块,用于将连接标识分别添加至内核连接表和用户态连接表中;
该数据识别模块,还用于基于包括连接标识的内核连接表和包括连接标 识的用户态连接表,对位于用户空间的第二数据包进行数据识别。
在一些实施例中,该数据传输模块1102,还用于在第二数据包所包括的 数据满足第一目标条件的情况下,停止传输第一数据包。
在一些实施例中,该数据传输模块1102,在用于在第二数据包所包括的 数据满足第一目标条件的情况下,停止传输第一数据包时,用于下述至少一 项:
在第二数据包所包括的数据中存在目标类型的数据的情况下,停止传输 第一数据包;
在第二数据包所包括的数据对应的数据流量超过流量阈值的情况下,停 止传输第一数据包。
在一些实施例中,该装置还包括:
确定模块,用于基于第二数据包对应的目标应用,确定流经目标连接的 目标应用的数据流量对应的应用使用时长,目标连接为用于传输第一数据包 的连接;
该确定模块,还用于基于第二数据包识别完成的时间以及第一数据包传 输完成的时间,确定第二数据包对应的目标应用的应用使用时长。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参 见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的, 其中上述作为分离部件说明的模块或单元可以是或者也可以不是物理上分开 的,作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位 于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择 其中的部分或者全部模块或单元来实现本公开方案的目的。本领域普通技术 人员在不付出创造性劳动的情况下,即可以理解并实施。
本公开实施例还提供了一种网络设备,包括:处理器;用于存储处理器 可执行指令的存储器;其中,上述处理器被配置为执行以下步骤:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;
传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行 数据识别。
参见图12,图12是本公开根据一示例性实施例示出的一种网络设备的 结构示意图。例如,网络设备1200可以被提供为一路由器。如图12所示, 网络设备1200包括处理组件1201,其进一步包括一个或多个处理器,以及 由存储器1202所代表的存储器资源,用于存储可由处理组件1201的执行的 指令,例如应用程序。存储器1202中存储的应用程序可以包括一个或一个以 上的每一个对应于一组指令的模块。此外,处理组件1201被配置为执行指令, 以执行上述数据处理方法的方法步骤。
网络设备1200还可以包括一个电源组件1203被配置为执行网络设备 1200的电源管理,一个有线或无线网络接口1204被配置为将网络设备1200 连接到网络,和一个输入输出(I/O)接口1205。网络设备1200可以操作基 于存储在存储器1202的操作系统,例如Android、iOS、Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储 介质,例如包括指令的存储器1202,上述指令可由网络设备1200的处理组 件1201执行以完成上述数据处理方法。例如,该非临时性计算机可读存储介 质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数 据存储设备等。
其中,当存储器1202中的指令由处理组件1201执行时,使得网络设备 1200能够执行一种数据处理方法,包括:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;
传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行 数据识别。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品 包括计算机程序,程序被处理组件1201执行时,使得网络设备1200能够执 行一种数据处理方法,包括:
响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包, 将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;
传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行 数据识别。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公 开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化, 这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开 的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性 的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确 结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所 附的权利要求来限制。

Claims (12)

1.一种数据处理方法,其特征在于,应用于网络设备,所述方法包括:
响应于在所述网络设备的操作系统的内核空间中获取到待传输的第一数据包,将所述第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;
传输位于内核空间的所述第一数据包,并对位于用户空间的所述第二数据包进行数据识别。
2.根据权利要求1所述的方法,其特征在于,所述响应于在所述网络设备的操作系统的内核空间中获取到待传输的第一数据包,将所述第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包,包括:
响应于在所述网络设备的操作系统的内核空间中获取到待传输的第一数据包,将所述第一数据包缓存至所述内核空间的目标缓存区域中,并将所述第一数据包从目标缓存区域复制到用户空间,得到位于用户空间的第二数据包。
3.根据权利要求1所述的方法,其特征在于,所述响应于在所述网络设备的操作系统的内核空间中获取到待传输的第一数据包,将所述第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包,包括:
响应于在所述网络设备的操作系统的内核空间中获取到待传输的第一数据包,在所述第一数据包满足第二目标条件的情况下,将所述第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。
4.根据权利要求3所述的方法,其特征在于,所述响应于在所述网络设备的操作系统的内核空间中获取到待传输的第一数据包,在所述第一数据包满足第二目标条件的情况下,将所述第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包,包括:
响应于在所述网络设备的操作系统的内核空间中获取到待传输的第一数据包,基于所述第一数据包生成内核连接表;
基于所述内核连接表,获取所述第一数据包的地址信息、目标连接的连接信息以及所述第一数据包对应的深度包检测DPI标识,所述目标连接为用于传输所述第一数据包的连接;
在所述地址信息为目标地址信息,且基于所述连接信息确定所述目标连接为新建立的连接,且所述DPI标识指示所述第一数据包待进行数据检测的情况下,将所述第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。
5.根据权利要求4所述的方法,其特征在于,所述地址信息包括网际协议IP地址和/或媒体存取控制MAC地址,所述IP地址包括源IP地址和/或目的IP地址,所述MAC地址包括源MAC地址和/或目的MAC地址。
6.根据权利要求4所述的方法,其特征在于,所述将所述第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包之后,所述方法还包括:
基于所述内核连接表和所述第二数据包,生成用户态连接表和连接标识;
将所述连接标识分别添加至所述内核连接表和所述用户态连接表中;
基于包括所述连接标识的内核连接表和包括所述连接标识的用户态连接表,对位于用户空间的所述第二数据包进行数据识别。
7.根据权利要求1所述的方法,其特征在于,所述传输位于内核空间的所述第一数据包,并对位于用户空间的所述第二数据包进行数据识别之后,所述方法还包括:
在所述第二数据包所包括的数据满足第一目标条件的情况下,停止传输所述第一数据包。
8.根据权利要求7所述的方法,其特征在于,所述在所述第二数据包所包括的数据满足第一目标条件的情况下,停止传输所述第一数据包,包括下述至少一项:
在所述第二数据包所包括的数据中存在目标类型的数据的情况下,停止传输所述第一数据包;
在所述第二数据包所包括的数据对应的数据流量超过流量阈值的情况下,停止传输所述第一数据包。
9.根据权利要求1所述的方法,其特征在于,所述传输位于内核空间的所述第一数据包,并对位于用户空间的所述第二数据包进行数据识别之后,所述方法还包括下述任一项:
基于所述第二数据包对应的目标应用,确定流经目标连接的所述目标应用的数据流量对应的应用使用时长,所述目标连接为用于传输所述第一数据包的连接;
基于所述第二数据包识别完成的时间以及所述第一数据包传输完成的时间,确定所述第二数据包对应的目标应用的应用使用时长。
10.一种数据处理装置,其特征在于,所述装置包括:
复制模块,用于响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将所述第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;
数据传输模块,用于传输位于内核空间的所述第一数据包;
数据识别模块,用于对位于用户空间的所述第二数据包进行数据识别。
11.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至9中任一项所述数据处理方法。
12.一种网络设备,其特征在于,所述网络设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
响应于在所述网络设备的操作系统的内核空间中获取到待传输的第一数据包,将所述第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;
传输位于内核空间的所述第一数据包,并对位于用户空间的所述第二数据包进行数据识别。
CN202111459217.5A 2021-12-02 2021-12-02 数据处理方法、装置、网络设备及介质 Pending CN114356593A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111459217.5A CN114356593A (zh) 2021-12-02 2021-12-02 数据处理方法、装置、网络设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111459217.5A CN114356593A (zh) 2021-12-02 2021-12-02 数据处理方法、装置、网络设备及介质

Publications (1)

Publication Number Publication Date
CN114356593A true CN114356593A (zh) 2022-04-15

Family

ID=81096776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111459217.5A Pending CN114356593A (zh) 2021-12-02 2021-12-02 数据处理方法、装置、网络设备及介质

Country Status (1)

Country Link
CN (1) CN114356593A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115022167A (zh) * 2022-07-01 2022-09-06 天翼数字生活科技有限公司 一种用于家庭网关业务流控的方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115022167A (zh) * 2022-07-01 2022-09-06 天翼数字生活科技有限公司 一种用于家庭网关业务流控的方法及系统
CN115022167B (zh) * 2022-07-01 2024-03-01 天翼数字生活科技有限公司 一种用于家庭网关业务流控的方法及系统

Similar Documents

Publication Publication Date Title
WO2018121331A1 (zh) 攻击请求的确定方法、装置及服务器
KR102167613B1 (ko) 메시지 푸시 방법 및 장치
EP3378217A1 (en) Cross-resource subscription for m2m service layer
US10122722B2 (en) Resource classification using resource requests
US9331915B1 (en) Dynamic network traffic mirroring
CN113472900B (zh) 报文处理方法、设备、存储介质及计算机程序产品
CN113452780B (zh) 针对客户端的访问请求处理方法、装置、设备及介质
CN111953770B (zh) 一种路由转发方法、装置、路由设备及可读存储介质
US10911970B2 (en) Method and apparatus for detecting time series data
CN114356593A (zh) 数据处理方法、装置、网络设备及介质
CN112737945B (zh) 服务器连接控制方法及装置
CN103023704B (zh) 虚拟网络服务设备接入方法及系统
CN110808967B (zh) 挑战黑洞攻击的检测方法及相关装置
CN112398796B (zh) 一种信息处理方法、装置、设备及计算机可读存储介质
CN112532714A (zh) 一种数据处理方法、处理装置、服务器及存储介质
CN114978897B (zh) 基于eBPF和应用识别技术的网络控制方法和系统
CN107066373B (zh) 控制处理方法及装置
US20220141153A1 (en) Server communication method, broadband access server, and system
CN113810381B (zh) 一种爬虫检测方法、web应用云防火墙、装置和存储介质
WO2021155529A1 (zh) 资源删除方法、装置、设备及存储介质
CN114979236A (zh) 数据传输方法、装置、存储介质以及电子设备
WO2016184079A1 (zh) 一种处理系统日志报文的方法和装置
CN109688204B (zh) 基于ndn网络的文件下载方法、节点、终端
CN113098868A (zh) 一种基于容器的网络安全处理方法和装置
CN113872953B (zh) 一种访问报文处理方法及装置

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