基于TCAM 的高速路由查找

摘要
  随着路由器接口速率的提高,传统的软件路由查找机制已经不能满足要求。目前常见的硬件解决方案是采用TCAM实现高速路由查找。由于路由查找具有最长前缀匹配的特点,因此采用TCAM 需要解决路由表如何存储和管理等问题。本文设计和实现了基于TCAM 的高速路由查找机制,重点解决了路由表的存储和管理机制。该方案已经用于国家“863”重大项目“核心路由器”中,取得了良好的效果。
关键词
  TCAM,路由查找,最长前缀匹配。
1、引言
  路由器转发IP 分组时,转发引擎需要在路由表中查找该IP 报文中目的地址所对应的路由信息,从而决定IP 报文的转发方式。在报文转发的这一系列工作过程中,以路由查找过程最为关键,因此设计快速的路由查找算法已经成为提高路由器整体性能的关键之一。随着路由器接口速率的提高,传统的基于软件的路由查找机制已经不能满足要求。本文设计和实现了一种基于TCAM 的硬件路由查找机制,重点解决了路由表的存储和管理
2、CAM 与TCAM
  目前研究人员已经提出了基于RAM 的路由查找算法。但是工业界中使用最多的硬件实现路由查找的方法仍然是使用内容寻址存储器(CAM,Content Addressable Memory)来进行快速的路由查找,CAM 或者全相联存储器能够在一个硬件时钟周期内完成关键字的精确匹配查找。我们常用的随机存储器通过输入地址来返回该地址处所对应的数据信息,但是CAM 的访问方式不同,它只需要输入关键字的内容,CAM 就会将此关键字与CAM 中所有的表项同时进行匹配比较,最后返回匹配表项在CAM 中所对应的地址
  路由查找具有最长前缀匹配的特点,为了能够使用CAM 来进行最长前缀路由的查找,我们可以为每一类可能的地址前缀长度使用一个CAM,每个CAM 保存对应长度的所有前缀集合。对于IPv4 来说,一共需要使用32 个CAM。这种方法有一个明显的缺点,在对地址前缀长度具体分布没有准确的了解之前,为了能够保证能够存储N 个前缀表项,每个CAM都需要有N 个表项的空间,因此CAM 存储空间的利用率大大降低了。
  为了能够克服上述方法的缺点,又提出了一种CAM 实现机制TCAM (ternary CAM) ,TCAM 的优点是它所保存的表项在长度要求上非常灵活,可以在同一个TCAM 芯片中保存任意长度的关键字表项
  TCAM 中每一个表项都是以<地址、掩码>序偶的形式保存,假设地址关键字的长度范围从1 到W,那么地址和掩码分别占用W 比特对于关键字长度为Y(1≤Y≤W)的表项来说,它的掩码前Y 个比特为1,而剩下的W-Y 比特为0,它的地址后W-Y 个比特可以是0 或者1
  例如,假设W 为5,那么地址前缀10*就可以用序偶<10000,11000>表示。在表项的匹配查找中,TCAM 判断(查找关键字Bitwise And掩码)是否与(目的地址Bitwise And 掩码)相等,如果相
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值