MAC 地址學(xué)習(xí)
當(dāng)交換機(jī)剛接入網(wǎng)絡(luò)時(shí),它的 MAC 地址表是空的。當(dāng)一個(gè)數(shù)據(jù)幀進(jìn)入交換機(jī)的某個(gè)端口時(shí),交換機(jī)首先會(huì)讀取該數(shù)據(jù)幀中的源 MAC 地址。例如,一臺(tái)計(jì)算機(jī) A 通過(guò)網(wǎng)線連接到交換機(jī)的端口 1,并發(fā)送一個(gè)數(shù)據(jù)幀,交換機(jī)就會(huì)從這個(gè)數(shù)據(jù)幀中提取計(jì)算機(jī) A 的 MAC 地址。
然后交換機(jī)將這個(gè) MAC 地址和數(shù)據(jù)幀進(jìn)入的端口號(hào)(這里是端口 1)記錄到自己的 MAC 地址表中。這樣,隨著網(wǎng)絡(luò)中設(shè)備不斷發(fā)送數(shù)據(jù)幀,交換機(jī)就逐漸學(xué)習(xí)到各個(gè)設(shè)備的 MAC 地址及其對(duì)應(yīng)的端口。
例如,在一個(gè)小型辦公室網(wǎng)絡(luò)中有 5 臺(tái)計(jì)算機(jī)分別連接到交換機(jī)的不同端口,經(jīng)過(guò)一段時(shí)間的通信后,交換機(jī)的 MAC 地址表中就會(huì)記錄下這 5 臺(tái)計(jì)算機(jī)的 MAC 地址和它們所連接的端口信息。
數(shù)據(jù)幀轉(zhuǎn)發(fā)
當(dāng)交換機(jī)收到一個(gè)數(shù)據(jù)幀后,它會(huì)查看數(shù)據(jù)幀中的目的 MAC 地址。如果交換機(jī)在自己的 MAC 地址表中找到了目的 MAC 地址對(duì)應(yīng)的端口,就會(huì)將數(shù)據(jù)幀直接轉(zhuǎn)發(fā)到該端口。
例如,計(jì)算機(jī) A 要向計(jì)算機(jī) B 發(fā)送數(shù)據(jù),交換機(jī)已經(jīng)學(xué)習(xí)到計(jì)算機(jī) A 的 MAC 地址對(duì)應(yīng)端口 1,計(jì)算機(jī) B 的 MAC 地址對(duì)應(yīng)端口 3。當(dāng)交換機(jī)收到計(jì)算機(jī) A 發(fā)往計(jì)算機(jī) B 的數(shù)據(jù)幀時(shí),它就會(huì)把這個(gè)數(shù)據(jù)幀從端口 3 轉(zhuǎn)發(fā)出去,從而使數(shù)據(jù)能夠準(zhǔn)確地到達(dá)計(jì)算機(jī) B。
如果交換機(jī)在 MAC 地址表中沒(méi)有找到目的 MAC 地址對(duì)應(yīng)的端口,這種情況稱(chēng)為 “未知單播幀”。此時(shí),交換機(jī)就會(huì)采取泛洪(Flooding)的方式來(lái)轉(zhuǎn)發(fā)數(shù)據(jù)幀。它會(huì)把這個(gè)數(shù)據(jù)幀從除了數(shù)據(jù)幀進(jìn)入端口之外的所有其他端口轉(zhuǎn)發(fā)出去。這是因?yàn)榻粨Q機(jī)不知道目的 MAC 地址在哪個(gè)端口,所以通過(guò)泛洪的方式來(lái)確保數(shù)據(jù)幀能夠到達(dá)目的設(shè)備。當(dāng)目的設(shè)備收到數(shù)據(jù)幀后做出響應(yīng),交換機(jī)就可以學(xué)習(xí)到目的 MAC 地址對(duì)應(yīng)的端口,之后就可以進(jìn)行正常的轉(zhuǎn)發(fā)了。
數(shù)據(jù)幀過(guò)濾
交換機(jī)還具有數(shù)據(jù)幀過(guò)濾的功能。它只會(huì)把數(shù)據(jù)幀轉(zhuǎn)發(fā)到目的 MAC 地址對(duì)應(yīng)的端口,而不會(huì)像集線器那樣把數(shù)據(jù)幀向所有端口廣播。
例如,在一個(gè)有多個(gè) VLAN(虛擬局域網(wǎng))的網(wǎng)絡(luò)中,交換機(jī)可以根據(jù) VLAN 信息來(lái)過(guò)濾數(shù)據(jù)幀。如果一個(gè)數(shù)據(jù)幀的源設(shè)備和目的設(shè)備在同一個(gè) VLAN 中,交換機(jī)就會(huì)按照正常的 MAC 地址轉(zhuǎn)發(fā)規(guī)則來(lái)處理;如果它們?cè)诓煌?VLAN 中,交換機(jī)可能會(huì)根據(jù)配置將數(shù)據(jù)幀轉(zhuǎn)發(fā)到連接路由器的端口,由路由器來(lái)處理跨 VLAN 的通信。
對(duì)于多層交換機(jī)(如第三層交換機(jī)、第四層交換機(jī)),它們?cè)谏鲜鰯?shù)據(jù)鏈路層工作原理的基礎(chǔ)上,還增加了網(wǎng)絡(luò)層(基于 IP 地址)和傳輸層(基于端口號(hào)等)的功能。第三層交換機(jī)可以根據(jù) IP 地址進(jìn)行路由選擇,第四層交換機(jī)可以根據(jù) TCP 或 UDP 端口號(hào)等對(duì)流量進(jìn)行更精細(xì)的轉(zhuǎn)發(fā)和控制。