局域網交換技術是OSI參考模型中的第二層——數據鏈路層(Data-Link Layer)上的技術,所謂“交換”實際上就是指轉發數據幀 (frame)。在數據通信中,所有的交換設備(即交換機)執行兩個基本的操作:
交換數據幀,將從輸入介質上收到的數據幀轉發至相應的輸出介質;
維護交換操作,構造和維護交換地址表。
下面,我們探討一下這兩個基本操作的具體細節。
交換數據幀
交換機根據數據幀的MAC(Media Access Control)地址(即物理地址)進行數據幀的轉發操作。交換機轉發數據幀時,遵循以下規則:
如果數據幀的目的MAC地址是廣播地址或者組播地址,則向交換機所有端口轉發(除數據幀來的端口);
如果數據幀的目的地址是單播地址,但是這個地址并不在交換機的地址表中,那么也會向所有的端口轉發(除數據幀來的端口);
如果數據幀的目的地址在交換機的地址表中,那么就根據地址表轉發到相應的端口;
如果數據幀的目的地址與數據幀的源地址在一個網段上,它就會丟棄這個數據幀,交換也就不會發生構造維護交換地址表交換機的交換地址表中,一條表項主要由一個主機MAC地址和該地址所位于的交換機端口號組成。整張地址表的生成采用動態自學習的方法,即當交換機收到一個數據幀以后,將數據幀的源地址和輸入端口記錄在交換地址表中。思科的交換機中,交換地址表放置在內容可尋址存儲器(Content-Addressable Memory, CAM)中,因此也被稱為CAM表。
當然,在存放交換地址表項之前,交換機首先應該查找地址表中是否已經存在該源地址的匹配表項,僅當匹配表項不存在時才能存儲該表項。每一條地址表項都有一個時間標記,用來指示該表項存儲的時間周期。地址表項每次被使用或者被查找時,表項的時間標記就會被更新。如果在一定的時間范圍內地址表項仍然沒有被引用,它就會從地址表中被移走。因此,交換地址表中所維護的一直是最有效和最精確的地址—端口信息。