閱讀952 返回首頁    go 技術社區[雲棲]


網絡子係統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

  上一篇:go 常見麵試題匯總
  下一篇:go VB 中chr(10)、chr(13)和vblf、vbcr、vbcrlf的分別