CN101039252B - 一种三重内容可寻址存储器路由表管理方法 - Google Patents

一种三重内容可寻址存储器路由表管理方法 Download PDF

Info

Publication number
CN101039252B
CN101039252B CN2006100114972A CN200610011497A CN101039252B CN 101039252 B CN101039252 B CN 101039252B CN 2006100114972 A CN2006100114972 A CN 2006100114972A CN 200610011497 A CN200610011497 A CN 200610011497A CN 101039252 B CN101039252 B CN 101039252B
Authority
CN
China
Prior art keywords
zone
route
subclauses
clauses
current region
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
CN2006100114972A
Other languages
English (en)
Other versions
CN101039252A (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.)
ZTE Corp
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 CN2006100114972A priority Critical patent/CN101039252B/zh
Priority to PCT/CN2006/003750 priority patent/WO2007104204A1/zh
Publication of CN101039252A publication Critical patent/CN101039252A/zh
Application granted granted Critical
Publication of CN101039252B publication Critical patent/CN101039252B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching 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/54Organization of routing tables

Abstract

本发明公开了一种三重内容可寻址存储器路由表管理方法,将路由表按照路由的前缀长度划分为多个区域,其特征在于,更新所述路由表中的路由时,当区域实际空间不足或过大时,在所述路由表内的各个区域空间之间进行区域大小的动态调整。本发明可以解决三重内容可寻址存储器实现IPv4/IPv6的路由表管理问题,提供了一种简单高效的方法实现路由条目的更新。

Description

