本申請涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種故障檢測方法及裝置。
背景技術(shù):
當(dāng)計(jì)算機(jī)網(wǎng)絡(luò)出現(xiàn)故障時(shí),網(wǎng)絡(luò)設(shè)備間發(fā)送報(bào)文會(huì)出現(xiàn)丟包、改包或發(fā)送失敗的現(xiàn)象。而網(wǎng)絡(luò)設(shè)備故障和設(shè)備間的鏈路故障是導(dǎo)致上述業(yè)務(wù)故障的兩個(gè)重要原因。
現(xiàn)有的針對計(jì)算機(jī)網(wǎng)絡(luò)的故障檢測方案通常用于檢測鏈路故障,比如通過發(fā)送bfd(bidirectionalforwardingdetection,雙向轉(zhuǎn)發(fā)檢測)報(bào)文的方式檢測設(shè)備間的鏈路是否發(fā)生故障,或者通過oam(operationadministrationandmaintenance,操作、管理和維護(hù))的維護(hù)操作來檢測設(shè)備間的鏈路是否發(fā)生故障等。這種故障檢測方案只能檢測到某兩個(gè)網(wǎng)絡(luò)設(shè)備間的鏈路故障,若網(wǎng)絡(luò)故障是由于網(wǎng)絡(luò)設(shè)備的故障引起的,采用現(xiàn)有的故障檢測方案無法確定網(wǎng)絡(luò)故障具體是由哪個(gè)網(wǎng)絡(luò)設(shè)備導(dǎo)致的,即無法確定故障源頭,也就無法針對故障源頭采取相應(yīng)措施來恢復(fù)網(wǎng)絡(luò)。
綜上,現(xiàn)有技術(shù)中提供的方案中,當(dāng)網(wǎng)絡(luò)設(shè)備發(fā)生故障時(shí),存在無法確定故障源頭的問題。
技術(shù)實(shí)現(xiàn)要素:
本申請?zhí)峁┮环N故障檢測方法及裝置,用以在網(wǎng)絡(luò)設(shè)備發(fā)生故障時(shí)確定故障源頭。
第一方面,本申請實(shí)施例提供一種故障檢測方法,該方法包括如下步驟:第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文,并在指定接口板的物理接口卡(physicalinterfacecard,pic)中設(shè)置環(huán)回標(biāo)記,該環(huán)回標(biāo)記用于指示第一診斷報(bào)文在傳輸至pic后不發(fā)送至第二網(wǎng)絡(luò)設(shè)備、并按原路徑經(jīng)過指定接口板中的多個(gè)芯片環(huán)回;第一網(wǎng)絡(luò)設(shè)備檢測第一環(huán)回報(bào)文與第一診斷報(bào)文是否一致,第一環(huán)回報(bào)文為第一診斷報(bào)文在多個(gè)芯片間環(huán)回后得到的報(bào)文;第一網(wǎng)絡(luò)設(shè)備在第一環(huán)回報(bào)文與第一診斷報(bào)文不一致時(shí),確定第一網(wǎng)絡(luò)設(shè)備發(fā)生故障。
其中,第一診斷報(bào)文的目的媒體接入控制(mediaaccesscontrol,mac)地址可以為第二網(wǎng)絡(luò)設(shè)備的mac地址、目的互聯(lián)網(wǎng)協(xié)議(internetprotocol,ip)地址可以為第一網(wǎng)絡(luò)設(shè)備的ip地址。當(dāng)然,第一診斷報(bào)文的目的mac地址和目的ip地址也可不按此方式設(shè)置,本申請實(shí)施例中對此不做限定。
通過上述故障檢測方法,由于第一網(wǎng)絡(luò)設(shè)備在通過指定接口板發(fā)送第一診斷報(bào)文時(shí)在指定接口板的pic中設(shè)置了環(huán)回標(biāo)記,因而該第一診斷報(bào)文在傳輸至pic后會(huì)按原路徑經(jīng)過指定接口板中的多個(gè)芯片環(huán)回,因而第一網(wǎng)絡(luò)設(shè)備可在接收到第一環(huán)回報(bào)文后,通過判斷第一環(huán)回報(bào)文與第一診斷報(bào)文是否一致,來判斷自身是否發(fā)生故障:當(dāng)?shù)谝画h(huán)回報(bào)文與第一診斷報(bào)文不一致時(shí),第一網(wǎng)絡(luò)設(shè)備確定自身發(fā)生故障。因而,采用上述方法可確定第一網(wǎng)絡(luò)設(shè)備是否發(fā)生故障。特別地,當(dāng)確定第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間已經(jīng)發(fā)生業(yè)務(wù)故障后,可采用上述方法來確定該業(yè)務(wù)故障的故障來源。
需要說明的是,通過執(zhí)行上述方法,第一網(wǎng)絡(luò)設(shè)備可確定自身是否發(fā)生故障,但是第一網(wǎng)絡(luò)設(shè)備并不能確定第二網(wǎng)絡(luò)設(shè)備是否發(fā)生故障。若要確定第二網(wǎng)絡(luò)設(shè)備是否發(fā)生故障,可通過第二網(wǎng)絡(luò)設(shè)備執(zhí)行上述方法實(shí)現(xiàn)。比如,在確定第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間已經(jīng)發(fā)生業(yè)務(wù)故障后,第一網(wǎng)絡(luò)設(shè)備通過執(zhí)行上述方法確定自身沒有發(fā)生故障后,第二網(wǎng)絡(luò)設(shè)備可通過執(zhí)行上述方法來確定自身是否發(fā)生故障,若第二網(wǎng)絡(luò)設(shè)備也確定自身沒有發(fā)生故障,那么則可以確定導(dǎo)致該業(yè)務(wù)故障的原因是第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間的鏈路發(fā)生故障。
此外,在上述方法中,第一網(wǎng)絡(luò)設(shè)備可同時(shí)通過多個(gè)接口板發(fā)送第一診斷報(bào)文,來分別診斷多個(gè)接口板是否發(fā)生故障。
在一個(gè)可能的設(shè)計(jì)中,在第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文之前,還包括:重復(fù)執(zhí)行如下步驟n次,n>1:第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送檢測報(bào)文;第一網(wǎng)絡(luò)設(shè)備接收轉(zhuǎn)發(fā)報(bào)文,轉(zhuǎn)發(fā)報(bào)文為第二網(wǎng)絡(luò)設(shè)備在接收到檢測報(bào)文后轉(zhuǎn)發(fā)給第一網(wǎng)絡(luò)設(shè)備的報(bào)文;第一網(wǎng)絡(luò)設(shè)備檢測轉(zhuǎn)發(fā)報(bào)文與檢測報(bào)文是否一致,并在轉(zhuǎn)發(fā)報(bào)文與檢測報(bào)文一致時(shí)保持m的值不變、在轉(zhuǎn)發(fā)報(bào)文與檢測報(bào)文不一致時(shí)將m的值加一,m的初始值為0。第一網(wǎng)絡(luò)設(shè)備確定m與n的比值超過預(yù)設(shè)閾值。
其中,檢測報(bào)文的目的mac地址可以為第二網(wǎng)絡(luò)設(shè)備的mac地址、目的ip地址可以為第一網(wǎng)絡(luò)設(shè)備的ip地址。當(dāng)然,檢測報(bào)文的目的mac地址和目的ip地址也可不按此方式設(shè)置,本申請實(shí)施例中對此不做限定。
需理解,檢測報(bào)文和第一診斷報(bào)文并沒有實(shí)際上的差別,只是檢測報(bào)文可用于檢測第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間是否發(fā)生業(yè)務(wù)故障,而第一診斷報(bào)文用于確定第一網(wǎng)絡(luò)設(shè)備是否發(fā)生故障,且第一網(wǎng)絡(luò)設(shè)備在發(fā)送第一診斷報(bào)文時(shí)在pic中設(shè)置環(huán)回標(biāo)記。本申請實(shí)施例中為了將第一網(wǎng)絡(luò)設(shè)備執(zhí)行不同操作時(shí)發(fā)送的報(bào)文加以區(qū)分,分別用檢測報(bào)文和第一診斷報(bào)文命名。
在上述方案中,第一網(wǎng)絡(luò)設(shè)備可以通過向第二網(wǎng)絡(luò)設(shè)備發(fā)送n個(gè)檢測報(bào)文,并通過檢測n個(gè)檢測報(bào)文經(jīng)第二網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)回第一網(wǎng)絡(luò)設(shè)備后得到的n個(gè)轉(zhuǎn)發(fā)報(bào)文與發(fā)送的n個(gè)檢測報(bào)文的一致性,來確定第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備間發(fā)生業(yè)務(wù)故障。具體地,在上述方案中,m的含義是指第一網(wǎng)絡(luò)設(shè)備接收到的n個(gè)轉(zhuǎn)發(fā)報(bào)文中,與檢測報(bào)文不一致的轉(zhuǎn)發(fā)報(bào)文的數(shù)量,那么m與n的比值即代表n個(gè)轉(zhuǎn)發(fā)報(bào)文在由第一網(wǎng)絡(luò)設(shè)備發(fā)送至第二網(wǎng)絡(luò)設(shè)備,然后經(jīng)第二網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)回第一網(wǎng)絡(luò)設(shè)備后檢測報(bào)文的丟包率或改包率。當(dāng)檢測報(bào)文的丟包率或改包率超過預(yù)設(shè)閾值時(shí),第一網(wǎng)絡(luò)設(shè)備即可以確定第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備間發(fā)生業(yè)務(wù)故障。
采用上述方法,可以通過統(tǒng)計(jì)檢測報(bào)文的丟包率或改包率來判斷第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間是否發(fā)生業(yè)務(wù)故障,可以提高判斷的準(zhǔn)確性。
在一個(gè)可能的設(shè)計(jì)中,在第一網(wǎng)絡(luò)設(shè)備檢測第一環(huán)回報(bào)文與第一診斷報(bào)文是否一致之后,還包括:第一網(wǎng)絡(luò)設(shè)備在第一環(huán)回報(bào)文與第一診斷報(bào)文一致時(shí),確定第一網(wǎng)絡(luò)設(shè)備未發(fā)生故障。
在一個(gè)可能的設(shè)計(jì)中,在第一網(wǎng)絡(luò)設(shè)備首次執(zhí)行通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送檢測報(bào)文的步驟之前,還包括:第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送檢測報(bào)文;第一網(wǎng)絡(luò)設(shè)備接收轉(zhuǎn)發(fā)報(bào)文;第一網(wǎng)絡(luò)設(shè)備檢測到轉(zhuǎn)發(fā)報(bào)文與檢測報(bào)文不一致。
通過上述方法,第一網(wǎng)絡(luò)設(shè)備可在向第二網(wǎng)絡(luò)設(shè)備發(fā)送一個(gè)檢測報(bào)文并確定轉(zhuǎn)發(fā)報(bào)文和檢測報(bào)文不一致時(shí),初步判斷第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間可能已經(jīng)發(fā)生業(yè)務(wù)故障。
在一個(gè)可能的設(shè)計(jì)中,在第一網(wǎng)絡(luò)設(shè)備確定第一網(wǎng)絡(luò)設(shè)備發(fā)生故障之后,還包括:第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送p個(gè)第一診斷報(bào)文,并在pic中設(shè)置環(huán)回標(biāo)記,p>1;第一網(wǎng)絡(luò)設(shè)備根據(jù)多個(gè)芯片中每個(gè)芯片基于p個(gè)第一診斷報(bào)文的流量統(tǒng)計(jì)結(jié)果,確定多個(gè)芯片中的至少一個(gè)芯片發(fā)生故障,流量統(tǒng)計(jì)結(jié)果用于指示多個(gè)芯片中每個(gè)芯片的發(fā)送報(bào)文數(shù)和/或接收報(bào)文數(shù)。
當(dāng)設(shè)置指定接口板進(jìn)行流量統(tǒng)計(jì)時(shí),指定接口板中的每個(gè)芯片均會(huì)對自身的發(fā)送報(bào)文數(shù)和/或接收報(bào)文數(shù)進(jìn)行統(tǒng)計(jì)。因此,通過上述方法,第一網(wǎng)絡(luò)設(shè)備可通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送p個(gè)第一診斷報(bào)文,并根據(jù)每個(gè)芯片的流量統(tǒng)計(jì)結(jié)果確定多個(gè)芯片中的至少一個(gè)芯片發(fā)生故障。
在一個(gè)可能的設(shè)計(jì)中,在第一網(wǎng)絡(luò)設(shè)備確定至少一個(gè)芯片發(fā)生故障之后,還包括:第一網(wǎng)絡(luò)設(shè)備執(zhí)行恢復(fù)操作,恢復(fù)操作包含如下至少一種操作:對至少一個(gè)芯片進(jìn)行重新加載;對至少一個(gè)芯片進(jìn)行復(fù)位;將至少一個(gè)芯片下電。
通過上述方法,第一網(wǎng)絡(luò)設(shè)備可實(shí)現(xiàn)至少一個(gè)芯片的故障恢復(fù)和隔離,從而修復(fù)第一網(wǎng)絡(luò)設(shè)備的故障。
在一個(gè)可能的設(shè)計(jì)中,在第一網(wǎng)絡(luò)設(shè)備執(zhí)行恢復(fù)操作之后,還包括:第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第二診斷報(bào)文,并在pic中設(shè)置環(huán)回標(biāo)記;第一網(wǎng)絡(luò)設(shè)備檢測第二環(huán)回報(bào)文與第二診斷報(bào)文是否一致,第二環(huán)回報(bào)文為第二診斷報(bào)文在多個(gè)芯片間環(huán)回后得到的報(bào)文;第一網(wǎng)絡(luò)設(shè)備在第二環(huán)回報(bào)文與第二診斷報(bào)文一致時(shí),確定第一網(wǎng)絡(luò)設(shè)備發(fā)生的故障已修復(fù)。
通過上述方法,第一網(wǎng)絡(luò)設(shè)備可在執(zhí)行恢復(fù)操作后,通過再次發(fā)送第二診斷報(bào)文,并檢測第二環(huán)回報(bào)文與發(fā)送的第二診斷報(bào)文是否一致,來判斷第一網(wǎng)絡(luò)設(shè)備的故障是否修復(fù)。
在一個(gè)可能的設(shè)計(jì)中,在第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文之前,還包括:第一網(wǎng)絡(luò)設(shè)備從預(yù)設(shè)的多個(gè)報(bào)文模板中選擇指定報(bào)文模板;第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文,包括:第一網(wǎng)絡(luò)設(shè)備按照指定報(bào)文模板生成第一診斷報(bào)文,并向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文。
其中,按照指定報(bào)文模板生成的第一診斷報(bào)文,可以是報(bào)文長度為固定長度(比如100字節(jié))的報(bào)文,也可以是包含特定內(nèi)容的報(bào)文。第一網(wǎng)絡(luò)設(shè)備可根據(jù)先前的統(tǒng)計(jì)結(jié)果將導(dǎo)致業(yè)務(wù)故障概率較高的報(bào)文模板作為指定報(bào)文模板,發(fā)送按照該指定報(bào)文模板生成的第一診斷報(bào)文更易于檢測到業(yè)務(wù)故障。
第二方面,本申請實(shí)施例提供一種故障檢測裝置,該裝置具有實(shí)現(xiàn)上述方法的功能。所述功能可以通過硬件實(shí)現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個(gè)或多個(gè)與上述功能相對應(yīng)的模塊。
在一個(gè)可能的設(shè)計(jì)中,所述裝置的結(jié)構(gòu)中包括發(fā)送單元和處理單元,可選包括接收單元。這些單元可以執(zhí)行上述方法示例中的相應(yīng)功能,具體參見方法示例中的詳細(xì)描述,此處不做贅述。
在一個(gè)可能的設(shè)計(jì)中,所述裝置的結(jié)構(gòu)中包括收發(fā)器、處理器、總線以及存儲(chǔ)器,所述收發(fā)器用于該裝置進(jìn)行通信交互,所述處理器被配置為支持上述方法中相應(yīng)的功能。所述存儲(chǔ)器與所述處理器耦合,其保存該裝置必要的程序指令和數(shù)據(jù)。
基于同一發(fā)明構(gòu)思,由于該裝置解決問題的原理以及有益效果可以參見上述第一方面或上述第一方面的任意一種設(shè)計(jì)提供的方法及其有益效果,因此該裝置的實(shí)施可以參見方法的實(shí)施,重復(fù)之處不再贅述。
第三方面,本申請實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括存儲(chǔ)在上述第一種非暫態(tài)性計(jì)算機(jī)存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括程序指令,當(dāng)所述程序指令被計(jì)算機(jī)執(zhí)行時(shí),使所述計(jì)算機(jī)執(zhí)行第一方面或上述第一方面的任意一種設(shè)計(jì)提供的方法。
第四方面,本申請實(shí)施例提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令在被計(jì)算機(jī)調(diào)用時(shí),使所述計(jì)算機(jī)執(zhí)行第一方面或上述第一方面的任意一種設(shè)計(jì)提供的方法。
附圖說明
圖1為本申請?zhí)峁┑囊环N報(bào)文在接口板的傳輸路徑的示意圖;
圖2為本申請?zhí)峁┑牧硪环N報(bào)文在接口板的傳輸路徑的示意圖;
圖3為本申請?zhí)峁┑囊环N故障檢測方法的流程示意圖;
圖4為本申請?zhí)峁┑牧硪环N故障檢測方法的流程示意圖;
圖5為本申請?zhí)峁┑囊环N主動(dòng)免疫維護(hù)系統(tǒng)的結(jié)構(gòu)示意圖;
圖6為本申請?zhí)峁┑囊环N故障檢測裝置的結(jié)構(gòu)示意圖;
圖7為本申請?zhí)峁┑牧硪环N故障檢測裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
當(dāng)某個(gè)網(wǎng)絡(luò)設(shè)備向另一個(gè)網(wǎng)絡(luò)設(shè)備發(fā)送的報(bào)文出現(xiàn)丟包或改包的現(xiàn)象時(shí),這兩個(gè)網(wǎng)絡(luò)設(shè)備間發(fā)生了業(yè)務(wù)故障。通常,導(dǎo)致兩個(gè)設(shè)備間的業(yè)務(wù)故障的原因主要有兩個(gè):1、網(wǎng)絡(luò)設(shè)備發(fā)生故障;2、網(wǎng)絡(luò)設(shè)備間的鏈路發(fā)生故障。
現(xiàn)有技術(shù)中,當(dāng)兩個(gè)網(wǎng)絡(luò)設(shè)備間發(fā)生業(yè)務(wù)故障時(shí),通常的做法是通過發(fā)送bfd報(bào)文的方式檢測網(wǎng)絡(luò)設(shè)備間的鏈路是否發(fā)生故障,或者通過oam的維護(hù)操作來檢測設(shè)備間的鏈路是否發(fā)生故障等。這種故障檢測方案只能檢測到網(wǎng)絡(luò)設(shè)備間的鏈路是否發(fā)生故障。若業(yè)務(wù)故障是由于網(wǎng)絡(luò)設(shè)備的故障引起的,采用現(xiàn)有的故障檢測方案無法確定網(wǎng)絡(luò)故障具體是由發(fā)送端的網(wǎng)絡(luò)設(shè)備的故障導(dǎo)致的,還是由接收端的網(wǎng)絡(luò)設(shè)備的故障導(dǎo)致的,即無法確定故障源頭,也就無法針對故障源頭采取相應(yīng)措施來恢復(fù)網(wǎng)絡(luò)。
本申請?zhí)峁┮环N故障檢測方法及裝置,用以在網(wǎng)絡(luò)設(shè)備發(fā)生故障時(shí)確定故障源頭。其中,方法和裝置是基于同一發(fā)明構(gòu)思的,由于方法及裝置解決問題的原理相似,因此裝置與方法的實(shí)施可以相互參見,重復(fù)之處不再贅述。
為了使本申請更容易被理解,下面首先對本申請實(shí)施例涉及的一些基本概念進(jìn)行解釋。需要說明的是,這些解釋是為了讓本申請實(shí)施例更容易被理解,而不應(yīng)該視為對本申請所要求的保護(hù)范圍的限定。
一、網(wǎng)絡(luò)設(shè)備
本申請實(shí)施例中,網(wǎng)絡(luò)設(shè)備可以為業(yè)務(wù)鏈中的三層設(shè)備。其中,三層設(shè)備包括但不限于路由器、負(fù)載均衡器(loadbalance,lb)、網(wǎng)絡(luò)地址轉(zhuǎn)換(networkaddresstranslation,nat)設(shè)備。當(dāng)然,網(wǎng)絡(luò)設(shè)備也可以是其他網(wǎng)絡(luò)設(shè)備,本申請實(shí)施例中對此不做限定。
二、接口板
本申請中,接口板是指網(wǎng)絡(luò)設(shè)備中的實(shí)際物理接口,接口板中的芯片主要有:信號處理器、物理接口卡(pic)、網(wǎng)絡(luò)處理器(networkprocesser,np)芯片以及流量管理(trafficmanagement,tm)芯片。信號處理器、pic、np芯片和tm芯片之間可以通過總線連接傳輸報(bào)文。信號處理器是接口板的控制中心,用于控制報(bào)文在pic、np芯片以及tm芯片中轉(zhuǎn)發(fā)。
信號處理器可以是中央處理器(centralprocessingunit,cpu),或者是cpu和硬件芯片的組合。硬件芯片可以是以下一種或多種的組合:專用集成電路(application-specificintegratedcircuit,asic)、現(xiàn)場可編程邏輯門陣列(field-programmablegatearray,fpga)、復(fù)雜可編程邏輯器件(complexprogrammablelogicdevice,cpld)。
在信號處理器為cpu或者cpu與硬件芯片的組合的情況下,接口板中還可以包括存儲(chǔ)器,存儲(chǔ)器用于存儲(chǔ)程序代碼,信號處理器從存儲(chǔ)器中獲得存儲(chǔ)的程序代碼,按照獲得的程序代理執(zhí)行相應(yīng)地處理。存儲(chǔ)器可以是易失性存儲(chǔ)器,例如隨機(jī)存取存儲(chǔ)器(random-accessmemory,ram);存儲(chǔ)器也可以是非易失性存儲(chǔ)器,例如只讀存儲(chǔ)器(read-onlymemory,rom)、快閃存儲(chǔ)器、硬盤(harddiskdrive,hdd)或固態(tài)硬盤(solid-statedrive,ssd),或者上述種類的存儲(chǔ)器的組合。
通常,網(wǎng)絡(luò)設(shè)備中包含多個(gè)接口板,網(wǎng)絡(luò)設(shè)備中的主控制器通過交換網(wǎng)板與多個(gè)接口板連接。主控制器可通過接口板發(fā)送報(bào)文。
本申請中,報(bào)文在接口板中的傳輸路徑可如圖1所示,信號處理器將報(bào)文傳輸至np芯片,np芯片將報(bào)文處理后傳輸至tm芯片,tm芯片將報(bào)文進(jìn)行組包處理后傳輸至np芯片,np芯片將報(bào)文通過pic發(fā)送出去。
因此,本申請中所述的接口板中的多個(gè)芯片主要是指信號處理器、pic、np芯片、tm芯片。
由于網(wǎng)絡(luò)設(shè)備是通過接口板向另一個(gè)網(wǎng)絡(luò)設(shè)備發(fā)送報(bào)文的,因此,本申請中所述的確定網(wǎng)絡(luò)設(shè)備發(fā)生故障,實(shí)際上是確定網(wǎng)絡(luò)設(shè)備中用以發(fā)送該報(bào)文的接口板發(fā)生故障。在進(jìn)一步確定網(wǎng)絡(luò)設(shè)備的多個(gè)芯片中的至少一個(gè)芯片發(fā)生故障時(shí),實(shí)際上是確定該接口板中的至少一個(gè)芯片發(fā)生故障。其中,至少一個(gè)芯片包含信號處理器、pic、np芯片、tm芯片中的一種或幾種。
三、環(huán)回標(biāo)記
本申請實(shí)施例中,可在接口板的pic中設(shè)置環(huán)回標(biāo)記。當(dāng)pic中設(shè)置環(huán)回標(biāo)記時(shí),通過該接口板發(fā)送的報(bào)文在傳輸至pic后,并不會(huì)發(fā)送至對端,而是按該報(bào)文傳輸至pic的原路徑、經(jīng)過接口板中的多個(gè)芯片環(huán)回。
如前所述,圖1已經(jīng)示出了報(bào)文在接口板中的傳輸路徑。那么,當(dāng)接口板中的pic中設(shè)置環(huán)回標(biāo)記時(shí),該報(bào)文在接口板的傳輸路徑可如圖2所示。由圖2可以看出,該報(bào)文在傳輸至pic后由按照該報(bào)文傳輸至pic的原路徑、經(jīng)過pic→np芯片→tm芯片→np芯片后環(huán)回至信號處理器。
四、診斷報(bào)文和檢測報(bào)文
本申請實(shí)施例中,檢測報(bào)文的目的mac地址可以為第二網(wǎng)絡(luò)設(shè)備的mac地址、目的ip地址可以為第一網(wǎng)絡(luò)設(shè)備的ip地址。通過在兩個(gè)網(wǎng)絡(luò)設(shè)備間發(fā)送檢測報(bào)文,可以檢測兩個(gè)網(wǎng)絡(luò)設(shè)備間是否發(fā)生業(yè)務(wù)故障。
本申請實(shí)施例中,診斷報(bào)文的目的mac地址可以為第二網(wǎng)絡(luò)設(shè)備的mac地址、目的ip地址可以為第一網(wǎng)絡(luò)設(shè)備的ip地址。診斷報(bào)文可用于網(wǎng)絡(luò)設(shè)備檢測自身是否發(fā)生故障。
需要說明的是,本申請實(shí)施例中,檢測報(bào)文和診斷報(bào)文的類型可以是icmp報(bào)文(也稱為ping報(bào)文),這是因?yàn)椋篿cmp可以報(bào)告處理數(shù)據(jù)過程中的錯(cuò)誤和異常情況。當(dāng)檢測報(bào)文和診斷報(bào)文均為icmp報(bào)文時(shí),可以提供關(guān)于業(yè)務(wù)故障的更多信息,使得網(wǎng)絡(luò)設(shè)備易于確定故障原因,并采取相應(yīng)措施恢復(fù)網(wǎng)絡(luò)。
為了使本申請的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本申請作進(jìn)一步地詳細(xì)描述。
需要理解的是,在本申請的描述中,“第一”、“第二”等詞匯,僅用于區(qū)分描述的目的,而不能理解為指示或暗示相對重要性,也不能理解為指示或暗示順序。本申請中所涉及的多個(gè),是指兩個(gè)或兩個(gè)以上。
參見圖3,為本申請?zhí)峁┑囊环N故障檢測方法的流程圖。該方法包括如下步驟:
s301:第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文,并在指定接口板的pic中設(shè)置環(huán)回標(biāo)記。
其中,該環(huán)回標(biāo)記用于指示第一診斷報(bào)文在傳輸至pic后不發(fā)送至第二網(wǎng)絡(luò)設(shè)備、并按原路徑經(jīng)過指定接口板中的多個(gè)芯片環(huán)回。
其中,第一診斷報(bào)文的目的mac地址可以為第二網(wǎng)絡(luò)設(shè)備的mac地址、目的ip地址可以為第一網(wǎng)絡(luò)設(shè)備的ip地址。當(dāng)然,第一診斷報(bào)文的目的mac地址和目的ip地址也可不按此方式設(shè)置,本申請實(shí)施例中對此不做限定。
s301中,由于指定接口板的pic中設(shè)置有環(huán)回標(biāo)記,因而第一網(wǎng)絡(luò)設(shè)備在通過指定接口板發(fā)送第一診斷報(bào)文時(shí),第一診斷報(bào)文并不會(huì)發(fā)送至第二網(wǎng)絡(luò)設(shè)備,而是在傳輸至pic后按照原路徑經(jīng)過指定接口板中的多個(gè)芯片環(huán)回。其中,指定接口板中的多個(gè)芯片可以包含信號處理器、pic、np芯片、tm芯片等。
需要說明的是,指定接口板是指用于發(fā)送第一診斷報(bào)文的指定接口板。本申請實(shí)施例中,由于第一網(wǎng)絡(luò)設(shè)備是通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文的,因此,本申請實(shí)施例中所述的確定第一網(wǎng)絡(luò)設(shè)備發(fā)生故障,實(shí)際上是確定第一網(wǎng)絡(luò)設(shè)備中用以發(fā)送該第一診斷報(bào)文的指定接口板發(fā)生故障。
也就是說,第一網(wǎng)絡(luò)設(shè)備通過執(zhí)行圖3所示的方法可確定指定接口板是否發(fā)生故障。若第一網(wǎng)絡(luò)設(shè)備想要確定除指定接口板之外的其他接口板是否發(fā)生故障,還需通過該接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送診斷報(bào)文,并根據(jù)環(huán)回報(bào)文和診斷報(bào)文是否一致來判斷該接口板是否發(fā)生故障。
在s301中,第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文之前,第一網(wǎng)絡(luò)設(shè)備可從預(yù)設(shè)的多個(gè)報(bào)文模板中選擇指定報(bào)文模板;然后,按照指定報(bào)文模板生成第一診斷報(bào)文,并向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文。
其中,按照指定報(bào)文模板生成的第一診斷報(bào)文,可以是報(bào)文長度為固定長度(比如100字節(jié))的報(bào)文,也可以是包含特定內(nèi)容的報(bào)文。第一網(wǎng)絡(luò)設(shè)備可根據(jù)先前的統(tǒng)計(jì)結(jié)果將導(dǎo)致業(yè)務(wù)故障概率較高的報(bào)文模板作為指定報(bào)文模板,發(fā)送按照該指定報(bào)文模板生成的第一診斷報(bào)文更易于檢測到業(yè)務(wù)故障。
s302:第一網(wǎng)絡(luò)設(shè)備檢測第一環(huán)回報(bào)文與第一診斷報(bào)文是否一致。
其中,第一環(huán)回報(bào)文為第一診斷報(bào)文在指定接口板中的多個(gè)芯片間環(huán)回后得到的報(bào)文。當(dāng)?shù)谝画h(huán)回報(bào)文與第一診斷報(bào)文一致時(shí),則說明第一診斷報(bào)文在多個(gè)芯片間環(huán)回后沒有出現(xiàn)丟包或改包的情況;當(dāng)?shù)谝画h(huán)回報(bào)文與第一診斷報(bào)文不一致時(shí),則說明第一診斷報(bào)文在多個(gè)芯片間環(huán)回后出現(xiàn)了丟包或改包的情況。
s303:第一網(wǎng)絡(luò)設(shè)備在第一環(huán)回報(bào)文與第一診斷報(bào)文不一致時(shí),確定第一網(wǎng)絡(luò)設(shè)備發(fā)生故障。
當(dāng)?shù)谝画h(huán)回報(bào)文與第一診斷報(bào)文不一致時(shí),說明第一診斷報(bào)文在多個(gè)芯片間環(huán)回后出現(xiàn)了丟包或改包的情況,也就是說在指定接口板中傳輸該第一診斷報(bào)文時(shí)會(huì)出現(xiàn)錯(cuò)誤,也就說明了指定接口板發(fā)生了故障,即第一網(wǎng)絡(luò)設(shè)備發(fā)生故障。此時(shí),若第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送報(bào)文,會(huì)由于第一網(wǎng)絡(luò)設(shè)備的故障而導(dǎo)致報(bào)文的丟包或改包。
圖3所示的故障檢測方法可用于第一網(wǎng)絡(luò)設(shè)備自檢,即第一網(wǎng)絡(luò)設(shè)備向第二網(wǎng)絡(luò)設(shè)備發(fā)送報(bào)文之前可執(zhí)行圖3所示方法,從而使得第一網(wǎng)絡(luò)設(shè)備可確定自身是否發(fā)生故障。此外,圖3所示方法也可以用于第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備間發(fā)生業(yè)務(wù)故障后,第一網(wǎng)絡(luò)設(shè)備檢測該業(yè)務(wù)故障是否是由于自身故障導(dǎo)致的。
若圖3所示方法用于第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備間發(fā)生業(yè)務(wù)故障后,那么一種確定第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間發(fā)生業(yè)務(wù)故障的方法可以是:
在第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文之前,重復(fù)執(zhí)行如下步驟n次,n>1:第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送檢測報(bào)文;第一網(wǎng)絡(luò)設(shè)備接收轉(zhuǎn)發(fā)報(bào)文,轉(zhuǎn)發(fā)報(bào)文為第二網(wǎng)絡(luò)設(shè)備在接收到檢測報(bào)文后轉(zhuǎn)發(fā)給第一網(wǎng)絡(luò)設(shè)備的報(bào)文;第一網(wǎng)絡(luò)設(shè)備檢測轉(zhuǎn)發(fā)報(bào)文與檢測報(bào)文是否一致,并在轉(zhuǎn)發(fā)報(bào)文與檢測報(bào)文一致時(shí)保持m的值不變、在轉(zhuǎn)發(fā)報(bào)文與檢測報(bào)文不一致時(shí)將m的值加一,m的初始值為0。
然后,第一網(wǎng)絡(luò)設(shè)備確定m與n的比值超過預(yù)設(shè)閾值。
其中,檢測報(bào)文的目的mac地址可以為第二網(wǎng)絡(luò)設(shè)備的mac地址、目的ip地址可以為第一網(wǎng)絡(luò)設(shè)備的ip地址。當(dāng)然,檢測報(bào)文的目的mac地址和目的ip地址也可不按此方式設(shè)置,本申請實(shí)施例中對此不做限定。
此外,上述方案只是一種觸發(fā)第一網(wǎng)絡(luò)設(shè)備執(zhí)行圖3所示方法來檢測自身是否發(fā)生故障的觸發(fā)條件,m與n的比值超過預(yù)設(shè)閾值時(shí)并不能說明第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備間一定發(fā)生了業(yè)務(wù)故障。
需要說明的是,本申請實(shí)施例中,檢測報(bào)文和第一診斷報(bào)文并沒有實(shí)際上的差別,只是檢測報(bào)文可以用于檢測第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間是否發(fā)生業(yè)務(wù)故障,而第一診斷報(bào)文可以用于確定第一網(wǎng)絡(luò)設(shè)備是否發(fā)生故障,且第一網(wǎng)絡(luò)設(shè)備在發(fā)送第一診斷報(bào)文時(shí)在pic中設(shè)置環(huán)回標(biāo)記。本申請實(shí)施例中為了將第一網(wǎng)絡(luò)設(shè)備執(zhí)行不同操作時(shí)發(fā)送的報(bào)文加以區(qū)分,分別用檢測報(bào)文和診斷報(bào)文命名。
在上述方案中,第一網(wǎng)絡(luò)設(shè)備通過向第二網(wǎng)絡(luò)設(shè)備發(fā)送n個(gè)檢測報(bào)文,并通過檢測n個(gè)檢測報(bào)文經(jīng)第二網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)回第一網(wǎng)絡(luò)設(shè)備后得到的n個(gè)轉(zhuǎn)發(fā)報(bào)文與發(fā)送的n個(gè)檢測報(bào)文的一致性,來確定第一網(wǎng)絡(luò)設(shè)備是否執(zhí)行檢測自身故障的方法。具體地,在上述實(shí)現(xiàn)方式中,m的含義是指第一網(wǎng)絡(luò)設(shè)備接收到的n個(gè)轉(zhuǎn)發(fā)報(bào)文中,與檢測報(bào)文不一致的轉(zhuǎn)發(fā)報(bào)文的數(shù)量,那么m與n的比值即代表n個(gè)轉(zhuǎn)發(fā)報(bào)文在由第一網(wǎng)絡(luò)設(shè)備發(fā)送至第二網(wǎng)絡(luò)設(shè)備,然后經(jīng)第二網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)回第一網(wǎng)絡(luò)設(shè)備后檢測報(bào)文的丟包率或改包率。當(dāng)檢測報(bào)文的丟包率或改包率超過預(yù)設(shè)閾值時(shí),則第一網(wǎng)絡(luò)設(shè)備可執(zhí)行上述故障檢測方法。
采用上述方案,通過統(tǒng)計(jì)檢測報(bào)文的丟包率或改包率來判斷第一網(wǎng)絡(luò)設(shè)備是否執(zhí)行上述故障檢測方法,提供了一種執(zhí)行上述故障檢測方法的觸發(fā)條件。
此外,在上述方案中,在第一網(wǎng)絡(luò)設(shè)備首次執(zhí)行通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送檢測報(bào)文的步驟之前,第一網(wǎng)絡(luò)設(shè)備還可通過如下方式初步判斷第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間可能了發(fā)生業(yè)務(wù)故障:第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送檢測報(bào)文;第一網(wǎng)絡(luò)設(shè)備接收轉(zhuǎn)發(fā)報(bào)文后,檢測到轉(zhuǎn)發(fā)報(bào)文與檢測報(bào)文不一致。
也就是說,在實(shí)際實(shí)現(xiàn)時(shí),第一網(wǎng)絡(luò)設(shè)備可在向第二網(wǎng)絡(luò)設(shè)備發(fā)送一個(gè)檢測報(bào)文并確定轉(zhuǎn)發(fā)報(bào)文和檢測報(bào)文不一致時(shí),初步判斷第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間可能發(fā)生了業(yè)務(wù)故障。
在確定第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備間發(fā)生業(yè)務(wù)故障后,第一網(wǎng)絡(luò)設(shè)備通過執(zhí)行圖3所示的故障檢測方法,可在第一環(huán)回報(bào)文與第一診斷報(bào)文不一致時(shí)確定第一網(wǎng)絡(luò)設(shè)備發(fā)生故障。此外,若第一環(huán)回報(bào)文與第一診斷報(bào)文一致,則說明第一網(wǎng)絡(luò)設(shè)備沒有發(fā)生故障,那么第一網(wǎng)絡(luò)設(shè)備可以確定導(dǎo)致第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間的業(yè)務(wù)故障的原因是第二網(wǎng)絡(luò)設(shè)備發(fā)生故障或者第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間的鏈路發(fā)生故障。
進(jìn)一步地,在第一網(wǎng)絡(luò)設(shè)備確定自身發(fā)生故障之后,第一網(wǎng)絡(luò)設(shè)備還可以進(jìn)一步確定指定接口板中具體哪個(gè)芯片發(fā)生了故障,以便采取相應(yīng)措施來修復(fù)第一網(wǎng)絡(luò)設(shè)備的故障。具體方式是:第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送p個(gè)第一診斷報(bào)文,并在pic中設(shè)置環(huán)回標(biāo)記,p>1;第一網(wǎng)絡(luò)設(shè)備根據(jù)多個(gè)芯片中每個(gè)芯片基于p個(gè)第一診斷報(bào)文的流量統(tǒng)計(jì)結(jié)果,確定多個(gè)芯片中的至少一個(gè)芯片發(fā)生故障。其中,流量統(tǒng)計(jì)結(jié)果用于指示多個(gè)芯片中每個(gè)芯片的發(fā)送報(bào)文數(shù)和/或接收報(bào)文數(shù)。
本申請實(shí)施例中,當(dāng)設(shè)置指定接口板進(jìn)行流量統(tǒng)計(jì)時(shí),指定接口板中的每個(gè)芯片均會(huì)對自身的發(fā)送報(bào)文數(shù)和/或接收報(bào)文數(shù)進(jìn)行統(tǒng)計(jì)。第一網(wǎng)絡(luò)設(shè)備可通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送p個(gè)第一診斷報(bào)文,并根據(jù)每個(gè)芯片的流量統(tǒng)計(jì)結(jié)果確定多個(gè)芯片中的至少一個(gè)芯片發(fā)生故障。
其中,芯片的流量統(tǒng)計(jì)結(jié)果與第一診斷報(bào)文在指定接口板中的傳輸結(jié)果相關(guān)。以第一診斷報(bào)文在指定接口板中的傳輸路徑如圖2所示為例,若第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送p個(gè)第一診斷報(bào)文,圖2中的信號處理器的發(fā)送報(bào)文數(shù)和接收報(bào)文數(shù)均應(yīng)該為p,若信號處理器的流量統(tǒng)計(jì)結(jié)果中的發(fā)送報(bào)文數(shù)小于p或者接收報(bào)文數(shù)小于p,那么可以判斷指定接口板中的信號處理器發(fā)生故障;若第一網(wǎng)絡(luò)設(shè)備通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送p個(gè)第一診斷報(bào)文,圖2中的tm的發(fā)送報(bào)文數(shù)和接收報(bào)文數(shù)均應(yīng)該為2p,若tm的流量統(tǒng)計(jì)結(jié)果中的發(fā)送報(bào)文數(shù)小于2p或者接收報(bào)文數(shù)小于2p,那么可以判斷指定接口板中的tm發(fā)生故障。
進(jìn)一步地,在采用圖3所示的故障檢測方法確定至少一個(gè)芯片發(fā)生故障之后,第一網(wǎng)絡(luò)設(shè)備可執(zhí)行恢復(fù)操作來修復(fù)第一網(wǎng)絡(luò)設(shè)備的故障。具體地,恢復(fù)操作包含如下至少一種操作:對至少一個(gè)芯片進(jìn)行重新加載;對至少一個(gè)芯片進(jìn)行復(fù)位;將至少一個(gè)芯片下電。
在第一網(wǎng)絡(luò)設(shè)備執(zhí)行上述恢復(fù)操作后,第一網(wǎng)絡(luò)設(shè)備可實(shí)現(xiàn)至少一個(gè)芯片的故障恢復(fù)和隔離,從而修復(fù)第一網(wǎng)絡(luò)設(shè)備的故障。
為了檢測第一網(wǎng)絡(luò)設(shè)備的故障是否修復(fù),在執(zhí)行上述恢復(fù)操作之后,第一網(wǎng)絡(luò)設(shè)備可通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第二診斷報(bào)文,并在pic中設(shè)置環(huán)回標(biāo)記;然后,第一網(wǎng)絡(luò)設(shè)備檢測第二環(huán)回報(bào)文與第二診斷報(bào)文是否一致,該第二環(huán)回報(bào)文為第二診斷報(bào)文在多個(gè)芯片間環(huán)回后得到的報(bào)文;第一網(wǎng)絡(luò)設(shè)備在第二環(huán)回報(bào)文與第二診斷報(bào)文一致時(shí)確定第一網(wǎng)絡(luò)設(shè)備發(fā)生的故障已修復(fù)。
采用圖3所示的故障檢測方法,由于第一網(wǎng)絡(luò)設(shè)備在通過指定接口板發(fā)送第一診斷報(bào)文時(shí)在指定接口板的pic中設(shè)置了環(huán)回標(biāo)記,因而該第一診斷報(bào)文在傳輸至pic后會(huì)按原路徑經(jīng)過指定接口板中的多個(gè)芯片環(huán)回,因而第一網(wǎng)絡(luò)設(shè)備可在接收到第一環(huán)回報(bào)文后,通過判斷第一環(huán)回報(bào)文與第一診斷報(bào)文是否一致,來判斷自身是否發(fā)生故障:當(dāng)?shù)谝画h(huán)回報(bào)文與第一診斷報(bào)文不一致時(shí),第一網(wǎng)絡(luò)設(shè)備確定自身發(fā)生故障。因而,采用圖3所示的故障檢測方法可確定第一網(wǎng)絡(luò)設(shè)備是否發(fā)生故障。特別地,當(dāng)確定第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間已經(jīng)發(fā)生業(yè)務(wù)故障后,可采用圖3所示的方法來確定該業(yè)務(wù)故障的故障來源。
需要說明的是,通過執(zhí)行圖3所示的方法,第一網(wǎng)絡(luò)設(shè)備可確定自身是否發(fā)生故障,但是第一網(wǎng)絡(luò)設(shè)備并不能確定第二網(wǎng)絡(luò)設(shè)備是否發(fā)生故障。若要確定第二網(wǎng)絡(luò)設(shè)備是否發(fā)生故障,可通過第二網(wǎng)絡(luò)設(shè)備執(zhí)行圖3所示的方法實(shí)現(xiàn)。比如,在確定第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間已經(jīng)發(fā)生業(yè)務(wù)故障后,第一網(wǎng)絡(luò)設(shè)備通過執(zhí)行圖3所示方法確定自身沒有發(fā)生故障后,第二網(wǎng)絡(luò)設(shè)備可通過執(zhí)行圖3所示方法來確定自身是否發(fā)生故障,若第二網(wǎng)絡(luò)設(shè)備也確定自身沒有發(fā)生故障,那么則可以確定導(dǎo)致該業(yè)務(wù)故障的原因是第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間的鏈路發(fā)生故障。
此外,在本申請實(shí)施例提供的故障檢測方法中,第一網(wǎng)絡(luò)設(shè)備可同時(shí)通過多個(gè)接口板發(fā)送第一診斷報(bào)文,來分別診斷多個(gè)接口板是否發(fā)生故障。
在圖3所示的故障檢測方法中,第一網(wǎng)絡(luò)設(shè)備有如下幾種狀態(tài):啟動(dòng)第一網(wǎng)絡(luò)設(shè)備的狀態(tài)(初始態(tài))、未發(fā)生業(yè)務(wù)故障的狀態(tài)(正常態(tài))、初步判斷可能發(fā)生業(yè)務(wù)故障的狀態(tài)(趨近態(tài))、確定發(fā)生業(yè)務(wù)故障的狀態(tài)(診斷態(tài))。
基于以上實(shí)施例,本申請還提供一種故障檢測方法,該故障檢測方法從上述第一網(wǎng)絡(luò)設(shè)備的幾種狀態(tài)的角度描述,可視為圖3所示方法的一個(gè)具體示例。參見圖4,該方法包括如下步驟:
(1)在初始態(tài)選擇可以發(fā)送大心跳報(bào)文的接口板,如果有滿足條件的接口板并且該接口板沒有故障標(biāo)志則將該接口板由初始態(tài)轉(zhuǎn)為正常態(tài),并通過該接口板發(fā)送大心跳報(bào)文。
其中,大心跳報(bào)文為一種icmp報(bào)文,可視為圖3所示的故障檢測方法中的檢測報(bào)文的一個(gè)具體示例。
在步驟(1)中,滿足條件的接口板可以是一個(gè),也可以是多個(gè)。當(dāng)滿足條件的接口板為多個(gè)時(shí),分別通過多個(gè)接口板發(fā)送大心跳報(bào)文。
(2)在正常態(tài)的一個(gè)檢測周期內(nèi)檢測到大心跳報(bào)文發(fā)生改包或丟包時(shí),將發(fā)送該大心跳報(bào)文的接口板轉(zhuǎn)為趨近態(tài)進(jìn)行檢測。
通過執(zhí)行步驟(2)可初步判斷第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間存在業(yè)務(wù)故障。
(3)在趨近態(tài)的一個(gè)檢測周期內(nèi)檢測到大心跳報(bào)文的丟包率或改包率達(dá)到預(yù)設(shè)閾值時(shí),則通知said(systemofactiveimmunizationanddiagnosis,主動(dòng)免疫維護(hù)系統(tǒng))模塊進(jìn)行診斷。
其中,said模塊為一種用于診斷本端的網(wǎng)絡(luò)設(shè)備(第一網(wǎng)絡(luò)設(shè)備)是否發(fā)生故障的診斷模塊。
通過執(zhí)行步驟(3)可確定第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間存在業(yè)務(wù)故障。
(4)said模塊將該第一網(wǎng)絡(luò)設(shè)備置為停止發(fā)包狀態(tài),將觸發(fā)診斷的接口板由趨近態(tài)轉(zhuǎn)為診斷態(tài),其他接口板則回到初始態(tài)。said模塊選擇一個(gè)報(bào)文模板,第一網(wǎng)絡(luò)設(shè)備通過該接口板、按照該報(bào)文模板發(fā)送第一診斷報(bào)文,并將觸發(fā)診斷的接口板中的pic置上環(huán)回標(biāo)記。
(5)第一診斷報(bào)文發(fā)送完成后,由said模塊獲取第一環(huán)回報(bào)文。
(6)said模塊根據(jù)第一環(huán)回報(bào)文與第一診斷報(bào)文的一致性判斷觸發(fā)診斷的接口板是否發(fā)生故障,當(dāng)?shù)谝画h(huán)回報(bào)文與第一診斷報(bào)文不一致時(shí)將該接口板置上故障標(biāo)志,并在判斷完成后將該接口板設(shè)置為初始態(tài)。
將步驟(1)~步驟(6)執(zhí)行一次可視為將圖3所示的故障檢測方法執(zhí)行了一次。
(7)將置有故障標(biāo)志的接口板由正常態(tài)轉(zhuǎn)為趨近態(tài),并通過置有故障標(biāo)志的接口板、按照步驟(4)中選擇的報(bào)文模板發(fā)送大心跳報(bào)文;
(8)針對在趨近態(tài)的檢測到大心跳報(bào)文的丟包率或改包率沒有達(dá)到預(yù)設(shè)閾值的接口板,進(jìn)入下一輪趨近態(tài)檢測;
(9)針對在趨近態(tài)沒有檢測到丟包或改包的接口板,清除該接口板的故障標(biāo)志,回到正常態(tài)檢測。
(10)針對步驟(8)中轉(zhuǎn)為趨近態(tài)的接口板以及步驟(9)中轉(zhuǎn)為正常態(tài)的接口板,若發(fā)送大心跳報(bào)文的丟包率或改包率沒有達(dá)到預(yù)設(shè)閾值,則說明這些接口板的故障已修復(fù),此時(shí)將這些接口板置為初始態(tài)。
通過執(zhí)行步驟(7)~步驟(10),可進(jìn)一步檢測步驟(6)確定的、發(fā)生故障的接口板的故障是否清除。
在圖4所示的故障檢測方法中,提出了said模塊的概念。在本申請實(shí)施例中,以said模塊為核心的said子系統(tǒng)可用于執(zhí)行故障檢測、診斷和恢復(fù)等操作。其中,檢測操作是指檢測本端網(wǎng)絡(luò)設(shè)備和對端網(wǎng)絡(luò)設(shè)備間是否發(fā)生業(yè)務(wù)故障的操作,診斷操作是指在發(fā)生業(yè)務(wù)故障的前提下診斷故障來源的操作,恢復(fù)操作是指在確定故障來源以后用于消除故障、恢復(fù)業(yè)務(wù)的操作。網(wǎng)絡(luò)設(shè)備中的said子系統(tǒng)組成可如圖5所示。
在圖5所示的said子系統(tǒng)中,said模塊的各個(gè)操作的具體含義是:
(1)said模塊通知其他模塊進(jìn)行預(yù)防性動(dòng)作,或獲取當(dāng)前狀態(tài);
(2)said模塊通知其他模塊進(jìn)行定時(shí)檢測;
(3)isis模塊發(fā)現(xiàn)異常,主動(dòng)通知said模塊;
(4)said模塊將消息過濾后進(jìn)行處理;
(5)said模塊檢測發(fā)現(xiàn)異常后,進(jìn)入診斷處理;
(6)said模塊調(diào)用rm模塊的診斷接口進(jìn)行模塊內(nèi)診斷;
(7)said模塊診斷完成后,進(jìn)入恢復(fù)處理;
(8)said模塊調(diào)用rm模塊的恢復(fù)接口嘗試模塊內(nèi)恢復(fù);
(9)本said模塊通知其他模塊繼續(xù)故障診斷;
(10)said模塊將信息輸入到said溯源模塊。
需要說明的是,圖5所述的said子系統(tǒng)是按照軟件功能進(jìn)行模塊劃分的,said子系統(tǒng)的組成也可按照不同的軟件功能進(jìn)行不同的模塊劃分,只要said子系統(tǒng)能夠?qū)崿F(xiàn)故障檢測、診斷和恢復(fù)即可。
基于以上實(shí)施例,本申請還提供一種故障檢測裝置,該裝置可用于執(zhí)行圖3所示的方法。參見圖6,該故障檢測裝置600(以下簡稱“裝置600”)包括發(fā)送單元601和處理單元602。
發(fā)送單元601用于通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文,并在指定接口板的pic中設(shè)置環(huán)回標(biāo)記,該環(huán)回標(biāo)記用于指示第一診斷報(bào)文在傳輸至pic后不發(fā)送至第二網(wǎng)絡(luò)設(shè)備、并按原路徑經(jīng)過指定接口板中的多個(gè)芯片環(huán)回。
處理單元602用于檢測第一環(huán)回報(bào)文與第一診斷報(bào)文是否一致,該第一環(huán)回報(bào)文為第一診斷報(bào)文在多個(gè)芯片間環(huán)回后得到的報(bào)文。
處理單元602,還用于在第一環(huán)回報(bào)文與第一診斷報(bào)文不一致時(shí),確定裝置600發(fā)生故障。
其中,第一診斷報(bào)文的目的mac地址可以為第二網(wǎng)絡(luò)設(shè)備的mac地址、目的ip地址可以為裝置600的ip地址。當(dāng)然,第一診斷報(bào)文的目的mac地址和目的ip地址也可不按此方式設(shè)置,本申請實(shí)施例中對此不做限定。
可選地,裝置600還包括:接收單元;發(fā)送單元601、接收單元以及處理單元602還用于:在發(fā)送單元601通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文之前,重復(fù)執(zhí)行如下步驟n次,n>1:發(fā)送單元601通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送檢測報(bào)文;接收單元接收轉(zhuǎn)發(fā)報(bào)文,轉(zhuǎn)發(fā)報(bào)文為第二網(wǎng)絡(luò)設(shè)備在接收到檢測報(bào)文后轉(zhuǎn)發(fā)給裝置600的報(bào)文;處理單元602檢測轉(zhuǎn)發(fā)報(bào)文與檢測報(bào)文是否一致,并在轉(zhuǎn)發(fā)報(bào)文與檢測報(bào)文一致時(shí)保持m的值不變、在轉(zhuǎn)發(fā)報(bào)文與檢測報(bào)文不一致時(shí)將m的值加一,m的初始值為0。
處理單元602,還用于:確定m與n的比值超過預(yù)設(shè)閾值。
其中,檢測報(bào)文的目的mac地址可以為第二網(wǎng)絡(luò)設(shè)備的mac地址、目的ip地址可以為裝置600的ip地址。當(dāng)然,檢測報(bào)文的目的mac地址和目的ip地址也可不按此方式設(shè)置,本申請實(shí)施例中對此不做限定。
可選地,處理單元602還用于:在檢測第一環(huán)回報(bào)文與第一診斷報(bào)文是否一致之后,若第一環(huán)回報(bào)文與第一診斷報(bào)文一致,則確定裝置600未發(fā)生故障。
可選地,發(fā)送單元601還用于:在首次執(zhí)行通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送檢測報(bào)文的步驟之前,通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送檢測報(bào)文;接收單元還用于:接收轉(zhuǎn)發(fā)報(bào)文;處理單元602還用于:檢測到轉(zhuǎn)發(fā)報(bào)文與檢測報(bào)文不一致。
可選地,發(fā)送單元601還用于:在處理單元602確定裝置600發(fā)生故障之后,通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送p個(gè)第一診斷報(bào)文,并在pic中設(shè)置環(huán)回標(biāo)記,p>1;處理單元602還用于:根據(jù)多個(gè)芯片中每個(gè)芯片基于p個(gè)第一診斷報(bào)文的流量統(tǒng)計(jì)結(jié)果,確定多個(gè)芯片中的至少一個(gè)芯片發(fā)生故障,流量統(tǒng)計(jì)結(jié)果用于指示多個(gè)芯片中每個(gè)芯片的發(fā)送報(bào)文數(shù)和/或接收報(bào)文數(shù)。
可選地,處理單元602還用于:在確定至少一個(gè)芯片發(fā)生故障之后,執(zhí)行恢復(fù)操作;其中,恢復(fù)操作包含如下至少一種操作:對至少一個(gè)芯片進(jìn)行重新加載;對至少一個(gè)芯片進(jìn)行復(fù)位;將至少一個(gè)芯片下電。
可選地,發(fā)送單元601還用于:在處理單元602執(zhí)行恢復(fù)操作之后,通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第二診斷報(bào)文,并在所述pic中設(shè)置環(huán)回標(biāo)記;接收單元還用于:檢測第二環(huán)回報(bào)文與第二診斷報(bào)文是否一致,該第二環(huán)回報(bào)文為第二診斷報(bào)文在所述多個(gè)芯片間環(huán)回后得到的報(bào)文;在第二環(huán)回報(bào)文與第二診斷報(bào)文一致時(shí),確定所述裝置發(fā)生的故障已修復(fù)。
可選地,處理單元602還用于:在發(fā)送單元601通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文之前,從預(yù)設(shè)的多個(gè)報(bào)文模板中選擇指定報(bào)文模板;發(fā)送單元601在通過指定接口板向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文時(shí),用于:按照指定報(bào)文模板生成第一診斷報(bào)文,并向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一診斷報(bào)文。
需要說明的是,本申請中對單元的劃分是示意性的,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式。另外,在本申請各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本申請各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(read-onlymemory,rom)、隨機(jī)存取存儲(chǔ)器(randomaccessmemory,ram)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
需要說明的是,裝置600可用于執(zhí)行圖3所示的方法,因此裝置600中未詳盡描述的實(shí)現(xiàn)方式以及有益效果可參見圖3所示方法中的相關(guān)描述,重復(fù)之處不再贅述。
基于以上實(shí)施例,本申請實(shí)施例還提供了一種故障檢測裝置,該故障檢測裝置可執(zhí)行圖3對應(yīng)的實(shí)施例提供的方法,可以與圖6所示的故障檢測裝置600相同。
參見圖7,故障檢測裝置700包括至少一個(gè)處理器701、存儲(chǔ)器702和通信接口703;所述至少一個(gè)處理器701、所述存儲(chǔ)器702和所述通信接口703均通過總線704連接;
所述存儲(chǔ)器702,用于存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;
所述至少一個(gè)處理器701,用于執(zhí)行所述存儲(chǔ)器702存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,使得所述故障檢測裝置700通過所述通信接口703與其它設(shè)備(比如第二網(wǎng)絡(luò)設(shè)備)進(jìn)行數(shù)據(jù)交互來執(zhí)行上述實(shí)施例提供的故障檢測方法。
至少一個(gè)處理器701,可以包括不同類型的處理器701,或者包括相同類型的處理器701;處理器701可以是以下的任一種:中央處理器(centralprocessingunit,簡稱cpu)、arm處理器、現(xiàn)場可編程門陣列(fieldprogrammablegatearray,簡稱fpga)、專用處理器等具有計(jì)算處理能力的器件。一種可選實(shí)施方式,所述至少一個(gè)處理器701還可以集成為眾核處理器。
存儲(chǔ)器702可以是以下的任一種或任一種組合:隨機(jī)存取存儲(chǔ)器(randomaccessmemory,簡稱ram)、只讀存儲(chǔ)器(readonlymemory,簡稱rom)、非易失性存儲(chǔ)器(non-volatilememory,簡稱nvm)、固態(tài)硬盤(solidstatedrives,簡稱ssd)、機(jī)械硬盤、磁盤、磁盤陣列等存儲(chǔ)介質(zhì)。
通信接口703用于故障檢測裝置700與其他設(shè)備(例如第二網(wǎng)絡(luò)設(shè)備)進(jìn)行數(shù)據(jù)交互。通信接口703可以是以下的任一種或任一種組合:網(wǎng)絡(luò)接口(例如以太網(wǎng)接口)、無線網(wǎng)卡等具有網(wǎng)絡(luò)接入功能的器件。
該總線704可以包括地址總線、數(shù)據(jù)總線、控制總線等,為便于表示,圖7用一條粗線表示該總線。總線704可以是以下的任一種或任一種組合:工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(industrystandardarchitecture,簡稱isa)總線、外設(shè)組件互連標(biāo)準(zhǔn)(peripheralcomponentinterconnect,簡稱pci)總線、擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(extendedindustrystandardarchitecture,簡稱eisa)總線等有線數(shù)據(jù)傳輸?shù)钠骷?/p>
綜上,本申請實(shí)施例提供一種故障檢測方法及裝置,采用本申請實(shí)施例可在確定第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備間已經(jīng)發(fā)生業(yè)務(wù)故障后,確定該業(yè)務(wù)故障的故障來源。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進(jìn)行各種改動(dòng)和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動(dòng)和變型在內(nèi)。