交换机的数据传递工作原理可以简单地这样来说明:
当交换机从某一节点收到一个以太网帧后,将立即在其内存中的地址表(端口号-MAC地址)进行查找,以确认该目的MAC的网卡连接在哪一个节点上,然后将该帧转发至该节点。如果在地址表中没有找到该MAC地址,也就是说,该目的MAC地址是首次出现,交换机就将数据包广播到所有节点。拥有该MAC地址的网卡在接收到该广播帧后,将立即做出应答,从而使交换机将其节点的“MAC地址”添加到MAC地址表中。换言之,当交换机从某一节点收到一个帧时(广播帧除外),将对地址表执行两个动作,一是检查该帧的源MAC地址是否已在地址表中,如果没有,则将该MAC地址加到地址表中,这样以后就知道该MAC地址在哪一个节点;二是检查该帧的目的MAC地址是否已在地址表中,如果该MAC地址已在地址表中,则将该帧发送到对应的节点即可,而不必像集线器那样将该帧发送到所有节点,只须将该帧发送到对应的节点,从而使那些既非源节点又非目的节点的节点间仍然可以进行相互间的通信,从而提供了比集线器更高的传输速率。如果该MAC地址不在地址表中,则将该帧发送到所有其它节点(源节点除外),相当于该帧是一个广播帧。
讲到这里我们要明白一个事实,那就是交换机在刚买回来不可能知道您所在网络中各节点的地址,也就是说在交换机刚刚打开电源时,其MAC地址表是一片空白。那么,交换机的地址表是怎样建立起来的呢?学习!交换机根据以太网帧中的源MAC地址来更新地址表。当一台计算机打开电源后,安装在该系统中的网卡会定期发出空闲包或信号,交换机即可据此得知它的存在以及其MAC地址,这就是所谓自动地址学习。由于交换机能够自动根据收到的以太网帧中的源MAC地址更新地址表的内容,所以交换机使用的时间越长,学到的MAC地址就越多,未知的MAC地址就越少,因而广播的包就越少,速度就越快。
那么,交换机是否会永久性地记住所有的端口号-MAC地址关系呢?不是的。由于交换机中的内存毕竟有限,因此,能够记忆的MAC地址数量也是有限的。既然不能无休止地记忆所有的MAC地址,那么就必须赋予其相应的忘却机制,从而吐故纳新。事实上,工程师为交换机设定了一个自动老化时间(Auto-aging),若某MAC地址在一定时间内(默认为300秒)不再出现,那么,交换机将自动把该MAC地址从地址表中清除。当下一次该MAC地址重新出现时,将会被当作新地址处理。
综上所述,交换机作为当前局域网的主要连接设备,与集线器相比具有许多明显的优点,目前正有全面取代集线器之势,随着交换技术的不断发展,以太网交换机的价格急剧下降,交换到桌面已是大势所趋。如果网络上拥有大量的用户、繁忙的应用程序和各式各样的服务器,而且你还未对网络结构做出任何调整,那么整个网络的性能可能会非常低。最为有效的解决方法就是用交换机替代原来的集线器,当然交换机的价格会比集线器贵些,但目前来说应该完全可以接受。况且所带来的性能提绝不是“一点点”那么简单!