BM及其改进算法性能对比探究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
BM及其改进算法性能对比探究

BM及其改进算法性能对比探究摘要:模式匹配算法在很多场合都有应用,BM算法是轻量级入侵检测系统SNORT的内置的单模式匹配算法,高速网络环境下,算法的模式匹配效率的高低在很大程度上影响入侵检测系统的性能。该文通过对BM及改进后的两种BM算法进行测试。实验结果表明,改进后的BM算法在实际匹配次数、窗口最大位移量以及跳跃发生的次数上对比BM算法具有很大的优势,有着实用价值。关键词:BM算法;匹配次数;窗口最大位移量 中图分类号:TP301文献标识码:A文章编号:1009-3044(2012)20-4816-03 随着网络数据流量的不断增长,对基于网络数据捕获平台的网络入侵检测系统面临着新的挑战。高速网络环境中,如何有效提高网络入侵检测系统的效率显得尤为重要。传统的linux环境下轻量级snort入侵检测系统中BM模式匹配算法在匹配效率上存在着匹配次数多、匹配失败时最大位移小等缺陷,这些多余的匹配操作将很大程度上影响入侵检测系统的效率。该文通过分析并改进BM及相关算法,并进行了实验,结果表明改进后的BM算法有着在小字节数据包的网络环境中,满足了在高速链路下网络入侵检测系统的要求。 1.1 BM算法[1] Bm单模匹配算法中使用字符串和模式串从左到右对齐,进行字符匹配时窗口向右滑动,匹配过程从右到左进行,匹配算法在匹配的过程中,取Skip(x)与Shift(x)中的较大者作为跳跃的距离。BM算法在执行时按照两个步骤进行:初始化处理阶段以及查找阶段。初始化处理时主要进行Badchar()和Goodsuffix()两个偏移量计算。预处理时间复杂度为O(m+s),查找时的时间复杂度为O(m·n),最好情况下的时间复杂度为O(n/m),最坏情况下时间复杂度为O(m·n)。两个偏移量的计算机流程是:Badchar()函数主要计算字符串中单个字符的偏移量,假设其中的一个字符在模式串中不止一次出现,那么它的最右边出现的偏移量是决定性的。GoodSuffix偏移量主要是计算模式串中的后缀匹配成功时指针可以向右移动的偏移量,其算法描述如下: 设字符串长度为n,模式串长度为m,坏字符和好后缀匹配字串滑动距离用skip(x)和shift(x)表示,x表示在P串中最右边的位置,dist=max{skip(x),shift(x)} 字符串T和模式串P从左到右对齐,匹配从模式串最右边的第一个字符开始;搜索P串中是否含有与P串中对应的T串的字符,如果没有,将P串向右滑动m的长度,如果包含有该字符,则启动Skip搜索,并计算所需要滑动的距离,然后滑动相应的距离,其中: ELSE IF(模式串末字符比较成功) JUMP(移动距离)=模式长度-DoubleChar[下一字符]-l; ELSE JUMP(移动距离)=Max(末字符求得跳转距离,下—字符求得跳转距离);i=新窗口匹配位置; j=模式串长度-l;} 匹配失败,返回-1;} BM算法由sonrt.C文件获得,C语言编写主程序中调用这3个算法,编译主程序依次进行算法匹配测试,算法对比测试数据使用网络小说英文哈利波特HarryPotter.txt,从中截取文本长度10000个字符,随机取模式串50个,长度在3字符-20个字符。算法比较次数统计通过在程序中增加变量实现,算法匹配时间使用GetTickCount( )函数,单位ms。三种算法分别在字符比较次数(见图1)、算法运行时间(见图2)对比测试结果如下图所示: BM模式匹配算法和BM模式匹配算法1以及BM模式匹配算法2的最大位移量分别是m,m+1,m+1,在最大位移量上,相差不大,模式匹配算法的时间复杂度分别是O(n/m)、O(n/m+1)、O(n/m+1)。 评价一个模式匹配算法的优劣主要的指标有字符匹配次数、算法的运行时间等。其中在字符比较次数上,BM改进算法2比BM算法在在各种长度的模式串中字符比较次数平均减少了25%,BM改进算法2比BM改进算法1在各种长度的模式串中字符比较次数平均减少了18%。在算法运行时间上,BM改进算法2比BM算法在各种长度的模式串中算法运行时间平均减少了37%,BM改进算法2比BM改进算法1在各种长度的模式串中算法运行时间平均减少了29.6%。 综上所述由于在不增加空间的情况下,由于字符比较次数的减少,同时在运行时间上也有较明显优势,总体上来说,BM改进算法2比BM算法和BM改进算法1的执行效率都高,加快了模式匹配的速度。同时也说明改进后的BM算法在各种应用场合有着良好的性能。 [1]程玉青,梅登华.入侵检测系统中BM模式匹配算法的改进[J].计算机技术与发展, 2009,19(3):120-121. [2]周文秋,吕岳.一

文档评论(0)

docman126 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7042123103000003

1亿VIP精品文档

相关文档