一种三重内容可寻址存储器路由表管理方法
技术领域
本发明涉及计算机网络技术领域,尤其涉及使用TCAM(Ternary ContentAddressable Memory,三重内容可寻址存储器)实现路由表管理方面的技术,主要应用在路由器,交换机,防火墙,入侵检测系统等网络设备。
背景技术
现今的网络设备中,路由是最基本的功能。目前主要是使用IPv4(InternetProtocol version 4,互联网协议第四版),其地址是32位,IPv6(Internet Protocolversion 6,互联网协议第六版)也已经开始慢慢应用起来,其地址是128位。实现路由查找对网络设备的性能是非常关键的,目前主要有两种途径,一种是使用软件实现,最典型的就是Trie表算法;另一种就是使用硬件实现,最典型的就是TCAM。当然硬件实现肯定比软件快很多,尤其是在一些高速网络中,一般都使用硬件进行加速。
TCAM是一种专用三重内容可寻址存储器,可以进行快速大量并行搜索。搜索的时候,存储器中所有的条目同时与搜索关键字比较,搜索结果就是匹配项的物理地址。在进行条目匹配时,条目的每个位可以是0、1、x三种状态,如果是x,那么该位不参与比较,默认是成功,否则关键字和条目的相应位进行比较,如果相同则成功否则失败。在比较过程中,如果某位不匹配,那么该条目匹配失败;如果所有位都匹配,那么该条目匹配成功。
TCAM硬件的固有特性使得TCAM非常适合做LPM(longest prefix match,最长前缀匹配)查找,而IPv4/IPv6路由就是使用LPM查找的,所以在高速网络比如10G网络中,使用TCAM进行路由查找是一个趋势。
普通TCAM的查找过程是采用最先匹配的原则,也就是说如果有多个匹配项,那么最先匹配的或者说地址最低的那个获胜。所以LPM表必须按prefix长度递减排序,这导致插入删除条目时需要对已有的表项进行移动,见图1。一般的TCAM都有几十K甚至几百K的条目,如果插入/删除的是第一个条目,按照最简单的方法移动的话,那么条目移动的次数是很大的,同时还要移动与条目相关联的数据,这根本无法满足高速网络的路由更新需求。论文《Fastincremental updates on Ternary-CAMs for routing lookups and packetclassification》(http://www.hoti.org/archive/hoti8papers/018.pdf)提出了两种方法实现TCAM路由表的管理:第一个是PLO_OPT(prefix-length ordering),另一个是CAO_OPT(chain-ancestor ordering)。PLO_OPT算法虽然简单,但是平均更新效率较低,CAO_OPT算法的更新效率高,但是实现复杂度较高。
发明内容
本发明的目的在于解决TCAM实现IPv4/IPv6的路由表管理问题,提供一种简单高效的方法实现路由条目的更新。
为实现上述目的,本发明提出了一种三重内容可寻址存储器路由表管理方法,将路由表按照路由的前缀长度划分为多个区域,其中,更新所述路由表中的路由时,当区域实际空间不足或过大时,在所述路由表内的各个区域空间之间进行区域大小的动态调整。
上述的三重内容可寻址存储器路由表管理方法,其中,当在所述路由表中插入路由时,具体包括以下步骤:
步骤21,判断所要插入的路由所属的当前区域是否有空闲空间;
步骤22,若是,则直接在所述当前区域最后的路由后面插入所述路由,若否,则在所述当前区域的上方和下方的其他区域寻址是否存在有空闲空间的区域;
步骤23,若不存在,则插入失败,若存在,则扩大所述当前区域,缩小有空闲空间的区域,然后在所述当前区域中插入路由;
步骤24,递增所述当前区域的路由计数,并递增所述路由表的总路由计数。
上述的三重内容可寻址存储器路由表管理方法,其中,若所述有空闲空间的区域在所述当前区域的上方,所述步骤23具体包括以下步骤:
步骤31,从所述有空闲空间的区域的下边界收缩一个条目的空间;
步骤32,将所述有空闲空间的区域的下一个区域到所述当前区域的上一个区域之间的每个区域的最后一个条目移到同一个区域的第一个条目的上面;
步骤33,从所述当前区域的上边界扩大一个条目的空间,并在所述当前区域的上边界处插入路由。
上述的三重内容可寻址存储器路由表管理方法,其中,若所述有空闲空间的区域在所述当前区域的下方,所述步骤23具体包括以下步骤:
步骤41,将所述有空闲空间的区域的第一个条目移到最后一个条目的后面,并从所述有空闲空间的区域的上边界收缩一个条目的空间;
步骤42,将所述有空闲空间的区域的上一个区域到所述当前区域的下一个区域之间的每个区域的第一个条目移到同一个区域的最后一个条目的下面;
步骤43,从所述当前区域的下边界扩大一个条目的空间,并在所述当前区域的下边界处插入路由。
上述的三重内容可寻址存储器路由表管理方法,其中,当在所述路由表中删除路由时,具体包括以下步骤:
步骤51,查找所要删除的路由在TCAM中的位置,计算所述要删除的路由在所属的当前区域内的相对位置;
步骤52,判断所述要删除的路由是否是所述当前区域的最后一个路由;
步骤53,若是,则直接删除所述要删除的路由,若否,则将所述当前区域最后一个条目移到当前删除条目位置,再删除所述要删除的路由;
步骤54,递减所述当前区域的前缀计数,并递减所述路由表的总前缀计数。
上述的三重内容可寻址存储器路由表管理方法,其中,还包括进行区域收缩的步骤,具体包括:
步骤61,判断所述当前区域的大小是否超过期望值;
步骤62,若否,则不进行区域收缩,若是,则依次在所述当前区域的上方和下方查找是否有空间不足的区域;
步骤63,若否,则停止区域收缩,若是,则收缩所述当前区域,扩大所述空间不足的区域。
上述的三重内容可寻址存储器路由表管理方法,其中,当所述空间不足的区域在所述当前区域上方时,具体包括以下步骤:
步骤71,将所述当前区域到所述空间不足的区域的下一个区域之间的每个区域的第一个条目移到该同一区域的最后一个条目的下面;
步骤72,在所述当前区域的下边界缩小一个条目的空间;
步骤73,将所述空间不足的区域的下边界扩大一个条目的空间。
上述的三重内容可寻址存储器路由表管理方法,其中,当所述空间不足的区域在所述当前区域下方时,具体包括以下步骤:
步骤81,将所述当前区域的下一个区域到所述空间不足的区域之间的每个区域的最后一个条目移到该同一个区域的第一个条目的上面;
步骤82,将所述当前区域的下边界缩小一个条目的空间;
步骤83,从所述空间不足的区域的下边界扩大一个条目的空间。
上述的三重内容可寻址存储器路由表管理方法,其中,还包括前缀分布自学习过程,具体包括:
步骤91,路由更新进行计数;
步骤92,判断计数值是否到达采样周期,若否,结束自学习过程,若是,判断当前路由条目数是否超过门限值;
步骤93,若否,结束自学习过程,若是,对每个前缀区域进行重新计算,公式如下:
区域的新期望值=区域的旧期望值×(1-δ)+按照区域当前前缀所占比例算得的区域理想大小×δ,
δ是一个系数,用于调整区域理想大小所占的比重。
上述的三重内容可寻址存储器路由表管理方法,其中,路由表初始化时,根据设定的前缀长度分布概率分配每个路由区域的期望值大小,所述期望值初始化时与分配给每个区域的大小相同。
采用本发明所述方法可以简单高效的解决TCAM实现IPv4/IPv6的路由表管理问题。它的优点如下:
1.实现简单,没有复杂的算法和数据结构;
2.更新效率非常高:添加路由平均移动条目数≈0,删除路由平均移动条目数≈1;
3.具有自动调整恢复功能,可以保持稳定的更新效率;
4.具有智能自学习功能,可以根据实际路由分布情况自动调整;
5.可以扩展应用到其它LPM表的管理。
附图说明
图1是本发明LPM表在TCAM中的排列顺序示意图;
图2是本发明初始化后的前缀区域分布图;
图3是本发明插入路由的流程图;
图4是本发明前缀区域扩展例子;
图5是本发明删除路由的流程图;
图6是本发明前缀区域收缩例子;
图7是本发明前缀分布学习流程图。
具体实施方式
下面结合附图详细说明本发明实施例如下。
图1是本发明LPM表在TCAM中的排列顺序示意图。图2是本发明初始化后的前缀区域分布图。如图所示:
假设路由长度为N,那么系统有N个前缀区域,每个前缀区域有一组信息,如下:
upper_boundary——上边界
lower_boundary——下边界
prefix_num——前缀个数
region_size——区域实际大小
expected_size——区域期望大小
全局信息
g_region[N]——所有区域的信息,结构如上所述
g_prefix_total——路由表前缀总个数
g_start——路由表在TCAM中的起始位置
g_capability——路由表总容量
根据以前统计信息预设每个区域大小,并初始化区域相关信息以及全局信息。每个区域的分配比例存放在percentage[N]数组中。
全局信息初始化如下:
g_prefix_total=0
g_start=路由表在TCAM中的起始位置
g_capability=路由表总容量
区域N信息首先初始化如下:
g_region[N].expected_size=g_region[N].region_size=g_capability×percentage[N]
g_region[N].upper_boundary=g_start
g_region[N].lower_boundary=g_region[N].upper_boundary+g_region[N].region_size-1
g_region[N].prefix_num=0
区域I(N>I>0,I从N-1→1)信息依次初始化如下:
g_region[I].expected_size=g_region[I].region_size=g_capability×percentage[I]
g_region[I].upper_boundary=g_region[I+1].lower_boundary+1
g_region[I].lower_boundary=g_region[I].upper_boundary+g_region[I].region_size-1
g_region[I].prefix_num=0
图3是本发明插入路由的流程图。图4是本发明前缀区域扩展例子。如图所示,假设插入的路由前缀长度是I,具体步骤描述如下:
S301,判断插入的路由所在的前缀区域I是否有空闲的条目,判断方法是:g_region[I].region_size>g_region[I].prefix_num。如果有空闲空间,那么在g_region[I].upper_boundary+g_region[I].prefix_num处插入路由,然后跳到S311。
S302,前缀区域I没有空闲空间,这时可以考虑扩展该区域。首先判断整个路由表是否有空闲空间,判断方法如下:g_capability>g_prefix_total。如果整个路由表都没有空闲空间,那么插入失败,跳到S312。
S303,路由表有空闲空间,可以进行前缀区域扩展。依次在区域I的上下区域查找有空闲空间的前缀区域J,判断条件如下:
g_region[J].region_size>g_region[J].prefix_num
判断过程是一个迭代过程,为了使移动的次数最少,判断方法是先判断J+1、J-1,然后判断J+2、J-2,直到找到有空闲空间的前缀区域。
S304,如果J<I,跳到步骤S308。区域扩展例子参见图4。
S305,空闲区域J在区域I的上面。从区域J的下边界缩小一个条目的空间:
g_region[J].region_size--
g_region[J].lower_boundary--
S306,将区域J-1到I+1之间的每个区域x(每个区域都是满的)依次进行如下操作(上移):
g_region[x].upper_boundary--
Move(g_region[x].lower_boundary→g_region[x].upper_boundary),将区域最后一个条目移到同一个区域的第一个条目的上面,移动条件是g_region[x].prefix_num>0
g_region[x].lower_boundary--
S307,从区域I的上边界扩大一个条目的空间:
g_region[I].region_size++
g_region[I].upper_boundary--
并在g_region[I].upper_boundary处插入路由,然后跳到S311。
S308,空闲区域J在区域I的下面。
Move(g_region[J].upper_boundary→g_region[J].upper_boundary+g_region[J].prefix_num),将区域第一个条目移到区域最后一个条目的后面,移动条件是g_region[x].prefix_num>0
从区域J的上边界缩小一个条目的空间:
g_region[J].region_size--
g_region[J].upper_boundary++
S309,将区域J+1到I-1之间的每个区域x(每个区域都是满的)依次进行如下操作(下移):
g_region[x].lower_boundary++
Move(g_region[x].upper_boundary→g_region[x].lower_boundary),将区域第一个条目移到同一个区域的最后一个条目的下面,移动条件是g_region[x].prefix_num>0。
g_region[x].upper_boundary++
S310:从区域I的下边界扩大一个条目的空间:
g_region[I].region_size++
g_region[I].lower_boundary++
并在g_region[I].lower_boundary处插入路由。
S311,更新前缀计数信息
g_region[I].prefix_num++
g_prefix_total++
S312,插入结束。
图5是本发明删除路由的流程图。图6是本发明前缀区域收缩例子。如图所示,假设删除的路由前缀长度是I,具体步骤描述如下:
S501,查找路由在TCAM中的位置location,计算路由在前缀区域I内部的相对位置rela_loca=location-g_region[I].upper_boundary。
S502,判断路由是否是区域内部最后一个路由,判断方法如下:rela_loca=g_region[I].prefix_num-1。如果是则直接在location处删除该路由,否则将区域最后一个条目移到当前删除条目位置Move(g_region[I].upper_boundary+g_region[I].prefix_num-1→locaion)。
S503,更新前缀计数信息:
g_region[I].prefix_num--
g_prefix_total--
S504,判断是否需要进行区域收缩,这主要是为了防止路由频繁动荡导致区域分布恶化,进而降低平均更新效率。在更新过程中主动调整恢复前缀区域分布可以有效的保证删除时最多移动一个条目,而插入则不用移动条目,这样就可以维持很高的更新效率。判断是否需要进行区域收缩的方法如下:g_region[I].region_size>g_region[I].expected_size。如果不需要则跳到S513。
S505,需要进行区域收缩。依次在区域I的上下区域查找满足下面条件的区域J:
g_region[J].region_size<g_region[J].expected_size
判断过程是一个迭代过程,为了使移动的次数最少,判断方法是先判断J+1、J-1,然后判断J+2、J-2,直到找到空间不足的前缀区域。
S506,如果J<I,跳到步骤S510。区域收缩例子参见图6。
S507,空闲区域J在区域I的上面。将区域I到J-1之间的每个区域x依次进行如下操作(下移):
g_region[x].lower_boundary++
Move(g_region[x].upper_boundary→g_region[x].upper_boundary+g_region[x].prefix_num),将区域第一个条目移到区域最后一个条目的后面,移动条件是g_region[x].prefix_num>0
g_region[x].upper_boundary++
S508,从区域I的下边界缩小一个条目的空间:(注意区域I已经下移过)
g_region[I].region_size--
g_region[I].lower_boundary--
S509,从区域J的下边界扩大一个条目的空间:
g_region[J].region_size++
g_region[J].lower_boundary++
然后跳到S513
S510,空闲区域J在区域I的下面。将区域I-1到J之间的每个区域x依次进行如下操作(上移):
g_region[x].upper_boundary--
Move(g_region[x].upper_boundary+g_region[x].prefix_num→g_region[x].upper_boundary),将区域最后一个条目移到该同一个区域的第一个条目的上面,移动条件是g_region[x].prefix_num>0
g_region[x].lower_boundary--
S511,从区域I的下边界缩小一个条目的空间:
g_region[I].region_size--
g_region[I].lower_boundary--
S512:从区域J的下边界扩大一个条目的空间:(注意区域J已经上移过)
g_region[J].region_size++
g_region[J].lower_boundary++
S513,删除结束。
当路由更新非常频繁时,那么原始设定的区域expected_size值可能不能适应当前的前缀分布情况,这时可以采用一种动态调整的技术,使得区域expected_size按一定周期进行更新,这就可以保证区域expected_size反映当前路由表中实际前缀的分布比例,这其实就是一种智能的路由前缀分布自学习功能。
因为只有当添加删除路由时才会引起前缀分布的变化,所以只需要在路由更新时进行学习即可。最精确的反映当前前缀的分布莫过于每次路由更新时都进行学习,但是这样CPU性能会消耗很多,所以不可取,这时可以设定一个采样周期sample,具体实施方法如下。
图7是本发明前缀分布学习流程图。如图所示,包括以下步骤:
S701,每次进行路由更新时都更新计数counter。
S702,当counter MOD sample=0时就进行前缀分布学习。
S703,在学习前首先还需要判断当前状态是否值得学习,只有当g_prefix_total>threadshold时即路由条目超过一定门限后才进行学习,这样可以确保学习的准确性,因为采样样本越大,计算结果越准确。
每次前缀分布学习方法如下:对每个前缀区域I(1≤I≤N)的expected_size进行重新计算。
S704,首先,对I赋值I=1。
S705,判断I是否超过N,如果超过,则结束学习。
S706,如果I没有超过N,则按照下面的公式进行计算:
g_region[I].expected_size=((g_region[I].expected_size÷g_capability)×(1-δ)+(g_region[I].prefix_num÷g_prefix_total)×δ)×g_capability
=g_region[I].expected_size×(1-δ)+(g_region[I].prefix_num÷g_prefix_total)×g_capability×δ
(0<δ<0.5,建议取0.1)。
S707,计算完成后,赋值I=I+1,然后返回S705。
上面公式的含义如下:区域I的新期望值=区域I的旧期望值×(1-δ)+按照区域I当前前缀所占比例算得的区域I理想大小×δ。其中δ是一个系数,用于调整区域I理想大小所占的比重,由于路由一直在不停的变化,所以δ值不能大,否则会使路由表管理一直处于一种动荡状态。
上面是智能前缀分布学习功能的基本原理,详细流程图参见图7,只要在每次路由更新时调用即可实现前缀分布学习功能。
智能前缀分布学习功能是可以启用的选项,如果在实际的应用中路由更新的不频繁,那么可以不启用该功能;如果更新比较频繁,那么建议启用该功能,采样周期sample的值随着更新的频繁度递减,具体值可以根据实际的应用进行确定。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的普通技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (9)

1.一种三重内容可寻址存储器路由表管理方法,将路由表按照路由的前缀长度划分为多个区域,其特征在于,更新所述路由表中的路由时,当区域实际空间不足或过大时,在所述路由表内的各个区域空间之间进行区域大小的动态调整;
当在所述路由表中插入路由时,具体包括以下步骤:
步骤21,判断所要插入的路由所属的当前区域是否有空闲空间;
步骤22,若是,则直接在所述当前区域最后的路由后面插入所述路由,若否,则在所述当前区域的上方和下方的其他区域寻址是否存在有空闲空间的区域;
步骤23,若不存在,则插入失败,若存在,则扩大所述当前区域,缩小有空闲空间的区域,然后在所述当前区域中插入路由;
步骤24,递增所述当前区域的路由计数,并递增所述路由表的总路由计数。
2.根据权利要求1所述的三重内容可寻址存储器路由表管理方法,其特征在于,若所述有空闲空间的区域在所述当前区域的上方,所述步骤23具体包括以下步骤:
步骤31,从所述有空闲空间的区域的下边界收缩一个条目的空间;
步骤32,将所述有空闲空间的区域的下一个区域到所述当前区域的上一个区域之间的每个区域的最后一个条目移到同一个区域的第一个条目的上面;
步骤33,从所述当前区域的上边界扩大一个条目的空间,并在所述当前区域的上边界处插入路由。
3.根据权利要求1所述的三重内容可寻址存储器路由表管理方法,其特征在于,若所述有空闲空间的区域在所述当前区域的下方,所述步骤23具体包括以下步骤:
步骤41,将所述有空闲空间的区域的第一个条目移到最后一个条目的后面,并从所述有空闲空间的区域的上边界收缩一个条目的空间;
步骤42,将所述有空闲空间的区域的上一个区域到所述当前区域的下一个区域之间的每个区域的第一个条目移到同一个区域的最后一个条目的下面;
步骤43,从所述当前区域的下边界扩大一个条目的空间,并在所述当前区域的下边界处插入路由。
4.根据权利要求1所述的三重内容可寻址存储器路由表管理方法,其特征在于,当在所述路由表中删除路由时,具体包括以下步骤:
步骤51,查找所要删除的路由在TCAM中的位置,计算所述要删除的路由在所属的当前区域内的相对位置;
步骤52,判断所述要删除的路由是否是所述当前区域的最后一个路由;
步骤53,若是,则直接删除所述要删除的路由,若否,则将所述当前区域最后一个条目移到当前删除条目位置,再删除所述要删除的路由;
步骤54,递减所述当前区域的前缀计数,并递减所述路由表的总前缀计数。
5.根据权利要求4所述的三重内容可寻址存储器路由表管理方法,其特征在于,还包括进行区域收缩的步骤,具体包括:
步骤61,判断所述当前区域的大小是否超过期望值;
步骤62,若否,则不进行区域收缩,若是,则依次在所述当前区域的上方和下方查找是否有空间不足的区域;
步骤63,若否,则停止区域收缩,若是,则收缩所述当前区域,扩大所述空间不足的区域。
6.根据权利要求5所述的三重内容可寻址存储器路由表管理方法,其特征在于,当所述空间不足的区域在所述当前区域上方时,具体包括以下步骤:
步骤71,将所述当前区域到所述空间不足的区域的下一个区域之间的每个区域的第一个条目移到该同一区域的最后一个条目的下面;
步骤72,在所述当前区域的下边界缩小一个条目的空间;
步骤73,将所述空间不足的区域的下边界扩大一个条目的空间。
7.根据权利要求5所述的三重内容可寻址存储器路由表管理方法,其特征在于,当所述空间不足的区域在所述当前区域下方时,具体包括以下步骤:
步骤81,将所述当前区域的下一个区域到所述空间不足的区域之间的每个区域的最后一个条目移到该同一个区域的第一个条目的上面;
步骤82,将所述当前区域的下边界缩小一个条目的空间;
步骤83,从所述空间不足的区域的下边界扩大一个条目的空间。
8.根据权利要求1所述的三重内容可寻址存储器路由表管理方法,其特征在于,还包括前缀分布自学习过程,具体包括:
步骤91,路由更新进行计数;
步骤92,判断计数值是否到达采样周期,若否,结束自学习过程,若是,判断当前路由条目数是否超过门限值;
步骤93,若否,结束自学习过程,若是,对每个前缀区域进行重新计算,公式如下:
区域的新期望值=区域的旧期望值×(1-δ)+按照区域当前前缀所占比例算得的区域理想大小×δ,
δ是一个系数,用于调整区域理想大小所占的比重。
9.根据权利要求8所述的三重内容可寻址存储器路由表管理方法,其特征在于,路由表初始化时,根据设定的前缀长度分布概率分配每个路由区域的期望值大小,所述期望值初始化时与分配给每个区域的大小相同。
CN2006100114972A 2006-03-15 2006-03-15 一种三重内容可寻址存储器路由表管理方法 Expired - Fee Related CN101039252B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2006100114972A CN101039252B (zh) 2006-03-15 2006-03-15 一种三重内容可寻址存储器路由表管理方法
PCT/CN2006/003750 WO2007104204A1 (fr) 2006-03-15 2006-12-30 Procédé de gestion de tableau routeur par la mémoire adressable à contenu ternaire

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2006100114972A CN101039252B (zh) 2006-03-15 2006-03-15 一种三重内容可寻址存储器路由表管理方法

Publications (2)

Publication Number Publication Date
CN101039252A CN101039252A (zh) 2007-09-19
CN101039252B true CN101039252B (zh) 2012-05-23

Family

ID=38509027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100114972A Expired - Fee Related CN101039252B (zh) 2006-03-15 2006-03-15 一种三重内容可寻址存储器路由表管理方法

Country Status (2)

Country Link
CN (1) CN101039252B (zh)
WO (1) WO2007104204A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101692653B (zh) * 2009-09-25 2012-04-04 中兴通讯股份有限公司 路由表的管理方法和装置
US20120173840A1 (en) * 2010-12-31 2012-07-05 Patel Sidheshkumar R Sas expander connection routing techniques
CN102164080B (zh) * 2011-03-29 2014-03-12 华为技术有限公司 路由地址查询方法和装置
CN102291296B (zh) * 2011-08-04 2016-12-21 中兴通讯股份有限公司 一种路由表的更新方法及系统
CN102508786B (zh) * 2011-11-02 2014-12-17 盛科网络(苏州)有限公司 优化空间利用率芯片设计方法及其芯片
CN104125155A (zh) * 2013-04-26 2014-10-29 上海斐讯数据通信技术有限公司 交换机转发表优化配置方法
CN104009922B (zh) * 2014-05-09 2017-03-15 烽火通信科技股份有限公司 基于tcam的ipv4/ipv6路由容量共享方法
CN105743678A (zh) * 2014-12-11 2016-07-06 中兴通讯股份有限公司 管理三态内容寻址存储器tcam表空间的方法及装置
CN108279853A (zh) * 2018-01-19 2018-07-13 盛科网络(苏州)有限公司 基于tcam的ipmc数据存储方法
US10482965B1 (en) * 2018-04-30 2019-11-19 Micron Technology, Inc. Memory start voltage management
CN113328948B (zh) * 2021-06-02 2022-10-04 杭州迪普信息技术有限公司 资源管理方法、装置、网络设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532516B1 (en) * 2001-09-27 2003-03-11 Coriolis Networks, Inc. Technique for updating a content addressable memory
CN1447223A (zh) * 2003-04-04 2003-10-08 清华大学 支持路由压缩的tcam高速更新方法
CN1561047A (zh) * 2004-02-20 2005-01-05 清华大学 基于tcam的分布式并行ip路由查找方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532516B1 (en) * 2001-09-27 2003-03-11 Coriolis Networks, Inc. Technique for updating a content addressable memory
CN1447223A (zh) * 2003-04-04 2003-10-08 清华大学 支持路由压缩的tcam高速更新方法
CN1561047A (zh) * 2004-02-20 2005-01-05 清华大学 基于tcam的分布式并行ip路由查找方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CN 1561047 A,全文.

Also Published As

Publication number Publication date
CN101039252A (zh) 2007-09-19
WO2007104204A1 (fr) 2007-09-20

Similar Documents

Publication Publication Date Title
CN101039252B (zh) 一种三重内容可寻址存储器路由表管理方法
US11811660B2 (en) Flow classification apparatus, methods, and systems
CN101183988B (zh) 一种识别报文对应的业务类型的方法及其装置
US7890488B2 (en) System and method for caching posting lists
EP3010201A1 (en) System and method for ranking named-data networking objects in a cache
US20110270979A1 (en) Reducing Propagation Of Message Floods In Computer Networks
US20100205374A1 (en) Embedded system for managing dynamic memory and methods of dynamic memory management
Meddeb et al. Least fresh first cache replacement policy for NDN-based IoT networks
CN107077419A (zh) 使用无冲突散列表层级的缓冲器的存储器寻址机构
CN106681995B (zh) 数据缓存方法、数据查询方法及装置
CN101692653B (zh) 路由表的管理方法和装置
CN101056338A (zh) 使用自主数据管理的个性化信息生存周期管理服务方法
CN101163032A (zh) 一种管理告警查询的方法
CN103222220A (zh) 网络数据的回退方法及设备
KR101410810B1 (ko) 데이터 저장 통신 장치, 이 장치를 이용한 데이터 전송 및 관리방법
CN102760132A (zh) 一种数据流频繁项挖掘方法和装置
CN113301628B (zh) 一种终端移动网络的多线路动态优选方法及系统
CN109657018B (zh) 一种分布式车辆行驶数据查询方法及终端设备
CN104285213A (zh) 针对三态内容寻址存储器中的簇的记录的动态分配
CN111178965B (zh) 一种资源投放方法及服务器
CN106202303A (zh) 一种Chord路由表压缩方法及优化文件查找方法
CN100334851C (zh) 一种路由表复用的方法
CN101572884A (zh) 查找imsi数据的方法和装置
KR20190136958A (ko) 캐시 교체 방법 및 이를 실행하는 캐시 교체 장치
Lee et al. Approaches for improving bloom filter-based set membership query

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: 20120523

Termination date: 20150315

EXPY Termination of patent right or utility model