生成樹協議STP/RSTP初步介紹

STP(Spanning Tree Protocol)生成樹協議是一種二層管理協議,它通過有選擇性地阻塞網絡冗餘鏈路來達到消除網絡二層環路的目的,同時具備鏈路的備份功能。

  生成樹協議和其他協議一樣,是隨着網絡的不斷髮展而不斷更新換代的。“生成樹協議”是一個廣義的概念,並不是特指IEEE 802.1D中定義的STP協議,而是包括STP以及各種在STP基礎上經過改進了的生成樹協議。

STP/RSTP

  在網絡發展初期,透明網橋的運用。它比只會放大和廣播信號的集線器聰明得多。它的學習能力是把發向它的數據幀的源MAC地址和端口號記錄下來,下次碰到這個目的MAC地址的報文就只從記錄中的端口號發送出去,除非目的MAC地址沒有記錄在案或者目的MAC地址本身就是多播地址纔會向所有端口發送。通過透明網橋,不同的局域網之間可以實現互通,網絡可操作的範圍得以擴大,而且由於透明網橋具備MAC地址學習功能而不會像Hub那樣造成網絡報文衝撞氾濫。

  透明網橋也有它的缺陷,它的缺陷就在於它的透明傳輸。透明網橋並不能像路由器那樣知道報文可以經過多少次轉發,一旦網絡存在環路就會造成報文在環路內不斷循環和增生,出現廣播風暴。

  爲了解決這一問題,後來提出了STP生成樹協議。 中國網管聯盟www.bitscn.com

  STP協議中定義了根橋(RootBridge)、根端口(RootPort)、指定端口(DesignatedPort)、路徑開銷(PathCost)等概念,目的就在於通過構造一棵自然樹的方法達到裁剪冗餘環路的目的,同時實現鏈路備份和路徑最優化。用於構造這棵樹的算法稱爲生成樹算法SPA(Spanning TreeAlgorithm)。

  要實現這些功能,網橋之間必須要進行一些信息的交流,這些信息交流單元就稱爲配置消息BPDU(BridgeProtocol Data Unit)。STP BPDU是一種二層報文,目的MAC是多播地址01-80-C2-00-00-00,所有支持STP協議的網橋都會接收並處理收到的BPDU報文。該報文的數據區裏攜帶了用於生成樹計算的所有有用信息。


生成樹協議的工作過程 中國網管聯盟www_bitscn_com

  1)首先進行根橋的選舉。選舉的依據是網橋優先級和網橋MAC地址組合成的橋ID(Bridge ID),橋ID最小的網橋將成爲網絡中的根橋。在網橋優先級都一樣(默認優先級是32768)的情況下,MAC地址最小的網橋成爲根橋。

  2)接下來,確定根端口,根據與根橋連接路徑開銷最少的端口爲根端口,路徑開銷等於‘1000’除於‘傳輸介質的速率’假設中SW1和跟橋之間的鏈路是千兆GE鏈路,跟橋和SW3之間的鏈路是百兆FE鏈路,SW3從端口1到根橋的路徑開銷的默認值是19,而從端口2經過SW1到根橋的路徑開銷是4+4=8,所以端口2成爲根端口,進入轉發狀態。

3)根橋和根端口都確定之後然後是裁剪冗餘的環路。這個工作是通過阻塞非根橋上相應端口來實現的。

  生成樹經過一段時間(默認值是30秒左右)穩定之後,所有端口要麼進入轉發狀態,要麼進入阻塞狀態。STPBPDU仍然會定時從各個網橋的指定端口發出,以維護鏈路的狀態。如果網絡拓撲發生變化,生成樹就會重新計算,端口狀態也會隨之改變。


  當然生成樹協議還有很多內容,其他各種改進型的生成樹協議都是以此爲基礎的,基本思想和概念都大同小異。

  STP協議給透明網橋帶來了新生。但是它還是有缺點的,STP協議的缺陷主要表現在收斂速度上。

  當拓撲發生變化,新的配置消息要經過一定的時延才能傳播到整個網絡,這個時延稱爲Forward Delay,協議默認值是15秒。在所有網橋收到這個變化的消息之前,若舊拓撲結構中處於轉發的端口還沒有發現自己應該在新的拓撲中停止轉發,則可能存在臨時環路。爲了解決臨時環路的問題,生成樹使用了一種定時器策略,即在端口從阻塞狀態到轉發狀態中間加上一個只學習MAC地址但不參與轉發的中間狀態,兩次狀態切換的時間長度都是Forward Delay,這樣就可以保證在拓撲變化的時候不會產生臨時環路。但是,這個看似良好的解決方案實際上帶來的卻是至少兩倍Forward Delay的收斂時間!

  爲了解決STP協議的這個缺陷,在世紀之初IEEE推出了802.1w標準,作爲對802.1D標準的補充。在IEEE 802.1w標準裏定義了快速生成樹協議RSTP(Rapid Spanning Tree Protocol)。RSTP協議在STP協議基礎上做了三點重要改進,使得收斂速度快得多(最快1秒以內)。

  第一點改進:爲根端口和指定端口設置了快速切換用的替換端口(Alternate Port)和備份端口(Backup Port)兩種角色,當根端口/指定端口失效的情況下,替換端口/備份端口就會無時延地進入轉發狀態。 網管網bitsCN.com

  第二點改進:在只連接了兩個交換端口的點對點鏈路中,指定端口只需與下游網橋進行一次握手就可以無時延地進入轉發狀態。如果是連接了三個以上網橋的共享鏈路,下游網橋是不會響應上游指定端口發出的握手請求的,只能等待兩倍Forward Delay時間進入轉發狀態。 feedom.net

  第三點改進:直接與終端相連而不是把其他網橋相連的端口定義爲邊緣端口(Edge Port)。邊緣端口可以直接進入轉發狀態,不需要任何延時。由於網橋無法知道端口是否是直接與終端相連,所以需要人工配置。

  可見,RSTP協議相對於STP協議的確改進了很多。爲了支持這些改進,BPDU的格式做了一些修改,但RSTP協議仍然向下兼容STP協議,可以混合組網。雖然如此,RSTP和STP一樣同屬於單生成樹。



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