(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(10)申请公布号 CN 102685098 A
(43)申请公布日 2012.09.19
(21)申请号 CN201210045060.6
(22)申请日 2012.02.24
(71)申请人 华南理工大学
    地址 510640 广东省广州市天河区五山路381号
(72)发明人 齐德昱 林伟伟 李剑
(74)专利代理机构 广州市华学知识产权代理有限公司
    代理人 杨晓松
(51)Int.CI
      H04L29/06
      H04L12/56
                                                                  权利要求说明书 说明书 幅图
(54)发明名称
      一种乱序数据包流免重组多模式匹配方法
正则匹配原理
(57)摘要
      本发明公开了一种乱序数据包流免重组多模式匹配方法,方法包括S1:采用KMP算法对模式进行了预处理;S2:在对模式进行了预处理后,对乱序数据包首尾的边缘字节进行扫描;S3:利用区间树保存特征码片断并进行模式匹配。本发明检测乱序数据包边缘的字节序列以发现跨数据包的模式,并以正则表达式作为模式语言,进一步减少了需要存贮的边缘模式碎片的长度,显著地降低了存储空间要求;以区间树索引数据包边缘模式碎片,实现跨数据包的多模式匹配和深度检测,加快了乱序碎片的处理速度。在不丢弃、不缓冲乱序数据包的、避免“协议落地”的同时,实现了按数据包的物理到达顺序进行快速的跨数据包深度检测。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.一种乱序数据包流免重组多模式匹配方法,其特征在于,包括以下步骤:           
S1:采用KMP算法对模式进行了预处理;           
S2:在对模式进行了预处理后,对乱序数据包首尾的边缘字节进行扫描;           
S3:利用区间树保存特征码片断并进行模式匹配。           
2.根据权利要求1所述的乱序数据包流免重组多模式匹配方法,其特征在            于,步骤S1中,所述预处理为检测数据包首位两端是否存在特征码片段,并针            对数据包前端部分和后端部分分别进行预处理,其具体步骤如下:           
S11:扫描数据包前端部分时需要从右往左;           
S12:扫描末端部分时则相反,即从左往右。           
3.根据权利要求1所述的乱序数据包流免重组多模式匹配方法,其特征在            于,所述步骤S2扫描边缘字节包括下述具体步骤:           
S21:针对数据包前端部分进行扫描时,扫描的长度为模式长度-1,从右往            左扫描,当扫描到数据包第一个字母且此时模式的已匹配数不为0,那么就代表            发现了特征码的片断,并马上利用区间树把特征码的类型和长度记录下来;           
S22:针对数据包的末端部分进行扫描时,要扫描的部分就是MWM算法没有            处理的末端部分;当扫描到数据包的最后一个字母且此时模式的已匹配数不为            0,那么就利用区间树把特征码的类型和长度记录下来。           
4.根据权利要求1所述的乱序数据包流免重组多模式匹配方法,其特征在            于,步骤S3中,所述区间树是一种二叉搜索树,它将一个区间划分成一些单元            区间,每个单元区间对应线段树中的一个叶结点;区间树的每一个节点都是代            表一段区间,并且针对具体的情况为每一区间加上参数;所述区间
树用于保存            数据包可能含有的病毒特征码片断的信息,在插入操作时,根据数据包对应的            区间的范围和它所属的TCP流插入到对应的区间树里面。           
5.根据权利要求1所述的乱序数据包流免重组多模式匹配方法,其特征在            于,所述步骤S3包括下述具体步骤:           
S31:在实际的扫描中为每一个TCP连接建立一个区间树,用数据包包头的            段号作为一个区间树的区间边界,并为每一个结点的左右区间边界加入一个参            数S,这个参数S用来记录扫描出来的特征码片断的长度;           
S32:在扫描完一个数据包,就根据数据包对应的段号的范围和它所属的TCP                            流插入到对应的区间树里面,并记录参数S;           
S33:比较数据包特征码片段的长度相加的结果与病毒特征码的长度,如果            相等,则表示该TCP流有病毒,发出警报,如果数据包特征码片段的长度相加            的结果与病毒特征码的长度不相等,则不做任何提示;           
S34:为了减少内存的消耗,设定一个时间限制,每隔一定时间,就释放区            间树一部分结点;如果
该TCP中没有发现病毒特征码,就释放该TCP流的所有空            间。           

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。