CN111240599B - 数据流存储方法及装置 - Google Patents

数据流存储方法及装置 Download PDF

Info

Publication number
CN111240599B
CN111240599B CN202010052016.2A CN202010052016A CN111240599B CN 111240599 B CN111240599 B CN 111240599B CN 202010052016 A CN202010052016 A CN 202010052016A CN 111240599 B CN111240599 B CN 111240599B
Authority
CN
China
Prior art keywords
data
stream
index
query
file
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
CN202010052016.2A
Other languages
English (en)
Other versions
CN111240599A (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 Mach Valley Technology Co ltd
Original Assignee
Beijing Mach Valley Technology 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 Mach Valley Technology Co ltd filed Critical Beijing Mach Valley Technology Co ltd
Priority to CN202010052016.2A priority Critical patent/CN111240599B/zh
Publication of CN111240599A publication Critical patent/CN111240599A/zh
Application granted granted Critical
Publication of CN111240599B publication Critical patent/CN111240599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种数据流存储方法及装置。数据流存储方法包括:缓存互联网数据中的数据流形成第一数据;当存储设备上数据流文件的剩余空间大于或等于第一数据大小时,将第一数据写入数据流文件中形成数据块,写入起始位置为数据流文件的写入指针所指的位置;当剩余空间小于第一数据大小时,从数据流文件的回收指针所指的位置开始回收至少一个数据块获得空闲空间,以使剩余空间和空闲空间之和大于或等于第一数据大小;第一数据依次写入剩余空间和空闲空间中形成数据块;将回收指针所指的位置变更为空闲空间的末尾;将写入指针所指的位置变更为数据块的末尾。本发明适用于高效存储、检索、读取网络数据流的应用场景。

Description

数据流存储方法及装置
技术领域
本发明涉及数据存储技术,尤其涉及一种数据流存储方法及装置。
背景技术
在互联网迅速发展的今天,现代人的绝大部分信息都存储于网络中,网络的安全问题已成为影响所有人信息安全的问题。而当今时代网络攻击的手段层出不穷,许多攻击总是无法在第一时间进行有效防御,因此事后追溯成为当前安全防御的一个重要方法。而事后追溯的一个重要前提就是能将攻击时产生数据流进行封存取证。
数据流是指互联网数据中具有相同五元组(源IP、源端口、目的IP、目的端口、协议)的所有包。当前,数据流存储方法包括:识别互联网数据中的会话,每条会话包含源和目的互换的双向数据流,所有数据包存入存储设备中的一个文件,将会话作为KEY值对应该文件,后续查询时直接根据KEY值读取该文件。
此方法的问题在于,网络中数据流的流量极其巨大,在1Gbps的正常网络流量中,每秒大约会产生3000-5000条新的数据流,如果每条数据流生成一个文件,对存储设备产生的IO将是致命的,而且长期使用该方法带来的磁盘碎片是可观的,会导致存储装置越运行越缓慢。
发明内容
本发明提供一种数据流存储方法及装置,以避免频繁IO和磁盘碎片对存储设备造成的不利影响,并提升存储及检索的效率。
本发明提供的一种数据流存储方法,包括:缓存互联网数据中的数据流形成第一数据;当存储设备上专用于存储数据流的数据流文件的剩余空间大于或等于所述第一数据大小时,将所述第一数据写入所述数据流文件中形成数据块,写入起始位置为所述数据流文件的写入指针所指的位置;当所述剩余空间小于所述第一数据大小时,从所述数据流文件的回收指针所指的位置开始回收至少一个数据块获得空闲空间,以使所述剩余空间和所述空闲空间之和大于或等于所述第一数据大小;所述第一数据依次写入所述剩余空间和所述空闲空间中形成数据块;将所述回收指针所指的位置变更为所述空闲空间的末尾;将所述写入指针所指的位置变更为使相邻的数据块之间无空闲存储空间的所述数据块的末尾;为形成的每一数据块分别建立用于从存储设备获取所需数据流的索引文件,所述索引文件包括源IP索引部分、目的IP索引部分、源端口索引部分、目的端口索引部分和流信息部分;在将所述第一数据写入所述存储设备前,还包括:将所述第一数据中所有数据包按照所属的数据流进行汇聚整理,以使属于一个数据流的所有数据包按时间戳排序,将所述第一数据中的数据流按照预先设定的与五元组对应的流编号顺序存放。
进一步地,所述缓存互联网数据中的数据流形成第一数据,包括:缓存互联网数据中指定时间段内的数据流形成第一数据;或者,缓存互联网数据中指定个数的数据流形成第一数据;或者,缓存互联网数据中的数据流达到指定报文容量形成第一数据;或者,使用缓存互联网数据中的指定时间段内的数据流、缓存互联网数据中指定个数的数据流和缓存互联网数据中的数据流达到指定报文容量三个方法的两个或三个中用时最短的方法形成第一数据。
可选地,所述源IP索引部分的索引记录包括:第一IP地址及所述数据块中源IP地址为所述第一IP地址的所有数据流的流编号;所述目的IP索引部分的索引记录包括:第二IP地址及所述数据块中目的IP地址为所述第二IP地址的所有数据流的流编号;所述源端口索引部分的索引记录包括:第一端口及所述数据块中源端口为所述第一端口的所有数据流的流编号;所述目的端口索引部分的索引记录包括:第二端口及所述数据块中目的端口为所述第二端口的所有数据流的流编号;所述流信息部分的索引记录包括所述流编号和对应在所述存储设备中的存储位置,所述流信息部分的索引记录按所述流编号顺序存放。
进一步地,所述数据流存储方法还包括:接收查询条件;当所述查询条件为一个时,在所述查询条件对应的所述索引部分中查找符合所述查询条件的流编号获得最终结果集合;当所述查询条件为多个,且多个所述查询条件全部为不同类型时,根据每个所述查询条件对应的所述索引部分查找符合所述查询条件的流编号获得第一集合;计算多个所述第一集合的交集,获得最终结果集合;当所述查询条件为多个,且包含相同类型和不同类型的查询条件时,在所述相同类型查询条件中的每一个查询条件对应的所述索引部分中查找符合所述查询条件的流编号获得第二集合;在所述不同类型查询条件中的每一个查询条件对应的所述索引部分中查找符合所述查询条件的流编号获得第三集合;计算多个所述第二集合的并集获得第四集合;将所述第四集合与所述第三集合的交集获得最终结果集合;在所述流信息部分查找所述最终结果集合中各流编号对应的所述存储位置,并从所述存储位置获取符合所述查询条件的数据流。
本发明提供的一种数据流存储装置包括:缓存模块,用于缓存互联网数据中的数据流形成第一数据;回收模块,用于当存储设备上专用于存储数据流的数据流文件的剩余空间小于所述第一数据大小时,从所述数据流文件的回收指针所指的位置开始回收至少一个数据块获得空闲空间,以使所述剩余空间和所述空闲空间之和大于或等于所述第一数据大小;将所述回收指针所指的位置变更为所述空闲空间的末尾;写入模块,用于当所述剩余空间大于或等于所述第一数据大小时,将所述第一数据写入所述数据流文件中形成数据块,写入起始位置为所述数据流文件的写入指针所指的位置;当所述剩余空间小于所述第一数据大小时,所述第一数据依次写入所述剩余空间和所述空闲空间中形成数据块;将所述写入指针所指的位置变更为使相邻的数据块之间无空闲存储空间的所述数据块的末尾;索引创建模块,用于为形成的每一数据块分别建立用于从存储设备获取所需数据流的索引文件,所述索引文件包括源IP索引部分、目的IP索引部分、源端口索引部分、目的端口索引部分和流信息部分;以及数据流整理模块,用于在将所述第一数据写入所述存储设备前,将所述第一数据中所有数据包按照所属的数据流进行汇聚整理,以使属于一个数据流的所有数据包按时间戳排序,将所述第一数据中的数据流按照预先设定的与五元组对应的流编号顺序存放。
进一步地,所述缓存模块还用于:缓存互联网数据中指定时间段内的数据流形成第一数据;或者,缓存互联网数据中指定个数的数据流形成第一数据;或者,缓存互联网数据中的数据流达到指定报文容量形成第一数据;或者,使用缓存互联网数据中的指定时间段内的数据流、缓存互联网数据中指定个数的数据流和缓存互联网数据中的数据流达到指定报文容量三个方法的两个或三个中用时最短的方法形成第一数据。
可选地,所述源IP索引部分的索引记录包括:第一IP地址及所述数据块中源IP地址为所述第一IP地址的所有数据流的流编号;所述目的IP索引部分的索引记录包括:第二IP地址及所述数据块中目的IP地址为所述第二IP地址的所有数据流的流编号;所述源端口索引部分的索引记录包括:第一端口及所述数据块中源端口为所述第一端口的所有数据流的流编号;所述目的端口索引部分的索引记录包括:第二端口及所述数据块中目的端口为所述第二端口的所有数据流的流编号;所述流信息部分的索引记录包括所述流编号和对应在所述存储设备中的存储位置,所述流信息部分的索引记录按所述流编号顺序存放。
进一步地,所述数据流存储装置还包括查询模块,所述查询模块包括:接收单元,用于接收查询条件;查询单元,用于当所述查询条件为一个时,在所述查询条件对应的所述索引部分中查找符合所述查询条件的流编号获得最终结果集合;当所述查询条件为多个,且多个所述查询条件全部为不同类型时,根据每个所述查询条件对应的所述索引部分查找符合所述查询条件的流编号获得第一集合;当所述查询条件为多个,且包含相同类型和不同类型的查询条件时,在所述相同类型查询条件中的每一个查询条件对应的所述索引部分中查找符合所述查询条件的流编号获得第二集合,在所述不同类型查询条件中的每一个查询条件对应的所述索引部分中查找符合所述查询条件的流编号获得第三集合;计算并集单元,用于计算多个所述第二集合的并集获得第四集合;计算交集单元,用于计算多个所述第一集合的交集,获得最终结果集合;或者,用于计算所述第四集合与所述第三集合的交集获得最终结果集合;数据流获取单元,用于在所述流信息部分查找所述最终结果集合中各流编号对应的所述存储位置,并从所述存储位置获取符合所述查询条件的数据流。
本发明提供的数据流存储方法及装置中,通过在存储设备上形成一个专用于存储数据流的数据流文件,使得由缓存的数据流形成的第一数据能以数据块的形式存入这一个文件,读取数据流时也从这一个文件中读取,无需在存储设备中建立多个文件,避免了对存储设备频繁IO;另外,通过该数据流文件中的写入指针,可以在写入数据块时,指示写入的起始位置,并在写入完成时将写入指针所指位置变更为该数据块的末尾,成为下一个数据块写入的起始位置,从而使得相邻的数据块之间没有空闲的存储空间,避免了产生磁盘碎片。
且当数据流文件剩余空间不够存储一个数据块时,可以从回收指针所指位置开始回收数据流文件中存储的最早数据块的存储空间,以形成空闲空间,数据块写入剩余空间后剩下的部分存入回收的空闲空间,使这个数据流文件能在存储空间不足时以循环队列的方式用最新的数据流覆盖最早的数据流,进一步保证只需一个文件就能存储互联网数据中大量的数据流。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据流存储方法的流程图;
图2为图1所示的方法中块X形成后的数据流文件结构示意图;
图3为图1所示的方法中块N+1形成后的数据流文件结构示意图;
图4为本发明实施例提供的一种数据流文件中数据块的结构示意图;
图5为本发明实施例提供的一种为数据块创建源IP索引文件的示意图;
图6为本发明实施例提供的一种根据索引文件查询数据流的方法流程图;
图7为图6所示方法一个应用实例的示意图;
图8为本发明实施例提供的一种数据流存储装置的结构示意图;
图9为本发明实施例提供的另一种数据流存储装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的技术方案更加清楚,以下结合附图对本发明的实施例进行详细说明。
图1为本发明实施例提供的一种数据流存储方法的流程图;图2为图1所示的方法中块X形成后的数据流文件结构示意图;图3为图1所示的方法中块N+1形成后的数据流文件结构示意图,如图1~3所示,该数据流存储方法包括如下步骤。
步骤101、缓存互联网数据中的数据流形成第一数据。
具体地,缓存数据流的主体可以是互联网设备中用于临时存储数据或程序的单元,如随机存储器。数据流通常为网络数据流,是互联网数据中具有相同五元组(源IP、源端口、目的IP、目的端口和协议)的所有数据包,缓存的数据流可以为一个,也可以为多个。由数据流形成的第一数据接下来要被写入存储设备上的一个数据流文件中。存储设备具体可以是硬盘、非易失性存储器,或者本领域技术人员所知的其它具有存储数据功能的设备。
步骤102、判断存储设备上数据流文件的剩余空间是否大于或等于第一数据大小。当判断结果为是,执行步骤103,当判断结果为否,执行步骤104~步骤106。
具体地,数据流文件是形成在存储设备上的一个较大的文件,专用于存储数据流。在将第一数据写入数据流文件前,需要判断数据流文件的剩余空间是否大于或等于第一数据大小。当判断结果为是时,说明数据流文件的剩余空间可以容纳第一数据,因此可以将第一数据写入数据流文件。当判断结果为否时,说明数据流文件的剩余空间不够容纳第一数据,因此需要先回收一部分存储空间作为空闲空间,使剩余空间和空闲空间之和能容纳第一数据。
步骤103、将第一数据写入数据流文件中形成数据块,写入起始位置为数据流文件的写入指针所指的位置。
具体地,如图2和图3所示,数据流文件包括文件头部和数据部,数据部用于保存第一数据,文件头部用于保存一些控制信息,包括写入指针和回收指针,还可以包括数据块个数、已用存储空间大小、剩余空间大小、校验码等统计类信息,或是本领域技术人员所知的其它有用的信息。其中,写入指针用于存储第一数据写入区域的首地址,回收指针用于存储数据流文件中最早数据块的首地址。
当数据流文件的剩余空间大于或等于第一数据大小时,执行该步骤,将第一数据写入从写入指针所指位置开始的存储空间内,从而在数据流文件中形成一个数据块。
具体实例参见图2,在数据流文件创建完成,且第一个数据块形成前,写入指针和回收指针均指示在数据部第一个存储单元,随着第一数据的写入,在数据流文件中依次形成图2所示的数据块(块1、块2、……、块X),因为每次写入时,数据流文件都有足够空间容纳第一数据,所以不需要回收空间。
步骤104、从数据流文件的回收指针所指的位置开始回收至少一个数据块获得空闲空间,以使剩余空间和空闲空间之和大于或等于第一数据大小。
当数据流文件的剩余空间小于第一数据大小时,说明数据流文件的剩余空间不够容纳第一数据,这时从回收指针所指的位置开始回收一个数据块的存储空间成为空闲空间,如果剩余空间和空闲空间加起来不够容纳第一数据,则回收两个数据块的存储空间,以此类推,直到剩余空间和空闲空间加起来能够容纳第一数据。因为如上所述,回收指针用于存储数据流文件中最早数据块的首地址,所以,回收空间时只回收数据流文件中最早形成的一个或几个数据块所占用的空间,使数据流文件一直保留形成时间较新的数据块。
具体实例如图3所示,在形成N个块的数据流文件中再次写入第一数据时,形成块N+1,但是数据流文件中剩余空间只够存储一部分第一数据,这时,开始从回收指针所指的数据部第一个存储单元位置回收块1,仍然不够,再回收块2,这时块1和块2的存储空间成为空闲空间,加上剩余空间,能够容纳第一数据。
步骤105、第一数据依次写入剩余空间和空闲空间中形成数据块。
在步骤104回收足够的空闲空间之后,将第一数据的前一部分先写入剩余空间,写满后,剩余的第一数据写入回收的空闲空间内,以形成最新的数据块。
如图3所示,形成了新的数据块(块N+1),剩余空间用来存储块N+1前半部分,空闲空间用来存储块N+1后半部分。
步骤106、将回收指针所指的位置变更为空闲空间的末尾。
具体地,一次回收完成后,将回收指针所指的位置变更为空闲空间的末尾,也就是空闲空间之后的第一个存储单元,使得下一次回收空间时,从回收过的最后一个数据块之后的一个数据块开始回收。
如图3所示,块1和块2被回收,成为空闲空间,回收指针指向块2后面块3的第一个存储单元。
步骤107、将写入指针所指的位置变更为数据块的末尾。
从写入指针所指位置开始写入第一数据后,形成了一个新的数据块,写入指针需要指向该新的数据块的末尾,也就是数据块后紧挨着的第一个存储单元,以便于从紧挨着的存储位置继续存储下一个第一数据,防止产生磁盘碎片。当数据块末尾正好是数据流文件的末尾,则写入指针指向数据流文件数据部的第一个存储单元,实现数据流文件存储空间的循环使用。
如图2所示,形成块X后,写入指针指向块X后第一个存储单元,如图3所示,写入指针指向块N+1后的第一个存储单元。
需要说明的是,判断剩余空间是否能够容纳第一数据的方法,可以通过数据流文件头部保存的剩余空间大小信息与第一数据大小比较来实现,数据流文件头部保存的剩余空间大小信息在每一个数据块形成后都会进行更新,也可以采用本领域技术人员所知的其它方法来判断剩余空间是否能够容纳第一数据。
本发明实施例提供的数据流存储方法中,通过在存储设备上形成一个专用于存储数据流的数据流文件,使得由缓存的数据流形成的第一数据能以数据块的形式存入这一个文件,读取数据流时也从这一个文件中读取,无需在存储设备中建立多个文件,避免了小数据频繁写入,对存储设备频繁IO的问题;另外,通过该数据流文件中的写入指针,可以在写入数据块时,指示写入的起始位置,并在写入完成时将写入指针所指位置变更为该数据块的末尾,成为下一个数据块写入的起始位置,从而使得相邻的数据块之间没有空闲的存储空间,避免了产生磁盘碎片。
且当数据流文件剩余空间不够存储一个数据块时,可以从回收指针所指位置开始回收数据流文件中存储的最早数据块的存储空间,以形成空闲空间,数据块写入剩余空间后剩下的部分存入回收的空闲空间,使这个数据流文件能在存储空间不足时以循环队列的方式用最新的数据流覆盖最早的数据流,进一步保证只需一个文件就能存储互联网数据中大量的数据流,而且当空间不足时,每次总是优先回收最老数据,保留最新的数据,使得写入时一直可以保持高性能连续写。另外,每个块的大小也可以不固定,方便块写入前的压缩与加密处理,如压缩与加密可以按流处理,后续读取时也可以按流解压解密,方便操作。
上述实施例提供的数据流存储方法的步骤101,缓存互联网数据中的数据流形成第一数据,具体可以包括:缓存互联网数据中指定时间段内的数据流形成第一数据;或者,缓存互联网数据中指定个数的数据流形成第一数据;或者,缓存互联网数据中的数据流达到指定报文容量形成第一数据;或者,使用缓存互联网数据中的指定时间段内的数据流、缓存互联网数据中指定个数的数据流和缓存互联网数据中的数据流达到指定报文容量三个方法的两个或三个中用时最短的方法形成第一数据。
具体地,第一数据可以包括一个数据流,即一个具有相同五元组的数据包的集合,第一数据也可以包括多个数据流,缓存数据流的量可以通过设定一个指定时间段,如每个小时,在这个指定时间段内缓存的数据流的集合形成第一数据,还可以通过设定一个指定个数,缓存够这个指定个数的数据流,就形成第一数据,或者设定一个指定报文容量,如2GB,当缓存的数据流达到这个指定报文容量时就形成第一数据。
或者,任意采用上述这三种缓存数据流方法中的多种,即两种或三种,同时采用的多种方法中任何一种方法用时最短,就采用用时最短的该方法缓存的数据流形成第一数据。举例来说,用三种方法缓存数据流时,指定时间段已到,但数据流的个数还没有到指定个数,数据流的总容量也没有达到指定报文容量,那就将缓存的数据流的集合形成第一数据。
或者采用本领域技术人员所知的其它方法控制第一数据中数据流的量。根据不同的应用场景适当控制第一数据中数据流的量,可以减少存储设备I/O的次数,提升存储效率。
在实际应用中,如基于网络安全在调查取证时,需要基于一定的查询条件进行查询检索相关数据,查询读取数据一般主要分析的是基于流的数据:取出一条流的所有数据包(流定义:一般来说同一五元组的业务为同一条流,即源IP(SIP)、目的IP(DIP)、协议类型、源端口(Sport)和目的端口(DPort),此五元组为同一业务的正反向的报文为一条流),需要分析这条流是否为攻击业务,为进一步提高读取效率,需要在一个数据块中,将所有缓存的数据包进行重新排序整理,以使读取时能够一次性读取多个数据包。
即在将第一数据写入存储设备前,还可以包括:将第一数据中所有数据包按照所属的数据流进行汇聚整理,以使属于一个数据流的所有数据包按时间戳排序,第一数据中的数据流按照流编号顺序存放。
具体地,图4为本发明实施例提供的一种数据流文件中数据块的结构示意图,如图4所示,在数据流文件的一个数据块里,包含有多个数据流(流1~流9、……),每一个数据流里包括多个数据包,这些数据包具有相同的五元组,即源IP地址相同、目的IP地址相同、协议相同、源端口相同和目的端口相同,各个数据包在流内部按时间戳排序,时间戳就是互联网设备接收到数据包的时间,精确到纳秒,每个数据流按照流编号顺序存放。
为了使第一数据在写入存储设备后形成图4的数据块,第一数据在写入存储设备前,需要进行汇聚整理。缓存的第一数据是一个按时间戳顺序排列的数据包的集合,例如第一数据包括时间戳从前到后的8个数据包A、B、C、D、E、F、G、H,其中,通过互联网设备识别可知,数据包A、B、C、D具有相同五元组,属于流编号为1的数据流,数据包E、F、G、H具有相同五元组,属于流编号为0的数据流。这里的数据流编号是预先设定在互联网设备程序中的,可以根据需要指定,不同的流编号代表不同的五元组。
通过将属于一个数据流的所有数据包进行汇聚整理,可以使数据流有序存储,且在数据流内部,数据包也是按时间戳有序存储,在后续使用数据流进行检索分析时,由于每条数据流的所有报文已经汇聚,每条数据流的数据包可以一起取出分析,避免每个包分开读取,达到连续读取的效果,有效避免随机读取,从而提升了检索分析效率。
上述的例子中,由8个数据包A、B、C、D、E、F、G、H组成的第一数据,经过汇聚整理,属于流编号为0的数据流的数据包E、F、G、H放在前面,属于流编号为1的数据流的数据包A、B、C、D放在后面形成了汇聚整理后的第一数据:E、F、G、H、A、B、C、D。
图4中示出了流1中的N个数据包:包1、包2、……、包N,这个N个数据包已按时间戳排序,即,包2的时间戳晚于包1,包3的时间戳晚于包2,……,以此类推。图4所示的数据块中流编号的顺序是1、2、3、4、5、6、7、8、9。这9条数据流按照流编号的顺序存放。
为了在网络数据流查询中也达到高效快速,可以对每个数据块分别建索引,使得每个数据块可以快速分别进行索引查询,而且索引还需要进行五元分开,即分别对SIP/DIP/SPort/DPort建索引。
上述本发明实施例提供的数据流存储方法中,还包括建立索引的方法,便于后续从存储设备中获取所需的数据流。该方法具体包括:为第一数据写入存储设备后形成的数据块建立索引文件,该索引文件包括:源IP索引部分、目的IP索引部分、源端口索引部分、目的端口索引部分和流信息部分。其中,源IP索引部分的索引记录包括:第一IP地址及数据块中源IP地址为第一IP地址的所有数据流的流编号;目的IP索引部分的索引记录包括:第二IP地址及数据块中目的IP地址为第二IP地址的所有数据流的流编号;源端口索引部分的索引记录包括:第一端口及数据块中源端口为第一端口的所有数据流的流编号;目的端口索引部分的索引记录包括:第二端口及数据块中目的端口为第二端口的所有数据流的流编号;流信息部分的索引记录包括流编号和对应在存储设备中的存储位置,该流信息部分的索引记录按流编号顺序存放。
图5为本发明实施例提供的一种为数据块创建源IP索引文件的示意图,参照图5,以源IP索引文件为例,详细说明索引文件的建立方法。
图5所示的数据块中包括多个数据流:流1、流2、流3、流4、流5、流6、流7、流8、流9、……。数据流名称中的数字代表该数量流的编号。其中,流1、流2和流5的源IP地址为10.0.0.1(第一IP地址),流3、流4和流8的源IP地址为10.0.0.2(第一IP地址),流6、流7、流9的源IP地址为10.0.0.3(第一IP地址)。为每一个源IP地址建立一条索引记录。第一条索引记录以10.0.0.1开头,后面依次跟着流编号1、流编号2和流编号5,第二条索引记录以10.0.0.2开头,后面依次跟着流编号3、流编号4和流编号5;第三条索引记录以10.0.0.3开头,后面依次跟着流编号6、流编号7和流编号9。所有的以源IP地址为基准建立的索引记录形成了源IP索引部分。
用同样的方法,可以分别以目的IP地址为基准建立目的IP索引部分,以源端口号为基准建立源端口索引部分,以目的端口号为基准建立目的端口索引部分。索引文件还可以包括协议索引部分,它是以五元组中的协议类型为基准建立的,目前常用的协议类型主要有TCP、UDP和ICMP三种。
索引文件还包括流信息部分,它的一条索引记录包括流编号和对应的存储位置。图5中的offset是数据流在存储设备中存储起始位置相对于数据流文件头部的偏移量,用来表示该数据流在存储设备的存储位置,offset1表示流1在存储设备的存储位置,offset1下方的数字1为对应的流编号,offsetm表示流m在存储设备的存储位置,同样的offsetm下方的数字m为对应的流编号。流信息部分里除了包括流编号和对应存储位置外,还可以包括属性信息、统计信息等本领域技术人员所知的其它与该数据流有关的信息(图5中用offset后的省略号表示)。
需要说明的是,形成每个数据块时,都会为该数据块建立索引文件,当数据块被回收后,该数据块对应的索引文件均被删除,以释放存储空间。
上述数据流存储方法中,建立了索引文件后,即使在大量数据时仍可以根据索引文件通过以下的查询方法能够极快地查找所需的数据流。图6为本发明实施例提供的一种根据索引文件查询数据流的方法流程图;图7为图6所示方法一个应用实例的示意图。如图6和图7所示,该方法包括如下步骤。
步骤601、接收查询条件。
根据上述检索文件的建立方法可知,检索文件包括五个部分:基于源IP地址建立的源IP索引部分,基于目的IP地址建立的目的IP索引部分,基于源端口号建立的源端口索引部分,基于目的端口建立的目的端口索引部分,还有一个流信息部分。相应的,查询条件也包括四种类型:源IP查询、目的IP查询、源端口查询、目的端口查询。接收的查询条件可以是一个也可以是多个,多个查询条件可以只有一种类型,也可以有多个不同类型。不同情况下的查询方法不同。
步骤602、判断查询条件是否为一个,当判断结果为是时,执行步骤603,当判断结果为否时,执行步骤604。
步骤603、在查询条件对应的索引部分中查找符合查询条件的流编号获得最终结果集合。
如图7所示,假设查询条件为:源IP=1.1.1.1,只有这一个查询条件时,在对应的源IP索引部分中查找源IP地址为1.1.1.1的索引记录,从索引记录中获得符合查询条件的所有流编号:3、5、……、a。这个流编号的集合为最终结果集合。
步骤604、判断多个查询条件是否全部为不同类型,当判断结果为是时,执行步骤605~步骤606,当判断结果为否时,执行步骤607~步骤610。
步骤605、根据每个查询条件对应的索引部分查找符合查询条件的流编号获得第一集合。
如图7所示,查询条件为:源IP=1.1.1.1、目的IP=20.0.0.1和源端口=30,一共有三个查询条件,全部为不同类型。根据源IP=1.1.1.1这个查询条件,在对应的源IP索引部分中查找符合查询条件的流编号为:3、5、……、a,这个流编号集合为该查询条件的第一集合。根据目的IP=20.0.0.1这个查询条件,在对应的目的IP索引部分中查找符合查询条件的流编号为:1、5、11、……、b,这个流编号的集合为该查询条件的第一集合。根据源端口=30这个查询条件,在对应的源端口索引部分中查找符合查询条件的流编号为:2、5、10、……、c,这个流编号的集合为该查询条件的第一集合。
步骤606、计算多个第一集合的交集,获得最终结果集合。
通过集合运算中的求交集计算,可以把多个流编号集合中相同的流编号筛选出来。步骤605中的三个查询结果第一集合求交集后,得到流编号5,说明流5是符合三个查询条件的最终结果集合。
步骤607、在相同类型查询条件中的每一个查询条件对应的索引部分中查找符合查询条件的流编号获得第二集合。
当多个查询条件不是全部为不同类型时,说明有部分查询条件具有相同类型,其它为不同类型查询条件,这时,需要执行步骤607~步骤610。例如,当查询条件为:源IP=1.1.1.0/24、目的IP=20.0.0.1和源端口=30。其中的源IP查询表示成了子网掩码的形式,表示源IP地址为1.1.1.0~1.1.1.255,共256个源IP地址,则变成了256条相同类型的查询条件,其余的两个查询条件属于不同类型的查询条件。
依次查询源IP索引文件中源IP地址等于1.1.1.0、等于1.1.1.1、……、等于1.1.1.255对应的流编号集合,每个源IP地址对应的流编号集合形成第二集合。本例中,一共形成有256个第二集合。
步骤608、在不同类型查询条件中的每一个查询条件对应的索引部分中查找符合查询条件的流编号获得第三集合。
另外两个不同类型的查询条件:目的IP=20.0.0.1和源端口=30,分别在目的IP索引部分和源端口索引部分中查询获得流编号集合,每个流编号集合分别形成第三集合。本例中,一共有2个第三集合。上述步骤607和步骤608的执行顺序可先后执行,也可同时执行,本发明不做限定。
步骤609、计算多个第二集合的并集获得第四集合。
通过集合运算中的求并集计算,可以把多个流编号集合中所有流编号去重后合并在一个集合中,形成第四集合。也就是源IP地址为1.1.1.0~1.1.1.255这256个地址对应的所有流编号,即需要查询的数据流来源于特定网段的情况。
步骤610、计算第四集合与第三集合的交集获得最终结果集合。
如上所述,通过集合运算中的求交集计算,可以把多个流编号集合中相同的流编号筛选出来。计算第四集合与第三集合的交集,可以把源IP地址为1.1.1.0~1.1.1.255这256个地址对应的所有流编号与目的IP=20.0.0.1对应的流编号以及源端口=30对应的流编号中共有的流编号算出,得到最终结果集合。
步骤611、在流信息部分查找最终结果集合中各流编号对应的存储位置,并从存储位置获取符合查询条件的数据流。
如上所述,流信息部分的一条索引记录包括流编号和对应的存储位置,数据流在存储设备中存储起始位置相对于数据流文件头部的偏移量offset(如图5所示)表示该数据流在存储设备的存储位置。根据最终结果集合中各流编号,可以查到对应各个数据流的存储位置,从而能从存储设备中获得该数据流。
上述的查询方法中,根据之前建立的索引文件,并结合求并集和求交集计算,计算获得符合查询条件的流编号,进一步根据流编号对应的offset信息就可以从存储设备中获取该数据流,用于后续的查询检索分析,查询方法简便、快捷,具有较高的查询效率。
根据以上的详细描述可知,本发明通过对过对磁盘存储的架构改进、流汇聚及内网汇聚的模式变化、以及高性能的索引分析技术,使得网络流数据的存储、检索、读取等各项功能在速度上都得到极大的提升,非常适合用于高效存储、检索、读取网络数据流的场合。
需要说明的是:上述实施例在描述过程中,使用了“第一”、“第二”、“第三”和“第四”,主要用于在名称上区别类型相同的技术特征。
图8为本发明实施例提供的一种数据流存储装置的结构示意图,如图8所示,该数据流存储装置包括缓存模块81、回收模块82和写入模块83。
其中,缓存模块81,用于缓存互联网数据中的数据流形成第一数据。回收模块82,用于当存储设备上数据流文件的剩余空间小于第一数据大小时,从数据流文件的回收指针所指的位置开始回收至少一个数据块获得空闲空间,以使剩余空间和空闲空间之和大于或等于第一数据大小;将回收指针所指的位置变更为空闲空间的末尾。
写入模块83,用于当剩余空间大于或等于第一数据大小时,将第一数据写入数据流文件中形成数据块,写入起始位置为数据流文件的写入指针所指的位置;当剩余空间小于第一数据大小时,第一数据依次写入剩余空间和空闲空间中形成数据块;将写入指针所指的位置变更为数据块的末尾。
上述数据流存储装置中各模块所执行的方法已在数据流存储方法的实施例中进行了详细说明,在此不再赘述。
本发明实施例提供的数据流存储装置中,通过在存储设备上形成一个专用于存储数据流的数据流文件,使得由缓存模块缓存的数据流形成的第一数据能以数据块的形式用写入模块存入这一个文件,读取数据流时也从这一个文件中读取,无需在存储设备中建立多个文件,避免了对存储设备频繁IO;另外,通过该数据流文件中的写入指针,可以在写入数据块时,指示写入的起始位置,并在写入完成时将写入指针所指位置变更为该数据块的末尾,成为下一个数据块写入的起始位置,从而使得相邻的数据块之间没有空闲的存储空间,避免了产生磁盘碎片。
且当数据流文件剩余空间不够存储一个数据块时,回收模块可以从回收指针所指位置开始回收数据流文件中存储的最早数据块的存储空间,以形成空闲空间,数据块写入剩余空间后剩下的部分存入回收的空闲空间,使这个数据流文件能在存储空间不足时以循环队列的方式用最新的数据流覆盖最早的数据流,进一步保证只需一个文件就能存储互联网数据中大量的数据流。
上述的缓存模块还可以用于:缓存互联网数据中指定时间段内的数据流形成第一数据;或者,缓存互联网数据中指定个数的数据流形成第一数据;或者,缓存互联网数据中的数据流达到指定报文容量形成第一数据;或者,使用缓存互联网数据中的指定时间段内的数据流、缓存互联网数据中指定个数的数据流和缓存互联网数据中的数据流达到指定报文容量三个方法的两个或三个中用时最短的方法形成第一数据。
该缓存模块所执行的方法已在数据流存储方法的实施例中进行了详细说明,在此不再赘述。通过缓存模块可以根据不同的应用场景适当控制第一数据中数据流的量,可以减少存储设备I/O的次数,提升存储效率。
图9为本发明实施例提供的另一种数据流存储装置的结构示意图。如图9所示,上述的数据流存储装置除了包括缓存模块81、回收模块82和写入模块83外,还可以包括数据流整理模块91,用于将所述第一数据中所有数据包按照所属的数据流进行汇聚整理,以使属于一个数据流的所有数据包按时间戳排序。
该数据流整理模块91所执行的方法已在数据流存储方法的实施例中进行了详细说明,在此不再赘述。数据流整理模块91通过将属于一个数据流的所有数据包按时间戳进行排序,即把第一数据中所有数据包按照所属的数据流进行汇聚整理,可以使数据包有序存储,在后续使用数据流进行检索分析时,有序的数据包可以提升分析效率。
图9所示的数据流存储装置中,还可以包括索引创建模块92,用于为第一数据写入存储设备后形成的数据块建立索引文件,该索引文件包括:源IP索引部分、目的IP索引部分、源端口索引部分、目的端口索引部分和流信息部分。
其中,源IP索引部分的索引记录包括:第一IP地址及数据块中源IP地址为第一IP地址的所有数据流的流编号;目的IP索引部分的索引记录包括:第二IP地址及数据块中目的IP地址为第二IP地址的所有数据流的流编号;源端口索引部分的索引记录包括:第一端口及数据块中源端口为第一端口的所有数据流的流编号;目的端口索引部分的索引记录包括:第二端口及数据块中目的端口为第二端口的所有数据流的流编号。
该索引创建模块92所执行的方法以及各类型索引文件的创建实例已在数据流存储方法的实施例中进行了详细说明,在此不再赘述。通过索引创建模块92为每个数据块建立索引,便于后续从存储设备中获取所需的数据流。
图9所示的数据流存储装置中,还可以包括查询模块93,该查询模块包括:接收单元931、查询单元932、计算并集单元933、计算交集单元934和数据流获取单元935。
其中,接收单元,用于接收查询条件;查询单元,用于当查询条件为一个时,在查询条件对应的索引文件中查找符合查询条件的流编号获得最终结果集合;当查询条件为多个,且多个查询条件全部为不同类型时,根据每个查询条件对应的索引文件查找符合查询条件的流编号获得第一集合;当查询条件为多个,且包含相同类型和不同类型的查询条件时,在相同类型查询条件中的每一个查询条件对应的索引文件中查找符合查询条件的流编号获得第二集合,在不同类型查询条件中的每一个查询条件对应的索引文件中查找符合查询条件的流编号获得第三集合;计算并集单元,用于计算多个第二集合的并集获得第四集合;计算交集单元,用于计算多个第一集合的交集,获得最终结果集合;或者,用于计算第四集合与第三集合的交集获得最终结果集合;数据流获取单元,用于在流信息部分查找最终结果集合中各流编号对应的存储位置,并从存储位置获取符合查询条件的数据流。
该查询模块93中各单元所执行的方法已在数据流存储方法的实施例中进行了详细说明,在此不再赘述。查询模块93根据之前建立的索引文件,并结合求交集和求并集计算,计算获得符合查询条件的流编号,进一步根据流编号对应的offset信息就可以从存储设备中获取该数据流,用于后续的检索分析,查询方法简便、快捷,具有较高的查询效率。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (8)

1.一种数据流存储方法,其特征在于,包括:
缓存互联网数据中的数据流形成第一数据;
当存储设备上专用于存储数据流的数据流文件的剩余空间大于或等于所述第一数据大小时,将所述第一数据写入所述数据流文件中形成数据块,写入起始位置为所述数据流文件的写入指针所指的位置;
当所述剩余空间小于所述第一数据大小时,从所述数据流文件的回收指针所指的位置开始回收至少一个数据块获得空闲空间,以使所述剩余空间和所述空闲空间之和大于或等于所述第一数据大小;所述第一数据依次写入所述剩余空间和所述空闲空间中形成数据块;将所述回收指针所指的位置变更为所述空闲空间的末尾;
将所述写入指针所指的位置变更为使相邻的数据块之间无空闲存储空间的所述数据块的末尾;
为形成的每一数据块分别建立用于从存储设备获取所需数据流的索引文件,所述索引文件包括源IP索引部分、目的IP索引部分、源端口索引部分、目的端口索引部分和流信息部分;
在将所述第一数据写入所述存储设备前,还包括:将所述第一数据中所有数据包按照所属的数据流进行汇聚整理,以使属于一个数据流的所有数据包按时间戳排序,将所述第一数据中的数据流按照预先设定的与五元组对应的流编号顺序存放。
2.根据权利要求1所述的方法,其特征在于,所述缓存互联网数据中的数据流形成第一数据,包括:缓存互联网数据中指定时间段内的数据流形成第一数据;或者,
缓存互联网数据中指定个数的数据流形成第一数据;或者,
缓存互联网数据中的数据流达到指定报文容量形成第一数据;或者,
使用缓存互联网数据中的指定时间段内的数据流、缓存互联网数据中指定个数的数据流和缓存互联网数据中的数据流达到指定报文容量三个方法的两个或三个中用时最短的方法形成第一数据。
3.根据权利要求1~2任一项所述的方法,其特征在于,
所述源IP索引部分的索引记录包括:第一IP地址及所述数据块中源IP地址为所述第一IP地址的所有数据流的流编号;
所述目的IP索引部分的索引记录包括:第二IP地址及所述数据块中目的IP地址为所述第二IP地址的所有数据流的流编号;
所述源端口索引部分的索引记录包括:第一端口及所述数据块中源端口为所述第一端口的所有数据流的流编号;
所述目的端口索引部分的索引记录包括:第二端口及所述数据块中目的端口为所述第二端口的所有数据流的流编号;
所述流信息部分的索引记录包括所述流编号和对应在所述存储设备中的存储位置,所述流信息部分的索引记录按所述流编号顺序存放。
4.根据权利要求3所述的方法,其特征在于,还包括:
接收查询条件;
当所述查询条件为一个时,在所述查询条件对应的所述索引部分中查找符合所述查询条件的流编号获得最终结果集合;
当所述查询条件为多个,且多个所述查询条件全部为不同类型时,根据每个所述查询条件对应的所述索引部分查找符合所述查询条件的流编号获得第一集合;计算多个所述第一集合的交集,获得最终结果集合;
当所述查询条件为多个,且包含相同类型和不同类型的查询条件时,在所述相同类型查询条件中的每一个查询条件对应的所述索引部分中查找符合所述查询条件的流编号获得第二集合;在所述不同类型查询条件中的每一个查询条件对应的所述索引部分中查找符合所述查询条件的流编号获得第三集合;计算多个所述第二集合的并集获得第四集合;计算所述第四集合与所述第三集合的交集获得最终结果集合;
在所述流信息部分查找所述最终结果集合中各流编号对应的所述存储位置,并从所述存储位置获取符合所述查询条件的数据流。
5.一种数据流存储装置,其特征在于,包括:
缓存模块,用于缓存互联网数据中的数据流形成第一数据;
回收模块,用于当存储设备上专用于存储数据流的数据流文件的剩余空间小于所述第一数据大小时,从所述数据流文件的回收指针所指的位置开始回收至少一个数据块获得空闲空间,以使所述剩余空间和所述空闲空间之和大于或等于所述第一数据大小;将所述回收指针所指的位置变更为所述空闲空间的末尾;
写入模块,用于当所述剩余空间大于或等于所述第一数据大小时,将所述第一数据写入所述数据流文件中形成数据块,写入起始位置为所述数据流文件的写入指针所指的位置;当所述剩余空间小于所述第一数据大小时,所述第一数据依次写入所述剩余空间和所述空闲空间中形成数据块;将所述写入指针所指的位置变更为使相邻的数据块之间无空闲存储空间的所述数据块的末尾;
索引创建模块,用于为形成的每一数据块分别建立用于从存储设备获取所需数据流的索引文件,所述索引文件包括源IP索引部分、目的IP索引部分、源端口索引部分、目的端口索引部分和流信息部分;以及
数据流整理模块,用于在将所述第一数据写入所述存储设备前,将所述第一数据中所有数据包按照所属的数据流进行汇聚整理,以使属于一个数据流的所有数据包按时间戳排序,将所述第一数据中的数据流按照预先设定的与五元组对应的流编号顺序存放。
6.根据权利要求5所述的装置,其特征在于,所述缓存模块还用于:缓存互联网数据中指定时间段内的数据流形成第一数据;或者,缓存互联网数据中指定个数的数据流形成第一数据;或者,缓存互联网数据中的数据流达到指定报文容量形成第一数据;或者,使用缓存互联网数据中的指定时间段内的数据流、缓存互联网数据中指定个数的数据流和缓存互联网数据中的数据流达到指定报文容量三个方法的两个或三个中用时最短的方法形成第一数据。
7.根据权利要求5~6任一项所述的装置,其特征在于,所述源IP索引部分的索引记录包括:第一IP地址及所述数据块中源IP地址为所述第一IP地址的所有数据流的流编号;
所述目的IP索引部分的索引记录包括:第二IP地址及所述数据块中目的IP地址为所述第二IP地址的所有数据流的流编号;
所述源端口索引部分的索引记录包括:第一端口及所述数据块中源端口为所述第一端口的所有数据流的流编号;
所述目的端口索引文件的索引记录包括:第二端口及所述数据块中目的端口为所述第二端口的所有数据流的流编号;
所述流信息部分的索引记录包括所述流编号和对应在所述存储设备中的存储位置,所述流信息部分的索引记录按所述流编号顺序存放。
8.根据权利要求7所述的装置,其特征在于,还包括查询模块,所述查询模块包括:
接收单元,用于接收查询条件;
查询单元,用于当所述查询条件为一个时,在所述查询条件对应的所述索引部分中查找符合所述查询条件的流编号获得最终结果集合;当所述查询条件为多个,且多个所述查询条件全部为不同类型时,根据每个所述查询条件对应的所述索引部分查找符合所述查询条件的流编号获得第一集合;当所述查询条件为多个,且包含相同类型和不同类型的查询条件时,在所述相同类型查询条件中的每一个查询条件对应的所述索引部分中查找符合所述查询条件的流编号获得第二集合,在所述不同类型查询条件中的每一个查询条件对应的所述索引部分中查找符合所述查询条件的流编号获得第三集合;
计算并集单元,用于计算多个所述第二集合的并集获得第四集合;
计算交集单元,用于计算多个所述第一集合的交集,获得最终结果集合;或者,用于计算所述第四集合与所述第三集合的交集获得最终结果集合;
数据流获取单元,用于在所述流信息部分查找所述最终结果集合中各流编号对应的所述存储位置,并从所述存储位置获取符合所述查询条件的数据流。
CN202010052016.2A 2020-01-17 2020-01-17 数据流存储方法及装置 Active CN111240599B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010052016.2A CN111240599B (zh) 2020-01-17 2020-01-17 数据流存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010052016.2A CN111240599B (zh) 2020-01-17 2020-01-17 数据流存储方法及装置

Publications (2)

Publication Number Publication Date
CN111240599A CN111240599A (zh) 2020-06-05
CN111240599B true CN111240599B (zh) 2021-06-25

Family

ID=70872673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010052016.2A Active CN111240599B (zh) 2020-01-17 2020-01-17 数据流存储方法及装置

Country Status (1)

Country Link
CN (1) CN111240599B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930309A (zh) * 2020-07-31 2020-11-13 中国人民解放军海军工程大学 基于数据分块技术的文件循环存储方法和装置
CN113568868B (zh) * 2021-07-28 2024-02-06 重庆紫光华山智安科技有限公司 文件系统管理方法、系统、电子设备及介质
CN114217738A (zh) * 2021-11-25 2022-03-22 深圳益邦阳光有限公司 一种动态队列式循环存储方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105337976A (zh) * 2015-11-06 2016-02-17 西安交大捷普网络科技有限公司 实时高效的数据库审计实现方法
CN106330764A (zh) * 2016-08-15 2017-01-11 北京蓝海讯通科技股份有限公司 管理数据缓冲的方法、应用及计算设备
CN109669739A (zh) * 2017-10-16 2019-04-23 阿里巴巴集团控股有限公司 一种界面渲染方法、装置、终端设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345475A (zh) * 2013-06-06 2013-10-09 湖南神州祥网科技有限公司 一种基于被动方式的<ip,域名>信息获得和维护方法
CN103514261B (zh) * 2013-08-13 2017-03-15 北京华电天益信息科技有限公司 一种应用于工业控制系统的数据异步存储及访问方法
CN105681397A (zh) * 2015-12-30 2016-06-15 曙光信息产业(北京)有限公司 一种网络流量数据存储方法及系统、查询方法及装置
CN106708437A (zh) * 2016-12-16 2017-05-24 上海斐讯数据通信技术有限公司 VMware虚拟化存储分配方法及系统
US10356015B2 (en) * 2017-04-27 2019-07-16 Dell Products L.P. Execution traces
CN108491333A (zh) * 2018-03-21 2018-09-04 广州多益网络股份有限公司 环形缓冲区的数据写入方法、装置、设备及介质
CN109388616B (zh) * 2018-08-27 2020-09-11 郑州信大捷安信息技术股份有限公司 一种智能卡文件系统的管理方法
CN110688345A (zh) * 2019-09-26 2020-01-14 重庆大学 一种内存文件系统的多粒度结构化空间管理机制

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105337976A (zh) * 2015-11-06 2016-02-17 西安交大捷普网络科技有限公司 实时高效的数据库审计实现方法
CN106330764A (zh) * 2016-08-15 2017-01-11 北京蓝海讯通科技股份有限公司 管理数据缓冲的方法、应用及计算设备
CN109669739A (zh) * 2017-10-16 2019-04-23 阿里巴巴集团控股有限公司 一种界面渲染方法、装置、终端设备和存储介质

Also Published As

Publication number Publication date
CN111240599A (zh) 2020-06-05

Similar Documents

Publication Publication Date Title
CN111240599B (zh) 数据流存储方法及装置
TWI719281B (zh) 用於串流選擇之系統、機器可讀媒體、及機器實施之方法
TWI702503B (zh) 實施用於維護操作之合併樹修改之系統、方法及電腦可讀媒體
TWI702506B (zh) 用於合併樹廢棄項目指標之系統、機器可讀媒體及機器實施之方法
CN112491901B (zh) 一种网络流量精细化筛选装置及方法
US7742414B1 (en) Lightweight indexing for fast retrieval of data from a flow-level compressed packet trace
US7941606B1 (en) Identifying a flow identification value mask based on a flow identification value of a packet
US7197597B1 (en) Performing lookup operations in a content addressable memory based on hashed values of particular use in maintaining statistics for packet flows
US8954392B2 (en) Efficient de-duping using deep packet inspection
US10873534B1 (en) Data plane with flow learning circuit
CN110808910B (zh) 一种支持QoS的OpenFlow流表节能存储架构及其方法
EP2530874B1 (en) Method and apparatus for detecting network attacks using a flow based technique
JP5956049B2 (ja) ストリーミングネットフローデータ解析方法及び装置
CN111988231B (zh) 一种掩码五元组规则匹配的方法及装置
CN113162818A (zh) 一种分布式流量采集分析的实现方法及系统
CN112486914B (zh) 一种数据包存储与快查方法与系统
CN107248939B (zh) 基于hash存储器的网络流高速关联方法
CN112468365A (zh) 用于网络镜像流量的数据质量检测方法、系统及介质
US20030004921A1 (en) Parallel lookups that keep order
US7587513B1 (en) Efficient storage of network and application data
CN117435912A (zh) 基于网络数据包属性值长短特征的数据包索引与检索方法
CN113596019B (zh) 高性能网络流量数据表示和提取方法和系统
CN110825940B (zh) 网络数据包存储和查询方法
CN114244781B (zh) 一种基于dpdk的报文去重处理方法和装置
CN112313638A (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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Data stream storage method and device

Effective date of registration: 20230922

Granted publication date: 20210625

Pledgee: Zhongguancun Branch of Bank of Beijing Co.,Ltd.

Pledgor: Beijing Mach Valley Technology Co.,Ltd.

Registration number: Y2023110000414

PE01 Entry into force of the registration of the contract for pledge of patent right