基于中间点划分无冲突哈希的高速包处理

时间:2024-02-27 点赞:50294 浏览:102691 作者原创标记本站原创

本文是一篇嵌入式论文范文,关于嵌入式学年毕业论文,关于基于中间点划分无冲突哈希的高速包处理相关毕业论文的格式范文。适合嵌入式及函数及关键字方面的的大学硕士和本科毕业论文以及嵌入式相关开题报告范文和职称论文写作参考文献资料下载。

摘 要:通过在高速片上存储器上存储所有的攻击特征,实现对数据包的高速检测.针对有限的片上存储器空间,提出一种新的基于中间点划分无冲突哈希函数的trie树结构,将攻击特征串平均分配到trie树每层的多个组中,实现对片上存储器有效的控制.通过在同一个芯片中采用流水并行方式执行查询操作,获得更高的吞吐量.存储中间点的空间复杂度为O(n),哈希表的构建时间随攻击特征数量线性增长.实验结果表明:该方法降低了片上存储空间需求,在片上存储器只需执行一次即可完成特征匹配操作.

关 键 词:高速包处理,无冲突哈希,中间点划分,trie树,片上存储

中图分类号:TP393.06,TP311.12文献标志码:A

High.speedpacketprocessingbynon.collisionhashfunctionsbasedon

middle.pointpartition

ZHANGMo.hua1*,LIGe2

1.SchoolofComputerandInformationEngineering,HenanUniversityofEconomicsandLaws,ZhengzhouHenan450000,China

,

2.DepartmentofInformationEngineer,ConservancyVocationalInstituteofNorthChinaInstituteofWaterConservancyandHydroelectricPower,ZhengzhouHenan450000,China

Abstract:

High.speedpacketinspectioncanbeachievedthroughstoringattacksignaturesonthehigh.speedon.chipmemory.Concerningthelimitedon.chipmemory,thispaperproposesanewtriestructurewithnon.collisionhashfunctionsbasedonmiddle.pointpartition.Thealgorithmevenlypartitionesattacksignaturesintomutiplegroupsateachlayerintrietreetoachievetheeffectivecontrolofmemory.Thetrie.treestructurecanbeimplementedonasinglechipandperformqueryoperationsbypipeliningandparalleli,thusachieveshigherthroughput.Thespaceplexofstoringmiddle.pointisO(n)andtheconstructiontimeofhashtableislinearlygrowingwiththenumberofattacksignaturesTheexperimentalresultsshowthatthenewstructuredecreasesthedemandofon.chipmemoryandcanfacilitateaccesstotheattacksignatureontheon.chipmemorywhileallowingtoperformthesignatureatchingoperationsonlyonce.


High.speedpacketinspectioncanbeachievedthroughstoringattacksignaturesonthehigh.speedon.chipmemory.Concerningthelimitedon.chipmemory,thispaperproposedanewtriestructurewithnon.collisionhashfunctionsbasedonmiddle.pointpartition.Thealgorithmevenlypartitionedattacksignaturesintomultiplegroupsateachlayerintrietreetoachievetheeffectivecontrolofmemory.Thetrie.treestructurecanbeimplementedonasinglechipandperformqueryoperationsbypipeliningandparalleli,thusachievinghigherthroughput.Thespaceplexofstoringmiddle.pointisO(n)andtheconstructiontimeofhashtableislinearlygrowingwiththenumberofattacksignatures.Theexperimentalresultsshowthatthenewstructuredecreasesthedemandofon.chipmemoryandcanfacilitateaccesstotheattacksignatureontheon.chipmemorywhileallowingtoperformthesignatureatchingoperationsonlyonce.

Keywords:

high.speedpacketprocessing,non.collisionhash,middle.pointpartition,trietree,on.chipmemory

0引言

