1.5.2 交换数据帧
交换机在转发数据帧时,遵循以下规则:
(1)如果数据帧的目的MAC地址是广播地址或者组播地址,则向交换机所有端口(除源端口)转发(称泛洪)。
(2)如果数据帧的目的MAC地址是单播地址,但这个MAC地址并不在交换机的地址表中,则向所有端口(除源端口)转发(称泛洪)。
(3)如果数据帧的目的MAC地址在交换机的地址表中,则打开源端口与目标端口之间的数据通道,把数据帧转发到目标端口上。
(4)如果数据帧的目的MAC地址与数据帧的源MAC地址来自同一个端口,则丢弃此数据帧,不发生交换。
以图1-6为例介绍具体的数据帧交换过程。
当主机1发送广播帧时,交换机从E1端口接收到目的MAC地址为ffff.ffff.ffff的数据帧,则向E2、E3和E4端口转发该数据帧。
当主机1与主机3通信时,交换机从E1端口接收到目的MAC地址为0011.2FD6.3333的数据帧,查找交换地址表后发现0011.2FD6.3333不在表中,因此交换机向E2、E3和E4端口转发该数据帧。
当主机4与主机5通信时,交换机从E4端口接收到目的MAC地址为0011.2FD6.5555的数据帧,查找地址表后发现0011.2FD6.5555位于E4端口,即源端口与目的端口相同(E4)即主机4、主机5处于同一个网段内,则交换机直接丢弃该数据帧,不进行转发。
当主机1再次与主机3通信时,交换机从E1端口接收到目的MAC地址为0011.2FD6.3333的数据帧,查找交换地址表后发现0011.2FD6.3333位于E3端口,交换机打开源端口E1与目标端口E3之间的数据通道,把数据帧转发到目标端口E3上,这样主机3即可收到该数据帧。
当主机1与主机3通信时,主机2也向主机4发送数据,交换机同时打开E1与E3、E2与E4之间的数据通道,建立两条互不影响链路,同时转发数据帧,只不过到E4时,要向此网段所有主机广播,主机5也侦听到,但不接收。
一旦传输完毕,相应的链路随之被拆除。