网络处理模式匹算法研究.docVIP

  • 2
  • 0
  • 约3.14千字
  • 约 7页
  • 2018-07-05 发布于福建
  • 举报
网络处理模式匹算法研究

网络处理模式匹配算法研究   摘要:主要从多个角度研究了经典的15种单模式和7种多模式匹配算法,并以可编程网络处理器为测试平台对其中的5种单模式和4种多模式匹配算法分别在匹配时间、占用存储空间以及预处理时间方面进行了性能测试。根据测试得出了各自测试中的最优算法。 中国论文网 /4/viewhtm  关键词:模式匹配; 包分类; 网络处理器   中图分类号:TP393文献标志码:A   文章编号:1001-3695(2007)12-0310-03      随着Internet的飞速发展,接入网络系统的构件数量不断增多,对传输速度和服务质量的需求也不断提升。其中有三个关键问题一直制约着网络性能,即网络连接速度、高速的路由交换和数据包转发速率。数据包转发已成为提高线速、解决串行数据流处理问题的一个难点。提高数据包转发速率的核心技术是包分类技术。包分类是按照指定的规则将数据包归类为不同的数据流,从而得到与数据流相对应的处理规则。当网络数据包到达时,首先要对包进行分类,查询到相应的处理规则;然后完成相应的处理;最后转发。不难看出,包分类技术中,采用何种规则或模式匹配算法是提高数据包转发速率的关键。   通常,高效的模式匹配算法可以从时间复杂度、空间复杂度、更新复杂度、支持范围匹配、扩展性等几个方面来评价查找算法的优越性。对于模式匹配算法,期望时间复杂度、空间复杂度和更新复杂度越小越好。在许多情况下,分类算法无法使全部性能达到最优,而是应该根据算法的使用场合加以折中。      1模式匹配算法      1.1概述   模式匹配算法就是在主串(text,??T[0..n??-1])中搜索是否出现模式串(pattern,??P={P1[0..m??1-1]..P??d[0..m??d-1]})的一种算法。主串和模式串都属于有限字符集σ,模式个数为d。??模式匹配算法可以按多种方式进行分类。根据模式串的匹配方式可分为精确匹配、模糊匹配和范围匹配。同时Pankaj Gupta等人从算法的角度给出了经典的分类方法[1~3]。他们将模式匹配算法分为BS(basic structure algorithm,基本数据结构算法)、GA(geometric algorithm,几何算法)、HA(heuristics algorithm,启发式算法)和HW(hardware-based algorithm,硬件算法)四类。本文由于要对大多数常用的算法在性能上进行比较,故考虑到可比性,将从可匹配的维数上对单模式匹配算法与多模式算法进行分类。   1.2单模式匹配算法   单模式匹配算法就是在一趟扫描主串的过程中只对一个模式串进行匹配。由于它相对复杂度低、执行效率高的优点,再加之对它的研究也开展得比较早,技术相对成熟,如经典的KMP、BM算法以及后来对它们的改进算法,在一些领域如流量计费、搜索引擎、病毒特征码匹配都有很好的应用。根据文献[4]对常用的单模式匹配算法进行了分析,如表1所示。   由表1可以得出,常用的单模式匹配算法所采用的思想主要有五种,即基于字符比较(based-on character comparasion)、基于自动机(based-on automaton)、基于hash查表(based-on hash searching)、基于位逻辑运算(based-on bitwise)和基于Tries树型机构搜索(based-on Tries searching)。那么,究竟哪种算法有最好的执行效率,可以绝对地由时间复杂度、空间复杂度最小来判断吗?这里时间复杂度与空间复杂度只是一个度量的范围,表示受几个参数影响,并不是一个具体值。   1.3多模式匹配算法   与单模式匹配算法相比,多模式匹配算法的优势在于一趟遍历可以对多个模式进行匹配。对于单模式匹配算法来说,如果要匹配多个模式,那么有几个模式就需要几趟遍历,这样效率太低。多模式匹配算法的产生大大提高了多模式匹配的效率。当然多模式匹配算法也适用于单模式的情况。表2给出了常用多模式匹配算法分析。      由图2~4可以看出,各算法的测试指标在规则长度增长的情况下均呈递增趋势,但也可以看出在规则快速增长时BM算法的增长较其他算法缓慢。同时在32位规则匹配上MRT算法比较有优势,它们的预处理时间也相对较快。因此可以得出在不太在意存储器空间的情况下,BM算法是适合作为优先考虑的算法。MRT算法适合对IP地址或MAC地址作快速的匹配。至于对IPv6地址,BM算法则比较适合。   对于多模式匹配算法的测试,将采用Snort v2.4.3系统的规则集。Snort是公认的权威入侵检测系统,把它的规则集用做测试多模式匹配算法有一定的普遍性。测试数据与单模式匹配测试一样。参加测试的算法为AC-

文档评论(0)

1亿VIP精品文档

相关文档