一种索引拆分布鲁姆过滤器及其插入、删除和查询方法.pdf

上传人:b*** 文档编号:1091468 上传时间:2018-03-30 格式:PDF 页数:33 大小:1.34MB
返回 下载 相关 举报
摘要
申请专利号:

CN200910138248.3

申请日:

2009.05.08

公开号:

CN101577721A

公开日:

2009.11.11

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):H04L 29/06申请公布日:20091111|||实质审查的生效|||公开

IPC分类号:

H04L29/06; H04L9/36

主分类号:

H04L29/06

申请人:

湖南大学

发明人:

张大方; 黄 昆

地址:

410082湖南省长沙市麓山南路1号

优先权:

2008.12.5 CN 200810143821.5

专利代理机构:

长沙正奇专利事务所有限责任公司

代理人:

马 强

PDF下载: PDF下载
内容摘要

本发明公开了一种索引拆分布鲁姆过滤器及其插入、删除和查询方法,将特征规则的索引值拆分成多组比特,每组比特采用片上并行CBF表示多个特征规则子集;查询数据包内容时,检查是否在每组并行CBF中,并产生候选特征规则的片外索引值;删除或插入特征规则时,提出了懒惰删除和空缺插入方法,即利用删除位图记录片外特征规则的状态,且不需要调整其他特征规则的片外索引值,从而实现低开销的特征规则更新操作。ISBF是一种快速和存储高效的数据包内容过滤方法,插入、删除和查询操作的平均存储器访问次数均为O(k)。本发明应用于IP路由查找、数据包分类、深度数据包检测、网络安全、网络监测、网络管理、数据流处理、以及无线网络数据处理等。

权利要求书

1、  一种索引拆分布鲁姆过滤器,其特征是由多组片上并行计数布鲁姆过滤器(CBF)和一个片外特征规则集构成,且多组片上并行CBF产生与数据包内容匹配的候选特征规则的片外索引值;所述片上并行CBF是指:将一组n条特征规则的索引值被拆分成组,每组包含索引值的b位比特;每组b位比特将特征规则集划分成2b个子集,该每个子集采用片上计数布鲁姆过滤器CBF表示,从而为每组构建2b个片上并行CBF;当查询数据包内容y时,检查y是否在所有B×2b个片上并行CBF中,每组片上并行CBF产生一个b位比特值,且将B个b位比特值合成候选特征规则的片外索引值。

2、
  一种权利要求1所述索引拆分布鲁姆过滤器的特征规则删除方法,其特征是采用一个删除位图记录片外特征规则的状态,即0表示未删除状态,1表示删除状态;当删除特征规则x时,在删除位图中设置x对应的比特值为1,从每组片上并行CBF中删除x,并从片外特征规则集中删除x,且其他特征规则的片外索引值保持不变。

3、
  一种权利要求1所述索引拆分布鲁姆过滤器的特征规则插入方法,其特征是采用一个删除位图用于记录片外特征规则,删除状态;当插入特征规则x时,随机选择删除位图中一个空缺位,即比特值为1,设置x的片外索引值为该空缺位的索引值,并在删除位图中设置该空缺位的比特值为0;统计删除位图中该空缺位之前且比特值为1的个数,从而计算x的片外物理地址;根据x的片外物理地址,在片外存储器的相应存储位置上插入x,且其他特征规则的片外索引值保持不变;根据x的片外索引值,在每组片上并行CBF中插入x。

4、
  一种权利要求1所述索引拆分布鲁姆过滤器的数据包内容查询方法,其特征是当查询数据包内容x时,x哈希映射到片上并行计数布鲁姆过滤器CBF;检查x是否在所有片上并行CBF中,且每组片上并行CBF分别输出b位比特值;合成所述b位比特值产生与x匹配的候选特征规则的片外索引值;直接访问与该片外索引值对应的特征规则,并与数据包内容x进行特征匹配。

说明书

