交换表的工作原理是什么?

交换机收到单播帧的时候,首先会拿这个帧的目的MAC地址去MAC地址表里查一下。如果表里压根找不到这个MAC地址,交换机就会执行泛洪操作,也就是把这个帧从除接收端口外的所有其他端口都发出去。

要是能在MAC地址表里查到对应的条目,那就要进一步比较了:看看这个MAC地址对应的端口,跟这个帧进入交换机时的那个端口是不是同一个。如果不是同一个端口,交换机就执行转发操作,只从对应端口把帧送出去;如果是同一个端口,那就说明目的就在这个口这边,交换机直接执行丢弃操作。

广播帧的处理就简单多了。当一个广播帧进入交换机的时候,交换机根本不会去查MAC地址表,而是直接执行泛洪操作,把这个广播帧从所有其他端口发出去。

因为广播帧的目的就是所有设备,所以查表也没什么意义,干脆不查,直接泛洪。

其实交换机还有一个很关键的能力,就是学习。每当有一个帧进入交换机,交换机都会主动检查这个帧的源MAC地址,然后把这个源MAC地址和帧进入交换机的那个端口对应起来,形成一条映射关系。

之后这条映射关系会被存进MAC地址表里,方便后续转发的时候查询使用。正是因为有了这个学习机制,交换机才能慢慢建立起完整的MAC地址表,转发效率也会越来越高。