CN113992425B - 一种收发网络数据包的方法、网络设备以及通信系统 - Google Patents

一种收发网络数据包的方法、网络设备以及通信系统 Download PDF

Info

Publication number
CN113992425B
CN113992425B CN202111342254.8A CN202111342254A CN113992425B CN 113992425 B CN113992425 B CN 113992425B CN 202111342254 A CN202111342254 A CN 202111342254A CN 113992425 B CN113992425 B CN 113992425B
Authority
CN
China
Prior art keywords
data packet
protocol stack
core
network protocol
connection
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
CN202111342254.8A
Other languages
English (en)
Other versions
CN113992425A (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.)
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec 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 Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202111342254.8A priority Critical patent/CN113992425B/zh
Publication of CN113992425A publication Critical patent/CN113992425A/zh
Application granted granted Critical
Publication of CN113992425B publication Critical patent/CN113992425B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种收发网络数据包的方法、网络设备以及通信系统,该收发网络数据包的方法,包括:快核网络协议栈从网卡队列获取数据包,并将所述数据包发送到慢核协议栈;在所述慢核网络协议栈将所述数据包与预设策略进行匹配,如果匹配成功则将所述数据包上送到环形队列,否则,发送所述数据包到网卡队列;通过所述监控进程从所述环形队列读取所述数据包并获取针对所述数据包的判决结果,在所述数据包添加判决结果标志,将包含所述判决结果的数据包下发到所述环形队列;若所述快核确认所述数据包打上所述判决结果标志时,则将所述数据包发送到慢核,由所述慢核根据判决结果确定丢弃所述数据包或者将所述数据包发送到所述网卡队列。

Description

