交换机(二层交换机)完整工作原理

一、基础定位

二层交换机工作在 OSI 七层模型 ------ 数据链路层(第 2 层) ,基于 MAC 地址 转发数据帧; 核心硬件:端口、MAC 地址表(CAM 表)。

区分:路由器基于IP 地址(三层) ,交换机基于MAC 地址(二层)

二、核心概念

  1. MAC 地址(物理地址) 网卡出厂固化,48 位十六进制,全局唯一;格式:AA:BB:CC:DD:EE:FF

    • 源 MAC:谁发的数据
    • 目的 MAC:要发给谁
  2. MAC 地址表(CAM 表) 交换机内存中的一张映射表,保存 3 项内容:

    表格

    MAC 地址 端口号 老化时间
    PC1-MAC Fa0/1 300s(默认 5 分钟)
    作用:记录「哪个设备在哪个端口」,是交换机转发依据。
  3. 数据帧 二层传输单元,头部包含:源 MAC、目的 MAC、类型字段

  4. **数据帧格式:**前导码--帧起始界定符--目的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 表全部清空。

四、三种帧的处理方式

  1. 单播帧(目标为单个设备 MAC) 查表:找到→精准转发;找不到→泛洪

  2. 广播帧(目的 MAC:FF:FF:FF:FF:FF:FF) 无条件泛洪,转发到除入端口外所有端口(同一广播域)

  3. 组播帧 默认二层交换机会泛洪;高级交换机开启 IGMP Snooping 后可以精准转发

  4. 如何通过MAC地址区分单播组播、广播

  5. 单播:常用ABC类IP地址,只有网络上的目标主机才能接收到数据(一对一)。

    • 个人电脑网卡都为单播,MAC地址的第八位为0就是单播地址
  6. 组播:常用D类IP地址,给一个组播地址传输数据,该组内的主机都能接收到(一对组)。

    • MAC地址第八位换算为2进制为1时就位组播地址
  7. 广播:主机地址全为1时,为广播地址,当给一个广播地址传输数据时,该网段内所有主机都能接受到。(一对所有)。

    • MAC网卡地址全为1时就位广播地址

五、完整案例演示

拓扑:PC1 (Fa0/1) --- 交换机 --- PC2 (Fa0/2)、PC3 (Fa0/3)

  1. PC1 第一次发送数据给 PC2
    • 交换机收到帧,学习源 MAC1 → Fa0/1
    • 查询 MAC 表:没有 PC2 的 MAC
    • 执行泛洪:向 Fa0/2、Fa0/3 转发
  2. PC2 收到数据,回复应答帧给 PC1
    • 交换机收到,学习源 MAC2 → Fa0/2
    • 查询 MAC 表:找到 MAC1 对应 Fa0/1
    • 精准单播转发,只发给 Fa0/1,PC3 收不到流量

自此交换机拥有 PC1、PC2 地址表,后续 PC1 与 PC2 通信不再泛洪

六、交换机 vs 集线器(Hub,对比加深理解)

表格

设备 工作层次 转发依据 核心行为 冲突域 广播域
集线器 Hub 物理层 无地址识别 收到信号直接向所有端口广播 所有端口同一冲突域 同一广播域
二层交换机 数据链路层 MAC 地址 精准单播 / 按需泛洪 每个端口独立冲突域 所有端口同一广播域

关键点:交换机分割冲突域,但不能分割广播域;想要分割广播域,需要 VLAN 或者路由器。

七、补充拓展知识点

  1. 初始状态 交换机刚开机,MAC 地址表为空!第一次通信必然泛洪,通过学习慢慢建立地址表。
  2. 查看 MAC 表命令(思科)

ios

复制代码
Switch#show mac-address-table
  1. 常见误区纠正
  2. ❌ 误区:交换机根据 IP 地址转发
  3. ✅ 正确:二层交换机看不懂 IP,只解析二层 MAC 地址
  4. ❌ 误区:泛洪 = 广播
  5. ✅ 正确:广播帧一定泛洪;泛洪不一定是广播,未知目标单播也会泛洪
  6. ❌ 误区:交换机会学习目的 MAC
  7. ✅ 正确:仅学习源 MAC 地址
相关推荐
软泡芙1 小时前
【IOS】 Swift Package Manager (SPM) 指南
网络·ios·swift
飞飞传输1 小时前
金融数字化转型新基建:替代FTP的国产传输软件筑牢数安全防线
大数据·运维·安全
码农学院1 小时前
GEO团队SOP、绩效考核与知识沉淀:技术团队管理体系化工程实践
运维·人工智能·windows
三8441 小时前
基于 NFS 共享存储的 Nginx Web 服务部署项目
linux·运维·服务器
ARM|X86+FPGA工业主板厂家1 小时前
Linux+Xenomai 实时系统在机器人中的应用
linux·运维·机器人
白色冰激凌2 小时前
[SECS/GEM研究] (四)HSMS 用TCP取代串口
网络·c++·网络协议·secs/gem
難釋懷2 小时前
Nginx-proxy缓存清理
运维·nginx·缓存
唔662 小时前
Linux工具使用情况buildroot
linux·运维·服务器
wbs_scy2 小时前
仿 muduo 高并发服务器项目:封装 HTTP 请求响应并用状态机完成增量解析
运维·服务器·http