一、stp演算法
ieee802.1d標準定義了stp的生成樹演算法。該演算法依賴於bid、路徑開銷和埠id引數來做出決定。
1、bid(網橋id):
bid是生成樹演算法的第乙個引數,bid決定了橋接網路的中心,稱為根網橋或根交換機。
bid引數是乙個8位元組域。前2個位元組(10進製)稱為「網橋優先順序」,後6個位元組(16進製制)是交換機的乙個mac位址。
網橋優先順序用來衡量乙個網橋的優先度,範圍是0-65535,預設是32768。
思科交換機中的pvst+(每vlan生成樹)生成樹協議使每個vlan都有乙個stp例項。
比較兩個bid的大小的原則:一是網橋優先順序小的bid優先,二是如果網橋優先順序相同,bid中的後六個位元組的mac小的則bid優先。
2、路徑開銷:
路徑開銷是生成樹演算法的第二個引數,決定到根網橋(根交換機)的路徑。
通俗說,路徑開銷是用來衡量網橋之間的距離的遠近的,其值是兩個網橋之間某條路徑上所有鏈路開銷的總和。
路徑開銷與跳數無關。
路徑開銷決定到根網橋或根交換機的最佳路徑,最小的路徑開銷是到根交換機的最佳路徑。
路徑開銷的值的規律:頻寬越大,stp開銷越小。
3、埠id:埠id是生成樹演算法的第三個引數,也決定到根交換機的路徑。它由2個位元組組成,包括「埠優先順序」和「埠號」,各佔8位。
埠優先順序值從0-255,預設128;埠號包括256個。
埠id大小的判定與bid大小的判定相同。
二、stp的過程
1、stp判決和bpdu交換:
當建立乙個邏輯無環的拓撲時,stp總是通過傳送bpdu的第二層幀來傳遞生成樹協議,並執行相同的4步判決順序:
步驟1,確定根交換機;
步驟2,計算到根交換機的最小路徑開銷;
步驟3,確定最小的傳送者bid;
步驟4,確定最小的埠id。
網橋為每個埠儲存乙個其收到的最佳bpdu,當有其他的bpdu到達交換機的埠時,交換機會使用四步判決過程來判斷此bpdu是否比該埠原來儲存的bpdu更好,如果新收到的bpdu(或者本地生成的bpdu)更好,則替換原有值。
當乙個網橋第一次被啟用時,其上所有埠每隔乙個hello時間(預設2秒)傳送一次bpdu;如果乙個埠發現從其他網橋收到的bpdu比自己傳送的好,則本地埠就停止傳送bpdu;如果在max age(最大生存時間,預設20秒)內沒有從鄰居網橋收到更好的bpdu,本地埠則重新開始傳送bpdu,即最大生存時間是最佳bpdu的超時時間。
2、stp收斂的三個步驟:
生成樹演算法收斂於乙個無環拓撲的初始過程包含三個選舉步驟:
步驟1 選舉乙個根交換機。
步驟2 選舉根埠。
步驟3 選舉指定埠。
在網路第一次「初始」時,所有網橋都洪氾混合的bpdu資訊,網橋通過執行stp四步判決過程,形成整個網路或vlan惟一的生成樹。在網路穩定後,bpdu從根網橋流出,沿著無環支路到達網路中的每乙個網段。網路發生變化時,生成樹協議按照收斂三個步驟做出處理。
(1)選舉根交換機:
根交換機是乙個具有最小bid的網橋,它是惟一的,是通過交換bpdu選舉得出來的。
bpdu的格式:bpdu是網橋之間用來交換生成樹資訊的特殊幀,它在網橋之間傳播,包括交換機和所有配置來進行橋接的路由器,bpdu不攜帶終端使用者流量。
bpdu包括根bid、根路徑開銷、傳送者bid和埠id資訊。
也就是說,交換機通過傳遞bpdu來發現誰是最小的bid,從而將具有最小bid的網橋做為根交換機。最初時,交換機總將自己認為是根網橋,當它發現有比自己小的bid時,就將收到的具有最小bid的交換機作為根網橋。
(2)選舉根埠:
在根交換機選舉完後,就開始選舉根埠了。所謂根埠,就是按照路徑開銷最靠近根交換機的埠,也就是說具有最小根路徑開銷的埠。每乙個非根交換機都必須選舉乙個根埠。
(3)選舉指定埠:
通過以上兩個步驟後,生成樹演算法還沒有消除任何環路,因為還沒有選舉指定埠。所謂指定埠,就是連線在某個網段上的乙個橋接埠,它通過該網段既向根交換機傳送流量也從根交換機接收流量。橋接網路中的每個網段都必須有乙個指定埠。
指定埠也是根據最小根路徑開銷來決定,因此根交換機上的每個活動埠都是指定埠,因為它的每個埠都具有最小根路徑開銷(實際是它的根路徑開銷是0)。
注意:指定埠只在中繼埠(trunk口)起作用。接入埠在指定埠選舉中不起任何作用。接入埠是用來連線到主機或者三層埠的。
3、stp狀態
在網橋已經確定了根埠、指定埠和非指定埠後,stp就準備開始建立乙個無環拓撲了。
為建立乙個無環的拓撲,stp配置根埠和指定埠**流量,非指定埠阻塞流量。
實際上,stp決定埠**和阻塞看似只有這兩個狀態,實際上是有五種狀態的。
(1)、disabled(為了管理目的或者因為發生故障將埠關閉);
(2)、blocking(在初始啟用埠之後的狀態。埠不能接收或者傳輸資料,不能把mac位址加入位址表,只能接收bpdu(bridge protocol data unit)。如果檢測到有乙個橋接環,或者埠失去了它的根埠或者指定埠的狀態,那麼就會返回到blocking狀態);
(3)、listening(如果乙個埠可以成為乙個根埠或者指定埠,那麼它就轉入監聽狀態。此時埠不能接收或者傳輸資料,也不能把mac位址加入位址表,但可以接收和傳送bpdu);
(4)、learning(在forward delay計時時間到(預設15秒)後,埠進入學習狀態,此時埠不能傳輸資料,但可以傳送和接收bpdu,也可以學習mac位址,並加入位址表);
(5)、forwarding(在下一次**延時計時時間到後,埠進入**狀態,此時埠能夠傳送和接收資料、學習mac位址、傳送和接收bpdu)。
在這些狀態過程中,會引發網路拓撲結構發生改變。此時,發生變化的交換機會在它的根埠上每隔hello time時間就傳送tcn bpdu,直到上級的指定網橋鄰居確認了該tcn(拓撲結構變化通知)為止。當根網橋收到後,會傳送設定了tc(topology change,拓撲改變)位的bpdu,通知整個生成樹拓撲結構發生了變化。這會讓所有的下級交換機把它們的address table aging(位址表老化)計時器從預設值(300秒)降為fordwarding delay(預設為15秒),從而讓不活動的mac位址比正常情況下更快地從位址表更新掉。
STP生成樹協議
stp生成樹協議主要用來解決二層環路問題。2個交換機之間只有一條鏈路,造成網路可靠性不高,因此新增一條線路提高可靠性。但是這樣會帶來環路問題,環路又帶來二層廣播風暴和mac表紊亂等問題。為了解決這些問題,sip協議應運而生。stp根據一定的演算法將環路的某處進行堵塞,在單鏈路出現故障時,再將該處的堵...
生成樹 STP協議
stp協議主要是保證網路中不會出現環路,防止廣播風暴產生 stp協議主要進行的執行過程是 1.選舉根交換機 所有交換機而言 2.選舉根埠 非根交換機 3.選舉指定埠 不同網段交換機 選舉步驟 說明 網橋 交換機id 下面我都直接稱網橋id 交換機的優先順序和mac位址的組合 比較方式 先比較交換機a...
STP(生成樹協議)
交換網路環路會導致 廣播風暴的形成 多幀複製 mac位址表紊亂 stp spanning tree protocol 是生成樹協議的英文縮寫。該協議可應用於在網路中建立樹形拓撲,消除網路中的環路,樹與圖的最大不同則是,圖是有環路的,樹則是沒有環路的。用樹的特性來解決網路環路的問題是再合適不過的啦。在...