Seal^_^头像
网络基础 | 交换机的基本原理:MAC 表是怎么学会转发的?封面图

网络基础 | 交换机的基本原理:MAC 表是怎么学会转发的?

网络基础 | 交换机的基本原理:MAC 表是怎么学会转发的?

华为 eNSP · S5700 · 二层交换 · MAC 地址表 · 学习/转发/泛洪/丢弃 · 冲突域与广播域

集线器一收到数据就群发,100 台电脑挤一个冲突域;交换机却能把数据精准送到目标。一篇文章讲透交换机「凭什么知道发给谁」—— 从 MAC 地址表的学习逻辑,到四种核心行为,到冲突域/广播域的本质区别,附完整拓扑、转发流程图与踩坑清单。


先说结论:交换机工作在 数据链路层(二层),转发依据是 MAC 地址表。它干四件事 —— 学习(记源 MAC+端口)、 转发(表中命中就单播)、 泛洪(表中没有就群发)、 丢弃(目的端口=入端口就过滤)。记住一句口诀: 「看源记表,看目查表,查不到就广播」。

📑 目录

  1. 什么是交换机
  2. 核心:MAC 地址表
  3. 四大工作行为
  4. 转发决策流程图
  5. 实验拓扑
  6. 完整例子:PC1 第一次 ping PC2 发生了什么
  7. 三种转发方式对比
  8. 冲突域 vs 广播域
  9. 交换机 vs 集线器 vs 路由器
  10. 常见踩坑与易混点

一、什么是交换机

交换机(Switch)是二层网络设备,核心职责是在局域网内按 MAC 地址转发帧。它和我们前面讲的路由器最大的区别:

对比项集线器 Hub交换机 Switch路由器 Router
工作层次物理层(一层)数据链路层(二层)网络层(三层)
转发依据无脑群发MAC 地址IP 地址
冲突域所有口同一冲突域每个口独立冲突域每个口独立冲突域
广播域不分割不分割(整机一个)分割广播域

💡 一句话区分:路由器管「跨网段去哪」(看 IP),交换机管「同网段发给谁」(看 MAC)。交换机默认不隔离广播域,这是 VLAN 出现的原因(下篇讲)。


二、核心:MAC 地址表

交换机靠一张 MAC 地址表(CAM 表) 工作,表结构本质是「MAC 地址 ↔ 端口」的映射:

MAC 地址端口类型老化时间
5489-98A1-0001GE0/0/1dynamic剩余 287s
5489-98A1-0002GE0/0/2dynamic剩余 199s
5489-98B3-00FFGE0/0/3dynamic剩余 301s

三个关键特性,必考:

  • 动态学习:交换机收到帧后,把「源 MAC + 入端口」自动记进表,不需要手动配
  • 老化时间:华为默认 300 秒。某 MAC 300 秒内没再出现过,条目被删除,下次重新泛洪学习
  • 类型:表中条目多为 dynamic(动态学习),也可手工绑定 static(静态,不老化)

常用查看命令:

<SW1> display mac-address              # 查看整张 MAC 地址表
<SW1> display mac-address aging-time   # 查看老化时间(默认 300s)
<SW1> mac-address aging-time 500       # 修改老化时间为 500 秒
<SW1> reset mac-address all            # 清空 MAC 表(慎用,清空后重新泛洪学习)

三、四大工作行为(学习 / 转发 / 泛洪 / 丢弃)

这是交换机最常被问到的「四种行为」,每个行为对应一种触发条件:

① 学习 Learning:收到任意帧,先把源 MAC + 入端口写进 MAC 表。即使是广播帧,也能顺便学到发送方的位置。

② 转发 Forwarding:查目的 MAC,表中有对应端口 → 单播精准转发到那个端口,其他端口不受影响。

③ 泛洪 Flooding:查目的 MAC,表中没有(未知单播),或目的本身是广播/组播 → 从「除入端口外的所有端口」发出去,问一圈「谁是这个 MAC」。

④ 丢弃 Discarding:查到目的 MAC 的端口恰好等于入端口(说明目标就在同一端口另一侧)→ 直接丢弃,避免无效转发。

🔑 记忆口诀:「看源记表,看目查表;查得到单播,查不到广播;同口就丢」。


四、转发决策流程图

下面这张图把「收到一帧后交换机脑子里走的逻辑」画成流程图:

在这里插入图片描述


五、实验拓扑:二层交换机直连四台 PC

下面是一台二层交换机 LSW1 下挂 4 台 PC,全部在同一广播域 192.168.1.0/24:

在这里插入图片描述


六、完整例子:PC1 第一次 ping PC2 发生了什么