一种索引拆分布鲁姆过滤器及其插入、删除和查询方法
技术领域
本发明属于高性能计算技术领域,具体是一种面向快速深度数据包检测的索引拆分布鲁姆过滤器及其插入、删除和查询方法。
背景技术
近年来,网络蠕虫、分布式拒绝服务、间谍软件和计算机病毒等新型网络攻击不断涌现,入侵计算机系统,窃取敏感信息,以及阻断网络关键服务等,从而威胁和破坏互联网络基础设施。网络入侵检测系统(Network IntrusionDetection System,NIDS)和网络入侵阻止系统(Nework Intrusion PreventionSystem,NIPS)是网络攻击防范的关键方法之一,即实时监测网络流量,检查网络可疑行为,并向系统管理员告警。深度数据包检测(Deep Packet Inspection,DPI)是NIDS/NIPS的核心部件。与防火墙不同,DPI不仅检查数据包头部信息,而且检查数据包有效载荷(即数据包内容)。DPI采用特征匹配方法,将每个数据包内容与一组预定义的攻击特征进行匹配,从而识别出可疑行为。为了定义可疑行为,DPI采用一组规则描述攻击特征,即每条规则包括数据包类型、特征字符串、搜索起始位置、以及匹配后的响应操作等信息。因此,DPI是一种数据包内容过滤技术,不仅应用于NIDS/NIPS,而且应用于Linux系统的应用层数据包分类、P2P流量识别以及基于上下文的流量计费等。
随着网络带宽和流量的迅猛增长,DPI将面临高性能挑战,即如何满足数据包内容过滤的时间需求和空间需求。首先,DPI是计算密集型操作,已成为NIDS/NIPS的性能瓶颈。通常,DPI应用于互联网络的数据路径上(例如出口链路上),需要检查海量数据包内容的每个字节,并与成千上万条规则进行特征匹配。例如,在Snort中,DPI占约70%的总执行时间和约80%的总操作指令。因此,为了适应高速网络应用,DPI必须满足数据包内容过滤的线速处理时间需求,即其吞吐量为10~40Gbps。其次,基于硬件的DPI面临存储空间受限的挑战。由于基于软件的DPI难以适应高速数据包内容过滤,研究者利用现代嵌入式存储器技术,例如静态随机访问存储器(SRAM)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和三重内容可寻址存储器(TCAM)等,提出了基于硬件的DPI,支持线速的数据包内容过滤,从而提高DPI的吞吐量。但是,随着攻击特征规则日益庞大,高速率、小容量的嵌入式存储器难以满足基于硬件的DPI的存储空间需求。例如,Snort 2.7包含7840条特征规则,其存储空间大小约为50MB;而Xilinx Vertex-5FPGA最多包含288个片上存储块(每个存储块大小为36Kb),仅提供约10Mb的片上存储空间,难以存储这些特征规则。因此,如何在存储空间受限的条件下设计一种快速DPI是基于硬件的数据包内容过滤技术的关键问题。
为了提高DPI的吞吐量和可伸缩性,Artan等人提出了一种特里位图内容分析器(Trie Bitmap Content Analyzer,TriBiCa),即在特里树的每一层中,每个节点采用一个哈希函数将特征规则集均匀划分成大小相等的两个子集。实质上,TriBiCa为特征规则集构建一个最小完美哈希函数:当存储特征规则x时,TriBiCa将x哈希映射到一个唯一的存储位置,且不存在哈希冲突(Collision),即多个特征规则哈希映射到同一个存储位置;当查询数据包内容y时,TriBiCa检查y是否在特征规则集中,并指出与y匹配的候选特征规则的存储位置。为了提高DPI的吞吐量,TriBiCa的特里树部署在高速率、小容量的片上存储器上,而特征规则集存储在低速率、大容量的片外存储器上;在特征匹配之前,TriBiCa过滤掉大量不相关的数据包,并提供候选特征规则的存储位置,从而减少片外存储器访问次数和特征匹配操作次数。但是,TriBiCa存在最小完美哈希函数构建和更新开销高以及假阳性存储器访问次数多等问题。首先,TriBica是计算密集型操作,即采用启发式Blackjack算法和贪婪算法来构建一个最小完美哈希函数。当特征规则不断增多时,这些启发式算法将导致TriBiCa的最小完美哈希函数构建开销高。其次,当插入或删除特征规则时,TriBiCa离线地重新构建一个最小完美哈希函数,难以适应动态变化的特征规则集,从而导致其最小完美哈希函数更新开销高;最后,在TriBiCa中,特里树的每一层采用同一个哈希函数,导致其假阳性存储器访问次数多,即需要额外的片外存储器访问和特征匹配操作,从而限制了TriBiCa的吞吐量。
为了减少DPI的片外存储器访问次数,Song等人提出了一种共享节点快速哈希表(Shared-node Fast Hash Table,SFHT),用于简洁表示和快速查询一个特征规则集。SFHT是由m个存储桶构成,每个存储桶包含一个片上计数器和一个片外共享节点链接表;当存储特征规则x时,x哈希映射的k≥2个存储桶指向特征规则的共享节点;当查询数据包内容y时,从y哈希映射的k个存储桶中,选择一个计数器值和桶索引值最小的存储桶,并在该存储桶的共享节点链接表中查找特征规则。与传统的哈希表相比,SFHT可减少查询操作的片外存储器访问次数,从而提高哈希表的最坏情况性能。实质上,SFHT是由片上计数布鲁姆过滤器(Counting Bloom Filter,CBF)和片外共享节点链接表组构成,即计数布鲁姆过滤器是由m个片上计数器构成,共享节点链接表组是m个片外共享节点链接表构成。在SFHT中,片上CBF过滤掉大量不相关的数据包,并选择长度最短的片外共享节点链接表来匹配特征,从而减少片外存储器访问次数和特征匹配操作次数。此外,由于片上CBF可支持插入和删除操作,SFHT可适应动态变化的特征规则集。但是,SFHT存在哈希表更新开销高和存储空间大等问题。首先,在SFHT中,删除操作的平均存储器访问次数为O(k),插入操作的平均存储器访问次数为O(k+nk2/m),其中n为特征规则条数,m为存储桶个数,k为哈希函数个数。为了保证每个存储桶的计数器值等于其指向的共享节点链接表长度,SFHT的插入操作需要遍历k个存储桶的共享节点链接表,甚至需要复制特征规则的多个共享节点,这将导致SFHT需要频繁地访问片外存储器和额外的片外存储空间。其次,在SFHT中,每个片上存储桶不仅包含4位比特的计数器,而且包含位比特的指针,这将导致SFHT占用更多的代价昂贵的小容量片上存储空间,其中n为特征规则条数。
发明内容
针对现有技术的缺陷,本发明目的旨在提出一种索引拆分布鲁姆过滤器(Index-Split Bloom Filter,ISBF)及其插入、删除和查询方法,能够降低特征规则的更新开销,并提高深度数据包检测DPI的吞吐量。
为实现上述发明目的,本发明采取的具体技术方案是,一种索引拆分布鲁姆过滤器,由多组片上并行计数布鲁姆过滤器CBF和一个片外特征规则集构成,且多组片上并行CBF产生与数据包内容匹配的候选特征规则的片外索引值;所述片上并行CBF是指:将一组n条特征规则的索引值被拆分成组,每组包含索引值的b位比特;每组b位比特将特征规则集划分成2b个子集,该每个子集即采用片上计数布鲁姆过滤器CBF表示,从而为每组构建2b个片上并行CBF;当查询数据包内容y时,检查y是否在所有B×2b个片上并行CBF中,每组片上并行CBF产生一个b位比特值,且将B个b位比特值合成候选特征规则的片外索引值。
本发明还提出一种索引拆分布鲁姆过滤器的特征规则删除方法,采用一个删除位图记录片外特征规则的状态,即0表示未删除状态,1表示删除状态;当删除特征规则x时,在删除位图中设置x对应的比特值为1,从每组片上并行CBF中删除x,并从片外特征规则集中删除x,且其他特征规则的片外索引值保持不变。
本发明还提出一种索引拆分布鲁姆过滤器的特征规则插入方法,其特征是采用上述删除方法的删除位图,用于记录片外特征规则,删除状态;当插入特征规则x时,随机选择删除位图中一个空缺位,即比特值为1,设置x的片外索引值为该空缺位的索引值,并在删除位图中设置该空缺位的比特值为0;统计删除位图中该空缺位之前且比特值为1的个数,从而计算x的片外物理地址;根据x的片外物理地址,在片外存储器的相应存储位置上插入x,且其他特征规则的片外索引值保持不变;根据x的片外索引值,在每组片上并行CBF中插入x。
本发明还提出一种索引拆分布鲁姆过滤器的数据包内容查询方法,当查询数据包内容x时,x哈希映射到片上并行计数布鲁姆过滤器(CBF);检查x是否在所有片上并行CBF中,且每组片上并行CBF分别输出b位比特值;合成所述b位比特值产生与x匹配的候选特征规则的片外索引值;直接访问与该片外索引值对应的特征规则,并与数据包内容x进行特征匹配。
本发明的核心思想是:给定一组n条特征规则,特征规则的索引值被拆分成组,每组包含索引值的b位比特;每组b位比特将特征规则集划分成2b个子集,并采用片上计数布鲁姆过滤器(CBF)表示每个子集,从而为每组构建2b个并行CBF;当查询数据包内容y时,检查y是否在所有B×2b个片上并行CBF中,每组并行CBF产生一个b位比特值,且将B个b位比特值合成候选特征规则的片外索引值。实质上,ISBF是由多组片上并行CBF和一个片外特征规则集构成,且多组片上并行CBF产生与数据包内容匹配的候选特征规则的片外索引值。由于CBF会产生假阳性,ISBF直接访问片外特征规则,并与数据包内容进行特征匹配,从而消除其假阳性错误。
当删除或插入特征规则时,索引拆分布鲁姆过滤器(ISBF)需要调整其他特征规则的片外索引值,且更新片上并行计数布鲁姆过滤器(CBF),从而导致其删除或插入开销高。为了降低ISBF的删除开销,本发明提出了一种删除方法,称为懒惰删除(Lazy Delete)方法,其核心思想是:采用一个删除位图记录片外特征规则的状态,即0表示未删除状态,1表示删除状态;当删除特征规则x时,在删除位图中设置x对应的比特值为1,从每组并行CBF中删除x,并从片外特征规则集中删除x,且其他特征规则的片外索引值保持不变。
为了减少ISBF的插入开销,本发明同时也提出了一种插入方法,称为空缺插入(Vacant Insert)方法,其核心思想是:采用上述懒惰删除方法的删除位图,用于记录片外特征规则的删除状态;当插入特征规则x时,随机选择删除位图中一个空缺位(即比特值为1),设置x的片外索引值为该空缺位的索引值,并在删除位图中设置该空缺位的比特值为0;统计删除位图中该空缺位之前且比特值为1的个数,从而计算x的片外物理地址;根据x的片外物理地址,在片外存储器的相应存储位置上插入x,且其他特征规则的片外索引值保持不变;根据x的片外索引值,在每组并行CBF中插入x。
本发明所述索引拆分布鲁姆过滤器及其特征规则的插入、删除和查询方法,能够降低特征规则的更新开销,并提高深度数据包检测DPI的吞吐量。本发明可应用于IP路由查找、数据包分类、深度数据包检测、网络安全、网络监测、网络管理、数据流处理、以及无线网络数据处理等。
以下结合附图和实施例对本发明的工作原理进行详细描述:
附图说明
图1为b-比特的索引拆分布鲁姆过滤器示意图;其中图1(a)为1-比特的索引拆分布鲁姆过滤器示意图;其中图1(b)为2-比特的索引拆分布鲁姆过滤器示意图;
图2为索引拆分布鲁姆过滤器的查询操作示意图;
图3为特征规则的懒惰删除前后对比示意图;其中图3(a)为特征规则e3删除之前的示意图;其中图3(b)为特征规则e3删除之后的示意图;
图4为索引拆分布鲁姆过滤器的删除操作流程图;
图5为特征规则的空缺插入前后对比示意图;其中图5(a)为特征规则e8插入之前的示意图;其中图5(a)为特征规则e8插入之后的示意图;
图6为索引拆分布鲁姆过滤器的插入操作流程图;
图7为特里位图内容分析器与索引拆分布鲁姆过滤器的比较示意图;
图8为索引拆分布鲁姆过滤器的平均假阳性存储器访问次数示意图;其中图8(a)为特征规则条数为10000的平均假阳性存储器访问次数示意图;其中图8(b)为特征规则条数为1000~4000的平均假阳性存储器访问次数示意图;
图9为删除、插入和查询操作的平均存储器访问次数示意图;其中图9(a)为删除操作的平均存储器访问次数示意图;其中图9(b)为插入操作的平均存储器访问次数示意图;其中图9(c)为查询操作的平均存储器访问次数示意图;
图10为删除、插入和查询操作的平均处理时间示意图;其中图10(a)为删除操作的平均处理时间示意图;其中图10(b)为插入操作的平均处理时间示意图;其中图10(c)为查询操作的平均处理时间示意图;
图11为片上和片外存储空间大小示意图;其中图11(a)为片上存储空间大小示意图;其中图11(b)为片外存储空间大小示意图;
图12为不同参数对假阳性存储器访问次数的影响示意图;其中图12(a)为特征规则条数的影响示意图;其中图12(b)为哈希函数个数的影响示意图;其中图12(c)为索引拆分的比特位数的影响示意图;其中图12(d)为存储桶个数与特征规则条数的比值的影响示意图;
图13为不同参数对片上存储空间大小的影响示意图;其中图13(a)为索引拆分的比特位数的影响示意图;其中图13(b)为存储桶个数与特征规则条数的比值的影响示意图;
图14为Snort 2.7中查询操作的平均存储器访问次数和平均处理时间示意图;其中图14(a)为平均存储器访问次数示意图;其中图14(b)为平均处理时间示意图;
图15为Snort 2.7中存储空间大小和假阳性存储器访问次数示意图;其中图15(a)为片上存储空间大小示意图;其中图15(b)为片外存储空间大小示意图;其中图15(c)为假阳性存储器访问次数示意图;
具体实施方式
图1是b-比特的索引拆分布鲁姆过滤器ISBF,其中特征规则集为e0,e1,…,e15。如图1(a)所示,在1-比特的ISBF中,特征规则的索引值被拆分成4组,每组包含索引值的1位比特;每组1位比特将16条特征规则划分成2组,构建2个并行计数布鲁姆过滤器(CBF),因此1-比特的ISBF共有8个片上并行CBF。如图1(b)所示,在2-比特的ISBF中,特征规则的索引值被拆分成2组,每组包含索引值的2位比特;每组2位比特将16条特征规则划分成4组,构建4个片上并行计数布鲁姆过滤器CBF,因此2-比特的ISBF共有8个并行CBF。在b-比特的ISBF中,CBFij表示第i组j个并行计数布鲁姆过滤器。在图1(a)中,第0组2个并行计数布鲁姆过滤器为CBF00和CBF01,其中CBF00表示特征规则子集e0,e1,e2,e3,e4,e5,e6,e7,CBF01表示特征规则子集e8,e9,e10,e11,e12,e13,e14,e15;当查询数据包内容y时,CBF00和CBF01分别产生1位比特值为y00和y01,即y00,y01∈{0,1}.]]>且对y00和y01进行逻辑或运算,从而输出索引值的第0位比特值为y0;类似地,第1、2和3组并行CBF分别输出索引值的第1、2和3位比特值为y1、y2和y3,从而合成与y匹配的候选特征规则的片外索引值为y0y1y2y3。在图1(b)中,第0组4个并行布鲁姆过滤器为CBF00、CBF01、CBF02和CBF03,其中CBF00表示特征规则子集e0,e1,e2,e3,CBF01表示特征规则子集e4,e5,e6,e7,CBF02表示特征规则子集e8,e9,e10,e11,CBF03表示特征规则子集e12,e13,e14,e15;当查询数据包内容y时,CBF00、CBF01、CBF02和CBF03分别产生2位比特值为y00、y01、y02和y03,即且对y00、y01、y02和y03进行逻辑或运算,从而输出索引值的第0和1位比特值为y0;类似地,第1组并行CBF输出索引值的第2和3位比特值为y1,从而合成与y匹配的候选特征规则的片外索引值为y0y1
图2是索引拆分布鲁姆过滤器的查询操作的具体实施例,其中特征规则集为e0,e1,…,e15。在图2中,特征规则条数为n=16,哈希函数个数为k=3,且索引拆分的比特位数为b=1。如图2所示,当查询数据包内容e9时,e9哈希映射到并行计数布鲁姆过滤器(CBF)的第3、16和21位;检查e9是否在所有并行CBF中,即CBF00、CBF01、CBF10、CBF11、CBF20、CBF21、CBF30和CBF31,且CBF01、CBF10、CBF20和CBF31分别输出1位比特值为1、0、0和1;合成这些1位比特值,产生与e9匹配的候选特征规则的片外索引值为(1001)2=9;直接访问第9条特征规则,并与数据包内容e9进行特征匹配。在b-比特的ISBF中,当数据包内容y哈希映射的k个计数器值大于0时,CBFij输出片外索引值的第i个b位比特值为j,否则,y不在特征规则集中。
图3是特征规则的删除过程,其中特征规则集为e0,e1,e2,e3,e4,e5,e6,e7。如图3(a)所示,在特征规则e3删除之前,每个片外特征规则包含一个索引值和一个物理地址,而片上删除位图与片外特征规则集相对应,且其初始化值为0,表示未删除状态;如图3(b)所示,在特征规则e3删除之后,在删除位图中设置e3对应的第3位比特值为1,从片外存储器上删除e3,且片外特征规则e4、e5、e6和e7向前移动一个存储位置,即自动调整物理地址,但是这些特征规则的索引值保持不变。
图4是索引拆分布鲁姆过滤器的删除操作的具体实施应用。如图4所示,当删除特征规则e6时,e6的片外索引值为(0110)2=6,设置删除位图的第6位比特值为1,从CBF00、CBF11、CBF21和CBF30中删除e6,并从片外特征规则集中删除e6,且其他特征规则的片外索引值保持不变。在图4中,当查询数据包内容e9时,第0组CBF01、第1组CBF10、第2组CBF20和第3组CBF31分别输出1位比特值为1、0、0和1;合成这些1位比特值,产生与e0匹配的候选特征规则的片外索引值为(1001)2=9;检查删除位图的第9位比特值是否为1,如果是,e9不在特征规则集中,否则,统计删除位图中第9位之前且比特值为1的个数,即第9位之前共有1个比特值为1,从而计算与e9匹配的候选特征规则的片外物理地址为9-1=8;直接访问第8条特征规则,并与数据包内容e9进行特征匹配。
图5是特征规则的空缺插入前后对比示意图,其中特征规则集为e0,e1,e2,e3,e4,e5,e6,e7。如图5(a)所示,在特征规则e8插入之前,第3条特征规则e3和第6条特征规则e6被删除,且设置删除位图的第3和第6位比特值为1;如图5(b)所示,在特征规则e8插入之后,随机选择删除位图中一个空缺位,即第3位,并设置e8的片外索引值为3,且设置删除位图的第3位比特值为0;统计删除位图中第3位之前且比特值为1的个数,从而计算e8的片外物理地址为3;在片外特征规则集的第3个存储位置上插入e8,且其他特征规则的片外索引值保持不变。
图6是索引拆分布鲁姆过滤器的插入操作的一个具体实施例。如图6所示,当插入特征规则e16时,随机选择删除位图中一个空缺位,即第2位,设置e16的片外索引值为(0010)2=2,并设置删除位图的第2位比特值为0;统计删除位图中第2位之前且比特值为1的个数,计算e16的片外物理地址为2,并在片外特征规则集的第2个存储位置上插入e16,且其他特征规则的片外索引值保持不变;根据e16的片外索引值,在第0组CBF00、第1组CBF10、第2组CBF21和第3组CBF30中插入e16
图7是特里位图内容分析器与索引拆分布鲁姆过滤器的比较。如图7所示,TriBiCa第i层所有左孩子节点组成ISBF第i-1组第0个计数布鲁姆过滤器CBFi-10,其所有右孩子节点组成ISBF第i-1组第1个计数布鲁姆过滤器CBFi1。例如,TriBiCa第2层2个左孩子节点组成ISBF第1组第0个CBF,其2个右孩子节点组成ISBF第1组第1个CBF。因此,TriBiCa是分层查找,其片上查询时间开销为O(logn);与TriBiCa不同,ISBF是并行查找,其片上查询时间开销为O(1)。
下表是特里位图内容分析器(TriBiCa)、共享节点快速哈希表(SFHT)和索引拆分布鲁姆过滤器(ISBF)的插入、删除和查询操作的平均存储器访问次数:

  插入操作  删除操作  查询操作  TriBiCa  O(n·logn)  O(n·logn)  O(1)  SFHT  O(nk2/m+k)  O(k)  O(1)  ISBF  O(1)  O(1)  O(1)

