第十一章以太網交換機工作原理

    在局域網中,交換機是非常重要的網絡設備,負責在主機之間快速轉發數據幀。交換機與集線器的不同之處在於,交換機工作在數據鏈路層,能夠根據數據幀中的MAC地址進行轉發。本章介紹了共享式以太網和交換式以太網的區別,最後重點講述了交換機進行MAC地址學習以構建MAC地址表的過程,對數據幀的轉發原理。

共享式與交換式以太網

共享式以太網

wKioL1aN1vaBeiMcAAH0m8WxFzo770.jpg

    Hub與同軸電纜都是典型的共享式以太網所使用的設備,工作在OSI模型的物理層。Hub和同軸電纜所連接的設備位於一個衝突域中,域中的設備共享帶寬,設備間利用CSMA/CD機制來檢測及避免衝突。當網絡中設備數量較少時,衝突較少發生,通信質量可以得到較好地保證;但是當設備數量增加到一定程度時,將導致衝突不斷,網絡的吞吐量受到嚴重影響,數據可能頻繁地由於衝突而被拒絕發送。

    通過Hub或同軸電纜接入的終端會共享總線的帶寬,接入的終端數量越多,每個終端獲得的網絡帶寬越少;並且一個終端發出的報文(無論是單播、組播、廣播),其餘終端都可以收到。

    交互式以太網的出現有效地解決了這個問題,它大大較少了衝突域的範圍。

換式以太網

wKiom1aN27bTHtIbAAHmfU_mHSo207.jpg

    網橋(Bridge)是一種工作在數據鏈路層的設備,早期被用在網絡中連接各個終端主機。對於終端主機來說,網絡好像是透明的,不需要由於網橋的存在而增加或改變配置,所有又稱爲透明網橋。網橋遵循的協議是IEEE 802.1D,又稱爲透明橋接協議。

    目前在交換式以太網中經常使用的網絡設備時二層交換機。二層交換機和網橋的工作原理相同,都是按照IEEE 802.1D標準設計的局域網連接設備。他們的區別在於交換機比網橋的端口更多、轉發能力更強、特性更加豐富。

    二層交換機的端口在檢測到網絡中的比特流後,它胡首先把比特流還原成數據鏈路層的數據幀,再對數據幀進行相應的操作。同樣,二層交換機端口在發送數據時,會把數據幀轉成比特流,再從端口發送出去。二層交換機也採用CSMA/CD機制來檢測及避免衝突,但與Hub所不同的是,二層交換機各個端口會獨立進行衝突檢測,發送和接受數據,互不干擾。所以,二層交換機中各個端口屬於不同的衝突域,端口之間不會有競爭帶寬的衝突發生。

    由於二層交換機的端口處於不同的衝突域中,終端主機可以獨佔端口的帶寬,所以交換式以太網的交換效率達到高於共享式以太網。

MAC地址學習

MAC地址表初始化

wKioL1aOBCXT9pckAAG8i0Asxr0566.jpg

    爲了轉發報文,以太網交換機需要維護MAC地址表。MAC地址表的表項中包含了與本交換機相連的終端主機的MAC地址、本交換機連接主機的端口等信息。

    在交換機剛啓動時,它的MAC地址表中沒有表項。此時如果交換機的某個端口收到數據幀,它會把數據幀從所有其它端口轉發。這樣,交換機就能確保網絡中其它所有的終端主機都能收到此數據幀。但是,這種廣播方式轉發的效率低下,佔用了太多的網絡帶寬,並不是理想的轉發模式。

    爲了能夠僅轉發目標主機所需要的數據,交換機就需要知道終端主機的位置,也就是主機連接在交換機的哪個端口上。這就需要交互機進行MAC地址表的正確學習。

MAC地址表學習過程(1)

