CN100536435C - 一种基于二叉树的流分类查找方法 - Google Patents

一种基于二叉树的流分类查找方法 Download PDF

Info

Publication number
CN100536435C
CN100536435C CNB2007100056774A CN200710005677A CN100536435C CN 100536435 C CN100536435 C CN 100536435C CN B2007100056774 A CNB2007100056774 A CN B2007100056774A CN 200710005677 A CN200710005677 A CN 200710005677A CN 100536435 C CN100536435 C CN 100536435C
Authority
CN
China
Prior art keywords
binary tree
node
packet
critical field
stream
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.)
Active
Application number
CNB2007100056774A
Other languages
English (en)
Other versions
CN101022407A (zh
Inventor
滕焕勇
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.)
Sanechips Technology Co Ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CNB2007100056774A priority Critical patent/CN100536435C/zh
Publication of CN101022407A publication Critical patent/CN101022407A/zh
Application granted granted Critical
Publication of CN100536435C publication Critical patent/CN100536435C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于二叉树的流分类查找方法,将所述二叉树的L级节点划分成M级流水线;M个数据包分时并行地与M级流水线上的二叉树节点进行比较,其中L和M为不小于2的整数,并且L大于M。采用了本发明的技术方案,将基于二叉树的流分类查找过程划分成若干级流水线,可以同时处理多个数据包的流分类查找,从而降低了数据包流分类查找的平均时间,提高了流分类的吞吐量。另外,本发明采用两块RAM分别作为主从二叉树,流分类查找访问主二叉树,系统流分类规则配置访问从二叉树,从而实现了流分类查找过程中无损伤的动态流分类规则更新。

Description

一种基于二叉树的流分类查找方法
技术领域
本发明涉及数据网络的流分类技术领域,尤其涉及数据网络中基于二叉树的流分类查找方法。
背景技术
在数据网络中,随着Internet的发展,许多新的服务类型被引入到Internet中,如虚拟专用网络(Virtual Private Network,VPN)、分布式防火墙、基于策略的路由、区分服务、流量计费以及IP安全网关等。这些新的服务类型都是以流分类(Flow Classification)技术为基础的。在数据网络中,流分类实际上是对数据包的分类,即根据数据包头部的一个或多个关键字段,基于一定的策略和规则,识别该数据包所属的流,然后基于所属流的属性,对该数据包进行相应的处理。
流分类的过程如图1所示,系统根据流分类的规则从数据包头部字节中提取关键字段,从流存储表中查找获得数据包所属的流。其中,流分类的算法主要由流分类查找部分来实现,因此流分类查找是流分类过程的关键,决定了流分类速度的快慢和占用存储空间的大小。
出于对数据包吞吐量的考虑,流分类技术中的流分类查找一般采用硬件来实现,主要有三类方法:存储器直接查找、基于查找树进行查找和利用Hash算法进行查找。存储器直接查找的流分类方法中最具代表性的是基于TCAM(Ternary Content Addressable Memory)的查找,其特点是查找速度快,支持前缀和范围匹配,但CAM器件价格昂贵,功耗大,且规则的更新较为复杂。利用Hash算法进行流分类查找的特点是实现简单,分类速度快,存储空间小,但是Hash算法固有的冲突和发散问题使得流分类查找的效率较低,直接影响流分类的效果。
相比较之下,基于查找树的流分类查找是一种折中的方案,比较典型的基于查找树的流分类查找是基于二叉树的流分类查找,其空间复杂度较小,可以采用内部RAM实现,成本低。
用于流分类查找的二叉树的结构如图2所示,基于二叉树的流分类查找流程如图3所示。
数据包进行流分类查找时,首先读出二叉树根节点中系统配置的关键字段,与数据包的关键字段进行比较,如果相等,则流分类查找成功;否则,查找二叉树的下一级节点。如果二叉树节点中的关键字段小于数据包的关键字段,则查找下一级节点中居左(或右)的节点,如果二叉树节点中的关键字段大于数据包的关键字段,则查找下一级节点中居右(或左)的节点。然后根据下一级节点中的关键字段数值,确定流分类查找是否成功,或者再下一级节点的位置,依此类推,直到最后一级节点。如果最后一级节点的关键字段依然不相等,则流分类查找失败。
二叉树各级节点的配置内容可以存储在一块(或多块)RAM中,硬件实现简单。其缺点是二叉树查找的步骤较多,流分类的时间比较长,且规则的更新较慢,一次完整的二叉树查找需要多次查找比较操作,次数最大等于二叉树的级数,从而导致流分类的时间比较长,另外,为了保持二叉树查找结果的一致性和正确性,在二叉树查找的过程中不允许改变二叉树的配置内容,因此二叉树一般不支持动态配置。
发明内容
本发明提出一种基于二叉树的流分类查找方法,能够解决流分类查找技术中查找时间长的问题。
为此,本发明采用以下技术方案:
一种基于二叉树的流分类查找方法,包括以下步骤:
A、将所述二叉树的L级节点划分成M级流水线;
B、M个数据包分时并行地与M级流水线上的二叉树节点进行比较,其中L和M为不小于2的整数,并且L大于M。
步骤A中,所述二叉树的L级节点对应的存储器地址从根节点为1开始,其他子节点的存储器地址依次增加。
所述步骤B中,所述数据包和所述二叉树节点进行比较包括以下步骤:
B1、根据二叉树节点的存储器地址读所述二叉树节点;
B2、获取所述二叉树节点中的关键字段和流ID;
B3、比较所述二叉树节点中的关键字段和所述数据包的关键字段;
B4、如果所述二叉树节点中的关键字段和所述数据包的关键字段相等,则二叉树查找成功,采用所述二叉树节点的流ID作为所述数据包的所属流ID,否则产生下一级二叉树节点的地址。
以一级流水线所需要的时间作为固定的周期,不同数据包在同一级流水线中在相同的时间点读取二叉树节点,同一数据包在不同级流水线中在不同的时间点读取二叉树节点。下一级流水线中数据包读取二叉树节点的时间点比上一级流水线中数据包读取二叉树节点晚一个时钟周期。
设置M个寄存器,分别用于存储M个数据包的关键字段。
当所述二叉树需要添加流分类规则时,则按照平衡二叉树的编排规则,在相应的节点配置新的规则内容。
将所述二叉树进行备份,形成主二叉树和从二叉树。
当系统发出切换指令时,如果主二叉树被使用,则在所述切换指令前最后进入的数据包完成二叉树查找后,主二叉树和从二叉树之间相互切换;如果主二叉树没有被使用,则主二叉树和从二叉树之间相互切换。
采用了本发明的技术方案,将基于二叉树的流分类查找过程划分成若干级流水线,可以同时处理多个数据包的流分类查找,从而降低了数据包流分类查找的平均时间,提高了流分类的吞吐量。另外,本发明采用两块RAM分别作为主从二叉树,流分类查找访问主二叉树,系统流分类规则配置访问从二叉树,从而实现了流分类查找过程中无损伤的动态流分类规则更新。
附图说明
图1为流分类过程的流程图;
图2为用于流分类查找的二叉树结构示意图;
图3为基于二叉树的流分类查找流程图;
图4为本发明中基于二叉树的流分类查找流程图;
图5为主从二叉树切换过程示意图。
具体实施方式
下面结合附图,通过具体实施方式对本发明的技术方案作进一步说明。
本具体实施方式需要两块RAM作为主从二叉树用来存储流分类的规则,RAM的条目数量为2L,L为二叉树节点的级数,取决于流分类规则的数量。条目的内容如表1所示:
表1
  名称   位   说明
  规则库的关键字段   (L+n-1):L   规则库中的关键字段,用来跟数据包的关键字段进行比较,如果相等,则查找成功。
  数据包流ID   (L-1):0   二叉树查找成功时的数据包所属流ID
本发明中还需要M个寄存器用来保存M级流水线中数据包的关键字段,格式如表2所示:
表2
  名称   位   说明
  数据包关键字段   (n-1):0   从数据包头部字节中提取的关键字段。
流分类规则库中的规则数量决定了系统中二叉树的节点数,流分类的数据包吞吐量限制了二叉树查找时每一级流水线内部的时间,从而决定了二叉树查找的流水线级数。假设系统中二叉树存在L级节点,将二叉树查找划分为M级流水线,则一级流水线内部包括N(N={L/M},{}表示向上取整)个二叉树节点的查找,每一个二叉树节点的查找包括读存储器操作、获取节点中存储的数值、关键字段的比较和下一级存储器地址产生等四个步骤:
时钟周期1:二叉树节点读信号和读地址(RAM读)有效;
时钟周期2:获取二叉树节点中的关键字段和流ID;
时钟周期3:比较二叉树节点中的关键字段和数据包的关键字段;
时钟周期4:如果二叉树节点中的关键字段与数据包的关键字段相等,二叉树查找成功,采用该节点的流ID;否则产生下一级二叉树节点的地址。
接收到数据包的关键字段后,则从根节点开始逐级查找平衡二叉树,完成第一级流水线的查找之后,如果查找没有成功,则进入第二级流水线的查找,与此同时,另外一个数据包开始从根节点进行第一级流水线的查找。在第一个数据包完成第二级流水线的查找,同时第二个数据包完成第一级流水线的查找,如果没有查找成功,则第一个数据包进入第三级流水线查找,第二个数据包进入第二级流水线查找,同时第三个数据包开始从根节点进行第一级流水线查找,依此类推,直到所有数据包完成整个二叉树的查找。
最坏情况下(在最后一级节点查找成功),一次完整的二叉树查找需要在不同的时刻访问二叉树节点存储器L次,采用流水线结构之后,势必会产生M级流水线同时访问存储器的情况,本具体实施方式中,同一级流水线中不同数据包读取二叉树节点的时间点是相同的,同一数据包在不同级流水线中分别在不同的时间点读取二叉树的节点,从而避免了RAM的访问冲突。
本具体实施方式提出的采用流水线结构的二叉树流分类查找的流程如图4所示,其主要操作步骤如下:
(1)第1个数据包进入第1级流水线,将数据包的关键字段保存到关键字段1寄存器中,进行二叉树第1级节点的查找;
(2)第1个数据包进行第1级流水线第2级二叉树节点的查找;
依次进行;
(3)第1个数据包进行第1级流水线中第N级二叉树节点的查找;
(4)第1个数据包进入第2级流水线,将关键字段1寄存器中的第1个数据包的关键字段保存到关键字段2寄存器中,进行第2级流水线中二叉树第N+1级节点的查找;同时,第2个数据包进入第1级流水线,将第2个数据包的关键字段保存到关键字段1寄存器中,进行第1级流水线中二叉树第1级节点的查找;
依次进行;
(5)第1个数据包完成第2级流水线第2*N级节点的查找,将关键字段2寄存器中的第1个数据包的关键字段保存到关键字段3寄存器中,进入第3级流水线查找;同时,第2个数据包完成第1级流水线第N级节点的查找,将关键字段1寄存器中的第2个数据包的关键字段保存到关键字段2寄存器中,进入第2级流水线;第3个数据包进入第1级流水线,将第3个数据包的关键字段保存到关键字段1寄存器中,进行第1级流水线中二叉树第1级节点的查找;
依次进行;
(6)第1个数据包完成第M-1级流水线的查找,将关键字段M-1寄存器中的第1个数据包的关键字段保存到关键字段M寄存器中,进入第M级流水线的查找;同时,第2个数据包完成第M-2级流水线的查找,将关键字段M-2寄存器中的第2个数据包的关键字段保存到关键字段M-1寄存器中,进入第M-1级流水线;第M-1个数据包进入第1级流水线,将第M-1个数据包的关键字段保存到关键字段1寄存器中,进行第1级流水线第1级节点的查找;
依次进行;
(7)第1个数据包完成第M级流水线第L级节点(二叉树最后一级节点)的查找,第1个数据包二叉树查找结束;同时,第2个数据包完成第M-1级流水线的查找,进入第M级流水线;第M个数据包进入第1级流水线,进行第1级节点(即根节点)的查找;
依次进行;
(8)第2个数据包完成第M级流水线第L级节点(二叉树最后一级节点)的查找,第2个数据包二叉树查找结束;同时,第3个数据包完成第M-1级流水线的查找,进入第M级流水线;第M-1个数据包开始第1级流水线第1级节点(即根节点)的查找;
依次进行;
(9)第M个数据包完成第M级流水线第L级节点(二叉树最后一级节点)的查找,第M个数据包二叉树查找结束。
本具体实施方式中,为了避免因为流水线结构而导致的RAM访问冲突,第2级流水线的RAM读操作比第1级流水线中的RAM读操作推迟一个时钟周期,第3级流水线的RAM读操作比第2级流水线中的RAM读操作推迟一个时钟周期,第M级流水线的RAM读操作比第M-1级流水线中的RAM读操作推迟一个时钟周期。即同一级流水线中不同数据包读取二叉树节点的时间点是相同的,同一数据包在不同级流水线中分别在不同的时间点读取二叉树的节点。
下面具体说明每一级流水线不同时钟周期所进行的操作。假设二叉树的节点共有12级,分4级流水线,每级流水线完成3级二叉树节点的查找,由于一级二叉树节点的查找需要4个时钟周期,则每级流水线需要12个时钟周期。
第一级流水线的操作包括:
第1个时钟周期:数据包的关键字保存到关键字段1寄存器中;第1级节点RAM读信号有效,地址为1;
第2个时钟周期:第1级节点RAM读数据有效;
第3个时钟周期:比较二叉树节点中的关键字段和数据包的关键字段;
第4个时钟周期:如果关键字段相等,则流分类查找成功,否则产生第2级节点的地址2*address或2*address+1,其中address表示上一级节点的地址;
第5个时钟周期:第2级节点RAM读信号有效;
第6个时钟周期:第2级节点RAM读数据有效;
第7个时钟周期:比较二叉树节点中的关键字段和数据包的关键字段;
第8个时钟周期:如果关键字段相等,则流分类查找成功,否则产生第3级节点的地址2*address或2*address+1;
第9个时钟周期:第3级节点RAM读信号有效;
第10个时钟周期:第3级节点RAM读数据有效;
第11个时钟周期:比较二叉树节点中的关键字段和数据包的关键字段;
第12个时钟周期:如果关键字段相等,则流分类查找成功,否则产生第4级节点的地址2*address或2*address+1。
第二级流水线的操作包括:
第1个时钟周期:数据包的关键字保存到关键字段2寄存器中;
第2个时钟周期:第4级节点RAM读信号有效;
第3个时钟周期:第4级节点RAM读数据有效;
第4个时钟周期:比较二叉树节点中的关键字段和数据包的关键字段;
第5个时钟周期:如果关键字段相等,则流分类查找成功,否则产生第5级节点的地址2*address或2*address+1;
第6个时钟周期:第5级节点RAM读信号有效;
第7个时钟周期:第5级节点RAM读数据有效;
第8个时钟周期:比较二叉树节点中的关键字段和数据包的关键字段;
第9个时钟周期:如果关键字段相等,则流分类查找成功,否则产生第6级节点的地址2*address或2*address+1;
第10个时钟周期:第6级节点RAM读信号有效;
第11个时钟周期:第6级节点RAM读数据有效;
第12个时钟周期:比较二叉树节点中的关键字段和数据包的关键字段;
第12个时钟周期:如果关键字段相等,则流分类查找成功,否则产生第7级节点的地址2*address或2*address+1;
第二个“第12个时钟周期”表示延迟“第12个时钟周期”1个时钟周期,因为下一级流水线的第1个时钟周期并没有开始读节点,所以可以利用空隙时间进行地址的产生。
第三级流水线的操作包括:
第1个时钟周期:数据包的关键字保存到关键字段3寄存器中;
第2个时钟周期:空;
第3个时钟周期:第7级节点RAM读信号有效;
第4个时钟周期:第7级节点RAM读数据有效;
第5个时钟周期:比较二叉树节点中的关键字段和数据包的关键字段;
第6个时钟周期:如果关键字段相等,则流分类查找成功,否则产生第8级节点的地址2*address或2*address+1;
第7个时钟周期:第8级节点RAM读信号有效;
第8个时钟周期:第8级节点RAM读数据有效;
第9个时钟周期:比较二叉树节点中的关键字段和数据包的关键字段;
第10个时钟周期:如果关键字段相等,则流分类查找成功,否则产生第9级节点的地址2*address或2*address+1;
第11个时钟周期:第9级节点RAM读信号有效;
第12个时钟周期:第9级节点RAM读数据有效;
第12个时钟周期:比较二叉树节点中的关键字段和数据包的关键字段;
第12个时钟周期:如果关键字段相等,则流分类查找成功,否则产生第10级节点的地址2*address或2*address+1;
第二个“第12个时钟周期”表示延迟“第12个时钟周期”的第1个时钟周期,因为下一级流水线的第1个时钟周期并没有开始读节点,所以可以利用空隙时间进行关键字段的比较;
第三个“第12个时钟周期”表示延迟“第12个时钟周期”的第2个时钟周期,因为下一级流水线的第2个时钟周期并没有开始读节点,所以可以利用空隙时间进行地址的产生。
第四级流水线的操作包括:
第1个时钟周期:空;
第2个时钟周期:数据包的关键字保存到关键字段4寄存器中;
第3个时钟周期:空;
第4个时钟周期:第10级节点RAM读信号有效;
第5个时钟周期:第10级节点RAM读数据有效;
第6个时钟周期:比较二叉树节点中的关键字段和数据包的关键字段;
第10个时钟周期:如果关键字段相等,则流分类查找成功,否则产生第11级节点的地址2*address或2*address+1;
第8个时钟周期:第11级节点RAM读信号有效;
第9个时钟周期:第11级节点RAM读数据有效;
第10个时钟周期:比较二叉树节点中的关键字段和数据包的关键字段;
第10个时钟周期:如果关键字段相等,则流分类查找成功,否则产生第12级节点的地址2*address或2*address+1;
第12个时钟周期:第12级节点(最后一级节点)RAM读信号有效;
第12个时钟周期:第12级节点RAM读数据有效;
第12个时钟周期:比较二叉树节点中的关键字段和数据包的关键字段;
第12个时钟周期:如果关键字段相等,则流分类查找成功,否则流分类查找失败。
第二、第三和第四个“第12个时钟周期”分别表示延迟“第12个时钟周期,,后的第1个、第2个和第3个时钟周期,因为是最后一级流水线,而且没有进行二叉树节点的读操作,所以不影响二叉树流分类查找的流水线操作。
12级节点的二叉树最大可以包含212-1=4095个节点,即最大可以支持4095条流分类规则。如果硬件装置的工作频率为100MHz,则一级流水线的处理时间为120ns,在系统满速率的情况下,平均处理一个数据包流分类查找的时间为120ns,每秒钟可以完成8百万个数据包的流分类查找。无论是从流分类规则的数量,还是流分类查找的吞吐量,均能满足一般网络中流分类器的要求。
假设流分类查找时的关键字段为32bit宽,则所需RAM的资源为2×4K×(12+32)=352Kbit。
为了实现流分类过程中分类规则的动态更新,本具体实施方式中引入了主从两棵平衡二叉树。数据包流分类时硬件所查找的二叉树为主二叉树,系统需要更新流分类规则时,通过软件配置从二叉树,然后向硬件发出二叉树主从切换指令,把原来的主二叉树变为从二叉树,原来的从二叉树变为主二叉树。换句话说,流分类过程中硬件所查找的永远是主二叉树,系统软件所配置的永远是从二叉树,互不影响,从而保证了二叉树查找过程中无损伤地进行流分类规则更新。
在实际应用过程中,流分类规则的更新一般都是小范围的更新,本发明中二叉树的根节点编址为1,其它子节点依次增加,如果需要添加流分类规则,则只需按照平衡二叉树的编排规则,在相应的节点配置新的规则内容,无需改变存储器的编址方式,将二叉树内容的改变减到最少。
图5是本发明中二叉树主从切换状态流程示意图。如图5所示,主从二叉树切换时,如果没有数据包进行二叉树查找,则切换立刻完成。
如果系统发出切换指令时,有数据包正在进行二叉树的查找,则主二叉树不会立刻切换到从状态,已经开始二叉树查找的数据包依然使用原来的主二叉树,直到切换指令前最后进入的数据包完成二叉树查找之后,主二叉树才切换到从状态。
如果系统发出切换指令时,有数据包正在进行二叉树的查找,则从二叉树也不会立刻切换到主状态,直到有新的数据包开始二叉树的查找,或者直到切换指令前最后进入的数据包完成二叉树查找之后,从二叉树才切换到主状态。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

