交换机的心脏是交换芯片(ASIC),路由器的关键是转发引擎,两者的查表都靠 TCAM。 「ACL 支持 1K 还是 4K 条」不是软件限制,是 TCAM 的硅片面积。
前面几节讲 CPU、内存、盘,这一节讲真正干活的芯片。 这一节是理解「规格书参数从哪来」的关键:交换容量、包转发率、表项数、ACL 条数, 全都是芯片决定的。
一、三种植入方式
ASIC:功能固化在硅片上,流水线转发,最快最省电。缺点是改不了。 NP(网络处理器):多核微引擎,可编程,速度介于 ASIC 与 CPU 之间。 以前的高端路由器爱用,现在被可编程 ASIC(如 P4)挤压。 通用 CPU:最灵活最慢,只做管理与兜底。
判断一台设备「能不能加新功能」,看它的转发是哪种:ASIC 只能等新硬件,NP 与 CPU 可以升级软件。 这就是「硬件交换机」与「软件交换机」说法的来源。
二、TCAM:一次查完的代价
普通内存查表要循环比对,一条一条比,几万条规则就是几万次比较。 TCAM 是三态内容寻址:每个 bit 有三种状态(0、1、任意),整表并行比对,一次时钟出结果。 这就是「线速查 ACL」的物理基础。
代价:一位 TCAM 大约六个晶体管(普通 SRAM 一位约六个晶体管但密度高得多),而且比对时整表通电, 功耗很高。所以容量都不大——1K、2K、4K 条。
写超了会怎样:不是变慢,是下发失败。你会看到「规则加不上」而不是「网络变卡」。
三、规格书四个数怎么对上
看交换机规格,四个数要能互相印证:
① 端口数与速率 → 算出交换容量(全双工要乘 2)。 ② 交换容量 → 除以 672 bit 得包转发率。 ③ 包转发率 → 与端口数乘单口 pps 对上。 ④ 表项数(MAC、ARP、ACL、路由)→ 芯片里各块表的容量。
常见坑: 标称「交换容量 48 Gbit/s」但包转发率只有标称的一半——说明芯片是「半双工口径」或者根本跑不到线速。 两个数对不上就是虚标。
四、动手 Demo:一条 ACL 占多少 TCAM,4K 条要多少晶体管
这段按「一条规则 144 bit、一位六个晶体管」估算 TCAM 的规模。
entries, width = 4096, 144
bits = entries * width
print(bits / 1e6, bits * 6 / 1e6)
实跑输出:
--------------------------------------------------------------------
ASIC、NP、TCAM,以及一条 ACL 要占多少表项
--------------------------------------------------------------------
**芯片决定设备的「性格」**:
类型 优势 代价
--------------------------------------------------------------------------------
ASIC 功能固化、最快、最省电 不灵活,改功能要换芯片
NP(网络处理器) 可编程、较快 比 ASIC 慢一档,要写微码
通用 CPU 最灵活 最慢,包处理量级差两个数量级
TCAM 三态内容寻址,一次查表 贵、耗电、容量小
**TCAM 是 ACL 与路由查找的关键。**普通内存查表要多次比对,TCAM 一次并行比完,
所以它能做到「线速查 ACL」。**但一位 TCAM 相当于六个晶体管**,成本极高。
项 值
------------------------------------------
TCAM 表项数 4096
每条宽度 144 bit
合计 0.59 Mbit
按每 bit 6 个晶体管 3.5 M 个晶体管
**4K 条规则就要 350 万个晶体管,只为了查表。**这就是为什么交换机标「ACL 支持 1K/4K 条」
是硬指标——**写超了不是变慢,是直接下发失败。**
4K 条规则要 350 万个晶体管,只为了查表。这就是为什么 ACL 条数是硬指标。
反过来说,这也解释了「为什么交换机越贵 ACL 越多」:多出来的钱主要买的是硅片面积与散热。
现场用法:写 ACL 前先看设备规格的上限,留 20% 余量; 规则要合并与排序(命中率高的放前面),不是为了省 TCAM,是为了省比对时间——虽然 TCAM 并行, 但多表级联时顺序仍影响时延。
30 秒实验
- 找一台交换机的规格书,把四个数抄下来,验算它们能不能互相印证。
- 看你设备当前 ACL 用了多少条,离上限还有多少。
- 查一下你设备的芯片型号,搜它是 ASIC 还是 NP。
常见误区
- 以为 ACL 条数受软件限制。它是 TCAM 容量。
- 只看交换容量不看包转发率。两个数要能对上。
- 以为可编程芯片没有代价。可编程性换来的是功耗与复杂度。
自测三问(点开对答案)
1. ASIC 与 NP 的核心差别? —— 功能固化对可编程;ASIC 更快更省电,NP 更灵活。 2. TCAM 为什么能线速查 ACL? —— 三态并行比对,一次时钟出结果,不需要逐条循环。 3. ACL 写超上限的现象是什么? —— 规则下发失败(报错),而不是性能下降。下一节:芯片要接出去,靠的就是接口——面板上那些口各是什么。
- ☐ (本节完,下一节 01.04.08 接口)
相关笔记
- 接口
- 第二章 02.09.01 网络控制器(LAN控制器)(后章)
- 🌐 计算机网络
- 📡 图解网络硬件 · 索引