wKiom1aOBW3zwJhuAAI2zrMMnMQ301.jpg

    交換機通過記錄端口接收數據幀中的源MAC地址和端口的對應關係來進行MAC地址表學習。

    如上圖,PCA發出數據幀,其源地址是自己的地址MAC_A,目的地址是PCD的地址MAC_D。交換機在端口E1/0/1收到數據幀後,查看其中的源MAC地址,並添加到MAC地址表中,形成一條MAC地址表項。因爲MAC地址表中沒有MAC_D的相關記錄,所以交換機把此數據幀從所有其它端口都發送出去。

    交換機在學校MAC地址時,同時給每條表項設定一個老化時間,如果在老化時間到期之前一直沒有刷新,則表項會清空。交換機的MAC地址表空間是有限的,設定表項老化時間有助於回收長久不用的MAC表項空間。

MAC地址表學習過程(2)

wKioL1aOG5-wQCOLAAHldEwrJxk997.jpg

    同樣的,當網絡中其它PC發出數據幀時,交換機記錄其中的源MAC地址,與接收到數據幀端口相關聯起來,形成MAC地址表項。

    當網絡中所有的主機的MAC地址在交換機中都有記錄後,意味着MAC地址學習完成,也可以說交換機知道了所有主機的位置。

    交換機在MAC地址學習時,需要遵循以下原則:

  • 一個MAC地址只能被一個端口學習

  • 一個端口可學習多個MAC地址

    交換機進行MAC地址表學習的目的是知道主機所處的位置,所以只要有一個端口到達主機就可以,多個端口到達主機反而造成帶寬浪費,所以系統設定MAC地址只與一個端口關聯。如果一個主機從一個端口轉移到另一個端口,交換機在新的端口學習到了此主機MAC地址,則會刪除原有表項。

    一個端口上課關聯多個MAC地址,比如端口連接到一個Hub,Hub連接多個主機,則此端口會關聯多個MAC地址。


交換機對數據幀的轉發

單播幀的轉發

    MAC地址表學習完成後,交換機根據MAC地址表項進行數據幀轉發。

    上圖中,PCA發出數據幀,其目的地址是PCD的地址MAC_D。交換機在端口E1/0/1收到數據幀後,檢索MAC地址表項,發現目的MAC地址MAC_D所對應的端口是E1/0/4,就把此數據幀從E1/0/4轉發,不在端口E1/0/2和E1/0/3轉發,PCB和PCC也不會收到目的到PCD的數據幀。

廣播、組播和未知單播幀的轉發

wKiom1aOJqviULPTAAH008ljAU8174.jpg

    交換機需要把廣播、組播幀從所有的端口轉發出去(除了源端口)。因爲廣播和組播的目的就是要讓網絡中其它的成員收到這些數據幀。

    未知單播幀是指幀的目的MAC地址在交換機MAC地址表中午相應表項的數據幀。由於MAC地址表中續相應表項,所有交換機也要把未知單播幀從其他端口轉發出去,以使網絡中其他主機能收到。

廣播域

wKioL1aOJ-vjTh0zAAIfr3HJ-dk086.jpg

    廣播真是指目的MAC地址是FFFF.FFFF.FFFF的數據幀,它的目的是讓本地網絡中的所有設備都能收到。二層交換機需要把廣播幀從除源端口之外的轉發出去,所以二層交換機不能隔離廣播。

    路由器或三層交換機是工作在網絡層的設備,對網絡層信息進行操作。路由器或三層交換機收到廣播幀,對幀進行解封裝,取出其中的IP數據包,然後根據IP數據包中的IP地址進行路由。所以,路由器或三層交換機不會轉發廣播幀,廣播在三層端口上被隔離。

    廣播域是指廣播幀能夠到達的範圍。如上圖中,PCA發出的廣播幀,PCB能夠收到,但PCC和PCD收不到,PCA和PCB就屬於同一個廣播域。廣播域中的設備數量較少,廣播幀流量就越少,網絡帶寬的無謂消耗也越少。

    通過網絡中使用三層交換機或路由器,可以減少廣播域,減少網絡帶寬浪費。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章