Ethernet Switch工作原理

        Ethernet Switch的工作基础是Ethernet信息包结构。Ethernet信息包为固定格式,但长度可变,在信息包头中带有目的MAC地址、源MAC地址、信息长度等若干内容。目前使用较多的Ethernet交换机都是Layer 2(OSI的第二层)交换机,即基于Ethernet MAC地址进行交换。
        Ethernet Switch控制电路收到一个Ethernet 包(从某一端口)后,立即查找其内存中的地址对照表(MAC端口号),以确认该目的MAC的NIC挂在哪一个端口上,然后将该包送到该端口上,如果该目的MAC地址是首次出现,则广播到所有端口。Ethernet 交换机是根据Ethernet包中的源MAC地址来更新“MAC地址—端口号表”的,每一台计算机打开后,其上面的NIC会定期发出空闲包或信号,Ethernet 交换机可据此得知其存在及MAC地址,所谓自动地址学习就是指此意;所谓自动年龄更新(Auto-aging),指的是若一定时间内未见已出现的MAC地址发出包,则将此MAC地址从“MAC—端口号表”中清除,此MAC地址重新出现时将会被当作新地址处理。

        Ethernet Switch与Ethernet HUB的最大差别是Ethernet Switch记忆什么用户(即哪些MAC地址)挂在哪一个端口上,也就是说Switch中有一个地址表,表中的每一项内容主要是MAC地址与端口号。当Switch从某一端口收到一个包时(我们暂不讨论广播包),它要对地址表执行两个动作:一是检查该包的源MAC地址是否已在地址表中,如果没有,则将该MAC地址加到地址表中,这样以后就知道该MAC地址在哪一个端口;二是检查该包的目的MAC地址是否已在地址表中,如果该MAC地址已在地址表中,则将该包发送到对应的端口即可,如果该MAC地址不在地址表中,则将该包发送到所有其它端口(源端口除外),相当于该包是一个广播包。

        对于广播包,EthernetSwitch与Ethernet HUB的工作原理是一样的,没有什么差别。
从Switch上述工作过程我们可知:
        1、Switch是根据从端口收到的Ethernet包得知哪一个MAC地址在哪一个端口的,如果该MAC地址从来没有发出过Ethernet包,则Switch不知道该MAC地址在哪一个端口。
        2、由于Switch中有一个地址表记录哪一个MAC地址在哪一个端口,因此对于非广播包,Switch而不必像HUB那样将该包发送到所有端口,只须将该包发送到对应的端口,从而使不相关的端口可以并行通信,从而提供了比HUB更高的速率。HUB则不同,不管该包是广播包也好,非广播包也好,HUB都按广播包处理,从而使用户只能串行操作,共享通信带宽。
        3、Switch是有自动地址学习功能,它自动根据收到的Ethernet包中的源MAC地址,更新MAC地址表的内容,Switch使用的时间越长,它学到的MAC地址就越多,未知的MAC地址就越少,因而广播的包就越少(如果目的MAC地址未知,则将该包作广播包处理),速度就越快。

你可能感兴趣的:(硬件维护)