网络中最常见的网络设备莫属于交换机了,因此对于交换技术的学习是在整个计算机网络学习中十分重要的。万丈高楼平地起,一砖一瓦靠根基,要学习交换技术我们首先就要了解交换机是如何工作的,了解了交换机的工作方式才能更快更扎实的深入理解交换技术。那么今天我们就来聊一聊交换机基本工作原理。

在聊交换机之前,我们先来看一个和交换机很像的网络设备——集线器(hub)

交换机 invalid ip address_交换技术

HUB属于物理层设备,那有的同学就问了,长得和5口的小交换机没啥区别呀,为啥这个就是物理层设备,而交换机就属于数据链路层呢?

其实一个设备处于第几层是看它能解析出数据包中的哪一层的包头,像路由器它可以解析出IP头,并根据源目ip进行路由,那它就是三层设备。同理,交换机可以解析数据帧中的mac地址信息,并根据相关信息进行转发,所以交换机属于二层设备。而hub不解析任何信息,只做无脑转发给所有人,所有接口处在同一个冲突域,所以属于物理层设备。

交换机 invalid ip address_mac地址_02

 

刚才说到了,交换机是二层设备会根据mac地址信息进行转发,那么交换机是如何完成转发工作的呢?

首先,默认情况下交换机每个接口是一个冲突域,所有接口处在同一广播域。交换机内有一张mac地址表,思科的交换机使用show mac address-table可以查看mac地址表,华为交换机可以使用display mac-address查看mac地址表

交换机 invalid ip address_交换技术_03

交换机 invalid ip address_交换技术_04

可以看到,mac地址表中有vlan、mac地址、接口id、学习到条目的方式等信息,其中如果有类型为static一般为手工指定的mac地址表项,而类型为dynamic的则是交换机自己学习到的,那么交换机是根据什么机制生成的mac地址表呢?

当交换机收到一个数据帧,会去检查源mac,如果mac地址表项中没有这个地址,则将这个地址和收到这个数据帧的接口关联起来,记录到mac地址表中,如果mac地址表中有这个mac地址和接口的对应关系,则将此项的老化时间刷新(mac地址表项默认老化时间300秒)

当建立好我们的mac地址表之后,交换机就应该转发数据了,那么交换机是如何对数据进行转发的呢?

这个时候,交换机会去检查目的mac,如果mac地址表中没有,则视为一个未知单播帧,将会向处在同一广播域内的,除接收端口外的其他所有端口进行泛洪;如果查到mac地址表中有这个目的mac,则根据mac地址表直接进行转发。

总结:交换机每个接口是一个冲突域,也就是说交换机隔离了冲突域;交换机是工作在二层的网络设备,可以根据二层头部信息查找mac地址表并进行相应的转发,如果没有匹配的mac地址表项,交换机会进行泛洪转发;交换机的mac地址表可以自动学习建立。