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

RAM 装运行时的表、Flash 装固件与备份、NVRAM 装启动配置、ROM 装引导程序。 转发表吃的是 RAM,规格书上「MAC 地址数」其实是芯片里那块 SRAM 的容量。

📝 本节和前面几节的关系

上一节讲「存储设备」,这一节讲「存储器」——中文只差一个字,含义不同。 这一节要解决一个很实际的疑问:为什么交换机的 MAC 表只有 8K 或 16K 条,不能更多?

一、四种存储器

RAM:运行时一切都在这里——转发表、路由表、会话表、缓冲区。掉电即失。 Flash:固件与配置备份。掉电保留,但写入有寿命(擦写次数有限)。 NVRAM:只装启动配置,容量很小(几十 KB 到几 MB),写入慢但可靠。 ROM:引导程序(bootloader),一般只读。设备变砖时,救它的就是这一块。

判断「配置丢没丢」的经验:改完没保存,重启回到旧配置 —— 说明只改了 RAM 里的运行配置, 没写进 NVRAM。这条几乎每个新手都踩过一次。

二、MAC 表为什么有上限

因为它是硬件表。交换芯片里有一块专门的 SRAM 存「MAC 到端口」的映射,查表用哈希,硬件并行比对, 一个周期出结果。

这块 SRAM 的容量是流片时定死的,所以表项数是一个硬指标:8K、16K、32K、64K。 写满了会怎样?不是报错,是「泛洪」——新学到的地址进不来,目的地址查不到就向所有端口广播。 网络会变慢,但不会断,所以很难查。

这就是「MAC 地址数」这一栏为什么重要:在虚拟化环境里,一台物理口后面可能挂着几十个虚拟机 MAC, 表很快就会被撑满。

三、缓冲区:被忽略的那一半内存

除了表,RAM 里还有一大块是缓冲区(buffer),用来暂存来不及发出的包。 它决定突发流量的容忍度:队列越深,越能吸收突发;但太深会增加延迟。

这就是「交换容量」与「缓存」两个指标的分工: 交换容量决定「平均能跑多快」,缓存决定「突发时丢不丢包」。 很多标称线速的便宜交换机,缓存只有几 MB,一遇突发就丢。

实测方法:打一段突发流量看丢包率;或者看端口的丢弃计数在流量尖峰时是否增长。

四、动手 Demo:MAC 表吃掉多少内存:表项数乘单条开销

这段按「一条表项 64 到 128 字节」估算不同表项数占用的内存。

for n, per in ((8192, 64), (16384, 64), (65536, 64)):
    print(n, n * per / 1e6)

实跑输出:

--------------------------------------------------------------------
四类存储器各装什么,MAC 表要吃掉多少内存
--------------------------------------------------------------------
**网络设备里的「存储器」不是一样东西,是四样:**

  类型      装什么               特性
  -------------------------------------------------------
  RAM       运行时的表与缓冲     掉电即失
  Flash     固件、配置备份       掉电保留,写入有寿命
  NVRAM     启动配置             掉电保留,容量小
  ROM       引导程序             只读,一般不写

**最吃 RAM 的是转发表。**以 MAC 地址表为例,一条表项要存:
MAC 6 字节、VLAN 2 字节、端口号 2 字节、老化时间 4 字节、指针与标志若干,
加上哈希桶与对齐开销,**实际占用通常按 64 到 128 字节算。**

    8192 条 × 64 字节 = 0.5 MB。
   16384 条 × 64 字节 = 1.0 MB。
   65536 条 × 64 字节 = 4.2 MB。

**表项数就是这么定出来的**:芯片里有一块专门的 SRAM 放转发表,容量固定。
**规格书上的「MAC 地址数 16K」不是软件限制,是那块 SRAM 只能放下 16K 条。**

64K 条只要 4 MB,看着不多,但这是「芯片内的 SRAM」,不是普通内存。 片内 SRAM 要做到「一个周期查完」,面积与功耗都极高,所以厂家不会给太多。

这也是「大表项」设备贵的原因:不是软件限制,是硅片面积。 数据中心交换机标 128K 甚至 288K 条 MAC,价格立刻上一个档。

实用结论:普通办公网 8K 够用;虚拟化与运营商环境按 32K 起算。

30 秒实验

  1. 在交换机上查 MAC 地址表的当前条数与上限。
  2. 看设备的缓冲区(buffer)规格,估算它能吸收多少毫秒的突发。
  3. 改一次配置不保存就重启,观察是否回滚(在实验设备上做)。

常见误区

  1. 把 Flash 当内存。Flash 只读慢写,配置必须先进 RAM 再落盘。
  2. 以为 MAC 表写满会报错。它只会泛洪,网络变慢但不报警。
  3. 只看交换容量不看缓存。突发流量下两者缺一不可。
自测三问(点开对答案) 1. 四种存储器各装什么? —— RAM 装运行时表与缓冲,Flash 装固件与备份,NVRAM 装启动配置,ROM 装引导程序。 2. MAC 表为什么有硬上限? —— 它存在交换芯片内的 SRAM 里,容量流片时定死,用来做单周期硬件查表。 3. 表写满会有什么现象? —— 新地址学不进来,未知单播泛洪,网络变慢但不报错。

下一节:从内存转到盘,看 HDD 与 SSD 在设备里的分工与寿命。

相关笔记