数通面试第八篇 , 今天来聊一下 二层交换机的工作原理 , 先来说一个结论
二层交换机通过学习以太网数据帧的源MAC地址来维护MAC地址表,通过数据帧目的MAC地址来查找MAC地址表决定向哪个接口转发。
这个学习是一个动态的过程,学习的是帧的源MAC,也只能学习单播的源MAC,为什么? (广播MAC , 组播MAC 不可能成为源MAC) 所以广播/组播帧(只能成为目标地址)永远会泛洪 , 所以交换机是学习源MAC进地址表 , 依据帧的目的MAC来查表转发
泛洪是一个必不可少的操作 , 这里要学习一个重要的概念 , BUM帧 也就是广播帧, 位置单播帧 , 组播帧 , 这三种统称为BUM帧 , 交换机在收到BUM帧后会执行泛洪操作 , 但是并非是所有端口 , 有个限制条件是同VLAN , 这里需要和路由的操作区分一下 , 路由表找不到IP会执行丢弃的操作 .
转发没有具体的内容 , 只有是已知单播帧 才会进行转发
交换机的丢弃行为是真实存在的 也是这5种类型中最难理解的一种 , 让我来详细解释说明一下 .
先来说结论 , 当交换机的一个接口出现数据帧同收同发的情况下会执行丢弃的操作 .
如图红色箭头 , PC1访问PC2 , 但是交换机1没有PC2的MAC (300s已经老化了) , 所以会执行泛洪操作 , 给自己的所以接口都泛洪这个数据帧 , 当泛洪到交换机2的Fa0/1时 , 如果交换机2有PC2的MAC , 他不会继续泛洪而是要执行转发动作 , 但是交换机2此时会发现一个问题 : 这个数据帧的出接口和接收口都是Fa0/1 , 此时就会触发交换机的丢弃动作 , 出现这个问题的关键点就是2台设备的MAC老化时间不一致导致的
dis mac-address aging-time
300秒默认是设备统一扫描间隔 , 并非给每个mac地址维护一个计时器(如果有几万条MAC表项就要准备几万个计时器这不现实) , 到达自身计时器时限后 将会清空所有记录重新学习 .
删除mac的三种情况 1.设备重启 2.接口重启 3.mac漂移(一个mac只能出现在一个接口)
现在基本都是全双工了 , 很少有半双工的设备 , 但是在实际工作环境会经常遇到因为全双工/半双工造成的故障
dis interface g0/0/1 查 看双工和速率
这是hw官网某设备截图 , 让我们来分析一下
如图 包转发率 126Mpps 应该是每秒最多转发1.26亿个数据包
24+4个千兆端口 这里的线速转发就是 281G * 2 = 56Gbps 为什么要2呢 因为是全双工模式 , 是可以同时收发的 , 至于为什么这是336Gbps 应该是设备堆叠后的能力吧 -.-
网络设备中的线速转发(Line-rate forwarding)指的是网络设备(如交换机、路由器)在其所有端口上以接口的最大理论带宽(即线速)处理和转发数据的能力。这意味着设备能够在不产生任何包丢失的情况下,以每个端口的最大速率(例如1Gbps、10Gbps等)处理数据包。