标志集合式两维报文分类及查找方法和设备的制作方法

文档序号:7959402阅读:165来源:国知局
专利名称:标志集合式两维报文分类及查找方法和设备的制作方法
技术领域
本发明属于计算机网络技术中IP报文转发和处理领域。更具体地,本发明涉及一种标志集合式两维报文分类及查找方法和设备,能够充分利用目前网络处理器中流行的多核处理器技术来实现两维报文快速分类,以提高网络处理中的报文分类速度。
背景技术
互联网业务的多样化和差异化,要求网络设备能够根据网络中报文的相关信息对数据报文进行差异化处理。这就要求分类器能够根据报文头部的相关信息将报文进行分类,以实现网络处理的差异化。报文分类(packet classification)指利用分类器对到达的分组查找出符合的规则,以辨识其所属的流,它是网络系统中的一个重要而基本的功能。许多网络关键技术,如防火墙、虚拟专用网(VPN)、网络地址转换、服务质量(QoS)、网络入侵检测监控、拥塞控制、传输测量与记账、以及未来的IPv6流标识、异步传输模式(ATM)信元交换等都涉及到报文分类。
目前,主要有两个途径去解决报文的分类1.软件实现方法通过通用处理器执行软件实现的分类算法实现,为了达到快速的分类速度,这需要设计复杂的数据结构,并且软件实现的方法,虽然灵活性好,但是其性能受到限制。
2.硬件方法通过TCAM器件的全相联方式能够快速存取数据的特点来实现快速报文分类,但是TCAM的存储密度低,价格高,功耗大,不利于大规模规则库的使用。

发明内容
本发明的目的是提供一种标志集合式两维报文分类及查找方法和设备,能够充分利用目前网络处理器中流行的多核处理器技术来实现两维报文快速分类,以提高网络处理中的报文分类速度。
本发明的另一目的是提供一种标志集合式两维报文分类及查找方法和设备,能够不改变原有多核处理器核心设计,而通过一种简单的装置对两维规则库做简单的预处理并实现两维报文规则的存取管理。
为了实现上述目的,根据本发明,提出了一种标志集合式两维报文分类及查找方法,包括将两维规则库的针对报文的规则划分为前缀集合,并且将每个前缀集合划分为标志集合;利用标志集合的标志、维信息和合并串信息来建立查找表;以及当输入报文以进行查找时,利用所述查找表来查找所述报文的匹配规则应处的标志集合,以获取所述报文的匹配规则。
优选地,所述两维规则库的针对报文的规则划分为前缀集合的步骤包括将两维规则库的针对报文的规则根据所述规则的第一维和第二维的前缀长度的组合划分为前缀集合,并且给每个前缀集合分配一个相应的哈希函数。
优选地,同一前缀集合里的规则具有同样的前缀长度组合。
优选地,将每个前缀集合划分为标志集合的步骤包括按照“长维不相同时,其特征串也不相同”的方式将将每个前缀集合划分为标志集合,每一个标志集合具有不同的标志。
优选地,所述查找表包括规则的第一维信息查找表、第二维信息查找表、两维信息合并串查找表。
优选地,所述查找表具有用于规则的第一维和第二维的信息的查找的第一存储结构,以及用于规则的第一维和第二维合并串的信息的查找的第二存储结构。
优选地,所述建立查找表的步骤还包括建立与第一存储结构相对应的查找匹配树,以及建立与第二存储结构相对应的查找匹配树。
优选地,利用所述查找表来查找所述报文的匹配规则应处的标志集合,以获取所述报文的匹配规则的步骤包括分别取出报文的第一维信息、第二维信息、两维的合并串信息;根据查找表的关键字,并行操作数据报文前缀匹配规则的第一维,第二维,两维的合并串信息;根据查找表包含的标志集合,分别获取最长前缀匹配规则的第一维、第二维、两维合并串信息所包含的标志集合;根据所得到的三个标志集合,求得它们的交集;利用所述交集中具有最高优先级的标志、以及报文的两维信息来获取所述报文的匹配规则。
为了实现上述目的,还提出了一种用于标志集合式两维报文分类及查找的设备,包括两维报文分类装置,用于将两维规则库的针对报文的规则划分为前缀集合,并且将每个前缀集合划分为标志集合,并且利用标志集合的标志、维信息和合并串信息来建立查找表;外部存储器,用于散列存放每个标志集合分组所对应的哈希函数;以及多核处理器,用于当输入报文以进行查找时,进行控制以便利用两维报文分类装置中所建立的查找表来查找所述报文的匹配规则应处的标志集合,以获取所述报文的匹配规则。
优选地,所述两维报文分类装置包括输入接口电路,提供规则输入的数据接口,以便将输入的规则送往两维规则库预处理单元电路;两维规则库预处理单元电路,具有查找表存储单元和预处理电路,所述预处理电路将两维规则库的针对报文的规则划分为前缀集合,并且将每个前缀集合划分为标志集合,并且利用标志集合的标志、维信息和合并串信息来建立查找表;哈希函数管理单元电路,用于确定每个标志集合分组所对应的哈希函数,并保存到所述外部存储器;以及分别与所述多核处理器和所述外部存储器进行接口的处理器接口电路和存储器接口电路。


