在上的部分我簡單地介紹了交換機的一些概念來對交換機有一些感性的認識。我們都已經知道交換機是依靠學習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
圖2
圖3
首先我們先看一下PC3接收到此資料幀後他會将此資料幀的目的MAC位址表與NIC(網卡)中的MAC位址進行核對,如果一樣則接納此資料幀,如果不一樣則丢棄;很顯然是不一樣的,那麼PC3就丢棄此資料幀。如圖4同樣圖5中的資料幀也是一樣的。
圖4
圖5
圖6
從圖6中我們可以看到PC3與PC4将此資料幀丢棄了。就在交換機廣播此資料幀的同時,PC2也接到了這個資料幀并且和其它的裝置一樣用NIC中的MAC位址與該資料幀的MAC位址進行比較,如圖7
圖7
如同題目一樣PC2的MAC正好與此資料幀的目的MAC位址對應,那麼此時PC2給與交換機回應,并且在交換機的MAC位址表中填寫與之對應的MAC位址和端口号。如圖8
圖8
最後交換機再向PC1發送PC2的MAC位址資訊,以便向pc1中寫入由交換機發送的PC2的源MAC位址。如圖9
圖9
以上就是一個典型的交換機學習MAC位址的整個過程。
想必大家都看到了在MAC位址表中的每個端口隻與一個MAC位址對應,在以後的文章中我們還會看到MAC位址表中的一個端口對應多個MAC位址的現象。