当插入特征规则时,由于TriBiCa不支持在线插入,TriBiCa需要重构一颗层数为的位图特里树,且每层访问n条特征规则,其插入操作的平均存储器访问次数为O(n·logn);SFHT将哈希映射的k个存储桶指向特征规则的共享节点,且需要复制至多k个共享节点和遍历nk2/m个共享节点,其插入操作的平均存储器访问次数为O(nk2/m+k);ISBF在删除位图中为特征规则随机选择一个空缺位,在每组片上并行CBF中插入特征规则,且在片外特征规则集中插入1条特征规则,其插入操作的平均存储器访问次数为O(1)。当删除特征规则时,由于TriBiCa不支持在线删除,TriBiCa需要重构一颗位图特里树,其删除操作的平均存储器访问次数为O(n·logn);SFHT需要从哈希映射的k个存储桶中删除特征规则,其删除操作的平均存储器访问次数为O(k);ISBF在删除位图中设置特征规则的删除状态,从每组片上并行CBF中删除特征规则,且在片外特征规则集中删除1条特征规则,其删除操作的平均存储器访问次数为O(1)。ISBF的查询操作的平均存储器访问次数与TriBiCa和SFHT相同,均为O(1)。因此,ISBF是一种快速查找的数据结构,其插入、删除和查询操作的平均存储器访问次数恒定为O(1),不仅降低特征规则的更新开销,而且提高DPI的吞吐量。
在ISBF中,给定特征规则条数为n,每个并行CBF的哈希函数个数为k,每个并行CBF的存储桶个数为mISBF=c1·n(其中c1≥1),则b-比特的ISBF包含组并行CBF,其片上存储空间大小为:

