952
技術社區[雲棲]
網絡子係統25_生成樹協議
//參考 深入理解linux網絡技術內幕 //生成樹協議(Spanning Tree Protocol, STP)是用於消除環路拓撲的分布式算法。 //生成樹協議的基本元素: // 1.鏈路開銷,當鏈路沒有指定開銷,或者都設置成相同開銷時,一個節點到達根的距離用網絡躍點數來測量。 // 2.BPDU,STP通過讓各個網橋之間交換稱為網絡協議數據單元(BPDU)的特殊幀來傳遞配置信息。 // 3.根網橋,唯一能產生BPDU的網橋,其他網橋隻有在接收到BPDU時才會傳輸BPDU(當網橋第一次加入時,會認為 // 自己就是根網橋)。 // 4.指定網橋,每個LAN都有一個指定網橋,它成為該LAN中所有主機和網橋到達根節點的網橋。 // 5.端口狀態,由STP或手工設置網橋端口可以處於的狀態,見狀態轉換圖。 // 6.端口角色: // 6.1根端口,每個網橋設備隻能有一個根端口,能到達根網橋具有最高優先級的端口,被選為根端口。 // 6.2指定端口,每個網橋設備可以有多個指定端口,但沒有LAN隻能有一個指定端口,網橋設備通過其指定端口到達其他LAN。 // 根端口由根網橋使用,給各個lan發送信息,指定端口由lan使用,通過其向根網橋發送信息。 // 7.網橋id,每個網橋都會被指派一個id,8字節,分兩部分,低6字節為其某個端口的mac地址,高2字節為可配置的優先級。 // 8.端口id,每個端口都會被指派一個id,2字節,分兩部分,設置端口號的方式和具體協議有關,且其值隻在網橋本地有意義。 // 9.端口開銷,開銷越低,表示該端口越應當被優先使用。
//網橋id,端口id

//網橋協議數據單元(BPDU)類型: // 1.配置BPDU,用於定義無環路拓撲, // 1.1發送時機: // 1.1.1 根網橋會運行一個定時器(Hello定時器),到期後觸發配置BPDU的傳輸,或者當網橋加電時,會認為自己是根網橋, // 設置所有端口為指定端口,然後發送配置BPDU. // 1.1.2 非根網橋隻有在應答其根端口收到的BPDU才會生成BPDU,生成的BPDU中傳輸者的網橋id和端口id會被該網橋替換, // 該網橋會把開銷更新為其接收到的開銷加上其本地網橋中接收BPDU的端口的開銷之和。 // 1.1.3 無論網橋是否為根網橋,當一台網橋接收到一個BPDU,如果其優先級向量低於該網橋在其端口所用的,那麼網橋會 // 以自己的(較高優先級)的信息應答;當一台網橋接收到一個TCN BPDU,會立刻發出一個設有特殊標示的配置BPDU作為應答。 // 1.1.4 當非根網橋,由於添加或刪除端口導致網橋配置信息的改變,使網橋從非根網橋變為根網橋,則在所有指定端口上, // 發送配置BPDU。 // 2.TCN(拓撲變化通知) BPDU,當檢測到拓撲變化時,網橋用於通知根網橋。
//配置BPDU的優先級向量: // 包含四個元素,<根網橋ID,根路徑開銷,網橋ID,端口ID>,長度為22字節,值越小,表明網橋在拓撲中越重要。 //拓撲中配置更新的順序:選擇根網橋,選擇根端口,選擇指定端口
//STP中涉及到的定時器: //1.網橋使用的定時器: //定時器 默認值(s) 取值範圍(s) //Hello 2 1~10 //Topology Change 轉發延遲+最大生存期 未定義 //TCN Hello時間 未定義 //Address Aging 300或轉發延遲 未定義 //2.端口使用的定時器: //定時器 默認值(s) 取值範圍(s) //Message Aging 20 6~40 //Forward Delay 15 4~30 //Hold 1 未定義 //並非所有定時器都可由用戶配置,有些定時器使用相同的配置(TCN和Hello) //1.網橋使用的定時器: // Hello,用於定期產生配置BPDU,隻有根網橋使用該定時器。 // TCN,由檢測到拓撲變化而且必須通知根網橋的網橋設備使用。 // Topology Change,由根網橋使用,以便記住要在其配置BPDU中設定一個特殊標識,此標識用於將拓撲變化通知其他網橋。 // Aging,用於從轉發數據庫清除無效的地址,無論其是否啟用STP。 //2.端口使用的定時器: // Message Aging,BPDU所攜帶的信息生存期是有限的,該定時器用於強製執行這個生存期,每當端口上接收了一個BPDU後, // 該定時器就會重啟,隻要接收到一個BPDU,就會對它的消息生存期和網絡允許的最大生存期做一比較,如果前者大於後者, // 該幀就會被丟棄。其在非指定端口上運行,在沒有任何問題的穩定環境下,該定時器絕不會到期,但當根網橋無法產生BPDU, // 或者接收到的BPDU已過期,此定時器就會到期,當此定時器到期時,該端口就會被重新啟動,被分配為指定角色。 // Forward Delay,該定時器負責狀態轉移,從監聽到學習以及從學習到轉發。

//用戶可配置信息: // 1.網橋和端口優先級 // 2.端口開銷 // 3.端口上運行的定時器
最後更新:2017-04-03 15:22:09