举例一:
如图,交换机A 、B ,主机11给主机33发送一个数据帧:假设交换机A B MAC地址表都是空的。
1. 交换机A在接收到数据帧后,执行以下操作:
1) 交换机A学习主机11的MAC地址,则现在交换机A的MAC地址表为:
2) 交换机A查看MAC地址表;
3) 如果MAC地址表有目的主机MAC地址则直接进行数据转发。如果没有则继续执行步骤4):
4) 交换机A向除源数据发送端口外的其他所有端口发送广播;
2. 交换机B在接收到数据帧后,执行以下操作:
5) 交换机B学习源MAC地址和端口号,交换机B 现在的MAC地址表为:
1) 交换机B查看MAC地址表;
6) 交换机B向除源数据发送端口外的其他所有端口发送广播包;
2) 主机22,查看数据包的目标MAC地址不是自己,丢弃数据包;
3) 主机33,接收到数据帧;
7) 主机44,丢弃数据帧。
总结:【一台交换机有一张MAC表】
当一台主机A发送数据时,交换机会收到MAC帧,会包含发送主机的MAC地址和接收主机的地址,交换机收到这个帧后,会把这个发送主机的MAC地址记录在自己的MAC表中,并记下这个发送主机对应的端口号。之后交换机会查看自己MAC表看有没有接收主机的记录,如果有就直接发到对应的端口,如果没有就广播出去
举例二:
假如接着主机44要给主机11发送一个数据帧:
1. 交换机B在接收到数据帧后,执行以下操作:
1) 交换机B学习源MAC地址和端口号;
2) 交换机B查看MAC地址表,根据MAC地址表中的条目,单播转发 数据到端口3。
2. 交换机A在接收到数据帧后,执行以下操作:
1) 交换机A学习源MAC地址和端口号;
4) 交换机A查看MAC地址表,根据MAC地址表中的条目,单播转发数据到端口1;
5) 主机11,收到数据帧。