公式(1)表明,当索引拆分的比特位数b越大时,ISBF的片上存储空间大小MISBF越小。在TriBiCa中,位图特里树的层数为每层数据位图和下一节点位图的存储空间大小为mTriBiCa=2·c2·n,则TriBiCa的片上存储空间大小为:

在SFHT中,片上CBF的存储桶个数为mSFHT=c3·n,每个存储桶大小至少为即包含一个4位比特的计数器和一个位比特的指针,则SFHT的片上存储空间大小为:

因此,ISBF与TriBiCa的片上存储空间大小比值为:
RI,T=MISBF/MTriBiCa≈c12bc2---(4)]]>
ISBF与SFHT的片上存储空间大小比值为:

当c1=c2=c3时,则RI,T≈12b]]>RI,S≈1b,]]>表明与TriBiCa和SFHT相比,ISBF的片上存储空间大小分别减少约2b倍和b倍。因此,ISBF是一种存储高效的数据结构,可满足DPI的存储空间受限需求。
由于CBF会产生假阳性,ISBF的假阳性错误将产生多个候选规则的片外索引值,导致额外的片外存储器访问和特征匹配操作。ISBF的假阳性索引值个数是由每组并行CBF的假阳性比特值的乘积而组合成。例如,在2-比特的ISBF中,假设第0组并行CBF产生3个比特值(其中2个假阳性比特值),第1组并行CBF产生2个比特值(其中1个假阳性比特值),则片外索引值总数为3×2=6,其中假阳性索引值个数为6-1=5。假设每个并行CBF是相互独立且其假阳性概率均为f,则ISBF的平均假阳性索引个数为:



