>>>>百度知道>>>>
一、简介
TCAM(ternarycontentaddressablememory是一种三态内容寻址存储器,主要用于快速查找ACL、路由等表项。
TCAM具有查找速度快、操作简单的优点,但同时它也具有3个明显的缺点:成本高、功耗大和路由更新复杂。路由器为了实现负载平衡以及策略路由,在路由表中保存着相当数量的具有多个下一跳的路由表项。基于TCAM技术,提出一种支持多下一跳的高速路由查找方案。方案通过两级索引表实现了多下一跳路由的存储和快速访问。为了提高TCAM的更新效率,方案还提出了一个N子空间TCAM更新算法。该算法对目前实际网络中的路由表,可达到近似O(1的更新复杂度。为了减少TCAM的成本和功耗,方案中还使用了有效的路由压缩技术。压缩技术基于Trie树结构,实现简单。应用压缩技术,对于实际网络中的路由表,可减少20%的路由。该查找方案可以很容易地应用到未来的IPv6网络中。>>>>
二、特点
1、TCAM表内所有条目都可以并行访问,比如,如果你有100条ACL,TCAM能一次就能对比这100条ACL进行对比操作,过去如果有100条ACL的话,需要第一条ACL对比完后再对比第二条,然后第三条,直至N条,效率很明显没有TCAM高。
2、TCAM得结构已经经过了优化,支持更抽象的操作,通常是基于二进制关键字匹配,查询相当快.如FIBTCAM中每个表项都有对应的下一条,而每个下一条有维护了下一条邻居的MAC。
正因为有上边的这些特性,所以无论表内有多少条数目,性能都不会减弱。
3、TCAM包含多组的Mask与Value对应关系,对应比例为1:8,一个Mask可对应8个Value。最长掩码位于TCAM顶部,如255.255.255.255位于最顶部,用于最长匹配,提升查找速率。
4、Mask用于表示Value的匹配方法,1为必须比较并匹配,0为不用比较。5、TCAM的可用掩码、值模式、LOU表项有限,如果访问列表很大或需要很多第四层运算,>>>>TCAM表和寄存器很可能溢出。
三、查找操作
1、从包的内容中读取相关字段(如,前缀、掩码等)2、创建查找关键字(lookupkey)
3、用lookupkey和TCAM中的Value段对比,如果匹配了某Value,则将该Value和对应的Mask关联
>>>>4、返回最长匹配结果(值(Value+掩码(Mask=结果)
四、TCAM操作相关组件
>>>>>>>>1、FM(特性管理器)
在创建或配置访问列表后,FM软件将匹配语句编译(合并)为TCAM表项,这样就可以以帧转发速度查询TCAM>>>>