交換機(jī)工作的基本原理需要結(jié)合實(shí)驗(yàn)來理解,下面是我聽完課后通過華為模擬器實(shí)驗(yàn)總結(jié)的學(xué)習(xí)筆記。
交換機(jī)工作在數(shù)據(jù)鏈路層,它對(duì)數(shù)據(jù)幀的轉(zhuǎn)發(fā)是建立在mac地址基礎(chǔ)之上的。交換機(jī) 不同的接口發(fā)送和接收數(shù)據(jù)是獨(dú)立的,各接口屬于不同的沖突域,因此有效地隔離了網(wǎng)絡(luò) 中的沖突域。 二層交換設(shè)備通過學(xué)習(xí)以太網(wǎng)數(shù)據(jù)幀的源MAC地址來維護(hù)MAC地址與接口的對(duì)應(yīng)關(guān)系(保存MAC與接口對(duì)應(yīng)關(guān)系的表稱為MAC地址表),通過其目的MAC地址來查找MAC地址表決定向哪個(gè)接口轉(zhuǎn)發(fā)。
工作原理:
初始狀態(tài)下,MAC地址表為空。




當(dāng)PC1想要和PC2交換數(shù)據(jù)的時(shí)候,他需要先將自己的MAC地址和PC2的MAC地址封裝起來發(fā)送給交換機(jī),讓它替自己尋找PC2,交換機(jī)接受到PC1的數(shù)據(jù)幀之后,會(huì)先學(xué)習(xí)PC1的MAC地址,然后把這個(gè)地址放在自己的MAC表上。



MAC地址表記錄了交換機(jī)學(xué)習(xí)到的其他設(shè)備的MAC地址與接口的對(duì)應(yīng)關(guān)系。交換機(jī)在轉(zhuǎn)發(fā) 數(shù)據(jù)幀時(shí),根據(jù)數(shù)據(jù)幀的目的MAC地址查詢MAC地址表。如果MAC地址表中包含與該幀目的MAC地址對(duì)應(yīng)的表項(xiàng),則直接通過該表項(xiàng)中的出接口轉(zhuǎn)發(fā)該報(bào)文;當(dāng)交換機(jī)接收到數(shù)據(jù)幀的時(shí)候,發(fā)現(xiàn)MAC表并沒有所需的MAC地址,這交換機(jī)將采取泛洪方式在除接收接口外的所有接口發(fā)送該報(bào)文,當(dāng)符合該MAC地址的PC2識(shí)別之后,將該信息回傳,交換機(jī)記錄PC2的MAC地址,之后再將信息傳回PC1。



交換機(jī)會(huì)通過傳輸介質(zhì)進(jìn)入其端口的每一個(gè)幀都進(jìn)行轉(zhuǎn)發(fā)操作,交換機(jī)的基本作用就是用 來轉(zhuǎn)發(fā)數(shù)據(jù)幀。 交換機(jī)對(duì)幀的處理行為一共有三種:泛洪(Flooding),轉(zhuǎn)發(fā)(Forwarding),丟棄 (Discarding)。 泛洪:交換機(jī)把從某一端口進(jìn)來的幀通過所有其它的端口轉(zhuǎn)發(fā)出去(注意,“所有其 它的端口”是指除了這個(gè)幀進(jìn)入交換機(jī)的那個(gè)端口以外的所有端口)。 如果從傳輸介質(zhì)進(jìn)入交換機(jī)的某個(gè)端口的幀是一個(gè)單播幀,交換機(jī)會(huì)去MAC表查這個(gè)幀的 目的MAC地址。如果查不到這個(gè)MAC地址,則交換機(jī)將對(duì)該單播幀執(zhí)行泛洪操作。 如果從傳輸介質(zhì)進(jìn)入交換機(jī)的某個(gè)端口的幀是一個(gè)廣播幀,交換機(jī)不會(huì)去查MAC地址表, 而是直接對(duì)該廣播幀執(zhí)行泛洪操作。
如上面的實(shí)驗(yàn)圖,PC1首次去訪問PC2,且不知道對(duì)應(yīng)的MAC地址,對(duì)E0/0/1接口進(jìn)行抓包,發(fā)現(xiàn)進(jìn)入交換機(jī)的某個(gè)端口的幀是一個(gè)ARP廣播幀,交換機(jī)直接對(duì)該廣播幀執(zhí)行泛洪操作。同時(shí),交換機(jī)將收到的數(shù)據(jù)幀的源MAC地址和對(duì)應(yīng)端口編號(hào)記錄到MAC地址表中。


