TCAM:不需要计算网络地址?

网络工程 路由
2021-07-29 17:55:09

我试图了解 TCAM,但我偶然发现了这一点: Ternary CAMs,维基百科

对于地址的主机部分,地址使用“don't care”存储,因此在 CAM 中查找目标地址会立即检索正确的路由条目;屏蔽和比较都是由 CAM 硬件完成的。

这一段对我来说是模棱两可的。是否使用 TCAM 进行掩码,以便结果是与路由表中的网络地址进行比较的网络地址?

因为在路由时根本不必计算网络地址将是 TCAM 的一个很棒的特性。

1个回答

这一段对我来说是模棱两可的。是否使用 TCAM 进行掩码,以便结果是与路由表中的网络地址进行比较的网络地址?

不,不完全是。没有定期进行掩蔽操作。转发时没有软件查询CAM/TCAM。虽然通常的内存设计为通过“内存地址”(指针)进行查询,但 CAM/TCAM 是一种旨在通过内容查找的内存电路(硬件)。它在硬件中所做的就像散列表在软件所做的一样:关联数组。

重点是:TCAM 可以使用网络前缀条目进行编程。例如,您可以通过将最后 8 位标记为“DON'T CARE”来将 /24 前缀插入到 TCAM 中。

对于普通的二进制 CAM,您不能插入 IP 前缀,只能插入完整的 IP 地址(或 MAC 地址)作为查找键。

“我想知道的是,TCAM 是否需要在其路由表中搜索匹配条目之前计算网络地址。”

不。TCAM 电路可以直接针对用 0 和 1 以及 X 构建的条目查找密钥(X = 不关心)。例如,您可以插入 entry=1.0.0.X 然后您可以查找 key=1.0.0.1。TCAM 电路将查找并返回匹配的 1.0.0.X 条目(加上其相关信息),而无需执行您似乎正在描绘的“正式”屏蔽。然而,TCAM 查找做了一种掩码来区分“关心位”和“不关心位”