在上的部分我简单地介绍了交换机的一些概念来对交换机有一些感性的认识。我们都已经知道交换机是依靠学习MAC地址来进行数据转发的,那么交换机是怎么学习MAC地址的呢?首先我们要知道MAC地址存在MAC表中的;一台交换机开机后它的MAC地址表是空空的。当交换机学到一个MAC地址后,它会将MAC地址存放到MAC表中(也称内容可寻址存贮器CAM),并且会给其打上时间标记timestamp。
(注:时间标记有什么功能呢??它有两个功能(1)当一台PC机已经切换交换机端口的时候,MAC地址表内会同是检测到一台交换机中会有两个一样的MAC地址,那么它就会删除利用时间标记记录最老的MAC地址;(2)当MAC地址表过于庞大的时候,交换机会利用时间标记来删除已经在一段时间内没有链接到该端口的、与MAC地址表中相对应的PC机的MAC地址。)
我们来举一个例子:假设我们现在有一个交换式的网络,我们要将PC1中的数据发送到PC2上。如图1
交换机工作原理(下)_交换机图1
我们从图1中可以看到4台带有MAC地址的PC机分别连接在交换机的每个端口上,当交换机和开机后交换机中的MAC地址表为空;
此时当PC1发送一个信号给交换机,当数据帧到达交换机后交换机做的第一步就是在MAC表中记录发送端的源MAC地址以及它所连接到此交换机端口的端口号,此时交换机会发现在MAC地址表中只有一个MAC地址,所以它并不知道我要发给那台PC机,然后交换机会向全网发送广播以便让所有的连接到这台交换机的设备都可以接收到此数据帧;如图2和图3
交换机工作原理(下)_休闲_02图2
交换机工作原理(下)_交换机_03图3
首先我们先看一下PC3接收到此数据帧后他会将此数据帧的目的MAC地址表与NIC(网卡)中的MAC地址进行核对,如果一样则接纳此数据帧,如果不一样则丢弃;很显然是不一样的,那么PC3就丢弃此数据帧。如图4同样图5中的数据帧也是一样的。
交换机工作原理(下)_交换机_04图4
交换机工作原理(下)_交换机_05图5
交换机工作原理(下)_交换机_06图6
从图6中我们可以看到PC3与PC4将此数据帧丢弃了。就在交换机广播此数据帧的同时,PC2也接到了这个数据帧并且和其它的设备一样用NIC中的MAC地址与该数据帧的MAC地址进行比较,如图7
交换机工作原理(下)_休闲_07图7
如同题目一样PC2的MAC正好与此数据帧的目的MAC地址对应,那么此时PC2给与交换机回应,并且在交换机的MAC地址表中填写与之对应的MAC地址和端口号。如图8

交换机工作原理(下)_交换机_08图8
最后交换机再向PC1发送PC2的MAC地址信息,以便向pc1中写入由交换机发送的PC2的源MAC地址。如图9
交换机工作原理(下)_交换机_09图9
以上就是一个典型的交换机学习MAC地址的整个过程。
想必大家都看到了在MAC地址表中的每个端口只与一个MAC地址对应,在以后的文章中我们还会看到MAC地址表中的一个端口对应多个MAC地址的现象。