一种深度报文检测方法和装置的制作方法

文档序号:7943746阅读:316来源:国知局
专利名称:一种深度报文检测方法和装置的制作方法
技术领域
本发明涉及计算机通信技术与信息安全领域,尤其涉及一种网络中各种 报文内容的深度检测方法和装置。
背景技术
随着互联网应用的迅速发展,计算机网络在经济和生活的各个领域正在 迅速普及,信息的获取、共享和传播更加方便。互联网具有交互性、全球性、 匿名性、开放性、零成本性等特点,也正是这些特点使得互联网在为人们提 供前所未有的资源、交流信息的便利与自由的同时,另一方面也带来了一系
列的问题,如日益猖獗的网络病毒,个人隐私、商业秘密的泄漏,不良信 息的迅速传播等。同时,当前的网络架构存在着很多的安全漏洞,使得网络 黑客可以很轻易地把恶意攻击包加上有效的目的IP和端口地址,然后送达到 目的主机而影响其正常工作,进而通过主机迅速感染成千上万的与之相连的 主机,引起网络阻塞,服务中断,造成巨大的经济损失。如果不能对携带这 些信息的IP分组数据进行有效检测和控制,则为人们带来便利与自由的网络 将随时都可能瘫痪。现有的对IP分组数据的检测与控制,大都涉及IP报文分类技术;其中, IP报文分类技术包含对IP报文的两级分类第一级是针对IP报文头部的初 级分类,即针对固定位置的信息匹配;第二级是针对IP报文负载的深度分类, 即针对非固定位置的信息匹配;其中,固定位置的报文分类中报文长度一般 是固定不变的,例如,Ipv4的IP地址是32bit,如此只需要将固定长度设定 为TCAM (Ternary Content Addressable Memory,三重内容寻址存4渚器)的 位宽即可;而非固定位置的信息匹配却不然,因为负载的长度是随才几的,所 以TCAM位宽的选取就相对复杂一些。由于TCAM的位宽可以设置, 一种解 决方案是将所有模式中的最长的长度设置为TCAM的位宽,然后在短模式后 面添加"X"无关项,这样可以直接匹配所有的模式,但是TCAM的容量有限,对于整个系统来讲,TCAM的容量是必须充分利用的资源,而这种匹配 方法由于过多添加了无关项,对于类似ClamAV这样的模式长度差异较大的 入侵检测系统来说,会造成TCAM空间的极大浪费,因此这是一种非常不经 济的匹配方式。
图1中所示是另一种传统的解决方案,首先将长字符串模式以TCAM位 宽为单位进行切割,然后按序存放于TCAM表项之中,最前面的表项称为前 缀,其余称为后缀。同时,在系统内存中记录表项属性和表项之间的关系, 前端工作完成之后进行查表操作,在一连串的比特流中提取出固定长度的匹 配关键字,查表结束后按照被查找的数据包的内容进行bit移位匹配,当进行 完一次查表^t喿作后将数据包向后移动一位继续匹配,移位操:作如图2所示, 每次匹配的长度等于TCAM的位宽,这样就不会漏过每个模式。如果查表没 有命中则继续移位重复该操作,如果命中则在系统内存中记录下命中的信息, 因为命中一次查表只能说明模式中有部分被命中,而不是整个的模式都被命 中,因此内存中所记录的只是部分命中列表。部分命中之后继续进行前面的 操作,知道移位的位置挪到相应的后缀位置,如果后缀匹配未命中则抛弃原
来的记录,如果命中则到内存表中查询该组合是否属于同一模式,如果不属 于同一模式的前缀与后缀则进行抛弃行为,如果是同一个模式则判断该模式 是否已经匹配完毕,继续前述操作。但当速率提高时,这种采用逐位匹配提 取关键字方法,会造成效率极端低下,bit流的长度决定了匹配的次数,若bit 流的长度很长,造成本报文的检测时间过长,影响了报文检测速度,导致后 续报文无法实施处理,产生丟包,可能造成重大信息检测遗漏,使整个检测 过程前功尽弃。

