交换机的自学习和转发过程
1、交换机自学习和转发帧的过程
交换机是一种网络设备,用于在局域网内连接多个网络设备,接收其发送的数据帧。交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后决定转发或丢弃数据帧。交换机有多个端口,每个端口都被隔离成自己的碰撞域,即连接某个端口的网络设备独占整个带宽。交换机以一种即插即用的方式,实现了网络设备之间的高效数据传输。
在交换机刚启动时,其内部的帧交换表CAM表(或者说是MAC表)是空的。随着网络中各设备之间的通信,交换机通过自学习算法逐渐建立起CAM表。
①交换机接收某个端口的数据帧,会对其进行登记工作。将该帧的源MAC地址记录到自己的帧交换表中,将该帧进入自己的接口的接口号,相应地也记录到帧交换表中。上述登记工作就称为交换机的自学习。
登记完成后,交换机会对该帧进行转发或丢弃。
②盲目转发。交换机完成登记工作后,对该帧进行转发。交换机在帧交换表中查找目的MAC地址对应的接口号,找不到,于是对该帧进行盲目地转发,称为泛洪。也就是向除该帧进入交换机接口外的其他所有接口转发该帧。
③明确转发。交换机完成登记工作后,对该帧进行转发。交换机在帧交换表中查找目的MAC地址对应的接口号,可以找到,于是从目的MAC地址所对应的接口转发该帧。
如图所示,此时交换机的帧交换表是空的。
主机A给主机B发送帧,该帧从交换机1的接口1进入到交换机1。交换机1首先进行登记的工作,将该帧的源MAC地址A,记录到自己的帧交换表中,将该帧进入自己的接口的接口号1,相应地也记录到帧交换表中。上述登记工作就称为交换机的自学习。
之后,交换机1对该帧进行转发,该帧的目的MAC地址是B,在帧交换表中查找MAC地址B,找不到,于是对该帧进行盲目地转发,称为泛洪。也就是向除该帧进入交换机接口外的其他所有接口转发该帧。
主机B的网卡收到该帧后,根据帧的目的MAC地址B,知道这是发送给自己的帧,于是就接受该帧。主机C的网卡收到该帧后,根据帧的目的MAC地址B,知道这不是发送给自己的帧,于是就丢弃该帧。该帧从交换机2的接口2进入交换机2,交换机2首先进行登记的工作,将该帧的源MAC地址A,记录到自己的帧交换表中,将该帧进入自己的接口的接口号2,相应地也记录到帧交换表中。之后,交换机2对该帧进行转发。该帧的目的MAC地址是B,在帧交换表中查找MAC地址B,找不到,于是对该帧进行盲目地转发。主机D,E,F都会收到该帧,根据帧的目的MAC地址B,知道这不是发送给自己的帧,于是丢弃该帧。
接下来,主机B给主机A发送帧,该帧从交换机1的接口3进入到交换机1。交换机1首先进行登记的工作,将该帧的源MAC地址B,记录到自己的帧交换表中,将该帧进入自己的接口的接口号3,相应地也记录到帧交换表中。
之后,交换机1对该帧进行转发,该帧的目的MAC地址是A,在帧交换表中查找MAC地址A,可以找到,于是按照MAC地址A所对应的接口号1,从接口1转发该帧。这是明确的转发。主机A的网卡收到该帧后,根据帧的目的MAC地址A,知道这是发送给自己的帧,于是就接受该帧。很显然,交换机2不会收到该帧。
参考链接(链接里的UP主对这个知识点讲解得很好):
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步