1、一种基于二叉树的流分类查找方法,其特征在于,包括以下步骤:
A、将所述二叉树的L级节点划分成M级流水线;
B、M个数据包分时并行地与M级流水线上的二叉树节点进行比较,其中L和M为不小于2的整数,并且L大于M。
2、根据权利要求1所述的一种基于二叉树的流分类查找方法,其特征在于,步骤A中,所述二叉树的L级节点对应的存储器地址从根节点为1开始,其他子节点的存储器地址依次增加。
3、根据权利要求1所述的一种基于二叉树的流分类查找方法,其特征在于,所述步骤B中,所述数据包和所述二叉树节点进行比较包括以下步骤:
B1、根据二叉树节点的存储器地址读所述二叉树节点;
B2、获取所述二叉树节点中的关键字段和流ID;
B3、比较所述二叉树节点中的关键字段和所述数据包的关键字段;
B4、如果所述二叉树节点中的关键字段和所述数据包的关键字段相等,则二叉树查找成功,采用所述二叉树节点的流ID作为所述数据包的所属流ID,否则产生下一级二叉树节点的地址。
4、根据权利要求1或3所述的一种基于二叉树的流分类查找方法,其特征在于,不同数据包在同一级流水线中在相同的时间点读取二叉树节点,同一数据包在不同级流水线中在不同的时间点读取二叉树节点。
5、根据权利要求4所述的一种基于二叉树的流分类查找方法,其特征在于,下一级流水线中数据包读取二叉树节点的时间点比上一级流水线中数据包读取二叉树节点晚一个时钟周期。
6、根据权利要求1或3所述的一种基于二叉树的流分类查找方法,其特征在于,设置M个寄存器,分别用于存储M个数据包的关键字段。
7、根据权利要求1所述的一种基于二叉树的流分类查找方法,其特征在于,当所述二叉树需要添加流分类规则时,则按照平衡二叉树的编排规则,在相应的节点配置新的规则内容。
8、根据权利要求1或7所述的一种基于二叉树的流分类查找方法,其特征在于,将所述二叉树进行备份,形成主二叉树和从二叉树。
9、根据权利要求8所述的一种基于二叉树的流分类查找方法,其特征在于,当系统发出切换指令时,如果主二叉树被使用,则在所述切换指令前最后进入的数据包完成二叉树查找后,主二叉树和从二叉树之间相互切换;如果主二叉树没有被使用,则主二叉树和从二叉树之间相互切换。
10、根据权利要求8所述的一种基于二叉树的流分类查找方法,其特征在于,当所述二叉树需要添加流分类规则时,则按照平衡二叉树的编排规则,在从二叉树的相应的节点配置新的规则内容。
CNB2007100056774A 2007-03-13 2007-03-13 一种基于二叉树的流分类查找方法 Active CN100536435C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100056774A CN100536435C (zh) 2007-03-13 2007-03-13 一种基于二叉树的流分类查找方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100056774A CN100536435C (zh) 2007-03-13 2007-03-13 一种基于二叉树的流分类查找方法

