首页> 中国专利> 分组分类装置和使用字段级特里结构的方法

分组分类装置和使用字段级特里结构的方法

摘要

一种使用字段级特里结构的分组分类装置和方法,包括:主处理部分,用于产生和维护字段级特里结构,所述字段级特里结构在用于分类的分层机构中通过字段组织多字段分组;分类引擎,每个分类引擎被提供了第一分类部分和第二分类部分,所述第一分类部分用于执行查询和更新,并且处理由IP源/目的地址查找所表示的前缀查找,所述第二分类部分用于根据第一分类部分的结果、通过对应的字段来进行分类,以便处理属于所述结果的范围查找。因此,发展了以字段为单位的特里结构,以便保证用于具有良好查询性能的高速联网的分组分类,并且其中可以处理大约50万分类器规则。

著录项

  • 公开/公告号CN1543150A

    专利类型发明专利

  • 公开/公告日2004-11-03

    原文格式PDF

  • 申请/专利权人 三星电子株式会社;科技大学;

    申请/专利号CN200410007212.9

  • 申请日2004-02-27

  • 分类号H04L12/56;

  • 代理机构北京市柳沈律师事务所;

  • 代理人邸万奎

  • 地址 韩国京畿道

  • 入库时间 2023-12-17 15:39:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-12

    未缴年费专利权终止 IPC(主分类):H04L12/56 授权公告日:20080430 终止日期:20160227 申请日:20040227

    专利权的终止

  • 2008-04-30

    授权

    授权

  • 2005-01-05

    实质审查的生效

    实质审查的生效

  • 2004-11-03

    公开

    公开

说明书

技术领域

与本发明一致的装置和方法涉及在通信系统中的诸如分组等的处理项目,具体涉及在路由器中的分类分组中使用字段级特里结构(tries)的分组分类方法和实现所述方法的分组分类装置。本申请要求2003年2月28日在韩国知识产权局提交的韩国专利申请第10-2003-0012902号的优先权,其公开以引用方式被包含在此。

背景技术

在诸如因特网的通信系统中处理分组的过程中,在分组转发路径中的每个转接点解译目的地址,然后确定向哪个输出节点或链路转发分组。在各种通信系统中,基于在每个分组的首标中的目的地址、始发地址或其他数据来提供各种类型的业务。不同类型的业务包括例如在处理或转发分组中的优先级、对于传输要支付的费用、对于特定发送者的分组处理拒绝等等。

因为当前的系统可以处理大量的分组(一般称为数据项),因此所述系统从所接收的分组找出内容,并且因此在很短的时间内和以高速度确定以哪种形式处理分组。

为了在未来的IP网络上向用户提供更先进的业务,诸如业务等级约定、虚拟专用联网(VPN)、QoS等,要根据所期望的标准来分类来自路由器等的IP分组,这被称为“分组分类”。最后根据多字段查找来执行分组分类,因为各个分组字段的值被查找。

换句话说,通过参考在一个分组中的各种字段处理分组来执行分组分类,所述各种字段诸如源地址字段、目的地址字段、协议ID字段、端口号码字段等,这与现有的IP目的地址查找不同。因此,一般需要更多的时间和存储量,并且还没有充分地研究解决这样的问题的方法。

图1-3是用于图解传统的分组分类方法的视图。

表1示出了用于配置传统方法的分组分类器。

[表1]

    滤波器    F1    F2    R1    00*    11*    R2    00*    1*    R3    10*    1*    R4    0*    01*    R5    0*    10*    R6    0*    1*    R7    *    00*

传统分组分类的典型方法包括图1所示的特里结构网格、由图2的范围查找所代表的几何方法、由图3的递归流分类表示的探试法(heuristic method)等等。

