TCAM是一种存储器,需要10-12个晶体管来存储一个位。相比之下,静态RAM(SRAM)只需要6个晶体管来存储一位,而动态RAM(DRAM)则需要一个晶体管和一个电容器。所有这些不同类型的存储器可以在ASIC内部或外部。将所有内存都放在芯片上的一个原因是,它们可以以比芯片外部更高的时钟速率运行。为什么选择一种存储器而不是另一种存储器?这与存储器的特性有关,SRAM可以在每个时钟周期访问,DRAM需要定期刷新,因此无法在每个时钟周期访问,而TCAM为您提供三元功能。
只要您在芯片上有足够的空间来实例化TCAM,或者封装上的引脚可以连接到外部TCAM,TCAM便具有可扩展性。TCAM的问题是它们占用SRAM的 2 倍空间和DRAM的 12倍空间。使用TCAM进行与其他存储器类型在算法上相同的操作(哈希,*重试)并不总是很有意义。归结为该算法的利用效率与要选择的芯片空间之间的权衡。TCAM的功率利用率与尺寸成线性比例增长。现在,大多数大型TCAM(大于2M条目)都使用算法技术,从而可以节省功率。
NAT / PAT是一项复杂功能,通常需要CPU或网络处理器(NPU)来处理修补程序。NAT的一般数据包流是第一个数据包到达CPU / NPU,然后在流表或ACL表中安装流条目,其中包含有关如何转换流中后续数据包的信息。NAT / PAT有多种不同的形式,并且有很多方法可以优化芯片中的每一种。最简单的NAT是重写IP,并且不用担心如果破坏嵌入在有效负载中的地址,也无需修复。
还有另一种版本的BRKARC-3466,该版本在墨尔本的CiscoLive 2013上展出,涵盖了查找背后的一些高级概念,而2013年奥兰多缺少该思想。关于这一领域的一本不错的参考书是《网络算法:乔治·瓦格斯(George Varghese)的跨学科设计快速网络设备的方法》。