网络入侵检测技术是网络攻击防范的主要手段,数据包检测是其核心.数据包检测不仅检查数据包头部信息,而且要检查数据包有效载荷[1].采用数据包预处理方法,依据数据包头部字段对其进行分类和查找,采用特征匹配算法,将每个数据包内容与一组预定义的特征串进行匹配.本质上来说,包检测是一种数据包内容过滤技术,不仅应用于网络入侵检测系统中,而且应用于网络取证系统、P2P流量识别以及基于上下文的流量计费等[2].随着网络带宽和业务流量的迅猛增长,包处理正面临如何满足高速数据包处理的时间和空间需求的挑战.包处理通常部署在高速路由器的关键数据路径上,检查海量高速数据包,与大量预定义的规则进行匹配.由于基于软件的包处理难以适应高速数据包处理,当前研究者采用现代嵌入式存储器技术,例如


【确认全称是否正确】

专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现场可编程门阵列(Field.ProgrammableGateArray,FPGA)、网络处理器(NetworkProcessor,NP)和三重内容可寻址存储器(TernaryContentAddressableMemory,TCAM)等,

设计和实现了多种基于硬件的包处理技术,支持10Gbps以上的线速数据包处理[3].这些嵌入式存储器技术通常采用分层存储器体系结构,即由快速片上存储器和大容量片外存储器组成.基于硬件的方法通常被分为片外储器和片上存储器两种架构.考虑速度第一,片外存储架构并没有片上方法那么吸引人.片外架构的主要缺点在于需要与芯片上的匹配引擎进行物理连接.即使外部存储速度显著增加,但是仍然会妨碍引擎的并行性.这样,片外方法对于高速线速操作并不是很合适.例如片上SRAM存储的访问时间为1~2ns,但是其存储空间受限,难以存储大量元素;而片外存储器提供更大容量存储空间,适合于存储大量元素,但是其查找速度较慢,例如片外DRAM的访问时间在60ns左右[4].因此,研究设计一种快速和存储高效的数据包预处理方法,不仅减少片外存储器访问次数,而且降低其存储空间需求,是高速数据包处理的关键所在.

在包检测研究方面,当前主要着眼于两个方面提高检测性能:1)设计基于硬件的特征匹配算法,减少单个特征匹配的处理时间和存储空间需求;2)设计基于硬件的Hash表等数据包预处理方法,减少片外存储器访问次数和特征匹配次数[4].王志佳等[5]提出了一种改进的基于确定有限自动机的深度包检测算法,该算法在牺牲少量运算时间的情况下,减少算法所需的运算空间.徐乾等[6]提出一种基于确定的有穷状态自动机的正则表达式压缩算法,采用选择性分群算法大幅度减少了状态机的个数,降低了包检测匹配算法的复杂性.Smith等[7]提出了XFA(eXtendedFiniteAutomaton)模型,在状态上增加辅助变量及其操作指令,消除确定性有限自动机状态空间爆炸问题.Lu等[8]提出了多字符并行处理的Aho.Corasick算法,通过并行操作提高Aho.Corasick算法的吞吐量,并最小化其存储空间需求.总的来说,由于软件包检测系统运行在通用处理器上,不适合高速网络,很难在当今线速环境下完成检测.为了满足高速网络的需要,本文重点关注基于硬件的方法.Tan等[9]使用一种小型状态机来改进存储需求以适应Snort的特征库,使用了0.4MB的存储空间,采用ASIC实现,可以运行在10Gbps网络下.潘志浩等人提出了结合专用网络处理器(NP)的嵌入式深度包检测解决方案[10].Jung[11]给出了文献[9]的FPGA的实现,获取了更低的吞吐率,但是存储空间更大.Hua等[12]用一次扫描可变步长的多个字符,提高字符串匹配的吞吐量,并减少其存储空间需求;Papadopoulos[13]使用了稀疏哈希表来存储特征串,尽管改进了存储空间,但存储利用率还是比较低.一些研究者尝试使用外部存储结构TCAM及SRAM,但是TCAM比较昂贵,而SRAM则受限于速度.Sourdis等采用一种混合的方法[14],使用可配置的电路和片上存储器,采用无冲突哈希的方法,该方法与本文的方法类似,但与本文方法不同的是,该方法需要进行重配置,并且存储利用率低,因为其使用了无冲突哈希,而不是最小无冲突哈希.Lu等[15]提供了一种空间复杂度为O(n)的最小无冲突哈希方法,具有较快的构建时间,但这一方法需要复杂的地址方案,而且要求有附加的逻辑来计算哈希表的地址.

