一种深度报文检测方法和装置转让专利

申请号 : CN200910000609.8

文献号 : CN101478447B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘勤让卜佑军夏军波崔燕

申请人 : 中国人民解放军信息工程大学

摘要 :

本发明涉及一种深度报文检测方法和装置;其中,所述方法包括:预设定长的匹配框,当待匹配关键字的长度大于所述预设的定长匹配框时,将该待匹配关键字分割为长模式匹配关键字和短模式匹配关键字,并分别存储于不同的TCAM中;检测时将提取到的查表关键字送入所述不同的TCAM中进行查表,如果该提取到的查表关键字与TCAM中存储的匹配关键字匹配,则确定当前数据流为匹配数据流。采用本发明的方法和装置,有效的避免了在深度检测时逐位查找带来的时间冗余,并在保证精度的前提下,提高了匹配速度。

权利要求 :

1.一种深度报文检测方法,其特征在于,包括:

A、预设定长的匹配框,当待匹配关键字的长度大于所述预设的定长匹配框时,将该待匹配关键字分割为长模式匹配关键字和短模式匹配关键字,并分别存储于不同的TCAM中;

B、检测时将提取到的查表关键字送入所述不同的TCAM中进行查表,如果该提取到的查表关键字与TCAM中存储的匹配关键字匹配,则确定当前数据流为匹配数据流,完成检测;所述步骤B包括:B1、通过逐位方式从当前待测数据流中提取查表关键字,将查表关键字同时送入长模式TCAM和短模式TCAM中进行查表;

B2、如果长模式TCAM中的关键字匹配成功,则跳过所述定长匹配框的长度,继续提取查表关键字进行查表,直到短模式TCAM中的关键字匹配成功,则确定当前待测数据流为长模式匹配数据流;

B3、如果长模式TCAM中的关键字匹配失败,而短模式TCAM中的关键字匹配成功,则确定当前待测数据流为短模式匹配数据流。

2.根据权利要求1所述的方法,其特征在于,该方法还包括:

如果待匹配关键字的长度小于所述预设的定长匹配框,则直接利用逐位方式从短模式匹配TCAM中查表进行数据流检测。

3.根据权利要求1所述的方法,其特征在于:

所述查表关键字的长度与所述定长匹配框的长度相同。

4.根据权利要求1至3任意一项所述的方法,其特征在于:

所述长模式匹配关键字的长度与预设的定长匹配框长度相同。

5.根据权利要求4所述的方法,其特征在于:

所述定长匹配框的长度为576bit。

6.一种深度报文检测装置,其特征在于,包括:分割单元和匹配单元;其中,所述分割单元用于当待匹配关键字的长度大于所述预设的定长匹配框时,将该待匹配关键字分割为长模式匹配关键字和短模式匹配关键字,并分别存储于不同的TCAM中;

所述匹配单元用于在检测时将提取到的查表关键字送入所述不同的TCAM中进行查表,如果该提取到的查表关键字与TCAM中存储的匹配关键字匹配,则确定当前数据流为匹配数据流;所述匹配单元包括:提取模块、第一查表模块和第二查表模块;其中,所述提取模块用于通过逐位方式从当前待测数据流中提取查表关键字,并通知给所述第一查表模块和第二查表模块;

所述第一查表模块用于利用所述查表关键字在长模式TCAM中进行查表,如果长模式TCAM中的关键字匹配成功,则跳过所述定长匹配框的长度,继续提取查表关键字进行查表,直到接收到所述第二查表模块的通知后,确定当前待测数据流为长模式匹配数据流;如果长模式TCAM中的关键字匹配失败,则通知所述第二查表模块;

所述第二查表模块用于利用所述查表关键字在短模式TCAM中进行查表,当短模式TCAM中的关键字匹配成功,则通知所述第一查表模块;如果此时接收到所述第一查表模块的通知,则确定当前待测数据流为短模式匹配数据流。

7.根据权利要求6所述的装置,其特征在于,该装置还包括:判断单元;所述判断单元用于判断待匹配关键字的长度是否小于所述预设的定长匹配框,如果是,则直接利用逐位方式从短模式匹配TCAM中查表进行数据流检测;否则,通知所述分割单元。

说明书 :

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

技术领域

[0001] 本发明涉及计算机通信技术与信息安全领域,尤其涉及一种网络中各种报文内容的深度检测方法和装置。

背景技术

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

发明内容

