細(xì)解交換機(jī)幀轉(zhuǎn)發(fā)技術(shù)
本節(jié)介紹交換機(jī)的幀轉(zhuǎn)發(fā)技術(shù),MAC地址表的維護(hù)方式,三種幀轉(zhuǎn)發(fā)模式,以及沖突域和廣播域。
幀轉(zhuǎn)發(fā):
1、網(wǎng)絡(luò)及電信中的交換概念
以太網(wǎng)上的幀包含源MAC地址與目的MAC地址。交換機(jī)從源設(shè)備接收到幀并快速發(fā)往目的地址。交換的基本概念指基于以下兩條準(zhǔn)則做出決策的設(shè)備:
· 進(jìn)入(ingress)端口
· 目的地址
術(shù)語ingress用于描述幀通過特定端口進(jìn)入設(shè)備,egress用于描述設(shè)備通過特定端口離開設(shè)備。交換機(jī)做出轉(zhuǎn)發(fā)決定的時(shí)候,是基于進(jìn)入端口以及消息的目的地址的。
LAN交換機(jī)維護(hù)一張表,通過這張表決定如何轉(zhuǎn)發(fā)數(shù)據(jù)流。LAN交換機(jī)唯一智能部分是利用這張表基于消息的進(jìn)入端口和目的地址來轉(zhuǎn)發(fā)。一個(gè)LAN交換機(jī)中只有一張定義了地址和端口的主交換表;因此,無論進(jìn)入端口如何,同一目的地址的消息永遠(yuǎn)從同一出口離開。
2、MAC地址表的動(dòng)態(tài)更新
一個(gè)交換機(jī)要知道使用哪一個(gè)端口傳送幀,首先必須學(xué)習(xí)各端口有哪些設(shè)備。隨著交換機(jī)學(xué)習(xí)到端口與設(shè)備的關(guān)系,它建立起一張MAC地址表,或內(nèi)容可尋址寄存表(CAM)。CAM是一種應(yīng)用于高速查找應(yīng)用的特定類型的memory。交換機(jī)將連接到它的端口的設(shè)備的MAC地址記錄到MAC表中,然后利用表中信息將幀發(fā)送至輸出端口設(shè)備,該端口已指定給該設(shè)備。
記住交換機(jī)操作模式的一句簡單的話是:交換機(jī)學(xué)習(xí)“源地址”,基于“目的地址”轉(zhuǎn)發(fā)。幀進(jìn)入交換機(jī)時(shí),交換機(jī)“學(xué)習(xí)”接收幀的源MAC地址,并將此地址添加到MAC地址表中,或刷新已存在的MAC地址表項(xiàng)的老化寄存器;后續(xù)報(bào)文如果去往該MAC地址,則可以根據(jù)此表項(xiàng)轉(zhuǎn)發(fā)。幀轉(zhuǎn)發(fā)時(shí),交換機(jī)檢查目的MAC地址并與MAC地址表中地址進(jìn)行比較。如果地址在表中,則轉(zhuǎn)發(fā)至表中與MAC地址相對(duì)應(yīng)的端口。如果沒有在表中找到目的MAC地址,交換機(jī)會(huì)轉(zhuǎn)發(fā)到除了進(jìn)入端口以外的所有端口泛洪(flooding)。有多個(gè)互連交換機(jī)的網(wǎng)絡(luò)中,MAC地址表對(duì)于一個(gè)連接至其他交換機(jī)的端口記錄多個(gè)MAC地址。
以下步驟描述了更新MAC地址表的方法:
1)交換機(jī)在port 1接收到來自PC 1的幀。
2)交換機(jī)檢查源MAC地址并與MAC地址表相比較。
· 如果地址不在表中,則交換機(jī)在MAC地址表中將PC 1的源MAC地址關(guān)聯(lián)到進(jìn)入端口(port 1)。
· 如果已經(jīng)存在該源地址的MAC地址表項(xiàng),則交換機(jī)重置老化計(jì)時(shí)器。通常一個(gè)表項(xiàng)會(huì)保持5分鐘。
3)交換機(jī)記錄源地址信息之后,檢查目的地址
· 如果目的MAC地址不在表項(xiàng)中或如果它是一個(gè)廣播MAC地址,則交換機(jī)把該幀泛洪(flood)至除了進(jìn)入端口以外的所有端口。
4)目標(biāo)設(shè)備(PC 3)返回目的地址為PC 1的單播幀。
5)交換機(jī)地址表中輸入PC 3的源MAC地址以及進(jìn)入端口的端口號(hào)。在表項(xiàng)中找到該幀的目的地址及關(guān)聯(lián)的輸出端口。
6)交換機(jī)現(xiàn)在可以在源和目標(biāo)設(shè)備之間傳送幀而無需泛洪,因?yàn)榈刂繁碇幸延兄付P(guān)聯(lián)端口的表項(xiàng)。
交換機(jī)轉(zhuǎn)發(fā)方式:
1、存儲(chǔ)轉(zhuǎn)發(fā)交換(Store-and-Forward)
運(yùn)行在存儲(chǔ)轉(zhuǎn)發(fā)模式下的交換機(jī)在發(fā)送信息前要把整幀數(shù)據(jù)讀入內(nèi)存并檢查其正確性。盡管采用這種方式比采用直通方式更花時(shí)間,但采用這種方式可以存儲(chǔ)轉(zhuǎn)發(fā)數(shù)據(jù),從而保證其準(zhǔn)確性。由于運(yùn)行在存儲(chǔ)轉(zhuǎn)發(fā)模式下的交換機(jī)不傳播錯(cuò)誤數(shù)據(jù),因而更適合大型局域網(wǎng)。存儲(chǔ)轉(zhuǎn)發(fā)模式有兩大主要特征區(qū)別于直通轉(zhuǎn)發(fā)模式:
· 差錯(cuò)控制:
使用存儲(chǔ)轉(zhuǎn)發(fā)技術(shù)的交換機(jī)對(duì)進(jìn)入幀進(jìn)行差錯(cuò)控制。在進(jìn)入端口接收完整一幀之后,交換機(jī)將數(shù)據(jù)報(bào)***一個(gè)字段的幀校驗(yàn)序列(frame check sequence, FCS)與自己的FCS進(jìn)行比較。FCS校驗(yàn)過程用以幫助確保幀沒有物理及數(shù)據(jù)鏈路錯(cuò)誤,如果該幀校驗(yàn)正確,則交換機(jī)轉(zhuǎn)發(fā)。否則,丟棄。
· 自動(dòng)緩存:
存儲(chǔ)轉(zhuǎn)發(fā)交換機(jī)通過進(jìn)入端口緩存,支持不同速率以太網(wǎng)的混合連接。例如,接收到一個(gè)以1Gb/s速率發(fā)出的幀,轉(zhuǎn)發(fā)至百兆以太網(wǎng)端口,就需要使用存儲(chǔ)轉(zhuǎn)發(fā)方式。當(dāng)進(jìn)入與輸出端口速率不匹配時(shí),交換機(jī)將整幀內(nèi)容放入緩存中,計(jì)算FCS校驗(yàn),轉(zhuǎn)發(fā)至輸出緩存之后將幀發(fā)出。
Cisco的主要交換方式是存儲(chǔ)轉(zhuǎn)發(fā)交換。
2、直通交換(Cut-Through)
直通交換的一個(gè)優(yōu)勢是比存儲(chǔ)轉(zhuǎn)發(fā)技術(shù)更為快速。采用直通模式的交換機(jī)會(huì)在接收完整個(gè)數(shù)據(jù)包之前就讀取幀頭,并決定把數(shù)據(jù)發(fā)往哪個(gè)端口。不用緩存數(shù)據(jù)也不用檢查數(shù)據(jù)的完整性。這種交換方式有兩大特點(diǎn):快速幀轉(zhuǎn)發(fā)以及無效幀處理。
· 快速幀轉(zhuǎn)發(fā):
如下圖所示,一旦交換機(jī)在MAC地址表中查找到目的MAC地址,就立刻做出轉(zhuǎn)發(fā)決定。而無需等待幀的剩余部分進(jìn)入端口再做出轉(zhuǎn)發(fā)決定。
使用直通方式的交換機(jī)能夠快速?zèng)Q定是否有必要檢查幀頭的更多部分,以針對(duì)額外的過濾目的。例如,交換機(jī)可以檢查前14個(gè)字節(jié)(源MAC地址,目的MAC,以太網(wǎng)類型字段),以及對(duì)之后的40字節(jié)進(jìn)行檢查,以實(shí)現(xiàn)IPv4三層和四層相關(guān)功能。
· 無效幀處理:
對(duì)于大多數(shù)無效幀,直通方式交換機(jī)并不將其丟棄。錯(cuò)誤幀被轉(zhuǎn)發(fā)至其他網(wǎng)段。如果網(wǎng)絡(luò)中出現(xiàn)高差錯(cuò)率(無效幀),直通交換可能會(huì)對(duì)帶寬造成不利影響,損壞以及無效幀會(huì)造成帶寬擁塞。在擁塞情況下,這種交換機(jī)必須像存儲(chǔ)轉(zhuǎn)發(fā)交換機(jī)那樣緩存。
· 無碎片轉(zhuǎn)發(fā)(Fragment Free)
無碎片轉(zhuǎn)發(fā)是直通方式的一種改進(jìn)模式。交換機(jī)轉(zhuǎn)發(fā)之前檢查幀是否大于64字節(jié)(小于則丟棄),以保證沒有碎片幀。無碎片方式比直通方式擁有更好的差錯(cuò)檢測,而實(shí)際上沒有增加延時(shí)。它比較適合于高性能計(jì)算應(yīng)用,即進(jìn)程到進(jìn)程延時(shí)小于10毫秒的應(yīng)用場景。
交換機(jī)域:
交換機(jī)比較容易混淆的兩個(gè)術(shù)語是沖突域和廣播域。這一段講述這兩個(gè)影響LAN性能的重要概念。
1、沖突域
設(shè)備間共享同一網(wǎng)段稱為沖突域。因?yàn)樵摼W(wǎng)段內(nèi)兩個(gè)以上設(shè)備同時(shí)嘗試通訊時(shí),可能發(fā)生沖突。使用工作在數(shù)據(jù)鏈路層的交換機(jī)可將各個(gè)網(wǎng)段的沖突域隔離,并減少競爭帶寬的設(shè)備數(shù)量。交換機(jī)的每一個(gè)端口就是一個(gè)新的網(wǎng)段,因?yàn)椴迦攵丝诘脑O(shè)備之間無需競爭。結(jié)果是每一個(gè)端口都代表一個(gè)新的沖突域。網(wǎng)段上的設(shè)備可以使用更多帶寬,沖突域內(nèi)的沖突不會(huì)影響到其他網(wǎng)段,這也成為微網(wǎng)段。
如下圖所示,每一個(gè)交換機(jī)端口連接到一臺(tái)主機(jī),每一個(gè)交換機(jī)端口代表一個(gè)隔離的沖突域。
2、廣播域
盡管交換機(jī)按照MAC地址過濾大多數(shù)幀,它們并不能過濾廣播幀。LAN上的交換機(jī)接收到廣播包后,必須對(duì)所有端口泛洪。互連的交換機(jī)集合形成了一個(gè)廣播域。網(wǎng)絡(luò)層設(shè)備如路由器,可隔離二層廣播域。路由器可同時(shí)隔離沖突和廣播域。
當(dāng)設(shè)備發(fā)出二層廣播包,幀中的目的MAC地址被設(shè)置為全二進(jìn)制數(shù),廣播域中的所有設(shè)備都會(huì)接收到該幀。二層廣播域也稱為MAC廣播域。MAC廣播域包含LAN上所有接收到廣播幀的設(shè)備。廣播通信比較多時(shí),可能會(huì)帶來廣播風(fēng)暴。特別是在包含不同速率的網(wǎng)段,高速網(wǎng)段產(chǎn)生的廣播流量可能導(dǎo)致低速網(wǎng)段嚴(yán)重?fù)頂D,乃至崩潰。