交换机是如何偷偷学习的?!它的学习日记大公开!📚

交换机的诞生背景:为什么不用集线器(Hub)了?

要理解交换机,我们先要知道它取代了谁——集线器(Hub)

**交换机(Switch)**的出现就是为了解决这些问题。它是一个数据链路层的“聪明”设备,目标是:将数据帧只发送给需要它的设备,从而隔离冲突域,提高网络效率和安全性。

交换机的核心部件:MAC地址表

交换机的“大脑”是其内部的一张表,我们称之为MAC地址表(MAC Address Table),也叫转发表(Forwarding Table)CAM表。这张表非常简单,只有两列核心信息:

MAC地址 端口号
00-0A-95-9D-68-16 1
00-0C-29-1F-E4-7E 3
... ...

这张表告诉交换机:“要去往这个MAC地址,请从这个端口出去。”

交换机工作的四大原则

交换机的所有智能行为,都源于以下四个简单却强大的原则。假设一个数据帧到达了交换机的某个端口:

原则一:无条件自学习(Learning)

这是交换机智能的来源。

原则二:未知则泛洪(Flooding)

这是交换机在“失忆”或“迷路”时的后备方案。

原则三:知晓则转发(Forwarding)

这是交换机最高效的常规工作模式。

原则四:同源则过滤(Filtering)

这就是你感到困惑的那个关键点,它是“精确转发”的一个特例。

总结

用一个流程来概括交换机收到一个帧后的思考过程:

  1. 看源MAC -> 在MAC地址表中学习/更新 (源MAC, 进入端口)

  2. 看目的MAC -> 在MAC地址表中查找。

    • 找不到? -> 泛洪 (向所有其他端口转发)。

    • 找到了! -> 得到目标端口。

      • 目标端口 == 进入端口? -> 过滤 (丢弃帧)。

      • 目标端口 != 进入端口? -> 转发 (向目标端口转发)。