網(wǎng)管員不可不知 二層交換機(jī)基礎(chǔ)知識(shí)
交換機(jī)的三大功能:
MACA地址的學(xué)習(xí)
數(shù)據(jù)幀的轉(zhuǎn)發(fā)或者是數(shù)據(jù)幀的過濾
利用生成樹協(xié)議防止網(wǎng)絡(luò)環(huán)路
首先我們來看第一個(gè)交換機(jī)MAC地址的學(xué)習(xí)功能,交換機(jī)是通過MAC表來進(jìn)行交換轉(zhuǎn)發(fā)工作的,所以MAC地址表是交換工作的核心,網(wǎng)絡(luò)與交換機(jī)的不同之處就在于網(wǎng)橋使用軟件來創(chuàng)建和管理MAC地址表的,而交換機(jī)使用ASIC來創(chuàng)建和管理MAC地址表。
交換機(jī)的MAC地址學(xué)習(xí)功能:
交換機(jī)初始化時(shí),要學(xué)習(xí)進(jìn)入交換機(jī)的數(shù)據(jù)幀的源地址,并且把源地址及其對(duì)應(yīng)的交換機(jī)的端口號(hào)記錄在MAC地址表。在MAC地地址表形成之后,交換機(jī)要學(xué)習(xí)進(jìn)入交換機(jī)數(shù)據(jù)幀的目的地址,并且與MAC地址表中的條目進(jìn)行比較,完成相應(yīng)的轉(zhuǎn)發(fā)。

▲ MAC地址學(xué)習(xí)
交換機(jī)開機(jī)初始化時(shí),MAC地址表是空的,因?yàn)镸AC地址表是存儲(chǔ)在內(nèi)存中的。
如果計(jì)算機(jī)A發(fā)送數(shù)據(jù)幀到計(jì)算機(jī)C,此時(shí)交換機(jī)的E0口接收該數(shù)據(jù)幀,交換機(jī)記錄下該數(shù)據(jù)幀的源地址C的對(duì)應(yīng)關(guān)系及E0口的對(duì)應(yīng)關(guān)系。如圖所示:

由于交換機(jī)并不知道C的MAC地址,所以將此數(shù)據(jù)幀對(duì)除了E0口以外的其他端口進(jìn)行轉(zhuǎn)發(fā)。
如果是計(jì)算機(jī)D發(fā)送數(shù)據(jù)幀到計(jì)算機(jī)C,此時(shí)交換機(jī)的E3口接收該數(shù)據(jù)幀,交換機(jī)記錄下該數(shù)據(jù)幀的源地址D的地址與端口的對(duì)應(yīng)關(guān)系。此時(shí)交換機(jī)仍然不知道C的地址,所以還是要對(duì)除了E0口以外的其他端口上進(jìn)行轉(zhuǎn)發(fā)。

交換機(jī)不斷記錄每個(gè)接口上接收到的數(shù)據(jù)幀的地址,一段時(shí)間以后所有的端口所連接的MAC地址都會(huì)記錄到MAC地址表中。此時(shí)計(jì)算機(jī)A再向計(jì)算機(jī)C發(fā)送數(shù)據(jù)時(shí),就直接查MAC地址表進(jìn)行轉(zhuǎn)發(fā)即可,不會(huì)再轉(zhuǎn)發(fā)到其他端口上。

在這個(gè)圖中計(jì)算機(jī)A和計(jì)算機(jī)B通過HUB連接到Switch的E0口上,所以在MAC地址表中記錄兩個(gè)MAC地址對(duì)應(yīng)同一個(gè)端口,此時(shí)如果A與B通訊,則交換機(jī)不會(huì)轉(zhuǎn)發(fā)該數(shù)據(jù)幀,因?yàn)樵春蜆?biāo)MAC都在同一個(gè)接口上。這就是交換機(jī)的地址學(xué)習(xí)功能以及數(shù)據(jù)包的轉(zhuǎn)發(fā)過濾。
交換機(jī)的交換方式一般有三種:直通轉(zhuǎn)發(fā)、片斷轉(zhuǎn)發(fā)和存儲(chǔ)轉(zhuǎn)發(fā)
直通轉(zhuǎn)發(fā):交換機(jī)檢測(cè)到目錄地址后即轉(zhuǎn)發(fā)數(shù)據(jù)幀,也就是說只要讀到目標(biāo)地址以后就開始轉(zhuǎn)發(fā),大家分析一下數(shù)據(jù)幀的格式就知道了,加上前導(dǎo)位和目標(biāo)地址也就是14個(gè)字節(jié)左右,不需要再往后分析了。這樣減少延時(shí),但是不適合高錯(cuò)誤率的網(wǎng)絡(luò)。因?yàn)橛幸恍?shù)據(jù)碰撞幀,是小于64字節(jié)的,也會(huì)一起轉(zhuǎn)發(fā)!
片斷轉(zhuǎn)發(fā):與直通轉(zhuǎn)發(fā)相似,只是在轉(zhuǎn)發(fā)的時(shí)候會(huì)檢測(cè)幀的前64個(gè)字節(jié),這前64個(gè)字節(jié)中會(huì)包含一小部分?jǐn)?shù)據(jù),好處是可以把可以把小于64字節(jié)的壞幀拋棄掉,以節(jié)約帶寬。
存儲(chǔ)轉(zhuǎn)發(fā):這是延時(shí)較大的一種轉(zhuǎn)發(fā),在進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)之前要將收到的幀進(jìn)行完整性校驗(yàn),確認(rèn)沒有錯(cuò)誤才進(jìn)行轉(zhuǎn)發(fā),如果有錯(cuò)誤就不轉(zhuǎn)發(fā)。好處是可以丟棄任何小于64字節(jié)和受損的數(shù)據(jù)包,但是缺點(diǎn)是延遲大。
下面看一下網(wǎng)絡(luò)環(huán)路的形成:
網(wǎng)絡(luò)環(huán)路
大家看下面這個(gè)圖:

在這個(gè)拓?fù)鋱D中,交換機(jī)就成了一個(gè)單點(diǎn)故障,如果交換機(jī)壞了,此時(shí)的幾個(gè)模塊之間都無法進(jìn)行正常的工作,客戶機(jī)不能訪問服務(wù)器,不能連接internet,不能訪問打印機(jī),反之都一樣。所謂單點(diǎn)故障,也就是一點(diǎn)發(fā)生故障,則整網(wǎng)絡(luò)無法正常工作。所以在一般的交換式網(wǎng)絡(luò)中,我們都需要對(duì)交換機(jī)進(jìn)行冗余,但是引入冗余又會(huì)發(fā)生一個(gè)問題,一個(gè)很嚴(yán)重的問題,就是網(wǎng)絡(luò)環(huán)路。下面我們來看看環(huán)路對(duì)我們的網(wǎng)絡(luò)到底造成了什么影響,影響主要有三:
1 Broadcast storms 廣播風(fēng)暴
2 Multiple Frame Copies 多重復(fù)數(shù)據(jù)幀
3 MAC Database Instability MAC地址表不穩(wěn)定
咱們一一來看
廣播風(fēng)暴:我們看一個(gè)圖,大家就明白什么是廣播風(fēng)暴了:

分析:如果主機(jī)X希望跟網(wǎng)絡(luò)上的其他主機(jī)通訊,將數(shù)據(jù)報(bào)傳給交換機(jī)A,但交換機(jī)仍然會(huì)將此報(bào)再一次傳給交換機(jī)A,依次類似,構(gòu)成了一個(gè)環(huán),而且這個(gè)環(huán)后面比較嚴(yán)重,為什么?我們?cè)谥v網(wǎng)絡(luò)基礎(chǔ)的時(shí)候,我們講了數(shù)據(jù)幀的格式,大家可以回憶一下,但在這個(gè)格式中,沒有類似于三層IP報(bào)頭中TTL機(jī)制,所以數(shù)據(jù)幀在網(wǎng)絡(luò)中將被無限次數(shù)的傳遞,從面造成了廣播風(fēng)暴,如果是單播的數(shù)據(jù)還要好一些,如果是廣播或者組播數(shù)據(jù)在這樣一個(gè)環(huán)路網(wǎng)絡(luò)中傳遞則廣播風(fēng)暴更加明顯。
多重?cái)?shù)據(jù)幀:也稱為重復(fù)數(shù)據(jù)幀

分析:主機(jī)X準(zhǔn)備發(fā)一個(gè)單播幀給路由器Y,數(shù)據(jù)報(bào)發(fā)出后,發(fā)現(xiàn)有兩條路可以到達(dá)路由器Y,一個(gè)是直接發(fā)過去,還有一條就是通過交換機(jī)A轉(zhuǎn)給交換機(jī)B,然后再交給路由器Y,此時(shí)路由器Y就收到了兩位一模一樣的數(shù)據(jù)幀。
還有一個(gè)就是MAC地址表的不穩(wěn)定:

分析:還是主機(jī)X發(fā)送數(shù)據(jù)幀給路由器Y,路由器的MAC地址表還沒有被交換機(jī)學(xué)習(xí)到,數(shù)據(jù)幀沿鏈路發(fā)送到交換A和交換機(jī)B的端口0,那么交換機(jī)A和交換機(jī)B都將主機(jī)X的MAC地址記錄在port 0。因?yàn)槭峭ㄟ^port 0收到的數(shù)據(jù)幀,所以會(huì)通過兩個(gè)交換機(jī)的port 1向外泛洪,交叉來到相互交換機(jī)的 port 1 口,又認(rèn)為主機(jī)X的MAC地址所對(duì)應(yīng)的端口是port1,即從交換機(jī)A發(fā)出來的數(shù)據(jù)幀來到了交換機(jī)B的port 1端口。然后交換機(jī) B收到后又通過Port 0口再次泛洪,依次類推,數(shù)據(jù)幀在環(huán)路里重復(fù)執(zhí)行上述過程,交換機(jī)A和交換機(jī)B重復(fù)的在port 1 以及 port0上不斷的學(xué)習(xí)主機(jī)X的MAC地址,造成MAC地址表的不穩(wěn)定。