本文研究目标是提供一种低成本和节省空间的最小无冲突哈希函数,称之为中间点划分哈希,即易于构建,又适合在高速硬件平台下实现.该算法基于trie树,算法渐近地决定关键字集合中哪个关键字与数据包进行比较.算法开始从trie树的根节点开始将所有关键字集合划分为两个相等大小的组,每个组中有n/2个关键字.新划分的组被置于根节点的左右孩子节点中,每个新组继续被划分成两个相同大小的组(每个组有n/4个关键字).这种划分迭代重复执行,直至n个节点为止,分别对应于n个关键字.为了查询关键字,算法遍历整个trie树,直到在某个叶子节点中找到候选关键字为止.当找到单个关键字,只需要进行一次匹配(即只比较查询关键字与候选关键字),就可以决定被查询的关键字是否实际与候选关键字相同.

1最小无冲突哈希函数

定义1

最小无冲突哈希函数.对于具有n个元素的关键字集合S,一个无冲突的哈希函数f将S中每个关键字映射到值域[0,m-1]中的各不相同的唯一的数值(m≥n).最小无冲突哈希函数指的是满足m等于n的无冲突哈希函数.

根据上述定义,函数f是最小无冲突哈希函数,当j,k∈S时,如果f(j)等于f(k),则必然是j等于k,不存在j≠k而f(j)等于f(k)的情况.最小无冲突哈希函数保证仅有一个关键字被保存在某一个哈希位置,这样只需要执行一次匹配操作就可以完成查询,换句话说是没有哈希冲突的.通过将哈希表的大小设置为与关键字的数量一致,可以达到最小的哈希表大小.值得注意的是,除了保存关键字外,哈希函数需要附加的空间来存储其自身.

定义2

二分函数.对于具有n个关键字的集合S,S等于{sg1,sg2,等,sgn},首先定义一个二分函数BF.该函数定义如下:

BFn(e,S)等于

0,e∈Sl,Sl等于{sg1,等,sgn/2}

1,e∈Sr,Sr等于{sgn/2+1,等,sgn}

(1)

其中e表示待查询的关键字.如果元素e属于左分组Sl,令BFn(e,S)等于0;如果e属于右

本文是一篇嵌入式论文范文,关于嵌入式学年毕业论文,关于基于中间点划分无冲突哈希的高速包处理相关毕业论文的格式范文。适合嵌入式及函数及关键字方面的的大学硕士和本科毕业论文以及嵌入式相关开题报告范文和职称论文写作参考文献资料下载。

分组Sr,则令BFn(e,S)等于1.这样查询问题就变为查询元素隶属于左分组还是右分组,而不是具体的位置查询.Sl与Sr是S集合中两个互不相交的子集.当确定被查询关键字隶属于组Sl还是Sr后,可以在一个更小的具有n/4个关键字的组中进行查找,集合中包括被查询的关键字,通过应用BFn/2于被查询的关键字上.例如,如果BFn(e,S)等于0,即e∈Sl,可以应用BFn/2(e,Sl)在包含e有n/4个关键字的组中寻找.上述操作重复执行,直到结果组大小为1为止,即直到应用BF2为止,它指出一个关键字集合可以匹配被查询关键字.定义一个trie树,节点Nl,i是层l中第i个子集,大小n/2l(【i等于1,等,2l,l等于0,等,lb(n)-1).l层每个节点使用二分函数BFln/2,有两个孩子节点,每个孩子节点具有n/2l+1个关键字.式(2)定义一个函数Hn(e)为lbn个二分函数{BFn,BFn/2,BFn/4,等,BF2}的连接.

Hn(e,S)等于BFn&BFn/2&BFn/4等&BF2

