CN115225730B - 一种支持多任务的高并发离线数据包分析方法 - Google Patents
一种支持多任务的高并发离线数据包分析方法 Download PDFInfo
- Publication number
- CN115225730B CN115225730B CN202210846646.6A CN202210846646A CN115225730B CN 115225730 B CN115225730 B CN 115225730B CN 202210846646 A CN202210846646 A CN 202210846646A CN 115225730 B CN115225730 B CN 115225730B
- Authority
- CN
- China
- Prior art keywords
- task
- data packet
- content
- file
- database
- 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
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 claims description 13
- 238000007781 pre-processing Methods 0.000 claims description 6
- 239000012634 fragment Substances 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 2
- 238000007405 data analysis Methods 0.000 abstract description 2
- 241000509958 Moloch Species 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种支持多任务的高并发离线数据包分析方法,属于数据分析领域,具体为首先、将输入的pcap大文件分割成小文件,利用五元组信息将数据包存入对应的小文件,并保存小文件路径到ES数据库中;然后,任务节点对用户输入要匹配的五元组以及内容关键词生成任务id,并下发至主控节点写入redis数据库中;主控节点查询ES数据库,将与任务五元组匹配的结果传输给内容检索节点;内容检索节点通过小文件路径,采用线程池快速读取小文件内容,还原成IP数据包与用户输入的关键词进行匹配;最后,将匹配成功的数据包五元组以及小文件路径,写入redis数据库对应任务id的键值中,读取对应的pcap文件内容,展现给用户;本发明支持多任务的快速分析。
Description
技术领域
本发明属于数据分析领域,具体为一种支持多任务的高并发离线数据包分析方法。
背景技术
离线数据包存在着高价值的线索和情报,分析离线数据包对于后续精准查找目标有决定性的意义。但是,离线数据包的分析具有如下的几个难点:
1.分析的单个数据包文件比较大,达到TB级别;
2.需要支持多任务,即多个分析任务能够并发执行;
3.分析结果能够快速返回,并且可以进行二次迭代分析;
4.需要支持对跨包的负载数据进行匹配,即支持分段的匹配;
5.需要支持五元组以及内容关键词等复合规则的匹配。
常见的离线数据包分析方法是采用wireshark以及MOLOCH开源软件来实现,可以对小文件进行单任务进行分析,但是从功能以及性能上无法同时全部解决上述难点。
发明内容
针对上述技术问题,本发明提供了一种支持多任务的高并发离线数据包分析方法,能够对TB级文件进行多任务及高并发的分析。
所述支持多任务的高并发离线数据包分析方法,具体步骤如下:
步骤一、对输入的pcap大文件进行预处理,生成小文件集合以及五元组信息,插入ES数据库中;
具体如下:
首先,将pcap大文件长度除以固定分片数,得到预分配的小文件总数B,并对应分别命名为1.pcap至B.pcap,每个小文件的初始化内容为空。
然后,依次读取pcap大文件的内容,每次读取一个ip数据包S,提取此数据包S的五元组信息,计算出该数据包S对应的hash数值C;
接着,利用数据包S的hash数值C,通过取模得到对应小文件的序号D;
即:D=C%B+1;
最后,将此数据包S的内容写入到文件名为D.pcap的小文件中,将单个数据包S的五元组信息和小文件的路径信息D.pcap,保存到ES数据库。
同理,对pcap大文件内容的每个ip数据包均重复提取五元组,计算各数据包的hash值,对应写入到各小文件名中,进行保存。
步骤二、若干用户通过界面输入各自需要匹配的五元组以及内容关键词,界面发起各用户的任务至任务节点,任务节点生成各任务的任务id,并将任务id以及任务涉及的五元组和内容关键词下发至主控节点。
步骤三、主控节点将多个任务id以及任务涉及的五元组和内容关键词写入redis数据库中。
步骤四、主控节点使用任务的五元组信息查询ES数据库,ES数据库将与任务五元组匹配的结果返回给主控节点;
每一条匹配结果包括ES数据库存储的数据包五元组信息以及小文件的路径。
步骤五、主控节点将ES数据库中匹配成功的五元组,通过RPC方式高效传输给内容检索节点。
步骤六、内容检索节点通过ES数据库中匹配成功五元组对应的小文件路径,采用线程池的方式快速读取小文件内容,还原成IP数据包的负载数据,并且利用该负载数据与用户输入的关键词进行匹配;
匹配算法为高性能匹配引擎hperscan。
步骤七、内容检索节点将关键词匹配成功的数据包五元组以及小文件路径,写入redis数据库对应任务id的键值中。
步骤八、任务节点定时从redis数据库中读取多个任务id的键值数据,抽取小文件的路径,读取对应的pcap文件内容,展现到对应的用户响应界面。
本发明的优点在于:
本发明一种支持多任务的高并发离线数据包分析方法,采用分片对大文件进行处理,同时采用Elasticsearch数据库高速查询、redis数据库内存高速交互及线程池的处理方式,支持多任务的快速分析。
附图说明
图1是本发明一种支持多任务的高并发离线数据包分析方法的原理图;
图2是本发明一种支持多任务的高并发离线数据包分析方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明一种支持多任务的高并发离线数据包分析方法,分为功能节点以及数据库。
功能节点包括预处理节点、任务节点、主控节点、内容检索节点。数据库包括ES数据库以及Redis数据库。任务节点与主控节点、主控节点与内容检索节点采用高效的RPC方式。
具体流程如图1所示,首先、预处理节点读取pcap大文件,生成小文件集合以及流信息,插入到ES数据库;对于一个新的任务,任务节点会生成任务id以及匹配规则(五元组和关键词)的信息,通过RPC异步调用的方式下发至主控节点。
然后、主控节点将接收到任务id信息,以key的方式写到Redis数据库,后续内容和检索节点会更新此key对应的键值value信息。
同时,主控节点将此任务id对应的五元组信息,通过多线程的方式从高速ES数据库中查询,ES数据库返回命中信息,包括流信息的所有数据包以及所在的文件路径;并将命中信息以及任务id信息,通过RPC异步的方式下发至内容检索节点。
内容检索节点接收命中信息以及任务id信息后,读取小文件集合进行匹配,将匹配成功的五元组信息以及所在的小文件的路径的信息更新至redis数据库,
最后、任务节点定时从Redis数据库读取任务id对应的键值value信息,进行展示。
所述支持多任务的高并发离线数据包分析方法,如图2所示,具体步骤如下:
步骤一、预处理节点读取输入的pcap大文件,分割成固定分片大小的小文件,并提取小文件中每个流的五元组信息和小文件自身的路径信息,保存到Elasticsearch数据库;
具体如下:
首先,将pcap大文件的总大小(假设大小为A,大小的单位为TB)除以固定分片数(如128MB),得到预分配的小文件总数B,即B=(A*1024*1024)/200,1TB=1024*1024*MB。
然后,生成小文件集合,文件名分别为1.pcap至B.pcap,每个文件的初始化内容为空。
接着,依次读取pcap大文件的内容,每次读取一个ip数据包S,提取此数据包S的五元组信息,包括源ip地址、目的ip、源端口、目的端口、协议号;采用五元组计算出该数据包S对应的hash数值C;
利用hash数值映射到小文件的某一个文件id中。
具体方法如下:
1)将ip地址、目的ip、源端口、目的端口和协议号,此五项元素的数值拼装为一个大的字节数组;
2)将字节数组,调用murmur_hash算法计算出数值C,如下:
接着,利用数据包S的hash数值C,通过取模得到对应小文件的序号D;即:D=C%B+1;
最后,将此数据包S的内容写入到文件名为D.pcap的小文件中,将单个数据包S的五元组信息和小文件的路径信息D.pcap,保存到ES数据库。
同理,对pcap大文件内容的每个ip数据包均重复提取五元组,计算各数据包的hash值,对应写入到各小文件名中,进行保存。
步骤二、若干用户通过界面输入各自需要匹配的五元组以及内容关键词,界面发起各用户的任务至任务节点,针对每个新的任务,任务节点生成唯一的任务id,并将任务id以及任务涉及的五元组和内容关键词下发至主控节点。
步骤三、主控节点将多个任务id以及任务涉及的五元组和内容关键词写入redis数据库中。
步骤四、主控节点使用任务的五元组信息查询Elasticsearch数据库,ES数据库将与任务五元组匹配成功的结果返回给主控节点;
每一条匹配结果包括ES数据库存储的数据包五元组信息以及小文件的路径。
步骤五、主控节点将ES数据库中匹配成功的五元组,通过RPC方式高效传输给内容检索节点。
步骤六、内容检索节点通过ES数据库中匹配成功五元组以及对应的小文件路径,采用线程池的方式快速读取小文件内容,还原成IP数据包的负载数据,并且利用该负载数据与用户输入的关键词进行匹配;
匹配算法为高性能匹配引擎hperscan。具体如下:
1)内容检索节点预先开辟16个线程,即线程池;
2)接收信息存放在队列中;
3)分发模块从队列中获取一个流的信息,然后将流的信息添加到一个空闲的处理线程中;
4)空闲处理线程检测到有新处理任务以后,立马进行处理。
A.首先根据流所在的文件,读取文件内容;
B.将一个流所有的数据包进行组包,提取负载信息;
C.采用高速匹配的算法,对负载信息进行匹配;
D.如果命中,将五元组信息以及所在的小文件的路径的信息写入Redis数据库对应任务id对应的键值value信息;
5)一直将队列中的数据处理完毕;
步骤七、内容检索节点将关键词匹配成功的数据包五元组以及小文件路径,写入redis数据库对应任务id的键值中。
步骤八、任务节点定时从redis数据库中读取多个任务id的键值数据,抽取小文件的路径,读取对应的pcap文件内容,展现到对应的用户响应界面。
以上实施用例仅用于说明本发明而非限制。本领域的普通技术人员应当理解,对本发明修改变形或者等同替换,而不脱离本发明精神范围的,其均应涵盖在本发明的权利要求当中。
Claims (3)
1.一种支持多任务的高并发离线数据包分析方法,其特征在于,具体步骤如下:
首先,对输入的pcap大文件进行预处理,分割成固定分片大小的小文件,提取每个数据包的五元组信息,计算对应的小文件序号,并将五元组信息以及小文件的路径信息,保存到ES数据库;
所述五元组信息,包括源ip地址、目的ip、源端口、目的端口、协议号;
所述对输入的pcap大文件进行预处理,分割并保存到小文件的过程,具体如下:
首先,将pcap大文件长度除以固定分片数,得到预分配的小文件总数B,并对应分别命名为1.pcap至B.pcap,每个小文件的初始化内容为空;
然后,依次读取pcap大文件的内容,每次读取一个ip数据包S,提取此数据包S的五元组信息,计算出该数据包S对应的hash数值C;
接着,利用数据包S的hash数值C,通过取模得到对应小文件的序号D;
即:D=C%B+1;
最后,将此数据包S的内容写入到文件名为D.pcap的小文件中,将单个数据包S的五元组信息和小文件的路径信息D.pcap,保存到ES数据库;
同理,对pcap大文件内容的每个ip数据包均重复提取五元组,计算各数据包的hash值,对应写入到各小文件名中,进行保存;
然后,用户通过界面输入各自需要匹配的五元组以及内容关键词,界面发起各用户的任务至任务节点,任务节点生成各任务的任务id,并将任务id以及任务涉及的五元组和内容关键词下发至主控节点;主控节点将多个任务id以及任务涉及的五元组和内容关键词写入redis数据库中;
同时,主控节点使用任务的五元组信息查询ES数据库,ES数据库将与任务五元组匹配的结果返回给主控节点,进而通过RPC方式高效传输给内容检索节点;
内容检索节点通过ES数据库中匹配成功五元组对应的小文件路径,采用线程池的方式快速读取小文件内容,还原成IP数据包的负载数据,并且利用该负载数据与用户输入的关键词进行匹配;将关键词匹配成功的数据包五元组以及小文件路径,写入redis数据库对应任务id的键值中;
最后,任务节点定时从redis数据库中读取多个任务id的键值数据,抽取小文件的路径,读取对应的pcap文件内容,展现到对应的用户响应界面。
2.根据权利要求1所述的一种支持多任务的高并发离线数据包分析方法,其特征在于,所述主控节点查询ES数据库,返回的每一条匹配结果包括ES数据库存储的数据包五元组信息以及小文件的路径。
3.根据权利要求1所述的一种支持多任务的高并发离线数据包分析方法,其特征在于,所述五元组匹配或关键词匹配,采用的算法为高性能匹配引擎hperscan。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210846646.6A CN115225730B (zh) | 2022-07-05 | 2022-07-05 | 一种支持多任务的高并发离线数据包分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210846646.6A CN115225730B (zh) | 2022-07-05 | 2022-07-05 | 一种支持多任务的高并发离线数据包分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115225730A CN115225730A (zh) | 2022-10-21 |
CN115225730B true CN115225730B (zh) | 2024-05-31 |
Family
ID=83612839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210846646.6A Active CN115225730B (zh) | 2022-07-05 | 2022-07-05 | 一种支持多任务的高并发离线数据包分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115225730B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027414A (zh) * | 2016-05-25 | 2016-10-12 | 南京大学 | 一种面向hdfs的网络报文并行读取方法 |
CN108536833A (zh) * | 2018-04-12 | 2018-09-14 | 成都信息工程大学 | 一种分布式、面向大数据的数据库及其构建方法 |
WO2018214388A1 (zh) * | 2017-05-23 | 2018-11-29 | 深圳大学 | 多平台航空电子大数据系统及方法 |
CN110543464A (zh) * | 2018-12-12 | 2019-12-06 | 广东鼎义互联科技股份有限公司 | 一种应用于智慧园区的大数据平台及操作方法 |
CN110704714A (zh) * | 2019-09-27 | 2020-01-17 | 杭州九略智能科技有限公司 | pcap文件的快速数据索引方法及装置 |
CN111556066A (zh) * | 2020-05-08 | 2020-08-18 | 国家计算机网络与信息安全管理中心 | 一种网络行为检测方法及装置 |
CN112308731A (zh) * | 2020-09-24 | 2021-02-02 | 国网天津市电力公司营销服务中心 | 一种采集系统多任务并发处理的云计算方法及系统 |
CN112468370A (zh) * | 2020-11-30 | 2021-03-09 | 北京锐驰信安技术有限公司 | 一种支持自定义规则的高速网络报文监测分析方法及系统 |
CN113961522A (zh) * | 2021-11-04 | 2022-01-21 | 杭州安恒信息技术股份有限公司 | 一种pcap数据包分割方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11356345B2 (en) * | 2020-10-14 | 2022-06-07 | Gigasheet, Inc. | Networking data analysis in a visual spreadsheet |
-
2022
- 2022-07-05 CN CN202210846646.6A patent/CN115225730B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027414A (zh) * | 2016-05-25 | 2016-10-12 | 南京大学 | 一种面向hdfs的网络报文并行读取方法 |
WO2018214388A1 (zh) * | 2017-05-23 | 2018-11-29 | 深圳大学 | 多平台航空电子大数据系统及方法 |
CN108536833A (zh) * | 2018-04-12 | 2018-09-14 | 成都信息工程大学 | 一种分布式、面向大数据的数据库及其构建方法 |
CN110543464A (zh) * | 2018-12-12 | 2019-12-06 | 广东鼎义互联科技股份有限公司 | 一种应用于智慧园区的大数据平台及操作方法 |
CN110704714A (zh) * | 2019-09-27 | 2020-01-17 | 杭州九略智能科技有限公司 | pcap文件的快速数据索引方法及装置 |
CN111556066A (zh) * | 2020-05-08 | 2020-08-18 | 国家计算机网络与信息安全管理中心 | 一种网络行为检测方法及装置 |
CN112308731A (zh) * | 2020-09-24 | 2021-02-02 | 国网天津市电力公司营销服务中心 | 一种采集系统多任务并发处理的云计算方法及系统 |
CN112468370A (zh) * | 2020-11-30 | 2021-03-09 | 北京锐驰信安技术有限公司 | 一种支持自定义规则的高速网络报文监测分析方法及系统 |
CN113961522A (zh) * | 2021-11-04 | 2022-01-21 | 杭州安恒信息技术股份有限公司 | 一种pcap数据包分割方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
"智能网联大数据在高并发场景下的技术应用";倪峻;;《汽车与新动力》;20210825(第4卷第04期);第70-74页 * |
基于WinPcap的民航通信网络数据监测与应用分析;刘飞;;《软件》;20200915(第41卷第09期);第189-191页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115225730A (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6754799B2 (en) | System and method for indexing and retrieving cached objects | |
EP2885728B1 (en) | Hardware implementation of the aggregation/group by operation: hash-table method | |
US7103589B1 (en) | Method and system for searching, accessing and updating databases | |
US20100146003A1 (en) | Method and system for building a B-tree | |
US20020059281A1 (en) | Method for creating an index and method for searching an index | |
CN106682147A (zh) | 一种基于海量数据的查询方法及装置 | |
CN107783985B (zh) | 一种分布式数据库查询方法、装置及管理系统 | |
US6886016B2 (en) | Method and system for supporting multivalue attributes in a database system | |
CN109947796B (zh) | 一种分布式数据库系统查询中间结果集的缓存方法 | |
US20100274795A1 (en) | Method and system for implementing a composite database | |
US10496648B2 (en) | Systems and methods for searching multiple related tables | |
CN114329094B (zh) | 一种基于Spark的大规模高维数据近似近邻查询系统和方法 | |
CN109597829B (zh) | 一种实现可搜索加密关系型数据库缓存的中间件方法 | |
US10747773B2 (en) | Database management system, computer, and database management method | |
US9747363B1 (en) | Efficient storage and retrieval of sparse arrays of identifier-value pairs | |
Gou et al. | Graph stream sketch: Summarizing graph streams with high speed and accuracy | |
US20220342888A1 (en) | Object tagging | |
US7752181B2 (en) | System and method for performing a data uniqueness check in a sorted data set | |
CN115225730B (zh) | 一种支持多任务的高并发离线数据包分析方法 | |
US11868331B1 (en) | Systems and methods for aligning big data tables in linear time | |
Glatter et al. | Scalable data servers for large multivariate volume visualization | |
CN112199463A (zh) | 数据查询方法、装置及设备 | |
Deng et al. | Spatial-keyword skyline publish/subscribe query processing over distributed sliding window streaming data | |
CN112486996B (zh) | 面向对象的内存数据存储系统 | |
EP1329807B1 (en) | Hardware-assisted tuple space |
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 |