在这些方法中,基于特里结构网格的数据结构结合了标准分层特里结构和组修剪(set-pruning)特里结构的优点,并且具有基于被应用了N个分类原则的、W比特长度的首标字段的数量d(即尺寸)的O(dW)的查询时间复杂性和O(NdW)的存储复杂性。这些特性被获得以将转换指针引入数据结构。但是,在比特级的转换指针的形成保证了O(NdW)的存储复杂性,并且逐个比特地实现查询程序。咨询实现方式的真实应用不接受逐个比特的查询程序(或分类)。

在对分组的分类中,重要的考虑事项包括分类速率、存储器大小、分类规则的数量、参考字段的数量、规则更新时间和最差情况性能。

即,为了使得分组分类使用可以获得的存储器来保证最大的性能。重要的是解决与实现给定的存储限制的高性能有关的问题。

发明内容

本发明可以解决至少上述的一些问题,因此本发明的一个示范方面是提供使用字段级特里结构的分组分类装置和方法,它们通过以字段为单位形成特里结构而不是以比特为单位形成传统的特里结构、使用三态内容可寻址存储器(TCAM)和k路搜索处理前缀实现和范围实现来改善查询性能。

为了实现本发明的上述示范方面和/或其他示范特征,提供了一种使用字段级特里结构的分组分类装置,更具体而言,按照本发明的说明性、非限定性分组分类装置具有:主处理部分,用于产生和保存字段级特里结构,所述字段级特里结构在用于分类的分层结构中通过字段组织多字段分组;多个分类引擎,每个被提供了第一分类部分和第二分类部分,所述第一分类部分用于执行查询和更新,并且处理由IP源/目的地址查找所表示的前缀查找,所述第二分类部分用于根据第一分类部分的结果、通过对应的字段来进行分类,以便处理属于所述结果的范围查找。

分类引擎每个包括分类处理器和存储器。

而且,主处理部分和分类引擎通过广播总线连接。

优选但不是必须的是,第一分类部分存储前缀格式的字段,并且使用用于搜索所存储的字段的三态内容可寻址存储器(TCAM)。

优选但不是必须的是,第二分类部分使用k路搜索方案,它具有基于使用和规格的适当k值。

而且,主处理部分通过广播总线向多个分类引擎发送更新指令,并且接收更新指令的分类引擎指令改变它们对应存储器的内容。

以如下的结构来组织字段级特里结构:其中第一组的字段出现在上级,而第二组的字段出现在下级。

如果任何一级的两个节点具有共同的子节点,则字段级特里结构产生和共享仅仅一个节点。

在字段级特里结构中,用于前缀查找的级作为仅仅一个具有彼此组合的一对前缀的级而存在。

按照本发明的一个示范方面,一种用于路由选择系统的分组分类方法包括步骤:通过具有多个字段和形成字段级特里结构的字段分组来开发;通过使用字段级特里结构来处理关于分组分类规则的前缀查找;以及并且在前缀查找处理之后处理范围查找。

附图说明

将通过参照附图详细说明本发明,其中相同的附图标号表示相同的元件,其中:

图1是示出用于传统的分组分类方法的基于特里结构网格的数据结构的视图;

图2是示出用于传统的分组分类方法的范围查找的原理的视图;

图3是示出用于传统的分组分类方法的递归流分类的原理的视图;

图4是示出按照本发明的说明性实施例使用字段级特里结构的分组分类装置的结构的视图;

图5是示出图4的分类引擎的结构的视图;

图6是示出以字段级特里结构构建表2的分类器的数据结构的视图;

图7是示出通过向图5的分类引擎应用TCAM而缩短的用于图6的前缀查找的数据结构的视图;和

图8A和图8B是用于说明在图5的分类引擎中的、用于范围查找的微引擎中执行的k路搜索的原理的视图。

具体实施方式

以下,参照附图来详细说明本发明。

图4是按照本发明的一个说明性实施例使用字段级特里结构的分组分类装置的视图。

如图4所示,所述使用字段级特里结构的分组分类装置包括主处理部分10和多个分类引擎20。

