一,STP
生成樹協定STP(Spanning Tree Protocol)将環形網絡修剪成為一個無環的樹型網絡,避免封包在環形網絡中的增生和無限循環;
快速生成樹協定RSTP(Rapid Spanning Tree Protocol)在STP基礎上實作了快速收斂,并增加了邊緣端口的概念及保護功能。
在一個複雜的網絡環境中,難免會出現環路。由于備援備份的需要,網絡設計者都傾向于在裝置之間部署多條實體鍊路,其中一條作主用鍊路,其他鍊路作備份,這樣都有可能會導緻環路産生。
環路會産生廣播風暴,最終導緻整個網絡資源被耗盡,網絡癱瘓不可用。環路還會引起MAC位址表震蕩導緻MAC位址表項被破壞。
為了破除環路,可以采用資料鍊路層協定STP,運作該協定的裝置通過彼此互動資訊發現網絡中的環路,并有選擇的對某個端口進行阻塞,最終将環形網絡結構修剪成無環路的樹形網絡結構,進而防止封包在環形網絡中不斷循環,避免裝置由于重複接收相同的封包造成處理能力下降。
由于STP拓撲收斂速度慢,IEEE在2001年釋出了802.1W标準定義了RSTP。RSTP在STP基礎上進行了改進,實作了網絡拓撲快速收斂。
二、STP相關術語
1.根橋
樹形網絡結構必須有樹根,于是STP/RSTP引入了根橋(Root Bridge)概念。
對于一個STP/RSTP網絡,根橋有且隻有一個,它是整個網絡的邏輯中心,但不一定是實體中心。但是根據網絡拓撲的變化,根橋可能改變。
2.BID(Bridge ID):橋ID
IEEE 802.1d标準中規定BID是由2位元組的橋優先級(Bridge Priority)與橋MAC位址構成,即BID(8位元組) = 橋優先級(2位元組) + 橋MAC(6位元組)。
在STP網絡中,橋ID最小的裝置會被選舉為根橋。在華為公司的裝置上,橋優先級支援手工配置。
3.PID(Port ID):端口ID
PID由兩部分構成的,即PID(16位) = 端口優先級(4位) + 端口号(12位)。
PID隻在某些情況下對選擇指定端口有作用,即在選擇指定端口時,兩個端口的根路徑開銷和發送交換裝置BID都相同的情況下,比較端口的PID,PID小者為指定端口。
4.路徑開銷
路徑開銷是STP/RSTP協定用于選擇鍊路的參考值。STP/RSTP協定通過計算路徑開銷,選擇較為“強壯”的鍊路,阻塞多餘的鍊路,将網絡修剪成無環路的樹形網絡結構。根裝置的端口的路徑開銷都為0。
在一個STP/RSTP網絡中,某端口到根橋累計的路徑開銷就是所經過的各個橋上的各端口的路徑開銷累加而成,這個值叫做根路徑開銷。
5. 端口角色
1) STP端口
①根端口:即去往根橋路徑最近的端口。根端口負責向根橋方向轉發資料,根端口同時還負責接收上遊裝置的BPDU封包和使用者流量轉發。根端口的選擇标準是依據根路徑開銷判定。在一台裝置上所有使能STP的端口中,根路徑開銷最小者,就是根端口。在一個運作STP/RSTP協定的裝置上根端口有且隻有一個,而且根橋上沒有根端口。
②指定端口:對一台交換裝置而言,它的指定端口是向下遊交換裝置轉發BPDU封包的端口。根橋的所有端口都是指定端口。在環網的每一網段都會選舉出一個指定端口,在一個網段上擁有指定端口的交換裝置被稱作該網段的指定橋。
2)端口狀态
STP端口狀态

端口既轉發使用者流量也處理BPDU封包。
隻有根端口或指定端口才能進入Forwarding狀态。
①Learning
裝置會根據收到的使用者流量建構MAC位址表,但不轉發使用者流量。
過渡狀态,增加Learning狀态防止臨時環路。
Listening:确定端口角色,将選舉出根橋、根端口和指定端口。
②:過渡狀态
Blocking
端口僅僅接收并處理BPDU,不轉發使用者流量。
阻塞端口的最終狀态。
③:Disabled
端口既不處理BPDU封包,也不轉發使用者流量。 端口狀态為Down。