一種檢測環路的方法及裝置的製作方法
2023-09-21 04:39:25 3
專利名稱:一種檢測環路的方法及裝置的製作方法
技術領域:
本發明涉及環路檢測技術領域,特別是指一種檢測環路的方法及裝置。
背景技術:
生成樹協議(STP,Spanning Tree Protocol)是一系列協議的泛稱,該系列協議包括普通生成樹協議(STP),快速生成樹協議(RSTP)以及多生成樹協議(MSTP),同時還包括某些廠商的私有生成樹協議,如PVST(Per-VLAN Spanning Tree)等。本文闡述的技術適用於STP協議系列中的所有的生成樹協議。
生成樹協議只能保護支持生成樹協議的設備在啟動了生成樹協議時不成環路,而無法避免一些不支持生成樹協議或者支持生成樹協議但是沒有啟動生成樹協議的設備間存在的環路。這裡,將支持生成樹協議並且啟動了生成樹協議的設備稱為生成樹協議設備,除此之外的其他設備稱為非生成樹協議設備。
參見圖1,其為生成樹協議設備與非生成樹協議設備之間組網的一種實例的示意圖。本例中,設備10,20,30都是生成樹設備,設備40為非生成樹設備,LAN 50為一個區域網;圖中不同設備之間連線上的標號表示鏈路號,如設備10和設備30之間連線上的數字1表示鏈路1,設備10和設備20之間連線上的數字2表示鏈路2,設備40和區域網(LAN)50之間連線上的數字5表示鏈路5,......,其餘依此類推;每個設備中與鏈路相連處的標號表示埠號,如設備10通過埠11、鏈路2與設備20的埠21相連,設備30通過埠32、鏈路4與設備40的埠43相連,等等;且假設所有設備都在同一虛擬區域網(VLAN)內。
設備10,20,30之間的環路可以通過應用生成樹協議的計算而避免,然而在設備40下連的網絡中,由於沒有生成樹協議作用,將會形成設備40,鏈路5,LAN 50,鏈路6,再到設備40的雙向環路。這個環路的產生的廣播風暴報文還將衝擊其他相連的設備及網絡,如圖中設備10,20,30的環網中也將會充滿設備40所發的廣播報文,從而影響正常的業務。
發明內容
有鑑於此,本發明的目的在於提供一種檢測環路的方法及裝置,使由生成樹協議設備和非生成樹協議設備組成的網絡中能夠檢測到環路,避免廣播風暴報文的影響。
為達到上述目的,本發明的技術方案是這樣實現的一種檢測環路的方法,包括以下步驟a、啟用環路檢測設備的埠周期發送用於環路檢測的報文,並進行偵聽;b、步驟a所述埠判斷接收到的用於環路檢測的報文是否為本埠發送的環路檢測報文,若是,則將本埠置為阻塞狀態,否則重複執行步驟b;步驟b所述將本埠置為阻塞狀態之後,進一步包括啟動預設的定時器,然後執行步驟c;c、判斷定時器是否超時,若是,則將所述埠置為開放狀態,然後重複執行步驟b,否則執行步驟d;d、判斷定時器超時之前是否接收到本埠發送的用於環路檢測的報文,若是,則丟棄該報文,重新啟動所述定時器,然後再執行步驟c;否則,丟棄該報文後,直接執行步驟c。
步驟a所述啟用環路檢測設備為生成樹協議設備,或非生成樹協議設備。
所述用於環路檢測的報文為橋協議數據單元BPDU報文。
步驟b所述判斷是根據接收到的報文中的發送橋標識ID、發送埠號、以及是否是從本橋本埠發送的標識進行判斷的。
一種檢測環路的裝置,包括環路檢測的報文發送單元,用於在啟用環路檢測設備的埠上周期發送用於環路檢測的報文;環路檢測的報文偵聽單元,用於偵聽本埠接收到用於環路檢測的報文,根據接收到的報丈是否是本埠發送的環路檢測的報文,確定是否給埠狀態設置單元發送指示信號;埠狀態設置單元,用於根據接收到指示信號,將本埠置為阻塞或開放狀態。
所述裝置進一步包括定時器單元,用於根據來自環路檢測的報文偵聽單元的啟動信號進行啟動並計時,或根據來自環路檢測的報文偵聽單元的刷新信號重新啟動,再進行計時操作。
所述環路檢測的報文偵聽單元,進一步用於在定時器單元未啟動,且確定接收到的報文是本埠發送的環路檢測的報文之後,給定時器單元發送啟動信號,所述給埠狀態設置單元發送的指示信號是用於設置埠為阻塞狀態的指示信號。
所述環路檢測的報文偵聽單元,進一步用於在定時器單元已啟動,且確定接收到的報文是本埠發送的環路檢測的報文之後,給定時器單元發送刷新信號,丟棄該報文,不給所述埠狀態設置單元發送指示信號。
所述環路檢測的報文偵聽單元,進一步用於在定時器單元已啟動,且確定接收到的報文是非本埠發送的環路檢測的報文之後,丟棄該報文,不給所述埠狀態設置單元發送指示信號。
所述環路檢測的報文偵聽單元,進一步用於在定時器單元已超時,給埠狀態設置單元發送用於設置埠為開放狀態的指示信號。
所述啟用環路檢測設備為生成樹協議設備,或非生成樹協議設備。
所述用於環路檢測的報文為橋協議數據單元BPDU報文。
本發明的關鍵是,在埠接收到自身發送的用於環路檢測的報文後,將本埠設為阻塞狀態,將廣播風暴的影響局限在一個很小的範圍內,因而避免了廣播風暴報文所產生的影響。本發明進一步包括啟動一定時器,在定時器超時之前,判斷所有接收到用於環路檢測的報文的來源,如果此時接收到的用於環路檢測的報文來自本埠,則刷新定時器,重新計時,之後丟棄該報文,如果此時接收到的用於環路檢測的報文並非來自本埠,則直接丟棄該報文;待定時器超時後,再將本埠設為開放狀態。應用本發明,可以避免廣播風暴對正常業務的影響,提高了用戶的滿意度。本發明的方法可以與STP配合使用,互不影響。同時,本發明也可以避免由於光纖檢測所形成的環路對網絡造成的影響。
圖1是生成樹協議設備與非生成樹協議設備之間組網的一種實例的示意圖;圖2是應用本發明實現環路檢測的流程示意圖;圖3是應用本發明的實現環路檢測的狀態遷移示意圖。
具體實施例方式
下面對本發明進行進一步地詳細說明。
本發明的思路是在埠接收到自身發送的用於環路檢測的報文後,將本埠設為阻塞狀態,將廣播風暴的影響局限在一個很小的範圍內,因而避免了廣播風暴報文所產生的影響。本發明進一步包括啟動一定時器,在定時器超時之前,判斷所有接收到用於環路檢測的報文的來源,如果此時接收到的用於環路檢測的報文來自本埠,則刷新定時器,重新計時,之後丟棄該報文,如果此時接收到的用於環路檢測的報文並非來自本埠,則直接丟棄該報文。待定時器超時後,再將本埠設為開放狀態。
參見圖2,其是應用本發明實現環路檢測的流程示意圖。
步驟201,啟用環路檢測設備的埠周期發送用於環路檢測的報文,並進行偵聽。上述用於環路檢測的報文為橋協議數據單元(BPDU)報文。
步驟202,根據接收到的BPDU報文中的發送橋標識(發送橋ID)、發送埠號、以及是否從本橋本埠發送的標識,判斷接收到的BPDU報文是否為本埠發送的BPDU報文,若是,則執行步驟203,否則重複執行本步驟。
步驟203,將本埠置為阻塞(Blocking)狀態。本步驟具體實現時可以有多種實現方法,如將用於表示埠為Blocking狀態的標誌位bControl置為True,當然,還可以有其他實現方式,在此並不做限定。
步驟204,啟動預設的保持(Hold)定時器,並保持一段時間。
步驟205,判斷Hold定時器是否超時,若超時,則執行步驟209;若未超時,則執行步驟206。
步驟206,判斷是否接收到本埠發送的BPDU報文,也即在定時器超時之前判斷是否接收到本埠發送的BPDU報文,若是,則執行步驟208,否則執行步驟207。
步驟207,丟棄該接收到的BPDU報文,然後執行步驟205。也就是說,在定時器啟動並計時狀態下,將接收到的非本埠發送的BPDU報文直接丟棄。
步驟208,丟棄該接收到的BPDU報文後,重新啟動Hold定時器,然後再執行步驟205。也就是說,在Hold定時器啟動並計時狀態下,將接收到的本埠發送的BPDU報文丟棄,並重新啟動定時器。
通過步驟207和208可知,在Hold定時器超時之前,判斷所有接收到的BPDU報文的來源,如果此時接收到的BPDU報文來自本埠,則刷新定時器,重新計時,之後丟棄該報文;如果此時接收到的BPDU報文並非來自本埠,則直接丟棄該報文。
步驟209,將本埠置為開放狀態,例如,將標誌位bControl置為False,然後執行步驟202。
從上面的實現流程可以看出,本發明的環路檢測方法主要用於啟用環路檢測的設備檢測其下面所連接的網絡中是否存在環路,而並不是像現有的STP協議那樣,用於檢測幾個設備埠之間是否存在環路,因此,本發明中的啟用環路檢測設備既可以是生成樹協議設備,也可以是非生成樹協議設備。比如,如果圖1中的設備30運用本發明所述方法,就可檢測出其下連接的設備40和LAN50所構成的網絡中是否存在環路,當然,如果圖1中的設備30為非生成樹協議設備,其仍然可以按照上述方法實施操作。
下面從狀態機的角度對本發明再進行說明。
參見圖3,其是應用本發明的實現環路檢測的狀態遷移示意圖。
1、流通(CURRENT)狀態狀態機初始化之後進入此態;如果Hold超時,則進入釋放(RELEASE)狀態;如果收到BPDU,則進入接收(RECEIVED)狀態;2、RECEIVED根據BPDU的發送橋標識,發送埠號,是否從本橋本埠發送的標識,分析收到的BPDU;如果不是本埠發出,則返回到CURRENT;
如果是本埠發出,且bControl表明本埠已被環路檢測控制,則丟棄該BPDU,刷新Hold定時器,返回到CURRENT;如果是本埠發出,且bControl表明本埠未被環路檢測控制,則丟棄該BPDU,進入到修改(DETECTED)狀態;3、DETECTED啟動Hold定時器,將本埠遷移到阻塞(Blocking)態;置bControl為True,表示此時本埠被環路檢測控制並阻塞;並無條件(UCT)進入到CURRENT。
4、RELEASE此狀態中,將本埠遷移回開放狀態;復位bControl,表示此埠未被環路檢測控制;無條件(UCT)進入到CURRENT。
本發明同時還提供了一種檢測環路的裝置,用於包括生成樹協議設備和非生成樹協議設備組成的網絡中,該裝置包括環路檢測的報文發送單元、環路檢測的報文偵聽單元和埠狀態設置單元,該裝置還可以進一步包括定時器單元,其中,上述環路檢測的報文發送單元,用於在啟用環路檢測設備的埠上周期發送用於環路檢測的報文;該啟用環路檢測設備可以是生成樹協議設備,也可以是非生成樹協議設備。
上述環路檢測的報文偵聽單元,用於偵聽本埠接收到用於環路檢測的報文,確定接收到的報文是本埠發送的環路檢測的報文之後,給埠狀態設置單元發送啟動信號,丟棄該報文。
當裝置中包含定時器單元時,上述環路檢測的報文偵聽單元,進一步用於在定時器單元未啟動,且確定接收到的報文是本埠發送的環路檢測的報文之後,給定時器單元發送啟動信號;或者,在定時器單元已啟動,且確定接收到的報文是本埠發送的環路檢測的報文之後,給定時器單元發送刷新信號,或者,在定時器單元已啟動,且確定接收到的報文是非本埠發送的環路檢測的報文之後,丟棄該報文;或者,在定時器單元已超時,給埠狀態設置單元發送重置信號。也即,在定時器單元未啟動,且確定接收到的報文是本埠發送的BPDU報文之後,給埠狀態設置單元及定時器單元發送啟動信號;在定時器單元已啟動,且確定接收到的報文是本埠發送的BPDU報文之後,給定時器單元發送重啟信號,並丟棄該報文;在定時器單元已啟動,且確定接收到的報文是非本埠發送的BPDU報文之後,丟棄該報文;在定時器單元已超時,給埠狀態設置單元發送重置信號。
上述埠狀態設置單元,用於根據接收到啟動信號,將本埠置為阻塞狀態;或者,用於根據接收到的重置信號,將本埠設置為開放狀態;上述定時器單元,用於根據接收到啟動信號啟動並進行計時操作,或根據接收到的刷新信號重新啟動,再進行計時操作。
上述用於環路檢測的報文為橋協議數據單元BPDU報文。
也就是說,環路檢測的報文偵聽單元,用於偵聽本埠接收到用於環路檢測的報文,根據接收到的報文是否是本埠發送的環路檢測的報文,確定是否給埠狀態設置單元發送指示信號;埠狀態設置單元,用於根據接收到指示信號,將本埠置為阻塞或開放狀態。
在定時器單元未啟動,且確定接收到的報文是本埠發送的環路檢測的報文之後,給定時器單元發送啟動信號,所述給埠狀態設置單元發送的指示信號是用於設置埠為阻塞狀態的指示信號;或者,在定時器單元已啟動,且確定接收到的報文是本埠發送的環路檢測的報文之後,給定時器單元發送刷新信號,丟棄該報文;或者,在定時器單元已啟動,且確定接收到的報文是非本埠發送的環路檢測的報文之後,丟棄該報文;或者,在定時器單元已超時,給埠狀態設置單元發送用於設置埠為開放狀態的指示信號。
應用本發明,可以將廣播風暴的影響局限在一個很小的範圍內,因而避免了對對正常業務的影響,提高了用戶的滿意度。本發明的方法可以與STP配合使用,互不影響。
再有,進行實際的組網時,在存在光纖的網絡中,為了檢查光纖是否能正常使用,通常會將光纖的兩端直接連到某個光模塊的發端和收端,也即是tx和rx互聯,如果光纖是正常的,則埠側的鏈路狀態燈變亮。但是此時埠上就存在了臨時環路,如果網絡中的設備沒有應用本發明的檢測方法,那麼會導致廣播報文的泛濫,進而影響整個網絡。而如果網絡中有設備開啟了本發明的環路檢測,就可以避免這種情況。可見,本發明還可以避免由於光纖檢測所形成的環路對網絡造成的影響。
本發明適用於某設備如圖1中的設備30檢測其下連接的網絡中是否存在環網的情況,並且,由於本發明的檢測過程是某埠檢測是否接收到來自本埠的用於環路檢測的報文,因而其屬於單埠檢測範圍。
以上所述僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍。凡在本發明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發明的保護範圍內。
權利要求
1.一種檢測環路的方法,其特徵在於,包括以下步驟a、啟用環路檢測設備的埠周期發送用於環路檢測的報文,並進行偵聽;b、步驟a所述埠判斷接收到的用於環路檢測的報文是否為本埠發送的環路檢測報文,若是,則將本埠置為阻塞狀態,否則重複執行步驟b;
2.根據權利要求1所述的方法,其特徵在於,步驟b所述將本埠置為阻塞狀態之後,進一步包括啟動預設的定時器,然後執行步驟c;c、判斷定時器是否超時,若是,則將所述埠置為開放狀態,然後重複執行步驟b,否則執行步驟d;d、判斷定時器超時之前是否接收到本埠發送的用於環路檢測的報文,若是,則丟棄該報文,重新啟動所述定時器,然後再執行步驟c;否則,丟棄該報文後,直接執行步驟c。
3.根據權利要求1所述的方法,其特徵在於,步驟a所述啟用環路檢測設備為生成樹協議設備,或非生成樹協議設備。
4.根據權利要求1所述的方法,其特徵在於,所述用於環路檢測的報文為橋協議數據單元BPDU報文。
5.根據權利要求1或4所述的方法,其特徵在於,步驟b所述判斷是根據接收到的報文中的發送橋標識ID、發送埠號、以及是否是從本橋本埠發送的標識進行判斷的。
6.一種檢測環路的裝置,其特徵在於,包括環路檢測的報文發送單元,用於在啟用環路檢測設備的埠上周期發送用於環路檢測的報文;環路檢測的報文偵聽單元,用於偵聽本埠接收到用於環路檢測的報文,根據接收到的報文是否是本埠發送的環路檢測的報文,確定是否給埠狀態設置單元發送指示信號;埠狀態設置單元,用於根據接收到指示信號,將本埠置為阻塞或開放狀態。
7.根據權利要求6所述的裝置,其特徵在於,所述裝置進一步包括定時器單元,用於根據來自環路檢測的報文偵聽單元的啟動信號進行啟動並計時,或根據來自環路檢測的報文偵聽單元的的刷新信號重新啟動,再進行計時操作。
8.根據權利要求7所述的裝置,其特徵在於,所述環路檢測的報文偵聽單元,進一步用於在定時器單元未啟動,且確定接收到的報文是本埠發送的環路檢測的報文之後,給定時器單元發送啟動信號,所述給埠狀態設置單元發送的指示信號是用於設置埠為阻塞狀態的指示信號。
9.根據權利要求7所述的裝置,其特徵在於,所述環路檢測的報文偵聽單元,進一步用於在定時器單元已啟動,且確定接收到的報文是本埠發送的環路檢測的報文之後,給定時器單元發送刷新信號,丟棄該報文,不給所述埠狀態設置單元發送指示信號。
10.根據權利要求7所述的裝置,其特徵在於,所述環路檢測的報文偵聽單元,進一步用於在定時器單元已啟動,且確定接收到的報文是非本埠發送的環路檢測的報文之後,丟棄該報文,不給所述埠狀態設置單元發送指示信號。
11.根據權利要求7所述的裝置,其特徵在於,所述環路檢測的報文偵聽單元,進一步用於在定時器單元已超時,給埠狀態設置單元發送用於設置埠為開放狀態的指示信號。
12.根據權利要求6至11任一所述的裝置,其特徵在於,所述啟用環路檢測設備為生成樹協議設備,或非生成樹協議設備。
13.根據權利要求6至11任一所述的裝置,其特徵在於,所述用於環路檢測的報文為橋協議數據單元BPDU報文。
全文摘要
本發明公開了一種檢測環路的方法及裝置,關鍵是,在埠接收到自身發送的用於環路檢測的報文後,將本埠設為阻塞狀態,將廣播風暴的影響局限在一個很小的範圍內,因而避免了廣播風暴報文所產生的影響。應用本發明,避免了廣播風暴對正常業務的影響,提高了用戶的滿意度。本發明的方法可以與STP配合使用,互不影響。同時,本發明也可以避免由於光纖檢測所形成的環路而對網絡造成影響。
文檔編號H04L29/06GK1845512SQ20061008108
公開日2006年10月11日 申請日期2006年5月25日 優先權日2006年5月25日
發明者周萬, 徐鵬飛, 楊金勇 申請人:杭州華為三康技術有限公司