主处理部分10形成和管理字段级特里结构(FLT)数据结构,并且处理和向相应的分类引擎20提供信息。属于相应的接口的分类引擎20实质上分类各个输入的分组。

在高速/核心路由器中,在每个线卡中并行地执行分组分类。因此,每个线卡具有至少一个内置的分类引擎。由于传输链路所需要的带宽,分类引擎被优化来查询功能。

按照本发明的说明性实施例使用字段级特里结构的分组分类方案是混合方案,它组合TCAM技术和k路搜索,并且处理前缀实现和范围实现。

但是,分类是动态的,并且数据结构需要随着时间而改变(例如更新)。在分类引擎中的数据组织可能不适合于诸如插入或删除规则的更新。

在各个线卡中分类是相同的,并且优选但不必须的是,在中央线卡中执行更新功能。

一般来说,主处理部分10被提供了强大的处理器,并且被布置在与线卡分离的板上。

主处理部分10维护用于分类的整体数据结构,并且当需要更新分类时改变所述数据结构。图6-8示出了按照本发明的说明性实施例的数据结构。图6中的数据结构被保存在主处理部分10中,并且图7和图8A和8B中所示的数据结构被用于分类引擎20中。

在所示出的数据结构中,不需要在每个节点存储规则。如图8A和8B所示,在分类引擎20中保存前缀对、k路搜索值和指针。

主处理部分10通过广播总线12向所有的分类引擎20发送更新指令。这些更新指令被分类引擎20使用来指令改变存储器(和/或TCAM)的内容。

图5是示出图4的每个分类引擎20的结构的视图。

每个分类引擎20包括:用于处理由IP源/目的地址查找示的前缀查找的部分21;和用于处理属于第一分类结果的第二分类的部分22。在第二分类中,为了处理范围查找,提供了低级的微引擎来进行通过字段的分类。

为了执行第二分类,使用k路搜索方法,它具有按照使用和规格的适当值。

分类引擎20包括分类处理器32、TCAM 41和具有一般存储器(例如SDRAM和/或SSRAM)的外部存储器42。

分类处理器32中被提供了微引擎31和存储器接口30的主要部件。微引擎31是用于特定应用程序或用于一般目的的RISC处理器。分类引擎的数据结构被存储在所述外部存储器中。内部微引擎31执行对于查询操作的控制功能,并且通过存储器接口30来访问数据。

具有所有被提取字段的分组首标进入在图5左面的分类处理器32。第一微引擎31使用以前缀格式实现的第一k字段,并且向TCAM 41发送所使用的字段。TCAM 41根据所接收的字段来执行搜索,并且向第一微引擎31返回搜索结果。一些微引擎向关于在所述范围中实现的下一个字段上的k路搜索而存在的第二级发送所述结果。例如,图5的一个微引擎31专用于在第二级中的每个字段。但是,在实际的操作中,一个微引擎可以容纳多于一个字段。根据例如搜索各个字段所需要的外部存储器带宽、微引擎速率和平均带宽来确定微引擎的数量。

除了查询功能之外,分类引擎可能需要根据从主处理部分发送的更新指令来改变外部存储器的内容。有两种方法用于解决两个任务之间的竞争。a)在一种方法中,分类引擎交错可以在任何时间执行查询或更新的任务。当更新成本相对于时间消耗小时,可以实现这个方法。b)在另一种方法中,在存储器中建立数据结构的两个拷贝。一个拷贝用于查询,而另一个拷贝用于更新。如果完成一个更新操作,则将所更新的拷贝转向用于查询,并且将另一个拷贝用于更新。当更新成本足够大而大大地降低所述交错方法的查询性能时应用这个方法。

接着,将参照附图来详细说明字段级特里结构分类结构和字段级特里结构分类方法的说明性实施例。

字段级特里结构(FLT)分类结构专用于分类多字段分类器,并且在单独的前缀实现和范围实现中实现每个字段。

表2示出了具有4个字段和7个规则的示范分类器。

