網絡故障定位系統及方法
2023-07-09 18:43:56 2
專利名稱:網絡故障定位系統及方法
技術領域:
本發明涉及一種網絡測試系統及方法,尤其是關於一種網絡故障定位系統及方法。
技術背景隨著網絡技術的飛速發展,計算機網絡已經成為人們生活及工作不可或缺的一部分。一 旦網絡通訊發生故障,可能會導致工作陷入癱瘓狀態或給生活造成不便。所以,當網絡發生 故障時,如何檢測發生故障的位置及原因, 一直是人們探求和期待解決的問題。目前在排除網絡故障方面,應用最廣發的是通過採用ICMP (Internet Control Message Protocol)數據包來探測目標計算機是否存活的方式發送端計算機發送一個ICMP數據包到 目標端計算機,如果在一定時間內發送端計算機接收到目標端計算機回送的響應ICMP數據包 ,則表明目標端計算機為存活狀態,如果未接收到響應ICMP數據包,則表明網絡存在故障。 這種機制就是我們通常所用的ping命令來檢測目標計算機是否可以ping到的機制。隨著計算機網絡的複雜化,網絡變成一個具備多層、多終端、多主幹入口的複雜體系。 一個網絡可能存在多個路由器、多個主幹入口,而我們使用的計算機通常屬於網絡某一級中 的某一點。上述網絡故障排除方法的不足開始顯露出來1.當網絡出現故障時,無從得知 具體是哪一段網絡、哪一個設備出現故障,網絡管理員只能逐一進行排査最終確定故障源; 2.當網絡出現故障時,無從得知具體是什麼原因導致的故障,只能對網絡軟體設置、網絡 協議、通訊線路、網絡硬體設備逐一進行檢査,能否快速準確地排除故障依賴於網絡管理員 的經驗及技能。發明內容鑑於以上內容,有必要提供一種網絡故障定位系統,可以在網絡出現故障時,準確地定 位發生故障的網絡節點及原因。此外,還有必要提供一種網絡故障定位方法,可以在網絡出現故障時,準確地定位發生 故障的網絡節點及原因。本發明提供一種網絡故障定位系統,運行於一臺計算機。該網絡故障定位系統包括設 置模塊,用於設置檢測的目標計算機的IP位址及設置檢測數據包的生存周期值;發送模塊, 用於向目標端計算機發送檢測數據包;接收模塊,用於接收網絡中網絡節點回送的響應數據 包;及檢査模塊,用於檢査接收到的響應數據包的報文類型為表明檢測數據包已到達目標端計算機的類型、為表明檢測數據包不可到達目標端計算機的類型還是超時報文類型,當響應 數據包的報文類型為表明檢測數據包不可到達目標端計算機的類型時,根據響應數據包的報 文信息確定故障發生位置及原因;當響應數據包的報文類型為超時報文類型時,由設置模塊 重新設置檢測數據包的生存周期值,並由發送模塊重新向目標端計算機發送檢測數據包。本發明還提供一種網絡故障定位方法,該方法包括以下步驟(a)設置檢測的目標端 計算機的IP位址;(b)設置檢測數據包的生存周期值為n, n為正整數,並初始化!1=1; (c )向目標端計算機發送檢測數據包;(d)在該檢測數據包流經每一個具有路由功能的網絡 節點時,其生存周期值被減l;(e)監測並接收從各個網絡節點反饋的對該檢測數據包的響 應數據包;(f)檢査接收到的響應數據包的報文類型為表明檢測數據包已到達目標端計算 機的類型、為表明檢測數據包不可到達目標端計算機的類型還是超時報文類型;及(g)若 響應數據包的報文類型為表明檢測數據包不可到達目標端計算機的類型,則根據響應數據包 中的信息確定發生故障的網絡節點及發生故障的原因,或者,若響應數據包的報文類型為超 時報文類型,則設置11=11+1,並返回步驟(c)。相較於現有技術,本發明提供的網絡故障定位系統及方法可以對數據包從發送端計算機 出發到目標端計算機經過的網絡設備逐一進行探測,直到出現故障為止,並準確定位出現故 障的位置及原因。
圖1是本發明網絡故障定位系統較佳實施例的運行環境圖。圖2是圖1中網絡故障定位系統的功能模塊圖。圖3是ICMP數據包的格式示意圖。圖4是本發明網絡故障定位方法較佳實施例的流程圖。
具體實施方式
如圖1所示,是本發明網絡故障定位系統較佳實施例的運行環境圖。網絡50中接入多個 網絡設備,包括計算機IO、集線器30、路由器40及其它設備,各計算機10通過通訊連接20及 適當的數據連接設備(例如集線器30或/及路由器40)相連接,並基於網絡協議(Internet Protocol, IP)實現與其它計算機10之間的通訊。本網絡故障定位系統100運行於任意一臺計算機10,可以將ICMP數據包從發送端計算機 10到目標端計算機10所經過的網絡節點全部探測出來,識別產生故障的網絡節點。該網絡故障定位系統100包括設置模塊110、發送模塊120、接收模塊130、檢査模塊 140及記錄模塊150。設置模塊110用於設置檢測的目標計算機的IP位址,所述目標計算機可以為一臺計算機 10,也可以為一個IP段的多個計算機IO,當目標計算機為一個IP段的多個計算機IO,所述IP位址為一個IP位址段。設置模塊110還用於設置ICMP檢測數據包的生存周期(Time To Live, TTL)值,並初始 化TK 。 TTL代表的是ICMP檢測數據包被丟棄之前允許通過的具有路由功能的網絡節點(例 如路由器40或具有路由功能的計算機10)數量。當ICMP數據包在網絡中傳遞時,其經過的每 個具有路由功能的網絡節點(如路由器40)都要將TTL值減1。當TTL值為O時,具有路由功能 的網絡節點(如路由器40)丟棄該ICMP檢測數據包,並發送一個ICMP響應數據包給發送端計 算機IO。有很多原因會導致ICMP檢測數據包在一定時間內不能被傳遞到目標端計算機IO。例 如,不正確的路由表配置可能導致數據包的無限循環,而解決方法就是在一段時間後丟棄該 ICMP檢測數據包,然後給發送端計算機10發送一個ICMP響應數據包,由發送端計算機10決定 是否重發該ICMP檢測數據包。如圖3所示,ICMP數據包(包括所述ICMP檢測數據包及ICMP響應數據包)的格式示意圖 。ICMP數據包分為兩級封裝,ICMP報文放在IP數據報的數據部分,IP數據報則放在幀的數據 中進行網絡傳輸。ICMP報文包括ICMP頭及ICMP數據。IP數據報包括IP頭及IP數據。IP頭包括 源IP位址及目的IP位址,其中,源IP位址指發送端計算機10或路由器的IP位址,目的IP位址 指目標端計算機10或路由器的IP位址。ICMP頭包括分別代表類型域、代碼域及校驗和的三個 欄位。類型域表示ICMP報文的類型,例如類型為8表示該ICMP報文為請求回應報文,類型為 ll表示該ICMP報文超時報文,類型為O表示該ICMP報文為目標端計算機10回送的回應報文, 類型為3表示目標端計算機10不可達。代碼域提供關於報文類型更進一步的信息,例如網絡 不可達、主機不可達、協議不可用等。校驗和是整個ICMP數據包的校驗和。發送模塊120用於向目標端計算機10發送ICMP檢測數據包。接收模塊130用於接收網絡50中網絡設備(計算機10或路由器40)回送的ICMP響應數據包。檢査模塊140用於監測接收模塊130是否收到ICMP響應數據包,並檢査接收到的ICMP響應 數據包的報文類型,是為O,為3,還是為ll。如果ICMP報文類型為O,則表明ICMP檢測數據包已成功到達目標端計算機IO,發送端計 算機10與目標端計算機10的IP、 ICMP軟體運行正常網絡暢通,流程結束。若檢査模塊140檢査ICMP報文類型為3,則表明ICMP檢測數據包在傳送過程中遇到網絡故 障(如硬體損壞或協議不支持等),導致ICMP檢測數據包被定向一個無效的目的地,這時無6效目的地(即發送網絡故障的位置)前一站的路由器或計算機10向發送端計算機回送目的不 可達數據包(類型為3),則檢査模塊140根據ICMP響應數據包中IP頭中源IP位址確定發生故 障的網絡節點,並根據代碼域中記載的具體情況確定發生故障的原因,是網絡不可達、主機 不可達等、協議不可用,還是別的原因。記錄模塊150用於記錄故障發生位置及故障原因。若檢査模塊140檢査ICMP報文類型為11,則表明ICMP檢測數據包還在網絡50中正常傳遞 ,當ICMP檢測數據包每經過一個具有路由功能的網絡節點(如路由器40)時,其TTL值被減 1,若TTL值被減1後不為0,則該ICMP檢測數據包會繼續向下一個網絡設備傳遞,直到當TTL 值為O時,該網絡節點丟棄該ICMP檢測數據包,並反饋一個超時報文給發送端計算機IO (類 型為ll)。記錄模塊150還用於記錄超時報文信息,據此發送端計算機10得知其與該網絡節點之間 的網絡正常,設置模塊110將上一次設置的TTL值加1後重新發送ICMP檢測數據包,以檢測發 送端計算機10與下一個網絡節點之間的網絡是否正常。如圖4所示,是本發明網絡故障定位方法較佳實施例的流程圖。在步驟SIOI,設置模塊110設置檢測的目標端計算機的IP位址,所述目標端計算機可以 為一臺計算機IO,也可以為一個IP段的多個計算機IO,當目標端計算機為一個IP段的多個計 算機IO,所述IP位址為一個IP位址段。在步驟S102,設置模塊110設置ICMP檢測數據包的TTL值,並初始化TTL4。 在步驟S103,發送模塊120向目標端計算機10發送ICMP檢測數據包。在步驟S104,檢査模塊140監測接收模塊130是否接收網絡50中網絡節點(計算機10或路 由器)回送的ICMP響應數據包。若未接收到,則繼續監測。在步驟S104,若檢査模塊140檢査接收模塊130接收到ICMP響應數據包,則在步驟S105, 檢査模塊140檢査ICMP響應數據包中的ICMP報文類型是為0還是為3,如果ICMP報文類型為O, 則表明ICMP檢測數據包已成功到達目標端計算機IO,發送端計算機10與目標端計算機10IP、 ICMP軟體運行正常網絡暢通,流程結束。在步驟S105,若檢査模塊140檢査ICMP響應數據包中的ICMP報文類型為3,則表明ICMP檢 測數據包在傳送過程中遇到網絡故障(如硬體損壞或協議不支持等),導致ICMP檢測數據包 被定向一個無效的目的地,這時無效目的地前一站的路由器或計算機10向發送端計算機10回 送目的不可達數據包(類型為3)。在步驟S106,檢査模塊140根據ICMP響應數據包中IP頭中 源IP位址確定發生故障的網絡節點,並根據代碼域中記載的具體情況確定發生故障的原因,是網絡不可達、主機不可達等、協議不可用,還是別的原因。 在步驟S107,記錄模塊150記錄故障發生位置及故障原因。在步驟S105,如果檢査模塊140檢査ICMP響應數據包中的ICMP報文類型不為0也不為3, 而為ll,即ICMP響應數據包的報文類型為超時報文,則表明ICMP監測數據包還在網絡50中傳 遞,當ICMP檢測數據包每經過一個具有路由功能的網絡節點(如路由器40)時,其TTL值被 減l,若TTL值被減1後不為0,則該ICMP檢測數據包會繼續向下一個網絡設備傳遞,直到當 TTL值為O時,該網絡節點(如路由器40)丟棄該ICMP檢測數據包,並反饋一個超時報文給發 送端計算機IO (類型為ll)。在步驟S108,記錄模塊150記錄超時報文信息,據此發送端計算機10得知其與該網絡節 點(路由器40)之間的網絡正常。在步驟S109,設置模塊110將上一次設置的ICMP檢測數據包的TTL值加1後返回步驟S103 ,發送模塊120重新向所述目標端計算機10發送ICMP檢測數據包,以檢測發送端計算機10與 下一個網絡節點之間的網絡是否正常。如此循環,直到査找到出現故障的網絡節點或探測完 所有網絡節點。
權利要求
1.一種網絡故障定位方法,其特徵在於,該方法包括以下步驟(a)設置檢測的目標端計算機的IP位址;(b)設置檢測數據包的生存周期值為n,n為正整數,並初始化n=1;(c)向目標端計算機發送檢測數據包;(d)在該檢測數據包流經每一個具有路由功能的網絡節點時,其生存周期值被減1;(e)監測並接收從各個網絡節點反饋的對該檢測數據包的響應數據包;(f)檢查接收到的響應數據包的報文類型為表明檢測數據包已到達目標端計算機的類型、為表明檢測數據包不可到達目標端計算機的類型還是超時報文類型;及(g)若響應數據包的報文類型為表明檢測數據包不可到達目標端計算機的類型,則根據響應數據包中的信息確定發生故障的網絡節點及發生故障的原因,或者,若響應數據包的報文類型為超時報文類型,則設置n=n+1,並返回步驟(c)。
2.如權利要求l所述的網絡故障定位方法,其特徵在於,所述超時 報文類型的響應數據包由將該檢測數據包的生存周期值減為零的網絡節點發送。
3.如權利要求l所述的網絡故障定位方法,其特徵在於,所述目標 端計算機為一臺計算機。
4.如權利要求l所述的網絡故障定位方法,其特徵在於,所述目標 端計算機為一個IP段的多臺計算機,所述IP位址為一個IP位址段。
5.如權利要求l所述的網絡故障定位方法,其特徵在於,當步驟(g )中響應數據包的報文類型為表明檢測數據包不可到達目標端計算機的類型時,該方法還包 括以下步驟(gl )記錄發生故障的網絡節點位置及發生故障的原因。
6.如權利要求l所述的網絡故障定位方法,其特徵在於,當步驟(g )中響應數據包的報文類型為超時報文類型時,該方法還包括以下步驟 (g2)記錄超時報文信息。
7. 一種網絡故障定位系統,運行於一臺計算機,其特徵在於,該網 絡故障定位系統包括設置模塊,用於設置檢測的目標計算機的IP位址及設置檢測數據包的生存周期值; 發送模塊,用於向目標端計算機發送檢測數據包; 接收模塊,用於接收網絡中網絡節點回送的響應數據包;及檢査模塊,用於檢査接收到的響應數據包的報文類型為表明檢測數據包已到達目標端 計算機的類型、為表明檢測數據包不可到達目標端計算機的類型還是超時報文類型,當響應 數據包的報文類型為表明檢測數據包不可到達目標端計算機的類型時,根據響應數據包的報 文信息確定故障發生位置及原因;當響應數據包的報文類型為超時報文類型時,由設置模塊 重新設置檢測數據包的生存周期值,並由發送模塊重新向目標端計算機發送檢測數據包。
8.如權利要求6所述的網絡故障定位系統,其特徵在於,所述檢測 數據包流經每一個具有路由功能的網絡節點時,其生存周期值被減l,所述超時報文類型的 響應數據包由將該檢測數據包的生存周期值減為零的網絡節點發送。
9.如權利要求6所述的網絡故障定位系統,其特徵在於,所述設置 模塊重新設置檢測數據包的生存周期值是在上一次設置的檢測數據包的生存周期值上加l。
10.如權利要求6所述的網絡故障定位系統,其特徵在於,該系統還 包括記錄模塊,用於記錄發生故障的網絡節點位置及發生故障的原因。
全文摘要
本發明提供一種網絡故障定位系統,運行於計算機,該計算機通過網絡與其它計算機連接。該系統包括設置模塊,用於設置檢測的目標端計算機的IP位址及設置檢測數據包的生存周期值;發送模塊,用於向目標端計算機發送檢測數據包;接收模塊,用於接收網絡中設備回送的響應數據包;檢查模塊,用於檢查所述響應數據包的報文類型,當響應數據包的報文類型為表明檢測數據包不可到達目標端計算機的類型時,根據響應數據包的報文信息確定故障發生位置及原因。本發明還提供一種網絡故障定位方法。利用本發明,可以準確定位網絡中出現故障的位置及原因。
文檔編號H04L12/26GK101605063SQ200810302070
公開日2009年12月16日 申請日期2008年6月10日 優先權日2008年6月10日
發明者常小軍 申請人:鴻富錦精密工業(深圳)有限公司;鴻海精密工業股份有限公司