數據匯聚技術
數據匯聚技術是將多份數據或信息進行處理,組合出更有效、更符合用戶需求的數據的過程,減少傳輸過程的數據量,從而為無線感測器網路的能量節約發揮重大作用,極大的滿足了用戶對無線感測器網路的各類需求。但由於無線感測器網路面臨的惡劣環境以及感測器節點本身的脆弱性,使得網路內數據匯聚面臨安全問題的挑戰。
原理介紹
匯聚數據到基站是感測網應用程式的常見需求。常用的方法是建立至少一棵匯聚樹,樹根節點作為基站。當節點產生的數據要匯聚到根節點時,它沿著匯聚樹往上發,當節點收到數據時,則將它轉發給其他節點。有時匯聚協定需要根據匯聚數據的形式檢查過往的數據包,以便獲取統計信息,計算聚合度並抑制重複的傳輸。
匯聚協定的
數據流與一對多的分發協定相反,它提供了一種多對一、盡力、多跳將數據包傳送到根節點的方法。
當網路中具有不止一個根節點時,就形成了一片森林。匯聚協定通過選擇父節點隱式地讓節點加入其中一棵匯聚樹中。匯聚協定提供了到根節點的盡力、多跳傳輸,它是一個任意播協定,意味著這個協定會將訊息盡力傳輸到任意節點中的至少一個。但是這個傳輸並不保證必定是成功的,另外還有傳到多個根節點的問題,而且數據包到達的順序也沒有保證。
由於節點的
存儲空間有限並且建樹的算法要求是分散式的,因此匯聚協定的實現將遇到許多挑戰,主要包括以下幾點。
1)路由環路檢測:檢測節點是否選擇了子孫節點作為父節點。
2)重複抑制:檢測並處理網路中重複的包,避免浪費頻寬。
3)鏈路估計:估計單跳的鏈路質量。
4)自干擾:防止轉發的包干擾自己產生的包的傳送。
實例
TinyOS CTP協定
CTP(Collection Tree Protocol,匯聚樹協定)是TinyOS 2.x中自帶的匯聚協定,也是實際套用中最常用的匯聚協定之一。下文將詳細闡述CTP的總體架構、涉及的基本概念和工作流程。
CTP可以分為三個部分:鏈路估計器、路由引擎和轉發引擎。其中鏈路估計器位於最底層,負責估計兩個相鄰節點間的通信質量。路由引擎位於中間層,使用鏈路估計器提供的信息選擇到根節點傳輸代價最小的節點作為父節點。轉發引擎維護本地包和轉發包的傳送佇列,選擇適當的時機把隊頭的包傳送給父節點。