最易懂的交换机二层转发原理详解
二层转发是局域网通信的核心基础。无论是家庭环境中电脑连接打印机,还是企业内网中各类设备的互通,其背后都依赖于二层转发机制。
二层转发,全称为数据链路层转发。由于数据链路层位于 OSI 网络七层模型的第二层,因此得名。实现这一功能的主要网络设备是交换机。其基本原理是:交换机根据数据帧中的目标 MAC 地址,结合设备自身的 MAC 地址表,将数据帧从指定接口转发出去。
理解二层转发,需把握两个核心前提:
- 作用范围有限:仅作用于同一个局域网内,无法实现跨网段通信。
- 决策依据独立:转发决策完全不依赖 IP 地址,仅查看数据链路层的 MAC 地址。
这是二层转发最本质的特征,也是其与三层转发(路由转发)的核心区别。为了清晰阐述这一过程,我们将二层转发分为四个阶段进行解析。

第一阶段:MAC 地址表的构建与自学习
交换机内部拥有一块高速存储区域,称为 CAM 表(Content Addressable Memory),即我们常说的 MAC 地址表。这张表是交换机进行转发的依据。
关键点在于,这张表最初是空的,且不需要人工配置,而是通过“自学习”机制动态生成的。
当数据帧从交换机的某个端口(例如 1 号端口)进入时,交换机并不会立即关心该数据包要发给谁,而是首先关注“是谁发的”。它会解析数据帧头部的源 MAC 地址(假设为 MAC A),并立即在表中记录一笔:
1 号端口 连接着 MAC A

第二阶段:查找与转发
记录完源 MAC 地址后,交换机开始处理“发给谁”的问题。它读取数据帧头部的目的 MAC 地址,此时会出现两种情况:
1. 命中(已知单播)
如果目的 MAC 地址已经在 MAC 地址表中有记录(例如目的 MAC B 对应 2 号端口),交换机将根据查找结果,将数据帧直接发送到 2 号端口。这种点对点转发效率极高。
2. 未知单播(泛洪)
如果表中查不到该目的 MAC 地址,交换机不会丢弃数据,而是采取一种“暴力”手段——泛洪(Flooding)。
- 交换机会将该数据帧复制多份。
- 发送给除了入端口以外的所有其他端口。

注意:泛洪通常针对未知单播帧。若数据帧的目的 MAC 地址为全 F(
FF:FF:FF:FF:FF:FF),则代表广播帧,同样会触发泛洪,发送给局域网内所有设备。
第三阶段:响应与表项更新
如果刚才发生了泛洪,局域网内的所有设备都会收到这个数据包。但是:
- 只有拥有该目的 MAC 地址的设备才会解包并处理数据。
- 其他设备发现 MAC 地址不匹配,会自动丢弃该帧。
当目标设备做出回应时,其回信数据帧会进入交换机的某个端口。此时,交换机重复第一阶段的逻辑:
- 学习回信设备的源 MAC 地址。
- 记录该设备所在的端口。
至此,原本空荡荡的 MAC 地址表得到了补全。后续的通信将全部转变为精准的点对点转发,不再需要泛洪,从而大幅降低网络负载。
第四阶段:表项的维护与老化
网络设备可能会移动、更换或下线。为了防止 MAC 地址表无限膨胀或记录错误信息,交换机引入了**老化计时器(Aging Timer)**机制。
- 动态老化:每一个动态学习到的表项都有一个倒计时,通常为 300 秒。如果在倒计时结束前,该端口没有再次收到来自该 MAC 地址的数据包,交换机就会认为该设备已下线,自动删除该记录。
- 静态绑定:除了动态学习,管理员还可以手动配置静态 MAC 地址表条目。静态条目的特点是无老化时间、永久有效。这适用于需要固定绑定的场景,或用于防止 MAC 地址欺骗攻击。

总结
交换机的二层转发逻辑可以概括为以下三句话:
- 收包先学:收到数据包,先学习源 MAC 地址并记录端口。
- 查表转发:查找目的 MAC 地址,查到则精准转发,没查到则全网泛洪。
- 定时清理:通过老化机制清理无效记录,确保表格的实时性和准确性。
二层转发是局域网通信的基础,具有高速、无连接、不依赖 IP 地址的特点。它与三层转发协同工作,共同支撑起整个网络的通信架构。
下期我们将介绍三层转发及路由器的转发原理,敬请期待。