摘要:無線傳感器網絡通常由能量有限的大量傳感器節點組成,數據分發是無線傳感器網絡的一個基本功能。設計能量有效的數據分發方案可以優化數據傳輸路徑,減少能量消耗和網絡擁塞,有效延長網絡壽命。文章在簡要介紹數據分發分類的基礎上,重點分析了目前主要的數據分發方案,并進行了比較。
關鍵詞:無線傳感器網絡;數據分發;能量有效;sink節點;方案
0引言
無線傳感器網絡是由許多具有感知、計算和通信能力的低成本低功耗的微型傳感器組成,用于實時感知和采集網絡覆蓋區域內的感知對象的信息,常常由成百上千個傳感器協同工作。這些傳感器一般可分成兩類:一是具有通信能力的傳感器節點,稱為源節點。源節點通過內置的一個或多個物理傳感器,如溫度傳感器、光傳感器等,可對觀察范圍內的感知對象產生原始數據。這些節點靠不能補充能量的電池供電,具有有限的能量。二是網關節點,也稱為sink節點(或基站),這些節點用于實現傳感器網絡與Internet的連接,往往個數有限,但能量能夠得到補充。無線傳感器網絡的主要目的是從監測環境中收集用戶感興趣的數據,發送給sink節點。因此,數據分發是無線傳感器網絡的一個基本功能,而帶寬和能量是傳感器網絡中最為缺乏的資源,為了延長網絡的生存時間,設計能量有效的數據分發方案是至關重要的。

1 數據分發的分類
在傳感器網絡中,數據分發的分類有三種。而一種是按照數據傳輸的方向,分為三類:
(1)源節點到sink節點的數據分發。源節點把探測到的感知數據發送給sink節點。
(2)源節點之間的數據分發。當源節點之間需要協作時,由請求源節點發送消息給需要合作的其他源節點。
(3)sink節點到源節點的數據分發。sink節點可以改變部分或全部傳感器節點的操作模式,向網絡中廣播一條新的消息,激活或睡眠一個或多個源節點,向網絡中發送查詢等。
第二種是根據通信周期,分為三類:
(1)事件驅動(event-driven)數據分發。只有在感興趣的事件發生時才構建路徑,發送數據,從而減少了持續更新路徑的費用。
(2)連續數據分發(confinuous dissemination)。每個源節點定期地發送數據給sink節點,需要定期重建路徑。
(3)查詢驅動數據分發。只有sink節點需要查詢時,才構建數據分發路徑,符合條件的源節點響應查詢,并將感知數據發送給sink節點。
第三種是根據應用類型,也分為三類:
(1)固定源節點與固定sink節點間的數據分發。源節點與sink節點一旦配置好,它們的位置就不再改變,直到網絡終止,這是使用最廣泛的數據分發。
(2)固定源節點與移動sink節點間的數據分發。用戶使用如PDA等移動設備在感知區域內移動,通過查詢源節點來獲取有關對象的當前狀態或近來目標活動的概況。

(3)移動源節點與移動sink節點間的數據分發。可用于監測和跟蹤移動目標的傳感器網絡。
2 數據分發方案
無線傳感器網絡的主要功能是實現數據分發,而有效、可靠的數據分發關鍵在于建立數據傳輸路徑。設計能量有效的數據分發方案可以優化數據傳輸路徑,減少節點能量的消耗和網絡擁塞,提高數據傳輸性能,有效延長網絡壽命。近年來,許多研究者注意到了數據分發的重要性,并提出了許多數據分發方案,其中具有代表性的有以下幾種。

