📡 第一章 网络硬件通用基础知识
📄 一句话概括

交换机的心脏是交换芯片(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 秒实验

  1. 找一台交换机的规格书,把四个数抄下来,验算它们能不能互相印证。
  2. 看你设备当前 ACL 用了多少条,离上限还有多少。
  3. 查一下你设备的芯片型号,搜它是 ASIC 还是 NP。

常见误区

  1. 以为 ACL 条数受软件限制。它是 TCAM 容量。
  2. 只看交换容量不看包转发率。两个数要能对上。
  3. 以为可编程芯片没有代价。可编程性换来的是功耗与复杂度。
自测三问(点开对答案) 1. ASIC 与 NP 的核心差别? —— 功能固化对可编程;ASIC 更快更省电,NP 更灵活。 2. TCAM 为什么能线速查 ACL? —— 三态并行比对,一次时钟出结果,不需要逐条循环。 3. ACL 写超上限的现象是什么? —— 规则下发失败(报错),而不是性能下降。

下一节:芯片要接出去,靠的就是接口——面板上那些口各是什么。

相关笔记