[0005] 有鉴于此,本发明解决的是基于逐位的深度报文检测方法容易造成检测时间过长进而影响报文检测速度的问题。
[0006] 为解决上述问题,本发明提供的技术方案如下:
[0007] 一种深度报文检测方法,包括:
[0008] A、预设定长的匹配框,当待匹配关键字的长度大于所述预设的定长匹配框时,将该待匹配关键字分割为长模式匹配关键字和短模式匹配关键字,并分别存储于不同的TCAM中;
[0009] B、检测时将提取到的查表关键字送入所述不同的TCAM中进行查表,如果该提取到的查表关键字与TCAM中存储的匹配关键字匹配,则确定当前数据流为匹配数据流,完成检测。
[0010] 优选的,所述步骤B包括:
[0011] B1、通过逐位方式从当前待测数据流中提取查表关键字,将查表关键字同时送入长模式TCAM和短模式TCAM中进行查表;
[0012] B2、如果长模式TCAM中的关键字匹配成功,则跳过所述定长匹配框的长度,继续提取查表关键字进行查表,直到短模式TCAM中的关键字匹配成功,则确定当前待测数据流为长模式匹配数据流;
[0013] B3、如果长模式TCAM中的关键字匹配失败,而短模式TCAM中的关键字匹配成功,则确定当前待测数据流为短模式匹配数据流。
[0014] 优选的,该方法还包括:如果待匹配关键字的长度小于所述预设的定长匹配框,则直接利用逐位方式从短模式匹配TCAM中查表进行数据流检测。
[0015] 优选的,所述查表关键字的长度与所述定长匹配框的长度相同。
[0016] 优选的,所述长模式匹配关键字的长度与预设的定长匹配框长度相同。
[0017] 优选的,所述定长匹配框的长度为576bit。
[0018] 一种深度报文检测装置,包括:分割单元和匹配单元;其中,所述分割单元用于当待匹配关键字的长度大于所述预设的定长匹配框时,将该待匹配关键字分割为长模式匹配关键字和短模式匹配关键字,并分别存储于不同的TCAM中;
[0019] 所述匹配单元用于在检测时将提取到的查表关键字送入所述不同的TCAM中进行查表,如果该提取到的查表关键字与TCAM中存储的匹配关键 字匹配,则确定当前数据流为匹配数据流。
[0020] 优选的,所述匹配单元包括:提取模块、第一查表模块和第二查表模块;其中,所述提取模块用于通过逐位方式从当前待测数据流中提取查表关键字,并通知给所述第一查表模块和第二查表模块;
[0021] 所述第一查表模块用于利用所述查表关键字在长模式TCAM中进行查表,如果长模式TCAM中的关键字匹配成功,则跳过所述定长匹配框的长度,继续提取查表关键字进行查表,直到接收到所述第二查表模块的通知后,确定当前待测数据流为长模式匹配数据流;如果长模式TCAM中的关键字匹配失败,则通知所述第二查表模块;
[0022] 所述第二查表模块用于利用所述查表关键字在短模式TCAM中进行查表,当短模式TCAM中的关键字匹配成功,则通知所述第一查表模块;如果此时接收到所述第一查表模块的通知,则确定当前待测数据流为短模式匹配数据流。
[0023] 优选的,该装置还包括:判断单元;所述判断单元用于判断待匹配关键字的长度是否小于所述预设的定长匹配框,如果是,则直接利用逐位方式从短模式匹配TCAM中查表进行数据流检测;否则,通知所述分割单元。
[0024] 可以看出,采用本发明的方法和装置,通过将预先定义好的报文特征,按照匹配模式框不同匹配模式,并分别存储于不同的TCAM中;开始时通过逐位方式从数据流中提出匹配关键字,再送入TCAM进行查表操作,直至关键字查中,此时若为长模式查中,则不再进行逐位移,而时跳跃一个匹配框长度,并在此基础上继续进行关键字的提出和查表,若长模式关键字匹配继续命中,则继续跳跃,直至最后一次只有短模式查中时,确定整个关键字已传送完;利用带匹配特征的连续性,在首次查中后,后续查表直接采用跳跃模式,避免了逐位查找带来的冗长查找时间,从而在保证精度的前提下,提高了匹配速度。
[0025] 附图说明
[0026] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0027] 图1是现有技术中传统的匹配流程示意图;
[0028] 图2是现有技术中循环移位示意图;
[0029] 图3是本发明实施例1的方法流程示意图;
[0030] 图4是本发明实施例1中关键字分割的示意图;
[0031] 图5是是本发明实施例2的装置结构示意图。

具体实施方式

