报文分类中的非规则匹配方法、装置和系统的制作方法

文档序号:7943745阅读:429来源:国知局

专利名称::报文分类中的非规则匹配方法、装置和系统的制作方法
技术领域
:本发明涉及一种网络
技术领域
,特别是涉及报文分类中的非规则匹配方法、装置和网络系统。
背景技术
:近年来,网络技术迅猛发展,网络朝着宽带化和多样化的方向演进,于此同时,出现了防火墙、入侵检测、QoS(QualityofService,服务质量)等应用,这些应用被大规模部署在路由器、硬件防火墙、入侵检测系统等网络设备中,目前实现上述应用中的关键技术为报文分类技术,现有技术中为了解决利用纯软件实现分类算法的带来的性能低的问题,提出了一种基于TCAM(TernaryContentAddressableMemory,三重内容可寻址存卡者器)的分类方法。TCAM是一种基于内容查询的存储器,其具有查询速度快、查询时间固定的优点。具体地,如图l所示,TCAM中预先存有若干条表项,每条表项对应着一条规则,在SRAM(StaticRandomAccessMemory,静态随机存储器)中预存有与TCAM中的表项相对应的具体动作(Action),在对l艮文进行分类时,将报文与TCAM表项进行关键字匹配,如果有一个表项与该报文匹配成功,则对报文执行与该TCAM表项对应的SRAM中存储的动作,从而实现报文分类的目的。因此在报文分类过程中,将报文与规则进行匹配的过程尤为重要。TCAM的表项中的每一位的内容具有三种形式,即0、1和*,其中0和1表示具体的二进制数字,而*表示该位不参与比较,即在进行匹配时,该位默i人匹配成功。利用TCAM可以较好地实现精确匹配和前缀匹配,但是TCAM不能直接应用于非规则匹配,所谓非规则是指含有非含义的规则,所谓非对应逻辑运算符"!,,。例如,在ACL(AccessControlList,访问控制列表)应用中的报文分类,需要考虑报文的5个字段源IP地址、目的IP地址、协议号、源端口和目的端口,如果实际需要对外部网络访问内部网络的某端口作出限制,假如内部网络的IP地址网段为192.168.0.0-16,则在本规则中内部网络的IP地址为目的IP地址,而外部网络的IP地址为源IP地址,因此源IP地址对应的字賴:规则为非规则,即该字段可以表示为!(192.168.0.0~16)。非规则的匹配一直是TCAM应用的难点,现有方法中用多条TCAM表项的扩展方式代替原来的非规则,例如,图2示出了对非规则!(192.168.0.016)的扩展表示的两种方法。这些方法虽然支持了非规则的匹配,但是由于一条规则需要扩展成几条TCAM表项,导致TCAM利用率低,而且由于TCAM为了实现一比特的查询功能需要10-12个晶体管,而SRAM只需4-6个,这使得TCAM的价格是相同容量DDRSRAM的30倍,功耗达到了惊人的150倍,如果采用上述方法表示非规则,会增加TCAM的查询量,从而使得成本和功耗都显著增加,带来资源上的浪费。
发明内容有鉴于此,本发明实施例提供了一种报文分类中的非规则匹配方法、装置以及相应的网络系统,能够解决通过TCAM扩展表项支持非规则匹配造成的TCAM的利用率低的问题。一种报文分类中的非规则匹配方法,包括将所述报文的关键字与三重内容可寻址存储器TCAM中的表项进行匹配,所述TCAM表项与整条规则相对应,所述TCAM的表项中与非规则字段对应的部分默i人匹配成功;如果所述报文的关键字与TCAM表项匹配成功,则通过与该TCAM表项对应的SRAM记录中的非规则字段标识信息,获知整条规则中的非规则字段;将所述报文中的非规则字段的关键字与所述SRAM记录中的非规则字段对应的正向关键字进行匹配,如果匹配全部不成功,则判定该报文与整条规则匹配成功。一种报文分类中的非规则匹配装置,包括三重内容可寻址存储器TCAM表项匹配单元,用于将报文的关键字与TCAM中的表项进行匹配,所述TCAM表项与整条规则相对应,所述TCAM的表项中与非规则字段对应的部分默认匹配成功;非规则字段获取单元,用于根据TCAM表项对应的SRAM记录中的非规则字段标识信息,获知整条规则中的非规则字段;SRAM记录匹配单元,用于在TCAM表项匹配单元的匹配结果成功时,将所述报文的关键字与所述SRAM记录中的非规则字段的正向关键字进行匹配,如果匹配全部不成功,则判定所述才艮文与整条^L则匹配成功。一种网络系统,包括三重内容可寻址存储器TCAM表项匹配单元,用于将报文的关键字与TCAM中的表项进行匹配,所述TCAM表项与整条规则相对应,所述TCAM的表项中与非规则字段对应的部分默认匹配成功;非规则字段获取单元,用于根据TCAM表项对应的SRAM记录中的非规则字段标识信息,获知整条规则中的非规则字段;SRAM记录匹配单元,用于在TCAM表项匹配单元的匹配结果成功时,将所述报文的关键字与所述SRAM记录中的非规则字段的正向关键字进行匹配,如果匹配全部不成功,则判定所述才艮文与整条规则匹配成功;TCAM存储单元,用于存储所述TCAM表项;SRAM存储单元,用于存储所述SRAM记录;报文分类处理单元,用于根据SRAM记录中存储的动作信息,对与整条规则匹配成功的报文进行相应的处理。可见,本发明实施例中,一条TCAM表项对应一整条身见则,在TCAM表项中对于非规则字段设定为默认匹配成功,而对于非规则字段的实际匹配过程由与TCAM表项对应的SRAM记录来完成,而且在SRAM记录中存储的是非规则记录的正向关键字,因此本实施例提供的方法、装置和网络系统相对于现有技术具有节省TCAM表项数目,提高TCAM的利用率的优点。图1是现有技术中利用TCAM和SRAM实现报文分类的示意图;图2是现有技术中利用TCAM和SRAM实现报文分类中的非规则匹配的示意图3是本发明实施例一提供的报文分类中的非规则匹配方法的流程图;图4是本发明实施例一中TCAM和SRAM的一种存储内容的示意图;图5是本发明实施例二提供的报文分类中的非规则匹配装置的示意图;图6是本发明实施例三提供的网络系统的示意图。具体实施例方式本发明提供了一种报文分类的非规则匹配方法、装置以及系统,该方法将整条规则中的非规则字段信息放在SRAM中,TCAM中对于非规则字段做默i人匹配成功的处理,当与TCAM表项匹配成功后,再后利用相应的SRAM记录中的非规则字段的正向关键字与报文的相应关键字去做匹配,根据匹配结果判定是否匹配整条规则。下面结合附图详细说明本发明各个实施例。实施例一本发明实施例一提供一种报文分类中的非规则匹配方法,其中,在TCAM中每个表项对应一整条规则,在本实施例主要考虑在该一整条规则中包含有非规则字段的情况,例如在规则中对源IP地址字段限定为!(192.168.0.0~16),则源IP地址字段为一个非规则字段。在TCAM表项中的非规则字段对应的内容部分在与报文的关键字进行匹配时默认匹配成功,考虑到实际中TCAM表项中为,因为内容为"*"的位在匹配时默认匹配成功。其他不是非规则字段的字段信息采用通常的表示方式,从而可以实现其他字段的精确匹配或前缀匹配。在SRAM中存在与该包含非规则字段信息的TCAM表项对应的记录,在该SRAM记录中,包含能够指明哪一个字段为非规则字段的标识信息(以下称为非规则字段信息),并且还存有非规则字段对应的正向关键字,例如,对于非规则字段为!(192.168.0.0~16)的情况,SRAM中相应的记录中可以存有能够表示192.168.0.0~16的正向关4定字。基于上述的TCAM和SRAM中的内容,如图3,本实施例提供的报文分类中的非规则匹配方法包括步骤S301:将提取的报文的关键字输入到TCAM中,与TCAM表项进行匹配;如果匹配成功,则执行步骤S302,如果匹配不成功,则结束此次匹配。将报文的关键字与已经建立的TCAM表项的匹配过程属于本领域技术人员共知的技术,在这里不再详细描述,但是本实施例中的TCAM表项中的非规则字l殳的内容设置为可以默认匹配成功的内容。不妨以如下规则对本实施例做举例说明对外部网络乂人80端口访问内部网络非1024到2048的TCP才艮文进行一定的动作处理,假设内部网络的IP地址网段为192.268.0.1~16,该规则可以包含如下字段,即源IP地址(此例中对应外部网络的IP地址)、目的IP地址(此例中对应内部网络的IP地址)、协议号、源端口(此例中对应外部网络的端口)和目的端口(此例中对应内部网络的端口),相应的从报文中提取的关键字中也应该至少包括上述几个字段的信息,其中该规则的各个字段信息表示如表l所示表l<table>tableseeoriginaldocumentpage8</column></row><table>由此可见,在这个例子中,源IP地址和目的端口两个字段为非规则字段,其他均为正向规则的字段。图4示出了本发明实施例一中TCAM和SRAM中的内容的示意图,特别地,图4中详细示出了用于存储上述例子中的规则对应的TCAM表项和相应SRAM中的记录的详细内容,如图4所示,与上述规则对应的TCAM表项中,对于表1中的源IP地址和目的端口的位置填入的内容为*,由于氺在TCAM表项的匹配过程中默认匹配成功,所以在将报文的关键字与这条TCAM表项进行匹配时,相应的非规则字段源IP地址和目的端口默认匹配成功。例如,如果报文的关键字为(192.168.2.3,199.188.1.1,6,8080,2000)时,在输入到TCAM中,由于报文的关键字中的目的IP地址199.188.1.1无法与TCAM表项中的192.168.0.0~16匹配成功,并且,报文的关键字中的源端口8080也无法与TCAM表项中的80匹酉己,所以该报文的关键字无法与该TCAM表项匹配成功,则可以结束与该TCAM表项的匹配,当然也可以才艮据实际需要,再对所述报文的关键字进行下一次匹配。如果报文的关键字为(199.188丄1,192.168.0.3,6,80,2000),则在与该TCAM表项进行比配时,由于图4中的TCAM表项中源IP地址和目的端口字段默认匹配成功,并且该报文的关键字中的目的IP地址、源端口和协议号都与TCAM表项中的相应字段匹配成功,因此该报文的关键字(199.188.1.1,192.168.0.3,6,80,2000)与图4中详细示出的TCAM表项匹配成功。在匹配不成功后,可以根据实际需要,执行步骤S305转入进行下一次匹配的过程。步骤S302:找到与所述报文关键字匹配成功的TCAM表项对应的SRAM记录,并根据该SRAM记录中的非规则字段标识信息,获知整条规则中的非规则字段;在本实施例中,一条TCAM表项对一整条规则,一条TCAM表项也对应一条SRAM记录,在实际中,可以通过TCAM表项的物理地址和SRAM记录的地址之间映射关系,通过上述匹配成功的TCAM表项对SRAM进行寻址,找到给TCAM表项对应的SRAM记录。因为在将报文与TCAM表项进行匹配时,只能得知是否匹配成功,无法获知该TCAM表项对应的整条规则中哪一个字段为非规则字段。例如,在将报文的关键字与TCAM表项进行匹配时,无法得知TCAM^项中的内容,即无法得知匹配成功的字段哪一个是非规则字段,即便如果预先得知TCAM表项中的内容并确定哪一个字段中含有默认匹配成功的内容,但是默认匹配成功的字段也经常被用于前缀匹配或者规则并未对该字段作出限制的场合,因此仅仅通本实施例中在SRAM记录中含有非规则字段信息,利用该信息可以得知TCAM表项对应的整条规则中的非规则字段。在实际中,可以采用标志位信息的方式实现非规则字段信息,例如,对于整条规则中包含五个字段(源IP地址、目的IP地址、协议号、源端口和目的端口)的情况,为了表示非规则字段信息可以设置5比特的标志位信息,标志位信息中的每一位分别对应上述五个字段,每一位的内容标识对应的字段是否为非规则字段,例如可以规定每一位的取值为l时,表示对应的字段为非规则字段,为o时,表示对应的字段不是非规则字段。例如,图4中,当报文的关键字(199.188.1.1,192.168.0.3,6,80,2000)与TCAM表项匹配成功时,通过对应的SRAM记录的标志位10001得知整条规则的非规则字段包括源IP地址和目的端口。步骤S303:将与整条规则的非规则字段对应的报文关键字与SRAM中存储的非规则字段对应的正向关键字进行匹配,如果SRAM中存储的所有非规则字段的正向关键字与相应的报文关键字匹配全部不成功,则判定该报文的关4建字与整条规则匹配成功,并执行步骤S304;否则,可以根据实际需要执行步骤S305:结束本次匹配,进4亍下一次匹配。为了进一步节省SRAM记录的数目,本实例中SRAM记录中存储的是非规则字段的正向关键字,这样就不需要再利用扩展记录数目的方式来直接表示原来的非规则字段,只不过,在进行匹配时,如果报文关键字与SRAM记录中的非规则字段的正向关键字匹配不成功,则相反表示该报文关键字与整条规则中的相应非规则字段匹配成功;如果报文的关键字与SRAM记录中的所有非规则字段的正向关键字均匹配不成功,则说明报文的关键字与该SRAM记录对应的整条规则中的所有非规则字段匹配成功。因此,对于能够与TCAM表项匹配成功并且与SRAM记录中的所有正向关键字匹配不成功的报文,可以认定其匹配整条少见则。例如,图4中详细示出的SRAM记录的非规则字段为源IP地址、目的端口,特别地,在图4中非规则字段源IP地址的正向关键字采用CIDR表示方式,即采用32位的IP起始地址和5位的IP地址长度共同表示非规则IP地址的正向关键字。不论非规则字段是源IP地址还是目的IP地址,对应正向关键字都可以表示成一个网段,例如图4中SRAM记录对应的非规则字,爻源IP地址为!(192.168.0.0-16),那么对应的正向关键字就应该能够表示192.168.0.016,利用IP起始地址和IP地址长度可以表示一个IP地址网段。因为网段192.168.0.0-16的IP地址长度为16,用二进制表示为10000,所以图4的SRAM记录中源IP地址正向关4定字包括IP起始地址为192.168.0.0和IP地址长度10000。对于非规则字段为端口的情况,由于对应的正向关键字应该能够表示一个端口的正向范围,例如!(1024~2048)对应的正向关4定字应该能够表示1024~2048,所以本实施例中优选采用端口下限和端口上限结合的范围表示方式。例如,图4中的SRAM记录中目的端口下限为1024,而目的端口上限为2048,这样就可以表示一个非规则字段!(10242048)的正向关键字。同理对于非规则字段为协议号的情形,对应的正向关键字也可以采用协议号下限和协议号上限来表示。本领域技术人员应该能够理解,表示非规则字段的正向关键字还可以釆用其4也表示方式。下面具体说明非规则字段的匹配过程,例如,报文的关键字为(199.188.1.1,192.168.0.3,6,80,2000),规则仍为对外部网络从80端口访问内部网络非1024到2048的TCP才艮文进行一定的动作处理,所以相应的TCAM表项和该表项对应的SRAM记录仍可以采用如图4中详细示出的内容。由上文分析已经知道该4艮文的关键字与该TCAM表项能够匹配成功,所以根据相应的SRAM记录中的标志位信息可以得知源IP地址和目的端口字^a为非头见则字段,所以将报文的关键字199.188丄1和2000分别与SRAM中的非规则字段的正向关键字192.168.0.0~16和(1024,2048)进行匹酉己,得出目的端口与SRAM中相应的正向关键字匹配成功,由于存在能够与SRAM中的正向关键字匹配成功的情况,则可以判定该报文的关键字与整条规则匹配不成功。如果报文的关键字为(199.188.1.1,192.168.0.3,6,80,3000),通过类似上述的处理过程,最终可以得出该关键字不仅与TCAM表项匹配成功,而且与该TCAM表项对应的SRAM记录中的正向关键字匹配全部不成功,则此时可以判定该报文的关^t字与整条规则匹配成功,并继续执行步骤S304.步骤S304:对所述净艮文执行SRAM记录中预存的动作。如果实现最终的报文分类的目的,还要对与不同规则匹配成功的各个报文执行相应的动作,该动作与现有技术类似,存储在与相应规则对应的SRAM记录中。行匹配,所以步骤S304是可选的,并不构成对本发明实施例中的实质内容的限制。本实施例提供的方法中,一条TCAM表项对应一整条规则,在TCAM表项中对于非规则字段设定为默认匹配成功,而对于非规则字段的实际匹配过程由与TCAM表项对应的SRAM记录来完成,而且在SRAM记录中存储的是非规TCAM表项数目,提高TCAM的利用率的优点。实施例二本实施例提供一种报文分类中的非规则匹配装置,如图5所示,该装置500包括TCAM表项匹配单元501,用于将报文的关键字与TCAM中的表项进行匹配,所述TCAM表项与整条规则相对应,所述TCAM的表项中与非规则字段对应的部分默认匹配成功;非规则字段获取单元502,用于根据TCAM表项对应的SRAM记录中的非规则字段标识信息,获知整条规则中的非规则字段;SRAM记录匹配单元503,用于在TCAM表项匹配单元501的匹配结果成功时,将所述报文的非规则字段的关键字与所述SRAM记录中的非规则字段的正向关键字进行匹配,如果匹配全部不成功,则判定所述报文与整条规则匹配成功。本实施例提供的装置在进行非规则匹配时,能够提高TCAM表项的利用率。实施例三本实施例提供一种网络系统,如图6所示,该系统600包括TCAM表项匹配单元601,用于将报文的关键字与TCAM中的表项进行匹配,所述TCAM表项与整条规则相对应,所述TCAM的表项中与非规则字段对应的部分默认匹配成功;非规则字段获取单元602,用于根据TCAM表项对应的SRAM记录中的非规则字段标识信息,获知整条规则中的非规则字段;SRAM记录匹配单元603,用于在TCAM表项匹配单元601的匹配结果成功时,将所述报文的非规则字段的关键字与所述SRAM记录中的非规则字段的正向关键字进行匹配,如果匹配全部不成功,则判定所述报文与整条规则匹配成功;TCAM存储单元604,用于存储所述TCAM表项;SRAM存储单元605,用于存储所述SRAM记录;报文分类处理单元606,用于根据SRAM记录中存储的动作信息,对与整条规则匹配成功的报文进行相应的处理。本实施例提供的网络系统在进行非规则匹配时,能够提高TCAM表项的利用率。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。权利要求1、一种报文分类中的非规则匹配方法,其特征在于,包括将所述报文的关键字与三重内容可寻址存储器TCAM中的表项进行匹配,所述TCAM表项与整条规则相对应,所述TCAM的表项中与非规则字段对应的部分默认匹配成功;如果所述报文的关键字与TCAM表项匹配成功,则通过与该TCAM表项对应的SRAM记录中的非规则字段标识信息,获知整条规则中的非规则字段;将所述报文中的非规则字段的关键字与所述SRAM记录中的非规则字段对应的正向关键字进行匹配,如果匹配全部不成功,则判定该报文与整条规则匹配成功。2、根据权利要求l所述的方法,其特征在于,在所述TCAM表项中非规则字段对应的部分为填入*。3、根据权利要求l所述的方法,其特征在于,所述SRAM记录中的非规则字段标识信息为标志位信息,所述标志位信息中每一位分别标识整条规则中的对应的字段是否为非规则字段。4、根据权利要求l所述的方法,其特征在于,当所述非规则字段包括IP地址时,所述SRAM记录中相应的正向关键字包括IP起始地址和IP地址长度。5、根据权利要求l所述的方法,其特征在于,当所述非规则字段包括端口地址时,所述SRAM记录中相应的正向关键字包括端口上限和端口下限。6、根据权利要求l所述的方法,其特征在于,当所述非规则字段包括协议号时,所述SRAM记录中相应的正向关^:字包括协_汉号上限和协议号下限。7、根据权利要求l-6所述的方法,其特征在于,所述方法还包括如果所述报文的关键字与TCAM表项匹配不成功,则将所述报文的关键字进行下一次匹配。8、根据权利要求l-6所述的方法,其特征在于,所述方法还包括如果所匹配的过程中,存在正向关键字匹配成功,则将所述报文的关键字进行下一次匹配。9、才艮据权利要求l-6所述的方法,其特征在于,所述方法还包括将所述报文的关键字与TCAM中的表项进行匹配之前,从所述报文中提取关键字。10、根据权利要求l-6所述的方法,其特征在于,所述方法还包括在判定报文与整条规则匹配成功后,根据相应的SRAM记录中的动作信息,对所述报文进行处理。11、一种报文分类中的非规则匹配装置,其特征在于,包括三重内容可寻址存储器TCAM表项匹配单元,用于将报文的关键字与TCAM中的表项进行匹配,所述TCAM表项与整条规则相对应,所述TCAM的表项中与非规则字段对应的部分默认匹配成功;非规则字段获取单元,用于根据TCAM表项对应的SRAM记录中的非规则字段标识信息,获知整条规则中的非规则字段;SRAM记录匹配单元,用于在TCAM表项匹配单元的匹配结果成功时,将所述报文的非规则字段的关键字与所述SRAM记录中的非规则字段的正向关键字进行匹配,如果匹配全部不成功,则判定所述报文与整条规则匹配成功。12、一种网络系统,其特征在于,包括三重内容可寻址存储器TCAM表项匹配单元,用于将报文的关键字与TCAM中的表项进行匹配,所述TCAM表项与整条身见则相对应,所述TCAM的表项中与非规则字段对应的部分默认匹配成功;非规则字段获取单元,用于根据TCAM表项对应的SRAM记录中的非规则字段标识信息,获知整条规则中的非规则字段;SRAM记录匹配单元,用于在TCAM表项匹配单元的匹配结果成功时,将所述报文的非规则字段的关键字与所述SRAM记录中的非规则字段的正向关键字进行匹配,如果匹配全部不成功,则判定所述净艮文与整条规则匹配成功;TCAM存储单元,用于存储所述TCAM表项;SRAM存储单元,用于存储所述SRAM记录;报文分类处理单元,用于根据SRAM记录中存储的动作信息,对与整条规则匹配成功的才艮文进行相应的处理。全文摘要本发明实施例提供一种报文分类中的非规则匹配方法、装置和网络系统,该方法包括将所述报文的关键字与三重内容可寻址存储器TCAM中的表项进行匹配,所述TCAM表项与整条规则相对应,所述TCAM的表项中与非规则字段对应的部分默认匹配成功;如果所述报文的关键字与TCAM表项匹配成功,则通过与该TCAM表项对应的SRAM记录中的非规则字段标识信息,获知整条规则中的非规则字段;将所述报文中的非规则字段的关键字与所述SRAM记录中的非规则字段对应的正向关键字进行匹配,如果匹配全部不成功,则判定该报文与整条规则匹配成功。根据本发明实施例,能够提高TCAM表项的利用率。文档编号H04L12/56GK101478482SQ200910000608公开日2009年7月8日申请日期2009年1月8日优先权日2009年1月8日发明者夏军波,梁仲斌,郭云飞,陈庶樵申请人:中国人民解放军信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1