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

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

Info

Publication number
CN100385880C
CN100385880C CNB2004100072129A CN200410007212A CN100385880C CN 100385880 C CN100385880 C CN 100385880C CN B2004100072129 A CNB2004100072129 A CN B2004100072129A CN 200410007212 A CN200410007212 A CN 200410007212A CN 100385880 C CN100385880 C CN 100385880C
Authority
CN
China
Prior art keywords
field
grouping
prefix
level
trie
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2004100072129A
Other languages
English (en)
Other versions
CN1543150A (zh
Inventor
郑镇宇
朴寓种
张冠松
H·乔纳森·曹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Akademia Gomiczo Hutnicza
Original Assignee
Samsung Electronics Co Ltd
Akademia Gomiczo Hutnicza
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd, Akademia Gomiczo Hutnicza filed Critical Samsung Electronics Co Ltd
Publication of CN1543150A publication Critical patent/CN1543150A/zh
Application granted granted Critical
Publication of CN100385880C publication Critical patent/CN100385880C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

分组分类装置和使用字段级特里结构的方法
技术领域
与本发明一致的装置和方法涉及在通信系统中的诸如分组等的处理项目,具体涉及在路由器中的分类分组中使用字段级特里结构(tries)的分组分类方法和实现所述方法的分组分类装置。本申请要求2003年2月28日在韩国知识产权局提交的韩国专利申请第10-2003-0012902号的优先权,其公开以引用方式被包含在此。
背景技术
在诸如因特网的通信系统中处理分组的过程中,在分组转发路径中的每个转接点解译目的地址,然后确定向哪个输出节点或链路转发分组。在各种通信系统中,基于在每个分组的首标中的目的地址、始发地址或其他数据来提供各种类型的业务。不同类型的业务包括例如在处理或转发分组中的优先级、对于传输要支付的费用、对于特定发送者的分组处理拒绝等等。
因为当前的系统可以处理大量的分组(一般称为数据项),因此所述系统从所接收的分组找出内容,并且因此在很短的时间内和以高速度确定以哪种形式处理分组。
为了在未来的IP网络上向用户提供更先进的业务,诸如业务等级约定、虚拟专用联网(VPN)、QoS等,要根据所期望的标准来分类来自路由器等的IP分组,这被称为“分组分类”。最后根据多字段查找来执行分组分类,因为各个分组字段的值被查找。
换句话说,通过参考在一个分组中的各种字段处理分组来执行分组分类,所述各种字段诸如源地址字段、目的地址字段、协议ID字段、端口号码字段等,这与现有的IP目的地址查找不同。因此,一般需要更多的时间和存储量,并且还没有充分地研究解决这样的问题的方法。
图1-3是用于图解传统的分组分类方法的视图。
表1示出了用于配置传统方法的分组分类器。
[表1]
  滤波器   F1   F2
  R<sub>1</sub>   00*   11*
  R<sub>2</sub>   00*   1*
  R<sub>3</sub>   10*   1*
  R<sub>4</sub>   0*   01*
  R<sub>5</sub>   0*   10*
  R<sub>6</sub>   0*   1*
  R<sub>7</sub>   *   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
  R<sub>1</sub>   00*   110*   6   [10,12]
R<sub>2</sub> 00* 11* [4,8] 15
  R<sub>3</sub>   10*   1*   7   9
  R<sub>4</sub>   0*   01*   10   [10,12]
  R<sub>5</sub>   0*   10*   [4,8]   15
  R<sub>6</sub>   0*   1*   10   [10,15]
  R<sub>7</sub>   *   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万个分类器规则。

Claims (16)

1.一种使用字段级特里结构的分组分类装置,所述装置包括:
主处理部分,用于产生和维护字段级特里结构,所述字段级特里结构在用于分类的分层结构中通过字段组织多字段分组;
多个分类引擎,每个分类引擎被提供了第一分类部分和第二分类部分,所述第一分类部分用于执行查询和更新,并且处理由IP地址查找所表示的前缀查找,所述第二分类部分用于根据第一分类部分的结果、通过字段来进行分组分类,以便处理属于所述结果的范围查找,
其中每个分类引擎的第一分类部分存储前缀格式的字段,并且使用三态内容可寻址存储器(TCAM)来搜索所存储的字段。
2.按照权利要求1的分组分类装置,其中分类引擎每个包括分类处理器和存储器。
3.按照权利要求2的分组分类装置,其中主处理部分和分类引擎通过广播总线连接。
4.按照权利要求1的分组分类装置,其中第二分类部分使用k路搜索方案,它具有基于使用和规格的适当k值。
5.按照权利要求4的分组分类装置,其中根据第二分类部分的存储器接口的大小来确定值k。
6.按照权利要求3的分组分类装置,其中主处理部分通过广播总线向分类引擎发送更新指令,并且每个分类引擎在接收到更新指令时指令改变分类引擎的存储器的内容。
7.按照权利要求1的分组分类装置,其中字段级特里结构被组织为如下的结构:其中第一组的一个或多个字段出现在该结构的上级,而第二组的一个或多个字段出现在该结构的下级。
8.按照权利要求7的分组分类装置,其中第一组的字段是前缀格式的字段。
9.按照权利要求7的分组分类装置,其中第二组的字段是范围格式的字段。
10.按照权利要求1的分组分类装置,其中如果任何一级的两个节点具有共同的子节点,则在字段级特里结构中产生和共享仅仅一个对应于该公共子节点的节点。
11.按照权利要求1的分组分类装置,其中在字段级特里结构中,用于前缀查找的级作为仅仅一个具有彼此组合的多个前缀的级而存在。
12.一种使用字段级特里结构的分组分类装置,所述装置包括:
用于产生和维护字段级特里结构的部件,它在用于分类的分层结构中通过字段来组织多字段分组;
用于执行查询和更新并且处理由IP地址查找所表示的前缀查找的部件;
用于根据前缀查找的结果、通过字段来进行分组分类、以便根据结果来处理范围查找的部件,
其中用于前缀查找的部件存储前缀格式的字段,并且使用三态内容可寻址存储器(TCAM)来搜索所存储的字段。
13.一种用于路由选择系统的分组分类方法,包括:
形成用于分类多字段分组的字段级特里结构;
通过使用所述字段级特里结构来处理关于多个分组分类规则的前缀查找;和
在前缀查找处理后处理范围查找,
其中前缀查找处理包括存储前缀格式的字段,并且使用三态内容可寻址存储器(TCAM)来搜索所存储的字段。
14.按照权利要求13的分组分类方法,其中在如下结构中组织字段级特里结构:其中第一组的一个或多个字段出现在该结构的上级,而第二组的一个或多个字段出现在该结构的下级。
15.按照权利要求13的分组分类方法,其中如果任何一级的两个节点具有共同的子节点,则在字段级特里结构中产生和共享仅仅一个对应于公共子节点的节点。
16.按照权利要求13的分组分类方法,其中在字段级特里结构中,用于前缀查找的级作为仅仅一个具有彼此组合的多个前缀的级而存在。
CNB2004100072129A 2003-02-28 2004-02-27 分组分类装置和使用字段级特里结构的方法 Expired - Fee Related CN100385880C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2003-0012902A KR100512949B1 (ko) 2003-02-28 2003-02-28 필드레벨 트리를 이용한 패킷분류장치 및 방법
KR12902/2003 2003-02-28
KR12902/03 2003-02-28

Publications (2)

Publication Number Publication Date
CN1543150A CN1543150A (zh) 2004-11-03
CN100385880C true CN100385880C (zh) 2008-04-30

Family

ID=32768622

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100072129A Expired - Fee Related CN100385880C (zh) 2003-02-28 2004-02-27 分组分类装置和使用字段级特里结构的方法

Country Status (5)

Country Link
US (1) US7415020B2 (zh)
EP (1) EP1453253A1 (zh)
JP (1) JP3881663B2 (zh)
KR (1) KR100512949B1 (zh)
CN (1) CN100385880C (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100518813B1 (ko) * 2003-02-15 2005-10-05 삼성전자주식회사 패킷 메모리 관리 장치를 가지는 패킷 포워딩 시스템 및 그의 동작방법
US7515588B2 (en) * 2004-03-18 2009-04-07 Intel Corporation Method and apparatus to support a large internet protocol forwarding information base
US20060221967A1 (en) * 2005-03-31 2006-10-05 Narayan Harsha L Methods for performing packet classification
US7668160B2 (en) * 2005-03-31 2010-02-23 Intel Corporation Methods for performing packet classification
US20060221956A1 (en) * 2005-03-31 2006-10-05 Narayan Harsha L Methods for performing packet classification via prefix pair bit vectors
US7443878B2 (en) 2005-04-04 2008-10-28 Sun Microsystems, Inc. System for scaling by parallelizing network workload
KR100705545B1 (ko) 2005-07-02 2007-04-09 충남대학교산학협력단 이중 tcam을 이용한 패킷의 분류방법
KR100770643B1 (ko) * 2006-03-28 2007-10-29 충남대학교산학협력단 Tcam을 이용한 고성능 패킷 분류 방법 및 그 장치
EP2016718B1 (en) * 2006-04-21 2014-02-12 Oracle America, Inc. Method and system for scaling by parallelizing network workload
US8010990B2 (en) * 2006-10-26 2011-08-30 Intel Corporation Acceleration of packet flow classification in a virtualized system
EP2179542A4 (en) * 2007-08-02 2010-11-17 Tekelec Us METHODS, SYSTEMS, AND COMPUTER-READABLE MEDIA FOR COLLECTING DATA FROM A NETWORK TRAFFIC CROSSING HIGH-SPEED INTERNET PROTOCOL (IP) COMMUNICATION LINKS
KR100920518B1 (ko) * 2007-11-27 2009-10-09 한국전자통신연구원 패킷 분류 장치 및 방법
CN101340363B (zh) * 2007-12-24 2012-09-19 中国科学技术大学 一种实现多元数据包分类的方法及设备
US7872993B2 (en) * 2008-10-30 2011-01-18 Alcatel Lucent Method and system for classifying data packets
CN101888369B (zh) * 2009-05-15 2013-04-03 北京启明星辰信息技术股份有限公司 一种进行网络报文规则匹配的方法和装置
US8179898B2 (en) * 2009-06-11 2012-05-15 Alcatel Lucent Packet processing using braided tries
US9049157B1 (en) * 2009-08-16 2015-06-02 Compass Electro-Optical Systems Ltd Method and device for improving scalability of longest prefix match
US8879550B2 (en) * 2012-05-08 2014-11-04 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for packet classification
US9501591B2 (en) * 2013-12-09 2016-11-22 International Business Machines Corporation Dynamically modifiable component model
JP6114705B2 (ja) * 2014-02-26 2017-04-12 日本電信電話株式会社 検索木生成装置及び方法及びプログラム
CN105099918B (zh) * 2014-05-13 2019-01-29 华为技术有限公司 一种数据查找匹配的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1122927A2 (en) * 1999-12-13 2001-08-08 Ascend Communications, Inc. Route lookup engine
EP1265161A2 (en) * 2001-06-04 2002-12-11 Hewlett-Packard Company System for and method of storing data

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289013B1 (en) * 1998-02-09 2001-09-11 Lucent Technologies, Inc. Packet filter method and apparatus employing reduced memory
US6341130B1 (en) * 1998-02-09 2002-01-22 Lucent Technologies, Inc. Packet classification method and apparatus employing two fields
US6560610B1 (en) * 1999-08-10 2003-05-06 Washington University Data structure using a tree bitmap and method for rapid classification of data in a database
US6798778B1 (en) * 2000-06-14 2004-09-28 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for updating context information for a core processor
JP2002305539A (ja) 2001-04-03 2002-10-18 Nippon Telegr & Teleph Corp <Ntt> 連想メモリおよび経路表検索方法
US7017021B2 (en) * 2001-04-04 2006-03-21 Cypress Semiconductor Corp. High-speed message forwarding lookups for arbitrary length strings using pipelined memories
US7227842B1 (en) * 2001-04-24 2007-06-05 Tensilica, Inc. Fast IP packet classification with configurable processor
US7002965B1 (en) * 2001-05-21 2006-02-21 Cisco Technology, Inc. Method and apparatus for using ternary and binary content-addressable memory stages to classify packets
US6886073B2 (en) * 2002-06-18 2005-04-26 International Business Machines Corporation Method and system for performing range rule testing in a ternary content addressable memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1122927A2 (en) * 1999-12-13 2001-08-08 Ascend Communications, Inc. Route lookup engine
EP1265161A2 (en) * 2001-06-04 2002-12-11 Hewlett-Packard Company System for and method of storing data

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FAST AND SCALANLE LAYER FOUR SWITCHING. SRINIBASAN V ET.COMPUTER COMMUNICATION REVIEW,ASSOCIATION FOR COMPUTING MACHINERY.. 1998
FAST AND SCALANLE LAYER FOUR SWITCHING. SRINIBASAN V ET.COMPUTER COMMUNICATION REVIEW,ASSOCIATION FOR COMPUTING MACHINERY.. 1998 *

Also Published As

Publication number Publication date
JP3881663B2 (ja) 2007-02-14
CN1543150A (zh) 2004-11-03
EP1453253A1 (en) 2004-09-01
KR100512949B1 (ko) 2005-09-07
JP2004266837A (ja) 2004-09-24
US7415020B2 (en) 2008-08-19
US20040170170A1 (en) 2004-09-02
KR20040077376A (ko) 2004-09-04

Similar Documents

Publication Publication Date Title
CN100385880C (zh) 分组分类装置和使用字段级特里结构的方法
JP3485262B2 (ja) データ・パケットを分類する方法および手段
US6564211B1 (en) Fast flexible search engine for longest prefix match
US6859455B1 (en) Method and apparatus for building and using multi-dimensional index trees for multi-dimensional data objects
US6594655B2 (en) Wildcards in radix- search tree structures
US6185568B1 (en) Classifying data packets processed by drivers included in a stack
CN101388030B (zh) 数据库和数据库处理方法
US6775737B1 (en) Method and apparatus for allocating and using range identifiers as input values to content-addressable memories
CN104579941A (zh) 一种OpenFlow交换机中的报文分类方法
US20040028046A1 (en) Logarithmic time range-based multifield-correlation packet classification
Meiners et al. Hardware based packet classification for high speed internet routers
US6633860B1 (en) Method for fast multi-dimensional packet classification
CN103248573A (zh) 面向OpenFlow的集中管理交换机及其数据处理方法
CN109754021B (zh) 基于范围元组搜索的在线包分类方法
US9900409B2 (en) Classification engine for data packet classification
CN100397816C (zh) 在网络设备中对接收数据包进行分类的方法
Hsieh et al. Multiprefix trie: A new data structure for designing dynamic router-tables
Lim et al. Two-dimensional packet classification algorithm using a quad-tree
Chang Efficient multidimensional packet classification with fast updates
KR100662254B1 (ko) 라우팅 시스템에서의 패킷 분류 장치 및 이를 위한 룰 구축 방법
EP1128608B1 (en) Method and means for classifying data packets
CN100425039C (zh) 标志集合式两维报文分类及查找方法和设备
Liu et al. Longest prefix matching with pruning
JP3660311B2 (ja) テーブル検索装置および方法およびプログラムおよび記録媒体
CN100488167C (zh) 一种分组数据流分类的方法及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080430

Termination date: 20160227

CF01 Termination of patent right due to non-payment of annual fee