一种多核实时IP抓包方法及装置与流程

文档序号:27932137发布日期:2021-12-11 12:20阅读:166来源:国知局
一种多核实时IP抓包方法及装置与流程
一种多核实时ip抓包方法及装置
技术领域
1.本发明主要涉及到网络通讯技术领域,特指一种多核实时ip抓包方法及装置。


背景技术:

2.随着网络技术的快速发展,网络通信与我们的生活息息相关,而捕获、截取、重发、编辑、转存网络通信的数据流的过程就是“抓包”(packet capture),捕获的内容就是抓取的报文。通过“抓包”获取报文,对报文进行分析统计能帮助运维研发人员快速定位问题,解决问题。
3.目前,主流的抓包工具都是通过调用libpcap或者winpcap底层库函数来完成抓包。这种方法的原理就是在数据链路层加一个旁路处理,当一个数据包到达网络接口时,pcap利用已经创建的socket从链路层驱动程序中获得该数据包的拷贝,再通过tap函数将数据包发给bpf过滤器;该bpf过滤器根据过滤规则对数据包进行逐一匹配,匹配成功则放入内核缓冲区,并传递给用户缓冲区;匹配失败则直接丢弃,如此循环往复。但是,这种方法实际上采用的是单核方式,所占cpu利用率不高,在大流量网络传输环境下,处理速度跟不上,导致丢包。
4.此外,采用上述传统方法抓包后,存储的数据混杂,运维研发人员往往需要从大量的数据中进行检索和分析,无法快速精确的分析定位问题。以获取某个应用在某个时间段是否响应某条指令为例,运维研发人员通过抓包工具需要过滤出该应用会话信息、标记各个时间信息、找到对应指令,通过这三个步骤,才能得出相对精确的结论,此过程非常耗时。


技术实现要素:

5.本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、操作简便、抓包效果好的多核实时ip抓包方法及装置。
6.为解决上述技术问题,本发明采用以下技术方案:
7.一种多核实时ip抓包方法,其步骤包括:
8.步骤s1:设置抓包过滤条件;
9.步骤s2:将过滤条件封装成过滤规则表达式;
10.步骤s3:分配网卡,组合过滤规则表达式;
11.步骤s4:建立多个抓包线程;
12.步骤s5:控制抓包线程数据包抓取和停止。
13.作为本发明方法的进一步改进:所述步骤s1中,用户设置多个抓包过滤条件,每个过滤条件包括:源ip,源端口,目的ip,目的端口,抓包协议类型。
14.作为本发明方法的进一步改进:所述步骤s2中,根据已有的过滤语法,将过滤条件封装成过滤规则表达式。
15.作为本发明方法的进一步改进:所述步骤s3中,在多网卡情况下,根据过滤规则表达式分配对应抓包网卡,将分配相同网卡的过滤规则表达式两两组合成一个,或者多个组
合成一个。
16.作为本发明方法的进一步改进:所述步骤s4中,根据所述过滤规则表达式的组合数量建立抓包线程的数量。
17.作为本发明方法的进一步改进:还包括步骤s6:抓取到数据包后,对数据的统计分类存储和数据信息管理。
18.作为本发明方法的进一步改进:所述步骤s6包括:
19.步骤s601:解析抓取到的数据包;
20.步骤s602:建立数据映射关系,存储有效数据,源和目的都相同的数据才存储到同一个文件里;
21.步骤s603:建立数据库文件属性表,往表里插入有效数据文件属性字段,用于事后分析检索。
22.作为本发明方法的进一步改进:所述步骤s601中,将数据包内容根据网络协议解析,获取到具体的有效数据内容,包括数据长度,数据源ip,数据源端口,数据目的ip,数据目的端口。
23.作为本发明方法的进一步改进:所述步骤s602中,建立数据映射关系表,映射表字段包括源ip,源端口,目的ip,目的端口,以及文件对象;根据数据解析模块获取的具体信息,与数据映射表已有信息比对,没有则建立新的存储文件对象,将对应信息添加进数据映射表,并将有效数据和当前时间戳写入文件;如果从数据映射表找到了已有信息,则从数据映射表获取存储文件对象,并将有效数据和当前时间戳写入文件;如果写入文件的大小达到阈值,则关闭该文件对象,并删除映射表里该条对应信息;数据映射模块处理流程保证了只有源和目的都相同的数据才存储到同一个文件里;
24.作为本发明方法的进一步改进:所述步骤s603中,建立一个数据库文件属性表,用于事后分析检索;每次建立新的存储文件对象,就往文件属性表里插入一条记录;每次将有效数据写入文件,则更新文件属性表里对应记录。
25.作为本发明装置的进一步改进:一种多核实时ip抓包装置,其特征包括:
26.过滤条件设置模块,用于设置抓包过滤条件;
27.过滤转换器,用于将过滤条件封装成过滤规则表达式;
28.网卡分配模块,用于分配网卡,组合过滤规则表达式;
29.多线程抓包模块,用于建立多个抓包线程;
30.采集控制模块,用于控制抓包线程数据包抓取和停止。
31.作为本发明装置的进一步改进:还包括抓包数据统计存储管理模块,用于在抓取到数据包后,对数据的统计分类存储和数据信息管理。
32.作为本发明装置的进一步改进:所述抓包数据统计存储管理模块包括:
33.数据解析模块,用于解析抓取到的数据包;
34.数据映射模块,用于建立数据映射关系,存储有效数据,源和目的都相同的数据才存储到同一个文件里;
35.数据库管理模块,用于建立数据库文件属性表,往表里插入有效数据文件属性字段,用于事后分析检索。
36.与现有技术相比,本发明的优点在于:
37.本发明的多核实时ip抓包方法及装置,原理简单、操作简便、抓包效果好,本发明一方面通过多核实时抓包,提高cpu利用率,实现高效抓包且不丢包;另一方面通过抓包数据统计存储管理方法使得源到目的或者目的到源的数据内容和信息单独存储,运维研发人员只需要搜索关键字,即可找到对应数据文件,本发明的方法还能进一步方便事后检索和查找,提高运维和研发人员的工作效率,利于快速定位问题。
附图说明
38.图1是本发明方法的流程示意图。
39.图2是本发明在具体应用实例中对数据的统计分类存储和数据信息管理的流程示意图。
40.图3是本发明装置的拓扑结构原理示意图。
具体实施方式
41.以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
42.如图1所示,本发明的多核实时ip抓包方法,实际上是一种多线程并发抓包方式,其步骤包括:
43.步骤s1:设置抓包过滤条件;
44.步骤s2:将过滤条件封装成过滤规则表达式;在具体应用时,可以通过过滤转换器来实现;
45.步骤s3:分配网卡,组合过滤规则表达式;在具体应用时,可以通过网卡分配模块来实现;
46.步骤s4:建立多个抓包线程;在具体应用时,可以通过多线程抓包模块来实现;
47.步骤s5:控制抓包线程数据包抓取和停止;在具体应用时,可以通过采集控制模块来实现。
48.在具体应用实例中,所述步骤s1中,用户设置多个抓包过滤条件,每个过滤条件包括:源ip,源端口,目的ip,目的端口,抓包协议类型。
49.在具体应用实例中,所述步骤s2中,根据已有的过滤语法,将过滤条件封装成过滤规则表达式。
50.在具体应用实例中,所述步骤s3中,在多网卡情况下,根据过滤规则表达式分配对应抓包网卡,将分配相同网卡的过滤规则表达式两两组合成一个,或者多个组合成一个。
51.在具体应用实例中,所述步骤s4中,所述过滤规则表达式的组合有多少个,就建立多少个抓包线程。
52.在具体应用实例中,所述步骤s5中,根据实际需要,控制多个抓包线程的数据包抓取或者停止。
53.参见图1,本发明在以上步骤的基础上,本发明进一步包括步骤s6:抓取到数据包后,对数据的统计分类存储和数据信息管理。在具体应用时,可以通过采集抓包数据统计存储管理模块来实现。
54.在具体应用实例中,所述步骤s6包括:
55.步骤s601:解析抓取到的数据包;
56.步骤s602:建立数据映射关系,存储有效数据,源和目的都相同的数据才存储到同一个文件里;
57.步骤s603:建立数据库文件属性表,往表里插入有效数据文件属性字段,用于事后分析检索。
58.参见图2,本发明进一步在步骤s601中,将数据包内容根据网络协议解析,获取到具体的有效数据内容,包括数据长度,数据源ip,数据源端口,数据目的ip,数据目的端口;
59.参见图2,本发明进一步在步骤s602中,建立数据映射关系表,映射表字段包括源ip,源端口,目的ip,目的端口,以及文件对象。具体过程是根据数据解析模块获取的具体信息,如源ip,源端口,目的ip,目的端口,与数据映射表已有信息比对,没有则建立新的存储文件对象,将对应信息添加进数据映射表,并将有效数据和当前时间戳写入文件;如果从数据映射表找到了已有信息,则从数据映射表获取存储文件对象,并将有效数据和当前时间戳写入文件;如果写入文件的大小达到阈值,则关闭该文件对象,并删除映射表里该条对应信息。数据映射模块处理流程保证了只有源和目的都相同的数据才存储到同一个文件里;
60.参见图2,本发明进一步在步骤s603中,建立一个数据库文件属性表,用于事后分析检索。文件属性表字段包括文件名,文件大小,文件创建时间,文件存储路径,源ip,源端口,目的ip,目的端口。每次建立新的存储文件对象,就往文件属性表里插入一条记录;每次将有效数据写入文件,则更新文件属性表里对应记录。上述方法方便了后续运维和研发人员直接从文件属性表里检索对应数据信息,并获取存储数据文件。
61.参见图3,本发明进一步提供一种多核实时ip抓包装置,其包括:
62.过滤条件设置模块,用于设置抓包过滤条件;
63.过滤转换器,用于将过滤条件封装成过滤规则表达式;
64.网卡分配模块,用于分配网卡,组合过滤规则表达式;
65.多线程抓包模块,用于建立多个抓包线程;
66.采集控制模块,用于控制抓包线程数据包抓取和停止。
67.在具体应用实例中,所述过滤条件设置模块中,用户设置多个抓包过滤条件,每个过滤条件包括:源ip,源端口,目的ip,目的端口,抓包协议类型。
68.在具体应用实例中,所述过滤转换器中,根据已有的过滤语法,将过滤条件封装成过滤规则表达式。
69.在具体应用实例中,所述网卡分配模块中,在多网卡情况下,根据过滤规则表达式分配对应抓包网卡,将分配相同网卡的过滤规则表达式两两组合成一个,或者多个组合成一个。
70.在具体应用实例中,所述多线程抓包模块中,过滤规则表达式的组合有多少个,就建立多少个抓包线程。
71.在具体应用实例中,所述采集控制模块中,根据实际需要,控制多个抓包线程的数据包抓取或者停止。
72.本发明进一步还包括抓包数据统计存储管理模块,用于在抓取到数据包后,对数据的统计分类存储和数据信息管理。
73.在具体应用实例中,所述抓包数据统计存储管理模块包括:
74.数据解析模块,用于解析抓取到的数据包;
75.数据映射模块,用于建立数据映射关系,存储有效数据,源和目的都相同的数据才存储到同一个文件里;
76.数据库管理模块,用于建立数据库文件属性表,往表里插入有效数据文件属性字段,用于事后分析检索。
77.在具体应用实例中,所述数据解析模块将数据包内容根据网络协议解析,获取到具体的有效数据内容,包括数据长度,数据源ip,数据源端口,数据目的ip,数据目的端口。
78.在具体应用实例中,所述数据映射模块建立数据映射关系表,映射表字段包括源ip,源端口,目的ip,目的端口,以及文件对象。具体过程是根据数据解析模块获取的具体信息,如源ip,源端口,目的ip,目的端口,与数据映射表已有信息比对,没有则建立新的存储文件对象,将对应信息添加进数据映射表,并将有效数据和当前时间戳写入文件;如果从数据映射表找到了已有信息,则从数据映射表获取存储文件对象,并将有效数据和当前时间戳写入文件;如果写入文件的大小达到阈值,则关闭该文件对象,并删除映射表里该条对应信息。数据映射模块处理流程保证了只有源和目的都相同的数据才存储到同一个文件里;
79.在具体应用实例中,所述数据库管理模块建立一个数据库文件属性表,用于事后分析检索。文件属性表字段包括文件名,文件大小,文件创建时间,文件存储路径,源ip,源端口,目的ip,目的端口。每次建立新的存储文件对象,就往文件属性表里插入一条记录;每次将有效数据写入文件,则更新文件属性表里对应记录。上述方法方便了后续运维和研发人员直接从文件属性表里检索对应数据信息,并获取存储数据文件。
80.以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1