STP,RSTP及MSTP一開始設計就是要防止Level 2 switch網路造成迴圈(Loop)和實現鏈路冗餘(redundancy)。
當網路發生Loop時,透過STP演算法適當地將其它界面Broke掉。如下圖 會將左邊switch Fa0/2 Block
假若網路線路發生斷掉或其中網路介面壞掉等問題時,會自動再透過STP演算法將壞掉界面Broke, 原本被Broke 掉介面會再度被打開,這樣就有利於形成網路線路的備援機制。 下圖左邊switch Fa0/1壞掉(紅色),透過STP演算法會將左方switch fa0/2界面打開
STP(Spanning Tree Protocol)定義在IEEE 802.1D標準中,STP主要利用在Level 2 Bridge 或Switch 網路設備連接成網路時,避免網路迴圈(LOOP)的情形發生。STP是用STP演算法將網路迴圈結構以樹狀型式呈現,造成兩個節點之間只有一個唯一路徑,這唯一路徑就是轉送目的MAC address 的路徑。
STP在進行演算法其間,會依照下圖的模式進行switch Port角色的選擇。
另外,STP演算法在運算其間,forward delay time(轉送時間)約為15秒。整個STP要達成收斂時間約為30~50秒;即是Listening →(15秒)Learning–>(15秒)Forwarding。因此STP通常最快也需要30 秒才能收斂完成,對於網路服務無法忍受中斷30秒以上來說,STP收斂過慢
就是一個嚴重缺點。
(資料來源:MOOCS計算機網路概論)
為要解決STP收斂過慢問題,IEEE在2001年制定IEEE 802.1w的RSTP(Rapid Spanning Tree Protocol)標準,透過減少Bridge Port Status 轉換時間及新增Alternate port及Backup Port兩種角色來減少收斂時間。通常約1秒內即可收斂。
如下表所示,RSTP只有三種 Port Status,disable,Learning及Forwarding。傳統的STP(802.1d) port Status,disable,Blocking及Listening都統一由RSTP(802.1w)取代成disable。 (此表資料來源:百度-RSTP)
STP Port Status | RSTP Port Status | Port 是否為Active狀態 | Port 是否學習來源Mac Address |
---|---|---|---|
disable | disable | NO | NO |
Blocking | disable | NO | NO |
Listening | disable | YES | NO |
Learning | Learning | YES | YES |
Forwarding | Forwarding | YES | YES |
(此表資料來源: Dell Taiwan Networking Partner Training Book-A)
Link Speed | Default Cost STP | Default Cost RSTP |
---|---|---|
100M | 19 | 200000 |
1G | 4 | 20000 |
10G | 2 | 2000 |
100M LAG | 18 | 180000 |
1G LAG | 3 | 18000 |
10G LAG | 1 | 1800 |
(此表資料來源: Dell Taiwan Networking Partner Training Book-A)
Task | Command Syntax | Command Mode |
---|---|---|
Default Port Cost:如上表所示 | spanning-tree rstp cost cost | INTERFACE |
改變Port Cost Range:0-65535 | ||
改變port介面的優先權,Default為128 | Spanning-tree rstp priority priority-value | INTERFACE |
改變Port Cost Range:0-25 |
當網路規模較很大需要Switch特別多時,使用RSTP還是會導致較長收斂時間,若是將網路架構用VLAN方式切割成多個VLAN,或需是可以解決 的方法,但實際上RSTP及STP無法跨越不同VLAN來運作,因為以RSTP及STP觀點來看,雖然切割成不同VLAN,不同Vlan之間還是共用一樣的Spanning Tree。