[0032] 本发明的基本思想在于将预先定义好的报文特征,按照匹配模式框不同匹配模式,并分别存储于不同的TCAM中;开始时通过逐位方式从数据流中提出匹配关键字,再送入TCAM进行查表操作,直至关键字查中,此时若为长模式查中,则不再进行逐位移,而时跳跃一个匹配框长度,并在此基础上继续进行关键字的提出和查表,若长模式关键字匹配继续命中,则继续跳跃,直至最后一次只有短模式查中时,确定整个关键字已传送完;利用带匹配特征的连续性,在首次查中后,后续查表直接采用跳跃模式,避免了逐位查找带来的冗长查找时间,从而在保证精度的前提下,提高了匹配速度。
[0033] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述;显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034] 本发明实施例1提供了实现TDD多载波系统中数据传输的方法,如图3所示,该方法包括:
[0035] 步骤301:预设定长的匹配框,当待匹配关键字的长度大于所述预设的 定长匹配框时,将该待匹配关键字分割为长模式匹配关键字和短模式匹配关键字,并分别存储于不同的TCAM中;
[0036] 具体的,利用待匹配关键字之间的连续性,预先设定定长的匹配框,将待匹配的关键字进行分割;现在技术中各数据包的关键字信息长度不一,因而为了获取详细的报文特征信息,就必须要求检测越来越大的报文关键字,同时长关键字的比重也越来越大,因此对长关键字首先要进行分割;在分割过程中,分割得到的靠前的匹配模式都为定长格式,及长度与预设的定长匹配框长度相同,当然并不局限于此,其也可不等于定长匹配框长度,在此不再赘述;而最后部分的匹配模式大小不定,但必然小于等于设定的定长的分割长度;在本实施例中,定义分割后定长内容分割的为长模式匹配关键字,而最后部分小于定长匹配长短的分割定义为短模式匹配关键字,再将长模式和短模式关键字分别存储于不同的TCAM中,并分别称其为长模式TCAM和短模式TCAM,具体的关键字分割如图3所示;
[0037] 步骤302:根据用户终端的能力信息在频域和时域上设置新的帧结构配置关系; [0038] 具体的,在刚开始检测时,通过逐位方式从待测数据流中提取出查表关键字,本实施例中优选的查表关键字与所述定长匹配框的长度相同,再将该查表关键字分别送入长模式TCAM和短模式TCAM进行查表操作,如此反复,直至其中一个TCAM的关键字查中;此时若为长模式TCAM的关键字查中,则不论短模式TCAM的关键字是否查中,皆可确定后续数据流中仍有长模式关键字,并不再进行逐位移,而是跳跃一个定长的长度,优选的为预先设定的匹配框长度,然后在此基础上继续进行查表关键字的提取和查表;若长字匹配继续命中,则继续跳跃,直至最后一次长模式TCAM的关键字查表不中,而短模式TCAM查中为止,并可确定此时当前的整个关键字检测完毕;若第一次过程中,只有短模式TCAM的关键字查中,而长模式不中,则认为当前的待检测报文的关键字即为短模式TCAM所匹配的关键字,后续无需再进行移位或跳跃操作;
[0039] 此外,如果待匹配关键字的长度小于所述预设的定长匹配框,则直接利 用逐位方式从短模式匹配TCAM中查表进行数据流检测,即此时不再移位或跳跃,认为查表的关键字即为小特征关键字,后面无需再进行查表操作,此时认为该关键字的查找工作已完成,退出当前bit流的操作,再对下一流进行操作。
[0040] 需要注意的时,在现在技术中TCAM单次所支持的最大查表长度为576比特位宽,因而本发明实施例优选的情况是将所述定长匹配框的长度预设为576bit,当然也并不局限于此,可根据具体实施时的情况做出灵活调整,在此不再赘述。
[0041] 下面即以预设的定长匹配框的长度为576bit为例,对上述检测方法进行详细说明:
[0042] 1)、首先将报文特征(即待匹配关键字)进行分割,设定匹配框的长度为576位宽,即bit流的分割长度为576位宽;以字符串来代替bit流,以“aabbccd”为例,每两个字符代表一个分割模式,则以上数据流将被分割为“aa”、“bb”、“cc”和“d”,其中“aa”、“bb”、“cc”分别代表576位宽的长模式匹配关键字,“d”为最后分割的最后一部分,其长度小于576bit;然后在TCAM的关键字匹配时,将“aa”、“bb”、“cc”写入到长模式TCAM中,将“d”写入到短模式TCAM中;
[0043] 2)、当送入“xxxaabbccdxxx”待查表的比特流时,通过逐位的方式从bit流中提取576位宽的查表关键字,分别为“xx”、“xx”以及“xa”等,在这些情况下,长短两个模式TCAM查表都不中,此时继续移位,直至移位到出现“aa”时,此时长匹配TCAM查表命中,而短匹配TCAM查表不中,此时即可进行跳跃,不再移位操作,直接跳跃到“bb”,跳跃的长度为576bit;如果长模式TCAM继续命中,则继续跳跃,跳跃至“cc”,此时长模式TCAM继续命中,再跳跃至“dx”关键字,此时再查表时长模式TCAM查表不中,而短匹配TCAM查表命中,则确定该关键字的查找工作已完成,退出当前bit流的操作,再对下一流进行操作;
[0044] 需要注意的是,当待匹配关键字本身的长度小于576位宽时,此时分割的宽度就小于长模式TCAM的宽度,则短模式匹配关键字必须放入到短匹配 TCAM中。当送入“xxxexxx”待查表的比特流时,通过逐位的方式从bit流中,提出576位宽的查表关键字,分别为“xx”、“xx”等,在这些情况下,如果长短两个模式TCAM查表都不中,则继续移位,直至移位到出现“ex”时,此时长匹配TCAM查表不中,而短匹配TCAM查表命中,因而不再移位或跳跃,即可确定查表的关键字即为短模式匹配关键字,后面无需再进行查表操作,可确定该关键字的查找工作已完成,退出当前bit流的操作,再对下一流进行操作。
[0045] 可以看出,采用本发明实施例的方法,利用带匹配特征的连续性,在长模式TCAM首次查中后,后续查表直接采用跳跃模式,避免了逐位查找带来的冗长查找时间,从而在保证查表正确性的前提下,提高了匹配速度;同时利用了长短TCAM查表结果之间的关系,在长模式TCAM查中的前提下,继续进行跳跃的查找方式;而长模式TCAM查表不中、短模式TCAM查中的情况下,认为当前的待检测报文的关键字即为短模式,从而及时终止了当前操作,节约了系统处理时间。
[0046] 基于上述思想,本发明实施例2又提出了一种深度报文检测装置,如图5所示,该装置500包括:分割单元501和匹配单元502;其中,所述分割单元501用于当待匹配关键字的长度大于所述预设的定长匹配框时,将该待匹配关键字分割为长模式匹配关键字和短模式匹配关键字,并分别存储于不同的TCAM中;
[0047] 所述匹配单元502用于在检测时将提取到的查表关键字送入所述不同的TCAM中进行查表,如果该提取到的查表关键字与TCAM中存储的匹配关键字匹配,则确定当前数据流为匹配数据流。
[0048] 其中,所述匹配单元包括:提取模块、第一查表模块和第二查表模块;其中,所述提取模块用于通过逐位方式从当前待测数据流中提取查表关键字,并通知给所述第一查表模块和第二查表模块;
[0049] 所述第一查表模块用于利用所述查表关键字在长模式TCAM中进行查表,如果长模式TCAM中的关键字匹配成功,则跳过所述定长匹配框的长度,继续提取查表关键字进行查表,直到接收到所述第二查表模块的同之后,确 定当前待测数据流为长模式匹配数据流;如果长模式TCAM中的关键字匹配失败,则通知所述第二查表模块;
[0050] 所述第二查表模块用于利用所述查表关键字在短模式TCAM中进行查表,当短模式TCAM中的关键字匹配成功,则通知所述第一查表模块;如果此时接收到所述第一查表模块的通知,则确定当前待测数据流为短模式匹配数据流。
[0051] 此外,该装置还包括:判断单元;所述判断单元用于判断待匹配关键字的长度是否小于所述预设的定长匹配框,如果是,则直接利用逐位方式从短模式匹配TCAM中查表进行数据流检测;否则,通知所述分割单元。
[0052] 当然,本领域技术人员了解,上述实施例2中实现TDD多载波系统中数据传输的装置在具体实施时可以看作是一种基站,该基站在包括普通基站所包含的各部件的同时还包括上述实施例中所描述的装置所包含的单元,即包含上述装置的各单元的基站也应包含在本发明所保护的范围之内,但并不局限于此,在此不再赘述。
[0053] 本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以表示为电压、电流、电磁波、磁场或磁性粒子、光场或以上任意组合。
[0054] 专业人员还可以进一步应能意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0055] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任 意其它形式的存储介质中。
[0056] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
[0057] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。