交换机工作原理

交换机简介

交换机是工作在数据链路层的设备,是二层的网络设备。

交换机的MAC地址转发表

交换机有一个很重要的东东,就是MAC地址转发表(不是ARP协议中的IP-MAC映射表)主要包含两个信息:

  • 一个是设备的MAC地址,就是目标MAC地址
  • 另一个是该设备连接在交换机的哪个端口上

交换机收到数据帧后,会先查询这个MAC地址转发表,若能查到匹配的,就将数据帧通过相应的端口转发出去。举例来说,如果收到的包的接收方MAC地址为00-02-B3-1C-9C-F9,则与图中表中的第3行匹配,根据端口列的信息,可知这个地址位于3号端口上,然后就可以通过交换电路将包发送到相应的端口了。

若在MAC地址表找不到匹配的目标MAC地址,可能是因为拥有该MAC地址的设备还没有向交换机发送过包,或者这个设备一段时间没有工作导致地址被从地址表中删除了。这种情况下,交换机无法判断应该把包转发到哪个端口,只能将包转发到除了源端口之外的所有端口上,无论该设备连接在哪个端口上都能收到这个包。然后只有拥有该MAC地址的接收者才能接收包,而其他设备则会忽略这个包。

一些闲杂

(1)如果数据帧中的目标MAC地址是一个广播地址,那么交换机会将包发送到除源端口之外的所有端口。以下两个属于广播地址:

MAC地址中的FF:FF:FF:FF:FF:FF
IP地址中的255.255.255.255

(2)对服务器来说,服务器网卡本身具有MAC地址,并通过核对收到的包的目标MAC地址是不是发给自己的,如果不是发给自己的则丢弃;而对交换机而言,交换机的端口不核对接收方MAC地址,而是直接接收所有的MAC包并存放到缓冲区中。需要注意的是,和服务器的网卡不同,交换机的端口不具有MAC地址。