Publications (2)

Publication Number Publication Date
CN101022407A CN101022407A (zh) 2007-08-22
CN100536435C true CN100536435C (zh) 2009-09-02

Family

ID=38710062

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100056774A Active CN100536435C (zh) 2007-03-13 2007-03-13 一种基于二叉树的流分类查找方法

Country Status (1)

Country Link
CN (1) CN100536435C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011110003A1 (zh) * 2010-08-24 2011-09-15 华为技术有限公司 二叉树建立、压缩和查找的方法和装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101345707B (zh) * 2008-08-06 2010-12-08 北京邮电大学 一种实现IPv6报文分类的方法及设备
CN101984627B (zh) * 2010-11-12 2013-04-03 北京工业大学 基于信任的访问控制中的权限映射方法
CN102156759B (zh) * 2011-05-25 2013-12-18 华为技术有限公司 二叉树并行查找方法和设备
CN102571494B (zh) * 2012-01-12 2014-11-05 东北大学 一种基于fpga的入侵检测系统及方法
CN102662855B (zh) 2012-04-17 2015-02-25 华为技术有限公司 一种二叉树的存储方法、系统
CN105939269A (zh) * 2015-12-18 2016-09-14 杭州迪普科技有限公司 基于网络地址转换规则的报文转换方法及装置
CN105939323A (zh) * 2015-12-31 2016-09-14 杭州迪普科技有限公司 数据包过滤方法及装置
CN108335467B (zh) * 2018-01-05 2019-07-23 东华大学 一种基于突变点探测的火灾在线预警与快速分析方法
CN110830376B (zh) * 2019-11-05 2021-11-09 苏州盛科科技有限公司 一种int报文的处理方法及装置
CN111290805B (zh) * 2020-03-12 2023-08-18 深圳市我能成才企业管理有限公司 一种聚合功能快捷调用方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Algorithms for Packet Classification. Pankaj Gupta, Nick McKeown.IEEE Network. 2001
Algorithms for Packet Classification. Pankaj Gupta, Nick McKeown.IEEE Network. 2001 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011110003A1 (zh) * 2010-08-24 2011-09-15 华为技术有限公司 二叉树建立、压缩和查找的方法和装置
US8711014B2 (en) 2010-08-24 2014-04-29 Huawei Technologies Co., Ltd. Methods and devices for creating, compressing and searching binary tree
US9521082B2 (en) 2010-08-24 2016-12-13 Huawei Technologies Co., Ltd. Methods and devices for creating, compressing and searching binary tree