[表2]

    规则    F1    F2    F3    F4    R1    00*    110*    6    [10,12]    R2    00*    11*    [4,8]    15    R3    10*    1*    7    9    R4    0*    01*    10    [10,12]    R5    0*    10*    [4,8]    15    R6    0*    1*    10    [10,15]    R7    *    00*    7    15

在表2中,以前缀的形式实现了两个字段F1和F2,并且以范围的形式实现了两个字段F3和F4。图6示出了用于上述分类器的以FLT配置的数据结构。

按照在每个级的对应字段中开始的规则来分类单个分组。如果单个分组通过所有给定级的字段,则完成分类工作,以便单个分组被分配固定的规则。

接着,详细说明图6的字段级特里结构(field-level-trie)数据结构。字段级特里结构被定义为具有下列属性:

1.字段级特里结构逐个字段地以分层结构来被组织。特里结构深度与字段的数量(d)相同。存在图6所示的从F1到F4组织的四个节点级。在图6中,在底部的节点不形成任何独立的级。图6指示当在第四级结束查询程序时哪些规则匹配。

2.在特里结构中的每个节点包括规则集,它是父节点的规则集的子集。特里结构的根节点被定义为包括所有规则。

3.第i级的节点a(根节点被定义为在第一级中)根据在节点a中包括的所有规则的Fi字段的值来产生它在第(i+1)级中的子节点。

根据指定的字段Fi,对于子节点的产生,存在两个不同的步骤。

(a)如果字段Fi被指定一个前缀,则节点a的子节点的数量变为与节点a的规则集中的字段Fi的不同值的数量相同。因此,以不同的前缀来组合相应的子节点。如果子节点b与前缀(p)组合,则在节点b的规则集中包括的规则r(r也被包括在节点a中)的字段Fi的值变为相同或变为节点b的前缀。

例如,在图6中,根节点包括所有7个规则,并且因为在F1字段中存在四个不同的前缀,诸如*、0*、00*和10*,因此产生四个子节点。

与前缀0*组合的节点X包括四个规则R4~R7。用于R4~R6的F1字段的值是0*,它已经与一个前缀组合。用于R7的F1字段的值是*,它是0*的前缀。

(b)如果Fi字段被指定一个范围,则所述范围被投影到编号行上,并且获得一个集的间隔。间隔I和子节点b被产生。在节点b的规则集中包括规则r,并且由规则r的Fi字段指定的范围包括间隔I。例如,节点y产生三个子节点,诸如具有间隔[10,10]的单个点节点y`、具有间隔[6,6]的节点y```、具有间隔[4,5]和[6,7]的节点y``。

在同一级中存在的所有节点的规则集中,在第i级中的节点a的规则集变为特定的。

如果两个节点b和c具有在第(i+1)级中的公共子节点a,则仅仅产生和共享一个节点a。当一个节点被多个指针所指向时,则可以在图6中看到共享一个节点。节点共享类似于在特里结构网格中的转换指针机制,但是在本发明中提出的方法在字段级获得节点共享,而特里结构网格在比特级建立节点共享。因为字段级共享不可避免地伴随复制,因此它改善了查询性能,但是需要更多的存储量。如图6所示,在第2级的四个节点中存储了规则R7。

接着将说明用于字段级特里结构的节点结构和查询程序。

一般以前缀或范围格式来实现每个字段,并且每个实现具有其本身合适的数据结构和搜索算法。因此,分类器具有两组字段。第一组是前缀实现,第二组是范围实现。

在表2中所示的分类器中,F1和F2字段形成第一组,F3和F4字段形成第二组。字段级特里结构被以如下的结构来组织:所述结构使得第一组的字段出现在上级中,而第二组的字段出现在下级中。

对于包括前缀格式的字段的第一组,使用TCAM来存储和搜索前缀。而且,TCAM可以同时容纳多个字段,以便可以仅仅通过到存储器的一次连接来执行在第一组的字段上的查询。

