CN106571978A - 数据包捕获方法及装置 - Google Patents
数据包捕获方法及装置 Download PDFInfo
- Publication number
- CN106571978A CN106571978A CN201610972743.4A CN201610972743A CN106571978A CN 106571978 A CN106571978 A CN 106571978A CN 201610972743 A CN201610972743 A CN 201610972743A CN 106571978 A CN106571978 A CN 106571978A
- Authority
- CN
- China
- Prior art keywords
- packet
- core
- data
- file
- capture
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
Abstract
本申请提供一种数据包捕获方法及装置,应用于终端设备,其中,数据包捕获方法包括:接收数据包捕获指令,所述捕获指令中包括捕获策略;根据终端设备中央处理器包括的核心数量N,将网卡数据分发到M个核心,其中,M为大于或等于1、且小于或等于N的正整数;创建M个分别与所述M个核心关联的收包线程;控制所述M个收包线程,分别对所述M个核心中的数据进行监听,以对满足所述捕获策略的数据包进行收包处理。实现了利用多线程对数据包进行收包处理,增加了数据包捕获能力,提高了数据包的捕获效率,减少了丢包问题的发生,为网络安全系统和网络监控系统的发展提供了条件。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据包捕获方法及装置。
背景技术
数据包捕获技术是关乎网络安全的底层技术,目前,常用的数据包捕获软件如tcpdump,ethereal,snort等,在进行数据包捕获时,都是根据捕获条件,当网卡收到数据包时,触发一次硬件中断,以内存拷贝的方式将数据包拷贝到相应的内核缓冲区,中断处理程序发现拷贝结束后,将数据包挂入网络数据包(sk_buff)队列,中断处理程序开始做计算数据包校验和等操作,并持续收包;当中断处理结束后,将数据包向上层协议栈传递。用户态程序通过系统调用从sk_buff中获取数据包,并拷贝到用户态缓冲区,之后对数据包进行处理。
但是,随着网络速度的快速提升,在网络流量比较大时,采用上述数据包捕获方式,会出现大量丢包问题,制约了网络安全系统和网络监控系统的发展。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种数据包捕获方法,该方法实现了利用多线程对数据包进行收包处理,并行生成多个pcap文件,最终进行合并的方式。增加了数据包捕获能力,提高了数据包的捕获效率,减少了丢包问题的发生,为网络安全系统和网络监控系统的发展提供了条件。
本申请的第二个目的在于提出一种数据包捕获装置。
为达上述目的,本申请第一方面实施例提出了一种数据包捕获方法,应用于终端设备,包括以下步骤:接收数据包捕获指令,所述捕获指令中包括捕获策略;根据终端设备中央处理器包括的核心数量N,将网卡数据分发到M个核心,其中,M为大于或等于1、且小于或等于N的正整数;创建M个分别与所述M个核心关联的收包线程;控制所述M个收包线程,分别对所述M个核心中的数据进行监听,以对满足所述捕获策略的数据包进行收包处理。
在第一方面的一种可能的实现形式中,所述根据终端设备中中央处理器包括的核心数量N,将网卡数据分发到M个核心,包括:
配置网卡接收端缩放(Receive Side Scaling,简称RSS)参数,以将所述网卡数据分发到M个核心。
在第一方面的另一种可能的实现形式中,所述控制所述M个收包线程,同时对所述M个核心中的数据进行监听,包括:
控制所述M个收包线程,以用户空间输入输出(Userspac I/O,简称UIO)机制分别对所述M个核心中的数据进行监听。
在第一方面的又一种可能的实现形式中,所述创建M个并行执行的收包线程之后,还包括:
在随机存取存储器中创建一个虚拟文件系统,并在所述虚拟文件系统中创建M个随机存储文件;
分别将所述M个随机存储文件映射到所述M个收包线程的空间。
在第一方面的又一种可能的实现形式中,所述控制所述M个收包线程,分别对所述M个核心中的数据进行监听,以对满足所述捕获策略的数据包进行收包处理,包括:
控制所述M个收包线程,分别对满足所述捕获策略的数据包进行收包处理,生成M个抓包文件;
在确定对与所述捕获策略对应的所有数据包完成捕获后,将所述M个抓包文件进行合并处理,生成与所述捕获策略对应的抓包文件。
在第一方面的再一种可能的实现形式中,所述数据包中包括数据包的时间戳;
所述将所述M个抓包文件进行合并处理,包括:
根据所述M个抓包文件中各数据包的时间戳,将所述M个抓包文件中的各数据包进行排序,生成一个完整的pcap文件。
本实施例提供的数据包捕获方法,在接收到数据包捕获指令后,首先根据中的设备中CPU包括的核心数量,将网卡数据分发到M个核心,然后创建M个分别与M个核心关联的收包线程,然后控制M个收包线程,分别对M个核心中的数据进行监听,创建M个并行执行的收包线程,然后控制M个并行执行的收包线程,同时对网卡进行监听,以对满足捕获策略的数据包进行收包处理。由此,实现了利用多线程对数据包进行收包处理,增加了数据包捕获能力,提高了数据包的捕获效率,减少了丢包问题的发生,为网络安全系统和网络监控系统的发展提供了条件。
为达上述目的,本申请第二方面实施例提出了一种数据包捕获装置,应用于终端设备,包括:接收模块,用于接收数据包捕获指令,所述捕获指令中包括捕获策略;分发模块,用于根据终端设备中央处理器包括的核心数量N,将网卡数据分发到M个核心,其中,M为大于或等于1、且小于或等于N的正整数;第一创建模块,用于创建M个分别与所述M个核心关联的收包线程;处理模块,用于控制所述M个收包线程,分别对所述M个核心中的数据进行监听,以对满足所述捕获策略的数据包进行收包处理。
在第二方面的一种可能的实现形式中,上述分发模块,具体用于:
配置网卡RSS参数,以将所述网卡数据分发到M个核心。
在第二方面的另一种可能的实现形式中,所述处理模块,具体用于:
控制所述M个收包线程,以UIO机制分别对所述M个核心中的数据进行监听。
在第二方面的另一种可能的实现形式中,该数据包捕获装置,还包括:
第二创建模块,用于在随机存取存储器中创建一个虚拟文件系统,并在所述虚拟文件系统中创建M个随机存储文件;
映射模块,用于分别将所述M个随机存储文件映射到所述M个收包线程的空间。
在第二方面的又一种可能的实现形式中,所述处理模块,包括:
第一生成单元,用于控制所述M个收包线程,分别对满足所述捕获策略的数据包进行收包处理,生成M个抓包文件;
第二生成单元,用于在确定对与所述捕获策略对应的所有数据包完成捕获后,将所述M个抓包文件进行合并处理,生成与所述捕获策略对应的抓包文件。
在第二方面的又一种可能的实现形式中,所述数据包中包括数据包的时间戳;
所述第二生成单元,具体用于:
根据所述M个抓包文件中各数据包的时间戳,将所述M个抓包文件中的各数据包进行排序,生成一个完整的pcap文件。
本实施例提供的数据包捕获装置,在接收到数据包捕获指令后,首先根据中的设备中CPU包括的核心数量,将网卡数据分发到M个核心,然后创建M个分别与M个核心关联的收包线程,然后控制M个收包线程,分别对M个核心中的数据进行监听,创建M个并行执行的收包线程,然后控制M个并行执行的收包线程,同时对网卡进行监听,以对满足捕获策略的数据包进行收包处理。由此,实现了利用多线程对数据包进行收包处理,增加了数据包捕获能力,提高了数据包的捕获效率,减少了丢包问题的发生,为网络安全系统和网络监控系统的发展提供了条件。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一个实施例的数据包捕获方法的流程图;
图2是本申请另一个实施例的数据包捕获方法的流程图;
图3是本申请一个实施例的数据包捕获装置的结构示意图;
图4是本申请另一个实施例的数据包捕获装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的数据包捕获方法及装置。
图1是本申请一个实施例的数据包捕获方法的流程图。
如图1所示,该数据包捕获方法包括:
S101,接收数据包捕获指令,所述捕获指令中包括捕获策略。
具体的,本实施例提供的数据包捕获方法,执行主体为本申请提供的数据包捕获装置,该装置可以被配置在任何终端设备中,以对终端设备中的网络报文进行数据包捕获,从而以便终端设备中的防火墙、入侵检测系统、网络监控系统等安全系统,对终端设备进行安全保护和分析。
其中,捕获指令可以是根据用户配置生成的,也可以是由防火墙、网络监控系统等发送的,本实施例对此不作限定,捕获策略可以为以下信息中的至少一种:网络端口号、通信协议类型、数据包数量、捕获时常等。
具体实现时,数据包捕获装置,可以根据捕获策略,对通过网卡的数据进行捕获,比如捕获特定网络端口的数据包,或者捕获特定通信协议类型的数据包等等。
步骤102,根据终端设备中央处理器包括的核心数量N,将网卡数据分发到M个核心。
其中,M为大于或等于1、且小于或等于N的正整数。
步骤103,创建M个分别与所述M个核心关联的收包线程。
步骤104,控制所述M个收包线程,分别对所述M个核心中的数据进行监听,以对满足所述捕获策略的数据包进行收包处理。
通常,中央处理器(Central Processing Unit,简称CPU)包括的核心数量是指在物理上,也就是硬件上一个处理器存在几个运算核心,指的是真实存在处理器上存在的核心数量,1个代表处理器上存在一个运算核心,2个代表处理器上存在两个运算核心。本实施例中,数据包捕获装置,在收到数据包捕获指令后,首先根据终端设备中CPU包括的核心数量,将网卡数据分发到不同的核心中,然后创建多个分别与不同核心关联的收包线程,并行对不同核心中的数据包进行收包,而由于多个线程可同时执行收包处理,且收包过程相互独立,从而可增加收包处理能力。
具体的,本实施里中,可以通过配置网卡的接收端缩放(Receive Side Scaling,简称RSS)参数,将通过网卡的同一会话(session)的数据包分配给同一核心,从而避免乱序。即上述步骤102,包括:
配置网卡RSS参数,以将所述网卡数据分发到M个核心。
其中,多队列网卡,是一项网卡的新特性,对于多队列网卡,可以通过配置网卡RSS参数,将不同的网络流分成不同的队列,再分别将这些队列分配到不同CPU核上进行处理,从而将负荷分散,充分利用CPU多核处理器的能力。
具体的,本实施例中,数据包捕获装置,通过配置网卡的RSS参数,将网卡接收的数据包分成M个分别对应不同CPU核心的队列,从而使M个收包分别并行对M个核心中的数据包进行收包,在确定队列中有满足捕获策略的新的数据包时,对新的数据包进行收包处理,由于M个收包线程独立执行,从而增加了对满足捕获策略的数据包的捕获能力,减少了丢包问题。
需要说明的是,在利用网卡RSS参数,将网卡数据分发到不同核心时,需要根据网卡的硬件支持的队列数量及CPU核心数量确定将网卡数据分发的队列数量。举例来说,若网卡的硬件支持的队列数量为L,CPU的核心数量为N,则通过配置RSS参数,最多可以将网卡数据分发到M个核心中,其中M小于或等于min{L、N}。
在本实施例一种可能的实现形式中,为了最大限度的利用CPU的核心,收包线程的数量可以等于min{L、N}。举例来说,若L=4,N=5,那么M最大可以取4,即可以创建4个收包线程进行数据包捕获。
进一步地,为了简化数据包捕获装置捕获数据包的处理过程,减小数据包捕获装置捕获数据包的时间,上述步骤104,包括:
控制所述M个收包线程,以用户空间输入输出(Userspace I/O,简称UIO)机制分别对所述M个空间中的数据进行监听。
其中,用户空间输入输出机制,可以使网卡驱动程序运行在用户态,并采用轮询和零拷贝的方式从网卡收取报文。
具体的,本实施例中,各收包线程通过UIO机制分别对关联的核心收到的数据进行捕获,可以直接将数据包放在工作与其关联的核心的接收队列中,而无需先在内核态收取数据包,然后再通过数据拷贝,将数据包从内核态拷贝到用户态。数据包的捕获过程中传递的都是内存指针,从而减少了内存拷贝带来的性能损失。
具体实现时,M个收包线程分别对M个核心中的数据进行监听,并该核心接收的网络报文,是否满足捕获策略,若是,则可以将数据包进行收包,并生成抓包(packetcapture,简称pcap)文件。
本实施例提供的数据包捕获方法,在接收到数据包捕获指令后,首先根据中的设备中CPU包括的核心数量,将网卡数据分发到M个核心,然后创建M个分别与M个核心关联的收包线程,然后控制M个收包线程,分别对M个核心中的数据进行监听,以对满足捕获策略的数据包进行收包处理。由此,实现了利用多线程对数据包进行收包处理,增加了数据包捕获能力,提高了数据包的捕获效率,减少了丢包问题的发生,为网络安全系统和网络监控系统的发展提供了条件。
通过上述分析可知,数据包捕获装置,在收到数据包捕获指令后,可以根据终端设备中CPU包括的核心数量,创建多个并行执行的收包线程,对通过网卡的数据包进行同时、并行收包,从而增加数据包的捕获能力,为网络安全系统和网络监控系统的发展提供了条件。在数据包捕获装置,完成对数据包的捕获后,网络安全系统或网络监控系统即可读取捕获的数据包,并根据捕获的数据包,对网络的安全进行分析和检测,本申请实施例中,为了简化网络安全系统或网络监控系统读取数据包的过程,提高数据包的读取效率,还可以采用图2所示的方法,进行数据包捕获。
图2是本申请另一个实施例的数据包捕获方法的流程图。
如图2所示,该方法包括:
步骤201,接收数据包捕获指令,所述捕获指令中包括捕获策略。
步骤202,根据终端设备中央处理器包括的核心数量N,将网卡数据分发到M个核心。
步骤203,创建M个分别与所述M个核心关联的收包线程。
步骤204,在随机存取存储器中创建一个虚拟文件系统,并在虚拟文件系统中创建M个随机存储文件。
步骤205,分别将所述M个随机存储文件映射到所述M个并行执行的收包线程空间。
具体的,由于随机存取存储器(random access memory,简称RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快。因此,本实施例中,数据包捕获装置通过在RAM中创建文件,并将RAM盘文件映射到收包进程空间中,之后就网络安全系统或网络监控系统,无需调用系统函数,即可直接对收包进程空间中的数据进行读写了,从而提高了对pcap文件的读写效率。
具体实现时,数据包捕获装置,可以通过内存映射(mmap)或其他映射方式,将RAM文件映射到收包线程空间中,本实施例对此不作描述。
步骤206,控制所述M个收包线程,分别以UIO机制判断所述M个核心中的数据包是否满足所述捕获策略,若是,则执行步骤207,否则返回继续执行步骤206。
步骤207,对满足所述捕获策略的数据包进行收包处理,生成M个抓包文件。
步骤208,在确定对与所述捕获策略对应的所有数据包完成捕获后,将所述M个抓包文件进行合并处理,生成与所述捕获策略对应的抓包文件。
具体的,M个收包线程进行收包时,如果是M个收包进程一起生成一个pcap文件(M个进程共同读写一个文件),那么每个进程每次操作都需要对文件进行加锁与解锁操作,增添系统开销。因此,本实施例中,M个收包进程在收包过程中,每个收包进程单独生成一个pcap文件,每个进程对文件的读写相对独立,互不干扰。不需要加锁解锁操作。在所有收包进程结束后,再按每个pcap文件数据包的时间戳对数据包进行排序,重新生成一个完整的pcap文件。
具体实现时,数据包捕获装置,可以通过多种方式,确定各个线程完成了对所有数据包的捕获。
举例来说,可以根据是否收到了捕获终止指令、文件是否下载完成、是否达到了规定的抓包时间、或者生成的pcap文件大小是否满足要求等,来控制各个线程是否需要继续抓包。
另外,由于M个pcap文件不能进行单纯的合并,需要对文件中的数据包进行排序,才能获得准确的数据包,因此,本实施里中可以根据M个pcap文件中的时间戳对M个pcap文件中的各个数据包进行排序。
通常来说,数据包中包括数据包的序列号,因此,各个收包线程,在进行收包处理时,可以首先根据数据包中的序列号,将各个数据包依次保存,生成M个pcap文件,然后数据包捕获装置,即可读取M个有序的pcap文件,再对M个有序的pcap文件中所有的数据包进行排序了,即上述步骤207,具体包括:
根据所述M个抓包文件中各数据包的序列号,将所述M个抓包文件中的各数据包进行排序。
举例来说,假如P为一个由I个数据包的有序集合:P={X|Xi≤Xj,i,j∈[0,I)},现有m个集合:P1、P2、P3、……PM,那么M个集合中的最小值为:min=min(min(P1),min(P2),...,min(Pn)),通过对M个pcap文件中的各个数据包进行归并排序后,即可获得最终与捕获策略对应的有序的pcap文件。
本实施例提供的数据包捕获方法,在接收到数据包捕获指令后,首先通过配置网卡的rss参数,将网卡接收的数据包分发到M个cpu核,然后再创建M个收包线程,再在ram盘中创建虚拟文件系统,并创建M个RAM文件,再通过内存映射将M个RAM文件映射到M个收包线程中,再控制M个收包线程以轮询的方式从网卡依次获取满足捕获策略的数据包,并分别生成M个pcap文件,最后在收包结束后,将M个pcap文件合并成一个与捕获策略对应的pcap文件。由此,实现了利用多线程以轮询的方式对数据包进行捕获,提高了数据包捕获的能力,提高了数据包的捕获效率,减少了丢包问题的发生,且通过将ram文件映射到各个线程获取的pcap文件上,提高了pcap文件的读写效率,节省了系统资源,为网络安全系统和网络监控系统的发展提供了条件。
为了实现上述实施例,本申请还提出一种数据包捕获装置。
图3是本申请一个实施例的数据包捕获的结构示意图。
如图3所示,该数据包捕获装置包括:
接收模块31,用于接收数据包捕获指令,所述捕获指令中包括捕获策略;
分发模块32,用于根据终端设备中央处理器包括的核心数量N,将网卡数据分发到M个核心,其中,M为大于或等于1、且小于或等于N的正整数;
第一创建模块33,用于创建M个分别与所述M个核心关联的收包线程;
处理模块34,用于控制所述M个收包线程,分别对所述M个核心中的数据进行监听,以对满足所述捕获策略的数据包进行收包处理。
具体的,在本实施例一种可能的实现形式中,所述分发模块32,具体用于:
配置RSS参数,以将所述网卡数据分发到M个核心。
进一步地,所述处理模块34,具体用于:
控制所述M个收包线程,以UIO机制分别对所述M个核心中的数据进行监听。
具体的,所述处理模块34,包括:
第一生成单元,用于控制所述M个收包线程,分别对满足所述捕获策略的数据包进行收包处理,生成M个抓包文件;
第二生成单元,用于在确定对与所述捕获策略对应的所有数据包完成捕获后,将所述M个抓包文件进行合并处理,生成与所述捕获策略对应的抓包文件。
进一步地,通常数据包中包括数据包的时间戳;
相应的,所述第二生成单元,具体用于:
根据所述M个抓包文件中各数据包的时间戳,将所述M个抓包文件中的各数据包进行排序,生成一个完整的pcap文件。
需要说明的是,前述对数据包捕获方法实施例的解释说明也适用于该实施例的数据包捕获装置,此处不再赘述。
本实施例提供的数据包捕获装置,在接收到数据包捕获指令后,首先根据中的设备中CPU包括的核心数量,将网卡数据分发到M个核心,然后创建M个分别与M个核心关联的收包线程,然后控制M个收包线程,分别对M个核心中的数据进行监听,创建M个并行执行的收包线程,然后控制M个并行执行的收包线程,同时对网卡进行监听,以对满足捕获策略的数据包进行收包处理。由此,实现了利用多线程对数据包进行收包处理,增加了数据包捕获能力,提高了数据包的捕获效率,减少了丢包问题的发生,为网络安全系统和网络监控系统的发展提供了条件。
图4是本申请另一个实施例的数据包捕获装置的结构示意图。
如图4所示,在上述图3所示的基础上,该数据包捕获装置,还包括:
第二创建模块41,用于在随机存取存储器中创建一个虚拟文件系统,并在所述虚拟文件系统中创建M个随机存储文件;
映射模块42,用于分别将所述M个随机存储文件映射到所述M个并行执行的收包线程的空间。
需要说明的是,前述对数据包捕获方法实施例的解释说明也适用于该实施例的数据包捕获装置,此处不再赘述。
本申请实施例的数据包捕获装置,在接收到数据包捕获指令后,首先通过配置网卡的rss参数,将网卡接收的数据包分发到m个核,然后再创建M个收包线程,再在随机读取盘中创建M个RAM文件,再通过内存映射将M个RAM文件映射到M个收包线程中,其中M个收包线程分别对应不同的内核,再控制M个收包线程以轮询的方式获取数据包,并分别生成M个pcap文件,最后在收包结束后,将M个pcap文件合并成一个与捕获策略对应的pcap文件。由此,实现了利用多线程以轮询的方式对数据包进行捕获,提高了数据包捕获的能力,提高了数据包的捕获效率,减少了丢包问题的发生,且通过将ram文件映射到各个线程获取的pcap文件上,提高了pcap文件的读写效率,节省了系统资源,为网络安全系统和网络监控系统的发展提供了条件。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种数据包捕获方法,应用于终端设备,其特征在于,包括以下步骤:
接收数据包捕获指令,所述捕获指令中包括捕获策略;
根据终端设备中央处理器包括的核心数量N,将网卡数据分发到M个核心,其中,M为大于或等于1、且小于或等于N的正整数;
创建M个分别与所述M个核心关联的收包线程;
控制所述M个收包线程,分别对所述M个核心中的数据进行监听,以对满足所述捕获策略的数据包进行收包处理。
2.如权利要求1所述的方法,其特征在于,所述根据终端设备中中央处理器包括的核心数量N,将网卡数据分发到M个核心,包括:
配置网卡接收端缩放RSS参数,以将所述网卡数据分发到M个核心。
3.如权利要求1所述的方法,其特征在于,所述控制所述M个收包线程,同时对所述M个核心中的数据进行监听,包括:
控制所述M个收包线程,以用户空间输入输出UIO机制分别对所述M个核心中的数据进行监听。
4.如权利要求1所述的方法,其特征在于,所述创建M个并行执行的收包线程之后,还包括:
在随机存取存储器中创建一个虚拟文件系统,并在所述虚拟文件系统中创建M个随机存储文件;
分别将所述M个随机存储文件映射到所述M个收包线程的空间。
5.如权利要求1-4任一所述的方法,其特征在于,所述控制所述M个收包线程,分别对所述M个核心中的数据进行监听,以对满足所述捕获策略的数据包进行收包处理,包括:
控制所述M个收包线程,分别对满足所述捕获策略的数据包进行收包处理,生成M个抓包文件;
在确定对与所述捕获策略对应的所有数据包完成捕获后,将所述M个抓包文件进行合并处理,生成与所述捕获策略对应的抓包文件。
6.如权利要求5所述的方法,其特征在于,所述数据包中包括数据包的时间戳;
所述将所述M个抓包文件进行合并处理,包括:
根据所述M个抓包文件中各数据包的时间戳,将所述M个抓包文件中的各数据包进行排序,生成一个完整的pcap文件。
7.一种数据包捕获装置,应用于终端设备,其特征在于,包括:
接收模块,用于接收数据包捕获指令,所述捕获指令中包括捕获策略;
分发模块,用于根据终端设备中央处理器包括的核心数量N,将网卡数据分发到M个核心,其中,M为大于或等于1、且小于或等于N的正整数;
第一创建模块,用于创建M个分别与所述M个核心关联的收包线程;
处理模块,用于控制所述M个收包线程,分别对所述M个核心中的数据进行监听,以对满足所述捕获策略的数据包进行收包处理。
8.如权利要求7所述的装置,其特征在于,分发模块,具体用于:
配置网卡接收端缩放RSS参数,以将所述网卡数据分发到M个核心。
9.如权利要求7所述的装置,其特征在于,所述处理模块,具体用于:
控制所述M个收包线程,以用户空间输入输出UIO机制分别对所述M个核心中的数据进行监听。
10.如权利要求7所述的装置,其特征在于,还包括:
第二创建模块,用于在随机存取存储器中创建一个虚拟文件系统,并在所述虚拟文件系统中创建M个随机存储文件;
映射模块,用于分别将所述M个随机存储文件映射到所述M个收包线程的空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610972743.4A CN106571978B (zh) | 2016-10-28 | 2016-10-28 | 数据包捕获方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610972743.4A CN106571978B (zh) | 2016-10-28 | 2016-10-28 | 数据包捕获方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106571978A true CN106571978A (zh) | 2017-04-19 |
CN106571978B CN106571978B (zh) | 2020-11-27 |
Family
ID=58539836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610972743.4A Active CN106571978B (zh) | 2016-10-28 | 2016-10-28 | 数据包捕获方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106571978B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109104426A (zh) * | 2018-08-21 | 2018-12-28 | 西安交通大学 | 一种基于发包速率的加密流量分析防御方法 |
CN110493311A (zh) * | 2019-07-17 | 2019-11-22 | 视联动力信息技术股份有限公司 | 一种业务处理方法及装置 |
CN112817536A (zh) * | 2021-02-03 | 2021-05-18 | 恒为科技(上海)股份有限公司 | 一种数据包的捕获方法及相关装置 |
CN113114532A (zh) * | 2021-04-07 | 2021-07-13 | 国网上海市电力公司 | 一种基于便携式设备的变电站自动化网路数据监控方法 |
CN114095251A (zh) * | 2021-11-19 | 2022-02-25 | 南瑞集团有限公司 | 一种基于dpdk与vpp的sslvpn实现方法 |
WO2024021984A1 (zh) * | 2022-07-28 | 2024-02-01 | 华为技术有限公司 | 报文处理方法和服务器 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267361A (zh) * | 2008-05-09 | 2008-09-17 | 武汉飞思科技有限公司 | 一种基于零拷贝技术的高速网络数据包捕获方法 |
CN102098227A (zh) * | 2011-03-03 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 报文捕获方法及内核模块 |
CN103281335A (zh) * | 2013-06-18 | 2013-09-04 | 东华大学 | 一种基于WinPcap的嵌入式网络协议栈开发方法 |
CN103581181A (zh) * | 2013-10-28 | 2014-02-12 | 清华大学 | 数据包捕获、处理和发送方法及系统 |
CN103916316A (zh) * | 2014-04-11 | 2014-07-09 | 国家计算机网络与信息安全管理中心 | 网络数据包线速捕获方法 |
CN104184659A (zh) * | 2013-05-22 | 2014-12-03 | 上海贝尔股份有限公司 | 一种用于获取网络中数据包的方法与设备 |
CN104506379A (zh) * | 2014-12-12 | 2015-04-08 | 北京锐安科技有限公司 | 网络数据捕获方法和系统 |
CN105577567A (zh) * | 2016-01-29 | 2016-05-11 | 国家电网公司 | 基于Intel DPDK的网络数据包并行处理方法 |
-
2016
- 2016-10-28 CN CN201610972743.4A patent/CN106571978B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267361A (zh) * | 2008-05-09 | 2008-09-17 | 武汉飞思科技有限公司 | 一种基于零拷贝技术的高速网络数据包捕获方法 |
CN102098227A (zh) * | 2011-03-03 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 报文捕获方法及内核模块 |
CN104184659A (zh) * | 2013-05-22 | 2014-12-03 | 上海贝尔股份有限公司 | 一种用于获取网络中数据包的方法与设备 |
CN103281335A (zh) * | 2013-06-18 | 2013-09-04 | 东华大学 | 一种基于WinPcap的嵌入式网络协议栈开发方法 |
CN103581181A (zh) * | 2013-10-28 | 2014-02-12 | 清华大学 | 数据包捕获、处理和发送方法及系统 |
CN103916316A (zh) * | 2014-04-11 | 2014-07-09 | 国家计算机网络与信息安全管理中心 | 网络数据包线速捕获方法 |
CN104506379A (zh) * | 2014-12-12 | 2015-04-08 | 北京锐安科技有限公司 | 网络数据捕获方法和系统 |
CN105577567A (zh) * | 2016-01-29 | 2016-05-11 | 国家电网公司 | 基于Intel DPDK的网络数据包并行处理方法 |
Non-Patent Citations (1)
Title |
---|
孙萍 等.: "基于WinPcap的以太网监听系统的设计与实现.", 《舰船电子对抗》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109104426A (zh) * | 2018-08-21 | 2018-12-28 | 西安交通大学 | 一种基于发包速率的加密流量分析防御方法 |
CN109104426B (zh) * | 2018-08-21 | 2020-05-22 | 西安交通大学 | 一种基于发包速率的加密流量分析防御方法 |
CN110493311A (zh) * | 2019-07-17 | 2019-11-22 | 视联动力信息技术股份有限公司 | 一种业务处理方法及装置 |
CN110493311B (zh) * | 2019-07-17 | 2022-04-19 | 视联动力信息技术股份有限公司 | 一种业务处理方法及装置 |
CN112817536A (zh) * | 2021-02-03 | 2021-05-18 | 恒为科技(上海)股份有限公司 | 一种数据包的捕获方法及相关装置 |
CN112817536B (zh) * | 2021-02-03 | 2022-09-16 | 恒为科技(上海)股份有限公司 | 一种数据包的捕获方法及相关装置 |
CN113114532A (zh) * | 2021-04-07 | 2021-07-13 | 国网上海市电力公司 | 一种基于便携式设备的变电站自动化网路数据监控方法 |
CN114095251A (zh) * | 2021-11-19 | 2022-02-25 | 南瑞集团有限公司 | 一种基于dpdk与vpp的sslvpn实现方法 |
CN114095251B (zh) * | 2021-11-19 | 2024-02-13 | 南瑞集团有限公司 | 一种基于dpdk与vpp的sslvpn实现方法 |
WO2024021984A1 (zh) * | 2022-07-28 | 2024-02-01 | 华为技术有限公司 | 报文处理方法和服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN106571978B (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106571978A (zh) | 数据包捕获方法及装置 | |
CN108829350B (zh) | 基于区块链的数据迁移方法和装置 | |
CN103827842B (zh) | 向控制器存储器空间写入消息 | |
Xu et al. | Small is better: Avoiding latency traps in virtualized data centers | |
Li et al. | Pslo: Enforcing the xth percentile latency and throughput slos for consolidated vm storage | |
CN103929334B (zh) | 网络异常通知方法和装置 | |
CA2849565C (en) | Method, apparatus, and system for scheduling processor core in multiprocessor core system | |
JP3823098B2 (ja) | グリッド計算ワークロードをネットワーク・ワークステーションに割り当てるためのシステムおよび方法 | |
EP2548130B1 (en) | Shaping virtual machine communication traffic | |
CN105765535B (zh) | 对cpu进行独占受控访问的硬件虚拟化模块 | |
CN104142867A (zh) | 数据处理装置及数据处理方法 | |
CN107046508A (zh) | 报文接收方法及网络设备 | |
CN104301430B (zh) | 软件定义存储系统、方法及其集中控制设备 | |
DE112016004347T5 (de) | Lokale und globale Datenzentrumsnetzoptimierungen in Echtzeit basierend auf Plattformtelemetriedaten | |
CN109768939A (zh) | 一种支持优先级的标签化网络栈方法和系统 | |
CN107818056A (zh) | 一种队列管理方法及装置 | |
CN108345502A (zh) | 基于dpdk的资源调度方法、装置、终端设备及可读存储介质 | |
CN107294869A (zh) | 一种虚拟网卡报文抓取的方法及系统 | |
CN108563493A (zh) | 一种事件驱动方法、装置、设备及可读存储介质 | |
CN109857542A (zh) | 算力资源调节方法、系统及装置 | |
Liu et al. | Mitigating cross-VM side channel attack on multiple tenants cloud platform. | |
CN107797848A (zh) | 进程调度方法、装置和主机设备 | |
JP2011254455A (ja) | プラットフォーム電力状態をイネーブルする方法、装置、およびシステム | |
CN104951688B (zh) | 适用于Xen虚拟化环境下的专用数据加密方法及加密卡 | |
CN103577294B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |