CN104794158B - 一种界标窗口下域名数据重复检测快速索引方法 - Google Patents
一种界标窗口下域名数据重复检测快速索引方法 Download PDFInfo
- Publication number
- CN104794158B CN104794158B CN201510117236.8A CN201510117236A CN104794158B CN 104794158 B CN104794158 B CN 104794158B CN 201510117236 A CN201510117236 A CN 201510117236A CN 104794158 B CN104794158 B CN 104794158B
- Authority
- CN
- China
- Prior art keywords
- data
- domain name
- boundary mark
- window
- stability
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种界标窗口下域名数据重复检测快速索引方法。该方法将界标窗口根据子界标分成多个子窗口,通过稳定性布隆过滤器和字典树维护各子窗口的数据项;针对网络数据流自适应地调整索引策略,在数据较为密集时采用稳定性布隆过滤器,在数据相对稀疏时采用字典树索引策略。在域名数据重复检测的适配方面,本发明提出将域名数据翻转,形成重叠前缀字符串比率较高的数据集,有利于后续字典树的快速匹配和存储容量缩减。本发明能够降低索引维护的空间,提升元素重复检测的效率,并能够扩展到分布式场景下,有效解决网络监控应用中域名数据重复检测的问题,同时,本发明可以扩展到分布式计算场景下,便于计算性能线性提升。
Description
技术领域
本发明涉及一种海量域名数据的重复检测快速索引方法和系统,特别是涉及一种在界标窗口数据流模型下对海量域名数据进行重复检测的索引方法,属于大数据计算领域。
背景技术
随着移动互联网和Web2.0的发展,全球数据量正在惊人的增长:2008年全球产生的数据量为0.49ZB(1ZB=1021字节),2009年为0.8ZB,2010年为1.2ZB,2011年高达1.82ZB。IDC预计到2020年,全人类会产生超过40ZB的数据。高速、海量的网络数据中却包含着错综复杂的信息,其中可能有各种业务数据流,如IP业务流、用户点击流、用户查询流、网页服务器日志等;另外,其中也很有可能包含着各种安全事件,如恶意软件骚扰、网络攻击等。安全事件对网络的安全构成了极大的威胁。域名数据作为网络信息传播的重要媒介,对于网络安全事件的跟踪,确定其发生过程、参与对象及影响有重要意义。
在网络流数据实时处理中,重复数据检测是一个非常重要的预处理环节。一方面,可以通过对检测出的重复数据进行重点分析,为后续风险评估、入侵检测等提供应用支持;另一方面,可以通过重复数据检测技术积累相关知识库,仅对首次发现的网络行为进行记录,为后续分析提供基础数据支撑。
在流数据计算场景下,根据流数据计算窗口边界的移动方式,目前主要的计算窗口分为以下几种类型。第一种是固定窗口模型,即计算窗口的左右两端均固定,固定窗口模型对于体现数据的时效性帮助不大;第二种是界标窗口模型,即窗口左端固定,右端向前移动,界标窗口包含了从特别的时间点至当前时刻之间出现的数据项,如果在数据流出现周期内设置多个界标,就相当于把数据流划分成若干独立的小数据流进行分别考察;第三种是跳跃窗口模型,即窗口左端向前跳跃前进,右端滑动前进,跳跃窗口模型比界标窗口模型更能反馈数据流的连续变化过程,但是由于窗口末端批量淘汰元素,因此窗口内有效元素数量有明显的波动过程;第四种是滑动窗口模型,即窗口左右两端同时向前滑动,滑动窗口在插入新数据项的同时删除过期数据项,被视为数据流监控和分析的理想模型。
在界标窗口模型下,进行重复数据检测的主要索引方法目前主要有二种。
第一种是稳定型布隆过滤器(Stable Bloom Filter)索引方法。该方法能够支持弹性记录容量,有效解决标准型布隆过滤器因有效位被填满导致误差率激增的情况。稳定型布隆过滤器由m个位宽为d的计数器单元构成,每个计数器的表数范围为0到max=2d-1,max可是视为稳定型布隆过滤器的理想容量。当插入新元素时,首先随机选择p个计数器单元,并对其非零计数器减1,然后计算新元素的k个哈希坐标,将对应计数器单元设置为max;当查询元素x时,如果x对应的k个计数器单元均为非零值,则认为x为窗口内元素。然而,稳定性布隆过滤器存在以下问题:首先,其核心数据结构参数值的设定与数据流的密度有较大关系,如果d值设定较大,数据流密度较小,则存在极大的空间浪费,该算法可能并不适用;第二是如果界标窗口在窗口前进的过程中会遇到多个界标值,每个独立界标子窗口的查询复杂度会线性增加,这对于维护较大的界标窗口会存在一定的查询延时。
第二种方法是哈希(HASH)索引方法。哈希索引方法是一种非常便捷高效的大数据索引机制,其具备二个非常重要的优点:第一是查询复杂度较低,在理想情况下,其查询的复杂度为O(1);第二是其实现简单,通过一个或一组哈希函数,就可以满足绝大多数数据重复检测的场景。然而,哈希索引方法也存在其缺点:首先,哈希一种不确定性算法,必然会存在数据项哈希冲突,冲突处理方法的优劣对于数据索引有着决定性的作用;其次,哈希算法对于内存空间的使用没有压缩,对于域名这种字串重叠较多的场景考虑不多。
综上所述,快速索引方法对于界标窗口内的重复数据检测问题非常重要。在快速索引方法中,降低索引维护的空间复杂度,提升元素重复数据检测效率,提升索引结构对于网络安全域名数据的适用性是索引结构设计中非常重要的问题。
发明内容
本发明的主要目的是提供在界标窗口下进行域名数据重复检测的快速索引方法及系统,能够降低索引维护的空间,提升元素重复检测的效率,并能够扩展到分布式场景下,有效解决网络监控应用中域名数据重复检测的问题。
本发明的内容主要包括以下几个方面。
第一,在数据索引方法上,本发明融合了稳定性布隆过滤器(StableBloomFilter)和字典树(Trie树)的索引策略,针对网络数据流自适应调整索引策略,在数据较为密集时采用稳定性布隆过滤器,在数据相对稀疏时采用字典树索引策略。
第二,针对数据流界标窗口内的多个界标子窗口,本发明针对系统中维护的多个稳定性布隆过滤器,采用相同的设计容量并共享同一组k个哈希函数,这样能够有效的将元素查询的时间复杂度由O(kn)减少为O(k);
第三,本发明针对域名数据进行了有效的预处理手段,通过域名数据翻转的手段对数据进行统一格式化处理。以一个常见的域名为例说明,baidu网址是由二部分组成,标号“baidu”是这个域名的主体,而最后的标号“com”则是该域名的后缀,代表的这是一个com国际域名,是顶级域名。通过将域名数据进行点分翻转,形成以顶级域起始的点分字符串,这样翻转后的数据前缀重叠率会大大提升,非常有利于后续数据的精确及前缀匹配操作。
第四,本发明可以扩展到分布式场景下并行执行,采用一致性哈希的方式将域名数据分发到多个计算节点并行计算。
与现有技术相比,本发明的创新点和有益效果如下:
1)在大数据快速索引方面,提出了一种融合了稳定性布隆过滤器(StableBloomFilter)和字典树的索引策略,并针对界标窗口内的稳定性布隆过滤器共享同一组k个哈希函数,减低索引维护的空间复杂度,并提升了元素重复检测的效率,降低了误判率;
2)在域名数据重复检测的适配方面,本发明提出将域名数据翻转,形成重叠前缀字符串比率较高的数据集,有利于后续字典树的快速匹配和存储容量缩减;
3)本发明可以便利的扩展到分布式计算环境下,便于重复数据检测计算性能线性提升。
附图说明
图1为界标窗口模型示意图。
图2为重复数据检测快速索引结构图。
图3为多界标子窗口场景下哈希函数融合示意图。
图4为单一计算节点域名数据重复检测流程图。
图5为不同数据集密度下不同的索引结构内存空间效率的差异性示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
图1为界标窗口模型示意图。界标窗口左端固定,右端向前移动,界标窗口包含了从特别的时间点至当前时刻之间出现的数据项,如果在数据流出现周期内设置多个子界标,就相当于把数据流划分成若干独立的小数据流进行分别考察。如图所示,当前界标窗口为时间点start到当前时刻内出现的数据项;界标窗口被子界标分成了多个子窗口,包括子窗口i、子窗口i+1、子窗口i+2。
图2描述了重复数据检测快速索引结构示意图。如图所示,界标子窗口i的核心数据结构实现为稳定性布隆过滤器,其由m个位宽为d的计数器单元构成,每个计数器的表数范围为0到max=2d-1;界标子窗口i+2由字典树构成,图中所示为字符字典树,根节点不包含字符,除根节点外每一个节点都只包含一个字符,在叶节点存储字符串数据。从根节点到某一节点的路径上经过的字符连接起来,为该节点对应的字符串;每个节点的所有子节点包含的字符都不相同。由于核心数据结构的选择取决于网络数据流的流量密度,并不是所有界标子窗口均采用稳定性布隆过滤器,因此该索引结构能够有效降低索引维护的空间复杂度;同时,由于字典树在元素存在性检测时不存在误差,因此还可以在一定程度上降低系统的误判率。
图3描述了多界标子窗口场景下哈希函数融合示意图,其中k为哈希函数个数,d为稳定性布隆过滤器的计数器单元的位宽,m为稳定性布隆过滤器的计数器单元的个数,n为界标窗口的子窗口个数。界标窗口由多个稳定性布隆过滤器和多个字典树构成;对于稳定性布隆过滤器集合,其是完全同构的,构成稳定性布隆过滤器数组(SBFA),不同布隆过滤器中具有相同坐标的计数器单元被映射并存储到同一个向量中,以便他们能够在一次内存访问中被同时读取。由于所有n个布隆过滤器共享数量为k的同一组哈希函数,要确定元素x是否在当前所有界标子窗口中的有效元素,其查询时间复杂度可以由O(kn)降低为O(k)。
图4描述了单一计算节点域名数据重复检测流程图。其元素重复检测主要包括以下核心步骤。
(1)初始化系统检测标记位flag;初始化系统使用的数据结构(处理域名数据时,需要对域名数据进行翻转);
(2)接收输入元素e;
(3)在当前维护的界标子窗口稳定性布隆过滤器数组(SBFA)中检测元素e是否存在;如果存在,跳转流程(4);如果不存在,跳转流程(5);
(4)设定全局标记位flag=true;返回flag并结束;
(5)在当前维护的界标子窗口字典树数组中,按照界标时效性逐一检测元素e是否存在,如果存在则跳转流程(4),如果不存在则跳转流程(6);
(6)插入新元素e;
(7)判断当前界标子窗口是否采用稳定性布隆过滤器(SBF)维护,如果是则跳转(8),如果否则跳转(10);
(8)随机选择p个计数器单元,将其计数器值减1;
(9)计算k个哈希坐标,将其计数器值设置为max;跳转(11);
(10)在当前字典树中新增元素e;
(11)设定全局标记位flag=false;返回flag并结束。
为了体现不同数据集密度下,不同的索引结构内存空间效率的差异性,本发明基于真实域名数据,构建了如下实验。
实验数据:真实域名数据集,数据集中所有域名不冲突。
实验内容:分别测试在1000、2000、3000、4000、5000、6000、7000、8000、9000、10000数据集场景下,字典树完成数据装载后的内存空间占用;并与稳定性布隆过滤器特定参数(m、d参数化;m=1000000,d=24)的理论内存空间占用进行比较。
实验结论:如图5所示,其横坐标为不同的数据集密度(单位为1000),纵坐标为内存空间占用(单位为MB),当稳定性布隆过滤器在m取值1000000,d取值24时,其理论空间占用约为2.86MB;而字典树随着索引数据集的增加,其内存空间持续增加。在子界标窗口数据集约小于3000时,字典树相对于稳定性布隆过滤器有较高的内存空间效率;当子界标窗口数据集约大于3000,稳定性布隆过滤器内存空间效率更好一些。综上所述,本发明针对网络数据流自适应调整索引策略有实际应用意义。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (6)
1.一种界标窗口下域名数据重复检测快速索引方法,其步骤包括:
1)将界标窗口根据子界标分成多个子窗口,通过稳定性布隆过滤器和字典树维护各子窗口的数据项;
2)针对网络数据流自适应地调整索引策略,在数据较为密集时采用稳定性布隆过滤器,在数据相对稀疏时采用字典树索引策略;
在单一计算节点进行域名数据重复检测的步骤包括:
(1)初始化系统检测标记位flag,并初始化系统使用的数据结构;
(2)接收输入元素e;
(3)在当前维护的界标子窗口稳定性布隆过滤器数组中检测元素e是否存在;如果存在,跳转流程(4);如果不存在,跳转流程(5);
(4)设定全局标记位flag=true;返回flag并结束;
(5)在当前维护的界标子窗口字典树数组中,按照界标时效性逐一检测元素e是否存在,如果存在则跳转流程(4),如果不存在则跳转流程(6);
(6)插入新元素e;
(7)判断当前界标子窗口是否采用稳定性布隆过滤器维护,如果是则跳转流程(8),如果否则跳转流程(10);
(8)随机选择p个计数器单元,将其计数器值减1;
(9)计算k个哈希坐标,将其计数器值设置为max;跳转流程(11);
(10)在当前字典树中新增元素e;
(11)设定全局标记位flag=false;返回flag并结束。
2.如权利要求1所述的方法,其特征在于:所述稳定性布隆过滤器由m个位宽为d的计数器单元构成,每个计数器的表数范围为0到max=2d-1。
3.如权利要求1所述的方法,其特征在于:所述字典树为字符字典树,根节点不包含字符,除根节点外每一个节点都只包含一个字符,在叶节点存储字符串数据;从根节点到某一节点的路径上经过的字符连接起来,为该节点对应的字符串;每个节点的所有子节点包含的字符都不相同。
4.如权利要求1所述的方法,其特征在于:所有稳定性布隆过滤器共享数量为k的同一组哈希函数,不同的稳定性布隆过滤器中具有相同坐标的计数器单元被映射并存储到同一个向量中,并在一次内存访问中被同时读取。
5.如权利要求1所述的方法,其特征在于:在进行域名数据重复检测时,通过域名数据翻转的方法对数据进行统一格式化处理。
6.如权利要求1所述的方法,其特征在于:在进行域名数据重复检测时,采用一致性哈希的方式将域名数据分发到多个计算节点并行计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510117236.8A CN104794158B (zh) | 2015-02-09 | 2015-03-17 | 一种界标窗口下域名数据重复检测快速索引方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510066797X | 2015-02-09 | ||
CN201510066797 | 2015-02-09 | ||
CN201510117236.8A CN104794158B (zh) | 2015-02-09 | 2015-03-17 | 一种界标窗口下域名数据重复检测快速索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104794158A CN104794158A (zh) | 2015-07-22 |
CN104794158B true CN104794158B (zh) | 2018-11-13 |
Family
ID=53558950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510117236.8A Active CN104794158B (zh) | 2015-02-09 | 2015-03-17 | 一种界标窗口下域名数据重复检测快速索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104794158B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10262012B2 (en) * | 2015-08-26 | 2019-04-16 | Oracle International Corporation | Techniques related to binary encoding of hierarchical data objects to support efficient path navigation of the hierarchical data objects |
CN108764840A (zh) * | 2018-04-11 | 2018-11-06 | 哈尔滨工程大学 | 一种海量规模的邮件地址匹配方法 |
CN111611215B (zh) * | 2020-04-07 | 2023-07-11 | 布比(北京)网络技术有限公司 | 一种基于区块链的网贷风险数据共享方法及系统 |
CN113312549B (zh) * | 2021-05-25 | 2024-01-26 | 北京天空卫士网络安全技术有限公司 | 一种域名处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110171A (zh) * | 2011-03-22 | 2011-06-29 | 湖南大学 | 基于树形结构的布鲁姆过滤器的查询与更新方法 |
CN103226608A (zh) * | 2013-04-28 | 2013-07-31 | 北京航空航天大学 | 一种基于目录级可伸缩的Bloom Filter位图表的并行文件搜索方法 |
CN103428093A (zh) * | 2013-07-03 | 2013-12-04 | 北京邮电大学 | 一种基于名字路由前缀存储、匹配及更新方法与装置 |
CN104090962A (zh) * | 2014-07-14 | 2014-10-08 | 西北工业大学 | 面向海量分布式数据库的嵌套查询方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9143449B2 (en) * | 2012-07-31 | 2015-09-22 | Cisco Technology, Inc. | Methods and apparatuses for improving database search performance |
-
2015
- 2015-03-17 CN CN201510117236.8A patent/CN104794158B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110171A (zh) * | 2011-03-22 | 2011-06-29 | 湖南大学 | 基于树形结构的布鲁姆过滤器的查询与更新方法 |
CN103226608A (zh) * | 2013-04-28 | 2013-07-31 | 北京航空航天大学 | 一种基于目录级可伸缩的Bloom Filter位图表的并行文件搜索方法 |
CN103428093A (zh) * | 2013-07-03 | 2013-12-04 | 北京邮电大学 | 一种基于名字路由前缀存储、匹配及更新方法与装置 |
CN104090962A (zh) * | 2014-07-14 | 2014-10-08 | 西北工业大学 | 面向海量分布式数据库的嵌套查询方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104794158A (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11601351B2 (en) | Aggregation of select network traffic statistics | |
CN104794158B (zh) | 一种界标窗口下域名数据重复检测快速索引方法 | |
US7366728B2 (en) | System for compressing a search tree structure used in rule classification | |
CN105989061B (zh) | 一种滑动窗口下多维数据重复检测快速索引方法 | |
CN103118007B (zh) | 一种用户访问行为的获取方法和系统 | |
CN106202112A (zh) | 缓存目录刷新方法和装置 | |
CN103714134B (zh) | 一种网络流量数据索引方法及系统 | |
CN102045360B (zh) | 恶意网址库的处理方法及装置 | |
CN104579974B (zh) | 面向ndn中名字查找的哈希布鲁姆过滤器及数据转发方法 | |
CN102110132A (zh) | 统一资源定位符匹配查找方法、装置和网络侧设备 | |
US20100082749A1 (en) | Retrospective spam filtering | |
CN103530429B (zh) | 一种网页正文抽取的方法 | |
US20130185429A1 (en) | Processing Store Visiting Data | |
CN103279567A (zh) | 一种基于AJAX的Web数据采集方法及系统 | |
CN106610774A (zh) | 网页表格编辑方法及装置 | |
CN104239353B (zh) | 一种web分类控制和日志审计的方法 | |
CN115333966B (zh) | 一种基于拓扑的Nginx日志分析方法、系统及设备 | |
CN106844089A (zh) | 一种用于恢复树形数据存储的方法与设备 | |
CN109088903A (zh) | 一种基于流式的网络异常流量检测方法 | |
CN103685222A (zh) | 基于确定性有穷状态自动机的数据匹配检测方法 | |
CN110011830A (zh) | 基于流量数据的通讯拓扑信息建模方法 | |
CN117827851B (zh) | 一种用于流基数测量的数据处理结构及其应用 | |
CN104933054A (zh) | 缓存资源文件的url存储方法及装置、缓存服务器 | |
CN110019318A (zh) | 一种日志匹配处理方法、装置以及电子设备 | |
CN105975599A (zh) | 一种监测网站的页面埋点的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |