数据链路层设备
MAC 地址
MAC 地址(Media Access Control Address,介质访问控制地址),也称为物理地址或硬件地址,是网络设备在数据链路层的唯一标识符,由 48 位(6 字节) 组成,通常以十六进制表示,例如:00:1A:2B:3C:4D:5E。
MAC 地址由设备制造商在出厂时烧录到网卡中,理论上全球唯一。其结构分为两部分:
| 字节 | 含义 |
|---|---|
| 前 3 字节 | OUI(组织唯一标识符),由 IEEE 分配给各厂商 |
| 后 3 字节 | 设备序号,由厂商自行分配,确保同厂商内唯一 |
MAC 地址还有一个特殊的广播地址:FF:FF:FF:FF:FF:FF,发送到该地址的帧会被同一局域网内所有设备接收。
MAC 地址工作在数据链路层,用于同一局域网内的设备间通信;而 IP 地址工作在网络层,用于跨网络的路由寻址。路由器转发数据包时,每经过一跳,源/目的 MAC 地址都会更新,但 IP 地址保持不变。
交换机
交换机(Switch)是网络中用于连接设备并转发数据帧的二层设备。它通过分析数据帧中的 MAC 地址,将数据帧从接收端口精准转发到 目标设备所在的端口。相比 集线器,交换机只将数据帧发送到必要端口,避免广播到整个网络,显著降低碰撞域,提升带宽利用率和传输速度。
转发表
转发表(也称 MAC 地址表)是交换机内部维护的一张记录表,存储了网络设备 MAC 地址 与其 连接端口 的对应关系。每条记录通常包含以下信息:
- MAC 地址:网络设备的唯一标识。
- 端口号:设备连接的交换机端口。
- 附加信息(可选):如 VLAN 标识或条目有效时间。
如上图所示,交换机 A 和 B 分别通过 转发表 记录了通往每个 MAC 地址 的端口。
转发流程
当交换机收到数据帧后,会根据 转发表(MAC 地址表) 执行以下步骤:
- 检查目标 MAC 地址
- 从数据帧的头部提取目标 MAC 地址。
- 查询转发表(MAC 地址表)
- 命中(已学习):如果表中有该 MAC 地址 → 将帧转发到对应端口(单播)。
- 未命中(未知 MAC):如果表中没有记录 → 交换机将帧 泛洪(Flooding),即复制该帧并发送到除接收端口以外的所有端口。
- 转发数据帧
- 目标设备收到帧后应答,交换机会根据 源 MAC 地址 学习到该设备所在端口,并更新转发表。
这里的“广播”是二层的 Flooding 行为,并不是“发送 ARP 请求”。交换机只是盲目地把该帧发给所有人,以期目标主机回复。
交换方式
交换机的交换方式 是指交换机在接收到数据帧后,开始转发数据帧之前所采用的处理方式,它决定了交换机需要接收到数据帧的哪一部分后才开始转发。
- 直通交换 :交换机在接收到数据帧的前6个字节(即目的 MAC 地址)后,立即根据 MAC 地址表 查找目标端口并开始转发,无需等待整个数据帧接收完成。
- 存储转发 :交换机接收完整数据帧后,存储在缓冲区中,进行 CRC(循环冗余校验)检查,确认数据帧无误后再根据 MAC 地址表 转发。
- 碎片隔离:在直通交换基础上,增加了一个"至少收到 64 Byte"的检查,以过滤碰撞产生的碎片帧。
碎片隔离为什么是 64B
IEEE 802.3 要求:
一个合法的以太网帧长度(不含前导码)至少 64 Byte。
所以规定:合法Frame ≥ 64 Byte。于是 frame < 64B,基本可以断定是碰撞导致的残缺帧。
很多同学容易将该节谈论的交换方式和 计算机网络的交换方式 弄混淆,需要注意,它们讨论的是两个不同层次的“交换”,中文都叫"交换方式",所以很容易混淆。
可以理解成:
| 层次 | 讨论对象 | 典型概念 |
|---|---|---|
| 网络层面的交换方式 | 数据如何在整个网络中从 A 到 B | 电路交换、报文交换、分组交换 |
| 交换机内部的转发方式 | 一台交换机收到一帧以后,什么时候开始转发 | 直通交换、存储转发、碎片隔离 |
网桥
网桥(Bridge)的功能和 交换机 基本一致,两者都是二层网络设备,用于转发数据帧。网桥中也有 转发表 的概念,转发过程和 交换机 一致,这里不再赘述。
那么 网桥和交换机区别 在哪里呢?
网桥是比较早期计算机网络使用的设备,现在已经渐渐被 交换机 替代,两者的重要区别如下表:
| 方面 | 网桥(Bridge) | 交换机(Switch) |
|---|---|---|
| 端口数量 | 通常较少(2~4 个) | 通常很多(几十个甚至上百个) |
| 性能 | 软件转发,处理能力较弱 | 硬件转发(ASIC 芯片),转发速度更快 |
| 功能 | 简单地转发帧,适合小型或实验网络 | 支持 VLAN、端口镜像、链路聚合等高级功能 |
| 使用场景 | 用于连接两个小型网络 | 用于构建现代企业内部网络(LAN) |