一、基础定位
二层交换机工作在 OSI 七层模型 ------ 数据链路层(第 2 层) ,基于 MAC 地址 转发数据帧; 核心硬件:端口、MAC 地址表(CAM 表)。
区分:路由器基于IP 地址(三层) ,交换机基于MAC 地址(二层)
二、核心概念
-
MAC 地址(物理地址) 网卡出厂固化,48 位十六进制,全局唯一;格式:
AA:BB:CC:DD:EE:FF- 源 MAC:谁发的数据
- 目的 MAC:要发给谁
-
MAC 地址表(CAM 表) 交换机内存中的一张映射表,保存 3 项内容:
表格
MAC 地址 端口号 老化时间 PC1-MAC Fa0/1 300s(默认 5 分钟) 作用:记录「哪个设备在哪个端口」,是交换机转发依据。 -
数据帧 二层传输单元,头部包含:源 MAC、目的 MAC、类型字段
-
**数据帧格式:**前导码--帧起始界定符--目的MAC地址---源MAC地址---上层数据类型---数据---校验序列。
三、交换机四大核心工作流程(最重点)
1. 学习(Learn)
交换机从收到的数据帧中提取【源 MAC 地址】
- 查看 MAC 表: ✅ 如果表内没有这条源 MAC :自动写入 MAC 地址 + 接收端口 ✅ 如果已经存在:刷新这条条目的老化时间
交换机只学习源 MAC,永远不学目的 MAC!
示例:PC1(MAC1)从 Fa0/1 发帧 → 交换机记录 MAC1 ↔ Fa0/1
2. 转发 / 泛洪(Forward/Flood)
提取帧里目的 MAC 地址 ,查询 MAC 地址表: 情况① MAC 表存在目的 MAC → 单播转发 只把数据帧从【对应目标端口】发出去,其他端口不转发(隔离流量,交换机优势)
情况② MAC 表找不到目的 MAC → 泛洪(广播转发) 把帧转发到除接收端口以外的所有端口 ⚠️ 注意:接收端口不转发,防止环路!
3. 过滤(Filter)
收到数据帧,源 MAC 和目的 MAC对应同一个端口 说明发送方和目标设备在同一个端口下,不需要经过交换机转发,直接丢弃该帧,节省带宽。
4. 老化(Age-out)
MAC 表条目不会永久保存,默认5 分钟(300 秒) 如果超时没有收到来自该 MAC 的数据,交换机自动删除条目;设备重启 MAC 表全部清空。
四、三种帧的处理方式
-
单播帧(目标为单个设备 MAC) 查表:找到→精准转发;找不到→泛洪
-
广播帧(目的 MAC:FF:FF:FF:FF:FF:FF) 无条件泛洪,转发到除入端口外所有端口(同一广播域)
-
组播帧 默认二层交换机会泛洪;高级交换机开启 IGMP Snooping 后可以精准转发
-
如何通过MAC地址区分单播组播、广播
-
单播:常用ABC类IP地址,只有网络上的目标主机才能接收到数据(一对一)。
- 个人电脑网卡都为单播,MAC地址的第八位为0就是单播地址。
-
组播:常用D类IP地址,给一个组播地址传输数据,该组内的主机都能接收到(一对组)。
- MAC地址第八位换算为2进制为1时就位组播地址
-
广播:主机地址全为1时,为广播地址,当给一个广播地址传输数据时,该网段内所有主机都能接受到。(一对所有)。
- MAC网卡地址全为1时就位广播地址
五、完整案例演示
拓扑:PC1 (Fa0/1) --- 交换机 --- PC2 (Fa0/2)、PC3 (Fa0/3)
- PC1 第一次发送数据给 PC2
- 交换机收到帧,学习源 MAC1 → Fa0/1
- 查询 MAC 表:没有 PC2 的 MAC
- 执行泛洪:向 Fa0/2、Fa0/3 转发
- PC2 收到数据,回复应答帧给 PC1
- 交换机收到,学习源 MAC2 → Fa0/2
- 查询 MAC 表:找到 MAC1 对应 Fa0/1
- 精准单播转发,只发给 Fa0/1,PC3 收不到流量
自此交换机拥有 PC1、PC2 地址表,后续 PC1 与 PC2 通信不再泛洪
六、交换机 vs 集线器(Hub,对比加深理解)
表格
| 设备 | 工作层次 | 转发依据 | 核心行为 | 冲突域 | 广播域 |
|---|---|---|---|---|---|
| 集线器 Hub | 物理层 | 无地址识别 | 收到信号直接向所有端口广播 | 所有端口同一冲突域 | 同一广播域 |
| 二层交换机 | 数据链路层 | MAC 地址 | 精准单播 / 按需泛洪 | 每个端口独立冲突域 | 所有端口同一广播域 |
关键点:交换机分割冲突域,但不能分割广播域;想要分割广播域,需要 VLAN 或者路由器。
七、补充拓展知识点
- 初始状态 交换机刚开机,MAC 地址表为空!第一次通信必然泛洪,通过学习慢慢建立地址表。
- 查看 MAC 表命令(思科)
ios
Switch#show mac-address-table
- 常见误区纠正
- ❌ 误区:交换机根据 IP 地址转发
- ✅ 正确:二层交换机看不懂 IP,只解析二层 MAC 地址
- ❌ 误区:泛洪 = 广播
- ✅ 正确:广播帧一定泛洪;泛洪不一定是广播,未知目标单播也会泛洪
- ❌ 误区:交换机会学习目的 MAC
- ✅ 正确:仅学习源 MAC 地址