早期的共享型网络由于处在同一冲突域中,任何时刻总线上都只允许一台主机传输数据,传送的数据会到达所有的主机,由于这样的原因,网络效率不高,这是一种共享信道广播式网络。
交换机的出现使网络类型发生了变化,出现了效率更高的交换网络。首先看下交换机的工作原理。
交换机是工作在数据链路层的2层设备(讨论中以以太网为例),2层设备会识别比特流的含义,处理的数据单元是帧。首先从物理层收到比特流,数据链路层将比特流划分成段,每一个段就是一个帧,即从比特流中把帧识别出来(识别出帧的起始位置和终止位置),称为帧同步。帧头中含有源MAC地址和目的MAC地址。交换机对帧的处理过程:
1.从一个端口接收到一个帧,查看其帧头中的源MAC地址,将该MAC地址和对应的端口号记录下来。每收到一个帧都查看其源MAC地址,并将该MAC地址和对应的端口号记录下来,这个过程就是学习过程。最后将建立一张MAC地址表,交换机就通过该表识别连接在每个端口的计算机,而集线器无法识别连接在上面的计算机。并且交换机每学习一个MAC地址,就启动一个计时器,这个计时器如果超时都没使用这个MAC地址,那么它就会将该MAC地址从表中删除(地址老化),这是为了让交换机能学习到正确的MAC地址。说得更直观点就是:如果一个MAC地址在一段时间没使用了,交换机可以认为该MAC地址的主机可能关机了或该MAC地址的主机网卡坏了,那么到达该MAC地址的帧就不能到达该主机,交换机为了能正确转发数据所以要删除该MAC地址表项,重新学习该端口正确的MAC地址。
大家想下:如果交换机学到一个MAC地址就永久保存会出现什么情况。比如:交换机从一个端口学习到一个主机的MAC地址后,就采用永久保存,那假如该主机的网卡坏了,换了一个网卡,会是什么情况呢?
如果查看一个帧的源MAC地址,该MAC地址和对应的端口号已存在MAC地址表中,就不用重新学习,而重置该MAC地址的计时器。
2.查看帧中的目的MAC地址,从刚才学习到的MAC地址表中查找,如果找到该目的MAC地址,就从该MAC地址对应的端口转发出去。如果没找到该目的MAC地址(即不知道该MAC地址的主机连接在哪个端口上),那么此时交换机就学集线器,向除接收端口以外的所有端口转发该帧,那么该帧就会到达所有的主机,此时和共享型的网络有点相同(称为交换机的泛洪)。然后接收到该帧的计算机都检查该帧的目的MAC地址是否和自己的相同,如果不同就置之不理,如果相同就回应该帧,在回复的过程中,交换机就学习到该MAC地址。然后下次,再有到达该MAC地址的帧,交换机就不用再泛洪此帧,而是直接通过对应的端口转发出去。
                     图1
 
                         
                                    图2
 
    图1中的交换机刚开始启动时,MAC地址表为空。假设主机A要和主机D通信,主机A的网卡封装一个帧,帧的源MAC地址为AMAC地址 1111.1111.1111目的MAC地址为DMAC地址4444.4444.4444
    ①交换机在端口1收到该帧,查看帧头中的源MAC地址,MAC地址表中没该MAC地址的记录,于是学习该MAC地址,将该MAC地址和端口号,加入到MAC地址表:MAC地址 1111.1111.1111  端口号 1 同时查看帧中的目的MAC地址 4444.4444.4444 查看MAC地址表,表中没该MAC地址的记录,交换机向除接收端口1外的所有端口转发该帧.
    ②主机B C D 都将收到该帧,B C 检查该帧的目的MAC地址不是自己的MAC地址,丢弃该帧.D检查帧中的MAC地址是自己的MAC地址,于是接收并处理该帧.(这个过程和总线型的网络通信差不多)
    D 回复主机A,D的网卡封装一个帧 帧中的源MAC地址为DMAC地址 4444.4444.4444 目的MAC地址为AMAC地址 1111.1111.1111
    ④该帧到达交换机的端口4,交换机查看帧中的源MAC地址,发现没有该MAC地址的记录,于是将MAC地址 4444.4444.4444  端口号 4 加入到MAC地址表中.并查看该帧的目的MAC地址为1111.1111.1111 因为刚开始已经学习到了AMAC地址,于是直接将该帧转发到端口1,而不再将该帧转发到所有的端口.此时的通信只发生在源端口和目的端口之间,实现了源主机和目的主机的点点通信,而不再是广播式通信.
    ⑤通过不断的接收帧,最后交换机学习到了所有的MAC地址,如图1 所示.
    现在比较交换机组建的网络(交换式局域网)和总线型的网络(共享型局域网).
    ①交换机内部通过在源端口和目的端口之间建立专用的虚拟通信信道实现点到点通信,而总线型是广播式通信.现在假设AD通信,交换机内部会在端口1和端口4之间建立一条临时的虚拟通道,该通道由AD专用,帧只会从AD或者从DA 不会发送给其他的主机,实现源主机和目的主机的点到点通信,AD通信结束后该通道撤消.而在图2的总线型的网络中,A发送给D的帧始终会被所有的主机都收到,这是一种广播式的通信,安全性不高
    ②交换式网络是每个主机独享带宽,而总线型是共享带宽.AD通信,通过临时虚拟通道实现全双工通信,A可以用1OM的带宽发送数据给D,同时D也可以以10M的带宽发送数据给A.另外如果B要与C通信,则建立另外一条临时虚拟通道,BC同样可以实现10M的带宽.然而,总线型网络中总线上只允许一个主机发送数据,比如现在A在发送数据给D A享有1OM带宽,其他要发送数据的主机必须等待,则其他主机此时的可用带宽为0,10M带宽是所有主机分时占有,为所有主机所共享.
    显然,交换网络比共享型局域网性能上有了很大的改观.