分组识别装置和分组识别方法

文档序号:7871403阅读:312来源:国知局
专利名称:分组识别装置和分组识别方法
技术领域
本发明涉及一种用于识别分组内容的分组识别装置和分组识别方法,更具体地,涉及通过与预先记录的数据进行比较来识别分组的分组识别装置和分组识别方法。
背景技术
作为对通过IP(互联网协议)网络传送的分组进行处理的基本功能,传统上已知一种基于IP地址、TCP(传输控制协议)端口号等来识别各个分组的功能。例如,在使用路由器对分组进行路由时,基于目的IP地址确定下一个传送目的地的接口。另外,在NAT(网络地址转换)的情况下,路由器基于目的和源IP地址以及目的和源TCP端口号来执行IP地址和端口号的转换。
此外,当VPN(虚拟专用网)装置对加密分组进行解密时,VPN装置的分组识别装置将预先记录的信息(在下文中称为查找表)与当前正在处理的分组的内容进行比较。
图20表示传统查找表的数据结构的示例。在查找表910中,记录有SA ID、Src IP地址、Dst IP地址以及SPI(安全参数索引)。应该注意,SA ID表示SA(安全关联)的标识符,Src IP地址表示源IP地址,而Dst IP地址表示目的IP地址。
分组识别装置在如上构造的查找表910中的记录与包含在分组中的要进行比较的多条信息的集合(目的IP地址、源IP地址和SPI)之间进行比较,并且基于与该信息相匹配的记录的SA ID来识别出SA。VPN装置基于该SA来选择合适的密钥并执行解密。
图21是传统的分组识别处理的流程图。下面,按照步骤编号顺序来描述图21所示的处理。
分组识别装置将变量i设置为0。
分组识别装置确定查找表910中的第i条记录是否有效。如果第i条记录有效,则处理进行到步骤S93,而如果第i条记录无效,则处理进行到步骤S96。
分组识别装置将查找表910的第i条记录的ESP报头中的源IP地址、目的IP地址和SPI分别与分组中的那些对应信息进行比较。
分组识别装置基于步骤S93中的比较结果,来确定第i条记录和该分组之间的所有比较的数据项是否都匹配。如果所有比较的数据项都匹配,则处理进行到步骤S95。如果存在任何不匹配,则处理进行到步骤S96。
分组识别装置输出表示第i条记录和该分组之间匹配的信息,随后终止当前处理。
分组识别装置将变量i加1。
分组识别装置确定变量i是否大于查找表910中所登记的记录数量。如果变量i大于所登记的记录的数量,则处理进行到步骤S98,而如果变量i等于或小于所登记的记录的数量,则处理返回到步骤S92。
分组识别装置输出表示所有记录和分组之间的不匹配信息,然后终止当前处理。
如上所述,在现有技术中,通过依次对所接收分组的ESP报头中的目的IP地址、源IP地址和SPI与查找表中的所有项进行比较的程序来识别所接收分组的SA。
此外,在对分组进行路由时,在表示各个目的IP地址的32位值之间进行比较。此外,在执行NAT时,在分别由表示目的和源IP地址以及目的和源TCP端口号的总共96位定义的数据值之间进行比较。
应该注意,在图21中,为了搜索查找表,采用了一种最简单的方法,即按照SA编号的顺序搜索查找表。除了该方法之外,还存在多种用于有效搜索的算法,但是就以下方面来说,它们没有区别在一次比较处理中,将所接收的分组与所记录数据中的一条记录进行比较。因此,随着所记录数据的数量增大,搜索时间必然增加。
通常通过软件来进行该比较,从而给软件处理造成很重的负担。因此,可以预料到,用于进行比较的处理将会在未来网络操作提速过程中时常产生瓶颈。另外,当开始广泛使用IPv6(其中一个目的IP地址由128位表示)时,用于进行比较的数据量将急剧增加,从而导致软件处理的负担进一步增加。
数据比较不仅可以通过软件也可以通过硬件(例如参见日本待审专利公报(公开)No.H04-109337)来进行。能够进行数据比较的硬件包括CAM(内容可寻址存储器)。CAM的使用使得能够高速识别各个分组。但是,如果为了进行比较而存储的数据量太大,则要求使用大容量的CAM。这里的问题在于,CAM的使用被复杂化,此外,需要更多数量的引脚,以在单次操作中比较大量数据。由于这个原因,就设计而言安装大容量的CAM非常困难。此外,CAM非常昂贵,因此由于经济原因,通常很难增加CAM容量。从上面很显然可以看出,增大CAM容量的想法是不现实的。
在执行高度发达的分组过滤、分组加密/解密等时需要比较大量的数据。还设想了一种技术,以使路由器能够实现高度发达的分组过滤,而不需要增大CAM的容量。
例如,提出了一种CAM,其能够使用多个确定电路来执行对包含在分组中的多条信息(例如MAC地址和IP地址)进行的高速比较,其中该多个确定电路分别包括具有屏蔽功能的比较电路(例如,参见日本待审专利公报(公开)No.H07-143156)。在这种技术中,当输入要进行比较的数据时,根据掩码数据(mask data)对数据库寄存器的内容进行屏蔽,然后在未屏蔽的位和所输入数据的对应位之间进行比较。
这样,可以使用单个CAM来进行涉及IP地址和MAC地址比较的数据传送。例如,使用IP地址的预定位进行过滤,并且当确定分组不要进行IP地址过滤时,执行MAC地址比较,从而选择输出目的地的接口。
在日本待审专利公报(公开)No.H04-109337中公开的这种类型的CAM中,为了避免增加CAM的容量,在数据库寄存器中存储有用于进行比较的IP地址、MAC地址和其它数据项之一。因此,当对要进行比较的数据(下文中称为“比较数据”)进行转换(例如,从IP地址到MAC地址)时,对数据库寄存器和数据库屏蔽寄存器进行重写,这降低了处理速度。
此外,根据在前述专利公报中公开的发明,在与可存储在数据库寄存器中的一条记录的数据长度相对应的单元中,执行用于屏蔽和比较的处理。因此,需要使用能够对与一条记录的数据宽度相对应的位进行比较的比较电路等。在这种情况下,如果提供一种大得足够存储在比较中所使用的所有数据项(例如IP地址、MAC地址等)的数据库寄存器,将会增大比较电路的尺寸,这导致CAM的制造成本增加。