发明内容
有鉴于此,本发明解决的是基于逐位的深度报文检测方法容易造成检测 时间过长进而影响报文检测速度的问题。
为解决上述问题,本发明提供的技术方案如下一种深度纟艮文4企测方法,包括
A、 预设定长的匹配框,当待匹配关键字的长度大于所述预设的定长匹配 框时,将该待匹配关键字分割为长模式匹配关键字和短模式匹配关键字,并 分别存储于不同的TCAM中;
B、 检测时将提取到的查表关键字送入所述不同的TCAM中进行查表, 如果该提取到的查表关键字与TCAM中存储的匹配关键字匹配,则确定当前 数据流为匹配数据流,完成^r测。
优选的,所述步骤B包括
B1、通过逐位方式从当前待测数据流中提取查表关键字,将查表关键字 同时送入长模式TCAM和短模式TCAM中进行查表;
B2、如果长模式TCAM中的关键字匹配成功,则跳过所述定长匹配框的 长度,继续提取查表关键字进行查表,直到短模式TCAM中的关键字匹配成 功,则确定当前待测数据流为长模式匹配数据流;
B3、如果长模式TCAM中的关键字匹配失败,而短模式TCAM中的关键 字匹配成功,则确定当前待测数据流为短模式匹配数据流。
优选的,该方法还包括如果待匹配关键字的长度小于所述预设的定长 匹配框,则直接利用逐位方式从短模式匹配TCAM中查表进行数据流检测。
优选的,所述查表关键字的长度与所述定长匹配框的长度相同。
优选的,所述长模式匹配关键字的长度与预设的定长匹配框长度相同。
优选的,所述定长匹配框的长度为576bit。
一种深度报文检测装置,包括分割单元和匹配单元;其中,所述分割 单元用于当待匹配关键字的长度大于所述预设的定长匹配框时,将该待匹配 关键字分割为长模式匹配关键字和短模式匹配关键字,并分别存储于不同的 TCAM中;
所述匹配单元用于在检测时将提取到的查表关键字送入所述不同的 TCAM中进行查表,如果该提取到的查表关键字与TCAM中存储的匹配关键字匹配,则确定当前数据流为匹配数据流。
优选的,所述匹配单元包括提取模块、第一查表模块和第二查表模块; 其中,所述提取模块用于通过逐位方式从当前待测数据流中提取查表关键字, 并通知给所述第一查表模块和第二查表模块;
所述第一查表模块用于利用所述查表关键字在长模式TCAM中进行查 表,如果长模式TCAM中的关键字匹配成功,则跳过所述定长匹配框的长度, 继续提取查表关键字进行查表,直到接收到所述第二查表模块的同之后,确 定当前待测数据流为长模式匹配数据流;如果长模式TCAM中的关键字匹配 失败,则通知所述第二查表模块;
所述第二查表模块用于利用所述查表关键字在短模式TCAM中进行查 表,当短模式TCAM中的关键字匹配成功,则通知所述第一查表模块;如果 此时接收到所述第一查表模块的通知,则确定当前待测数据流为短模式匹配 数据流。
优选的,该装置还包括判断单元;所述判断单元用于判断待匹配关键 字的长度是否小于所述预设的定长匹配框,如果是,则直接利用逐位方式从 短模式匹配TCAM中查表进行数据流检测;否则,通知所述分割单元。
可以看出,采用本发明的方法和装置,通过将预先定义好的报文特征, 按照匹配模式框不同匹配模式,并分别存储于不同的TCAM中;开始时通过 逐位方式从数据流中提出匹配关键字,再送入TCAM进行查表操作,直至关 键字查中,此时若为长模式查中,则不再进行逐位移,而时跳跃一个匹配框 长度,并在此基础上继续进行关键字的提出和查表,若长模式关键字匹配继 续命中,则继续跳跃,直至最后一次只有短模式查中时,确定整个关键字已 传送完;利用带匹配特征的连续性,在首次查中后,后续查表直接采用跳跃 模式,避免了逐位查找带来的冗长查找时间,从而在保证精度的前提下,提 高了匹配速度。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中传统的匹配流程示意图; 图2是现有技术中循环移位示意图; 图3是本发明实施例1的方法流程示意图; 图4是本发明实施例1中关键字分割的示意图; 图5是是本发明实施例2的装置结构示意图。
具体实施例方式
本发明的基本思想在于将预先定义好的报文特征,按照匹配模式框不同 匹配模式,并分别存储于不同的TCAM中;开始时通过逐位方式从数据流中 提出匹配关4建字,再送入TCAM进行查表4乘作,直至关#:字查中,此时若为 长模式查中,则不再进行逐位移,而时跳跃一个匹配框长度,并在此基础上 继续进行关键字的提出和查表,若长模式关键字匹配继续命中,则继续跳跃, 直至最后一次只有短模式查中时,确定整个关键字已传送完;利用带匹配特 征的连续性,在首次查中后,后续查表直接采用跳跃模式,避免了逐位查找 带来的冗长查找时间,从而在保证精度的前提下,提高了匹配速度。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述;显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有《故 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例1 l是供了实现TDD多载波系统中数据传输的方法,如图3 所示,该方法包凌舌
步骤301:预设定长的匹配框,当待匹配关键字的长度大于所述预设的定长匹配框时,将该待匹配关键字分割为长模式匹配关键字和短模式匹配关
键字,并分别存储于不同的TCAM中;
具体的,利用待匹配关键字之间的连续性,预先设定定长的匹配框,将 待匹配的关键字进行分割;现在技术中各数据包的关键字信息长度不一,因 而为了获取详细的报文特征信息,就必须要求检测越来越大的报文关键字, 同时长关键字的比重也越来越大,因此对长关键字首先要进行分割;在分割 过程中,分割得到的靠前的匹配模式都为定长格式,及长度与预设的定长匹 配框长度相同,当然并不局限于此,其也可不等于定长匹配框长度,在此不 再赘述;而最后部分的匹配模式大小不定,但必然小于等于设定的定长的分 割长度;在本实施例中,定义分割后定长内容分割的为长模式匹配关键字, 而最后部分小于定长匹配长短的分割定义为短模式匹配关键字,再将长模式 和短模式关键字分别存储于不同的TCAM中,并分别称其为长模式TCAM和 短模式TCAM,具体的关键字分割如图3所示;
步骤302:根据用户终端的能力信息在频域和时域上设置新的帧结构配 置关系;
具体的,在刚开始检测时,通过逐位方式从待测数据流中提取出查表关 键字,本实施例中优选的查表关键字与所述定长匹配框的长度相同,再将该 查表关键字分别送入长模式TCAM和短模式TCAM进行查表操作,如此反复, 直至其中一个TCAM的关键字查中;此时若为长模式TCAM的关键字查中, 则不论短模式TCAM的关键字是否查中,皆可确定后续数据流中仍有长模式 关键字,并不再进行逐位移,而是跳跃一个定长的长度,优选的为预先设定 的匹配框长度,然后在此基础上继续进行查表关键字的提取和查表;若长字 匹配继续命中,则继续跳跃,直至最后一次长模式TCAM的关键字查表不中, 而短模式TCAM查中为止,并可确定此时当前的整个关键字检测完毕;若第 一次过程中,只有短模式TCAM的关4定字查中,而长模式不中,则认为当前 的待检测报文的关键字即为短模式TCAM所匹配的关键字,后续无需再进行 移位或跳跃操作;
此外,如果待匹配关键字的长度小于所述预设的定长匹配框,则直接利用逐位方式从短才莫式匹配TCAM中查表进行数据流才企测,即此时不再移位或 跳跃,认为查表的关键字即为小特征关键字,后面无需再进行查表操作,此 时认为该关键字的查找工作已完成,退出当前bit流的操作,再对下一流进行 操作。
需要注意的时,在现在技术中TCAM单次所支持的最大查表长度为576 比特位宽,因而本发明实施例优选的情况是将所述定长匹配框的长度预设为 576bit,当然也并不局限于此,可根据具体实施时的情况做出灵活调整,在此 不再赘述。
下面即以预设的定长匹配框的长度为576bit为例,对上述4企测方法进行 -洋细i兌明
1) 、首先将报文特征(即待匹配关键字)进行分割,设定匹配框的长度 为576位宽,即bit流的分割长度为576位宽;以字符串来代替bit流,以
"aabbccd,,为例,每两个字符代表一个分割模式,则以上数据流将被分割为 "aa"、 "bb"、 "cc"和"d",其中"aa"、 "bb"、 "cc"分别代表576位宽的 长模式匹配关键字,"d"为最后分割的最后一部分,其长度小于576bit;然 后在TCAM的关键字匹配时,将"aa"、 "bb"、 "cc"写入到长模式TCAM中, 将"d,,写入到短模式TCAM中;
2) 、当送入"xxxaabbccdxxx,,待查表的比特流时,通过逐位的方式乂人 bit流中提取576位宽的查表关键字,分别为"xx,,、 "xx,,以及"xa,,等,在 这些情况下,长短两个模式TCAM查表都不中,此时继续移位,直至移位到 出现"aa,,时,此时长匹配TCAM查表命中,而短匹配TCAM查表不中,此 时即可进行跳跃,不再移位操作,直接跳跃到"bb",跳跃的长度为576bit; 如果长模式TCAM继续命中,则继续跳跃,跳跃至"cc",此时长模式TCAM 继续命中,再跳跃至"dx"关键字,此时再查表时长模式TCAM查表不中, 而短匹配TCAM查表命中,则确定该关键字的查找工作已完成,退出当前bit 流的操作,再对下一流进行操作;
需要注意的是,当待匹配关键字本身的长度小于576位宽时,此时分割 的宽度就小于长模式TCAM的宽度,则短模式匹配关键字必须放入到短匹配TCAM中。当送入"xxxexxx"待查表的比特流时,通过逐位的方式从bit流 中,提出576位宽的查表关键字,分别为"xx"、 "xx"等,在这些情况下, 如果长短两个模式TCAM查表都不中,则继续移位,直至移位到出现"ex" 时,此时长匹配TCAM查表不中,而短匹配TCAM查表命中,因而不再移位 或跳跃,即可确定查表的关键字即为短模式匹配关键字,后面无需再进行查 表操作,可确定该关键字的查找工作已完成,退出当前bit流的操作,再对下 一流进行操作。
可以看出,采用本发明实施例的方法,利用带匹配特征的连续性,在长 模式TCAM首次查中后,后续查表直接采用跳跃;漠式,避免了逐位查找带来 的冗长查找时间,从而在保证查表正确性的前提下,提高了匹配速度;同时 利用了长短TCAM查表结果之间的关系,在长模式TCAM查中的前提下,继 续进行跳跃的查找方式;而长模式TCAM查表不中、短模式TCAM查中的情 况下,认为当前的待检测报文的关键字即为短模式,从而及时终止了当前操 作,节约了系统处理时间。
基于上述思想,本发明实施例2又提出了一种深度报文检测装置,如图5 所示,该装置500包括分割单元501和匹配单元502;其中,所述分割单 元501用于当待匹配关键字的长度大于所述预设的定长匹配框时,将该待匹 配关键字分割为长模式匹配关键字和短模式匹配关键字,并分别存储于不同 的TCAM中;
所述匹配单元502用于在检测时将提取到的查表关键字送入所述不同的 TCAM中进行查表,如果该提取到的查表关键字与TCAM中存储的匹配关键 字匹配,则确定当前数据流为匹配数据流。
其中,所述匹配单元包括提取模块、第一查表模块和第二查表模块; 其中,所述提取模块用于通过逐位方式从当前待测数据流中提取查表关键字, 并通知给所述第一查表模块和第二查表模块;
所述第一查表模块用于利用所述查表关键字在长模式TCAM中进行查 表,如果长模式TCAM中的关键字匹配成功,则跳过所迷定长匹配框的长度, 继续提取查表关键字进行查表,直到接收到所述第二查表模块的同之后,确据流;如果长模式TCAM中的关键字匹配 失败,则通知所述第二查表才莫块;
所述第二查表模块用于利用所述查表关键字在短模式TCAM中进行查 表,当短模式TCAM中的关键字匹配成功,则通知所述第一查表模块;如果 此时接收到所述第一查表模块的通知,则确定当前待测数据流为短模式匹配 数据流。
此外,该装置还包括判断单元;所述判断单元用于判断待匹配关键字 的长度是否小于所述预设的定长匹配框,如果是,则直接利用逐位方式从短 模式匹配TCAM中查表进行数据流检测;否则,通知所述分割单元。
当然,本领域技术人员了解,上述实施例2中实现TDD多载波系统中数 据传输的装置在具体实施时可以看作是一种基站,该基站在包括普通基站所 包含的各部件的同时还包括上述实施例中所描述的装置所包含的单元,即包 含上述装置的各单元的基站也应包含在本发明所保护的范围之内,但并不局 限于此,在此不再赘述。
本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一 种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以 表示为电压、电流、电磁波、磁场或磁性粒子、光场或以上任意组合。
专业人员还可以进一步应能意识到,结合本文中所公开的实施例描述的 各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来 实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能 一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来 执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每 个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为 超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、 处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存 储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编 程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用 本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易 见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下, 在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,
而是要符合与本文所公开的原理和新颖特点相 一致的最宽的范围。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在 本发明的保护范围之内。
权利要求
1、一种深度报文检测方法,其特征在于,包括A、预设定长的匹配框,当待匹配关键字的长度大于所述预设的定长匹配框时,将该待匹配关键字分割为长模式匹配关键字和短模式匹配关键字,并分别存储于不同的TCAM中;B、检测时将提取到的查表关键字送入所述不同的TCAM中进行查表,如果该提取到的查表关键字与TCAM中存储的匹配关键字匹配,则确定当前数据流为匹配数据流,完成检测。
2、 根据权利要求1所述的方法,其特征在于,所述步骤B包括B1、通过逐位方式从当前待测数据流中提取查表关键字,将查表关键字 同时送入长模式TCAM和短模式TCAM中进行查表;B2、如果长模式TCAM中的关键字匹配成功,则跳过所述定长匹配框的 长度,继续提取查表关键字进行查表,直到短模式TCAM中的关键字匹配成 功,则确定当前待测数据流为长模式匹配数据流;B3、如果长模式TCAM中的关键字匹配失败,而短模式TCAM中的关键 字匹配成功,则确定当前待测数据流为短模式匹配数据流。
3、 根据权利要求2所述的方法,其特征在于,该方法还包括如果待匹配关键字的长度小于所述预设的定长匹配框,则直接利用逐位 方式从短模式匹配TCAM中查表进行数据流检测。
4、 根据权利要求2所述的方法,其特征在于 所述查表关键字的长度与所述定长匹配框的长度相同。
5、 根据权利要求1至4任意一项所述的方法,其特征在于 所述长模式匹配关键字的长度与预设的定长匹配框长度相同。
6、 根据权利要求5所述的方法,其特征在于 所述定长匹配框的长度为576bit。
7、 一种深度报文检测装置,其特征在于,包括分割单元和匹配单元;其中,所述分割单元用于当待匹配关键字的长度大于所述预设的定长匹配框时,将该待匹配关键字分割为长模式匹配关键字和短模式匹配关键字,并分别存储于不同的TCAM中;所述匹配单元用于在检测时将提取到的查表关键字送入所述不同的TCAM中进行查表,如果该提取到的查表关键字与TCAM中存储的匹配关键字匹配,则确定当前数据流为匹配数据流。
8、 根据权利要求7所述的装置,其特征在于,所述匹配单元包括提取模块、第一查表模块和第二查表模块;其中,所述提取模块用于通过逐位方式从当前待测数据流中提取查表关键字,并通知给所述第一查表模块和第二查表模块;所述第一查表模块用于利用所述查表关键字在长模式TCAM中进行查表,如果长模式TCAM中的关键字匹配成功,则跳过所述定长匹配框的长度,继续提取查表关键字进行查表,直到接收到所述第二查表模块的同之后,确定当前待测数据流为长模式匹配数据流;如果长模式TCAM中的关键字匹配失败,则通知所述第二查表才莫块;所述第二查表模块用于利用所述查表关键字在短模式TCAM中进行查表,当短模式TCAM中的关键字匹配成功,则通知所述第一查表模块;如果此时接收到所述第一查表模块的通知,则确定当前待测数据流为短模式匹配数据流。
9、 根据权利要求8所述的装置,其特征在于,该装置还包括判断单元;所述判断单元用于判断待匹配关键字的长度是否小于所述预设的定长匹配框,如果是,则直接利用逐位方式从短模式匹配TCAM中查表进行数据流检测;否则,通知所述分割单元。
全文摘要
本发明涉及一种深度报文检测方法和装置;其中,所述方法包括预设定长的匹配框,当待匹配关键字的长度大于所述预设的定长匹配框时,将该待匹配关键字分割为长模式匹配关键字和短模式匹配关键字,并分别存储于不同的TCAM中;检测时将提取到的查表关键字送入所述不同的TCAM中进行查表,如果该提取到的查表关键字与TCAM中存储的匹配关键字匹配,则确定当前数据流为匹配数据流。采用本发明的方法和装置,有效的避免了在深度检测时逐位查找带来的时间冗余,并在保证精度的前提下,提高了匹配速度。
文档编号H04L12/26GK101478447SQ200910000609
公开日2009年7月8日 申请日期2009年1月8日 优先权日2009年1月8日
发明者刘勤让, 卜佑军, 夏军波, 燕 崔 申请人:中国人民解放军信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1