数据链路层设备
需要了解三点:转发表结构、交换机转发流程 以及 交换方式,选择题会考查,也作为解答题的基础。
交换机
交换机(Switch)是网络中用于连接设备并转发数据帧的二层设备。它通过分析数据帧中的 MAC 地址,将数据帧从接收端口精准转发到 目标设备所在的端口。相比 集线器,交换机只将数据帧发送到必要端口,避免把已知单播帧广播到整个网络,因而能 显著降低碰撞域,提升带宽利用率和传输速度。更准确地说,交换机把每个端口划为独立冲突域;未知单播、广播及特定组播仍可能在同一 VLAN 内泛洪。
转发表
转发表(也称 MAC 地址表)是交换机内部维护的一张记录表,存储了网络设备 MAC 地址 与其 连接端口 的对应关系。每条记录通常包含以下信息:
- MAC 地址:网络设备的唯一标识。
- 端口号:设备连接的交换机端口。
- 附加信息(可选):如 VLAN 标识或条目有效时间。
如上图所示,交换机 A 和 B 分别通过 转发表 记录了通往每个 MAC 地址 的端口。
转发流程
当交换机收到数据帧后,会根据 转发表(MAC 地址表) 执行以下步骤:
- 学习源 MAC 地址
- 用帧的源 MAC 地址与入端口更新转发表;也就是说,交换机会根据 源 MAC 地址 学习到该设备所在端口,并更新转发表。交换机学习的是源地址,不是目的地址。
- 检查目标 MAC 地址并查询转发表
- 从数据帧的头部提取目标 MAC 地址,再查询转发表(MAC 地址表)。
- 命中(已学习):如果表中有该 MAC 地址 → 将帧转发到对应端口(单播)。
- 命中但出端口等于入端口:过滤该帧,不再转发。
- 未命中(未知单播):如果表中没有记录,交换机将帧 泛洪(Flooding),即复制该帧并发送到所属 VLAN 内除接收端口以外的其他相关端口。
- 转发或泛洪数据帧
- 目标设备收到帧后应答;交换机在收到返回帧时按同样规则学习其源 MAC 地址。
原文把这里简称为“广播”,但更准确的说法是二层 Flooding(泛洪) 行为,并不是“发送 ARP 请求”。交换机只是把收到的原帧复制到相应端口,以期目标主机回复;未知单播与广播帧都可能泛洪,但两者的目的 MAC 地址不同。
交换方式
交换机的 交换方式 决定了 交换机在接收到数据帧后,决定如何以及何时将该帧转发到目标端口,交换方式 有如下三种:
- 直通交换:交换机在接收到数据帧的前 6 个字节(即目的 MAC 地址)后,立即根据 MAC 地址表 查找目标端口并开始转发,无需等待整个数据帧接收完成。因此它时延低,但可能转发错误帧。这里的“前 6 个字节”从数据链路层帧的目的地址字段起算,不包含物理层前导码。
- 存储转发:交换机接收完整数据帧后,将其存储在缓冲区中,进行 CRC(循环冗余校验)和帧长检查,确认数据帧无误后再根据 MAC 地址表 转发。它的可靠性较好,但时延更大。
- 碎片隔离:介于直通交换和存储转发之间,检查数据帧的前64字节(以太网最小帧长),若帧长不足64字节(碎片),则丢弃;若正常,则转发。
网桥
网桥(Bridge)的功能和 交换机 基本一致,两者都是二层网络设备,用于转发数据帧。网桥中也有 转发表 的概念,转发过程和 交换机 一致,这里不再赘述。
那么,网桥和交换机的区别在哪里呢?
网桥是比较早期计算机网络使用的设备,现在已经渐渐被 交换机 替代,两者的重要区别如下表:
| 方面 | 网桥(Bridge) | 交换机(Switch) |
|---|---|---|
| 端口数量 | 通常较少(如 2~4 个) | 通常很多(几十个甚至上百个),可视为“多端口网桥” |
| 实现与性能 | 早期产品常以软件转发,处理能力较弱 | 现代产品常用硬件转发(ASIC 芯片),转发速度更快 |
| 功能 | 简单地转发帧,适合小型或实验网络 | 常支持 VLAN、端口镜像、链路聚合等高级功能 |
| 使用场景 | 传统上用于连接两个小型网络或少量局域网网段 | 用于构建现代企业内部网络(LAN) |
这些是典型产品差异,不是协议层次上的绝对界线;网桥与二层交换机的核心转发原理相同。