CN112152937B - 一种报文去重的方法、装置、电子设备及存储介质 - Google Patents
一种报文去重的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112152937B CN112152937B CN202011046575.9A CN202011046575A CN112152937B CN 112152937 B CN112152937 B CN 112152937B CN 202011046575 A CN202011046575 A CN 202011046575A CN 112152937 B CN112152937 B CN 112152937B
- Authority
- CN
- China
- Prior art keywords
- message data
- message
- determined
- processing node
- processing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 341
- 239000013598 vector Substances 0.000 claims abstract description 100
- 230000006870 function Effects 0.000 claims description 47
- 230000032683 aging Effects 0.000 claims description 32
- 238000004458 analytical method Methods 0.000 claims description 26
- 238000012800 visualization Methods 0.000 claims description 12
- 230000003252 repetitive effect Effects 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 18
- 238000004590 computer program Methods 0.000 description 7
- 238000013480 data collection Methods 0.000 description 7
- 230000007717 exclusion Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及计算机网络技术领域,尤其涉及一种报文去重的方法、装置、电子设备及存储介质,用于解决进行报文去重处理时内存开销大,处理效率低的问题,方法为:确定处理后的各个待判定报文数据各自关联的时间戳,再确定据所述时间戳下的环形示意区域中的有效区域,然后针对各个处理后的待判定报文数据,计算对应一个待判定报文数据的N个哈希值后,判定所述一个待判定报文数据为重复报文数据,由终止指针所对应的处理节点记录后,丢弃所述一个待判定报文数据。这样,只需要为处理节点的位向量配置固定的存储空间,无需占用过多的内容,借助于对位向量的操作,即可判定是否接收到重复报文,极大提高了重复报文的处理效率。
Description
技术领域
本公开涉及计算机网络技术领域,尤其涉及一种报文去重的方法、装置、电子设备及存储介质。
背景技术
随着网络安全的重要性逐渐提高,目前出于性能、安全性或者常规网络操作和管理的目的,提出了网络流量可视化分析,用以记录、检查、分析和挖掘网络流量或报文数据中的信息,并将分析结果以图形化方式呈现出来。而进行网络流量可视化分析的底层基础是对网络中实时传输的报文数据进行采集捕获,通常会在全网设置多个报文采集点,这使得应用层内容完全相同的一个报文,在不同的报文采集点处被采集,报文采集平台获得了多个重复报文,为避免浪费资源处理重复报文,报文去重处理显得至关重要。目前采用的报文去重方式需要占用过大的内存,极大影响了报文采集平台的处理性能。
发明内容
本公开实施例提供一种报文去重的方法、装置、电子设备及存储介质,用以解决现有技术中存在报文去重处理时内存开销大,处理效率低的问题。
本公开实施例提供的具体技术方案如下:
第一方面,提出一种报文去重的方法,包括:
获取各个报文采集节点当前上报的报文数据,并根据重复报文的判定内容,将各个报文数据解封为各个待判定报文数据,以及将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳;
确定所述时间戳对应的有效处理节点,其中,在各个处理节点映射为环形示意区域内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定;
针对各个待判定报文数据,分别执行以下操作:
采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值,并在确定各个有效处理节点各自关联的位向量中,存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为重复报文数据,并将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值后,丢弃所述一个待判定报文数据。
可选的,所述根据重复报文的判定内容,将各个报文数据解封为各个待判定报文数据,包括:
确定重复报文的判定内容为应用层内容时,将解封至应用层的各个报文数据作为各个待判定报文数据;或者,
确定重复报文的判定内容为会话层及以上层级内容时,将解封至所述会话层的各个报文数据作为各个待判定报文数据;或者,
确定重复报文的判定内容为网络层及以上层级内容时,将解封至所述网络层的各个报文数据作为各个待判定报文数据;或者,
确定重复报文的判定内容为数据链路层及以上层级内容时,将解封至所述数据链路层的各个报文数据作为各个待判定报文数据。
可选的,所述采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值之后,进一步包括:
确定各个有效处理节点各自关联的位向量中,不存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为非重复报文数据;
将所述一个待判定报文数据上报至网络可视化分析系统进行分析处理,并使得终止指针对应的目标处理节点将关联的位向量中,与所述N个哈希值对应的N个位进行赋值。
可选的,所述判定所述一个待判定报文数据为重复报文数据之后,所述将终止指针对应的目标处理节点,所关联的位向量中,与所述N个哈希值对应的N个位进行赋值之前,进一步包括:
确定所述N个位均被赋值的位向量所关联的一个有效处理节点,以及确定所述一个有效处理节点不是终止指针所对应的目标处理节点。
可选的,所述判定所述一个待判定报文数据为重复报文数据之后,进一步包括:
确定所述N个位均被赋值的位向量所关联的一个有效处理节点,以及确定所述一个有效处理节点是终止指针所对应的目标处理节点时,直接丢弃所述一个待判定报文数据。
可选的,进一步包括:
将所述时间戳下的环形示意区域内,除有效处理节点所映射的扇形区域外的其他扇形区域设置为老化区域,将所述老化区域内的完整扇形区域所对应的处理节点设置为老化处理节点,并对老化处理节点关联的位向量中的各个位进行初始化处理。
可选的,采用多核处理器进行并行处理时,所述将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳之后,所述采用相互独立的N个哈希函数对一个待判定报文数据进行处理之前,进一步包括:
采用预设的一个哈希函数计算所述各个待判定报文数据各自对应的分散哈希值,其中,所述分散哈希值的取值总数与配置的各个处理节点副本的总数相同,一个分散哈希值对应一个映射有各个处理节点副本的环形示意区域副本;
根据得到的各个分散哈希值,将所述各个待判定报文数据分散到相应的环形示意区域副本对应的处理节点副本处处理,并针对被分散有待判定报文数据的各个环形示意区域副本,分别执行以下操作:
确定所述时间戳对应的有效处理节点,其中,在各个处理节点副本映射为环形示意区域副本内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点副本,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定。
第二方面,提出一种报文去重的装置,包括:
获取单元,获取各个报文采集节点当前上报的报文数据,并根据重复报文的判定内容,将各个报文数据解封为各个待判定报文数据,以及将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳;
确定单元,确定所述时间戳对应的有效处理节点,其中,在各个处理节点映射为环形示意区域内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定;
处理单元,针对各个待判定报文数据,分别执行以下操作:
采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值,并在确定各个有效处理节点各自关联的位向量中,存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为重复报文数据,并将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值后,丢弃所述一个待判定报文数据。
可选的,所述根据重复报文的判定内容,将各个报文数据解封为各个待判定报文数据时,所述获取单元用于:
确定重复报文的判定内容为应用层内容时,将解封至应用层的各个报文数据作为各个待判定报文数据;或者,
确定重复报文的判定内容为会话层及以上层级内容时,将解封至所述会话层的各个报文数据作为各个待判定报文数据;或者,
确定重复报文的判定内容为网络层及以上层级内容时,将解封至所述网络层的各个报文数据作为各个待判定报文数据;或者,
确定重复报文的判定内容为数据链路层及以上层级内容时,将解封至所述数据链路层的各个报文数据作为各个待判定报文数据。
可选的,所述采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值之后,所述处理单元进一步用于:
确定各个有效处理节点各自关联的位向量中,不存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为非重复报文数据;
将所述一个待判定报文数据上报至网络可视化分析系统进行分析处理,并将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值。
可选的,所述判定所述一个待判定报文数据为重复报文数据之后,所述将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值之前,所述处理单元进一步用于:
确定所述N个位均被赋值的位向量所关联的一个有效处理节点,以及确定所述一个有效处理节点不是终止指针所对应的目标处理节点。
可选的,所述判定所述一个待判定报文数据为重复报文数据之后,所述处理单元进一步用于:
确定所述N个位均被赋值的位向量所关联的一个有效处理节点,以及确定所述一个有效处理节点是终止指针所对应的目标处理节点时,直接丢弃所述一个待判定报文数据。
可选的,所述确定单元进一步用于:
将所述时间戳下的环形示意区域内,除有效处理节点所映射的扇形区域外的其他扇形区域设置为老化区域,将所述老化区域内的完整扇形区域所对应的处理节点设置为老化处理节点,并对老化处理节点关联的位向量中的各个位进行初始化处理。
可选的,所述采用多核处理器进行并行处理时,所述将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳之后,所述采用相互独立的N个哈希函数对一个待判定报文数据进行处理之前,所述确定单元进一步用于:
采用预设的一个哈希函数计算所述各个待判定报文数据各自对应的分散哈希值,其中,所述分散哈希值的取值总数与配置的各个处理节点副本的总数相同,一个分散哈希值对应一个映射有各个处理节点副本的环形示意区域副本;
根据得到的各个分散哈希值,将所述各个待判定报文数据分散到相应的环形示意区域副本对应的处理节点副本处处理,并针对被分散有待判定报文数据的各个环形示意区域副本,分别执行以下操作:
确定所述时间戳对应的有效处理节点,其中,在各个处理节点副本映射为环形示意区域副本内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点副本,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定。
第三方面,提出一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于读取并执行存储器中存储的可执行指令,以实现上述所述的方法。
第四方面,提出一种计算机可读存储介质,当所述存储介质中的指令由电子设备执行时,使得所述电子设备能够执行上述方法。
本公开有益效果如下:
综上所述,本公开实施例中,获取各个报文采集节点当前上报的报文数据,并根据重复报文的判定内容,将各个报文数据解封为各个待判定报文数据,以及将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳,然后确定所述时间戳对应的有效处理节点,其中,在各个处理节点映射为环形示意区域内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定,再针对各个待判定报文数据,分别执行以下操作:采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值,并在确定各个有效处理节点各自关联的位向量中,存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为重复报文数据,并将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值后,丢弃所述一个待判定报文数据。这样,只需要为处理节点的位向量配置固定的存储空间,无需占用过多的内容,基于位向量的操作,即可判定是否接收到重复报文,极大提高了重复报文的处理效率。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例中现有技术下的记录接收的报文数据的示意图;
图2为本公开实施例中现有技术下的记录接收的报文数据的示意图;
图3为本公开实施例中报文数据去重的一个应用场景示意图;
图4为本公开实施例中各个处理节点映射得到的环形示意区域示意图;
图5为本公开实施例中报文去重的流程示意图;
图6为本公开实施例中建立环形示意区域副本示意图;
图7为本公开实施例中执行报文去重的装置的逻辑结构示意图;
图8为本公开实施例中执行报文去重的装置的实体结构示意图。
具体实施方式
为了使本公开的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。
为了方便理解,下面对本申请实施例中涉及的名词进行解释:
1、哈希函数(hash),也称散列函数,对任意长度的输入数据进行处理,输出固定长度的哈希值。对于一个确定的哈希函数来说,其对应的值域固定。
2、哈希桶,针对各个数据计算哈希值后,将哈希值相同的数据归于同一个集合,每一个集合称为一个桶,每个桶中的数据通过链表链接起来。也就是说,在计算新得到的一个数据的哈希值后,根据得到的哈希值确定所述一个数据归属的目标哈希桶,并将所述一个数据存储至所述目标哈希桶所在的链表上。
3、临界资源互斥,多核处理器同时发起对同一共享内容的不同操作时,竞争获取对所述共享内容的处理时造成的处理失败。对于一个哈希桶上的链表来说,当不同处理器同时发起对同一链表上报文数据的删除和存储操作时,可能造成链表上的报文数据间连接断裂,无法确定链表上包括的全部报文数据。
目前,在获取报文采集节点发送的报文数据后,进行报文去重处理时,通常采用以下两种处理方式:
方式一,计算当前获得的报文数据的哈希值后,与对应的哈希桶链表中存储的各个报文内容进行比对,删除重复报文。
具体的,报文数据采集平台接收到一个报文数据时,采用预设的哈希函数计算一个报文数据对应的哈希值,并基于所述哈希值定位对应的目标哈希桶,以及并将所述一个报文数据的内容,与所述目标哈希桶中的链表上的各个报文数据进行逐个比对,判定链表中存在与所述一个报文数据相同的报文数据时,更新链表中存储的报文数据的时间戳,并删除所述当前接收到的所述一个报文数据。
参阅图1所示,其为现有技术下缓存完整报文的示意图。不同的哈希桶中存储有完整报文链表,当获得一个报文数据X后,假设根据计算得到的所述一个报文数据的哈希值,确定对应的目标哈希桶为桶2,则将报文数据X分别与桶2链表上的完整报文2和完整报文3进行内容比对,若确定报文数据X与完整报文2完全相同,则将完整报文2对应的时间戳设置为所述报文数据X被采集的时间戳,并删除报文数据X,假设获取的报文数据X未能与桶2链表中的完整报文完成匹配,则将报文数据X完整的存储在桶2的链表上。
方式二,计算当前获得的报文数据的报文指纹,以及计算报文指纹的哈希值后,与对应的哈希桶链表中存储的各个报文指纹进行比对,删除重复的报文数据。
具体的,报文数据采集平台接收到一个报文数据时,采用预设的诸如,循环冗余校验(Cyclic Redundancy Check,CRC)、信息摘要算法(Message-Digest Algorithm,MD5)等哈希函数,计算一个报文数据对应的哈希指纹,进而采用预设的哈希函数,计算所述一个报文数据对应的哈希值,并基于所述哈希值定位对应的目标哈希桶,以及并将所述一个报文指纹,与所述目标哈希桶中的链表上的各个报文指纹进行逐个比对,判定链表中存在与所述一个报文指纹相同的报文指纹时,更新链表中存储的报文指纹的时间戳,并删除所述当前接收到的所述一个报文数据。
参阅图2所示,为现有技术下缓存报文指纹的示意图。不同的哈希桶中存储有报文指纹链表,当获得一个报文数据Y后,计算对应的报文指纹Y,假设根据计算得到的所述一个报文指纹Y的哈希值,确定对应的目标哈希桶为桶3,则将报文指纹Y分别与桶3链表上的报文指纹1进行比对,若确定报文指纹Y与报文指纹1完全相同,则将报文指纹1对应的时间戳设置为所述报文数据Y被采集的时间戳,并删除报文数据Y。
目前提出的两种处理方式的缺陷在于:由于方式一和方式二均将完整报文或是报文指纹存储至哈希桶的链表中,也就说明了,需要将所有非重复的报文数据或者所有非重复的报文指纹存储至哈希桶的链表中,需要占用极大的内存,而且方式二中通过比对基于一个哈希函数得到的哈希指纹相同与否,判定是否为重复报文的方式,本身具有极大的误判可能,通常需要在报文指纹的基础上,增设对诸如源/目标IP,源/目的端口,协议等信息进行辅助判定,这也进一步的增加了内存的开销。
再者,当采用多核处理器并行执行方式一和方式二所提及的方案时,多核CPU同时对同一哈希桶的链表进行操作时会造成临界资源互斥,极大影响了报文数据采集平台的工作性能,降低了报文去重处理的效率。
为了针对性解决现有技术中存在的进行报文去重处理时内存开销大,处理效率低的问题,本公开实施例提出一种报文去重方法,提出根据重复报文的判定内容,将获取的各个报文数据进行相应的解封处理为对应的各个待判定报文数据,以及将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳,再确定所述时间戳对应的有效处理节点,其中,在各个处理节点映射为环形示意区域内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定,再针对各个待判定报文数据,分别执行以下操作:
采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值,并在确定各个有效处理节点各自关联的位向量中,存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为重复报文数据,并将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值后,丢弃所述一个待判定报文数据。
以使得仅通过判定各个处理节点的位向量中对应的位置是否已被赋值,即可确定待判定报文数据是否曾被记录,也就是说通过对位向量的操作,即可确定当前获得的待判定报文数据是否是重复报文。
下面对本公开实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本公开实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本公开实施例提供的技术方案。
下面结合附图3,对本公开实施例中,涉及到的应用场景进行说明:
该应用场景为网络流量可视化分析场景下,涉及到报文采集节点、报文数据采集平台,以及网络可视化分析系统。其中,报文采集节点可以根据实际需要在客户端与服务器之间全网设置,一个报文在传输过程中会被部署在不同位置的报文采集节点所采集,虽然对于不同链路上采集到的报文数据来说,报文数据中不同层级封装的内容可能不同,但基于报文数据所能够得到的信息是相同的,也就是说,多次分析不同位置上采集的有效载荷相同的报文数据是无意义的,需要进行报文去重处理,其中,所述有效载荷具体是指进行重复报文判定时的判定内容。
报文数据采集平台接收各个报文采集节点实时上报的报文数据后,对判定为重复报文的报文数据进行处理,并将判定为非重复的报文数据发送至网络可视化分析系统进行分析和呈现。
网络可视化分析系统接收报文数据采集平台上报的报文数据,并对报文数据进行分析后呈现分析结果。
需要说明的是,所述报文数据采集平台与所述网络可视化分析系统可以部署于同一终端设备,或者,所述报文数据采集平台与所述网络可视化分析系统可以部署于不同终端设备,由于本公开的技术方案针对的是对报文的去重处理,对于报文数据采集平台的部署,以及网络可视化分析系统的呈现,本公开对此不做过多限定。
为进一步说明本公开实施例提供的技术方案,下面结合附图对本公开实施进行进一步详细说明。
下面集合附图对本公开实施例中涉及到的环形示意区域进行详细说明。
本公开实施例中,报文数据采集平台采用单核中央处理器(CPU,centralprocessing unit),进行报文去重处理时,首先按照重复报文的判定内容将得到的报文数据处理为待判定报文数据,进而借助于设定个数的处理节点确定待判定报文数据是否为重复报文,所述报文数据采集平台为各个处理节点配置的处理方式和处理能力完全相同,每个处理节点均具有记录待判定报文数据以及清除记录的待判定报文数据的功能。
处理节点记录一个待判定报文数据具体的实现方式为:报文数据采集平台采用N个完全独立且值域相同的哈希函数对一个待判定报文数据进行处理,得到N个哈希值后,将该处理节点关联的位向量中与所述N个哈希值对应的N个位进行赋值,以表征该处理节点记录了所述一个待判定报文数据,其中,各个处理节点关联的位向量的长度,不小于基于哈希函数得到的哈希值的取值总数,通常情况下,为避免资源的浪费,位向量中位的长度与哈希函数的阈值长度相同。
需要说明的是,本公开实施例中,采用相互独立的N个哈希函数,对待判定报文数据进行处理时,虽然基于哈希值进行处理时具有误判的可能性,但理论上来说,哈希函数的个数越多,配置位向量的位数越多,对应的误判概率会降低,本公开实际的配置中,N的取值和位向量的位数根据实际的需要所配置,通常情况下,N的取值至少为4个或至少为8个,如当N取8,并假设位向量需要记录的报文数目最多为M个,一个报文数据占用4个字节空间的情况下,则位向量配置为32*M位。即可将误判率控制在低于百万分之一。
处理节点清除记录的报文数据具体的实现方式为:报文数据采集平台确定当前一个处理节点属于老化处理节点时,将该处理节点关联的位向量中各个位进行初始化。
需要说明的是,本公开实施例中,对于处理节点关联的位向量的赋值和初始化只是示意性的说明,具体的赋值内容不做限定,能够区分位向量当前的状态以及位向量的初始状态即可,如,在初始状态下,位向量中各个位皆为0,则在对位向量中的位进行赋值时,将对应的位赋值为1,在初始化处理时,在将位向量中各个位进行初始化处理时,则将位向量中各个位清0。
本公开实施例中,报文数据采集平台将处理节点关联的位向量进行赋值时,可以直接对处理节点的位向量进行赋值,或者,采用与处理节点约定的触发接口,触发所述处理节点对其关联的位向量进行赋值。
本公开的一些实施例中,可选的,报文数据采集平台可以直接使用布隆过滤器作为处理节点,实现对一个待判定报文数据计算N个哈希值,以及记录所述一个待判定报文数据的功能,或是,可以直接使用其他能够实现相同功能的处理方式,本公开在此不作具体限定。
进一步的,本公开实施例中,报文数据采集平台根据各个处理节点关联的位向量中的位是否被赋值,判定处理节点处是否曾记录有相同的待判定报文数据,以实现判定当前的待判定报文数据是否为重复报文的目的,目前本领域在对重复报文的限定中,提出有效时长的概念,认为有效时长内接收到的相同待判定报文数据可判定为重复报文数据,否则不认为是重复报文。
因此,考虑到重复报文的有效时长,所述报文数据采集平台将各个处理节点映射至环形示意区域内的各个扇环区域。
下面将结合附图4,对本公开实施例中,根据建立的环形示意区域确定有效时长范围内的有效处理节点的过程进行说明:
环形示意区域中包括在指定方向上随时间同步转动的起始指针和终止指针,以及由各个处理节点映射得到的各个扇环区域,所述起始指针和终止指针之间的夹角固定不变。
结合附图4所示,以下的说明中,将仅以7个处理节点映射至环形示意区域内对应的7个扇环区域,起始指针(指针1)与终止指针(指针2)之间沿顺时针方向同步转动为例进行示意性说明。本公开提出的方案中,不具体限定起始指针与终止指针之间同步转动的方向,以及不限定处理节点的数目上限。
需要说明的是,本公开实施例中,将在指定的转动方向上,起始指针与终止指针之间的区域设置为有效区域,以及将时间戳下环形示意区域内,除有效处理节点所映射的扇形区域外的其他扇形区域设置为老化区域,并将老化区域内存在的完整扇形区域所对应的处理节点设置为老化处理节点,并使老化处理节点将关联的位向量中的各个位进行初始化处理,也就是说,随着起始指针与终止指针的同步转动,环形示意区域内的有效区域和老化区域将相应的发生变化,其中,有效区域内包括的有效处理节点对应映射的扇形区域至少部分存在于所述有效区域内。
本公开实施例中,由于报文数据采集平台对于获取的待判定报文数据,在判定为重复报文时,同样会将待判定报文数据记录在终止指针对应的目标处理节点上,相当于增加了当前的重复报文的可判定时长。以图4所示意的为例,假设对于待判定报文数据X,判定处理节点1中记录过相同的待判定报文数据后,将待判定报文数据X记录在处理节点6中,使得当处理节点1成为老化处理节点,即处理节点1中记录的待判定报文数据超出重复报文的有效时长后,处理节点1将其关联的位向量进行初始化,这时,虽然处理节点1中不再记录有待判定报文数据X,但是处理节点6依然有效的记录着待判定报文数据X,不会对重复报文的判定造成影响。
特殊地,对于在环形示意区域内正好转动至两个处理节点交界处的起始指针和终止指针,将当前起始指针和终止指针所处的区域确定为在转动方向上即将进入的扇环区域。
本公开实施中,对于不同时间戳确定的环形示意区域内的有效区域中,有效处理节点的数目是固定的,也就是说,有效区域内至少包括指定个数个处理节点映射的部分扇环区域,所述指定个数的确定依赖于对重复报文的有效时长的定义。
诸如图4所示意的,假设设置的重复报文的有效时长为1秒,且所述有效时长允许的误差为0.2秒以内,以及设置每个处理节点容纳0.2秒时间的报文数据,则起始指针和终止指针在环形示意区域内,转动经过一个处理节点对应的扇环区域的时间对应设置为0.2S,表征有效区域和老化区域的变化时间为0.2秒,且所述起始指针和所述终止指针之间的时间跨度为1S,一个时间戳下对应的有效处理节点的数目为6个。
需要说明的是,将起始指针与终止指针之间的时间跨度设置为1秒,是为了与报文的有效时长进行对应。结合在图4所示意的进行说明,当前时间戳下,在处理过程中判定为重复以及非重复的报文数据均会记录在处理节点6的位向量中。这样对于处理节点6所关联的位向量,至少在1秒内不会被初始化,即在处理节点6被进行老化处理之前,至少有1秒的时间作为有效处理节点,使得至少1秒内接收到的报文数据均能够判定是否先前记录于处理节点6中,而当处理节点6变化为老化节点时,则说明时间至少经过了1秒,但不超过1.2秒,有效考虑到了重复报文的有效时间,充分考虑了报文数据的时效性。
下面结合图5,对本公开实施例中,报文数据采集平台采用单核的处理方式,单线程的进行报文去重处理的流程进行详细说明:
步骤501:获取各个报文采集节点当前上报的报文数据,并根据重复报文的判定内容,将各个报文数据解封为各个待判定报文数据。
报文数据采集平台接收各个报文采集节点实时上报的报文数据时,根据重复报文的判定内容,对当前获取的各个报文采集节点上报的报文数据进行处理,将各个报文数据解封为各个待判定报文数据,所述解封操作具体是指在逐层处理报文数据时,除去外部某一层或某几层的封装的操作。
需要说明的是,由于传输的报文数据需要经过诸如,物理层,数据链路层,网络层,会话层,以及应用层中每个层级的封装,因而对于在不同链路上传输的报文数据来说,封装的内容存在差异,通常在进行报文去重处理之前,需要根据重复报文的判定内容,将接收到的报文数据进行解封,其中,五个层级的封装仅仅是示意性的说明,具体的层级架构需要根据实际的网络协议具体确定。
具体的,解封得到的待判定报文数据的具体操作,包括但不限于以下任意一种:
a、确定重复报文的判定内容为应用层内容时,将解封至应用层的各个报文数据作为各个待判定报文数据。
b、确定重复报文的判定内容为会话层及以上层级内容时,将解封至所述会话层的各个报文数据作为各个待判定报文数据。
c、确定重复报文的判定内容为网络层及以上层级内容时,将解封至所述网络层的各个报文数据作为各个待判定报文数据。
d、确定重复报文的判定内容为数据链路层及以上层级内容时,将解封至所述数据链路层的各个报文数据作为各个待判定报文数据。
这样,能够针对性的根据重复报文的判定内容进行操作,相对于未进行解封处理的报文数据来说,能够减少后续对待判定报文数据进行处理时的工作量,达到提高报文数据的去重效率的效果。
步骤502:将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳,并确定所述时间戳对应的有效处理节点。
报文数据采集平台处理当前各个报文采集节点上报的报文数据时,将接收到的报文数据解封得到对应的各个待判定报文数据后,将当前获取各个报文数据的时间戳配置为对应的各个待判定报文数据的时间戳,即相当于当前处理的各个待判定报文数据所关联的时间戳是相同的。
进一步的,所述报文数据采集平台确定所述时间戳对应的有效处理节点。本公开实施例中,将至少部分映射区域处于,在环形示意区域的指定方向上随时间转动的,夹角始终相同的起始指针和终止指针之间的区域的处理节点,作为有效处理节点。其中,各个处理节点映射为环形示意区域内均分圆心角的各个扇环区域。
需要说明的是,本公开实施例中,映射至环形示意区域的处理节点的个数是不固定的,根据实际的需要配置,假设配置有7个处理节点,则将环形示意区域均分为7个扇环,每个扇环对应一个处理能力和处理方式完全相同的处理节点。
参阅图4所示,示意性的说明了当前时间戳下环形示意区域内的指针1(起始指针)和指针2(终止指针)之间的有效区域,当前所示意的有效处理节点分别为处理节点1-6。
这样,借助于处理节点映射得到的环形示意区域,能够有效确定当前的有效处理区域以及能够进行判定的有效处理节点,充分考虑到了重复报文时效性的影响。
步骤503:获取一个待判定报文数据。
步骤504:采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值。
报文数据采集平台使用相互独立的N个哈希函数,对一个待判定报文数据进行处理,对应得到N个哈希值,其中,所述N个哈希函数的值域相同。
步骤505:判定各个有效处理节点各自关联的位向量中,是否存在与N个哈希值对应的N个位均被赋值的位向量?若是,执行步骤507,否则,执行步骤506。
报文数据采集平台得到一个待判定报文数据对应的N个哈希值后,获取当前的各个有效处理节点各自关联的位向量,进而确定各个位向量中,是否存在与所述N个哈希值对应的N个位均被赋值的位向量,若是,则可以确定先前记录有与所述一个待判定报文数据相同的待判定报文数据,所述一个待判定报文数据为重复报文,进而执行步骤507所限定的操作。否则,则可判定先前未记录有与所述一个待判定报文数据相同的待判定报文数据,进而执行步骤506所限定的操作。
步骤506:判定一个待判定报文数据为非重复报文数据。
报文数据采集平台确定各个有效处理节点各自关联的位向量中,不存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为非重复报文数据。
步骤507:将所述一个待判定报文数据上报至网络可视化分析系统进行分析处理,并将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值。
具体的,报文数据采集平台将判定为非重复的所述一个待判定报文数据,上报至网络可视化分析系统进行分析处理,同时,使得终止指针对应的目标处理节点记录所述一个待判定报文数据。
例如,参阅图4所示意的进行说明,当前时间戳下,有效处理节点为处理节点1-6,终止指针对应的目标处理节点为:处理节点6,对于一个判定为非重复的待判定报文数据来说,在将所述一个待判定报文数据上报至网络可视化分析系统进行分析处理后,使得处理节点6记录所述一个待判定报文数据,具体为,将处理节点6将其关联的位向量中,与所述一个待判定报文数据对应的N个哈希值对应的N个位进行赋值,假设N的取值为4,N个哈希值分别为{1、3、5、7},则位向量中标号为1、3、5、7的位均被赋值。
步骤508:判定一个待判定报文数据为重复报文数据。
报文数据采集平台确定当前的各个有效处理节点各自关联的位向量中,存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为重复报文数据。
步骤509:将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值后,丢弃该待判定报文数据。
报文数据采集平台确定一个待判定报文数据为重复报文数据时,将终止指针对应的目标处理节点将关联的位向量中,与所述N个哈希值对应的N个位进行赋值后,丢弃该待判定报文数据。
需要说明的是,本公开实施例中,所述终止指针对应的目标处理节点将关联的位向量中,与所述N个哈希值对应的N个位进行赋值存在以下两种情况:
情况一、在报文数据采集平台确定所述N个位均被赋值的位向量所关联的一个有效处理节点,以及确定所述一个有效处理节点不是终止指针所对应的目标处理节点时,将所述终止指针对应的目标处理节点所关联的位向量中,与N个哈希值对应的N个位进行赋值处理。
情况二、在报文数据采集平台确定所述N个位均被赋值的位向量所关联的一个有效处理节点,以及确定所述一个有效处理节点是终止指针所对应的目标处理节点时,直接认为已经记录一个待判定报文数据。
步骤510:判定处理后的关联有时间戳的报文数据是否全部读取完毕,若是,直接结束待判定报文数据的重复判定,否则,返回执行步骤503及以后的操作。
这样,报文数据采集平台仅需要针对位向量的长度,配置固定大小的内存后,通过对位向量进行操作,即可对报文是否重复进行判定,相比对现有的实现方式,极大的降低了内存开销,保证了报文去重处理的效率。
需要说明的是,本公开实施例中,环形示意区域内的起始指针和终止指针在转动的过程中,使得环形示意区域内的有效区域和老化区域不断变化,对于处于映射的扇环区域完全处理老化区域内的老化处理节点来说,需要对其关联的位向量中的各个位进行初始化处理,相当于按照重复报文的有效时长,将记录的待判定报文数据中,超出重复报文有效时长的记录删除。
进一步的,本公开实施例中,报文数据采集平台采用多核,多线程的处理方式进行报文去重处理时,并行处理不同的待判定报文数据的过程中,在报文采集节点部署的位置相距较近时,报文数据采集平台极有可能将重复的报文数据关联相同的时间戳进行处理,进而在并行执行步骤505,步骤507,以及步骤509时,可能会同时判定两个重复的报文数据为非重复报文数据,进而在处理的过程中同时要求终止指针对应的目标处理节点执行记录操作,这样,无法避免的产生了临界资源互斥的问题。
因而,若继续沿用图5中所示意的单核处理的流程,在无法判定并行处理的报文数据中,是否存在两个(或更多)重复报文数据同时处理时,则必须对步骤505,步骤507,以及步骤509的处理过程增加多核互斥保护,这无可避免的导致多核处理的性能无法充分发挥。
为此,可选的,为在不影响多核处理性能的基础上,实现报文去重处理,本公开提出针对图5流程中的各个处理节点,建立多套完全相同的处理节点副本,进而建立对应的多个环形示意区域副本,其中,一套处理节点副本中包括图5中所示意的各个处理节点,一套处理节点副本映射得到一个环形示意区域副本。
所述报文数据采集平台建立各个环形示意区域副本后,以下面的操作替换步骤502中的操作,采用多核处理方式实现报文去重处理:
首先采用预设的一个哈希函数计算各个待判定报文数据各自对应的分散哈希值,其中,所述分散哈希值的取值总数与配置的各个处理节点副本的总数相同,一个分散哈希值对应一个映射有各个处理节点副本的环形示意区域副本。
具体的,报文数据采集平台采用不同于步骤504所涉及到的N个哈希函数的,一个哈希函数,计算各个待判定报文数据格子对应的分散哈希值,所述分散哈希值的值域与建立的处理节点副本的套数相同。
然后,所述报文数据采集平台根据得到的各个分散哈希值,将所述各个待判定报文数据分散到相应的环形示意区域副本对应的处理节点副本处处理,并针对被分散有待判定报文数据的各个环形示意区域副本,分别执行以下操作:
确定所述时间戳对应的有效处理节点,其中,在各个处理节点副本映射为环形示意区域副本内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点副本,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定。
例如,参阅图6所示,报文数据采集平台建立有M个环形示意区域副本,每个环形示意区域副本中均一套处理节点副本,且能够实现图5中所示意的相同功能。
这样,所述报文数据采集平台采用多核处理的方式进行处理时,首先通过预设的一个哈希函数,得到一个待判定报文数据对应的分散哈希值,进而确定对应的环形示意区域副本,并根据环形示意区域副本中存在的各个处理节点副本,判定所述一个待判定报文数据是否为重复报文,实现了将不同的待判定报文数据分散到不同的环形示意区域副本中处理,极大程度上避免了多核同时对同一环形区域副本或处理节点副本进行处理时,导致的临界资源互斥问题。
进一步的,将各个待判定报文数据散列到不同的环形示意区域副本中,以及确定各个待判定数据对应的有效处理节点后,采用多核并行处理的方式,针对各个待判定报文数据分别执行步骤503-510所限定的操作。
需要说明的是,采用多核处理的方式进行处理时,对于处理节点变化为老化处理节点,与确定该处理节点中是否记录相同的待判定报文数据的过程,无需考虑临界资源互斥的问题。
假设当前时间戳下,在指定的转动方向上看,起始指针位于处理节点1和处理节点2各自映射的扇形区域的边界处,此时处理节点1刚变化为老化处理节点,同时刚开始对位向量中的各个位进行初始化处理,则在进行判定时,对于当前获得的一个待判定报文数据来说,存在以下几种情况:
(1)若所述一个待判定报文数据本身为非重复报文,则起始指针所对应的处理节点中必然没有包括所述一个待判定报文数据,即对一个待判定报文数据的判定没有影响;
(2)若所述一个待判定报文数据本身为重复报文,并且处理节点1并未老化完成,能够判定所述一个待判定报文数据先前被记录在处理节点1中,则判定所述一个待判定报文数据为重复报文数据,且此时还在重复报文的有效时长范围内,对重复报文的判定无实质性影响。
(3)若所述一个待判定报文数据为重复报文,但处理节点1关联的位向量已经完成初始化,则判定所述一个待判定报文数据未记录在所述处理节点1中,判定为非重复报文,不会对处理过程造成实质性影响。
故本公开的方案中,不需要考虑处理节点的老化与判定处理节点中是否记录有待判定报文数据之间的临界资源互斥问题。
基于同一发明构思,参阅图7所示,本公开实施例中,提出一种报文去重的装置,包括,获取单元701,确定单元702,以及处理单元703,其中,
获取单元701,用于获取各个报文采集节点当前上报的报文数据,并根据重复报文的判定内容,将各个报文数据解封为各个待判定报文数据,以及将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳;
确定单元702,用于确定所述时间戳对应的有效处理节点,其中,在各个处理节点映射为环形示意区域内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定;
处理单元703,用于针对各个待判定报文数据,分别执行以下操作:
采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值,并在确定各个有效处理节点各自关联的位向量中,存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为重复报文数据,并将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值后,丢弃所述一个待判定报文数据。
可选的,所述根据重复报文的判定内容,将各个报文数据解封为各个待判定报文数据时,所述获取单元701包括:
确定重复报文的判定内容为应用层内容时,将解封至应用层的各个报文数据作为各个待判定报文数据;或者,
确定重复报文的判定内容为会话层及以上层级内容时,将解封至所述会话层的各个报文数据作为各个待判定报文数据;或者,
确定重复报文的判定内容为网络层及以上层级内容时,将解封至所述网络层的各个报文数据作为各个待判定报文数据;或者,
确定重复报文的判定内容为数据链路层及以上层级内容时,将解封至所述数据链路层的各个报文数据作为各个待判定报文数据。
可选的,所述采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值之后,所述处理单元703进一步用于:
确定各个有效处理节点各自关联的位向量中,不存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为非重复报文数据;
将所述一个待判定报文数据上报至网络可视化分析系统进行分析处理,并将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值。
可选的,所述判定所述一个待判定报文数据为重复报文数据之后,所述将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值之前,所述处理单元703进一步用于:
确定所述N个位均被赋值的位向量所关联的一个有效处理节点,以及确定所述一个有效处理节点不是终止指针所对应的目标处理节点。
可选的,所述判定所述一个待判定报文数据为重复报文数据之后,所述处理单元703进一步用于:
确定所述N个位均被赋值的位向量所关联的一个有效处理节点,以及确定所述一个有效处理节点是终止指针所对应的目标处理节点时,直接丢弃所述一个待判定报文数据。
可选的,所述确定单元702进一步用于:
将所述时间戳下的环形示意区域内,除有效处理节点所映射的扇形区域外的其他扇形区域设置为老化区域,将所述老化区域内的完整扇形区域所对应的处理节点设置为老化处理节点,并对老化处理节点关联的位向量中的各个位进行初始化处理。
可选的,采用多核处理器进行并行处理时,所述将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳之后,所述采用相互独立的N个哈希函数对一个待判定报文数据进行处理之前,所述确定单元702进一步用于:
采用预设的一个哈希函数计算所述各个待判定报文数据各自对应的分散哈希值,其中,所述分散哈希值的取值总数与配置的各个处理节点副本的总数相同,一个分散哈希值对应一个映射有各个处理节点副本的环形示意区域副本;
根据得到的各个分散哈希值,将所述各个待判定报文数据分散到相应的环形示意区域副本对应的处理节点副本处处理,并针对被分散有待判定报文数据的各个环形示意区域副本,分别执行以下操作:
确定所述时间戳对应的有效处理节点,其中,在各个处理节点副本映射为环形示意区域副本内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点副本,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定。
基于同一发明构思,参阅图8所示,本公开实施例提出一种电子设备,包括存储器801和处理器802,其中,所述处理器用于读取所述存储器中存储的计算机指令,并执行上述操作。
基于同一发明构思,本公开实施例中报文去重的实施例中提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备执行时,使得所述电子设备能够执行上述报文去重方法。
综上所述,本公开实施例中,获取各个报文采集节点当前上报的报文数据,并根据重复报文的判定内容,将各个报文数据解封为各个待判定报文数据,以及将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳,然后确定所述时间戳对应的有效处理节点,其中,在各个处理节点映射为环形示意区域内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定,再针对各个待判定报文数据,分别执行以下操作:采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值,并在确定各个有效处理节点各自关联的位向量中,存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为重复报文数据,并将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值后,丢弃所述一个待判定报文数据。这样,只需要为处理节点的位向量配置固定的存储空间,无需占用过多的内容,基于位向量的操作,即可判定是否接收到重复报文,极大提高了重复报文的处理效率。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开实施例进行各种改动和变型而不脱离本公开实施例的精神和范围。这样,倘若本公开实施例的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (10)
1.一种报文去重的方法,其特征在于,包括:
获取各个报文采集节点当前上报的报文数据,并根据重复报文的判定内容,将各个报文数据解封为各个待判定报文数据,以及将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳;
确定所述时间戳对应的有效处理节点,其中,在各个处理节点映射为环形示意区域内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定;
针对各个待判定报文数据,分别执行以下操作:
采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值,并在确定各个有效处理节点各自关联的位向量中,存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为重复报文数据,并将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值后,丢弃所述一个待判定报文数据。
2.如权利要求1所述的方法,其特征在于,所述根据重复报文的判定内容,将各个报文数据解封为各个待判定报文数据,包括:
确定重复报文的判定内容为应用层内容时,将解封至应用层的各个报文数据作为各个待判定报文数据;或者,
确定重复报文的判定内容为会话层及以上层级内容时,将解封至所述会话层的各个报文数据作为各个待判定报文数据;或者,
确定重复报文的判定内容为网络层及以上层级内容时,将解封至所述网络层的各个报文数据作为各个待判定报文数据;或者,
确定重复报文的判定内容为数据链路层及以上层级内容时,将解封至所述数据链路层的各个报文数据作为各个待判定报文数据。
3.如权利要求1所述的方法,其特征在于,所述采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值之后,进一步包括:
确定各个有效处理节点各自关联的位向量中,不存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为非重复报文数据;
将所述一个待判定报文数据上报至网络可视化分析系统进行分析处理,并将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值。
4.如权利要求1所述的方法,其特征在于,所述判定所述一个待判定报文数据为重复报文数据之后,所述将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值之前,进一步包括:
确定所述N个位均被赋值的位向量所关联的一个有效处理节点,以及确定所述一个有效处理节点不是终止指针所对应的目标处理节点。
5.如权利要求1所述的方法,其特征在于,所述判定所述一个待判定报文数据为重复报文数据之后,进一步包括:
确定所述N个位均被赋值的位向量所关联的一个有效处理节点,以及确定所述一个有效处理节点是终止指针所对应的目标处理节点时,直接丢弃所述一个待判定报文数据。
6.如权利要求1-5任一项所述的方法,其特征在于,进一步包括:
将所述时间戳下的环形示意区域内,除有效处理节点所映射的扇形区域外的其他扇形区域设置为老化区域,将所述老化区域内的完整扇形区域所对应的处理节点设置为老化处理节点,并对老化处理节点关联的位向量中的各个位进行初始化处理。
7.如权利要求1所述的方法,其特征在于,采用多核处理器进行并行处理时,所述将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳之后,所述采用相互独立的N个哈希函数对一个待判定报文数据进行处理之前,进一步包括:
采用预设的一个哈希函数计算所述各个待判定报文数据各自对应的分散哈希值,其中,所述分散哈希值的取值总数与配置的各个处理节点副本的总数相同,一个分散哈希值对应一个映射有各个处理节点副本的环形示意区域副本;
根据得到的各个分散哈希值,将所述各个待判定报文数据分散到相应的环形示意区域副本对应的处理节点副本处处理,并针对被分散有待判定报文数据的各个环形示意区域副本,分别执行以下操作:
确定所述时间戳对应的有效处理节点,其中,在各个处理节点副本映射为环形示意区域副本内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点副本,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定。
8.一种报文去重的装置,其特征在于,包括:
获取单元,获取各个报文采集节点当前上报的报文数据,并根据重复报文的判定内容,将各个报文数据解封为各个待判定报文数据,以及将获取报文数据的时间戳配置为其解封得到的待判定报文数据的时间戳;
确定单元,确定所述时间戳对应的有效处理节点,其中,在各个处理节点映射为环形示意区域内的各个扇形区域后,将至少部分扇形区域存在于所述环形示意区域内的起始指针和终止指针之间的处理节点,作为有效处理节点,所述起始指针与所述终止指针在所述环形示意区域的指定方向上随时间转动,且夹角固定;
处理单元,针对各个待判定报文数据,分别执行以下操作:
采用相互独立的N个哈希函数对一个待判定报文数据进行处理,得到对应的N个哈希值,并在确定各个有效处理节点各自关联的位向量中,存在与所述N个哈希值对应的N个位均被赋值的位向量时,判定所述一个待判定报文数据为重复报文数据,并将终止指针对应的目标处理节点关联的位向量中,与所述N个哈希值对应的N个位进行赋值后,丢弃所述一个待判定报文数据。
9.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于读取并执行存储器中存储的可执行指令,以实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备执行时,使得所述电子设备能够执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011046575.9A CN112152937B (zh) | 2020-09-29 | 2020-09-29 | 一种报文去重的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011046575.9A CN112152937B (zh) | 2020-09-29 | 2020-09-29 | 一种报文去重的方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112152937A CN112152937A (zh) | 2020-12-29 |
CN112152937B true CN112152937B (zh) | 2022-08-19 |
Family
ID=73895842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011046575.9A Active CN112152937B (zh) | 2020-09-29 | 2020-09-29 | 一种报文去重的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112152937B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055127B (zh) * | 2021-03-17 | 2022-03-08 | 网宿科技股份有限公司 | 数据报文去重与传输方法、电子设备及存储介质 |
CN112714077B (zh) * | 2021-03-29 | 2021-07-20 | 江苏金陵科技集团有限公司 | 一种报文去重方法、装置、汇聚分流设备及存储介质 |
CN114253745B (zh) * | 2021-12-16 | 2023-06-20 | 北京金堤科技有限公司 | 一种消息去重处理方法、装置、存储介质和电子设备 |
CN114443319B (zh) * | 2021-12-30 | 2024-05-24 | 北京金堤科技有限公司 | 消息去重处理方法、装置、存储介质和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591855A (zh) * | 2012-01-13 | 2012-07-18 | 广州从兴电子开发有限公司 | 一种数据标识方法及系统 |
US9317218B1 (en) * | 2013-02-08 | 2016-04-19 | Emc Corporation | Memory efficient sanitization of a deduplicated storage system using a perfect hash function |
CN106961393A (zh) * | 2017-03-06 | 2017-07-18 | 北京安博通科技股份有限公司 | 网络会话中udp报文的检测方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9110936B2 (en) * | 2010-12-28 | 2015-08-18 | Microsoft Technology Licensing, Llc | Using index partitioning and reconciliation for data deduplication |
EP3015999A4 (en) * | 2013-09-29 | 2016-08-17 | Huawei Tech Co Ltd | METHOD OF PROCESSING DATA, SYSTEM AND CLIENT |
US10747752B2 (en) * | 2015-10-23 | 2020-08-18 | Oracle International Corporation | Space management for transactional consistency of in-memory objects on a standby database |
US10534765B2 (en) * | 2017-04-07 | 2020-01-14 | Micro Focus Llc | Assigning segments of a shared database storage to nodes |
-
2020
- 2020-09-29 CN CN202011046575.9A patent/CN112152937B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591855A (zh) * | 2012-01-13 | 2012-07-18 | 广州从兴电子开发有限公司 | 一种数据标识方法及系统 |
US9317218B1 (en) * | 2013-02-08 | 2016-04-19 | Emc Corporation | Memory efficient sanitization of a deduplicated storage system using a perfect hash function |
CN106961393A (zh) * | 2017-03-06 | 2017-07-18 | 北京安博通科技股份有限公司 | 网络会话中udp报文的检测方法及装置 |
Non-Patent Citations (3)
Title |
---|
一种采用签名与哈希技术的云存储去重方案;张桂鹏等;《计算机工程与应用》;20190124;第56卷(第01期);第76-82页 * |
云存储中基于相似性的客户-服务端双端数据去重方法;燕彩蓉等;《东华大学学报(自然科学版)》;20180119;第44卷(第01期);第115-122页 * |
改进的高效云存储数据去重方案;柳毅等;《计算机应用研究》;20191024;第37卷(第10期);第3107-3111页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112152937A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112152937B (zh) | 一种报文去重的方法、装置、电子设备及存储介质 | |
US20220206889A1 (en) | Automatic correlation of dynamic system events within computing devices | |
EP3132373B1 (en) | Systems and methods for security management of multi-client based distributed storage | |
US10523540B2 (en) | Display method of exchanging messages among users in a group | |
CN109997139B (zh) | 利用基于散列的指纹检测恶意软件 | |
US20140222813A1 (en) | Collecting data in internet of things | |
US10951646B2 (en) | Biology based techniques for handling information security and privacy | |
US10129114B1 (en) | Protocol exposure as network health detection | |
CN110365674B (zh) | 一种预测网络攻击面的方法、服务器和系统 | |
US20200099604A1 (en) | Method and device for fingerprint based status detection in a distributed processing system | |
CN111669281B (zh) | 告警分析方法、装置、设备及存储介质 | |
US20160269428A1 (en) | Data processing | |
WO2016029743A1 (zh) | 一种生成虚拟机的逻辑磁盘的方法,及装置 | |
JP2016095836A (ja) | メモリ障害許容率を増加する方法 | |
Narantuya et al. | Service-aware cloud-to-cloud migration of multiple virtual machines | |
CN109039959A (zh) | 一种sdn网络规则的一致性判断方法及相关装置 | |
CN111641589A (zh) | 高级可持续威胁检测方法、系统、计算机以及存储介质 | |
US20160205118A1 (en) | Cyber black box system and method thereof | |
CN110351274B (zh) | 一种网络攻击面追踪的方法、服务器和系统 | |
CN112257065A (zh) | 一种进程事件处理方法和装置 | |
US10659390B2 (en) | Network interface device | |
CN111352810A (zh) | 基于多进程的性能监控方法及装置、计算设备 | |
CN117391214A (zh) | 模型训练方法、装置及相关设备 | |
CN107710165B (zh) | 用于存储节点同步业务请求的方法和装置 | |
CN114629917A (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 |