通过参考以下结合附图对所采用的优选实施例的详细描述,本发明的上述目的、优点和特征将变得显而易见,其中图1是示出了根据本发明实施例的标志集合式两维报文分类装置的内部结构图;图2是示出了根据本发明实施例的标志集合式两维报文分类装置的外部连接图;图3是示出了根据本发明实施例的两维规则库预处理过程的流程图;图4和图5是示出了根据本发明实施例的查找表里查找单元的两种结构的示意图;图6是示出了根据本发明实施例的匹配规则查找过程的流程图;图7是示出了根据本发明实施例的一个简化的两维规则库例子的示意图;图8是示出了图7所示例子的前缀集合的划分的示意图;图9是示出了图7所示例子的标志集合的划分的示意图;以及图10是示出了根据图9的划分而建立的用于查找的查找表的逻辑结构的示意图。
具体实施例方式
为了便于后面的阐述,做以下约定和定义(1)两维规则库的规则的匹配域部分均转化为网络前缀的比特串形式;(2)两个比特串A、B,其中B的长度为h且A的长度≥h,当A的h位子串和B相同时,则称A前缀匹配B;(3)两维规则中,把前缀长度长的维称为长维,前缀短的维称为短维;(4)p位等位合并串是由长度分别为m(m≥p≥0)、n(n≥p≥0)的二值比特串(a1a2a3…am-1am)、(b1b2b3…bn-1bn)组成的新二值比特串(a1b1a2b2a3b3…ap-1bp-1apbp);(5)规则的合并串就是将第一维和第二维按短维长度合并的等位合并串;(6)k位子串(a1a2a3…ap-1ak)是二值比特串A(a1a2a3…am-1am)的第一位到第k位(m≥k>0)的部分比特串,记为子串(k,A);(7)长维的短维长度的子串称为长维的特征串。如(110,111000),长维是第二维,短维是第一维,且其长度为3,则长维的特征串为(111000)的3位子串,即111;(8)根据两维规则的长度组合把规则划分为若干集合,每个集合就是一个前缀集合,记为T(m,n),其中m是第一维的长度,n是第二维的长度,属于同一个前缀集合的规则具有同样的前缀长度组合。如(111,11)和(100,10)都属于前缀集合T(3,2),它们都具有同样的前缀长度组合,而(111,11)和(10,100)就不属于同一个前缀集合,因为长度组合不同。
下面将参考附图来描述本发明的优选实施例。本发明的两维报文分类装置的体系结构如图1所示,主要由下面几个电路和接口组成(1)输入接口电路(1-1)提供规则输入的数据接口,负责将数据送往两维规则库预处理单元电路。
(2)两维规则库预处理单元电路(1-2)由存储单元构成的查找表(1-3)和对两维规则库进行处理的预处理电路(1-4)组成,该电路负责完成规则库里规则的前缀集合和标志集合的划分和存放,并建立用于查找的查找表;(3)处理器接口电路(1-5)提供用于网络处理的多核处理器的接口;(4)哈希函数管理单元(1-6)由存储单元构成的哈希函数表(1-7)和哈希函数入口标识电路(1-8)构成,该电路负责管理与前缀集合对应的哈希存取函数;(5)存储器接口电路(1-9)提供存放两维规则库的存储器接口。
具体地,其中所述的两维规则库预处理单元电路(1-2)主要是包括可由可编程门阵列(FPGA)和存储器实现的下述电路(1)预处理电路(1-4)对两维规则库里的规则进行预处理,按照标志集合的划分准则划分成标志集合,并为建立查找表提供信息;(2)查找表(1-3)用于存放规则查找的信息表。
另外,其中所述的哈希函数管理单元电路(1-6)主要是由存储器构成,存放用于存取规则的哈希函数,并且可以根据哈希函数的标识号取出对应的哈希函数,包括(1)哈希函数表(1-7)存放标志集合对应的哈希函数;
(2)哈希函数入口标识电路(1-8)哈希函数入口标识由前缀集合的标志组成,通过该电路,可以读取与前缀集合对应的哈希函数。
上述各电路的连接关系为当新的两维规则库加入时,通过输入接口电路(1-1)将其输入到两维规则库预处理单元(1-2),在预处理电路(1-4)进行前缀集合和标志集合的处理,利用规则的前缀信息、两维前缀合并的比特串信息和它所在的标志集合的标志来建立查找表,并存放在查找表(1-3)中,处理后的规则由哈希函数管理单元(1-6)将规则所在的前缀集合通过哈希函数入口标识电路(1-8)在哈希函数表(1-7)查询得到哈希散列函数,利用哈希散列函数通过存储器接口电路(1-9)将规则存放到外部存储器里。
本发明的两维报文分类器与用于网络处理的多核处理器和存储单元的连接关系如图2所示。各部分的名称是(1)标志集合式两维报文分类器(2-1)具体结构如图1所示;(2)用于网络处理的多核处理器(2-2),用于当输入报文以进行查找时,进行控制以便利用所述查找表来查找所述报文的匹配规则应处的标志集合,以获取所述报文的匹配规则。
(3)外部存储器(2-3)存放按照标志集合划分的两维规则库的存储器;上述各模块的连接关系为标志集合式两维报文分类器(2-1)根据输入的两维报文规则库,按照标志集合进行分组,每个分组按照对应的哈希函数散列存放到外部存储器(2-3)。进行查找时,用于网络处理的多核处理器(2-2)根据读取的分类器(2-1)中所包括的查找表来确定包含匹配规则的标志集合。
本发明的标志集合式两维报文分类及查找方法涉及的处理过程包括标志集合的划分过程、查找表的建立过程和查找过程。
首先所述标志集合的划分准则包括(1)对每个前缀集合的规则划分为标志集合,要求每个标志集合里的规则满足条件长维不相同时,其特征串也不相同;(2)可以证明如果数据报文的第一维,第二维的信息都能前缀匹配存在于某个标志集合里的规则,并且它们的合并串信息也能前缀匹配这个标志集合的包含的合并串,那么这个标志集合一定含有这个数据报文的匹配规则。
所述标志集合的划分过程按照以下步骤进行(1)将两维规则库的规则根据其第一维、第二维的前缀长度的组合划分为前缀集合,同一前缀集合里的规则具有同样的前缀长度组合;(2)每个前缀集合对应一个哈希函数,根据哈希函数通过哈希函数管理单元散列存放到外部存储器中;(3)对每个前缀集合按照上述的标志集合的划分准则划分为标志集合;根据每个标志集合里的规则的前缀信息和标志建立成查找表。
具体地,标志集合的划分过程如图3。
首先,在步骤301,将规则库里没有经过划分处理的新规则输入到预处理单元里。然后,在步骤303,根据这条规则的第一维和第二维的前缀长度组合寻找这个组合对应的前缀集合。接着在步骤305,判断这个前缀集合是否已经存在,并根据前缀集合是否存在的情况执行步骤307或步骤309。若这个前缀集合存在,则执行步骤307,步骤307完成将这条新规则加入到这个前缀集合的过程;若这个前缀集合不存在,则执行步骤309,在这个步骤里,创建一个新的前缀集合,并且该集合对应的前缀长度组合由这条规则决定,同时把这条规则加入到这个新建的前缀集合里。在步骤311,检查规则库里的所有规则是否都被划分到不同的前缀集合里,若还存在没有划分的规则,则取出一条没有划分的规则作为新的输入,回到步骤301;若规则全部划分完毕,则往下执行步骤313。在步骤313,针对某个前缀集合,将其集合里的规则按照其长维的信息,降序或者升序重新排序。接着,在步骤315里,从排好序的前缀集合里取出一条待分配到标志集合的规则。这条待分配到标志集合的规则在步骤317里,与这个前缀集合里已经存在的一个标志集合里的排序最后的规则的长维信息和特征串信息分别比较,并将比较的结果送到步骤319。在步骤319,若长维信息相等或者长维信息不相等且特征串信息也不相等时,则执行步骤325,否则执行步骤321。在步骤321,检查是否还有没有比较过的标志集合,若有,则用没有比较过的标志集合执行步骤317;若没有,说明已经和所有的标志集合进行过比较,则往下执行步骤323。在步骤323里,建立一个新的标志集合。在步骤325里,是将从步骤319或步骤323里的结果加入到一个标志集合里,对于步骤319的结果,是添加这条规则到一个存在的标志集合,而步骤323是把这条规则加入步骤323新建的标志集合里。接着,执行步骤327,主要是检查这个前缀集合里的规则是否都作了划分到标志集合的处理流程,如果不是,则对其中没有处理的规则执行从步骤315开始的流程,如果是,则往下执行步骤329。在步骤329,主要是检查是否对所有的前缀集合都进行了从步骤313开始的标志集合划分的处理过程,如果不是,则对其中没有处理的前缀集合执行从步骤313开始的处理流程,如果是,则说明规则库的所有前缀集合都经过处理,则整个处理流程结束。
预处理单元电路共含有3个查找表,分别是规则的第一维信息查找表、第二维信息查找表、两维信息合并串查找表。查找表是由若干查找单元组成的表,查找单元有两种结构,第一种结构用于规则的第一维和第二维的信息的查找,由四个部分组成,其中地址号是查找单元的地址,关键字是比特串信息上的一个位信息,由于每个位仅能取值0或者1,因此分为下一关键字为0的地址号和下一个关键字为1的地址号,第四部分是查找到该单元时包含的标志单元的信息,如图4所示。第二种结构用于规则的第一维和第二维合并串的信息的查找,由六个部分组成地址号、下一个关键字为“00”的地址号、下一个关键字为“01”的地址号、下一个关键字为“10”的地址号、下一个关键字为“11”的地址号、以及包含的标志集合编号,如图5所示。
然后,根据第一维、第二维的前缀信息分别建立第一维和第二维的查找匹配树,树的节点信息按照上述的第一种存储结构存储;之后,建立第一维和第二维等位合并串的查找匹配树,树的节点信息按照上述的第二种存储结构存储;图6是示出了根据本发明实施例的匹配规则查找过程的流程图。
如图6所示,在步骤601,分别取出报文的第一维信息、第二维信息、两维的合并串信息。在步骤603,根据查找表的关键字,并行操作数据报文前缀匹配规则的第一维,第二维,两维的合并串信息。然后,在步骤605,根据查找表包含的标志集合,分别得到最长前缀匹配规则的第一维、第二维、两维合并串信息所包含的标志集合。在步骤607,根据所得到的三个标志集合,求得它们的交集。在步骤609,交集所对应的标志集合都包含报文匹配的规则,根据标志集合的优先级,以最高优先级的标志集合的标志作为哈希查找的标志。最后,将查找标志和报文的两维信息交给哈希函数管理单元,哈希查找到匹配规则。
下面参考图7到10来举例说明这些过程。
如图7所示的含有9条规则的简化两维规则库(简化起见,假设规则的前缀长度最大为5比特)。
根据本发明,首先进行标志集合的划分,然后建立查找表。
(1)根据前缀长度的组合将规则划分为前缀集合,并且每个前缀集合对应一个哈希函数,利用哈希函数将这些规则散列存放到存储器中,如图8所示;(2)在每个前缀集合,按照“长维不相同时,其特征串也不相同”的原则把每个前缀集合划分为标志集合,如图9所示,每个标志集合具有唯一的标志,同时利用标志、规则的维信息和合并串的信息建立查找表,查找表的逻辑关系和查找树类似,具体如图10所示。如图10所示,每个节点边上标注的信息就是存放在查找单元里包含的标志集合信息,节点里的信息标志该节点所对应的关键字,节点的分支分别指向下一个不同关键字的地址号。
查找时,按下列步骤进行。
假设一个两维数据报文P(11000,11011)。第一维信息11000在第一维的查找表进行查找,第二维信息11011在第二维的查找表进行查找,两维的合并串信息(11 11 00 01 01)在两维合并串的查找表进行查找。这三个查找过程同时进行。
分别得到包含的标志集合为{T1_1,T2_1,T3_1}、{T3_1,T1_2,T2_2}、以及{T1_1,T2_1,T3_1}。取它们的交集为{T3_1}。
因为标志集合T3_1对应的哈希函数为F3。把F3和两维信息(11000,11011)交给哈希函数管理单元,可读取出规则D(110,11)是报文的匹配规则。
尽管以上已经结合本发明的优选实施例示出了本发明,但是本领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以对本发明进行各种修改、替换和改变。因此,本发明不应由上述实施例来限定,而应由所附权利要求及其等价物来限定。
权利要求
1.一种标志集合式两维报文分类及查找方法,包括将两维规则库的针对报文的规则划分为前缀集合,并且将每个前缀集合划分为标志集合;利用标志集合的标志、维信息和合并串信息来建立查找表;以及当输入报文以进行查找时,利用所述查找表来查找所述报文的匹配规则应处的标志集合,以获取所述报文的匹配规则。
2.根据权利要求1所述的方法,其特征在于所述两维规则库的针对报文的规则划分为前缀集合的步骤包括将两维规则库的针对报文的规则根据所述规则的第一维和第二维的前缀长度的组合划分为前缀集合,并且给每个前缀集合分配一个相应的哈希函数。
3.根据权利要求2所述的方法,其特征在于同一前缀集合里的规则具有同样的前缀长度组合。
4.根据权利要求1所述的方法,其特征在于将每个前缀集合划分为标志集合的步骤包括按照“长维不相同时,其特征串也不相同”的方式将将每个前缀集合划分为标志集合,每一个标志集合具有不同的标志。
5.根据权利要求1所述的方法,其特征在于所述查找表包括规则的第一维信息查找表、第二维信息查找表、两维信息合并串查找表。
6.根据权利要求5所述的方法,其特征在于所述查找表具有用于规则的第一维和第二维的信息的查找的第一存储结构,以及用于规则的第一维和第二维合并串的信息的查找的第二存储结构。
7.根据权利要求6所述的方法,其特征在于所述建立查找表的步骤还包括建立与第一存储结构相对应的查找匹配树,以及建立与第二存储结构相对应的查找匹配树。
8.根据权利要求1所述的方法,其特征在于利用所述查找表来查找所述报文的匹配规则应处的标志集合,以获取所述报文的匹配规则的步骤包括分别取出报文的第一维信息、第二维信息、两维的合并串信息;根据查找表的关键字,并行操作数据报文前缀匹配规则的第一维,第二维,两维的合并串信息;根据查找表包含的标志集合,分别获取最长前缀匹配规则的第一维、第二维、两维合并串信息所包含的标志集合;根据所得到的三个标志集合,求得它们的交集;利用所述交集中具有最高优先级的标志、以及报文的两维信息来获取所述报文的匹配规则。
9.一种用于标志集合式两维报文分类及查找的设备,包括两维报文分类装置,用于将两维规则库的针对报文的规则划分为前缀集合,并且将每个前缀集合划分为标志集合,并且利用标志集合的标志、维信息和合并串信息来建立查找表;外部存储器,用于根据前缀集合对应的哈希函数散列存放每个标志集合分组所包含的规则;以及多核处理器,用于当输入报文以进行查找时,进行控制以便利用两维报文分类装置中所建立的查找表来查找所述报文的匹配规则应处的标志集合,以获取所述报文的匹配规则。
10.根据权利要求9所述的设备,其特征在于所述两维报文分类装置包括输入接口电路,提供规则输入的数据接口,以便将输入的规则送往两维规则库预处理单元电路;两维规则库预处理单元电路,具有查找表存储单元和预处理电路,所述预处理电路将两维规则库的针对报文的规则划分为前缀集合,并且将每个前缀集合划分为标志集合,并且利用标志集合的标志、维信息和合并串信息来建立查找表;哈希函数管理单元电路,用于确定每个标志集合分组所对应的哈希函数,并保存到所述外部存储器;以及分别与所述多核处理器和所述外部存储器进行接口的处理器接口电路和存储器接口电路。
全文摘要
根据本发明,提出了一种用于标志集合式两维报文分类及查找的设备,包括两维报文分类装置,用于将两维规则库的针对报文的规则划分为前缀集合,并且将每个前缀集合划分为标志集合,并且利用标志集合的标志、维信息和合并串信息来建立查找表;外部存储器,用于散列存放每个标志集合分组所对应的哈希函数;以及多核处理器,用于当输入报文以进行查找时,进行控制以便利用两维报文分类装置中所建立的查找表来查找所述报文的匹配规则应处的标志集合,以获取所述报文的匹配规则。
文档编号H04L12/56GK1852259SQ20061007207
公开日2006年10月25日 申请日期2006年4月6日 优先权日2006年4月6日
发明者刘彤, 李华伟, 李晓维 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1