對(duì)交換機(jī)執(zhí)行DIS mac-address命令,發(fā)現(xiàn)原本空的MAC地址表中記錄了PC1的相關(guān)信息。


直到PC1和PC2正常通信后,再次對(duì)交換機(jī)執(zhí)行DIS mac-address命令,發(fā)現(xiàn)交換機(jī)也學(xué)習(xí)到了PC2的相關(guān)信息。


轉(zhuǎn)發(fā):交換機(jī)把從某一端口進(jìn)來的幀通過另一個(gè)端口轉(zhuǎn)發(fā)出去(注意,“另一個(gè)端口” 不能是這個(gè)幀進(jìn)入交換機(jī)的那個(gè)端口)。如果從傳輸介質(zhì)進(jìn)入交換機(jī)的某個(gè)端口的幀是一個(gè)單播幀,則交換機(jī)會(huì)去MAC表查這個(gè)幀的目的MAC地址。如果查到了這個(gè)MAC地址表,則比較這個(gè)MAC地址在MAC地址表中對(duì)應(yīng)的端口編號(hào)是不是這個(gè)幀從傳輸介質(zhì)進(jìn)入交換機(jī)的那個(gè)端口的端口編號(hào)。如果不是,則交換機(jī)執(zhí)行轉(zhuǎn)發(fā)操作。
通過第一次通信,交換機(jī)的MAC地址表中已經(jīng)記錄了PC1的相關(guān)信息,下面以PC2訪問PC1為例,對(duì)E0/0/1進(jìn)行抓包,結(jié)果如圖,交換機(jī)不再執(zhí)行泛洪,在MAC地址表中查到了對(duì)應(yīng)的表項(xiàng),點(diǎn)對(duì)點(diǎn)轉(zhuǎn)發(fā)該數(shù)據(jù)幀,MAC地址為5489-98FF-4623的數(shù)據(jù)幀通過E0/0/1接口轉(zhuǎn)發(fā),MAC地址為5489-98DC-41E3的數(shù)據(jù)幀通過E0/0/2接口轉(zhuǎn)發(fā),PC2和PC1正常通信。


丟棄:交換機(jī)把從某一端口進(jìn)來的幀直接丟棄。如果從傳輸介質(zhì)進(jìn)入交換機(jī)的某個(gè)端口的幀是一個(gè)單播幀,則交換機(jī)會(huì)去MAC表查這個(gè)幀的目的MAC地址。如果查到了這個(gè)MAC地址表,則比較這個(gè)MAC地址在MAC地址表中對(duì)應(yīng)的端口編號(hào)是不是這個(gè)幀從傳輸介質(zhì)進(jìn)入交換機(jī)的那個(gè)端口的端口編號(hào)。如果是,則交換機(jī)將對(duì)該幀執(zhí)行丟棄操作。
如圖,PC1想要訪問PC2,發(fā)送單播數(shù)據(jù)幀,交換機(jī)1收到后,若MAC地址表中查不到對(duì)應(yīng)的表項(xiàng),則會(huì)泛洪該數(shù)據(jù)幀。交換機(jī)2收到該數(shù)據(jù)幀后,發(fā)現(xiàn)目的MAC地址對(duì)應(yīng)的端口就是接收數(shù)據(jù)幀的端口,則會(huì)丟棄該數(shù)據(jù)幀。抓包發(fā)現(xiàn),交換機(jī)2收到了ARP廣播包,沒有做出任何回應(yīng),之后就將這個(gè)幀丟棄了。
