【計算機網路概論】IEEE 802.1D 交換機擴張樹演算法(Spanning Tree Algorithm)Part I

--

https://pixabay.com/photos/flower-cherry-blossoms-7958117/

本文為清華大學開放式課程上課心得整理。

橋接器(Bridge)是一個 Layer 2 的設備,依據 MAC layer address 來處理封包,所有以橋接器相連的網路在邏輯上視為同一個網路。

https://www.youtube.com/watch?v=eycDIAdnomE&list=PLS0SUwlYe8cxktXNovos9xleroaWyb-z5&index=42,0 分 55 秒截圖
同上,3 分 25 秒截圖

橋接器的功能有:

・轉送/過濾封包

・Address Learning

・提升網路可靠度所產生的迴圈問題

除了這三個基本功能,橋接器還附帶擁塞控制(Congestion control)、靜態過濾(Static Filtering)、在不同類型的網路轉送封包(Translation)、提供路由(Routing)、在不同限制的網路間分割封包(segmentation)等功能。

設計橋接器時,需要考慮一些因素:

・相容性:為了在各種不同網路中傳遞,橋接器可以轉送,但不能更動封包。

・緩衝器:橋接器本身要有足夠大的緩衝器,用於網路流量大時,封包的暫存。

・地址與路由:橋接器能轉送封包,所以必須知道目的地址的位置。

・可以連接兩個以上的網路。

用橋接器連接的可用網路稱為 BLAN(Bridge LANs),用橋接器連接可以提高網路的可靠度、加強安全性,連接的距離也可以拉長。橋接器有路由的能力,網路的連接會出現迴圈,也隨時可能變動,這是橋接器的設計要解決的問題。

Bridge Protocol Architecture

橋接器是等級二的設備,會收到所有來自連接網路的封包。橋接器收到封包之後,會檢查傳送地址與接受地址是否符合傳送條件,再傳送至正確的網路上。

https://www.youtube.com/watch?v=gP-MUdDEbB4&list=PLS0SUwlYe8cxktXNovos9xleroaWyb-z5&index=42,4 分 07 秒截圖

Frame Forwarding and Filtering & Address Learning

橋接器收到封包後,會先檢查接收方的網路是否已知,如果不知道在哪裡,則會以廣播的方式將封包送出。同時,橋接器會維護自身資料庫中工作站的網卡位置,除了紀錄不存在的地址,也會將過久沒有訊息傳遞的地址刪除。

同上,12 分 26 秒截圖

Forwarding and Address Learning Algorithm

當橋接器收到封包時,會先檢查自身資料庫中是否有位址的資訊,找到便直接傳輸,如果沒有便將封包廣播出去。此外還有一種特殊狀況,即傳送端與接收端在同一個網路中,此時不需透過橋接器轉發,會由 Filter 濾掉。

Forwarding 結束之後,橋接器會進入 Address Learning,如果 Source MAC Address 在橋接器的資料庫中,則會檢查連接埠是否有變動並更新互動時間,如果沒有則加入。

https://www.youtube.com/watch?v=TJVC0dIh6uI&list=PLS0SUwlYe8cxktXNovos9xleroaWyb-z5&index=45,0 分 53 秒

Loop Problems and Resolution

橋接器可以提升網路可靠度,但也會讓網路形成迴圈、造成一些問題:

・封包重複接收:由於迴圈,封包可經由一條以上的路徑到達目的地,造成接收端重複收取封包。

・錯誤的位址學習:橋接器會學習工作站的位置,重複收取封包也會導致橋接器無法正確學習。

為了解決這個問題,橋接器中內建了擴張樹演算法,讓連線上的橋接器可以互相溝通,必要時讓迴圈的某條連線暫時停止運作,避免封包重複發送與錯誤學習;在擴張樹連線中,會有一個橋接器被挑選成為 root,負責維護擴張樹(通常是挑 id 最小的橋接器)。

https://www.youtube.com/watch?v=YUIbV3LmKAA&list=PLS0SUwlYe8cxktXNovos9xleroaWyb-z5&index=46,14 分 28 秒截圖
同上,17 分 25 秒截圖

Spanning Tree Algorithm(Requirements)

擴張樹演算法的執行條件如下:

・橋接器:每個橋接器有自己的 id,共八個位元組,最左邊的兩個位元組可以用程式設定數值,右邊的六個位元組為橋接器的 MAC address;橋接器 id 的大小由最左邊的兩個位元決定。

・特殊 group MAC address:由於橋接器之間會互相交換封包,但本身無法知道網路上到底有多少個橋接器,因此有一組特殊的 MAC address,當橋接器讀取到這個 MAC address 時就必須將封包收下。

・獨立 id 的連接埠:每個橋接器會有很多個連接埠,連接埠都有獨一無二的 id 可供識別。

Spanning Tree Algorithm(Definitions)

以下是擴張樹演算法的相關名詞定義:

・Root Bridge:擴張樹中 id 最小的橋接器。

・Path Cost(Transmission Cost):橋接器每個連接埠送出封包的傳輸成本。

・Root Port:橋接器抵達 Root Bridge 的最小路徑連接埠。

・Root Path Cost:橋接器抵達 Root Bridge 的最小成本。

・Designated Bridge:橋接器是有運算能力的設備,但網路不是,因此要從連接的橋接器中挑選一個來代為執行,所有進出該網路的封包都必須經由代理橋接器。

・Designated Port:代理橋接器封包進出網路的連接埠。

https://www.youtube.com/watch?v=HpX_OMqI6Kc&list=PLS0SUwlYe8cxktXNovos9xleroaWyb-z5&index=47,3 分 42 秒截圖

--

--

No responses yet