【计算机网络 | 第十一篇】图解交换机的自学习功能

文章目录

      • [1. 交换表与自学习算法](#1. 交换表与自学习算法)
      • [2. 自学习与转发的具体流程](#2. 自学习与转发的具体流程)
      • [3. 表项的有效时间与维护](#3. 表项的有效时间与维护)
      • [4. 交换机自学习与转发步骤归纳](#4. 交换机自学习与转发步骤归纳)
      • [5. 多台交换机互连场景](#5. 多台交换机互连场景)

以太网交换机是一种即插即用设备,其核心功能在于通过自学习算法 自动维护交换表(也称为 MAC 地址表),并依据该表进行数据帧的转发或过滤。

1. 交换表与自学习算法

交换表记录了 MAC 地址与交换机接口的对应关系以及表项的有效时间。

  • 初始状态:交换机启动时,交换表是空的。
  • 逆向学习法 :交换机通过分析接收到的帧 来建立映射关系。若从接口 x x x 收到一个源 MAC 地址为 A A A 的帧,交换机便推断出:要向 A A A 发送数据,应当通过接口 x x x 转发。

2. 自学习与转发的具体流程

以下通过一个具体场景阐述交换机建立交换表及转发数据的全过程。假设主机 A、B、C、D 分别连接在交换机的接口 1、3、2、4 上。

阶段一:初始通信(泛洪)
  1. 发送 :主机 A 向主机 B 发送一帧。该帧从接口 1 进入交换机。
  2. 登记(自学习) :交换机检查交换表,发现没有 A 的记录。于是将 (MAC A, 接口 1) 写入交换表。
  3. 转发(泛洪) :交换机查找目的地址 B,发现表中无记录。于是执行泛洪(翻译的术语叫做:Flooding) 操作,即向除接口 1 以外的所有接口(2、3、4)转发该帧。
  4. 接收与丢弃
    • 主机 C 和 D 收到帧后,经由适配器硬件比对目的 MAC 地址,发现不匹配,予以丢弃。
    • 主机 B 发现目的地址匹配,收下该帧
阶段二:后续通信(点对点转发)
  1. 发送 :主机 B 向主机 A 发送一帧作为回复。该帧从接口 3 进入交换机。
  2. 登记(自学习) :交换机收到帧后,将源地址 B 与接口 3 的映射关系 (MAC B, 接口 3) 写入交换表。
  3. 转发(明确转发) :交换机查找目的地址 A。此时表中已有 A 的记录(指向接口 1)。于是,交换机直接将帧转发到接口 1,不再进行泛洪。

3. 表项的有效时间与维护

考虑到网络拓扑可能发生变化(如主机更换接口、更换网卡或下线),交换表中的每个项目都设有有效时间

  • 更新机制:每当交换机再次收到某个 MAC 地址发来的帧时,会更新该表项的有效时间。
  • 老化机制:若在规定时间内未收到某 MAC 地址的帧,交换机会自动删除该过期的表项。

这种机制保证了交换机能够适应动态变化的网络环境,无需人工配置,真正实现了即插即用

4. 交换机自学习与转发步骤归纳

归纳流程图:

交换机处理接收到的每一帧的逻辑流程如下:

  1. 提取源地址 :查看交换表中是否有源 MAC 地址的记录。
    • 若无,新增该项目(地址、接口、当前时间)。
    • 若有,更新该项目的有效时间。
  2. 提取目的地址 :在交换表中查找目的 MAC 地址。
    • 查不到:向除入接口外的所有接口转发(泛洪)。
    • 查到了
      • 若出接口与入接口相同:丢弃该帧(通常发生在通过集线器互连的网段中,为了避免环路或重复)。
      • 若出接口与入接口不同:向指定的出接口转发。

完整的过程演示和交换表的变化图

5. 多台交换机互连场景

当多台交换机互连时,自学习逻辑依然适用。一个接口可能对应多个 MAC 地址(该接口连接了另一台交换机)。

例如,若交换机 S1 的接口 5 连接到交换机 S2。当 S1 从接口 5 收到来自主机 C、D、E 的帧时,S1 的交换表中接口 5 将同时对应 C、D、E 等多个 MAC 地址。这表明通过接口 5 可以到达这些主机。

相关推荐
xuhaoyu_cpp_java4 小时前
项目学习(三)分页查询
java·经验分享·笔记·学习
皮皮学姐分享-ppx4 小时前
政府绿色采购数据库(2015-2024.3)
大数据·网络·数据库·人工智能·制造
W_chuanqi5 小时前
联想M7615DNA网络打印方法
网络·联想·打印机网络连接
小宋加油啊6 小时前
机械臂抓取物体 PVN3D算法调研学习
学习·算法·3d
Xzh04237 小时前
AI Agent 学习路线(Java 后端方向)
java·人工智能·学习
做cv的小昊7 小时前
计算机图形学:【Games101】学习笔记08——光线追踪(辐射度量学、渲染方程与全局光照、蒙特卡洛积分与路径追踪)
图像处理·笔记·学习·计算机视觉·游戏引擎·图形渲染·概率论
星恒随风7 小时前
C++ 类和对象入门(五):初始化列表、explicit 和 static 成员详解
开发语言·c++·笔记·学习·状态模式
HavenlonLabs8 小时前
硬件 + SaaS 产品的工程化路径:从系统架构、PCB 设计到工程样机
网络·安全·架构·系统架构·安全架构
sensen_kiss9 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.8 软件测试 (Software Testing)(上)
学习·软件工程
力学与人工智能9 小时前
PPT分享 | 洛桑联邦理工学院魏震:深度几何学习在工业设计优化中的应用
学习·优化·工业设计·深度几何学习·洛桑联邦理工学院