一種增強rstp中故障快速收斂的方法
2023-05-22 02:59:06
一種增強rstp中故障快速收斂的方法
【專利摘要】本發明公開了一種增強RSTP中故障快速收斂的方法,在發生鏈路故障時,設備之間通過3個BPDU報文交互就可恢復鏈路,無需等待消息老化,大大減少了故障收斂時間,可以滿足實際應用中收斂時間必須在1s以內的要求。
【專利說明】一種增強RSTP中故障快速收斂的方法
【技術領域】
[0001]本發明涉及計算機網絡通訊【技術領域】,尤其涉及一種增強RSTP (Rapid SpanningTree Protocol,快速生成樹協議)中故障快速收斂的方法。
[0002]
【背景技術】
[0003]在標準RSTP 中(參考標準文檔:ANSI/IEEE Std 802.1D, 1998Edition.「Part 3: Media Access Control (MAC) Bridges」.1998 與 IEEE Std802.lw-2001.「 Part 3: Media Access Control (MAC) BridgesAmendment 2: RapidReconfiguration」.2001:6-14 ),多臺設備組成環形拓撲結構,在不同的鏈路故障時,收斂時間會有很大的差異,有些故障的收斂時間很長,無法滿足快速收斂的要求。
[0004]參閱圖1,為一個典型的環形結構拓撲示意圖,假設3臺設備A,B,C (以下簡稱
A,B, C)生成樹優先級A小於B小於C,在生成樹選舉完成之後,A被選為根橋(Root),C上與B相連的埠為替換埠(Alternate Port),生成樹狀態為阻塞狀態(Discarding),當以下兩種不同的鏈路故障:
1.如圖2所示,如果A與C之間的鏈路斷開,替換埠會切換成根埠(Root Port),並進入轉發狀態(Forwanding),收斂時間很小,且無需報文交互。
[0005]2.如圖3所示,如果A與B之間的鏈路斷開,B會選自己為根橋,並發送根橋信息為自己的BPDU (Bridge Protocol Data Unit,網橋協議數據單元),C的替換埠只有等消息老化(Message Age老化時間為3倍hello time, hello time是根發送BPDU的間隔),3倍hello time之後仍沒有收到根橋或指定橋(Designated Bridge)的BPDU,此時C選舉的根橋為A,而B發出BPDU的根橋信息為B自己,C會作為更差的報文丟棄之後,通過重新選舉,根埠變成指定埠(Designated Port), C再與B通過報文協商(提議-同意機制),快速進入轉發狀態。這樣A和B之間的收斂時間最大可能需要3倍hello time,會多達幾秒。無法滿足實際應用的需要,實際應用中要求收斂時間必須在Is以內。
[0006]以上兩種故障的恢復過程類似,第一種故障收斂很快,B和C之間故障和恢復的收斂時間也很快,故不在本發明考慮範圍之內。本發明主要為了解決上述第二種故障(如圖3)中收斂時間過長的問題,以滿足任意點故障均可快速收斂的要求。現有方法處理第二種故障收斂的方法如下:
1.B發現自己的根埠斷開,將根埠切換成指定埠,進行重新選舉,會選舉自己為根橋,並開始從所有埠發送BPDU (根信息為B,若埠斷開則不發)。
[0007]2.C在收到此BTOU,發現在替換埠收到了更差的Brou,將報文丟棄,並回應更優的BPDU (根橋信息為A)。
[0008]3.C的替換埠在3倍hello time沒有收到根橋的BPDU(報文根橋信息為A,指定橋為B),信息老化定時器超時,進行重新選舉,C的根埠沒有變化,替換埠在選舉完成後變成了指定埠,同時向B發送BPDlK根橋為A,指定橋為C)。由於之前的替換埠變成指定埠,埠狀態仍為阻塞狀態,發送的BPDU中Proposal位被置為1.4.B在收到C的BPDU,發現比自己優,收包埠選舉為根埠,同時發現報文中Proposal位被置為1,通過RSTP標準中的「提議-同意機制」,B的根埠立即進入轉發狀態,並回應C置Agreement位為I的BPDU.5.C收到B回應的Agreement位為I的BPDU之後,收包埠立即進入轉發狀態。
[0009]通過上述交互過程,A與B恢復通訊,整個過程中需要C的替換埠 Message Age定時器超時之後才能觸發重新選舉,耗時比較久,一般為幾秒,很難滿足實際應用的需求。
【發明內容】
[0010]本發明所要解決的技術問題是提供一種流程處理更快速的增強RSTP中故障快速收斂的方法,本發明無需等待消息老化,大大減少了故障收斂時間,從而可滿足用戶對快速收斂的需求。
[0011]為了解決上述技術問題,本發明採用了以下技術方案:
在多臺設備組成的環形拓撲結構中,發生鏈路故障時,要滿足快速收斂的要求而減少收斂時間,包括以下步驟:
A、上遊設備發現自己的根埠已斷開,重新選舉,原來的根埠變成指定埠,選舉自己為根橋,並開始從所有埠定時發送根橋信息為自己的BPDU報文,若埠斷開則不發;
B、下遊設備的替換埠收到BPDU報文,判斷是否是收到更差的BPDU報文,如果是,則執行步驟C;如果不是,則執行步驟D ;
C、立即進行重新選舉,替換埠變成指定埠,同時發Proposal位為I的BPDU報文;
D、更新MessageAge定時器;
E、上遊設備判斷是否收到回應的BPUD報文,如果是,則執行步驟F;如果不是,則執行步驟G;
F、判斷收到BPUD報文信息是否比自己優,如果是,則執行步驟H;如果不是,則執行步
驟I;
G、通過Forward Delay 定時器老化,切換端 口狀態:Discarding->Learning->Forward
ing ;
H、收包埠被選舉為根埠,若BPUD報文中Proposal位為I,則回應Agreement位為I的BPDU報文,同時將根埠以外的指定埠置成Discarding狀態;
1、若BPUD報文中的Agreement位為1,則埠立即置成Forwarding狀態。
[0012]通過與現有方法對比可以發現,本發明的流程處理更快速,無需等待Message Age定時器老化,大大減少了收斂時間,收斂時間一般為幾十ms到幾百ms,可以滿足實際應用中收斂時間必須在Is以內的要求。
[0013]在結合附圖閱讀本發明的實施方式的詳細描述後,本發明的特點和優點將變得更加清楚。
【專利附圖】
【附圖說明】
[0014]
圖1是環形結構拓撲示意圖; 圖2是第一種鏈路斷開狀態的拓撲示意圖;
圖3是第二種鏈路斷開狀態的拓撲示意圖;
圖4是步驟SI的拓撲不意圖;
圖5是步驟S2的拓撲示意圖;
圖6是步驟S3的拓撲示意圖;
圖7是步驟S4的拓撲示意圖;
圖8是本發明的方法流程圖。
[0015]
【具體實施方式】
[0016]下面以一個實施方式對本發明作進一步詳細的說明,但應當說明,本發明的保護範圍不僅僅限於此。
[0017]在標準RSTP中,接收到BPDU報文時,只處理更優的BPDU (見IEEE Std 802.1D中函數 received_conf ig_bpdu (port_no, config)),而更差的 BPDU 則丟棄。
[0018]在一個運行生成樹的網絡中,根橋信息是由根橋向下遊設備傳遞,根橋是上遊設備,與之相連的其他設備為它的下遊設備,其他相鄰的設備中離根橋近的為上遊設備,遠的為下遊設備,下遊設備再向他們的下遊設備傳遞,一級一級的擴散。如果某臺下遊設備在根埠或者替換埠(這兩種類型的埠才會收到根的BPDU報文)收到更差的BPDU報文,這表明根橋或者指定橋已經發生變化,應該重新選舉,及時更新根埠變化的信息。當根埠斷開,也一樣需要重新選舉。依照上述可以改進的處理流程,當出現圖3所示的故障時,可採用以下步驟:
51.如圖4所示,B發現自己的根埠斷開,將重新選舉,原來的根埠變成指定埠,會選舉自己為根橋,並開始從所有埠定時發送根橋信息為自己的BPDU報文,若埠斷開則不發;
52.如圖5所示,C在收到B的BPDU報文後,發現替換埠收到了更差的BPDU報文,立即進行重新選舉,由於A與C之間的鏈路正常,C的根埠沒有變化,替換埠在選舉完成後變成了指定埠,同時向B發出根橋信息為A,指定橋為C的BPDU報文。由於之前的替換埠變成指定埠,埠狀態仍為阻塞狀態,發送BPDU報文時會將Proposal位置為I ;
S3.如圖6所示,B在收到C回應的BPDU報文後,發現比自己優,進行重新選舉,收包埠被選舉為根埠,由於報文中Proposal位被置為I,通過RSTP標準中的「提議-同意機制」(IEEE Std 802.lw-2001),B的根埠在其他指定埠同步完之後,立即進入轉發狀態,並回應C置Agreement位為I的BPDU。
[0019]S4.如圖7所示,C收到B回應的Agreement位為I的BPDU之後,收包埠立即進入轉發狀態。
[0020]通過上述交互過程,A與B恢復通訊,由於整個交互過程中B與C只通過3個BPDU交互就恢復鏈路,耗時極短,大大提高了收斂性能,收斂時間一般為幾十到幾百ms,不同的型號設備對埠斷開的感知和上報的時間會有差異,導致收斂時間不一致,最大一般都不會超過ls,完全可以滿足用戶對快速收斂的要求。
[0021]本發明的改進對於其他生成樹的拓撲結構以及MSTP同樣適用。[0022]雖然結合附圖描述了本發明的實施方式,但是本領域的技術人員可以在所附權利要求的範圍之內作出各種變形或修改,只要不超過本發明的權利要求所描述的保護範圍,都應當在本發明的保護範圍之內。
【權利要求】
1.一種增強RSTP中故障快速收斂的方法,其特徵在於:在多臺設備組成的環形拓撲結構中,發生鏈路故障時,需要儘快恢復鏈路,包括以下步驟: A、上遊設備發現自己的根埠已斷開,重新選舉,原來的根埠變成指定埠,選舉自己為根橋,並開始從所有埠定時發送根橋信息為自己的BPDU報文,若埠斷開則不發; B、下遊設備的替換埠收到BPDU報文,判斷是否是收到更差的BPDU報文,如果是,則執行步驟C;如果不是,則執行步驟D ; C、立即進行重新選舉,替換埠變成指定埠,同時發Proposal位為I的BPDU報文; D、更新MessageAge定時器; E、上遊設備判斷是否收到回應的BPUD報文,如果是,則執行步驟F;如果不是,則執行步驟G;F、判斷收到BPUD報文信息是否比自己優,如果是,則執行步驟H;如果不是,則執行步驟I;G、通過Forward Delay 定時器老化,切換端 口狀態:Discarding->Learning->Forwarding ; H、收包埠被選舉為根埠,若BPUD報文中Proposal位為I,則回應Agreement位為I的BPDU報文,同時將根埠以外的指定埠置成Discarding狀態; 1、若BPUD報文中的Agreement位為1,則埠立即置成Forwarding狀態。
【文檔編號】H04L12/24GK103840965SQ201310490135
【公開日】2014年6月4日 申請日期:2013年10月18日 優先權日:2013年10月18日
【發明者】柳亮 申請人:深圳市新格林耐特通信技術有限公司