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

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

【技术实现步骤摘要】

本专利技术涉及计算机网络
,尤其涉及使用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-δ)+按照区域当前前缀所占比例算得的区域理想大小×δ,δ是一个系数,用于调整区域理想大小所占的比重。上述的三重内容可寻址存储器路由表管理方法,其中,路由表初始化时,根据设定的前缀长度分布概率分配每个路由区域的期望值大小,所述期望值初始化时与分配给每个区域的大小相同。采用本文档来自技高网
...

【技术保护点】
一种三重内容可寻址存储器路由表管理方法,将路由表按照路由的前缀长度划分为多个区域,其特征在于,更新所述路由表中的路由时,当区域实际空间不足或过大时,在所述路由表内的各个区域空间之间进行区域大小的动态调整。

【技术特征摘要】

【专利技术属性】
技术研发人员:王俊川邵庆华刘文龙
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1