图7是用于示出缩短的数据结构的视图,即通过在图5的分类引擎中应用TCAM而将用于图6的前缀查找的级1和2组合。在图7中,对于字段F1和F2仅仅存在一个级。根节点具有首先出现在图6的第三级中的7个子节点。在图7中,第二级节点的每个具有前缀对,它将F1级的前缀和F2级的前缀彼此组合。这样的前缀对形成TCAM项目内容的格式,所述前缀对是从图6的特里结构得出的。与图7的第二级的节点相对应,对于图6的第三级中的节点X,从根节点到节点X发现具有最小前缀长度的和的路径。沿着这个路径的前缀形成用于图7的节点的前缀对。所有的前缀对以前缀长度在TCAM中减少的顺序被排列。具有相同长度的前缀对在其关联上具有任何的顺序。表3示出了用于图7的示范特里结构的TCAM内容。可以决定在第二级中的适当节点继续整个查询程序。

FLT和TCAM的特征被组合,并且步骤被减少,表3是示出在TCAM中实现的表2的前缀查找部分的示例。

[表3]

    项目    前缀对    节点名称    长度和    1    00*/110*    f    5    2    00*/11*    e    4    3    10*/1*    g    3    4    0*/01*    d    3    5    0*/10*    c    3    6    0*/1*    b    2    7   */00*    a    2

TCAM以降序排列前缀对,以便在TCAM中保证准确的搜索结果,并且决定在第二级中的准确节点继续整个查询程序。

图8A和图8B是用于说明在图5的分类引擎中用于范围查找的微引擎中执行的k路搜索的原理的视图。存储器接口30的大小确定k路搜索的值k,它控制第二分类的主要性能。在给定的环境中,值k越大,则越好。

如果给定要分类的分组首标,则属于第一组的字段被提取,然后被提供到TCAM来用于搜索。来自TCAM的输出指示要在第二级中连接的下一个节点。因为TCAM容纳所有的前缀格式字段,因此查询程序的其余部分依赖于范围实现字段。关于在第二或更低级中存在的节点,对于每个节点使用二进制搜索特里结构(或依赖于外部存储器带宽的k路搜索特里结构)。例如,在特里结构的第i级中存在节点a,其中i>1。在节点a的规则集中的规则的第i个字段被投影到编号线,并且如图8A所示获得具有8个终端E1~E8的7个间隔I1~I7。如果使用3路搜索特里结构来组织这些间隔,则如图8B所示获得特里结构。这是具有四个块的2层特里结构。每个块包括一个k指针和(k-1)个终端。在内部块中的指针指向k路搜索特里结构中的不同块,而在叶块中的指针指向在字段级特里结构中的下一级的节点。下面说明在k路搜索特里结构中的示范搜索程序。

如果在间隔I3中存在指针P,则搜索程序从根块x开始。将指针p与在块x中存储的两个终端E3和E6相比较显示它们的关系是E3<P<E6。与间隔I3组合的第一指针在字段级特里结构的下一级的节点之后。

所述k路搜索是用于范围搜索事项的有效算法。可以在logkM中确定k路搜索特里结构的层的数量,M是间隔的数量。在k路搜索特里结构中的每个块是存储在存储器中的基本单位,对于一次读/写操作需要一次存储器连接。因此,在搜索程序期间,存储器连接的数量与所述k路搜索特里结构的层的数量相同。在此,数量k被块的大小所限制,并且通过存储器带宽来确定块的大小。

字段级特里结构的查询程序从用于具有前缀实现的所有字段的TCAM开始。在达到具有范围实现的字段之后,查询程序逐级地进行,一次一个级,并且执行k路搜索以搜索下一个子节点。当遇到叶节点时所述查询程序结束,并且作为结果反回匹配的规则。

本发明以字段为单位发展了特里结构,以便它可以实现用于高速联网的分组分类,并且保证良好的查询性能。本发明可以处理大约50万个分类器规则。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号