生成樹協議(Spanning Tree Protocol, STP)是計算機網絡中用于防止交換網絡中出現環路的鏈路管理協議。它通過構建一個無環的樹形拓撲結構,確保數據幀在網絡中的可靠傳輸。STP的核心機制包括選舉根交換機、根端口、指定端口、阻塞端口和備用端口。
1. 根交換機選舉
根交換機(根網橋)是生成樹拓撲中的邏輯中心,負責生成BPDU(橋協議數據單元)。選舉過程基于交換機的橋ID(Bridge ID),由優先級和MAC地址組成。優先級值最小的交換機被選為根交換機;若優先級相同,則MAC地址最小的交換機勝出。根交換機在所有端口上發送BPDU,指導其他交換機構建樹形結構。
2. 根端口選舉
非根交換機需選擇一個根端口,即通往根交換機的最優路徑端口。選舉標準包括:
- 最低根路徑成本:累計到根交換機的路徑成本最小(通常基于鏈路帶寬)。
- 最低發送者橋ID:若路徑成本相同,則選擇連接橋ID較小的交換機的端口。
- 最低發送者端口ID:若橋ID相同,則選擇端口ID較小的端口。
根端口始終處于轉發狀態,確保數據流向根交換機。
3. 指定端口選舉
每個網絡段(如兩個交換機之間的鏈路)需選舉一個指定端口,負責轉發該段的數據。選舉規則包括:
- 根交換機上的所有端口均為指定端口。
- 在非根交換機連接的鏈路上,選擇根路徑成本最小的端口;若成本相同,則選擇橋ID較小的交換機端口;若仍相同,則比較端口ID。
指定端口處于轉發狀態,避免環路。
4. 阻塞端口與備用端口
阻塞端口是為防止環路而被禁用的端口,不轉發數據幀,但監聽BPDU以檢測拓撲變化。當網絡中出現冗余鏈路時,STP通過阻塞這些端口確保無環路徑。
備用端口是阻塞端口的一種,通常存在于點到點鏈路中,作為根端口或指定端口的備份。當活躍端口失效時,備用端口可轉換為轉發狀態,提高網絡冗余性。
STP通過動態選舉機制構建穩定網絡拓撲,根交換機、根端口、指定端口確保數據高效轉發,而阻塞端口和備用端口則提供冗余保護。這一協議在以太網中廣泛應用,保障了網絡的可靠性與可擴展性。