CN101035061A - 实现三重内容可寻址存储器范围匹配的分段编码扩展方法 - Google Patents
实现三重内容可寻址存储器范围匹配的分段编码扩展方法 Download PDFInfo
- Publication number
- CN101035061A CN101035061A CNA2006100114652A CN200610011465A CN101035061A CN 101035061 A CN101035061 A CN 101035061A CN A2006100114652 A CNA2006100114652 A CN A2006100114652A CN 200610011465 A CN200610011465 A CN 200610011465A CN 101035061 A CN101035061 A CN 101035061A
- Authority
- CN
- China
- Prior art keywords
- node
- child
- scope
- individual
- extended
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
Abstract
本发明公开了一种实现三重内容可寻址存储器范围匹配的分段编码扩展方法,适用于网络设备中使用三重内容可寻址存储器的范围匹配,其特征在于,将需要进行范围匹配的字段分成多个分段,引入一个扩展函数,该扩展函数能使用一个三重内容可寻址存储器的条目表示每个分段内的任意范围,然后对于每个分段使用所述扩展函数进行扩展,从而通过对所述字段进行分段编码的方式来实现三重内容可寻址存储器应用于访问控制列表或服务质量方面的范围匹配。本发明可简单高效的实现三重内容可寻址存储器的范围匹配,不仅支持端口的范围匹配,同时支持IP地址的范围匹配,查找效率高,不依赖规则库,支持任意范围,扩展系数低,不占用额外的TCAM空间。
Description
技术领域
本发明涉及计算机网络技术领域,尤其涉及使用TCAM(TernaryContent Addressable Memory,三重内容可寻址存储器)实现ACL/QoS(Access Control List/Quality of Service,访问控制列表/服务质量)方面的技术,主要应用在路由器、交换机、防火墙、入侵检测系统等网络设备。
背景技术
现今的网络设备中,大多都需要实现ACL/QoS,这些技术中最关键部分就是规则匹配,但是因为规则中的字段很多,匹配方式也不同,所以当规则很多时,匹配速度就成了性能瓶颈。现以ACL举例,传统的ACL由五元组构成:源IP地址,目的IP地址,源端口号,目的端口号,协议。一般的实现中,IP地址使用前缀匹配,协议使用精确匹配,而端口则使用范围匹配。目前实现ACL主要有两种途径,一种是使用软件实现,最典型的就是RFC(Recursive Flow Classification,递归流分类)算法;另一种就是使用硬件实现,最典型的就是TCAM。当然硬件实现肯定比软件快很多,尤其是在一些高速网络中,一般都使用硬件进行加速。
TCAM是一种专用三重内容可寻址存储器,可以进行快速大量并行搜索。搜索的时候,存储器中所有的条目同时与搜索关键字比较,搜索结果就是匹配项的物理地址。在进行条目匹配时,条目的每个位可以是0、1、x三种状态,如果是x,那么该位不参与比较,默认是成功,否则关键字和条目的相应位进行比较,如果相同则成功否则失败。在比较过程中,如果某位不匹配,那么该条目匹配失败;如果所有位都匹配,那么该条目匹配成功。
TCAM硬件的固有特性使得TCAM非常适合进行精确匹配和前缀匹配,这时可以使用TCAM直接表示这些字段。比如MAC(Media Access Control,介质访问控制)地址表、MPLS(Multi-Protocol Label Switching,多协议标签交换)转发表就是精确匹配,而IPv4/v6(Internet Protocol version 4/6,互联网协议第四/六版)路由表则是前缀匹配。但是当TCAM用于范围匹配时,比如TCP/UDP(Transfer Control Protocol/User Datagram Protocol,传输控制协议/用户数据报协议)端口范围,那么这时就无法简单的直接表示这些字段。
TCAM的范围匹配问题一直是应用TCAM的难点,而目前还没有一个很好的方法来解决这个问题。中国专利:基于TCAM的解决范围匹配的并行IP包分类器及方法,申请号200510011511,公开号1674557,使用了一种区域编码法来解决范围匹配问题,但是该方法有如下缺点:查找效率低,依赖规则库,支持范围个数有限,更新效率低,需要占用额外的TCAM空间等。另外一种技术就是使用前缀扩展法,虽然比较简单,但是因为扩展的条目数较多,所以只能应用于一些对范围匹配要求不是很高的场合。
发明内容
本发明所要解决的技术问题是提供一种实现三重内容可寻址存储器范围匹配的分段编码扩展方法,解决TCAM应用于ACL/QoS方面的范围匹配问题,提供一种高效的方法实现范围扩展。
为达到上述目的,本发明提供了一种实现三重内容可寻址存储器范围匹配的分段编码扩展方法,适用于网络设备中使用三重内容可寻址存储器的范围匹配,其特点在于,将需要进行范围匹配的字段分成多个分段,引入一个扩展函数,该扩展函数能使用一个三重内容可寻址存储器的条目表示每个分段内的任意范围,然后对于每个分段使用所述扩展函数进行扩展,从而通过对所述字段进行分段编码的方式来实现三重内容可寻址存储器应用于访问控制列表或服务质量方面的范围匹配。
上述的方法,其特点在于,按照如下方式将需要进行范围匹配的字段分成多个分段:判断是否能分成相同长度的分段,是则分成相同长度的分段以得到最好的平均扩展倍数和扩展比特位数,否则按照分段长度从小到大的顺序排列各分段以减少平均扩展条目数,从而获得良好的扩展系数。
上述的方法,其特点在于,所述扩展函数利用三重内容可寻址存储器条目的每个位的三种状态:0、1、x,来表示每个分段内的任意范围。
上述的方法,其特点在于,所述扩展函数为如下形式:f_expand(I)=(2W-1-I)个0+(I)个1;其中W表示字段比特位数,I表示W可以表示的数值范围;如用闭区间[M,N]来表示所有的范围,则所述扩展函数将所有的范围表示如下:
≥M表示为:(2W-1-M)个x+(M)个1;
≤N表示为:(2W-1-N)个0+(N)个x;
M≤I≤N表示为:(2W-1-N)个0+(N-M)个x+(M)个1。
上述的方法,其特点在于,在添加规则时对需要进行范围匹配的字段进行扩展,扩展的过程是一个完全多叉树的迭代过程,每次迭代都找出一个扩展条目然后进行分段编码,直到找出所有的扩展条目。
上述的方法,其特点在于,在查找规则时对需要进行范围匹配的字段进行分段编码处理后再进行查找。
上述的方法,其特点在于,对IP地址采用如下措施实现范围匹配:对IP地址的高位使用前缀表示,对IP地址的低位使用分段编码扩展方法进行扩展。
上述的方法,其特点在于,所述完全多叉树的迭代过程包括如下步骤:
步骤401,把起始节点M赋给一个用于迭代的变量L;
步骤402,如果L>N则跳到步骤409;
步骤403,如果N≤L父节点的最右孩子,则L和N是兄弟节点,把[L~N]进行编码并加入扩展条目中,然后跳到步骤409;
步骤404,如果L是最左孩子,跳到步骤406;
步骤405,L是右孩子,把L到其父节点的最右孩子进行编码并加入扩展条目中,同时把L指向父节点最右孩子的下一个节点,然后跳到步骤402以开始下一轮迭代;
步骤406,L是最左孩子,使用L的祖先节点进行覆盖,找到L的最大右祖先节点,因为N>L该最大右祖先节点一定存在,同时该最大右祖先节点满足下面的条件:该节点的最右叶子节点≤N;
步骤407:找到该最大右祖先节点的一个最大同层节点,因为N>L该最大同层节点一定存在,同时该最大同层节点满足下面的条件:该节点的最右叶子节点≤N;
步骤408,如果最大同层节点≤最大右祖先节点的最右兄弟节点,那么最大同层节点和最大右祖先节点是兄弟节点,能够进行编码,因此把L的最大右祖先节点到最大同层节点进行编码并加入扩展条目中,L指向最大同层节点最右叶子节点的下一个节点;否则最大同层节点和最大右祖先节点不是兄弟节点,不能进行编码,因此把L的最大右祖先节点到L的最右兄弟节点进行编码并加入扩展条目中,L指向最右兄弟节点最右叶子节点的下一个节点,跳到步骤402;
步骤409,迭代结束。
上述的方法,其特点在于,对于IPv4访问控制列表采用“4-4-4-4”的分段形式。
上述的方法,其特点在于,对于IPv6访问控制列表采用“4-4-4-4”或“5-5-6”的分段形式。
本发明的技术效果在于:采用本发明所述方法可以简单高效的实现TCAM的范围匹配。本发明不仅可以支持端口的范围匹配,同时还可以支持IP地址的范围匹配,为使用TCAM实现ACL/QoS提供了一个非常好的解决方法。它的优点如下:查找效率高,不依赖规则库,支持任意范围,更新效率高,扩展系数低,不占用额外的TCAM空间等。
附图说明
图1是分段编码扩展方法用到的概念描述;
图2是分段编码扩展方法中的编码原理图;
图3是分段编码扩展方法的证明示意图;
图4是分段编码扩展方法的流程图;
图5是具体实施方式中使用的例子;
图6是具体实施方式中使用的例子。
具体实施方式
下面结合附图对技术方案的实施作进一步的详细描述:
(1)基本概念介绍
本技术方案使用了很多完全多叉树里的概念,下面进行介绍,请参考图1进行阅读:
(a)孩子/父节点:如果一个多叉树中的某个节点有下一层节点,那么该节点就叫做它下一层节点的父节点;下一层节点就是该节点的孩子节点,最左/右边的孩子节点叫最左/右孩子,最左孩子的右边孩子节点叫右孩子,最右孩子的左边孩子节点叫左孩子。注意孩子/父节点是一个层次相对概念。
(b)兄弟/同层节点:父节点相同的两个节点叫兄弟节点;同层的其它节点称为同层节点。最左/右边的兄弟节点叫最左/右兄弟节点,兄弟节点也是同层节点。
(c)左/右祖先节点:一个节点沿其左/右侧向上经过的所有节点统称为该节点的左/右祖先节点。
(d)叶子/枝干节点:最下一层节点称为叶子节点;其它节点称为枝干节点。叶子节点为第0层,枝干节点从第1层开始。
(e)节点覆盖范围:一个节点沿左右两侧包含的所有节点统称为该节点的覆盖范围。
(f)最大左/右祖先节点:一个节点M相对于同层左边/右边的一个节点N有一个最大左/右祖先节点,该祖先节点在该层覆盖的节点范围中,最左/右边的节点≥/≤节点N。
(g)最左/右叶子节点:一个枝干节点覆盖的所有叶子节点中最左/右边的节点称为最左/右叶子节点。
(2)方法介绍
W表示字段bit位数,那么可以表示的数值范围为I=[0,2W-1]
定义扩展函数f_expand(I)=(2W-1-I)个0+(I)个1
对于所有的范围,都可以使用闭区间[M,N]来表示。由上面的函数特性以及图2可以总结出:
≥M可以表示为:(2W-1-M)个x+(M)个1
≤N可以表示为:(2W-1-N)个0+(N)个x
M≤I≤N可以表示为:(2W-1-N)个0+(N-M)个x+(M)个1
使用上面的编码方法,任何一个范围都可以使用一个TCAM条目表示,但是对于一个W bit的字段就要扩展成2W-1个bit,存储和查找时都要将字段进行编码处理。如果要表示16bit的端口号,那么则需要65535bit,显然无法实现。这时可以采用Multi-bit Trie表的思想将字段分段后再进行编码,具体方法如下:
对于W bit的字段将其分成K0,K1,K2,...,Kt-1共T个分段;
对于任意的Ki,Ki≥1;
对于任意的Ki和Kj,Ki可以不等于Kj,即每个分段可不等;
当K0=1时,一个范围最多扩展成2(T-1)个条目;
当K0>1时,一个范围最多扩展成2T-1个条目;
W bit的字段将扩展成(2K0-1)+(2K1-1)+...+(2Kt-1-1)bit;
如果每个分段的长度相同为K(K>1),那么一个范围最多扩展成2(W÷K)-1个条目,W bit的字段将扩展成(W÷K)×(2W/K-1)bit。
分段原则如下:
(a)最好平均分配各段的长度,这样可以得到最好的平均扩展倍数和扩展bit位数;
(b)各分段按分段的长度进行递增排列可以减少平均扩展条目数。
(3)方法证明
【命题】(下面几个命题是成立的,这里就不证明了)
(a)在相同情况下,跨度越远,所需要的条目个数越多。相同情况是指两个范围的两个起始节点和两个终止节点都是最左/右孩子,或者都是非最左/右孩子。
(b)对于两个兄弟节点,如果左边的节点是最左孩子,那么在终止边界相同情况下,右边的节点需要的条目个数≥左边节点。
(c)对于两个兄弟节点,如果右边的节点是最右孩子,那么在起始边界相同情况下,左边的节点需要的条目个数≥右边节点。
(d)对于两个节点,如果它们都是同一个父节点的右孩子,那么在终止边界相同的情况下,它们需要的条目个数相同。
(e)对于两个节点,如果它们都是同一个父节点的左孩子,那么在起始边界相同的情况下,它们需要的条目个数相同。
(f)对于任意一个节点的所有孩子中任意范围的孩子都可以使用一个编码来表示这些孩子。
【结论】
(a)通过上面6个命题可以得到,当起始节点是第一层枝干节点第一个节点的右孩子,终止节点是第一层枝干节点最后一个节点的左孩子时,所扩展的条目个数最多。
(b)可以用递归法证明次内层节点包络线可以覆盖上面所说的区域,所以次内层节点的个数即是扩展的最大条目个数。
(c)可以用递归法证明当第一个分段的位数=1时,一个范围最多扩展成2(T-1)个条目。
(d)可以用递归法证明当第一个分段的位数>1时,一个范围最多扩展成2T-1个条目。
(e)根据完全多叉树特性可得:如果W bit字段的每个分段长度相同为K(K>1),那么范围[1~(2K-1),(2W-2K)~(2W-2)]扩展的条目数最多为2(W÷K)-1。
证明示意图见图3。
(4)方法实现
对于给定范围[M,N],进行前缀扩展方法的流程图见图4。该方法采用一个逐步迭代的过程,每个迭代过程找出一个扩展条目,直到找出所有的扩展条目,具体步骤描述如下:
步骤401:把起始节点M赋给一个变量L,该变量用于迭代。
步骤402:如果L>N则迭代结束跳到步骤409。
步骤403:如果N≤L父节点的最右孩子则迭代结束,这时L和N是兄弟节点,把[L~N]进行编码并加入扩展条目中,然后跳到步骤409。
步骤404:如果L是最左孩子,跳到步骤406。
步骤405:到这一步,L是右孩子。因为L是右孩子,所以不可能使用其祖先节点对其进行覆盖。把L到其父节点的最右孩子进行编码并加入扩展条目中,同时把L指向父节点最右孩子的下一个节点,然后跳到步骤402开始下一轮迭代。
步骤406:到这一步,L是最左孩子,可以使用其祖先节点对其进行覆盖。找到L的最大右祖先节点,该最大右祖先节点一定存在因为N>L,同时该最大右祖先节点满足下面的条件:
该节点的最右叶子节点≤N
步骤407:找到该最大右祖先节点的一个最大同层节点,该最大同层节点一定存在因为N>L,同时该最大同层节点满足下面的条件:
该节点的最右叶子节点≤N
步骤408:如果最大同层节点≤最大右祖先节点的最右兄弟节点,那么最大同层节点和最大右祖先节点是兄弟节点,可以进行编码,因此把L的最大右祖先节点到最大同层节点进行编码并加入扩展条目中,L指向最大同层节点最右叶子节点的下一个节点。否则最大同层节点和最大右祖先节点不是兄弟节点,不可以进行编码,因此把L的最大右祖先节点到其最右兄弟节点进行编码并加入扩展条目中,L指向最右兄弟节点最右叶子节点的下一个节点。跳到步骤402开始下一轮迭代。
步骤409:迭代结束。
当采用分段编码扩展方法扩展字段时,字段已经被处理过了,所以相应查找方式也要变化,不过非常简单,只需要把查找关键字中被编码扩展的字段采用同样的方式进行分段编码即可进行查找。
(5)端口的分段方法
对于16位端口号,如果采用4-4-4-4分段,那么最多扩展成7×7=49个条目,需要额外的(15×4-16)×2=88bit进行编码;如果采用5-5-6分段,那么最多扩展成5×5=25个条目,需要额外的(31×2+63-16)×2=218bit进行编码。而一般的ACL组成为:
<acl-id><src-ip><dest-ip><src-port><dest-port><proto>
TCAM条目的宽度一般为:72bit,144bit,288bit,576bit
IPv4 ACL=8+32+32+16+16+8=112bit,所以采用288bit条目4-4-4-4分段是合理的,因为112+88=200bit<288bit
IPv6 ACL=8+128+128+16+16+8=304bit,所以采用576bit条目5-5-6分段是合理的,因为304+218=522bit<576bit,当然也可以使用4-4-4-4分段,虽然扩展系数变大,但是等分段实现起来要比不等分段简单很多。
(6)IP地址的范围匹配
目前的IP地址一般只支持前缀匹配,虽然也可以支持范围匹配,但是范围有限,并且限制的太死,如果要支持灵活的范围匹配,虽然可以直接使用分段编码扩展法,但是扩展的条目数太多,尤其是当扩展IPv6地址时,所以这个方法行不通。根据IP地址的特点,即使支持范围,主要也是对一些主机地址的限制,比如10.1.1.6~10.1.1.24。根据实际应用情况,主机地址一般都是使用低位进行表示,而高位则是网络地址,这时可以对IP地址采用如下方式表示:
网络地址(高位):前缀匹配,采用前缀直接表示
主机地址(低位):范围匹配,采用分段编码扩展方法进行扩展
比如可以对IPv4地址的低8位进行4-4分段编码扩展,高24位使用前缀表示。这样就可以灵活的实现IP地址的范围匹配。
(7)具体例子
如图5所示,W=4bit,K=2bit,进行2-2分段,那么根据公式可得需要扩展成2×(22-1)=6bit,最多需要2×(4÷2)-1=3个条目,范围是[1~3,12~14],下面就使用上面的方法找出[1,14]扩展的所有条目:
步骤501:起点1是一个右孩子,所以将[1~3]进行编码,并加入扩展条目中,现在起点=3+1=4。
00 01→000 001
00 11→000 111
[1,3]→000 xx1
步骤502:起点4是一个最左孩子,找到它的最大右祖先节点为01xx,该祖先节点的最右叶子节点=7≤14;找到该祖先节点的最大同层节点为10xx,该同层节点的最右叶子节点=11≤14。因为最大右祖先节点和最大同层节点是兄弟节点,所以将[01xx~10xx]进行编码,并加入扩展条目中,现在起点=11+1=12。
01 xx→001 xxx
10 xx→011 xxx
[4,11]→0x1 xxx
步骤503:起点12是一个最左孩子,而14和它是兄弟节点,所以将[12~14]进行编码,并加入扩展条目中,这时迭代结束。
11 00→111 000
11 10→111 011
[12,14]→111 0xx
经过上面这些迭代过程后可以得到表示范围[1,14]总共需要3个前缀分别如下:
扩展条目 覆盖范围 节点个数
000 xx1 1~3 3
0x1 xxx 4~11 8
111 0xx 12~14 3
现在假设查找关键字中的字段值是6,将其扩展变成
01 10→001 011
然后使用001 011与000 xx1、0x1 xxx、111 0xx进行TCAM匹配,可得只有0x1 xxx匹配,而0x1 xxx表示的范围是[4-11],所以结果完全正确。
图6是另一个更复杂的例子,W=6bit,K=2bit,进行2-2-2分段,那么根据公式可得需要扩展成3×(22-1)=9bit,最多需要3×(4÷2)-1=5个条目,范围是[1~3,60~62],扩展方法与上面的例子基本类似,下面主要说一下不同的地方。当迭代到节点4时,起点4是一个最左孩子,找到它的最大右祖先节点为0001xx,最大同层节点为1110xx,因为最大右祖先节点和最大同层节点不是兄弟节点,所以将0001xx到其最右兄弟节点0011xx进行编码即[0001xx~0011xx],并加入扩展条目中,现在起点=15+1=16。
00 01 xx→000 001 xxx
00 11 xx→000 111 xxx
[4,15]→000 xx1 xxx
以上所述仅为本发明的较佳实施例,并非用来限定本发明的实施范围;凡是依本发明所作的等效变化与修改,都被本发明的专利范围所涵盖。
Claims (8)
1、一种实现三重内容可寻址存储器范围匹配的分段编码扩展方法,适用于网络设备中使用三重内容可寻址存储器的范围匹配,其特征在于,将需要进行范围匹配的字段分成多个分段,引入一个扩展函数,该扩展函数能使用一个三重内容可寻址存储器的条目表示每个分段内的任意范围,然后对于每个分段使用所述扩展函数进行扩展,从而通过对所述字段进行分段编码的方式来实现三重内容可寻址存储器应用于访问控制列表或服务质量方面的范围匹配。
2、根据权利要求1所述的方法,其特征在于,按照如下方式将需要进行范围匹配的字段分成多个分段:判断是否能分成相同长度的分段,是则分成相同长度的分段以得到最好的平均扩展倍数和扩展比特位数,否则按照分段长度从小到大的顺序排列各分段以减少平均扩展条目数,从而获得良好的扩展系数。
3、根据权利要求1或2所述的方法,其特征在于,所述扩展函数利用三重内容可寻址存储器条目的每个位的三种状态:0、1、x,来表示每个分段内的任意范围。
4、根据权利要求3所述的方法,其特征在于,所述扩展函数为如下形式:f_expand(I)=(2W-1-I)个0+(I)个1;其中W表示字段比特位数,I表示W可以表示的数值范围;如用闭区间[M,N]来表示所有的范围,则所述扩展函数将所有的范围表示如下:
≥M表示为:(2W-1-M)个x+(M)个1;
≤N表示为:(2W-1-N)个0+(N)个x;
M≤I≤N表示为:(2W-1-N)个0+(N-M)个x+(M)个1。
5、根据权利要求3所述的方法,其特征在于,在添加规则时对需要进行范围匹配的字段进行扩展,扩展的过程是一个完全多叉树的迭代过程,每次迭代都找出一个扩展条目然后进行分段编码,直到找出所有的扩展条目。
6、根据权利要求5所述的方法,其特征在于,在查找规则时对需要进行范围匹配的字段进行分段编码处理后再进行查找。
7、根据权利要求5所述的方法,其特征在于,对IP地址采用如下措施实现范围匹配:对IP地址的高位使用前缀表示,对IP地址的低位使用分段编码扩展方法进行扩展。
8、根据权利要求5所述的方法,其特征在于,所述完全多又树的迭代过程包括如下步骤:
步骤401,把起始节点M赋给一个用于迭代的变量L;
步骤402,如果L>N则跳到步骤409;
步骤403,如果N≤L父节点的最右孩子,则L和N是兄弟节点,把[L~N]进行编码并加入扩展条目中,然后跳到步骤409;
步骤404,如果L是最左孩子,跳到步骤406;
步骤405,L是右孩子,把L到其父节点的最右孩子进行编码并加入扩展条目中,同时把L指向父节点最右孩子的下一个节点,然后跳到步骤402以开始下一轮迭代;
步骤406,L是最左孩子,使用L的祖先节点进行覆盖,找到L的最大右祖先节点,因为N>L该最大右祖先节点一定存在,同时该最大右祖先节点满足下面的条件:该节点的最右叶子节点≤N;
步骤407:找到该最大右祖先节点的一个最大同层节点,因为N>L该最大同层节点一定存在,同时该最大同层节点满足下面的条件:该节点的最右叶子节点≤N;
步骤408,如果最大同层节点≤最大右祖先节点的最右兄弟节点,那么最大同层节点和最大右祖先节点是兄弟节点,能够进行编码,因此把L的最大右祖先节点到最大同层节点进行编码并加入扩展条目中,L指向最大同层节点最右叶子节点的下一个节点;否则最大同层节点和最大右祖先节点不是兄弟节点,不能进行编码,因此把L的最大右祖先节点到L的最右兄弟节点进行编码并加入扩展条目中,L指向最右兄弟节点最右叶子节点的下一个节点,跳到步骤402;
步骤409,迭代结束。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610011465A CN101035061B (zh) | 2006-03-09 | 2006-03-09 | 实现三重内容可寻址存储器范围匹配的分段编码扩展方法 |
PCT/CN2006/003810 WO2007101380A1 (fr) | 2006-03-09 | 2006-12-31 | Procédé étendu de codage de segments permettant de réaliser une adaptation d'intervalle à l'aide d'une mémoire adressable à contenu ternaire |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610011465A CN101035061B (zh) | 2006-03-09 | 2006-03-09 | 实现三重内容可寻址存储器范围匹配的分段编码扩展方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101035061A true CN101035061A (zh) | 2007-09-12 |
CN101035061B CN101035061B (zh) | 2010-05-12 |
Family
ID=38474594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610011465A Expired - Fee Related CN101035061B (zh) | 2006-03-09 | 2006-03-09 | 实现三重内容可寻址存储器范围匹配的分段编码扩展方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101035061B (zh) |
WO (1) | WO2007101380A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667964B (zh) * | 2009-09-18 | 2012-09-05 | 中兴通讯股份有限公司 | 一种访问控制列表规则的配置方法及装置 |
CN103516614A (zh) * | 2012-06-28 | 2014-01-15 | 美国博通公司 | 用于在存储器中存储整数范围的系统和方法 |
CN103618711A (zh) * | 2013-11-25 | 2014-03-05 | 华为技术有限公司 | 一种acl规则的配置方法及网络设备 |
CN104901947A (zh) * | 2015-04-13 | 2015-09-09 | 国家计算机网络与信息安全管理中心 | 一种基于tcam连续数值匹配方法和装置 |
WO2017036291A1 (zh) * | 2015-09-01 | 2017-03-09 | 深圳市中兴微电子技术有限公司 | 一种访问控制列表acl的实现方法、装置及存储介质 |
CN103475584B (zh) * | 2012-06-07 | 2017-08-01 | 南京中兴软件有限责任公司 | 三态内容寻址存储器(tcam)查询方法和装置 |
CN108400938A (zh) * | 2018-01-25 | 2018-08-14 | 济南浪潮高新科技投资发展有限公司 | 一种数据流处理方法和装置 |
CN113392039A (zh) * | 2021-06-09 | 2021-09-14 | 新华三信息安全技术有限公司 | 一种数据存储、查找方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546378B (zh) * | 2013-05-20 | 2018-06-01 | 北京百卓网络技术有限公司 | 基于tcam的范围多匹配2级分层查找方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7028098B2 (en) * | 2001-07-20 | 2006-04-11 | Nokia, Inc. | Selective routing of data flows using a TCAM |
JP2003298613A (ja) * | 2002-04-03 | 2003-10-17 | Fujitsu Ltd | アドレス検索方法及びこれを用いる検索システム |
CN1279725C (zh) * | 2004-01-16 | 2006-10-11 | 清华大学 | 路由查找和流分类用的高速低功耗的匹配方法及其系统 |
CN100387028C (zh) * | 2005-04-01 | 2008-05-07 | 清华大学 | 基于tcam的解决范围匹配的并行ip包分类器及方法 |
-
2006
- 2006-03-09 CN CN200610011465A patent/CN101035061B/zh not_active Expired - Fee Related
- 2006-12-31 WO PCT/CN2006/003810 patent/WO2007101380A1/zh active Application Filing
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667964B (zh) * | 2009-09-18 | 2012-09-05 | 中兴通讯股份有限公司 | 一种访问控制列表规则的配置方法及装置 |
CN103475584B (zh) * | 2012-06-07 | 2017-08-01 | 南京中兴软件有限责任公司 | 三态内容寻址存储器(tcam)查询方法和装置 |
CN103516614A (zh) * | 2012-06-28 | 2014-01-15 | 美国博通公司 | 用于在存储器中存储整数范围的系统和方法 |
CN103618711A (zh) * | 2013-11-25 | 2014-03-05 | 华为技术有限公司 | 一种acl规则的配置方法及网络设备 |
CN103618711B (zh) * | 2013-11-25 | 2016-11-23 | 华为技术有限公司 | 一种acl规则的配置方法及网络设备 |
CN104901947A (zh) * | 2015-04-13 | 2015-09-09 | 国家计算机网络与信息安全管理中心 | 一种基于tcam连续数值匹配方法和装置 |
CN104901947B (zh) * | 2015-04-13 | 2017-11-24 | 国家计算机网络与信息安全管理中心 | 一种基于tcam连续数值匹配方法和装置 |
WO2017036291A1 (zh) * | 2015-09-01 | 2017-03-09 | 深圳市中兴微电子技术有限公司 | 一种访问控制列表acl的实现方法、装置及存储介质 |
CN108400938A (zh) * | 2018-01-25 | 2018-08-14 | 济南浪潮高新科技投资发展有限公司 | 一种数据流处理方法和装置 |
CN113392039A (zh) * | 2021-06-09 | 2021-09-14 | 新华三信息安全技术有限公司 | 一种数据存储、查找方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2007101380A1 (fr) | 2007-09-13 |
CN101035061B (zh) | 2010-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101035061A (zh) | 实现三重内容可寻址存储器范围匹配的分段编码扩展方法 | |
CN101035062A (zh) | 一种三重内容可寻址存储器报文分类的规则更新方法 | |
CN101039253A (zh) | 一种实现三重内容可寻址存储器范围匹配的前缀扩展方法 | |
CN1863142A (zh) | 给数据流提供不同的服务质量策略的方法 | |
CN1905523A (zh) | 一种多域流分类的实现方法 | |
CN1949740A (zh) | 针对bgp负载分担中路由下一跳变化的处理方法 | |
CN1852240A (zh) | 一种桥接转发方法 | |
CN1694429A (zh) | 一种IPv6传感器网络中支持压缩包并行传输的实现方法 | |
CN1921477A (zh) | 一种对分片报文进行复杂流分类的方法及系统 | |
CN1437363A (zh) | 网关装置及其控制方法 | |
CN101048012A (zh) | 一种在无线网状网络中确定路由的方法 | |
CN1968184A (zh) | 区域网络的链路层通信方法及其应用的网络设备 | |
CN1585366A (zh) | 无线基站,网络系统,通信方法和基站控制程序 | |
CN1496154A (zh) | 移动通信控制系统、移动通信控制方法、路由器、服务器以及数据结构 | |
CN1798104A (zh) | 针对组播通信的无线通信系统 | |
CN1503539A (zh) | 在IPv6中使用接口标识符的路由选择表管理方法 | |
CN1494274A (zh) | 基于网络处理器实现ip报文分片重组的方法 | |
CN1866920A (zh) | 基于虚拟局域网堆叠的服务质量管理方法 | |
CN1859766A (zh) | 一种通信系统发起业务请求时对业务承载的处理方法 | |
CN101047649A (zh) | 一种转发数据流的方法和设备 | |
CN1905509A (zh) | 用户接入虚拟专用局域网服务的方法和系统 | |
CN1859179A (zh) | 一种用户组播权限的管理方法 | |
CN101075964A (zh) | 一种以路由器接口地址实现端口重定向的方法及其系统 | |
CN1411231A (zh) | 移动ip中一种数据包传输的方法 | |
CN1863135A (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: 20100512 Termination date: 20150309 |
|
EXPY | Termination of patent right or utility model |