CN115225730B - 一种支持多任务的高并发离线数据包分析方法 - Google Patents

一种支持多任务的高并发离线数据包分析方法 Download PDF

Info

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
Application number
CN202210846646.6A
Other languages
English (en)
Other versions
CN115225730A (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 Scistor Technologies Co ltd
Original Assignee
Beijing Scistor Technologies 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 Scistor Technologies Co ltd filed Critical Beijing Scistor Technologies Co ltd
Priority to CN202210846646.6A priority Critical patent/CN115225730B/zh
Publication of CN115225730A publication Critical patent/CN115225730A/zh
Application granted granted Critical
Publication of CN115225730B publication Critical patent/CN115225730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing 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。
CN202210846646.6A 2022-07-05 2022-07-05 一种支持多任务的高并发离线数据包分析方法 Active CN115225730B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (9)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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