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 秒实验
- 在交换机上查 MAC 地址表的当前条数与上限。
- 看设备的缓冲区(buffer)规格,估算它能吸收多少毫秒的突发。
- 改一次配置不保存就重启,观察是否回滚(在实验设备上做)。
常见误区
- 把 Flash 当内存。Flash 只读慢写,配置必须先进 RAM 再落盘。
- 以为 MAC 表写满会报错。它只会泛洪,网络变慢但不报警。
- 只看交换容量不看缓存。突发流量下两者缺一不可。
自测三问(点开对答案)
1. 四种存储器各装什么? —— RAM 装运行时表与缓冲,Flash 装固件与备份,NVRAM 装启动配置,ROM 装引导程序。 2. MAC 表为什么有硬上限? —— 它存在交换芯片内的 SRAM 里,容量流片时定死,用来做单周期硬件查表。 3. 表写满会有什么现象? —— 新地址学不进来,未知单播泛洪,网络变慢但不报错。下一节:从内存转到盘,看 HDD 与 SSD 在设备里的分工与寿命。
- ☐ (本节完,下一节 01.04.06 HDD/SSD)
相关笔记
- HDD/SSD
- 第二章 02.08.01 MAC地址数(后章)
- 🖥️ 服务器工作原理
- 📡 图解网络硬件 · 索引