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