生成樹協議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無效,並開始尋找新的根端口.