其中Xif表示当所有产生的比特值都是假阳性时,第i组并行CBF产生的假阳性比特值个数,Cit表示当所有产生的比特值仅有一个真阴性时,第i组并行CBF产生的假阳性比特值个数,且Xif和Xit服从二项式分布。当每个并行CBF的假阳性概率为f=(1-e-kn/m)k且存储桶个数为m=c1·n时,则ISBF的平均假阳性索引值个数为:



根据公式(1),当ISBF的片上存储空间大小恒定为常数时,即α=c1/b为常数,则ISBF的平均假阳性存储器访问次数为:


公式(8)表明,给定特征规则条数为n和哈希函数个数为k,ISBF的平均假阳性存储器访问次数是关于索引拆分的比特位数为b的函数。
根据公式(1)和(8),给定特征规则条数为n和哈希函数个数为k,当ISBF的片上存储空间大小恒定为常数时,本发明采用Matlab分析ISBF的平均假阳性存储器访问次数与索引拆分的比特位数b之间的关系。图8是ISBF的平均假阳性存储器访问次数,即当ISBF的片上存储空间大小MISBF为常数时,其平均假阳性存储器访问次数FISBF随着索引拆分的比特个数b的变化而变化,其中哈希函数个数为k=6。如图8(a)所示,给定特征规则条数为n=10000且片上存储空间大小MISBF恒定为280Kb、560Kb、840Kb和1120Kb,当索引拆分的比特个数为b=7时,ISBF的平均假阳性存储器访问次数的最小值分别为0.56、0.0132、1.4×10-3和2.79×10-4。如图8(b)所示,给定特征规则条数为n=1000~4000且片上存储空间大小MISBF为40Kb、80Kb、120Kb和160Kb,在特征规则条数n为1000的场景中,当索引拆分的比特个数为b=10时,ISBF的平均假阳性访问次数的最小值为0.015;在特征规则条数为2000、3000和4000的场景中,当索引拆分的比特个数为b=6时,ISBF的平均假阳性存储器访问次数的最小值均为0.0389,其中每个并行CBF的存储桶个数与特征规则条数的比值为c1=m/n=20。因此,根据上述理论分析,为了最小化平均假阳性存储器访问次数,本发明的软件模拟实验选择最优化的ISBF参数,即索引拆分的比特个数为b=6,并行CBF的存储桶个数与特征规则条数的比值为c1=20。
图9是删除、插入和查询操作的平均存储器访问次数。如图9(a)所示,当删除100~2000条特征规则时,TriBiCa的平均存储器访问次数为764~23932,SFHT的平均存储器访问次数为1113~23212,ISBF的平均存储器访问次数为200~4000。图9(a)表明,与TriBiCa和SFHT相比,ISBF的删除操作的平均存储器访问次数分别减少了3.8~6倍和5.5~5.8倍。如图9(b)所示,当插入100~2000条特征规则时,TriBiCa的平均存储器访问次数为1629~49863,SFHT的平均存储器访问次数为877~18287,ISBF的平均存储器访问次数为200~4000。图9(b)表明,与TriBiCa和SFHT相比,ISBF的插入操作的平均存储器访问次数分别减少了8.1~12.5倍和4.4~4.6倍。如图9(c)所示,当存储200~4000条特征规则且查询10000条特征规则时,TriBiCa的平均存储器访问次数为840~4104,SFHT的平均存储器访问次数为293~4095,ISBF的平均存储器访问次数为205~4251。图9(c)表明,当存储的特征规则条数为200~2000时,与TriBiCa和SFHT相比,ISBF的查询操作的平均存储器访问次数分别减少了25%~75.5%和0.4%~30%;当存储的特征规则条数大于3000时,ISBF的查询操作的平均存储器访问次数与TriBiCa和SFHT基本相同。
图10是删除、插入和查询操作的平均处理时间。如图10(a)所示,当删除100~2000条特征规则时,TriBiCa的平均处理时间为32~7083ms,SFHT的平均处理时间为147~52102ms,ISBF的平均处理时间为15~684ms。图10(a)表明,与TriBiCa和SFHT相比,ISBF的删除操作的平均处理时间分别减少了2.2~10.4倍和10.1~76.2倍。如图10(b)所示,当插入100~2000条特征规则时,TriBiCa的平均处理时间为93~26894ms,SFHT的平均处理时间为145~52129ms,ISBF的平均处理时间为14~585ms。图10(b)表明,与TriBiCa和SFHT相比,ISBF的插入操作的平均处理时间分别减少了6.5~45.9倍和10.1~89倍。如图10(c)所示,当存储200~4000条特征规则且查询10000条特征规则时,TriBiCa的平均处理时间为1608~4082ms,SFHT的平均处理时间为5508~148920ms,ISBF的平均处理时间为15~22ms。图10(c)表明,与TriBiCa和SFHT相比,ISBF的查询操作的平均处理时间分别减少了73.6~222.7倍和252.3~8126.8倍。
图11是片上和片外存储空间大小。如图11(a)所示,当存储200~4000条特征规则时,TriBiCa的片上存储空间大小为40960~983040比特,SFHT的片上存储空间大小为72000~1440000比特,ISBF的片上存储空间大小为36680~654240比特。图11(a)表明,与TriBiCa和SFHT相比,ISBF的片上存储空间大小分别减少10.4%~41.9%和39.3%~54.6%。如图11(b)所示,当存储200~4000条特征规则时,ISBF与TriBiCa的片外存储空间大小均为200~4000条特征规则,而SFHT的片外存储空间大小为546~11447条特征规则。图11(b)表明,ISBF的片外存储空间大小与TriBiCa基本相同,且比SFHT减少了2.7~2.9倍。
图12是不同参数对假阳性存储器访问次数的影响。如图12(a)所示,当存储的特征规则条数为200~1000条时,与TriBiCa和SFHT相比,ISBF的假阳性存储器访问次数分别减少了25~133倍和2~19倍;当存储的特征规则条数为2000~3000时,ISBF的假阳性存储器访问次数与TriBiCa和SFHT基本相同;当存储的特征规则条数为4000时,TriBiCa与SFHT的假阳性存储器访问次数均约为100,而ISBF的假阳性存储器访问次数快速增至251。图12(a)表明,ISBF的假阳性存储器访问次数随着特征规则条数的增加而增加。如图12(b)所示,当哈希函数个数为k=6时,SFHT的假阳性存储器访问次数最小值为84,即当哈希函数个数为k=ln 2·(m/n),片上CBF的假阳性概率为最小值;当哈希函数个数k从4增至10时,ISBF的假阳性存储器访问次数从130减至16,即减少了约7倍。图12(b)表明,ISBF的假阳性存储器访问次数随着哈希函数个数的增加而减少。如图12(c)所示,当索引拆分的比特位数b从2增至10时,ISBF的假阳性存储器访问次数从7增至1000,即增加了约143倍。图12(c)表明,ISBF的假阳性存储器访问次数随着索引拆分的比特位数的增加而增加。如图12(b)所示,当存储桶个数与特征规则条数的比值c从12增至28时,ISBF的假阳性存储器访问次数从908减至6,即减少了约151倍。图12(b)表明,ISBF的假阳性存储器访问次数随着存储桶个数与特征规则条数的比值的增加而减少。因此,ISBF可调整参数k、b和c,从而减少其假阳性存储器访问次数。
图13是不同参数对片上存储空间大小的影响。如图13(a)所示,当索引拆分的比特位数b为从2增至10时,ISBF的片上存储空间大小从410600比特减至81000比特,即减少了约5倍。图13(a)表明,ISBF的片上存储空间随着索引拆分的比特位数的增加而减少。如图13(b)所示,当存储桶个数与特征规则条数的比值c从12增至28时,ISBF的片上存储空间大小从98536增至228584,即增加了约2倍。图13(b)表明,ISBF的片上存储空间大小随着存储桶个数与特征规则条数的比值的增加而增加。因此,图12和图13表明,ISBF是一种存储空间和处理时间的折衷方法,即可调整参数k、b和c来平衡ISBF的片上存储空间大小和假阳性存储器访问次数。
图14是Snort 2.7中查询操作的平均存储器访问次数和平均处理时间,其中Snort 2.7特征规则集划分为4个子集,即Rule#1、Rule#2、Rule#3和Rule#4,且每个子集包含少量特征字符串相同但攻击类型不同的特征规则。图14(a)表明,与TriBiCa和SFHT相比,ISBF的查询操作的平均存储器访问次数分别减少了8.4%~15.8%和1%~7.2%。图14(b)表明,与TriBiCa和SFHT相比,ISBF的查询操作的平均处理时间分别减少了1.7倍和11~13.6倍。
图15是Snort 2.7中存储空间大小和假阳性存储器访问次数。图15(a)表明,与TriBiCa和SFHT相比,ISBF的片上存储空间大小分别减少20.1%~42.4%和38.3%~54.8%。图15(b)表明,ISBF的片外存储空间大小与TriBiCa基本相同,且比SFHT减少了1.8~1.9倍。图15(c)表明,与TriBiCa和SFHT相比,ISBF的假阳性存储器访问次数分别减少了4.5~9.1倍和1.2~4.5倍。
总之,索引拆分布鲁姆过滤器是一种快速和存储高效的数据包内容过滤方法。实验结果表明:(1)在合成特征规则集的场景中,与TriBiCa和SFHT相比,ISBF在删除操作的平均存储器访问次数上分别减少了3.8~6倍和5.5~5.8倍,在插入操作的平均存储器访问次数上分别减少了8.1~12.5倍和4.4~4.6倍,在查询操作的平均存储器访问次数上与TriBiCa和SFHT基本相同;ISBF在删除操作的平均处理时间上分别减少了2.2~10.4倍和10.1~76.2倍,在插入操作的平均处理时间上分别减少了6.5~45.9倍和10.1~89倍,在查询操作的平均处理时间上分别减少了73.6~222.7倍和252.3~8126.8倍;ISBF在片上存储空间大小上分别减少了10.4%~41.9%和39.3%~54.6%,在片外存储空间大小上与TriBiCa基本相同,且比SFHT减少了2.7~2.9倍。(2)在实际特征规则集的场景中,与TriBiCa和SFHT相比,ISBF在查询操作的平均存储器访问次数上分别减少了8.4%~15.8%和1%~7.2%,在查询操作的平均处理时间上分别减少了1.7倍和11~13.6倍,在假阳性存储器访问次数分别减少了4.5~9.1倍和1.2~4.5倍;ISBF在片上存储空间大小上分别减少20.1%~42.4%和38.3%~54.8%,在片外存储空间大小上与TriBiCa基本相同,且比SFHT减少了1.8~1.9倍。

一种索引拆分布鲁姆过滤器及其插入、删除和查询方法.pdf_第1页
第1页 / 共33页
一种索引拆分布鲁姆过滤器及其插入、删除和查询方法.pdf_第2页
第2页 / 共33页
一种索引拆分布鲁姆过滤器及其插入、删除和查询方法.pdf_第3页
第3页 / 共33页
点击查看更多>>
资源描述

《一种索引拆分布鲁姆过滤器及其插入、删除和查询方法.pdf》由会员分享,可在线阅读,更多相关《一种索引拆分布鲁姆过滤器及其插入、删除和查询方法.pdf(33页珍藏版)》请在专利查询网上搜索。

本发明公开了一种索引拆分布鲁姆过滤器及其插入、删除和查询方法,将特征规则的索引值拆分成多组比特,每组比特采用片上并行CBF表示多个特征规则子集;查询数据包内容时,检查是否在每组并行CBF中,并产生候选特征规则的片外索引值;删除或插入特征规则时,提出了懒惰删除和空缺插入方法,即利用删除位图记录片外特征规则的状态,且不需要调整其他特征规则的片外索引值,从而实现低开销的特征规则更新操作。ISBF是一种快。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1