本發(fā)明涉及以太網(wǎng)技術(shù)領(lǐng)域,具體為系統(tǒng)環(huán)路故障的檢測(cè)與處理方法、系統(tǒng)以及EPON終端中應(yīng)用。
背景技術(shù):
系統(tǒng)環(huán)路故障是以太網(wǎng)系統(tǒng)中經(jīng)常會(huì)出現(xiàn)的一種故障,針對(duì)這類(lèi)環(huán)路故障,目前通用的處理方法是把形成環(huán)路的其中一個(gè)端口的連接斷開(kāi),等環(huán)路消失后,再把該端口的連接重新打開(kāi)。這種處理環(huán)路故障的方法需要在充分了解相關(guān)網(wǎng)橋驅(qū)動(dòng)芯片的基礎(chǔ)上才能對(duì)特定的驅(qū)動(dòng)寄存器進(jìn)行相應(yīng)的配置,從而打開(kāi)或者關(guān)閉相應(yīng)端口連接。同時(shí)當(dāng)?shù)讓泳W(wǎng)橋驅(qū)動(dòng)芯片跟換時(shí)也需要進(jìn)行相應(yīng)的修改,這種處理環(huán)路故障的方法需要花費(fèi)大量的人力、物力和時(shí)間來(lái)處理系統(tǒng)環(huán)路故障,效率低下,成本代價(jià)巨大。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述問(wèn)題,本發(fā)明提供了一種系統(tǒng)環(huán)路故障的檢測(cè)與處理方法,無(wú)需打開(kāi)或者關(guān)閉端口連接就可以消除環(huán)路,在底層網(wǎng)橋芯片發(fā)生更改的情況下也不需要修改相應(yīng)代碼來(lái)處理系統(tǒng)環(huán)路故障,處理系統(tǒng)環(huán)路故障效率高,也降低了人力、物力成本,此外本發(fā)明還提供了系統(tǒng)環(huán)路故障的處理系統(tǒng)和系統(tǒng)環(huán)路故障的處理方法在EPON終端中的應(yīng)用。
其技術(shù)方案是這樣的:系統(tǒng)環(huán)路故障的檢測(cè)與處理方法,其特征在于:包括以下步驟:
步驟1:以太網(wǎng)系統(tǒng)的環(huán)路檢測(cè)模塊檢測(cè)以太網(wǎng)系統(tǒng)中是否存在環(huán)路;
步驟2:當(dāng)環(huán)路檢測(cè)模塊檢測(cè)到環(huán)路時(shí),環(huán)路檢測(cè)模塊對(duì)形成環(huán)路的端口設(shè)置阻塞標(biāo)記,以太網(wǎng)系統(tǒng)的環(huán)路故障處理模塊根據(jù)端口的阻塞標(biāo)記丟棄由其收發(fā)的數(shù)據(jù)包,使得環(huán)路消失;
步驟3:當(dāng)以太網(wǎng)系統(tǒng)中的環(huán)路檢測(cè)模塊檢測(cè)到環(huán)路消失時(shí),環(huán)路檢測(cè)模塊取消該端口的阻塞標(biāo)記,環(huán)路故障處理模塊控制該端口轉(zhuǎn)發(fā)數(shù)據(jù)包;
步驟4:重復(fù)步驟1到步驟3,檢測(cè)以太網(wǎng)系統(tǒng)是否存在環(huán)路以及環(huán)路是否消失。
進(jìn)一步的,在步驟1中,以太網(wǎng)系統(tǒng)的環(huán)路檢測(cè)模塊在底層周期性從各個(gè)端口向外發(fā)送廣播包,當(dāng)發(fā)現(xiàn)廣播包的源端口和目的端口相同時(shí),表明該端口上存在環(huán)路,用于檢測(cè)系統(tǒng)中是否存在環(huán)路。
進(jìn)一步的,在步驟2中,當(dāng)環(huán)路檢測(cè)模塊未檢測(cè)到環(huán)路時(shí),環(huán)路檢測(cè)模塊繼續(xù)周期性向各個(gè)端口發(fā)送廣播包,檢測(cè)系統(tǒng)中是否存在環(huán)路。
進(jìn)一步的,在步驟3中,環(huán)路檢測(cè)模塊檢測(cè)到系統(tǒng)環(huán)路消失時(shí),若不存在有阻塞標(biāo)記的端口,則環(huán)路檢測(cè)模塊繼續(xù)周期性向各個(gè)端口發(fā)送廣播包,檢測(cè)以太網(wǎng)系統(tǒng)中是否存在環(huán)路。
一種上述的系統(tǒng)環(huán)路故障的檢測(cè)與處理方法的系統(tǒng),包括以太網(wǎng)系統(tǒng),所述以太網(wǎng)系統(tǒng)包括若干端口,用于收發(fā)數(shù)據(jù),其特征在于:還包括:
環(huán)路檢測(cè)模塊,用于檢測(cè)所述以太網(wǎng)系統(tǒng)的各個(gè)端口是否存在環(huán)路,并對(duì)形成環(huán)路的端口設(shè)置阻塞標(biāo)記;
環(huán)路故障處理模塊,所述環(huán)路故障處理模塊根據(jù)阻塞標(biāo)記判斷端口是否被阻塞,對(duì)該端口的數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā)處理。
一種上述的系統(tǒng)環(huán)路故障的檢測(cè)與處理方法在EPON終端中的應(yīng)用,其特征在于:EPON終端采用Liunx系統(tǒng),環(huán)路檢測(cè)模塊周期性的從各個(gè)端口向外發(fā)送廣播檢測(cè)包,在接收數(shù)據(jù)包進(jìn)入Linux虛擬網(wǎng)橋的協(xié)議棧之前,通過(guò)注冊(cè)用于檢測(cè)環(huán)路的HOOK函數(shù)對(duì)該廣播包進(jìn)行處理分析,當(dāng)發(fā)現(xiàn)該廣播包的源端口是目的端口時(shí),表明系統(tǒng)在該端口上存在環(huán)路,對(duì)形成環(huán)路的端口設(shè)置阻塞標(biāo)記,然后繼續(xù)周期性的發(fā)送廣播檢測(cè)包;當(dāng)檢測(cè)到系統(tǒng)中不存在環(huán)路時(shí),如果存在阻塞標(biāo)記的端口,則取消該端口的阻塞標(biāo)記,然后繼續(xù)周期性的發(fā)送廣播檢測(cè)包,如果不存在標(biāo)記阻塞的端口,則直接跳過(guò)并繼續(xù)周期性的發(fā)送廣播檢測(cè)包;綁定在Liunx虛擬網(wǎng)橋上的端口收發(fā)的數(shù)據(jù)包經(jīng)Linux虛擬網(wǎng)橋的處理,環(huán)路故障處理模塊通過(guò)在linux網(wǎng)橋協(xié)議棧中的br_handle_frame()函數(shù)中注冊(cè)用于環(huán)路故障處理的HOOK函數(shù)來(lái)分析數(shù)據(jù)包,當(dāng)被分析的數(shù)據(jù)包的目的端口或來(lái)源端口是有阻塞標(biāo)記的端口,則丟棄該數(shù)據(jù)包;否則,轉(zhuǎn)發(fā)該數(shù)據(jù)包。
本發(fā)明的系統(tǒng)環(huán)路故障的檢測(cè)與處理方法,當(dāng)以太網(wǎng)系統(tǒng)存在環(huán)路的情況下對(duì)形成環(huán)路的端口設(shè)置阻塞標(biāo)記進(jìn)行阻塞,丟棄該端口上的數(shù)據(jù)包不讓其進(jìn)行數(shù)據(jù)包的收發(fā),使其不能直接跟其他的端口之間相互轉(zhuǎn)發(fā)數(shù)據(jù),從而系統(tǒng)中的環(huán)路就自動(dòng)消除了,當(dāng)系統(tǒng)環(huán)路消除之后去除端口的阻塞標(biāo)記,對(duì)該端口上的數(shù)據(jù)包進(jìn)行相應(yīng)的收發(fā),本發(fā)明的系統(tǒng)環(huán)路故障的處理方法不會(huì)切斷端口的連接,在底層網(wǎng)橋芯片發(fā)生更改的情況下也不需要修改相應(yīng)代碼來(lái)處理系統(tǒng)環(huán)路故障,處理系統(tǒng)環(huán)路故障效率高,也降低了人力、物力成本,本發(fā)明還提供了采用了該系統(tǒng)環(huán)路故障的處理方法的系統(tǒng),通過(guò)環(huán)路檢測(cè)模塊檢測(cè)以太網(wǎng)系統(tǒng)中是否存在環(huán)路,檢測(cè)到環(huán)路后通過(guò)環(huán)路故障處理模塊消除環(huán)路,此外,本發(fā)明還提供了系統(tǒng)環(huán)路故障的處理方法在EPON終端中的應(yīng)用,可以很容易地解決EPON終端的系統(tǒng)環(huán)路故障。
附圖說(shuō)明
圖1為本發(fā)明的系統(tǒng)環(huán)路故障的檢測(cè)與處理方法的流程示意圖;
圖2為本發(fā)明的系統(tǒng)環(huán)路故障處理系統(tǒng)的示意框圖;
圖3為本發(fā)明的系統(tǒng)環(huán)路故障的檢測(cè)與處理方法的在EPON終端中的應(yīng)用時(shí)進(jìn)行環(huán)路檢測(cè)的流程示意圖;
圖4為本發(fā)明的系統(tǒng)環(huán)路故障的檢測(cè)與處理方法的在EPON終端中的應(yīng)用時(shí)進(jìn)行環(huán)路處理的流程示意圖。
具體實(shí)施方式
見(jiàn)圖1,本發(fā)明的系統(tǒng)環(huán)路故障的檢測(cè)與處理方法,包括以下步驟:
步驟1:以太網(wǎng)系統(tǒng)中的環(huán)路檢測(cè)模塊在底層周期性從各個(gè)端口向外發(fā)送廣播包,當(dāng)發(fā)現(xiàn)廣播包的源端口和目的端口相同時(shí),表明該端口上存在環(huán)路,用于檢測(cè)系統(tǒng)中是否存在環(huán)路;
步驟2:當(dāng)以太網(wǎng)系統(tǒng)的環(huán)路檢測(cè)模塊檢測(cè)到環(huán)路時(shí),對(duì)形成環(huán)路的端口設(shè)置阻塞標(biāo)記,以太網(wǎng)系統(tǒng)的環(huán)路故障處理模塊根據(jù)端口的阻塞標(biāo)記丟棄由其收發(fā)的數(shù)據(jù)包,使得環(huán)路消失,當(dāng)以太網(wǎng)系統(tǒng)的環(huán)路檢測(cè)模塊未檢測(cè)到環(huán)路時(shí),環(huán)路檢測(cè)模塊繼續(xù)周期性向各個(gè)端口發(fā)送廣播包,檢測(cè)系統(tǒng)中是否存在環(huán)路;
步驟3:當(dāng)以太網(wǎng)系統(tǒng)中的環(huán)路檢測(cè)模塊檢測(cè)到環(huán)路消失時(shí),環(huán)路檢測(cè)模塊取消該端口的阻塞標(biāo)記,環(huán)路故障處理模塊控制該端口轉(zhuǎn)發(fā)數(shù)據(jù)包,以太網(wǎng)系統(tǒng)的環(huán)路檢測(cè)模塊檢測(cè)到環(huán)路消失時(shí),若不存在有阻塞標(biāo)記的端口,則環(huán)路檢測(cè)模塊繼續(xù)周期性向各個(gè)端口發(fā)送廣播包,檢測(cè)以太網(wǎng)系統(tǒng)中是否存在環(huán)路。
步驟4:重復(fù)步驟1到步驟3,檢測(cè)以太網(wǎng)系統(tǒng)是否存在環(huán)路以及環(huán)路是否消失。
本發(fā)明的系統(tǒng)環(huán)路故障的檢測(cè)與處理方法,當(dāng)系統(tǒng)存在環(huán)路的情況下對(duì)形成環(huán)路的端口設(shè)置阻塞標(biāo)記進(jìn)行阻塞,丟棄該端口上的數(shù)據(jù)包不讓其進(jìn)行數(shù)據(jù)包的收發(fā),使其不能直接跟其他的端口之間相互轉(zhuǎn)發(fā)數(shù)據(jù),從而系統(tǒng)中的環(huán)路就自動(dòng)消除了,當(dāng)系統(tǒng)環(huán)路消除之后去除端口的阻塞標(biāo)記,對(duì)該端口上的數(shù)據(jù)包進(jìn)行相應(yīng)的收發(fā),本發(fā)明的系統(tǒng)環(huán)路故障的處理方法不會(huì)切斷端口的連接,在底層網(wǎng)橋芯片發(fā)生更改的情況下也不需要修改相應(yīng)代碼來(lái)處理系統(tǒng)環(huán)路故障,處理系統(tǒng)環(huán)路故障效率高,也降低了人力、物力成本。
見(jiàn)圖2,本發(fā)明的一種采用上述的系統(tǒng)環(huán)路故障的檢測(cè)與處理方法的系統(tǒng),包括以太網(wǎng)系統(tǒng),所述以太網(wǎng)系統(tǒng)包括若干端口,用于收發(fā)數(shù)據(jù),還包括:環(huán)路檢測(cè)模塊,用于檢測(cè)所述以太網(wǎng)系統(tǒng)的各個(gè)端口是否存在環(huán)路,并對(duì)形成環(huán)路的端口設(shè)置阻塞標(biāo)記;環(huán)路故障處理模塊,所述環(huán)路故障處理模塊根據(jù)阻塞標(biāo)記判斷端口是否被阻塞,對(duì)該端口的數(shù)據(jù)包進(jìn)行丟棄或轉(zhuǎn)發(fā)處理。
以太網(wǎng)系統(tǒng)周期性從各個(gè)端口向外發(fā)送用于檢測(cè)環(huán)路狀態(tài)的廣播包,當(dāng)檢測(cè)到以太網(wǎng)系統(tǒng)中存在環(huán)路的時(shí)侯,系統(tǒng)會(huì)記錄環(huán)路故障的狀態(tài)同時(shí)記錄形成環(huán)路的端口,同設(shè)置阻塞標(biāo)志來(lái)阻塞相應(yīng)端口,環(huán)路故障處理程序會(huì)根據(jù)設(shè)置的阻塞標(biāo)志來(lái)判斷該端口是否被阻塞,當(dāng)端口為阻塞狀態(tài),對(duì)該端口的數(shù)據(jù)包進(jìn)行丟棄;當(dāng)端口為轉(zhuǎn)發(fā)狀態(tài),對(duì)該端口的數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)。
這樣在系統(tǒng)中存在環(huán)路的情況下能自動(dòng)阻塞相應(yīng)端口來(lái)消除環(huán)路,在系統(tǒng)環(huán)路消失后又能恢復(fù)端口到轉(zhuǎn)發(fā)狀態(tài)。
見(jiàn)圖3,圖4,一種上述的系統(tǒng)環(huán)路故障的檢測(cè)與處理方法在EPON終端中的應(yīng)用,EPON終端采用Liunx系統(tǒng),環(huán)路檢測(cè)模塊周期性的從各個(gè)端口向外發(fā)送廣播檢測(cè)包,在接收數(shù)據(jù)包進(jìn)入Linux虛擬網(wǎng)橋的協(xié)議棧之前,通過(guò)注冊(cè)用于檢測(cè)環(huán)路的HOOK函數(shù)對(duì)該廣播包進(jìn)行處理分析,當(dāng)發(fā)現(xiàn)該廣播包的源端口是目的端口時(shí),表明系統(tǒng)在該端口上存在環(huán)路,對(duì)形成環(huán)路的端口設(shè)置阻塞標(biāo)記,然后繼續(xù)周期性的發(fā)送廣播檢測(cè)包;當(dāng)檢測(cè)到系統(tǒng)中不存在環(huán)路時(shí),如果存在阻塞標(biāo)記的端口,則取消該端口的阻塞標(biāo)記,然后繼續(xù)周期性的發(fā)送廣播檢測(cè)包,如果不存在標(biāo)記阻塞的端口,則直接跳過(guò)并繼續(xù)周期性的發(fā)送廣播檢測(cè)包;綁定在Liunx虛擬網(wǎng)橋上的端口收發(fā)的數(shù)據(jù)包經(jīng)Linux虛擬網(wǎng)橋的處理,環(huán)路故障處理模塊通過(guò)在linux網(wǎng)橋協(xié)議棧中的br_handle_frame()函數(shù)中注冊(cè)用于環(huán)路故障處理的HOOK函數(shù)來(lái)分析數(shù)據(jù)包,當(dāng)被分析的數(shù)據(jù)包的目的端口或來(lái)源端口是有阻塞標(biāo)記的端口,則丟棄該數(shù)據(jù)包;否則,轉(zhuǎn)發(fā)該數(shù)據(jù)包。
以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說(shuō)明書(shū)中描述的只是說(shuō)明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書(shū)及其等效物界定。