发明内容
鉴于前述内容而提出本发明,并且本发明的目的是提供一种分组识别装置和分组识别方法,其能够在抑制电路尺寸增大的同时实现高速分组识别。
为了实现上述目的,本发明的第一方面提供了一种用于识别输入分组的内容的分组识别装置。该分组识别装置的特征在于,包括查找表,该查找表以分布式的方式在各个存储区(具有逐个属性限定的地址)中存储有多个参考数据,每一个参考数据都被分为与各个属性相关的单元数据,并且该查找表在被输入读取地址时是可操作的,以输出与这些属性中对应于该读取地址的属性相关的多个单元数据;分析电路,该分析电路对输入分组中的比较数据项的属性进行分析;地址控制电路,该地址控制电路将与通过该分析电路进行了分析的比较数据项的属性相对应的地址输出到该查找表,作为读取地址;以及多个单元比较电路,其分别与该多个参考数据相关联,用于分别对从该查找表输出的该多个单元数据中的相关单元数据与通过该分析电路进行了分析的比较数据项进行比较。
为了实现上述目的,本发明的第二方面提供了一种用于识别输入分组的内容的分组识别装置。该分组识别装置的特征在于,包括彼此并行连接的多个分组识别单元,这些分组识别单元中的每一个都包括查找表,该查找表以分布式的方式在各个存储区(具有逐个属性限定的地址)中存储有多个参考数据,每一个参考数据都被分为与各个属性相关的单元数据,并且该查找表在被输入读取地址时是可操作的,以输出与这些属性中对应于该读取地址的属性相关的多个单元数据;分析电路,该分析电路对输入分组中的比较数据项的属性进行分析;地址控制电路,该地址控制电路将与通过该分析电路进行了分析的比较数据项的属性相对应的地址输出到该查找表,作为读取地址;以及多个单元比较电路,其分别与该多个参考数据相关联,用于分别对从该查找表输出的该多个单元数据中的相关单元数据与通过该分析电路进行了分析的比较数据项进行比较。
为了实现上述目的,本发明的第三方面提供了一种用于识别输入分组的内容的分组识别方法。该分组识别方法的特征在于,包括以下步骤以分布式的方式在各个存储区(具有逐个属性限定的地址)中预先存储多个参考数据,每一个参考数据都被分为与各个属性相关联的单元数据;对该输入分组中的比较数据项的属性进行分析;从查找表的存储区中获取多个单元数据,该存储区由与所分析的比较数据项的属性相关联的地址来表示;以及使用多个单元比较电路在所获取的单元数据和比较数据项之间执行并行比较,由此确定该比较数据项是否与所获取的单元数据中的任何一个相匹配。
根据以下结合附图进行的描述,本发明的以上和其它特征以及优点将变得更加明了,附图以示例的方式说明了本发明的优选实施例。


