摘要:交换机并不会把收到每个数据信息都以广播的方式发给客户端,是由于交换机可以根据mac地址智能的转发数据帧。交换机存储的mac地址表将mac地址和交换机的接口编号对应在一起,每当交换机收到客户端发送来的数据帧时,它就会根据mac地址表的信息判断该如何转发。
【交换机原理】交换机的工作原理详解交换机工作原理图
交换机所学习到的条目并不会永运保存在mac地址表中,默认的老化时间是300s
macaddress:交换机获取的mac地址
type:交换机获取mac地址信息的方式类型
ports:mac地址对应的交换机接口编号
交换机转发数据帧的过程
mac地址的学习
如下面图所示,假设a主机发送的数据帧(源mac地址为00-00-00-11-11-11,目标mac地址为00-00-00-22-22-22)到交换机的1号接口,交换机首先查询的mac地址表中1号接口对应的源mac地址条目,如果条目中没有数据帧的源mac地址,交换机会就将这个接口对应的源地址和收到该数据帧的接口标号(1号口)对应起来,添加到mac地址表中
广播未知数据帧
如果交换机没有在mac地址表中找到数据帧目的地所对应的条目,交换机就无法确定该从那个接口将数据帧转发出去,于是它被迫选用了广播的方式,即除了1号口之外的所有接口都将转发这个数据帧,我下面图所示,于是,网络中的主机b和主机c都会收到。
接收回应信息
主机b会响应这个广播,并回应一个数据帧(源mac地址为00-00-00-22-22-22,目标mac地址为00-00-00-11-11-11),交换机也会将此帧的源mac地址和接口标号(2号口)对应起来,添加到mac地址表中,如下面图所示,
交换机实现单播方式
现在,主机a和主机b之间的通讯不用借助广播了。因为mac地址表中已经有它们的条目了,如下面图所示,主机a发送的数据帧的目标地址为00-00-00-22-22-22,交换机会发现这个地址对应的接口号为2,于是交换机将只向2号口发送数据帧。
查看mac地址表
mac地址表相当于交换机内部的一个数据库,记录着mac地址和接口编号的对应关系。查看mac地址表的命令如下面你图所示。dynamic为可选参数,它可以使交换机只显示交换机动态靴子到的mac地址。
如下面如所示,sw1和sw2与pc1、pc2、cp、、pc3、互连在一起,在sw1上使用上述命令查看mac地址表
由于windows系统在接入网络后会自动查询是否有其他主机存在,所以,交换机已经学习到三台主机的mac地址。
这里值得关注的问题是,虽然pc3与sw1没有直接相连,pc3的mac地址也存在域sw1的mac地址表中,且对应着接口fa0/24。这是由于交换机之间互相学习(同步)
mac地址表所致。从mac地址表中可以看出,sw1通过接口fa0/24与sw2相连,于是sw1就将从sw2同步过来的mac地址全部对应到fa0/24接口上。
注意事项
数据帧是数据砸在网络传输时的一个数据单元
由于交换机mac地址条目是动态学习的,所以它不会永远存在mac地址表中