(2)

其中&符号是位连接符.令Hn[i]表示Hn的第i个位.


定理1

函数Hn(e,S)定义了有n个关键字集合S的最小无冲突哈希函数.

证明

BFln/2将层l的节点的关键字划分为两个不相交的子集,Sl和Sr.sgl∈Sl,Hn(l)等于0,sgr∈Sr,Hn(l)等于1.Hn(sgl,S)与Hn(sgr,S)至少有一个位是不同的(即在Hn[l]处).这样不会有sgl(sgl∈Sl)与任何sgr(sgr∈Sr)冲突.这一原理可以迭代地应用到从根节点开始的所有节点中,直到到达最后一层ll(即lbn-1).对于两个在层ll的两个不同节点中的特征串sgi和sgj,Hn(sgi,S)和Hn(sgj,S)至少有一位是不同的,这样不会有两个不同节点的两个不同的特征串发生冲突.在层ll中,BF2划分一个节点到两个不相交的集合中,每个只有一个特征串,因为Hn[ll]对于这两个特征串是不同的.在层ll中相同节点中的特征串是没有冲突的.这样Hn是一个无冲突哈希函数.Hn的输出有lbn个位.因为有lbn个函数.这样,Hn的范围是[0..n-1],所以Hn是集合S的最小无冲突哈希函数.

推理1

在具有n个特征串的集合S上构建一个最小无冲突哈希函数等同于对集合S迭代地构建二分函数{BFn,BFn/2,等,BF2}.

2构建最小无冲突哈希函数

假设一个无冲突哈希函数H,取值范围在[0..m-1],用来存储和查询n个特征串,具有m个桶(m≥n),并且没有冲突.每个特征串根据哈希函数值被插入到对应的存储桶中.在所有特征串被存储后,按照存储单元从左到右递增地次序给每个特征串赋一个序号.例如第一个关键是sg1,最后一个是sgn.图1示意有8个关键字,使用无冲突哈希函数H,插入到11个桶中.在查询关键字时计算H的值,读取对应的存储桶编号.

5结语

包检测是网络入侵检测系统的核心操作.本文提出基于中间点划分,实现一种节省存储适合硬件实现的最小无冲突哈希函数的构建.中间点哈希提供了一种新的具有较少空间的节点结构,适合于在将入侵特征信息以哈希表的方式存储于片上存储器中,提高了查找匹配速度.理论与实验证明,利用中间点构建最小无冲突哈希函数,存储中间点的空间复杂度在O(n),整个中间点哈希表的构建时间随关键字呈线性增长.该方法可广泛应用于IP查找、数据包分类、深度包检测和流量监控、分析等高速数据包处理中.

相关论文

会计工作与税法冲突的化解

本文是一篇会计工作论文范文,会计工作方面有关研究生毕业论文开题报告,关于会计工作与税法冲突的化解相关在职毕业论文范文。适合会计工作及。

中间性保险的重复赔偿问题

此文是一篇中间性论文范文,中间性类论文范例,与中间性保险的重复赔偿问题相关毕业论文参考文献格式。适合不知如何写中间性及被保险人及保险。

民间法与国家法的冲突与整合

本文关于社会关系及法律制度及民间方面的免费优秀学术论文范文,社会关系方面论文范文检索,与民间法与国家法的冲突与整合相关毕业论文参考。

高校管理权与学生权利冲突衡平

本文关于大学生及法律法规及教育管理方面的免费优秀学术论文范文,大学生相关论文范文,与高校管理权与学生权利冲突衡平相关毕业论文开题报。

参与的困境:2023年的社会冲突

为您写环境问题毕业论文和职称论文提供关于环境问题相关毕业论文格式范文,与参与的困境:2016年的社会冲突相关论文范文集,包括关于环境问题。

巴基斯坦政治宠儿希娜

关于管理学及农业发展及持续发展方面的免费优秀学术论文范文,关于管理学思想政治论文范文,关于巴基斯坦政治宠儿希娜相关论文范文,对写作。