生成樹協定STP(Spanning Tree Protocol),又稱擴充樹協定,是一種基于、OSI網絡模型的資料鍊路層(第二層)通訊協定,用作確定一個無環路的網絡環境。通過有選擇性地阻塞網絡備援鍊路來達到消除網絡二層環路的目的,同時具備鍊路的備份功能。
生成樹工作原理
生成樹協定的國際标準是IEEE802.1d.運作生成樹算法的網橋/交換機在規定的間隔内通過網橋協定資料單元(BPDU)的多點傳播幀與其他交換機交換配置資訊,其工作的過程如下:
1. 通過比較網橋/交換機優先級選取根網橋/交換機(給定廣播域内隻有一個根網橋/交換機);
2. 其餘的非根網橋/交換機隻有一個通向根網橋/交換機的端口,稱為根端口;
3. 每個網段隻有一個轉發端口;
4. 根網橋/交換機所有的連接配接端口均為轉發端口。
生成樹功能
1、利用生成樹算法、在以太網絡中建立一個以某台交換機為根網橋的生成樹,避免環路。
2、在以太網絡發生變化時,通過生成樹協定達到收斂保護的作用。
生成樹協定的算法過程
生成樹協定算法歸納為三個步驟:選擇根網橋、選擇根端口、選擇指定端口
(1)選擇根網橋:全網中選擇一個根網橋。比較網橋的BID值,BID值越小其優先級越高。BID有兩部分組成:交換機的MAC位址(6位元組)和交換機的優先級(2位元組,預設32768).如果優先級相同,就比較MAC位址,MAC位址越小越優先。
(2)選擇根端口:每個非根網橋上都有一個根端口。
a、比較根路徑成本,根路徑成本取決于鍊路的帶寬,帶寬越大,路徑成本越低,則選該端口為根端口。
b、如果根路徑成本相同,則要比較所在對端交換機BID值,值越小,則其優先級越高。
c、比較端口的ID值,該值分為兩部分:端口優先級和端口編号,值小的被 選為根端口
(3)選擇指定端口:在每條鍊路上選擇一個指定端口,根網橋上所有端口都是指定端口
首先,比較根路徑成本,
其次,比較端口所在網橋的ID值
最後,比較端口的ID 值
每個網絡中隻有一個根網橋;
每個非根網橋隻有一個根端口;
每個網段隻能有一個指定端口;
根網橋無根端口;
根網橋端口全為指定端口;
非指定端口為阻塞端口。
STP 簡介--STP端口狀态
交換機完成啟動後,生成樹便立即确定。如果交換機端口直接從阻塞轉換到轉發狀态,而交換機此時并不了解所有拓撲資訊時,該端口可能會暫時造成資料環路。為此,STP 引入了五種端口狀态。
阻塞(blocking) - 該端口是非指定端口,不參與幀轉發。此類端口接收 BPDU 幀來确定根橋交換機的位置和根 ID,以及最終的活動 STP 拓撲中每個交換機端口扮演的端口角色,不發送BPDU。
偵聽(listening) - STP 根據交換機迄今收到的 BPDU 幀,确定該端口可參與幀轉發。此時,該交換機端口不僅會接收 BPDU 幀,它還會發送自己的 BPDU 幀,通知鄰接交換機此交換機端口正準備參與活動拓撲。開始標明根網橋,指定端口和根端口。
學習(learning) - 端口準備參與幀轉發,并開始填充 MAC 位址表。
轉發(forwarding) - 該端口是活動拓撲的一部分,它會轉發幀,也會發送和接收 BPDU 幀。
禁用(disabled) - 該第 2 層端口不參與生成樹,不會轉發幀。當管理性關閉交換機端口時,端口即進入禁用狀态。
端口可以轉換的狀态:
傳統生成樹協定有3個定時器:Hello timer、Forward Delay和Max Age分别代表為
1.Hello timer:發送配置BPDU之間的間隔,預設為2秒
2.Forward Delay:偵聽和學習狀态的持續時間,預設為15秒.這是一個值控制兩個狀态的時間.
3.Max Age:BPDU存儲的時間長度,預設為20秒.如果從收到BPDU開始,20秒内仍未收到BPDU,網橋将宣布儲存的BPDU無效,并開始尋找新的根端口.