Also Published As

Publication number Publication date
CN101022407A (zh) 2007-08-22

Similar Documents

Publication Publication Date Title
CN100536435C (zh) 一种基于二叉树的流分类查找方法
Bando et al. Flashtrie: Hash-based prefix-compressed trie for IP route lookup beyond 100Gbps
US8295286B2 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
US8625604B2 (en) Hash-based prefix-compressed trie for IP route lookup
CN102663058B (zh) 一种分布式网络爬虫系统中的url去重方法
CN101604337B (zh) 一种哈希表项存储、查找装置及方法
Bando et al. FlashTrie: beyond 100-Gb/s IP route lookup using hash-based prefix-compressed trie
US9871727B2 (en) Routing lookup method and device and method for constructing B-tree structure
JP2000115243A (ja) パケット中継装置およびマルチキャスト高速化方式
WO2003054739A3 (en) Hybrid search memory for network processor and computer systems
WO2006074014A2 (en) Database query processor
CN102880724A (zh) 处理哈希冲突的方法及系统
WO1999014906A1 (en) Method and system for fast routing lookups
JPWO2005104456A1 (ja) 固定長データの検索装置および検索管理方法
CN104158744A (zh) 用于网络处理器的建表和查找方法
CN103051543A (zh) 一种路由前缀的处理、查找、增加及删除方法
CN110460529B (zh) 一种内容路由器转发信息库存储结构的数据处理方法和芯片
US6898661B2 (en) Search memory, memory search controller, and memory search method
CN101277252A (zh) 多分支Trie树的遍历方法
CN101620623A (zh) 内容可寻址存储器表项管理方法和装置
CN105515997A (zh) 基于bf_tcam实现零范围扩张的高效范围匹配方法
CN102082832A (zh) 一种分布式文件系统中的数据存储方法和装置
CN101692653B (zh) 路由表的管理方法和装置
CN100397816C (zh) 在网络设备中对接收数据包进行分类的方法
US7573880B2 (en) Set-associative memory architecture for routing tables

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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151109

Address after: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee after: ZTE Corp.

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Nanshan District high tech Industrial Park, Guangdong, South Road, science and technology, ZTE building, legal department

Patentee before: ZTE Corp.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221205

Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong

Patentee before: ZTE Corp.

Patentee before: SANECHIPS TECHNOLOGY Co.,Ltd.