数据包捕获方法及装置制造方法及图纸

技术编号:15198385 阅读:117 留言:0更新日期:2017-04-21 14:49
本申请提供一种数据包捕获方法及装置,应用于终端设备,其中,数据包捕获方法包括:接收数据包捕获指令,所述捕获指令中包括捕获策略;根据终端设备中央处理器包括的核心数量N,将网卡数据分发到M个核心,其中,M为大于或等于1、且小于或等于N的正整数;创建M个分别与所述M个核心关联的收包线程;控制所述M个收包线程,分别对所述M个核心中的数据进行监听,以对满足所述捕获策略的数据包进行收包处理。实现了利用多线程对数据包进行收包处理,增加了数据包捕获能力,提高了数据包的捕获效率,减少了丢包问题的发生,为网络安全系统和网络监控系统的发展提供了条件。

Data packet capturing method and device

This application provides a data packet capture method and device applied to the terminal equipment, which comprises: receiving a data packet capture method of packet capture instruction, the capture command comprises capture strategy; according to the number of cores N terminal equipment including the central processor, the network card data is distributed to the M core, the M for a positive integer greater than or equal to 1 and less than or equal to N; M were created with the M core associated packet receiving control thread; the M packet receiving thread, respectively by listening to the M in the core data, to meet the packet capture strategy received packet processing. To achieve the use of multi thread data packets received packet processing, increase the ability of data packet capture, improves the efficiency of data packets capture and reduce packet loss problems, provided the conditions for the development of network security system and network monitoring system.

【技术实现步骤摘要】

本申请涉及通信
,尤其涉及一种数据包捕获方法及装置。
技术介绍
数据包捕获技术是关乎网络安全的底层技术,目前,常用的数据包捕获软件如tcpdump,ethereal,snort等,在进行数据包捕获时,都是根据捕获条件,当网卡收到数据包时,触发一次硬件中断,以内存拷贝的方式将数据包拷贝到相应的内核缓冲区,中断处理程序发现拷贝结束后,将数据包挂入网络数据包(sk_buff)队列,中断处理程序开始做计算数据包校验和等操作,并持续收包;当中断处理结束后,将数据包向上层协议栈传递。用户态程序通过系统调用从sk_buff中获取数据包,并拷贝到用户态缓冲区,之后对数据包进行处理。但是,随着网络速度的快速提升,在网络流量比较大时,采用上述数据包捕获方式,会出现大量丢包问题,制约了网络安全系统和网络监控系统的发展。
技术实现思路
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本申请的第一个目的在于提出一种数据包捕获方法,该方法实现了利用多线程对数据包进行收包处理,并行生成多个pcap文件,最终进行合并的方式。增加了数据包捕获能力,提高了数据包的捕获效率,减少了丢包问题的发生,为网络安全系统和网络监控系统的发展提供了条件。本申请的第二个目的在于提出一种数据包捕获装置。为达上述目的,本申请第一方面实施例提出了一种数据包捕获方法,应用于终端设备,包括以下步骤:接收数据包捕获指令,所述捕获指令中包括捕获策略;根据终端设备中央处理器包括的核心数量N,将网卡数据分发到M个核心,其中,M为大于或等于1、且小于或等于N的正整数;创建M个分别与所述M个核心关联的收包线程;控制所述M个收包线程,分别对所述M个核心中的数据进行监听,以对满足所述捕获策略的数据包进行收包处理。在第一方面的一种可能的实现形式中,所述根据终端设备中中央处理器包括的核心数量N,将网卡数据分发到M个核心,包括:配置网卡接收端缩放(ReceiveSideScaling,简称RSS)参数,以将所述网卡数据分发到M个核心。在第一方面的另一种可能的实现形式中,所述控制所述M个收包线程,同时对所述M个核心中的数据进行监听,包括:控制所述M个收包线程,以用户空间输入输出(UserspacI/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,接收数据包捕获指令,所述捕获指令中包括捕获策略。具体的,本实施例提供的数据包捕获方法,执行主体为本申请提供的数据包捕获装置,该装置可以被配置在任何终端设备中,以对终端设备中的网络报文进行数据包捕获,从而以便本文档来自技高网...
数据包捕获方法及装置

【技术保护点】
一种数据包捕获方法,应用于终端设备,其特征在于,包括以下步骤:接收数据包捕获指令,所述捕获指令中包括捕获策略;根据终端设备中央处理器包括的核心数量N,将网卡数据分发到M个核心,其中,M为大于或等于1、且小于或等于N的正整数;创建M个分别与所述M个核心关联的收包线程;控制所述M个收包线程,分别对所述M个核心中的数据进行监听,以对满足所述捕获策略的数据包进行收包处理。

【技术特征摘要】
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个抓包文件;在确定对与所述捕获策略...

【专利技术属性】
技术研发人员:刘芳宁
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1