一种收发网络数据包的方法、网络设备以及通信系统
技术领域
本申请涉及数据包收发领域,具体而言本申请实施例涉及一种收发网络数据包的方法、网络设备以及通信系统。
背景技术
网络安全设备通常以串行的方式部署,用于监控数据流量,分析流量特征,根据分析结果将数据包进行丢弃或转发,因而网络安全设备的数据包转发效率是影响网络流速的快慢的重要因素。
应用进程通过监听套接字接收数据包,可以添加套接字选项实现数据包的过滤,此处理方式处理逻辑比较繁琐,无法满足高性能网络设备的网络性能要求。
因此如何提升网络数据包的收发速度成了亟待解决的技术问题。
发明内容
本申请实施例的目的在于提供一种收发网络数据包的方法、网络设备以及通信系统,通过本申请的一些实施例应用进程实现数据包的快速收发和检测,这至少是由于在本申请的一些实施例中,多个应用进程运行在多核上,实现对数据包的并行检测,大幅提高检测效率。
第一方面,本申请实施例提供一种收发网络数据包的方法,运行于包括多个计算核的电子设备上,且所述多个计算核中的各计算核被划分为属于快核或者慢核中的一类,所述快核被配置为运行快核网络协议栈,所述慢核被配置为运行慢核网络协议栈,监控进程运行于慢核包括的各计算核上且与各应用进程一一对应设备,所述方法包括:快核网络协议栈从网卡队列获取数据包,并将所述数据包发送到慢核协议栈;在所述慢核网络协议栈将所述数据包与预设策略进行匹配,如果匹配成功则将所述数据包上送到环形队列,否则,发送所述数据包到网卡队列,其中,所述环形队列与一个计算核对应;通过所述监控进程从所述环形队列读取所述数据包并获取针对所述数据包的判决结果,在所述数据包添加判决结果标志,将包含所述判决结果的数据包下发到所述环形队列;若所述快核确认所述数据包打上所述判决结果标志时,则将所述数据包发送到慢核,由所述慢核根据判决结果确定丢弃所述数据包或者将所述数据包发送到所述网卡队列。
本申请的一些实施例中快核会将接收的首个数据包(即来自于某个应用进程的第一个数据包)发送至慢核进行策略匹配并对匹配成功的数据包采用监控进程进行检测,这样可以采用慢核进行数据包检测而用快核将不需要检测的数据包直接转发,提升了网络数据包的转发速度,且本申请针对每个引用进城设置一个慢核进行检测因此还提升了对多进程数据并行处理的速度。
在一些实施例中,所述将所述数据包发送到慢核协议栈,包括:若通过所述快核网络协议栈确认不存在针对所述数据包的连接时,则将所述数据包发送至所述慢核网络协议栈;其中,在所述慢核网络协议栈将所述数据包与预设策略进行匹配之前,所述方法还包括:通过所述慢核协议栈建立所述连接,并在匹配成功时为所述连接添加标志,以使所述快核网络协议栈根据标志删选出需要发送至所述环形队列的数据包;其中,所述连接是与一个应用进程唯一对应的;所述方法还包括:由所述慢核根据判决结果进行丢弃所述数据包、删除所述连接或者发送所述数据包到所述网卡队列。
本申请的一些实施例为了借助快核尽快筛选出待检测的数据包并可以直接将这些数据包发送至环形队列的效果,需要通过慢核为收到的首个数据包建立连接并在该连接与预设策略匹配成功后为该连接添加标志,之后如果还收到该连接相关的数据包就可以由快核识别后直接发往环形队列,由慢核中运行的监控进程进行数据包检测获得判决结果,所述判决结果包括:丢弃或者转发等进一步的处理动作。
在一些实施例中,所述慢核网络协议栈是根据所述数据包携带的五元组信息建立所述连接的,其中,所述五元组信息包括源IP地址、目的IP地址、源端口、目的端口以及传输层的协议类型;其中,所述快核网络协议栈通过所述数据包所携带的五元组信息确认不存在所述连接,其中,所述五元组信息包括源IP地址、目的IP地址、源端口、目的端口以及传输层协议类型。
本申请的一些实施例通过五元组信息建立连接可以保证每个应用进程对应一个有效连接,提升并行处理多个应用进程的网络数据包的技术目的。
在一些实施例中,所述快核网络协议栈通过先进先出队列将所述数据包发送到所述慢核协议栈。
本申请的一些实施例通过先进先出队列可以确保数据包被处理的次序。
在一些实施例中,所述方法还包括:若所述快核网络协议栈确认存在针对所述数据包的连接且确认监控进程对所述数据包感兴趣,则将所述数据包上送环形队列,以使运行于慢核上的所述监控进程从所述环形队列中的读取待检测数据包并进行数据检测;若所述快核网络协议栈确认针对所述数据包的检测操作已完成,则从所述环形队列读取数据包并根据判决结果对所述数据包进行发送或丢弃。
本申请的一些实施例通过为建立的连接添加的标志确定快核网络协议栈是否需要将接收的数据包直接发送至环形队列,使得快核网络协议栈尽快将待检测数据发送至环形队列等待被检测,提升了数据处理的速度。
在本申请的一些实施例中,通过所述慢核网络协议栈建立所述连接并为与预设策略匹配成功的所述连接添加标志;其中,所述确认监控进程对所述连接对应的所述数据包感兴趣,包括:根据所述标志确认所述监控进程对所述数据包感兴趣。
本申请的一些实施例通过建立连接并为连接添加标志的方式来提升快核实现待检测数据包的快速筛选,提升了数据处理的速度。
在一些实施例中,通过运行所述快核网络协议栈的快核轮询所述环形队列并在确认所述数据包被打上判决结果标志时,则确认完成针对所述数据包的检测操作。
本申请的一些实施例通过为检测完成数据包添加判决结果标志的方式,使得快核可以很快确认检测以完成的数据包,并完成对这些数据包的进一步的操作。
在一些实施例中,所述快核网络协议栈通过轮询网卡队列获取所述数据包。
本申请的一些实施例通过轮询网卡队列来获取网卡队列中的数据包。
在一些实施例中,若所述快核网络协议栈确认存在针对所述数据包的连接且确认监控进程对所述数据包不感兴趣时,则由所述快核网络协议栈将所述数据包转发到网卡队列。
本申请的一些实施例通过快核网络协议栈筛选出监控进程不感兴趣的连接所对应的数据包,并将这些数据包直接进行转发,提升了数据转发的速度。
在一些实施例中,通过慢核网络协议栈建立所述连接并对与预设策略匹配成功的数据包对应的连接添加标志;其中,所述确认监控进程对所述数据包不感兴趣,包括:若通过快速网络协议栈确认不存在针对所述连接的标志时,则确认所述监控进程对所述数据包不感兴趣。
本申请的一些实施例通过快核网络协议栈确认是否存在与连接对应设置的标志来确定监控进行是否对接收的数据包感兴趣,提升了快速筛选不感兴趣数据包并将这些数据包尽快转发的速度。
第二方面,本申请的一些实施例提供一种网络设备,该网络设备包括多个计算核,且所述多个计算核中的各计算核分别属于快核或慢核中的一类;其中,所述慢核至少被配置为:运行一个与单个应用进程对应的监控进程实现数据包检测,获取判决结果;所述快核至少被配置为:实现数据包的转发或上送到应用进程;或者将待检测的数据包发送至慢核并转发具有判决结果的部分数据包。
在一些实施例中,所述慢核还被配置为:运行慢核网络协议栈以完成针对来自于快核网络协议栈的数据包建立连接并完成预设策略匹配,其中,通过所述策略匹配可用筛选出需要进行检测的数据包,所述快核运行的快核网络协议栈被配置为根据所述连接确定针对来自于网卡数据包的处理方式,所述处理方式包括转发至网卡队列或者向所述慢核网络协议栈进行转发;从环形队列读取待检测的数据包并对所述待检测的数据包进行检测,并为检测完成的数据包添加判决标记,将所述添加所述判决标记的数据包发送至环形队列。
在一些实施例中,所述快核网络协议栈被配置为:轮询网卡NIC队列实现数据包的收发或者通过先进先出队列将所述数据包发送到慢核网络协议栈,以及轮询应用进程的环形队列以在所述监控程序完成对所述数据包的检测后对所述数据包进行转发;执行数据包的检测动作;所述慢核网络协议栈被配置为:在所述慢核网络协议栈收到来自于所述快核网络协议栈的数据包后,根据五元组信息进行预设策略匹配并建立连接保存针对所述数据包的连接状态;若根据所述五元组信息匹配成功,则确认监控进程对所述连接感兴趣,为所述连接添加连接标记,以使后续所述快核网络协议栈根据所述连接标记将需要检测的数据包均上送到所述监控进程进行检测,其中,所述五元组信息包括:源IP地址,目的IP地址,源端口,目的端口和传输层协议类型。
第三方面,本申请的一些实施例提供一种通信系统,所述通信网络包括如上述第一方面所述的网络设备和至少一台计算机主机,其中,所述计算机主机能够产生数据包,且所述数据包通过所述网络设备实现数据收发。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的网络拓扑结构图;
图2为本申请实施例提供的收发网络数据包的方法的流程图之一;
图3为本申请实施例提供的收发网络数据包的方法的流程图之二;
图4为本申请实施例提供的网络设备的组成框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请的一些实施例可以应用在高性能网络安全设备中,通过这些网络安全设备中的应用进程实现数据包的快速收发和检测。在本申请的一些实施例中,多个应用进程运行在多核上(例如,多个CPU或者多个计算核上),实现对数据包的并行检测,大幅提高检测效率。在本申请的一些实施例中,应用进程通过环形队列缓存待检测的数据包,以内存映射方式实现数据包的拷贝提升系统性能。在本申请的一些实施例中,快核实现数据包转发,慢核实现数据包的分析处理,解决网络安全设备转发效率低下的问题。
例如,本申请实施例提供一种收发网络数据包的方法,该方法包括:快核网络协议栈从网卡队列获取数据包,根据数据包的五元组查找连接表,如果查找到连接,说明为首包,否则为非首包。将所述连接的首包发送到慢核网络协议栈;在所述慢核网络协议栈将所述数据包的五元组与预设策略进行匹配,如果匹配成功则将所述数据包上送到监控进程的环形队列,并且在连接打上策略匹配成功的标志,否则发送到网卡队列。通过所述监控进程从所述环形队列读取所述数据包进行检测,在所述数据包添加判决结果标志;若所述快核通过轮询环形队列,确认所述数据包打上所述判决结果标志时,则根据判决结果将数据包进行丢弃或发送。对于连接的非首包,在所述快核网络协议栈查找连接表,如果该链接有策略匹配成功的标志,则上送到环形队列等待检测,否则,发送到网卡队列。
请参看图1,图1为本申请一些实施例提供的网络拓扑结构图,该图的网络包括多个终端和服务器(即图1的第一终端101、第二终端102、第三终端103以及服务器104)、两个网络安全设备(即图1的第一网络安全设备111以及第二网络安全设备112)以及网络120。这些设备可以是基于windows操作系统,或者这些设备中的部分设备基于windows操作系统,而剩余部分是基于linux操作系统的。
与相关技术提供的网络不同的是,在图1网络中网络安全设备将其上运行的多个计算核(或称为多个CPU)按照功能不同划分为快核和慢核,其中,快核用于转发数据,例如,将接收的网卡队列中的数据发送至网卡队列,或将接收的数据包发送至慢核对应的慢核协议栈或者将接收的数据包发送至环形队列等待慢核上运行的监控进程对这些数据包进行检测。相应的本申请的一些实施例的慢核用于运行监控进程,以实现对数据包的检测获取判决结果(例如,判决结果为正常则转发,判决结果为异常则丢弃),同时慢核上运行的慢核网络协议栈还被配置为接收的来自于快核网络协议栈的首次数据包建立连接、完成预设策略匹配并将匹配成功的数据包送入环形队列进行检测或者将首次数据包转发至网卡队列。
可以理解的是,网络安全设备接收的网卡队列中的数据是来自于图1的终端或者服务器的数据包。
需要说明的是,图1仅用于示例性说明本申请一些实施例基于的网络架构,在本申请的另一些实施例中网络架构中还包括网关等其他类型的网络设备,本申请并不限定网络设备的类型和具体数目。网络安全设备的类型包括具备数据包检测能力的网络安全设备,如防火墙等。
下面结合图2示例性阐述由图1的网络安全设备执行的收发网络数据包的方法。
如图2所示,在本申请的一些实施例中由网络安全设备执行的收发网络数据包的方法运行于包括多个计算核的电子设备上,且所述多个计算核中的各计算核被划分为属于快核或者慢核中的一类,所述快核被配置为运行快核网络协议栈,所述慢核被配置为运行慢核网络协议栈,监控进程运行于慢核包括的各计算核上且与各应用进程一一对应设备,该收发网络数据包的方法包括:S101,快核网络协议栈从网卡队列获取数据包。S102,将属于首包的数据包发送到慢核网络协议栈。S103,在所述慢核网络协议栈将所述数据包与预设策略进行匹配,如果匹配成功则将所述数据包上送到环形队列,否则,发送所述数据包到网卡队列,其中,所述环形队列与一个计算核对应。S104,通过所述监控进程从所述环形队列读取所述数据包并获取针对所述数据包的判决结果,在所述数据包添加判决结果标志,将包含所述判决结果的数据包下发到所述环形队列。S105,若所述快核确认所述数据包打上所述判决结果标志时,则将所述数据包发送到慢核,由所述慢核根据判决结果确定丢弃所述数据包或者将所述数据包发送到所述网卡队列。
通过上述实施例,快核会将接收的首个数据包(即来自于某个应用进程的第一个数据包)发送至慢核进行策略匹配并对匹配成功的数据包采用监控进程进行检测,这样可以采用慢核进行数据包检测而用快核将不需要检测的数据包直接转发,提升了网络数据包的转发速度,且本申请针对每个引用进城设置一个慢核进行检测因此还提升了对多进程数据并行处理的速度。
下面示例性阐述上述过程。
S101的快核网络协议栈运行在网络层,从驱动层读取或发送数据包,例如,快核网络协议栈通过轮询网卡队列获取所述数据包,这些数据包是来自于如图1所述的各终端或者服务器上。可以理解的是,一个数据包是按照一定层级封装,分为应用层,传输层,网络层,数据链路层。根据网络层的源IP地址、目的IP地址,以及协议号,根据传输层的源端口和目的端口,这5个元素形成的五元组作为数据包携带的特征信息。快核网络协议栈根据此五元组查找连接表,并根据此连接有策略匹配标记,说明监控进程对此数据包感兴趣。
为了实现通过快核来筛选待检测的数据包的技术目的,在本申请的一些实施例中,S102还包括:若通过所述快核网络协议栈确认不存在针对所述数据包的连接时,则将所述数据包发送至所述慢核网络协议栈;其中,在所述慢核网络协议栈将所述数据包与预设策略进行匹配之前,所述方法还包括:通过所述慢核协议栈建立所述连接,并在匹配成功时为所述连接添加标志,以使所述快核网络协议栈根据标志删选出需要发送至所述环形队列的数据包;其中,所述连接是与一个应用进程唯一对应的;所述方法还包括:由所述慢核根据判决结果进行丢弃所述数据包、删除所述连接或者发送所述数据包到所述网卡队列。
也就是说,本申请的一些实施例为了借助快核尽快筛选出待检测的数据包并可以直接将这些数据包发送至环形队列的效果,需要通过慢核为收到的首个数据包建立连接并在该连接与预设策略匹配成功后为该连接添加标志,之后如果还收到该连接相关的数据包就可以由快核识别后直接发往环形队列,由慢核中运行的监控进程进行数据包检测获得判决结果,所述判决结果包括:丢弃或者转发等进一步的处理动作。例如,一个数据包是按照一定层级封装,分为应用层,传输层,网络层以及数据链路层,根据网络层的源IP地址、目的IP地址,以及协议号并根据传输层的源端口和目的端口,这5个元素形成的五元组作为数据包携带的特征信息,而预设的策略的组织形式为“五元组+检测策略类型”,如果数据包的五元组和策略的五元组相匹配,则说明检测策略对此数据包感兴趣。
例如,在本申请的一些实施例中,所述慢核网络协议栈是根据所述数据包携带的五元组信息建立所述连接的,其中,所述五元组信息包括源IP地址、目的IP地址、源端口、目的端口以及传输层的协议类型。相应的,所述快核网络协议栈通过所述数据包所携带的五元组信息确认不存在所述连接,其中,所述五元组信息包括源IP地址、目的IP地址、源端口、目的端口以及传输层协议类型。可以理解的是,本申请的一些实施例通过五元组信息建立连接可以保证每个应用进程对应一个有效连接,提升并行处理多个应用进程的网络数据包的技术目的。需要说明的是,在本申请的一些实施例中,建立所述连接即根据数据包的五元组在系统中申请了一块内存空间,该内存空间用于存储客户端和服务器的通信状态,在首包建立此连接的目的是为了简化数据包匹配策略的过程和查找路由的过程,加快转发效率,根据建立的连接后续包直接查找连接表而不用做策略匹配(即与预设策略匹配),就可以将数据包上送到环形队列进行检测或者发送到网卡进行转发。例如,首包在慢核网络协议栈根据五元组做策略匹配,如果匹配上策略,说明监控monitor进程对这个连接的所有数据包都感兴趣,并且在此连接上添加一个匹配策略的标记,那么快核会根据此标记判断是直接转发还是上送到环形队列。
为了保证先接收的数据包被优先处理,在本申请的一些实施例中,S102包括:所述快核网络协议栈通过先进先出队列将所述数据包发送到所述慢核协议栈。
结合图1可知,当快核网络协议栈从网卡队列中接收到数据包之后可能涉及三种处理策略,其中,上述具体实施例部分的描述记载了一种通用的处理方法。可以理解的是,如果慢核协议栈为接收的首次数据包均建立连接后,在本申请的一些实施例中当快核网络协议栈接收的数据包之后还可以直接执行图2所示的另外两条分支,即执行S106-S107或者执行S108,下面示例性阐述这两条分支的实现过程。
如图2所示,在本申请的一些实施例中,收发网络数据包的方法还包括:S106,若所述快核网络协议栈确认存在针对所述数据包的连接且确认监控进程对所述数据包感兴趣,则将所述数据包上送环形队列,以使运行于慢核上的所述监控进程从所述环形队列中的读取待检测数据包并进行数据检测。以及S107,若所述快核网络协议栈确认针对所述数据包的检测操作已完成,则从所述环形队列读取数据包并根据判决结果对所述数据包进行发送或丢弃。例如,S107示例性包括:若所述快核网络协议栈确认针对所述数据包的检测操作已完成,则从所述环形队列读取数据包,根据检测结果对数据包进行处理。如果为正常数据包则发送到所述网卡队列;如果为异常包,则将数据包丢弃。
可以理解的是,本申请的一些实施例通过为建立的连接添加的标志确定快核网络协议栈是否需要将接收的数据包直接发送至环形队列,使得快核网络协议栈尽快将待检测数据发送至环形队列等待被检测,提升了数据处理的速度。
为了提升快核网络协议栈快速筛选出待检测的数据包的技术目的,在本申请的一些实施例中,通过所述慢核网络协议栈建立所述连接并为与预设策略匹配成功的所述连接添加标志;其中,S106涉及的确认监控进程对所述连接对应的所述数据包感兴趣的过程示例性包括:根据所述标志确认所述监控进程对所述数据包感兴趣。本申请的一些实施例通过建立连接并为连接添加标志的方式来提升快核实现待检测数据包的快速筛选,提升了数据处理的速度。
例如,在本申请的一些实施例中,通过运行所述快核网络协议栈的快核轮询所述环形队列并在确认所述数据包被打上判决结果标志时,则确认完成针对所述数据包的检测操作。本申请的一些实施例通过为检测完成数据包添加判决结果标志的方式,使得快核可以很快确认检测以完成的数据包,并完成对这些数据包的进一步的操作。
如图2所示,在本申请的一些实施例中,收发网络数据包的方法还包括:S108,若所述快核网络协议栈确认存在针对所述数据包的连接且确认监控进程对所述数据包不感兴趣时,则由所述快核网络协议栈将所述数据包转发到网卡队列。也就是说,本申请的一些实施例通过快核网络协议栈筛选出监控进程不感兴趣的连接所对应的数据包,并将这些数据包直接进行转发,提升了数据转发的速度。
例如,在本申请的一些实施例中,通过慢核网络协议栈建立S108所述连接并对与预设策略匹配成功的数据包对应的连接添加标志;其中,所述确认监控进程对所述数据包不感兴趣,包括:若通过快速网络协议栈确认不存在针对所述连接的标志时,则确认所述监控进程对所述数据包不感兴趣。本申请的一些实施例通过快核网络协议栈确认是否存在与连接对应设置的标志来确定监控进行是否对接收的数据包感兴趣,提升了快速筛选不感兴趣数据包并将这些数据包尽快转发的速度。例如,快核网络协议栈通过数据包的五元组查找连接表,如果查找到连接说明此数据包不是首包,那么根据连接是否有策略匹配的标记判断监控进程是否对此数据包感兴趣。可以理解的是,正是由于通过慢核上运行的慢核网络协议栈根据首包的五元组建立了连接,因而快核可以根据五元组查找连接。
本申请的一些实施例对于高性能网络安全设备,多进程MONITOR并行进行数据包的分析处理,实现对数据包的快速检测。采用快核实现数据包转发,慢核实现数据包的判决,保证了网络设备对数据包的快速转发,提高了系统的转发性能和吞吐能力。慢核运行慢核网络协议栈实现建立连接和策略匹配,运行多进程应用程序实现数据包检测。快核运行快核网络协议栈通过查找连接实现数据包的转发或上送到应用进程。
下面结合图3示例性以四核为例示例性阐述本申请一些实施例的收发网络数据包的方法的实现过程。
图3以4核心CPU为例,且选择第一处理器CPU0和第二处理器CPU1作为慢核,选择第三处理器CPU2和第四处理器CPU3作为快核,说明方案的实现细节。
第一步,快核网络协议栈轮询网卡队列,读取到数据包后(对应图3序号(101)),根据五元组查找连接。如果查找到对应的连接,并且监控简称MONITOR对此数据包感兴趣(说明该数据包不是来自于某个应用进程的首个数据包,因此系统已经存在针对这一类数据包的连接以及匹配成功后添加的标志,通过这些标志可以确定对此数据包感兴趣,所谓感兴趣即需要监控进程来检测这些数据包获取判决结果),则上送环形队列(对应图3序号(109))。否则,不感兴趣进行转发,发送到网卡队列(对应图3序号(111))。如果查找不到连接,通过先进先出队列发送到慢核协议栈(对应图3序号(102))。此时快核会一直轮询环形队列(对应图3的序号(112))和网卡队列进行数据包的接收和发送。在此处理过程中快核只处理数据包的转发和上送,数据包的转发效率有了很大提升。
第二步,在慢核网络协议栈从先进先出队列读取数据包(对应图3的序号(103)),根据数据包的五元组建立连接,并且将连接同步到快核网络协议栈,后续数据包会在快核查找连接进行转发(对应图3的序号(101)和(111))或上送到环形队列(对应图3的序号(109),而不用由慢核进行处理。
第三步,在慢核网络协议栈建立连接后,匹配自定义策略,如果匹配上自定义策略,说明监控MONITOR进程对此数据包感兴趣,上送到环形队列(对应图3的序号(104)),否则,发送数据包到网卡收包队列(对应图3的序号(108))。MONITOR进程从环形队列读取数据(对应图3的序号(105)),分析数据包特征,在数据包添加判决结果标志,下发到环形队列(对应图3序号(106))。
第四步,在快核轮询环形队列时(对应图3序号(112)),当数据包打上判决结果标志(对应图3序号(106)),如果数据包从慢核上送到环形队列(对应图3的序号(104)),会再次发送到慢核,慢核根据判决结果,进行丢包和删除连接或者发送到网卡队列(对应图3的序号(108));如果数据包从快核上送到环形队列(对应图3的序号(109)),由快核网络协议从环形队列读取数据包(对应图3序号(110)),发送到网卡队列(对应图3序号(111))。在此处理过程中,根据连接状态将MONITOR进程感兴趣的数据包上送到环形队列,使检测效率有了很大提升。
结合上述所有示例不难看出,在本申请的一些实施例中,选择任意个CPU核心(即任意个计算核),不参与系统的调度,简称其为“快核”,对应的网络协议栈为快核网络协议栈。选择任意个CPU核心,参与系统调度,简称为“慢核”,对应慢核网络协议栈,运行监控MONITOR进程,进行数据包特征的分析识别并获取判决结果。
在本申请的一些实施例中,在慢核网络协议栈收到数据包后,根据五元组(源IP,目的IP,源端口,目的端口,协议)匹配自定义策略,同时建立连接保存数据包的连接状态。根据五元组匹配上某条自定义策略,说明MONITOR进程对此连接感兴趣,会在此连接添加标记,后续该连接的数据包都会上送到MONITOR进程进行检测。如果MONITOR进程不感兴趣,由网络协议栈进行转发。
在本申请的一些实施例中,快核网络协议栈用于轮询网卡NIC队列实现数据包的收发,以及轮询应用进程的环形队列执行数据包的检测动作。只有MONITOR进程感兴趣的数据包会上送到环形队列,等待进行检测,其它数据包通过查找连接实现数据包的转发或者通过先进先出队列发送到慢核网络协议栈进行处理。
另外,只有慢核运行MONITOR进程,并且MONITOR进程和CPU进行亲和。环形队列和MONITOR进程进行绑定。因此,每个慢核CPU对应一个MONITOR进程,对应一个环形队列。
如图4所示,本申请的一些实施例提供一种网络设备300,该网络设备300包括多个计算核,且所述多个计算核中的各计算核分别属于快核或慢核中的一类;其中,所述慢核至少被配置为:运行一个与单个应用进程对应的监控进程实现数据包检测,获取判决结果;所述快核至少被配置为:实现数据包的转发或上送到应用进程;或者将待检测的数据包发送至慢核并转发具有判决结果的部分数据包。
在一些实施例中,所述慢核还被配置为:运行慢核网络协议栈以完成针对来自于快核网络协议栈的数据包建立连接并完成预设策略匹配,其中,通过所述策略匹配可用筛选出需要进行检测的数据包,所述快核运行的快核网络协议栈被配置为根据所述连接确定针对来自于网卡数据包的处理方式,所述处理方式包括转发至网卡队列或者向所述慢核网络协议栈进行转发;从环形队列读取待检测的数据包并对所述待检测的数据包进行检测,并为检测完成的数据包添加判决标记,将所述添加所述判决标记的数据包发送至环形队列。
在一些实施例中,所述快核网络协议栈被配置为:轮询网卡NIC队列实现数据包的收发或者通过先进先出队列将所述数据包发送到慢核网络协议栈,以及轮询应用进程的环形队列以在所述监控程序完成对所述数据包的检测后对所述数据包进行转发;执行数据包的检测动作;所述慢核网络协议栈被配置为:在所述慢核网络协议栈收到来自于所述快核网络协议栈的数据包后,根据五元组信息进行预设策略匹配并建立连接保存针对所述数据包的连接状态;若根据所述五元组信息匹配成功,则确认监控进程对所述连接感兴趣,为所述连接添加连接标记,以使后续所述快核网络协议栈根据所述连接标记将需要检测的数据包均上送到所述监控进程进行检测,其中,所述五元组信息包括:源IP地址,目的IP地址,源端口,目的端口和传输层协议类型。
本申请的一些实施例提供一种通信系统,所述通信网络包括如上述图4网络设备和至少一台计算机主机,其中,所述计算机主机能够产生数据包,且所述数据包通过所述网络设备实现数据收发。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的网络设备和通信系统的具体工作过程,可以参考前述方法200中的对应过程,在此不再过多赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (13)

1.一种收发网络数据包的方法,运行于包括多个计算核的电子设备上,其特征在于,所述多个计算核中的各计算核被划分为属于快核或者慢核中的一类,所述快核被配置为运行快核网络协议栈,所述慢核被配置为运行慢核网络协议栈,监控进程运行于慢核包括的各计算核上且与各应用进程一一对应设置,所述方法包括:
快核网络协议栈从网卡队列获取数据包,并确认所述数据包属于首包;
将所述数据包发送到慢核网络协议栈;
通过所述慢核网络协议栈将所述数据包携带的连接信息与预设策略进行匹配,如果匹配成功则将所述数据包上送到环形队列,否则发送所述数据包到网卡队列,其中,所述环形队列与一个计算核对应;
通过所述监控进程从所述环形队列读取所述数据包,对所述数据包进行检测以获取针对所述数据包的判决结果,并在所述数据包添加判决结果标志后将包含所述判决结果标志的数据包下发到所述环形队列;
若所述快核确认所述数据包被打上所述判决结果标志时,则将所述数据包发送到慢核,由所述慢核根据所述判决结果确定丢弃所述数据包或者将所述数据包发送到所述网卡队列。
2.如权利要求1所述的方法,其特征在于,所述将所述数据包发送到慢核网络协议栈,包括:
若通过所述快核网络协议栈确认不存在针对所述数据包的连接时,则将所述数据包发送至所述慢核网络协议栈;
其中,在通过所述慢核网络协议栈将所述数据包与预设策略进行匹配之前,所述方法还包括:
通过所述慢核网络协议栈建立所述连接,并在匹配成功时为所述连接添加标志,以使所述快核网络协议栈根据标志筛选出需要发送至所述环形队列的数据包;其中,所述连接是与一个应用进程唯一对应的;
所述方法还包括:由所述慢核根据判决结果进行丢弃所述数据包、删除所述连接或者发送所述数据包到所述网卡队列。
3.如权利要求2所述的方法,其特征在于,所述慢核网络协议栈是根据所述数据包携带的五元组信息建立所述连接的,其中,所述五元组信息包括源IP地址、目的IP地址、源端口、目的端口以及传输层的协议类型;其中,
所述快核网络协议栈通过所述数据包所携带的五元组信息确认不存在所述连接,其中,所述五元组信息包括源IP地址、目的IP地址、源端口、目的端口以及传输层协议类型。
4.如权利要求1-3任一项所述的方法,其特征在于,所述快核网络协议栈通过先进先出队列将所述数据包发送到所述慢核网络协议栈。
5.如权利要求2所述的方法,其特征在于,所述方法还包括:
若所述快核网络协议栈确认存在针对所述数据包的连接且确认监控进程对所述连接对应的所述数据包感兴趣,则将所述数据包上送环形队列,以使运行于慢核上的所述监控进程从所述环形队列中的读取待检测数据包并进行数据检测;
若所述快核网络协议栈确认针对所述数据包的检测操作已完成,则从所述环形队列读取数据包并根据判决结果对所述数据包进行发送或丢弃。
6.如权利要求5所述的方法,其特征在于,通过所述慢核网络协议栈建立所述连接并为与预设策略匹配成功的所述连接添加标志;
其中,所述确认监控进程对所述连接对应的所述数据包感兴趣,包括:
根据所述标志确认所述监控进程对所述数据包感兴趣。
7.如权利要求5-6任一项所述的方法,其特征在于,通过运行所述快核网络协议栈的快核轮询所述环形队列并在确认所述数据包被打上判决结果标志时,则确认完成针对所述数据包的检测操作。
8.如权利要求5-6任一项所述的方法,其特征在于,所述快核网络协议栈通过轮询网卡队列获取所述数据包。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:若所述快核网络协议栈确认存在针对所述数据包的连接且确认监控进程对所述数据包不感兴趣时,则由所述快核网络协议栈将所述数据包转发到网卡队列。
10.如权利要求9所述的方法,其特征在于,通过慢核网络协议栈建立所述连接并对与预设策略匹配成功的数据包对应的连接添加标志;
其中,所述确认监控进程对所述数据包不感兴趣,包括:
若通过快速网络协议栈确认不存在针对所述连接的标志时,则确认所述监控进程对所述数据包不感兴趣。
11.一种网络设备,其特征在于,该网络设备包括多个计算核,且所述多个计算核中的各计算核分别属于快核或慢核中的一类,所述慢核包括至少一个计算核,所述快核包括至少一个计算核;
其中,
所述慢核包括的各计算核至少被配置为:运行一个与单个应用进程对应的监控进程实现数据包检测,获取判决结果;
所述快核至少被配置为:从网卡队列读取数据包,并实现数据包的转发或上送到应用进程;或者将待检测的数据包发送至慢核并转发具有判决结果的部分数据包;其中,
所述慢核还被配置为:
运行所述慢核网络协议栈以完成针对来自于快核网络协议栈的属于首包的数据包建立连接并完成预设策略匹配,其中,通过所述策略匹配可筛选出需要进行检测的数据包,所述快核运行的快核网络协议栈被配置为根据所述连接确定针对来自于网卡数据包的处理方式,所述处理方式包括转发至网卡队列或者向所述慢核网络协议栈进行转发;
运行于所述慢核包括的各计算核上的监控进程被配资为:从环形队列读取待检测的数据包并对所述待检测的数据包进行检测,获取判决结果并为检测完成的数据包添加判决结果标志,将所述添加所述判决结果标志的数据包发送至环形队列。
12.如权利要求11所述的设备,其特征在于,
运行于快核上的所述快核网络协议栈被配置为:轮询网卡NIC[A1]队列实现数据包的收发,通过先进先出队列将所述数据包发送到慢核网络协议栈,或者轮询应用进程的环形队列以在所述监控进程完成对所述数据包的检测后对所述数据包进行转发;
所述慢核网络协议栈被配置为:
在所述慢核网络协议栈收到来自于所述快核网络协议栈的数据包后,根据五元组信息进行预设策略匹配并建立连接保存针对所述数据包的连接状态;
若根据所述五元组信息匹配成功,则确认监控进程对所述连接感兴趣,为所述连接添加连接标记,以使后续所述快核网络协议栈根据所述连接标记将需要检测的数据包均上送到所述监控进程进行检测,其中,所述五元组信息包括:源IP地址,目的IP地址,源端口,目的端口和传输层协议类型。
13.一种通信系统,其特征在于,所述通信网络包括如权利要求11-12任一项网络设备和至少一台计算机主机,其中,所述计算机主机能够产生数据包,且所述数据包通过所述网络设备实现数据收发。
CN202111342254.8A 2021-11-12 2021-11-12 一种收发网络数据包的方法、网络设备以及通信系统 Active CN113992425B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111342254.8A CN113992425B (zh) 2021-11-12 2021-11-12 一种收发网络数据包的方法、网络设备以及通信系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111342254.8A CN113992425B (zh) 2021-11-12 2021-11-12 一种收发网络数据包的方法、网络设备以及通信系统

Publications (2)

Publication Number Publication Date
CN113992425A CN113992425A (zh) 2022-01-28
CN113992425B true CN113992425B (zh) 2022-09-23

Family

ID=79748328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111342254.8A Active CN113992425B (zh) 2021-11-12 2021-11-12 一种收发网络数据包的方法、网络设备以及通信系统

Country Status (1)

Country Link
CN (1) CN113992425B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115297328B (zh) * 2022-10-10 2023-01-20 湖南马栏山视频先进技术研究院有限公司 面向分布式集群的多节点并行视频转码方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103414535A (zh) * 2013-07-31 2013-11-27 华为技术有限公司 数据发送方法和数据接收方法及相关装置
CN104281493A (zh) * 2014-09-28 2015-01-14 般固(北京)科技股份有限公司 一种提升应用交付通讯平台多进程程序性能的方法
CN110022330A (zh) * 2018-01-09 2019-07-16 阿里巴巴集团控股有限公司 用于网络数据包的处理方法、装置及电子设备
CN113518130A (zh) * 2021-08-19 2021-10-19 北京航空航天大学 一种基于多核处理器的分组突发负载均衡方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170277903A1 (en) * 2016-03-22 2017-09-28 Qualcomm Incorporated Data Protection Using Virtual Resource Views

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103414535A (zh) * 2013-07-31 2013-11-27 华为技术有限公司 数据发送方法和数据接收方法及相关装置
CN104281493A (zh) * 2014-09-28 2015-01-14 般固(北京)科技股份有限公司 一种提升应用交付通讯平台多进程程序性能的方法
CN110022330A (zh) * 2018-01-09 2019-07-16 阿里巴巴集团控股有限公司 用于网络数据包的处理方法、装置及电子设备
CN113518130A (zh) * 2021-08-19 2021-10-19 北京航空航天大学 一种基于多核处理器的分组突发负载均衡方法及系统

Also Published As

Publication number Publication date
CN113992425A (zh) 2022-01-28

Similar Documents

Publication Publication Date Title
US10735379B2 (en) Hybrid hardware-software distributed threat analysis
CN108701187B (zh) 用于混合硬件软件分布式威胁分析的设备和方法
US9009830B2 (en) Inline intrusion detection
US10897391B2 (en) Fault detection method and node device
US8005012B1 (en) Traffic analysis of data flows
US9848004B2 (en) Methods and systems for internet protocol (IP) packet header collection and storage
US7903566B2 (en) Methods and systems for anomaly detection using internet protocol (IP) traffic conversation data
US10547674B2 (en) Methods and systems for network flow analysis
US8726382B2 (en) Methods and systems for automated detection and tracking of network attacks
US7995496B2 (en) Methods and systems for internet protocol (IP) traffic conversation detection and storage
US8762515B2 (en) Methods and systems for collection, tracking, and display of near real time multicast data
US20070022468A1 (en) Packet transmission equipment and packet transmission system
WO2014085952A1 (zh) 一种策略处理的方法及网络设备
KR20100067666A (ko) 라우터 검출
WO2011053284A1 (en) Methods and apparatus for detection of a nat device
CN114422387A (zh) 一种网络资产探测方法、装置、电子设备和存储介质
US7924829B2 (en) Technique for enabling network statistics on software partitions
CN113992425B (zh) 一种收发网络数据包的方法、网络设备以及通信系统
CN111756713B (zh) 网络攻击识别方法、装置、计算机设备及介质
CN101741745B (zh) 识别对等网络应用流量的方法及其系统
JP2005295457A (ja) P2pトラフィック対応ルータ及びそれを用いたp2pトラフィック情報共有システム
CN104067558A (zh) 具有控制模块和网络访问模块的网络访问装置
US20180026993A1 (en) Differential malware detection using network and endpoint sensors
JP4319609B2 (ja) 攻撃経路解析装置及び攻撃経路解析方法及びプログラム
CN115022155A (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
CB03 Change of inventor or designer information

Inventor after: Du Wei

Inventor after: Fan Xuejian

Inventor after: Sun Feng

Inventor after: Bao Xiaoling

Inventor after: Wang Kailu

Inventor after: Chen Qiang

Inventor after: Zhang Bilin

Inventor before: Du Wei

Inventor before: Fan Xuejian

Inventor before: Sun Feng

Inventor before: Bao Xiaoling

Inventor before: Wang Kailu

Inventor before: Chen Qiang

Inventor before: Zhang Bilin

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant