無線感測器網路故障檢測研究
摘要:針對無線感測器網路資源受限的特點,研究了故障管理的相關內容,主要對故障檢測的幾種常見方法進行比較說明,對於無線感測器網路的應用具有一定的指導意義。
關鍵詞:無線感測器;資源受限;故障管理;故障檢測。
無線感測器網路是由大量低成本且具有感測、資料處理和無線通訊能力的感測器節點通過自組織方式形成的網路[1]。它獨立於基站或移動路由器等基礎通訊設施,通過特定的分散式協議自組織起來形成網路。它能夠協作地實時監測、感知和採集網路分佈區域內的各種環境或監測物件的資訊,並對這些資訊進行處理,使需要這些資訊的使用者在任何時間、任何地點和任何環境條件下(尤其是僅適合無線通訊條件下)獲取大量詳實而可靠的資訊。因此,這種網路系統可以被廣泛地應用於國防軍事、國家安全、環境監測、交通管理、醫療衛生、製造業、反恐抗災等領域。
隨著無線感測器網路應用範圍的進一步擴充套件,常常被部署在極端環境來收集外部環境的資料。由於感測器節點的電源、儲存和計算能力有限,並且應用環境惡劣,使得感測器節點比傳統網路的節點更易於失效。在這些情況下維持高質量的服務,並儘可能地降低能源消耗是很有挑戰性的,有效的故障管理對於達成這些目標是有極大幫助的。因此,對無線感測器網路故障進行管理是非常重要的。
1 無線感測器網路故障管理。
當網路或系統出現故障時,網路故障管理便成為管理員首要用到的工具。因此,故障管理事實上是整個網路管理的重中之重。
但遺憾的是,由於網路故障涉及到不同廠商,不同型別裝置,涉及複雜的網路拓撲結構,涉及不同組織對故障型別的不同定位規則。
從使用者的角度來說,希望在日常工作和生活中網路運營暢通,資訊傳輸不受任何網路故障干擾。而從網路執行和管理者角度來說,他們希望在網路運營過程中,即使發生故障,也能很快地得到故障發生的原因。這些方方面面的因素使得對無線感測器網路故障管理的研究在近年來發展比較緩慢。下面參照傳統網路的故障管理,將無線感測器網路的故障管理分為三個階段:故障檢測、故障診斷和故障恢復[2]來分別說明。
1) 故障檢測。
為了確定故障的存在,需要收集與網路狀態相關的資料。一般來說,網路發生故障後,網路裝置將處於不正常的狀態。通過獲取裝置的狀態資訊,就可以及時發現網路中出現的故障。收集網路狀態資訊有兩種方法:裝置向管理系統報告關鍵的網路事件;由網路管理系統定期地查詢網路裝置的狀態,即主動輪詢。
一般情況下,網路管理系統將這兩種方法結合起來使用。當對網路組成部件狀態進行檢測後,不嚴重的簡單故障通常被記錄在錯誤日誌中,並不作特別處理。而嚴重一些的故障則需要通過網路管理器,即所謂的“告警”。
網路裝置一般都具有感知異常情況的能力,當裝置發現自身或網路中的嚴重不正常現象時,它採用告警的方式報告給網管中心,因此,故障檢測一般由網路中的裝置完成。
2)故障診斷。
故障會在網路中傳播,所有感知到故障的網路物件(包括物理物件和邏輯物件)都會發生告警,在一個大型網路中,一個故障可能會引起大量的告警。故障診斷就是對網路裝置發出的告警進行相關處理,從一大堆的告警中找到故障發生的真正原因,並找出故障節點。在網路故障診斷中,一個理想的告警應該包含有關故障的五W 資訊(Who、What、Where、When 和why)。由於網路裝置對於自身以外的網路情況只瞭解非常有限的知識,所以網路裝置產生的大部分網路告警只回答了who、what 和when 三個問題,而故障診斷要進行where 和why 的推理。另外,告警噪聲的存在進一步增加了故障診斷的難度,這些告警噪聲包含:告警丟失、延遲、重複和虛假告警等。
3) 故障恢復。
故障恢復的主要目的是根據識別的故障原因,自動或手動地對網路進行控制操作,恢復網路的正常執行。
2 無線感測器網路故障檢測常見方法按照故障檢測的執行主體所處位置的不同,可以將無線感測器網路故障檢測方法分為集中式方法和分散式方法[3]。
2.1 集中式方法。
集中式方法[3]是無線感測器網路中較為常見的一種方法,一般來說是物理上或邏輯上處於中心位置的節點,負責對網路進行監控,追蹤失敗節點或可疑節點。由於中心節點要負責的事務較多,通常都讓該節點不受能量的限制,能夠執行大範圍的故障管理事務。集中式方法的結構如圖1 所示,主要採用週期輪詢的方式來對節點進行管理:中心節點通常採用週期性主動探測的方式釋出一些探測包,來獲取節點的狀態資訊,對獲得的資訊進行分析,從而確定節點是否失效。
採用集中式網路管理,所有的網路裝置都由一個管理者進行管理。當資訊流量不大的時候,集中式網路管理簡單且有效,在失效節點定位方面具有高效和準確的優點,所以它非常適用十小型的區域網絡。在集中式網路管理結構下,管理者作為“客戶”要完成複雜的網路管理任務,同時還必須與多個作為“伺服器”的代理交換資訊。這種結構存在著較大的缺陷,主要表現為:
1) 所有的分析和計算任務都集中在中心節點站, 造成網路管理的瓶頸,中心節點負載過重。由於其餘節點的資訊收集後都是發往中心節點,因此中心節點很可能變成一個專門用於資料傳輸的節點以滿足故障檢測和管理的需要。隨之而來的問題就是中心節點所在的區域會有大量的流量往來,導致該區域的節點能量消耗急劇增加,越是靠近中心節點的越是這樣,如圖1 中的A,B 節點。
2) 中心節點站一旦失效,整個網管系統就崩潰了,這樣導致整個系統的可靠性偏低。
3) 集中式結構導致大量的原始資料在網路上傳輸,帶來了大量額外的通訊量,佔用大量的通訊頻寬,並導致網管系統工作效率降低。
4) 用於監測網路並收集資料的代理是預先定義好且功能固定的,一旦要擴充套件新的功能時十分不便,這樣會造成系統的可擴充套件性較差。
5) 遠端節點與管理中心之間的距離較遠,且感測器網路中採用多跳通訊,因此這兩者之間的資訊互動時延過長。
2.2 分散式方法分散式方法支援區域性決策的概念,能夠平滑地將故障管理分散到網路中去。目標是讓節點在與中心節點通訊前,能夠給出一定層次的決策。在這種思想下,感測器節點能做的決策越多,越少的資訊將被傳輸給中心節點,從而減少通訊量。其演算法流程如右表1。分散式的方法通常分為以下幾種:
1) 節點自檢測方法。節點自檢測的方法依賴於節點自身所包含的功能進行故障檢測,並將檢測結果傳送給管理節點。文獻[4]中介紹了一種節點自檢測的方法,通過軟體和硬體的介面檢測物理節點的失效。硬體介面包含了幾個靈活的電路用於檢測節點的方位和碰撞。軟體介面包含了幾個軟體部件,用於取樣感測器節點的讀取行為。由於故障的檢測由節點本身完成,這種方法的優點是不需要部署額外的軟體或硬體節點用於故障檢測。
2) 鄰居協作的方法[5]。顧名思義,鄰居協作的基本思想就是:在節點發出故障告警之前,將節點獲得的故障資訊與鄰居(一跳通訊範圍內)獲得的故障資訊進行比較,得到確認的情況下才將故障資訊發往管理節點。在大多數的情況下,中心節點並不知道網路中的任何失效資訊,除非那些已經用節點協作方式確認的故障。這樣的設計減少了網路的通訊資訊,從而保留了節點的能量。
3) 基於分簇的方法[6]。基於分簇的方法將整個網路分成不同的簇,從而將故障管理也分散到各自的區域內完成。簇內採用散播的方式來定位失敗節點,簇頭節點與一跳範圍內的鄰居以某種規則交換資訊。通過分析收集到的資訊,根據預先定義的失敗檢測規則可以最終確定失敗節點。接著,如果發現了一個故障節點,該區域所在的節點將會把資訊傳播給所有的簇。
3 常見方法的比較。
從上可知,集中式方法與分散式方法都各有優缺點,針對於不同應用型別的網路,應該選取不同的方法。為了方便方法的選取,我們對上述方法個定性分析。考慮無線感測器網路本身能量有限的特點,以及故障檢測的一般目的,我們選取能量消耗、通訊開銷、故障檢測率和虛警率這四個方面進行比較,結果如表1。
4 結束語。
無線感測器網路的應用已經十分廣泛,而且,一般認為物聯網的最底部一層即為無線感測器網路, 因此對無線感測器網路的研究能很好地指導實踐工作。本文對無線感測器網路故障檢測的方法進行了分類描述分析, 對於指導無線感測器網路故障研究工作具有一定的指導意義。
關鍵詞:無線感測器;資源受限;故障管理;故障檢測。
無線感測器網路是由大量低成本且具有感測、資料處理和無線通訊能力的感測器節點通過自組織方式形成的網路[1]。它獨立於基站或移動路由器等基礎通訊設施,通過特定的分散式協議自組織起來形成網路。它能夠協作地實時監測、感知和採集網路分佈區域內的各種環境或監測物件的資訊,並對這些資訊進行處理,使需要這些資訊的使用者在任何時間、任何地點和任何環境條件下(尤其是僅適合無線通訊條件下)獲取大量詳實而可靠的資訊。因此,這種網路系統可以被廣泛地應用於國防軍事、國家安全、環境監測、交通管理、醫療衛生、製造業、反恐抗災等領域。
隨著無線感測器網路應用範圍的進一步擴充套件,常常被部署在極端環境來收集外部環境的資料。由於感測器節點的電源、儲存和計算能力有限,並且應用環境惡劣,使得感測器節點比傳統網路的節點更易於失效。在這些情況下維持高質量的服務,並儘可能地降低能源消耗是很有挑戰性的,有效的故障管理對於達成這些目標是有極大幫助的。因此,對無線感測器網路故障進行管理是非常重要的。
當網路或系統出現故障時,網路故障管理便成為管理員首要用到的工具。因此,故障管理事實上是整個網路管理的重中之重。
但遺憾的是,由於網路故障涉及到不同廠商,不同型別裝置,涉及複雜的網路拓撲結構,涉及不同組織對故障型別的不同定位規則。
從使用者的角度來說,希望在日常工作和生活中網路運營暢通,資訊傳輸不受任何網路故障干擾。而從網路執行和管理者角度來說,他們希望在網路運營過程中,即使發生故障,也能很快地得到故障發生的原因。這些方方面面的因素使得對無線感測器網路故障管理的研究在近年來發展比較緩慢。下面參照傳統網路的故障管理,將無線感測器網路的故障管理分為三個階段:故障檢測、故障診斷和故障恢復[2]來分別說明。
為了確定故障的存在,需要收集與網路狀態相關的資料。一般來說,網路發生故障後,網路裝置將處於不正常的狀態。通過獲取裝置的狀態資訊,就可以及時發現網路中出現的故障。收集網路狀態資訊有兩種方法:裝置向管理系統報告關鍵的網路事件;由網路管理系統定期地查詢網路裝置的狀態,即主動輪詢。
一般情況下,網路管理系統將這兩種方法結合起來使用。當對網路組成部件狀態進行檢測後,不嚴重的簡單故障通常被記錄在錯誤日誌中,並不作特別處理。而嚴重一些的故障則需要通過網路管理器,即所謂的“告警”。
網路裝置一般都具有感知異常情況的能力,當裝置發現自身或網路中的嚴重不正常現象時,它採用告警的方式報告給網管中心,因此,故障檢測一般由網路中的裝置完成。
2)故障診斷。
故障會在網路中傳播,所有感知到故障的網路物件(包括物理物件和邏輯物件)都會發生告警,在一個大型網路中,一個故障可能會引起大量的告警。故障診斷就是對網路裝置發出的告警進行相關處理,從一大堆的告警中找到故障發生的真正原因,並找出故障節點。在網路故障診斷中,一個理想的告警應該包含有關故障的五W 資訊(Who、What、Where、When 和why)。由於網路裝置對於自身以外的網路情況只瞭解非常有限的知識,所以網路裝置產生的大部分網路告警只回答了who、what 和when 三個問題,而故障診斷要進行where 和why 的推理。另外,告警噪聲的存在進一步增加了故障診斷的難度,這些告警噪聲包含:告警丟失、延遲、重複和虛假告警等。
3) 故障恢復。
故障恢復的主要目的是根據識別的故障原因,自動或手動地對網路進行控制操作,恢復網路的正常執行。
2 無線感測器網路故障檢測常見方法按照故障檢測的執行主體所處位置的不同,可以將無線感測器網路故障檢測方法分為集中式方法和分散式方法[3]。
2.1 集中式方法。
集中式方法[3]是無線感測器網路中較為常見的一種方法,一般來說是物理上或邏輯上處於中心位置的節點,負責對網路進行監控,追蹤失敗節點或可疑節點。由於中心節點要負責的事務較多,通常都讓該節點不受能量的限制,能夠執行大範圍的故障管理事務。集中式方法的結構如圖1 所示,主要採用週期輪詢的方式來對節點進行管理:中心節點通常採用週期性主動探測的方式釋出一些探測包,來獲取節點的狀態資訊,對獲得的資訊進行分析,從而確定節點是否失效。
採用集中式網路管理,所有的網路裝置都由一個管理者進行管理。當資訊流量不大的時候,集中式網路管理簡單且有效,在失效節點定位方面具有高效和準確的優點,所以它非常適用十小型的區域網絡。在集中式網路管理結構下,管理者作為“客戶”要完成複雜的網路管理任務,同時還必須與多個作為“伺服器”的代理交換資訊。這種結構存在著較大的缺陷,主要表現為:
1) 所有的分析和計算任務都集中在中心節點站, 造成網路管理的瓶頸,中心節點負載過重。由於其餘節點的資訊收集後都是發往中心節點,因此中心節點很可能變成一個專門用於資料傳輸的節點以滿足故障檢測和管理的需要。隨之而來的問題就是中心節點所在的區域會有大量的流量往來,導致該區域的節點能量消耗急劇增加,越是靠近中心節點的越是這樣,如圖1 中的A,B 節點。
2) 中心節點站一旦失效,整個網管系統就崩潰了,這樣導致整個系統的可靠性偏低。
3) 集中式結構導致大量的原始資料在網路上傳輸,帶來了大量額外的通訊量,佔用大量的通訊頻寬,並導致網管系統工作效率降低。
4) 用於監測網路並收集資料的代理是預先定義好且功能固定的,一旦要擴充套件新的功能時十分不便,這樣會造成系統的可擴充套件性較差。
5) 遠端節點與管理中心之間的距離較遠,且感測器網路中採用多跳通訊,因此這兩者之間的資訊互動時延過長。
2.2 分散式方法分散式方法支援區域性決策的概念,能夠平滑地將故障管理分散到網路中去。目標是讓節點在與中心節點通訊前,能夠給出一定層次的決策。在這種思想下,感測器節點能做的決策越多,越少的資訊將被傳輸給中心節點,從而減少通訊量。其演算法流程如右表1。分散式的方法通常分為以下幾種:
1) 節點自檢測方法。節點自檢測的方法依賴於節點自身所包含的功能進行故障檢測,並將檢測結果傳送給管理節點。文獻[4]中介紹了一種節點自檢測的方法,通過軟體和硬體的介面檢測物理節點的失效。硬體介面包含了幾個靈活的電路用於檢測節點的方位和碰撞。軟體介面包含了幾個軟體部件,用於取樣感測器節點的讀取行為。由於故障的檢測由節點本身完成,這種方法的優點是不需要部署額外的軟體或硬體節點用於故障檢測。
2) 鄰居協作的方法[5]。顧名思義,鄰居協作的基本思想就是:在節點發出故障告警之前,將節點獲得的故障資訊與鄰居(一跳通訊範圍內)獲得的故障資訊進行比較,得到確認的情況下才將故障資訊發往管理節點。在大多數的情況下,中心節點並不知道網路中的任何失效資訊,除非那些已經用節點協作方式確認的故障。這樣的設計減少了網路的通訊資訊,從而保留了節點的能量。
3) 基於分簇的方法[6]。基於分簇的方法將整個網路分成不同的簇,從而將故障管理也分散到各自的區域內完成。簇內採用散播的方式來定位失敗節點,簇頭節點與一跳範圍內的鄰居以某種規則交換資訊。通過分析收集到的資訊,根據預先定義的失敗檢測規則可以最終確定失敗節點。接著,如果發現了一個故障節點,該區域所在的節點將會把資訊傳播給所有的簇。
3 常見方法的比較。
從上可知,集中式方法與分散式方法都各有優缺點,針對於不同應用型別的網路,應該選取不同的方法。為了方便方法的選取,我們對上述方法個定性分析。考慮無線感測器網路本身能量有限的特點,以及故障檢測的一般目的,我們選取能量消耗、通訊開銷、故障檢測率和虛警率這四個方面進行比較,結果如表1。
4 結束語。
無線感測器網路的應用已經十分廣泛,而且,一般認為物聯網的最底部一層即為無線感測器網路, 因此對無線感測器網路的研究能很好地指導實踐工作。本文對無線感測器網路故障檢測的方法進行了分類描述分析, 對於指導無線感測器網路故障研究工作具有一定的指導意義。