图1是本发明的概念图;图2表示彼此并行连接的多个分组识别单元;图3表示根据本发明一实施例的系统构造的示例;图4是表示VPN装置的内部构造的示例的方框图;图5表示查找表的数据结构的示例;
图6表示SA表的数据结构的示例;图7是表示分组识别装置的内部构造的方框图;图8表示存储在查找表中的数据的存储区;图9表示参考数据的划分记录的示例;图10是表示单元比较电路的内部构造的方框图;图11是表示协议分析电路的内部构造的方框图;图12是表示协议分析电路的操作示例的时序图的第一部分;图13是表示协议分析电路的操作示例的时序图的第二部分;图14是表示由匹配确定记录电路执行的处理的流程图;图15是表示由比较执行寄存器电路执行的处理的流程图;图16是表示由子网掩码长度寄存器电路执行的内部处理的流程图;图17是表示由地址控制电路执行的内部处理的第一流程图;图18是表示由地址控制电路执行的内部处理的第二流程图;图19是表示由地址控制电路执行的内部处理的第三流程图;图20表示传统的查找表的数据结构的示例;以及图21是表示传统的分组识别处理的流程图。
具体实施例方式
现将参照表示本发明优选实施例的附图来详细描述本发明。
首先,说明应用于该实施例的本发明的概要,然后给出该实施例的详细描述。
图1是本发明的概念图。根据本发明的分组识别装置10与比较数据输出电路20相连。比较数据输出电路20逐个单元数据地将当前正在处理的分组的数据输入给分组识别装置10。例如,比较数据输出电路20逐个字节地将通过路由器或VPN装置传送的分组输入给该分组识别装置10。
分组识别装置10使用与所记录的参考数据相同数量的电路同时执行从比较数据输出电路20输入的比较数据和多个预先记录的参考数据之间的并行比较,其中这些电路彼此并联设置。为了进行这些比较操作,分组识别装置10具有查找表11、分析电路12、地址控制电路13和单元比较电路14a、14b、...、以及14n。
查找表11存储有多个参考数据11a、11b、...以及11n(处于分别被分为多个单元数据的状态)。当从地址控制电路13输入读取地址时,查找表11从与该地址相对应的存储区中将单元数据分别输出给单元比较电路14a、14b、...、以及14n。
对构成一条参考数据的单元数据进行划分,并以分布式的方式将其存储在各个存储区中,每一个存储区都由与该数据的属性相关联的地址表示。在具有不同地址的各个存储区的最高位部分(most significant parts)(在图1中,假定查找表11的左侧是最高位部分,并假定右侧是最低位部分)中分别存储有构成参考数据11a的单元数据。将构成参考数据11b的单元数据存储在具有不同地址的各个存储区中,以使得各个单元数据紧跟在构成参考数据11a的单元数据中的对应单元之后。将构成参考数据11n的单元数据存储在具有不同地址的各个存储区中的最低位部分中。
分析电路12基于所接收的比较数据来识别要进行识别的数据的属性(例如,数据所基于的协议)。分析电路12将所识别的属性的识别信息通知给地址控制电路13。此外,分析电路12将所接收的比较数据输入给各个单元比较电路14a、14b、...、以及14n。
地址控制电路13控制查找表11的地址。更具体地,地址控制电路13预先识别查找表11的多个存储区的相应地址,其中在各个存储区中存储有与特定属性相关联的单元数据。当从分析电路12接收到属性的识别信息时,地址控制电路13将与该属性相对应的地址输入给查找表11,作为读取地址。
单元比较电路14a、14b、...、以及14n将该比较数据与记录在查找表11中的单元数据进行比较。该比较例如可以根据值之间的匹配或不匹配来进行。也可以比较值的大小。
应该注意,可以在比较数据输出电路20侧设置分析电路12或地址控制电路13。在这种情况下,从比较数据输出电路20输出要进行识别的比较数据和读取地址,并且分组识别装置10仅执行比较数据和参考数据之间的比较。
在如上所述构造的分组识别装置10中,当从比较数据输出电路20输入作为分组的组成部分的数据时,由分析电路12对该输入数据的属性进行分析。当该输入数据是比较数据时,从分析电路12将该比较数据的属性的识别信息发送给地址控制电路13。此外,从分析电路12将该比较数据传送给单元比较电路14a、14b、...、以及14n。
当接收到属性的识别信息时,地址控制电路13将与该属性相关的地址输入给查找表11作为读取地址,然后从查找表11将参考数据中具有与比较数据相同属性的单元数据输入给各个单元比较电路14a、14b、...、以及14n。在单元比较电路14a、14b、...、以及14n中,逐位进行比较数据和单元数据之间的并行比较,并且输出比较的结果。
例如,当图1中所示的分组识别装置10要执行IPsec的SA(安全关联)识别时,将要保护的终端单元的IP地址等存储在参查找表11中作为参考数据。然后,输入要传送的分组的IP地址作为比较数据,并且输出记录在通过比较操作识别为匹配的参考数据中的SA ID。
这种分组识别装置10的使用使得硬件能够执行高速分组识别。另外,由于逐个单元数据地进行比较处理,所以可以防止相关电路的尺寸的增大。
应该注意,本发明的分组识别装置10的并联连接是可能的。在这种情况下,具有与图1所示的分组识别装置10相同的电路的多个分组识别单元可以彼此并联连接,以形成单个分组识别装置。
图2表示彼此并联连接的多个分组识别单元。如图2所示,多个分组识别单元10a、10b、...、以及10m并联连接。这些分组识别单元10a、10b、...、以及10m从比较数据输出单元20接收公共数据。分组识别单元10a、10b、...、以及10m存储有彼此不同的各个参考数据,以执行包含在分组中的比较数据与参考数据之间的比较。然后,从已检测到与比较数据相匹配的参考数据的分组识别单元输出比较结果。没有检测到与比较数据相匹配的参考数据的分组识别单元输出0或进入高阻抗状态。这样,可以将来自所有分组识别单元的结果容易地集中在单个数据总线中。
如上所述,分组识别单元10a、10b、...、以及10m可以并联使用。用于分组识别单元10a、10b、...、以及10m的并联连接的布线非常简单,从而甚至在需要对许多条信息进行比较时,也可以容易地并行使用多个分组识别单元。此外,由于所有的比较都是并行执行的,所以在处理速度方面与操作单个分组识别单元的情况没有区别。
尽管在以上描述中,采用IPsec的SA识别作为示例,但是应该理解,本发明的应用并不限于此。例如,通过将目的IP地址设置为比较数据并且将目的接口设置为匹配检测后要输出的数据,可以将本发明用于分组路由。此外,可以将本发明应用于识别NAT连接以及输出用于转换的IP地址和端口号,以及用于分组识别的其它广泛的使用范围,包括分组过滤在内。
此外,由于一次发送给分组识别单元的数据限于数据量很小的单元数据,所以可以减小数据总线的宽度,从而利于简化电路构造。这使得可以减小分组识别单元的尺寸,从而利于这些单元的安装。
接下来,描述将本发明应用于互联网上的VPN装置的具体实施例。
图3表示根据本发明的系统构造的示例。在本实施例中,VPN装置100包括用于解密的分组识别装置110和用于加密的分组识别装置120。类似地,VPN装置200包括用于解密的分组识别装置210和用于加密的分组识别装置220。VPN装置100和200中的每一个都具有LAN端接口和互联网端接口。
VPN装置100和200通过互联网30彼此连接。终端单元33通过路由器31与VPN装置100相连。终端单元34通过路由器32与VPN装置200相连。VPN装置100和200中的每一个都对从LAN发往互联网30的分组进行加密,并且对从互联网30接收的加密分组进行解密,并将解密的分组发送给相关的LAN。
应该注意,尽管在所述示例中,VPN装置100(200)和路由器31(32)彼此分离,但是也可以将它们构造为集成的整体装置。
在下文中,将作为代表性示例来描述VPN装置100的分组识别装置110。应该注意,除了用于识别的参数不同之外,用于加密的分组识别装置120在构造方面与用于解密的分组识别装置110基本相同。此外,设置在VPN装置200中的用于解密的分组识别装置210和用于加密的分组识别装置220在构造和功能方面分别与VPN装置100的分组识别装置110和120相同。为了简化描述,在此假定不执行分组验证,但是可以很容易地另外提供验证功能。
图4表示VPN装置的内部构造的示例。VPN装置100不仅包括用于解密的分组识别装置110和用于加密的分组识别装置120,而且还包括下文中提到的其它组成元件。
用于解密的分组识别装置110具有查找表111,并且对查找表111中的参考数据与用于识别的数据进行比较,从而识别该分组的SA(安全关联)。然后,分组识别装置110返回SA ID作为识别结果。
类似地,用于加密的分组识别装置120具有查找表121,并且对查找表121中的参考数据与用于识别的数据行比较,从而识别该分组的SA。然后,分组识别装置120返回SA ID作为识别结果。
作为用于从互联网30到LAN的数据传送的组成元件,设置有互联网侧网络接收端口131、分组接收电路132、分组解密电路133、分组发送电路134和路由器侧发送端口135。
互联网侧网络接收端口131与互联网30相连,并且将通过互联网30接收的分组输出给分组接收电路132。
分组接收电路132接收从互联网侧网络接收端口131输入的分组。然后,分组接收电路132将所接收的分组中的数据依次输出给分组识别装置110。当从分组识别装置110接收到作为识别结果的SA ID时,分组接收电路132将该SA ID添加到各个相关分组,以将附加有该SA ID的分组发送给分组解密电路133。
分组解密电路133具有SA表133a。在SA表133a中,与相应的SAID相关地设置SA。分组解密电路133基于从分组接收电路132传送的SA ID选择用于分组解密的SA,并且使用该SA对该分组进行解密。该分组解密电路133将经过解密的分组传送给分组发送电路134。
分组发送电路134与路由侧网络发送端口135相连,并且通过路由器侧网络发送端口135将将经过解密的分组发送给LAN。
路由器侧网络发送端口135是通过LAN与路由器31相连的通信端口。
作为用于从LAN到互联网30的数据传送的组成元件,设置有路由侧网络接收端口141、分组接收电路142、分组加密电路143、分组发送电路144和互联网侧网络发送端口145。
路由器侧网络接收端口141通过LAN与路由器31相连,并且将通过LAN接收的分组输出到分组接收电路142。
分组接收电路142接收从路由器侧网络接收端口141输入的分组。然后,分组接收电路142将所接收到的分组中的数据依次输出给分组识别装置120。当从分组识别装置120接收到作为识别结果的SA ID时,分组接收电路142将SA ID添加到该相关分组中,以将附加有SA ID的分组发送给分组加密电路143。
分组加密电路143具有SA表143a。在该SA表143a中,与相应的SA ID相关地设置SA。分组加密电路143基于从分组接收电路142传送的SA ID来选择用于分组加密的SA,并且使用该SA对分组进行加密。该分组加密电路143将经过加密的分组传送给分组发送电路144。
分组发送电路144与互联网侧网络发送端口145相连,并且将经过加密的分组通过互联网侧网络发送端口145发送给互联网30。
互联网侧网络发送端口145是与互联网30相连的通信端口。
应该注意,在分组识别装置110和120中,存在执行加密和解密所需的预记录信息。
图5表示查找表的数据结构的示例。查找表111具有下述多个列SA ID、有效、Src-IP、Dst-IP、SPI(安全参数索引)以及控制。设置在各行中的信息项彼此相关联,以构成一条记录。
SA ID表示用于识别所登记的记录的识别信息。
“有效”表示下述标志,该标志表示与SA ID相关的记录数据是有效(1)还是无效(0)。
Scr-IP表示源IP地址。在处理分组时,分组识别装置110对分组中的源IP地址与Src-IP字段中的信息进行比较。应该注意,图5中出现的IP.Router-B表示路由器32的IP地址。
Dst-IP表示目的IP地址。在处理分组时,分组识别装置110对目的IP地址与Dst-IP字段中的信息进行比较。Dst-IP列中的字段中的“忽略”表示可以根据相关的“控制”字段中的设置忽略目的IP地址的比较,这在下文中会提到。应该注意,图5中出现的IP.Router-A表示路由器31的IP地址。
SPI表示用于识别SA的信息。在处理分组时,分组识别装置110对ESP报头中的SPI参数与SPI字段中的信息进行比较。
“控制”表示2位标志,该2位标志表示是否需要进行比较。如果“控制”字段中的位
被设置为1,则不执行相关Src-IP地址的比较,而如果位
被设置为0,则执行相关Src-IP地址的比较。此外,如果位[1]被设置为1,则不执行相关Dst-IP地址的比较,而如果位[1]设置为0,则执行相关Dst-IP地址的比较。
应该注意,包含在用于加密的分组识别装置120中的查找表121的数据结构基本上与图5中所示的查找表的数据结构相同。但是,除了Src-IP和Dst-IP列之外,作为用于比较的项,查找表121还具有Src端口(源端口号)和Dsc端口(目的端口号)列。分组识别装置120执行Src-IP、Dst-IP、Src端口和Dsc端口的比较。
图6表示SA表的数据结构的示例。该SA表133a具有SA ID、有效、DECODE_KEY和DES/3DES列。设置在每一行中的多个信息项彼此相关联以构成一条记录。
SA ID表示用于识别已登记的记录并且指示查找表111中的相关记录的识别信息。
DECODE_KEY表示用于解密的密钥。在图6中,解密密钥由KEY1或KEY2表示。
DES/3DES表示下述信息,该信息表示加密/解密方法。当该字段中的信息被设置为0时,将DES用作解密协议,而当该信息被设置为1时,将3DES用作解密协议。
存储在SA表133a中的信息可以包含在查找表111中。在这种情况下,输出记录在相关DECODE_KEY和DES/3DES字段中的信息项作为识别结果。
应该注意,包含在分组加密电路143中的SA表143a具有与图6所示相同的数据结构。
通过使用如上所述构造的VPN装置100,可以对通过互联网30发送的分组进行加密和解密。尽管图4到6表示VPN装置100的构造,但是VPN装置200具有与VPN装置100相同的构造。
接下来,详细描述VPN装置100在从互联网30接收到加密分组时执行分组解密的处理。
首先,分组接收电路132接收输入到互联网侧网络接收端口131的分组。然后,分组接收电路132将构成分组的数据传送给用于解密的分组识别装置110。
分组识别装置110基于所接收的数据来识别分组,并且将识别结果(SA ID)传送给分组接收电路132。从分组接收电路132将该识别结果传送给分组解密电路133。
分组解密电路133基于所接收的SA ID从SA表133a获取用于解密的解密协议和密钥,并且对该分组进行解密。该处理也可以通过软件来执行。
如上所述,本分组识别装置的使用使得在VPN装置100中能够实现高速SA ID识别。
尽管在上面的描述中,作为示例说明了VPN装置100中的分组解密处理,但是还可以通过改变用于比较的数据(字段)来容易地将本发明应用于NAT连接、路由、过滤等的识别。通过预记录与各种字段相关联的数据,可以将相同的识别装置用于各种应用。此外,可以在与IP地址相关联的字段中使用子网掩码。
接下来,描述分组识别装置的内部构造。
图7是表示分组识别装置的内部构造的方框图。分组识别装置110具有查找表111、协议分析电路112、地址控制电路113和多个单元比较电路114a、114b、...、和114n。
查找表111存储有多个参考数据111a、111b、...、和111n。每一个参考数据111a、111b、...、和111n都被分为单元数据,每一个单元数据都存储在分配给其协议的地址中。应该注意,协议的各个地址按照分组中的比较数据项的排列顺序来定义。更具体地,与较早输入的比较数据项的协议相关的地址被设置为较小的值。
将待识别的分组数据逐个单元数据地输入给协议分析电路112。协议分析电路112对各个输入单元数据的属性(即,单元数据所基于的协议)进行分析,并且确定该单元数据是否为比较数据。例如,可以将IP报头中的IP地址以及TCP报头中的端口号确定为比较数据。应该注意,可以基于IP分组的数据结构(数据格式)的预定定义来识别各个单元数据的协议。
当检测到输入了比较数据时,协议分析电路112向每一个单元比较电路114a、114b、...、和114n输出比较执行信号。同时,协议分析电路112将表示比较数据的协议的信息(协议信息)传送给地址控制电路113。
协议分析电路112可以通过计数器和状态机来实现,其可以识别每一个字段,例如IP报头。协议分析电路112在输出各个比较项(例如,IP地址或TCP端口号)之前,输出用于设置比较条件的控制信号(比较条件设置信号),然后根据需要从缓存器输出比较数据。将在下文中详细描述该处理。
地址控制电路113根据从协议分析电路112输出的比较执行信号和协议信息,将用于读出数据的地址提供给查找表111。更具体地,根据比较数据项的输入顺序来设置查找表111中的各个参考数据项的单元数据,因此地址控制电路113对寻址进行控制,以使得无论何时接收到比较执行信号,都从“字1”开始顺序读取各个单元数据。
尽管在本实施例中,为了简化,假定为从“字1”开始顺序读取单元数据,但是这并不是限制性的,而是地址控制方法可以依赖于如何记录参考数据。此外,在传送比较项(例如IP地址或TCP端口)之前设置比较条件的情况下,地址控制电路113基于协议信息检测输入各个比较项的定时,并且对寻址进行控制,以使得在所检测的定时从查找表111中读出用于该项的比较条件。
单元比较电路114a、114b、...、和114n逐个单元数据地对从比较数据输出电路接收的数据和从查找表111读出的参考数据111a、111b、...、和111n行逐位比较。并联设置与参考数据111a、111b、...、和111n相同数量的单元比较电路114a、114b、...、和114n,其中这些参考数据可以记录在查找表111中。
在单元比较电路114a、114b、...、和114n中的每一个中,保持与比较数据和参考数据之间的匹配是否从第一个单元数据持续到当前单元数据相关的信息,直到比较处理结束为止。因此,单元比较电路114a、114b、...、和114n需要包含用于判断该匹配状态是否持续的至少一个1位寄存器。此外,除了上述1位寄存器之外,还需要用于存储与比较项相关的比较条件的多个寄存器,这些比较条件例如是“从比较对象中排除TCP端口号”和“使用指定的子网掩码来用于IP地址比较”,以及“要使用的子网掩码”的信息。如果与各个比较项相关联地提供用于存储比较条件的寄存器,则将会不可避免地增大各个比较电路的尺寸。但是,在本实施例中,由于比较条件是在输入比较项的数据之前设置的,所以可以减小电路尺寸。
图8表示用于存储在查找表中的数据的存储区。如图8所示,在查找表111中的存储区“字1”中,并行记录有具有从参考数据#1开始的单元数据长度的数据、具有从参考数据#2开始的单元数据长度的数据、...、以及具有从参考数据#n开始的单元数据长度的数据。存储区“字2”和“字3”以及后续存储区都以与存储区“字1”相同的方式存储所记录的数据。
尽管在图8中所示的参考数据记录方法中,查找表被构造为使得在各个参考数据中首先出现具有指定为最小值的地址(字编号)的单元数据,但是这并不是限制性的,还可以采用与地址控制方法相关联的任何合适的记录顺序。此外,在查找表111中使用的存储器类型并不限于SRAM或DRAM,例如还可以使用FIFO。
在下文中,详细描述分组识别装置110的功能。在下面的描述中,假定用于比较的单元数据的长度(单元比较数据长度)是8位,并且为了简化,对源IP地址和目的IP地址进行比较。但是,应该理解,单元比较数据长度和比较数据并不限于这些示例。
图9表示参考数据的划分记录的示例。如图9中所示,将参考数据111a分为1字节单元数据,并且每一个单元数据都存储在单个地址中。
在地址“0”中,设置了表示参考数据111a的有效性的标志。如果参考数据111a有效,则将位0设置为“1”,而如果参考数据111a无效,则将位0设置为“0”。
在地址“1”中,设置了表示是否需要比较源IP地址的标志。如果需要比较源IP地址,则将位0设置为“1”,而如果不需要比较源IP地址,则将位0设置为“0”。此外,将位[5:1]设置为“子网掩码长度-1”的值。
地址“2”存储了源IP地址的第一个字节。地址“3”存储了源IP地址的第二个字节。地址“4”存储了源IP地址的第三个字节。地址“5”存储了源IP地址的最后一个字节。
在地址“6”中,设置了表示是否需要比较目的IP地址的标志。如果需要比较目的IP地址,位0设置为“1”,而如果不需要比较目的IP地址,将位0设置为“0”。此外,将位[5:1]设置为“子网掩码长度-1”的值。
地址“7”存储了目的IP地址的第一个字节。地址“8”存储了目的IP地址的第二个字节。地址“9”存储了目的IP地址的第三个字节。地址“10”存储了目的IP地址的最后一个字节。
在地址“11”中,设置了表示是否需要比较SPI的标志。位0表示是否需要进行该比较,并且在本实施例中,始终将位0设置为表示需要进行该比较的值“1”。此外,将位[5:1]固定为值31。
地址“12”存储了SPI的第一个字节。地址“13”存储了SPI的第二个字节。地址“14”存储了SPI的第三个字节。地址“15”存储了SPI的最后一个字节。
地址“16”存储了SA ID。
应该注意,在所述的示例中,不仅记录参考数据,而且记录用于各个参考数据项的比较条件(在本示例中,为是否进行比较以及“子网掩码长度-1”)以及作为输出数据的SA ID。不是记录字网掩码长度而是“子网掩码长度-1”的原因是为了节省各个寄存器的位宽度。为了在不使用子网的情况下比较所有位,将“子网掩码长度-1”的值唯一地设置为31。
图10是表示单元比较电路的内部构造的方框图。单元比较电路114a包括作为寄存器的匹配确定寄存器电路115a、比较执行寄存器电路115b、以及子网掩码长度寄存器电路115c。这些寄存器电路包括数据保持电路和逻辑电路。逻辑电路执行对数据保持电路输入和输出数据。此外,单元比较电路114a具有子网掩码产生电路115d和比较器115e。
寄存器由总共7位构成1位用于匹配确定寄存器电路115a,1位用于比较执行寄存器电路115b,以及5位用于子网掩码长度寄存器电路115c。
应该注意,在本实施例中,为各个参考项设置了比较条件,以使寄存器的总共7位足够用。如果要一次设置多个参考项的比较条件,则必须为源IP地址和目的IP地址中的每一个提供比较执行寄存器电路和子网掩码长度寄存器电路,以使寄存器的总容量达到13位,包括用于匹配确定寄存器电路115a的1位,这基本上使电路尺寸加倍。
各个寄存器接收相关参考数据(单元数据)的一个位或多个位。此外,匹配确定寄存器电路115a从协议分析电路112接收参考数据有效性设置信号和比较执行信号,并且从比较器115e接收匹配信号。比较执行寄存器电路115b从协议分析电路112接收比较条件设置信号。子网掩码长度寄存器电路115c从协议分析电路112接收比较条件设置信号和比较执行信号。
子网掩码产生电路115d根据对子网掩码长度寄存器电路115c设置的值来产生用于比较数据的掩码。子网掩码产生电路115d将所产生的掩码数据输入给比较器115e。
比较器115e将子网掩码应用于比较数据,然后执行比较数据与参考数据的比较。如果通过比较检测到匹配,则比较器115e输出匹配信号。
应该注意,尽管图10作为代表性示例表示了单元比较电路114a的内部构造,但是其它单元比较电路114b、...、和114n也具有与电路114a相同的内部构造。
此外,如下文中所述,协议分析电路112具有根据需要存储原始比较信号以及延迟将数据输出给单元比较电路114a、114b、...、和114n的定时的功能。
图11是表示协议分析电路112的内部构造的方框图。协议分析电路112由协议分析状态机112a、目的IP地址缓存器112b、SPI缓存器112c以及选择器112d组成。
协议分析状态机112a接收原始比较信号。协议分析状态机112a分析输入分组的报头,并且识别所接收的数据项与该分组的哪个参数相对应。当接收到要与参考数据进行比较的数据时,协议分析状态机112a输出协议信号。
从协议分析状态机112a输出的控制信号包括比较条件设置信号、参考数据有效性设置信号以及比较执行信号。将这些信号输出给地址控制电路113和单元比较电路114a、114b、...、和114n。此外,协议分析状态机112a将目的IP地址缓存信号、SPI缓存信号以及数据选择信号作为控制信号分别输出给目的IP地址缓存器112b、SPI缓存器112c以及选择器112d。
目的IP地址缓存器112b是用于对目的IP地址进行缓存的存储区。当从协议分析状态机112a输入目的IP地址缓存信号时,目的IP地址缓存器112b存储当前输入的比较数据(目的IP地址)。
SPI缓存器112c是用于缓存SPI数据的存储区。当从协议分析状态机112a输入SPI缓存信号时,SPI缓存器112c存储当前输入的比较数据(SPI)。
选择器112d基于来自协议分析状态机的数据选择信号从原始比较数据、存储在目的IP地址缓存器112b中的数据以及存储在SPI缓存器112c中的数据中选择要输出的数据。
尽管在图11所示的构造中,当从协议分析状态机112a输出目的IP地址缓存信号时,将数据输入目的IP地址缓存器112b,但是可以将目的IP地址缓存器112b简单地构造为作为用于存储比较数据的一级缓存器来进行操作,而不使用目的IP地址缓存信号。类似地,可以将SPI缓存器112c简单地构造为作为用于存储比较数据的二级缓存器来进行操作,而不使用SPI缓存信号。
接下来,将参照图12和13来描述如上所述构造的协议分析电路的操作。在下面的描述中,假定查找表111由同步存储器实现,该同步存储器在确定地址之后在如下所述的周期中输出数据。
图12是表示协议分析电路的操作示例的时序图的第一部分。图13是该时序图的第二部分。
在图12和13中,从上到下示出了同步时钟信号(时钟)、参考数据有效性设置信号、比较条件设置信号、比较执行信号、子网掩码使用信号、查找表地址、参考/输出数据、比较数据(原始)、比较数据(缓存)以及结果输出信号,这些都在协议分析电路中使用。
在输入IP分组(原始比较数据)之前,从地址控制电路113连续输出查找表地址“0”。因此,从查找表111输出用于设置参考数据有效性/无效性的数据。
在时刻t1输入IP分组(原始比较数据)。
在与时钟的第二个上升时刻相对应的时刻t2,从地址控制电路113输出的查找表的地址转换为“1”。此外,协议分析状态机112a确定参考数据有效性设置信号为高电平。结果,将参考数据的有效位的值存储在单元比较电路114a、114b、...、和114n的相应匹配确定寄存器电路115a中。如果参考单元数据的有效位为有效“1”,则对应的单元比较电路执行分组比较。
在时刻t3,从查找表111中输出用于源IP地址的比较条件设置数据。
在输入源IP地址的数据之前的时刻t4,比较条件设置信号被确定为高电平。结果,将用于源IP地址的比较条件设置数据存储在单元比较电路114a、114b、...、和114n的比较执行寄存器电路115b中,并且将值“子网掩码长度-1”存储在单元比较电路114a、114b、...、和114n的子网掩码长度寄存器电路115c中。如果用于源IP地址的比较条件设置数据表示比较“1”,则对应的单元比较电路执行源IP地址的比较。同时,从地址控制电路113输出的查找表的地址转换为“2”。
在时刻t5,将源IP地址作为比较数据输入,并且将源IP地址的单元数据作为参考数据从查找表111中输出。同时,协议分析状态机112a确定比较执行信号和子网掩码使用信号为高电平。结果,与有效参考数据相对应的单元比较电路根据比较条件执行比较。此时,从地址控制电路113输出的查找表的地址转换为“3”。
然后,将与时钟信号同步地从地址控制电路113输出的查找表的地址转换为“4”、“5”和“6”。同时,连续执行源IP地址比较。
目的IP地址紧接着源IP地址之后,作为比较数据。就在开始目的IP地址的比较之前,在时刻t6确定比较条件设置信号为高电平,并且将用于目的IP地址的比较条件设置数据存储在相关的比较执行寄存器电路115b中。此时,已经开始输入作为原始比较数据的目的IP地址,但是还没有输出参考数据和所缓存的比较数据。更具体地,由于执行了比较条件设置,所以在假定连续输入比较数据的情况下,参考数据的输入延迟了一个周期。
在时刻t6之后一个周期的时刻t7,确定比较执行信号和子网掩码使用信号为高电平。同时,从查找表111输出作为参考数据的目的IP地址的单元数据,并且从协议分析电路112输出在与一个周期相对应的时间段中作为比较数据进行缓存的目的IP地址。由此开始进行目的IP地址的比较。
在完成目的IP地址的比较之后,设置用于ESP报头中SPI的比较条件,然后开始ESP报头中的SPI值的比较。
假定连续输入参考数据,则在执行目的IP地址比较的时刻t8,将ESP报头中的SPI输入给协议分析电路112。在完成目的IP地址比较之后的时刻t9,确定比较条件设置信号为高电平,并且存储用于SPI的比较条件。当连续输入比较数据时,以上操作使得参考数据的输入相对于比较数据的输入延迟两个周期。因此,在比较ESP报头中的SPI时,在与两个周期相对应的时间段中对比较数据进行缓存之后的时刻t10,协议分析电路112执行数据输出。
由此,完成所有项的比较。然后,在时刻t11,从协议分析电路112输出比较结果输出信号。如果在所有项之间存在匹配,则输出相关SAID作为识别结果。
由此对比较数据和参考数据进行比较。
在下文中,参照流程图来描述由各个电路执行的处理的细节。
图14是表示由匹配确定寄存器电路115a执行的处理的流程图。下面将按照步骤编号的顺序来描述图14中所示的处理。
匹配确定寄存器电路115a确定参考数据有效性设置信号是否为高电平。如果确定参考数据有效性设置信号为高电平,则处理进行到步骤S12,而如果确定参考数据有效性设置信号不是高电平,则处理进行到步骤S13。
当确定参考数据有效性设置信号为高电平时,匹配确定寄存器电路115a存储参考数据的有效位(位0)的值。如果参考数据有效,则将有效位(位0)设置为“1”,而如果参考数据无效,则将有效位(位0)设置为“0”。然后,处理返回到步骤S11。
匹配确定寄存器电路115a确定比较执行信号是否为高电平,如果确定比较执行信号为高电平,则处理进行到步骤S14,而如果确定比较执行信号不是高电平,则处理返回到步骤S11。
匹配确定寄存器电路115a确定比较执行寄存器电路115b的值是否为高电平。如果该值为高电平,则处理进行到步骤S15,而如果该值被设置为低电平,则处理返回到步骤S11。
匹配确定寄存器电路115a确定是否从比较器115e输出了高电平匹配信号(表示比较结果检测为匹配)。如果输出高电平匹配信号,则保持存储在该寄存器中的值,并且处理返回到步骤S11。如果没有输出高电平匹配信号,则处理进行到步骤S16。
匹配确定寄存器电路115a将存储在寄存器中的值清为0。然后,处理返回到步骤S11。
如上所述,当参考数据有效性设置信号变为高电平时,在匹配确定寄存器电路115a中存储值1。此外,如果比较执行信号变为高电平,并且在比较执行寄存器被设置为高电平时比较器115e的比较结果表示匹配,则在匹配确定寄存器电路115a中保持值1。另一方面,如果比较器115e的比较结果没有表示匹配,则将存储在匹配确定寄存器电路115a中的值清为0。
图15是表示由比较执行寄存器电路115b执行的处理的流程图。下面将按照步骤编号的顺序描述图15中所示的处理。
比较执行寄存器电路115b确定比较条件设置信号是否为高电平。如果该信号为低电平,则重复执行步骤S21直到确定该信号为高电平为止,而如果该信号为高电平,则处理进行到步骤S22。
比较执行寄存器电路115b存储参考数据的位0。当比较有效时,存储值1(表示高电平输出),而当比较无效时,存储值0(表示低电平输出)。然后,处理返回到步骤S21。
图16是表示由子网掩码长度寄存器电路115c执行的内部处理的流程图。下面将按照步骤编号的顺序描述图16中所示的处理。
子网掩码长度寄存器电路115c确定比较条件设置信号是否为高电平。如果该信号为低电平,则处理进行到步骤S33,而如果该信号为高电平,则处理进行到步骤S32。
子网掩码长度寄存器电路115c存储参考数据的位[5:1]。参考数据的位[5:1]表示“子网掩码长度-1”的值。然后,该处理返回到步骤S31。
子网掩码长度寄存器电路115c确定比较执行信号是否为高电平。如果该信号为低电平,则重复执行S33直到确定该信号为高电平为止,而如果该信号为高电平,则处理进行到步骤S34。
子网掩码长度寄存器电路115c确定为其设置的值是否大于7。如果该值大于7,则处理进行到步骤S36。如果该值等于或小于7,则该处理进行到步骤S35。
子网掩码长度寄存器电路115c将子网掩码长度寄存器设置为0。然后,处理返回到步骤S31。
子网掩码长度寄存器电路115c从对其设置的当前值中减去8。然后处理返回到步骤S31。
如上所述,在子网掩码长度寄存器电路115c中,当确定比较条件设置信号为高电平时,存储参考数据的对应位的值,并且当确定比较执行信号为高电平时,从该值中减去8。重复执行该减法操作,直到该值变为等于0为止。
接下来,将参照图17到19详细描述由地址控制电路执行的内部处理。
图17是表示由地址控制电路执行的内部处理的第一流程图。下面将按照步骤编号的顺序描述图17所示的处理。
地址控制电路113输出参考数据有效性/无效性设置地址作为查找表111的地址。
地址控制电路113确定参考数据有效性设置信号是否为高电平。如果该信号为低电平,则重复执行步骤S42直到确定该信号为高电平为止,而如果该信号为高电平,则处理进行到步骤S43。
地址控制电路113输出源IP地址比较条件设置地址作为查找表111的地址。
地址控制电路113确定比较条件设置信号是否为高电平。如果该信号为低电平,则重复执行步骤S44直到确定该信号为高电平为止,而如果该信号为高电平,则处理进行到步骤S45。
地址控制电路113输出源IP地址的第一字节的地址作为查找表111的地址。
地址控制电路113确定比较执行信号是否为高电平。如果该信号为低电平,则重复执行步骤S46,直到确定该信号为高电平为止,而如果该信号为高电平,则处理进行到步骤S47。
地址控制电路113确定当前输出的地址是否为源IP地址的最后一个字节的地址。如果该地址是最后一个字节的地址,则处理进行到图18中的步骤S51。如果该地址不是最后一个字节的地址,则处理进行到步骤S48。
地址控制电路113输出通过将当前输出的地址加1而获得的地址作为查找表的地址。然后,处理返回到步骤S46。
图18是表示由地址控制电路执行的内部处理的第二流程图。下面将按照步骤编号顺序描述图18中所示的处理。
地址控制电路113输出目的IP地址比较条件设置地址作为查找表111的地址。
地址控制电路113确定比较条件设置信号是否为高电平。如果该信号为低电平,则重复执行步骤S52,直到确定该信号为高电平为止,而如果该信号为高电平,则处理进行到步骤S53。
地址控制电路113输出确定IP地址的第一个字节的地址作为查找表111的地址。
地址控制电路113确定比较执行信号是否为高电平。如果该信号为低电平,则重复执行步骤S54,直到确定该信号为高电平为止,而如果该信号为高电平,则处理进行到步骤S55。
地址控制电路113确定当前输出的地址是否为确定IP地址的最后一个字节的地址。如果该地址是最后一个字节的地址,则处理进行到步骤S57。如果该地址不是最后一个字节的地址,则处理进行到步骤S56。
地址控制电路113输出通过将当前输出的地址加1而获得的地址作为查找表的地址。然后,处理返回到步骤S54。
地址控制电路113输出SPI比较条件设置地址作为查找表111的地址。
地址控制电路113确定比较条件设置信号是否为高电平。如果该信号为低电平,则重复执行步骤S58,直到确定该信号为高电平为止,如果该信号为高电平,则处理进行到步骤S59。
地址控制电路113输出SPI的第一个字节的地址作为查找表111的地址。然后,处理进行到图19中的步骤S61。
图19是表示由地址控制电路执行的内部处理的第三流程图。下面将按照步骤编号的顺序来描述图19所示的处理。
地址控制电路113确定比较执行信号是否为高电平。如果该信号为低电平,则重复执行步骤S61直到确定该信号为高电平为止,如果该信号为高电平,则处理进行到步骤S62。
地址控制电路113确定当前输出的地址是否为SPI的最后一个字节的地址。如果该地址是最后一个字节的地址,则处理进行步骤S64。如果该地址不是最后一个字节的地址,则处理进行到步骤S63。
地址控制电路113输出通过将当前输出的地址加1而获得的地址作为查找表的地址。然后,处理返回到步骤S61。
地址控制电路输出SA ID地址作为查找表S111的地址。
地址控制电路113确定比较结果输出信号是否为高电平。如果该信号为低电平,则重复执行步骤S65,直到确定该信号为高电平为止。如果信号为高电平,则处理进行到步骤S66。
地址控制电路113输出参考数据有效性/无效性设置地址作为查找表111的地址。
由此,可以执行输入分组的识别。在上述实施例中,从查找表中逐个单元数据地输出参考数据,并且在各个单元数据和比较数据之间执行比较。因此,单元比较电路仅需构造为可以同时比较与各个单元数据的数据长度相对应的多个位(例如8位)。这使得可以避免增大各个电路的尺寸。
此外,在本实施例中使用的查找表可以构造为与通用RAM等相类似,以响应于地址输入从查找表输出数据。换句话说,不需要使用CAM。这有利于降低分组识别装置的单价。
此外,根据本发明的分组识别单元可以很容易地并联连接。因此,可以根据参考数据的数量来确定要并联连接的分组识别单元的数量,这有利于根据装置的预期操作来构造分组识别装置。此外,由于如上所述用于执行并行处理的分组识别单元的数量随着参考数据量的增加而增加,所以可以执行每一个分组与大量参考数据的比较,而不增加分组识别所需的时间。
尽管在上述示例中,将用于每次比较操作的数据长度设置为8位,但是这不是限制性的,还可以采用能够执行4位或16位比较的单元比较电路。
应该注意,当用于每次比较操作的数据长度的单位改变时,需要适当地修改产生数据采集信号的定时以及记录参考数据的方法。
此外,当希望采用不仅可以检测IP地址、端口号等的匹配,而且可以通过指定上限值和下限值来确定IP地址、端口号等的范围并确定比较数据是否在该范围内的方法,而不是重复比较具有预定数据长度的单元数据的上述方法时,可以想到下面的方法例如,假定单元数据长度被设置为4位,并且希望使用上限值和下限值来指定端口号(位宽度16位)的范围。在这种情况下,在一个单元比较电路中存储了与端口号相对应的四条比较数据(4位)以及与下限值和上限值中的每一个相对应的四条参考数据,并且由该单元比较电路执行4位比较。
此外,尽管在单元比较电路中,例如通过使用前述的子网掩码从比较中排除了某些IP地址,但是也可以使用同样的方法排除其它属性的各种比较数据中的某一些。
另外,还可以扩展单元比较电路的功能,以使其不仅可以输出匹配信号,还可以输出有关比较数据与哪个参考数据相匹配的信息,或者与该匹配相关的各种信息,这种变型也在本发明的范围内。
此外,当比较数据与多个所记录的数据相匹配时,可以根据条件(例如在一系列记录编号中的位置)将优先权赋予这些记录数据之一,并且这种变型也在本发明的范围内。
另外,在本示例中,假定在查找表中记录的多个参考数据不能同时与比较数据匹配,但是当希望可以同时出现多个匹配时(例如在分组过滤时),可以提供按照记录编号的升序将优先级赋予与比较数据匹配的多个参考数据的功能。这种变型也在本发明的范围内。
在向查找表中记录数据时还可以采用下述构造,其中所需的数据不是一次写入的,而是在多个独立操作中写入。在这种情况下,例如,如果要记录的数据是128位的数据,单元数据长度设置为4位,则要在32个周期中将这些4位的单元数据写入查找表。这使得可以减少分组识别装置的引脚数量,这在安装本装置时是有用的。
如上所述,根据本发明,以划分为多个单元数据的状态来存储参考数据,并且将与比较数据的属性相关的多个单元数据和该比较数据进行比较。因此,比较电路仅需要能够根据单元数据的数据长度来执行数据比较,这有利于降低执行高速分组识别的整个电路的尺寸。
以上内容应该认为仅是本发明原理的说明。另外,由于对于本领域的技术人员来说很容易想到许多修改和变化,所以不希望把本发明限制为所示和所述的具体构造和应用,相应地,所有适当的修改和等效方式都被认为落入所附权利要求及其等效物中的本发明的范围内。
本申请是2003年1月29日提交的国际申请PCT/JP2003/000863的延续申请,根据35U.S.C.§111(a)提交。
权利要求
1.一种用于识别输入分组的内容的分组识别装置,其包括查找表,该查找表以分布式的方式在具有逐个属性限定的地址的各个存储区中存储有多个参考数据,每一个参考数据被分为与各个属性相关的单元数据,并且该查找表在输入读取地址时是可操作的,以输出与这些属性中对应于该读取地址的一个属性相关的多个单元数据;分析电路,该分析电路对所述输入分组中的比较数据项的属性进行分析;地址控制电路,该地址控制电路将与所述分析电路进行了分析的比较数据项的属性相对应的地址输出给所述查找表,作为所述读取数据;以及多个单元比较电路,该多个单元比较电路被设置为分别与所述多个参考数据相关,分别用于对从所述查找表输出的所述多个单元数据中的相关单元数据与由所述分析电路进行了分析的所述比较数据项进行比较。
2.根据权利要求1所述的分组识别装置,其中当从所述分组中提取的所有比较数据项都与所述参考数据中相同属性的相应单元数据相匹配时,所述单元比较电路确定与其相关的参考数据和所述分组之间存在匹配。
3.根据权利要求2所述的分组识别装置,其中所述查找表存储有所述参考数据,所述参考数据包括要作为比较结果输出的比较结果数据,并且其中所述地址控制电路在完成对所述分组中的所有比较数据项的比较后,将存储有所述比较结果数据的存储区的地址输出给所述查找表,并且其中当与所述单元比较电路相关的参考数据与所述分组之间存在匹配时,所述单元比较电路输出从所述查找表传送的所述比较结果数据,作为比较结果。
4.根据权利要求3所述的分组识别装置,其中所述查找表作为所述比较结果数据存储有识别信息,该识别信息唯一地识别在加密/解密中使用的密钥。
5.根据权利要求1所述的分组识别装置,其中所述查找表存储有所述参考数据,所述参考数据包括表示比较条件的比较条件数据,并且其中当所述分析电路接收到预定属性的比较数据项时,所述分析电路输出与该预定属性相关的比较条件设置信号,然后输出用于执行该比较数据项的比较的比较执行信号,并且其中所述地址控制电路响应于所述比较条件设置信号输出与所述比较条件数据相对应的读取地址,并且响应于所述比较执行信号输出与所述预定属性相对应的读取地址,并且其中所述单元比较电路根据从所述查找表传送的所述比较条件数据,对所述比较条件数据之后接收到的比较数据项与所述单元数据进行比较。
6.根据权利要求5所述的分组识别装置,其中所述单元比较电路基于所述比较条件数据来确定是否需要对所述比较数据项与所述单元数据进行比较。
7.根据权利要求5所述的分组识别装置,其中当所述分析电路输出所述比较条件设置信号时,所述分析电路延迟向所述单元比较电路提供后续的比较数据项。
8.根据权利要求7所述的分组识别装置,其中仅当连续输入所述比较数据项时,所述分析电路才延迟提供所述比较数据项。
9.根据权利要求1所述的分组识别装置,其中所述分析电路基于包含在所述分组中的报头信息来确定所述分组中的数据项的属性。
10.根据权利要求1所述的分组识别装置,其中所述单元比较电路基于为所述比较数据项设置的掩码信息,从比较中排除某些比较数据项。
11.一种用于识别输入分组的内容的分组识别装置,其包括彼此并联连接的多个分组识别单元,所述多个分组识别单元中的每一个都包括查找表,该查找表以分布式的方式在具有逐个属性限定的地址的各个存储区中存储有多个参考数据,每一个参考数据被分为与各个属性相关的单元数据,并且该查找表在输入读取地址时是可操作的,以输出与这些属性中对应于该读取地址的一个属性相关的多个单元数据;分析电路,该分析电路对所述输入分组中的比较数据项的属性进行分析;地址控制电路,该地址控制电路将与所述分析电路进行了分析的比较数据项的属性相对应的地址输出给所述查找表,作为所述读取数据;以及多个单元比较电路,该多个单元比较电路被设置为分别与所述多个参考数据相关,分别用于对从所述查找表输出的所述多个单元数据中的相关单元数据与由所述分析电路进行了分析的所述比较数据项行比较。
12.一种用于识别输入分组的内容的方法,包括以下步骤以分布式的方式在具有逐个属性限定的地址的各个存储区中预先存储多个参考数据,每一个参考数据都被分为与各个属性相关的单元数据;对所述输入分组中的比较数据项的属性进行分析;从所述查找表的存储区中获取多个单元数据,该存储区由与经分析的比较数据项的属性相关的地址表示;以及使用多个单元比较电路来执行所获取的单元数据与比较数据项之间的并行比较,由此确定所述比较数据项是否与所获取的单元数据中的任何一个相匹配。
全文摘要
分组识别装置和分组识别方法。一种分组识别装置,其能够在抑制电路尺寸增大的同时实现高速分组识别。查找表以分布式的方式在具有逐个属性限定的地址的各个存储区中存储了多个参考数据,每一个参考数据被分为与各个属性相关的单元数据,并且该查找表在输入读取地址时是可操作的,以输出与这些属性中对应于该读取地址的属性相关的多个单元数据。分析电路对输入分组中的比较数据项的属性进行分析。地址控制电路将与分析电路分析过的比较数据项的属性相对应的地址输出给查找表作为读取数据。分别与该多个参考数据相关地设置多个单元比较电路,分别用于对从查找表输出的多个单元数据中的相关单元数据与由分析电路分析过的比较数据项进行比较。
文档编号H04L12/22GK1689282SQ03823658
公开日2005年10月26日 申请日期2003年1月29日 优先权日2003年1月29日
发明者浅野和也 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1