【原理總結】STP生成樹機制

STP 生成樹原理

STP的介紹】

STP的全稱是spanning-tree protocolSTP協議是一個二層的鏈路管理協議,它在提供鏈路冗餘的同時防止網絡產生環路。STP協議(Spanning tree protocol)本質就是實現在交換網絡中鏈路的備份和負載的分擔.STP是生成樹協議,主要功能是從拓撲中清除第2層環路。

 

BPUD與生成樹原理分析】

一。BPDU裏有什麼?
      

 

 

二。每個字段做什麼用?
協議ID和版本號:目前都是0,表示的是這是個STP協議。
BPDU類型:表示的是配置BPDU還是TCNBPDU
標誌域:第一位和最後一位有用到,用來表示這是一個拓撲變更幀,還是拓撲變更確認幀。
根網橋ID
路徑成本:4個字節,計算到根橋的路徑成本。
ID8個字節。由2個字節優先級和6個字節MAC地址構成。2個字節裏前4bits表示優先級,後12bits表示擴展位(vlan數)。默認優先級是32768,最大是65535
端口ID:由優先級加端口出廠編號構成,優先級可以修改,但是一般不推薦修改。
消息老化時間:
消息壽命:消息最多存活時間。
hello時間:默認是兩秒,可以修改。
轉發延遲:默認是15秒,可以修改。

 

實例圖分析:
實驗環境:在宿舍用wireshark抓的包。
先看1的部分:看到目的MAC地址是0180c2000000,這是個組播地址。
再看2STP部分:
協議標識和版本都是0.
類型:是配置BPDU
根標識:這裏優先級是0。(不是很清楚,或許是被改過了
路徑開銷是:220020 (這個是累加的)
ID:優先級32768
端口標識:0x800e
消息老化時間:3
hello 時間是2s
轉發延遲是15s
三。BPDU裏的字段怎麼用? (生成樹的原理)
浩哥說:“我們只看BPDU”。
現在就看看怎麼用BPDU來解釋STP原理。
首先看幾個術語:

 

根橋:具有最小橋ID的交換機。
根路徑開銷:一臺交換機的根路徑開銷是根端口的路徑開銷與數據包經過的所有交換機的根路徑開銷之和。根橋的根路徑開銷是零。 
根端口:每臺交換機都有一個根端口,這個端口到根橋的路徑開銷最低。一旦多個端口具有相同的到根橋的路徑開銷時,那麼具有最低的端口ID的纔會成爲根端口。

指定端口:爲每個交換LAN網段選定的轉發端口。

 

現在正式開始:
用一個拓撲圖來說明:(這是NA時聰哥引以爲豪的拓撲)
假設:他們的優先級默認都一樣,都是32768.
帶寬都一樣,是100M的。

 

 

 

 

1.根橋的選舉:

在交換機開機後,每個接口都會發送出BPDU信息,將自己的橋ID填入根網橋ID字段,然後進行協商。發現別人的橋ID比自己大,就把根網橋換成別人的,如此迭代到根網橋選出爲止。這裏協商後根網橋爲:sw1。因爲他的mac地址最小。(二層取小,三層取大原則)。
總結:一個VLAN裏只有一個根網橋。

2.根端口的選舉:

       根網橋選舉後,只有根網橋會發送BPDU信息,其它交換機不會發送,但是會轉發BPDU信息。首先從接受到的BPDU中查看cost of path字段,將自己到鏈路的開銷加上裏面的BPDU的值,形成新的cost of path值傳出去。例如:sw2sw3sw21口看到BPDUcost of
path的值是0,因爲是根橋發來的,由於自己知道自己的接口是100M的,所以將19加上0等於19,填入那個字段。同理sw31口也一樣。這時候sw2sw3分別各從1口收到的BPDU的開銷值都是19.現在來分析sw22口的鏈路開銷值。2口的cost of path的值爲19加上sw319,即是38.同理分析sw2sw3的其它接口,所以sw2sw3選擇1口作爲根端口。
如果開銷值一樣,就比較發送BPDU的橋ID。例如:sw4的端口12,由於到根網橋的鏈路開銷一樣,所以現在比較發送BPDU的橋ID,從1口接受到發送的橋ID比較小,所以1是根端口。
如果開銷值和發送BPDU的橋ID都一樣,那就比較發送BPDU端口ID字段。例如sw512端口,由於BPDUsw4發送過來的,所以看sw4的端口號,34小,所以和3相連的sw5端口2是根端口(注意這裏不是端口1,因爲要看發送BPDU的端口號)。
       總結:一個交換機只有一個根端口。

3.指定端口的選舉。

1)根橋上的端口都是指定端口。(根橋要向外發BPDU和數據,所以一定端口一定都是指定端口)
2)根端口對應的都是指定端口。
3)其他的選擇跟選根端口的原則基本一樣。但是第二步,開銷值一樣時,選擇橋ID的時候不一樣。
這裏的橋ID是本交換機的橋ID。其實指的也是發送BPDU的橋ID
例如:sw2sw32端口,因爲選擇的指定端口是用來轉發BPDU的,所以比較後,sw2的橋ID比較低,成爲指定端口。
總結:一個網段上,只有一個指定端口。

4.非指定端口。

除了上述說的,剩下的端口就是非指定端口,也就是要被阻塞掉的端口。

【小小總結】

 

STP防止環路的機制是將某些端口阻塞掉,。選根端口,就是選路徑,選指定端口就是決定要在網段上要將兩個口的哪個口給阻塞掉,從而達到目的。
關於STP的目的是防環路還是爲了冗餘的理解:

STP是爲了更好地冗餘。兩個方面來理解:
1)環路產生的原因的是冗餘。
2)後面發展RSTPMSTP都不僅僅是爲了防環路,如果是的話,802.1D就可以了。引用第一段的話,STP協議的本質就是實現在交換網絡中鏈路的備份和負載的分擔,也就是爲了更好的冗餘。

 

友情提示:

1.根據發送的BPDU來判斷,只有根網橋才能發送BPDU

2.理解根端口和指定端口的區別,根端口是用來接受BPDU信息,而指定端口是用來轉發BPDU等信息的,一個是接受方,一個是發送方,所以當鏈路開銷一樣時,在選擇指定端口和根端口時候是相反的。

 

最後囉唆一下,“我們只看BPDU“。 浩哥這話真是經典。

 

 

 

                    

 

 

 

二〇〇九年八月六日

wzhj132

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章