-->

whaust

2020年3月21日 星期六

TCAM (ternary content addressable memory)是一種三態內容尋址存儲器



TCAM (ternary content addressable memory)是一種三態內容尋址存儲器,主要用於快速查找ACL、路由等表項。

TCAM簡介

它是從CAM的基礎上發展而來的。一般的CAM存儲器中每個bit位的狀態只有兩個,“0”或“1”,而TCAM中每個bit位有三種狀態,除掉“0”和“1”外,還有一個“don 't care”狀態,所以稱為“三態”,它是通過掩碼來實現的,正是TCAM的這個第三種狀態特徵使其既能進行精確匹配查找,又能進行模糊匹配查找,而CAM沒有第三種狀態,所以只能進行精確匹配查找。

TCAM特點

1、TCAM 表內所有條目都可以並行訪問,比如,如果你有100條ACL,TCAM能一次就能對比這100條ACL進行對比操作,過去如果有100條ACL的話,需要第一條ACL對比完後再對比第二條,然後第三條,直至N條,效率很明顯沒有TCAM高。
2、TCAM得結構已經經過了優化,支持更抽象的操作,通常是基於二進制關鍵字匹配,查詢相當快
如FIB TCAM中每個表項都有對應的下一條,而每個下一條又維護了下一條鄰居的MAC。
2、正因為有上邊的這些特性,所以無論表內有多少條數目,性能都不會減弱。
3、TCAM 包含多組的Mask 與Value 對應關係,對應比例為1:8,一個Mask可對應8個Value。最長掩碼位於TCAM頂部,如255.255.255.255位於最頂部,用於最長匹配,提升查找速率。
4、Mask 用於表示Value 的匹配方法,1 為必須比較並匹配,0 為不用比較。
5、TCAM的可用掩碼、值模式、LOU表項有限,如果訪問列表很大或需要很多第四層運算,TCAM表和寄存器很可能溢出。
6、TCAM成本比較高,存儲空間的單位價格高於普通的sram,而且耗能也遠遠高於sram
7、由於TCAM的並行查找特性和三態,存儲必須以前綴形式來存儲,比如一個range需要拆分成幾個更小的可以表示成前綴形式的range才可以存儲在TCAM中

TCAM查找操作

1、從包的內容中讀取相關字段(如,前綴、掩碼等)
2、创建查找关键字(lookup key)
3、用lookup key和TCAM中的Value段对比,如果匹配了某Value,则将该Value和对应的Mask关联
4、返回最长匹配结果(值(Value)+掩码(Mask))=结果)

TCAM相关组件

TCAMFM
(特性管理器)
在创建或配置访问列表后,FM软件将匹配语句编译(合并)为TCAM表项,这样就可以以帧转发速度查询TCAM

TCAMSDM

(交换数据库管理器)
在某些Catelyst交换机中,可以将TCAM划分为不同的功能区域,SDM软件将配置或调整TCAM分区,Catelyst4500 和6500交换机,TCAM是固定的,不能分区。

TCAM生产商

主要有:
1.XeL
2.Netlogic
这二家分别将TCAM器件称作Intelligent Search Engine(ISE) 和Knowledge-based Processor(KBP)。
3. Wacken Security
獨角獸新創網路公司

TCAM相关用途

主要有:
1).ATM Switching设备中的VCI/VPI转发和ATM-to-MPLS or ATM-to-TCP-Flow地址映射表项的存储和查找;
2).Ethernet Switching设备中的二层MAC地址、ARP/RARP解析和三层IP路由表项的存储和查找;
3).Emerging Protocols and functions方面的MPLS label表项的存储和查找;
4).Packet Classification业务中的Enforce security、Enforce departmental policies和QOS检测表项的存储和查找;
5).安全防护设备中的FIB/LBT、MFIB及ACL表项存储和查找。

TCAM应用

传统的表项查找方法有很多,主要有:线型查找法、二叉树查找法、哈希表查找等,这些查找方法都是基于SRAM的软件查找方法,共同特点是查找速度慢。线型查找法需要遍历表中的所有表项;二叉树查找法需要遍历树中大多数节点,而且查找速度受树的深度影响较大;哈希表查找法是软件查找中较快的一种方法,它是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。虽然哈希表查找法相对来说比较快,但还是满足不了高速实时通信系统(如40G/100G POS)的极速查找需求。 基于硬件的TCAM查找法正是在这种背景下提出的,用此方法进行查找时,整个表项空间的所有数据在同一时刻被查询,查找速度不受表项空间数据大小影响,每个时钟周期完成一次查找,平均查找速度是基于SRAM算法查找的6倍,最好情况下,能达到128倍。
TCAM的硬件设计方式
TCAM器件的硬件设计方式一般有三种,如下图所示:















tcam硬件设计原理图(1张)

网络处理器NP从报文头中把需要查找的信息提取出来,这个待查找的信息要整理成跟TCAM所存表项的格式一致,称之为KEY。KEY作为TCAM的输入数据,经过与表项对照,如果有匹配的表项,就把该表项所在的地址作为输出,称之为Index。然后将Index作为RAM的地址输入,从RAM里得到所需查找的信息,称之为Data。最后将Data返回给发起查找操作的NP,至此完成一次查找操作。



TCAM在高端路由器中的应用及查找过程









TCAM在高端路由器中的應用


Source : Wacken Security
             Baidu
             Cisco

沒有留言:

張貼留言

Popular