2.1基于外部存儲的數據分發方案(External Storage-baseddata dissemination scheme,ES)
這是使用最廣泛的一種方案,它依賴于一個位于傳感器網絡外部的集中式基站,該基站用于收集和存儲感知數據。這種方案必須把源節點的所有感知數據通過泛洪傳送給基站,用戶通過查詢基站來獲取數據。但當查詢過多時,ES數據分發方案將非常低效。
2.2基于數據中心存儲的數據分發方案(Data-Centric Stor-age-based data dissemination scheme,DCS)
當源節點監測到事件的感知數據時,源節點向它的相鄰節點廣播感知數據的描述信息,感興趣的節點發送相應的請求給源節點,源節點才向請求者發送數據信息,接收到數據的節點再向它的相鄰節點廣播消息,如此重復,使所有節點都有機會接收到任何數據。因此,事件的感知數據可能被存儲在網絡中的部分或全部源節點上。但不管什么查詢,數據都使用預定義的方式傳送。這種方案缺乏適應性,并且在查詢率較低時,可能會引起很多不必要的數據傳輸。
2.3基于本地存儲的數據分發方案(Local Storage-baseddata dissemination scheme,LS)
源節點只有收到sink節點的查詢時,才發送數據給sink節點,這樣可以避免傳輸不必要的感知數據。這種方案需要建立一個sink-source的匹配機制,使sink節點容易找到持有所需數據的源節點,大多數采用的匹配機制遵循flood-response模式,需要在網絡中泛洪某些控制消息。比如,在DirectedDiffusion(DD)中,sink節點把查詢泛洪到整個網絡中,沿途節點按需對各查詢進行緩存,并根據查詢計算梯度,使具有被請求數據的源節點知道把數據發送到什么位置。而在Two-TierData Dissemination(TTDD)中,由監測到某個事件發生的源節點以自身作為網格的一個分發節點構造一個網格,sink節點在本地發送泛洪查詢請求到最近的分發節點,該節點再轉發給鄰近的分發節點,直到把查詢請求發送到該源節點,數據再反向傳送到sink節點。LS數據分發方案由于需要大范圍的網絡泛洪,可能會引起嚴重的網絡阻塞和大量的能量消耗。
2.4多級數據分發方案(Multi-Resolution data dissemination scheme,MR)
這是綜合LS和DCS數據分發技術的一種數據分發方案,其基本思想是在數據源中選擇一個頭節點,代表數據源中所有源節點在最近的注冊節點上進行注冊,sink節點把查詢發送到所有注冊節點上,從注冊節點再把查詢發送到所有匹配的頭節點,當頭節點收到查詢后,使用局部節點選擇算法在數據源內選擇一組節點進行查詢。由于sink節點的位置包含在它分派的查詢中,查詢節點可以直接把感知數據發送給sink節點,如圖1所示。這種數據分發方案避免了查詢泛洪,能有效減少能量消耗,而且通過減少冗余數據的分發進一步達到節省能量的作用。但是在數據源中只是基于感知范圍參數來選擇查詢節點,沒有考慮數據的分布情況。
2.5基于索引的數據分發方案(Index-based Data DisseminationScheme,IDDS)
為了克服以上幾種數據分發方案存在的問題,提出了基于索引的數據分發方案。在這種方案中,負責監測某對象的源節點定期產生有關該監測對象的感知數據,并把感知數據存儲到存儲節點(storing nodes)3:,存儲節點可能是該源節點,也可能是鄰近的某個節點。同時,存儲節點的位置信息,稱為索引(Index),要增加到與監測對象有關聯的某些節點上,這些節點稱為索引節點(Index nodes),并在索引節點上進行維護。當被監測對象移動時,要改變相應的監測源節點。但是,新的監測節點仍然使用原來的存儲節點保存感知數據,直到監測節點離存儲節點很遠時,才選擇新的存儲節點。當選擇了一個新的存儲節點時,原來的存儲節點處理以前存儲的數據,產生一個匯總數據,發送給新的存儲節點。如果不匯總以前的數據,新的存儲節點可以使用一個指針指向原來的存儲節點,這樣,從當前存儲節點也可以訪問以前的數據。并且,新的存儲節點也應在與該監測對象有關的索引節點上注冊它的索引。
當sink節點想查詢某個監測對象的感知數據時,就發送一個查詢消息給與監測對象有關的索引節點,索引節點收到該消息后轉發該請求給相應的存儲節點,由存儲節點直接發送查詢結果給sink節點,存儲節點只有接收到sink節點的查詢時,才發送數據給sink節點。其基本思想如圖2所示。這種數據分發方案避免了發送不需要的感知數據,也不需要把控制信息泛洪到整個網絡,改善了整個系統的性能,但是增加了維護索引節點的額外費用。
3 數據分發方案的比較
根據上一節的說明和分析,表1對以上5種數據分發方案的特點進行了總結和比較。方案特點包括:是否建立最佳數據分發路徑;是否存在影響數據分發的關鍵節點;是否支持sink節點移動;是事件驅動、查詢驅動還是連續數據分發;數據分發所需的通信量、計算量和存儲量。
4 結束語
由于傳感器網絡節點的能量非常有限,因此,在數據分發時應盡可能地節能。基于泛洪的方法雖然簡單、可靠,但最為耗能。為了降低能耗,延長網絡的生存時間,己提出了一些能量有效的數據分發方案。本文對幾種典型的數據分發方案進行了說明和分析,并歸納、總結和比較了它們的特點。