STP生成樹協議——算法和過程

1、STP算法
     IEEE802.1D標準定義了STP的生成樹算法。該算法依賴於BID、路徑開銷和端口ID參數來作出決定。
     一、BID(網橋ID):
     BID是生成樹算法的第一個參數,BID決定了橋接網絡的中心,稱爲根網橋或根交換機。
BID參數是一個8字節域。前2個字節(10進制)稱爲「網橋優先級」,後6個字節(16進制)是交換機的一個MAC地址。
網橋優先級用來衡量一個網橋的優先度,範圍是0-65535,默認是32768。
思科交換機中的PVST+(每VLAN生成樹)生成樹協議使每一個VLAN都有一個STP實例。
比較兩個BID的大小的原則:一是網橋優先級小的BID優先,二是若是網橋優先級相同,BID中的後六個字節的MAC小的則BID優先。      二、路徑開銷:      路徑開銷是生成樹算法的第二個參數,決定到根網橋(根交換機)的路徑。      通俗說,路徑開銷是用來衡量網橋之間的距離的遠近的,其值是兩個網橋之間某條路徑上全部鏈路開銷的總和。      路徑開銷與跳數無關。      路徑開銷決定到根網橋或根交換機的最佳路徑,最小的路徑開銷是到根交換機的最佳路徑。      路徑開銷的值的規律:帶寬越大,STP開銷越小。      三、端口ID:端口ID是生成樹算法的第三個參數,也決定到根交換機的路徑。它由2個字節組成,包括「端口優先級」和「端口號」,各佔8位。      端口優先級值從0-255,默認128;端口號包括256個。      端口ID大小的斷定與BID大小的斷定相同。      2、STP的過程      一、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的超時時間。      二、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口)起做用。接入端口在指定端口選舉中不起任何做用。接入端口是用來鏈接到主機或者三層端口的。      三、STP狀態      在網橋已經肯定了根端口、指定端口和非指定端口後,STP就準備開始建立一個無環拓撲了。      爲建立一個無環的拓撲,STP配置根端口和指定端口轉發流量,非指定端口阻塞流量。      實際上,STP決定端口轉發和阻塞看似只有這兩個狀態,其實是有五種狀態的。      (1)、Disabled(爲了管理目的或者由於發生故障將端口關閉);      (2)、Blocking(在初始啓用端口以後的狀態。端口不能接收或者傳輸數據,不能把MAC地址加入地址表,只能接收BPDU(bridge protocol da ta 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地址比正常狀況下更快地從地址表更新掉
相關文章
相關標籤/搜索