STP基础知识
目錄STPSTP報文格式拓撲變化感知STP的時間參數BPDU的比較原則STP生成樹的過程
STP
STP報文格式
拓撲變化感知
STP的時間參數
STP常用的三個參數是兩秒、十五秒、還有二十秒。
2秒指的是hello時間,是運行了STP的交換機發送配置BPDU的時間間隔,如果修改的話,僅需要在根橋上修改,在根橋上修改完成后,非根橋也自動和根橋對齊的,非根橋是怎么知道的呢?是通過根橋傳過來BPDU當中的字段知道的呀!
15秒指的是轉發延遲,這個延遲指的是兩段時間的延遲,由偵聽狀態到學習狀態需要延遲15秒,從學習狀態到轉發狀態也需要延遲15秒,為什么需要這個延遲呢?通電之后直接轉發他不好嗎?我認為是這樣,如果通電之后直接轉發的話,可能會存在環路,如果等一會兒,等什么呢?等STP計算收斂完成,完成之后指定不會有環路,直接進入轉發狀態而不等STP計算收斂完成的話,就可能會出現環路。也就是說一個被阻塞的接口被選舉成為根接口或指定接口之后,進入轉發狀態之前至少需要經歷30s的時間。
最大生存時間20秒,也就是BPDU的老化時間,其實根接口會一直保存著根橋發過來的BPDU,仿佛這是它最珍貴的東西一樣,這個20秒有什么特殊含義嗎?由于根接口保存的是非根交換機最優的BPDU的,非根交換機會盡量保證它的新鮮感,也就是說根接口保存的BPDU是有老化時間的,如果在老化時間之前又收到BPDU,那老化時間則會被重置,一般都會在2秒左右收到新的BPDU的,所以說20秒的時間是足夠充足了;如果都20秒了,根接口還沒有收到新鮮的BPDU,說明根橋或根橋與自已中間的線路已經掛了,這個時候,根接口就會放棄這個他曾經非常珍惜的BPDU,本性暴露了,根接口喜新厭舊,對舊的,也就是已經超時的BPDU怎么辦呢?就會將各個接口收集到的BPDU進行PK,再選出一個根接口。
受限于這幾個時間的影響,一個接口從阻塞到轉發狀態至少要花費30秒的時間,這還是非常正常的狀態下,其實是有解決辦法的。
BPDU的比較原則
BPDU當中有四字字段非常重要:根橋ID、RPC、網橋ID、接口ID
比較順序:
最小的根橋ID
最小的RPC
最小網橋ID
最小接口ID
最小根橋ID主要用做是網絡當中選舉根橋用的,后面的原則用來選擇根接口以及指定接口。
STP生成樹的過程
第一步:選舉根橋
這一點與人很相似,在學習里的時候覺得自已挺厲害的,和同學相約江湖見面,但出了社會被打擊之后就知道自已啥也不是。
初始情況下都覺得自已是根橋,剛開始兩者發送的BPUD當中根橋都是寫的自已,RPC填的是0,這一點也很好理解呀,自已是根橋,那到達自已的開銷自然就是0嘛!網橋ID就是寫的自已的橋ID,接口ID就是發送該BPDU的接口ID。雙方都會收到對方發送過來的BPDU,SW2收到對方發送過來的BPDU,一看根橋ID當中的優先級就明白了,對方的更小,所以就默認了對方根橋的身份;SW1也會收到SW2的BPDU,一看對方比自已大,說明不如自已,SW1會忽略SW2發送的BPDU,自顧自的2s向外發送BPDU。
第二步:根接口選舉
SW2開始選舉根接口,根接口選舉原則就是比較從哪個接口收到的BPDU更優,SW2收到的BPDU全是SW1發的,所以在根橋ID是比較不出來的,都是一樣的,RPC呢?也是一樣的,橋ID呢?也是一樣的,都是SW1,接下業該比接口ID了,本次案例當中接口優先級是一樣的,那得比接口編號,sw2的3號接口收到的BPDU當中的接口ID更小一些,所以3號接口成為根端口,3號成為根接口之后,會將根橋的BPDU保存,把自已原本的BPDU拿走。
第三步:開始計算
SW2的3號接口(根接口)會幫助剛才跟自已PK的4號接口計算出一個BPDU,怎么計算的呢?會通過3號接口保存的根橋給的BPDU幫助4號接口計算,計算的結果如下:
根橋ID:不變,還是SW1 的根橋ID
RPC:在這里面就要寫入最優BPDU,就是根橋根的BPDU,然后再加上自已(3號接口)到根橋的和,0+20000=20000
橋ID:就是本設備(SW2)的橋ID
接口ID:寫4號接口的接口ID,畢竟是三號接口幫助4號接口,肯定要寫4號接口的接口ID了
用計算出來的BPDU與4號接口收到的BPDU做一個PK,在收到的BPDU當中,根橋ID一樣,RPC一樣嗎?不一樣了,算出來的RPC是20000,而收到的RPC是0,明顯后者更優,于是4號接口就是非指定接口,4號接口仍然保持狀態不變,繼續接收根橋發送來的BPDU,進入阻塞狀態,二層環路打破。
總結
- 上一篇: 六款常见的Linux操作系统推荐
- 下一篇: RGB颜色对照表