把上面拓扑跑一遍,看交换机 MAC 表从空到满的全过程:

① PC1 发 ARP 请求(广播)
PC1 不知道 PC2 的 MAC,先发广播 ARP「谁是 192.168.1.20?」。交换机收到帧:

  • 学习:源 MAC = MAC-A,入端口 = GE0/0/1 → 写进表(学到 PC1 在哪)
  • 泛洪:目的 MAC 是广播 → 从 GE0/0/2、3、4 全发(入端口 1 不发)

② PC2 回 ARP 应答(单播)
只有 PC2 响应,单播发给 PC1。交换机收到帧:

  • 学习:源 MAC = MAC-B,入端口 = GE0/0/2 → 写进表(学到 PC2 在哪)
  • 转发:目的 MAC = MAC-A,表中有 → 单播精准转发到 GE0/0/1(PC3、PC4 完全收不到)

③ 之后 PC1 ↔ PC2 互访
双方 MAC 都在表里,全部单播转发,其他端口零打扰。这就是交换机比集线器高效的根本原因。

⚠️ 关键点:交换机是先「学源」再「查目」。哪怕第一帧目的是广播,它也已经趁机能学到发送方位置 —— 所以「第一次通信必泛洪,之后全单播」。


七、三种转发方式对比

交换机硬件转发帧有三种模式,差异在「收到多少才开始转」:

转发方式何时开始转发是否校验 CRC延迟优缺点
存储转发 Store-and-Forward收完整个帧✅ 校验最大错误帧不转发,最可靠,华为默认模式
直通转发 Cut-Through读到目的 MAC 即转❌ 不校验最小极快,但坏帧也转发
碎片隔离 Fragment-Free读到前 64 字节部分居中过滤冲突碎片,折中方案

💡 实际企业交换机多为存储转发(默认),因为能挡掉 CRC 错误的坏帧;直通转发多用于对延迟极度敏感的交易场景。


八、冲突域 vs 广播域

这是面试高频题,也是理解交换机边界的关键:

概念含义集线器交换机路由器
冲突域同一时刻只能一台设备发数据,否则冲突整机 1 个每个端口 1 个(分割)每个端口 1 个
广播域广播帧能到达的范围整机 1 个整机 1 个(不分割)每个端口 1 个(分割)

重点:交换机分割「冲突域」但不分割「广播域」。 它让每台 PC 独享带宽(不再抢信道),但广播包(如 ARP)仍会传遍全网 —— 网大了广播风暴就来了,于是才有 VLAN 来分割广播域(下一篇展开)。


九、交换机 vs 集线器 vs 路由器

一张表收尾,把三个设备彻底分清:

维度集线器 Hub交换机 Switch路由器 Router
工作层次物理层 L1数据链路层 L2网络层 L3
转发依据无MAC 地址IP 地址
转发方式群发学习+单播/泛洪查路由表
冲突域不分割分割(每口独立)分割
广播域不分割不分割分割
典型用途已基本淘汰局域网内部互联跨网段/互联出口

十、常见踩坑与易混点

#易混/踩坑正确理解
1交换机「隔离广播域」❌ 错,交换机不隔离广播域,只有路由器/VLAN 才隔离
2MAC 表是手工配的❌ 错,默认动态学习,老化 300s 后自动删
3第一次通信就单播❌ 错,第一次必泛洪(表里没目的 MAC),之后才单播
4广播帧交换机也「学习」✅ 对,广播帧也能学到源 MAC 位置
5交换机工作在网络层❌ 错,二层设备看 MAC,不看 IP(三层交换机另说)
6老化时间改不了❌ 错,mac-address aging-time 可改
7目的端口=入端口还转发❌ 错,这种情况丢弃(同口过滤)
8交换机=集线器升级版就对了⚠️ 对一半,本质区别在「按 MAC 精准转发 + 分割冲突域」

结语

交换机的基本原理就这几点:看源记表、看目查表、查不到广播、同口就丢。它的高效来自「动态 MAC 地址表 + 单播精准转发 + 每端口独立冲突域」,局限是「不隔离广播域」。理解了这四句话,二层交换就通了。

下一步预告:交换机不隔离广播域 → 网大了广播风暴怎么办?下一篇讲 VLAN(虚拟局域网):怎么用逻辑划分把广播域切开,以及 Access / Trunk 端口、单臂路由跨 VLAN 通信。

📌 续写命令模板:把「VLAN 基础配置(Access/Trunk)+ 单臂路由跨 VLAN 通信」按本系列同款风格(拓扑 SVG + 5 色标注 + 对比表 + 踩坑表)展开即可。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/qq_41840843/article/details/168969064

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--