中心議題:
- 設(shè)計能量有效的數(shù)據(jù)分發(fā)方案至關(guān)重要
- 概述無線傳感器網(wǎng)絡(luò)中節(jié)點是否可移動的三種情況
- 分析目前提出的主要數(shù)據(jù)分發(fā)方案
解決方案:
- 建立數(shù)據(jù)分發(fā)的路徑是有效可靠的數(shù)據(jù)分發(fā)關(guān)鍵所在
- 源與sink節(jié)點均固定的數(shù)據(jù)分發(fā)方案
- 源節(jié)點固定而sink節(jié)點不固定的數(shù)據(jù)分發(fā)方案
- 源與sink節(jié)點均不固定的數(shù)據(jù)分發(fā)方案
無線傳感器網(wǎng)絡(luò)是由大量具有感知、計算和通信能力的低成本低功耗的微型傳感器組成,用于實時感知和采集網(wǎng)絡(luò)覆蓋區(qū)域內(nèi)的感知對象的信息,在軍事國防、醫(yī)療健康、環(huán)境監(jiān)測、搶險救災、防恐反恐、動物習性以及交通流量監(jiān)測等領(lǐng)域都具有廣闊的應(yīng)用前景,特別適合應(yīng)用于人不宜到達的惡劣環(huán)境和危險區(qū)域。無線傳感器網(wǎng)絡(luò)常常由成百上千個傳感器協(xié)同工作,傳感器網(wǎng)絡(luò)中的節(jié)點一般可分成兩類:一是傳感器節(jié)點,也稱為源節(jié)點,這些節(jié)點可對觀察范圍內(nèi)的感知對象產(chǎn)生原始數(shù)據(jù),并可存儲、處理和傳輸數(shù)據(jù),這些節(jié)點靠不能補充的電池供電,能量有限;二是網(wǎng)關(guān)節(jié)點,也稱為sink節(jié)點(或基站),這些節(jié)點用于實現(xiàn)傳感器網(wǎng)絡(luò)與Internet的連接,往往數(shù)量有限,但能量能夠得到補充。研究表明,傳感器網(wǎng)絡(luò)中數(shù)據(jù)通信需要消耗大量能量,如何建立有效的數(shù)據(jù)傳輸路徑,節(jié)約節(jié)點的傳輸能耗,延長網(wǎng)絡(luò)生存期,設(shè)計能量有效的數(shù)據(jù)分發(fā)方案是至關(guān)重要的。
數(shù)據(jù)分發(fā)的分類
根據(jù)源節(jié)點與sink節(jié)點是否可移動,數(shù)據(jù)分發(fā)可分為三類:
(1)固定源節(jié)點與固定sink節(jié)點間的數(shù)據(jù)分發(fā)。源節(jié)點與sink節(jié)點一旦配置好,它們的位置就不再改變,直到網(wǎng)絡(luò)終止,這是使用最廣泛的數(shù)據(jù)分發(fā)。
(2)固定源節(jié)點與移動sink節(jié)點間的數(shù)據(jù)分發(fā)。用戶使用PDA移動設(shè)備在感知區(qū)域內(nèi)移動,通過查詢源節(jié)點來獲取有關(guān)對象的當前狀態(tài)或近來目標活動的概況。
(3)移動源節(jié)點與移動sink節(jié)點間的數(shù)據(jù)分發(fā)。可用于監(jiān)測和跟蹤移動目標的傳感器網(wǎng)絡(luò)。
數(shù)據(jù)分發(fā)方案
有效可靠的數(shù)據(jù)分發(fā)關(guān)鍵在于建立數(shù)據(jù)分發(fā)的路徑,通常要考慮節(jié)點的剩余能量、所處的地理位置、網(wǎng)絡(luò)拓撲、當前環(huán)境和節(jié)點狀態(tài)等因素。數(shù)據(jù)分發(fā)方案主要用于優(yōu)化數(shù)據(jù)分發(fā)路徑,使其盡量接近最佳路徑,以減少能量消耗和網(wǎng)絡(luò)擁塞,有效延長網(wǎng)絡(luò)壽命。針對數(shù)據(jù)分發(fā)的三種分類,需要使用不同的數(shù)據(jù)分發(fā)方案,才能確保有效的數(shù)據(jù)傳輸。
a. 源與sink節(jié)點均固定的數(shù)據(jù)分發(fā)方案
源與sink節(jié)點均固定的傳感器網(wǎng)絡(luò)應(yīng)用最為廣泛,常用于環(huán)境監(jiān)測、搶險救災、防恐反恐以及交通流量監(jiān)測等,吸引了許多研究者的關(guān)注,提出了以下典型的數(shù)據(jù)分發(fā)方案:
(1)基于外部存儲的數(shù)據(jù)分發(fā)方案ES(External Storage-based data dissemination scheme)[1],這是使用最廣泛的一種方案,它依賴于一個位于傳感器網(wǎng)絡(luò)外部的集中式基站,該基站用于收集和存儲感知數(shù)據(jù)。這種方案必須把源節(jié)點的所有感知數(shù)據(jù)傳送給基站,在查詢過多時,非常低效。
(2)基于數(shù)據(jù)中心存儲的數(shù)據(jù)分發(fā)方案DCS(Data-Centric Storage-based data dissemination scheme)[2],事件的感知數(shù)據(jù)被存儲在網(wǎng)絡(luò)中的某些節(jié)點上,不管什么查詢,數(shù)據(jù)都使用預定義的方式傳送。這種方案缺乏適應(yīng)性,可能會引起很多不必要的數(shù)據(jù)傳輸,查詢效率較低。
(3)基于本地存儲的數(shù)據(jù)分發(fā)方案LS(Local Storage-based data dissemination scheme),源節(jié)點只有收到sink節(jié)點的查詢時,才發(fā)送數(shù)據(jù)給sink節(jié)點,這樣可以避免傳輸不必要的感知數(shù)據(jù)。這種方案需要一個sink-source的匹配機制,使sink節(jié)點容易找到持有所需數(shù)據(jù)的源節(jié)點,大多數(shù)采用匹配機制遵循flood-response的模式,需要在網(wǎng)絡(luò)中泛洪某些控制消息。由于大范圍的網(wǎng)絡(luò)泛洪,可能會引起嚴重的網(wǎng)絡(luò)阻塞和大量的能量消耗。
(4)基于索引的數(shù)據(jù)分發(fā)方案(index-based data dissemination scheme)[3],這種方案克服了以上幾種方案存在的問題。在這種方案中,負責監(jiān)測某對象的源節(jié)點定期產(chǎn)生該監(jiān)測對象的感知數(shù)據(jù),并存儲到存儲節(jié)點上,存儲節(jié)點可能是該源節(jié)點,也可能是鄰近的某個節(jié)點。同時,存儲節(jié)點的位置信息(稱為索引),要增加到索引節(jié)點上。當sink節(jié)點想查詢某個被監(jiān)測對象產(chǎn)生的感知數(shù)據(jù)時,就發(fā)送一條查詢消息給有關(guān)的索引節(jié)點,索引節(jié)點收到該消息后轉(zhuǎn)發(fā)查詢請求給相應(yīng)的存儲節(jié)點,由存儲節(jié)點直接發(fā)送查詢結(jié)果給sink節(jié)點。其基本思想如圖1所示。這種數(shù)據(jù)分發(fā)方案避免了發(fā)送不需要的感知數(shù)據(jù),也不需要把控制信息泛洪到整個網(wǎng)絡(luò),改善了整個系統(tǒng)的性能,但是增加了維護索引節(jié)點的額外費用。
(5)多級數(shù)據(jù)分發(fā)方案(multi-resolution data dissemination scheme)[4],綜合了LS和DCS數(shù)據(jù)分發(fā)方案的技術(shù)。其基本思想是在數(shù)據(jù)源中選擇一個頭節(jié)點,代表源節(jié)點在最近的注冊節(jié)點上進行注冊。sink節(jié)點把查詢發(fā)送到所有注冊節(jié)點上,從注冊節(jié)點再把查詢發(fā)送到所有匹配的頭節(jié)點,當頭節(jié)點收到查詢后,在數(shù)據(jù)源內(nèi)選擇一組節(jié)點進行查詢。由于sink節(jié)點的位置包含在它分派的查詢中,查詢節(jié)點可以直接把感知數(shù)據(jù)發(fā)送給sink節(jié)點,其基本思想如圖2所示。這種數(shù)據(jù)分發(fā)方案避免了查詢泛洪,能有效減少能量消耗。但是在數(shù)據(jù)源中只是基于感知范圍參數(shù)來選擇查詢節(jié)點,沒有考慮數(shù)據(jù)的分布情況。
b. 源節(jié)點固定而sink節(jié)點不固定的數(shù)據(jù)分發(fā)方案
源節(jié)點固定,而sink節(jié)點可以移動的傳感器網(wǎng)絡(luò)應(yīng)用廣泛。每個移動的sink節(jié)點,只要定期報告它們的當前位置,就可從源節(jié)點處接收到感知數(shù)據(jù)。但頻繁的位置更新需要消耗大量能量,而帶寬和電池能量是嚴格受限的。針對這種傳感器網(wǎng)絡(luò)的特點,研究者提出了一些數(shù)據(jù)分發(fā)方案,其中比較典型的有以下幾種:
(1)TTDD(Two-Tier Data Dissemination)數(shù)據(jù)分發(fā)方案[5]。該方案是把監(jiān)測區(qū)域分成一些均勻的網(wǎng)格單元,把最靠近網(wǎng)格邊界的傳感器節(jié)點稱為分發(fā)節(jié)點,用來轉(zhuǎn)發(fā)數(shù)據(jù)。當監(jiān)測某個事件的源節(jié)點把事件泛洪到網(wǎng)絡(luò)中時,對該事件感興趣的sink節(jié)點在其所在單元內(nèi)泛洪查詢,最近的分發(fā)節(jié)點收到該查詢時,把查詢轉(zhuǎn)發(fā)給鄰近的分發(fā)節(jié)點,轉(zhuǎn)發(fā)處理一直持續(xù)到查詢到達源節(jié)點或擁有相應(yīng)數(shù)據(jù)的分發(fā)節(jié)點。在查詢轉(zhuǎn)發(fā)期間,建立發(fā)送數(shù)據(jù)給sink節(jié)點的反向路徑。TTDD使用局部查詢泛洪,有效防止了在大規(guī)模網(wǎng)絡(luò)中的消息爆炸。然而網(wǎng)格構(gòu)建和維護將導致相當大的開銷,帶寬和能量的使用效率低,而且局部泛洪仍然會浪費大量能量。
(2)EDDA(Efficient Data Dissemination and Aggregation)數(shù)據(jù)分發(fā)方案[6],這也是基于網(wǎng)格的數(shù)據(jù)分發(fā)方案,但EDDA克服了TTDD中存在的問題。在EDDA中,相同數(shù)據(jù)類型的源節(jié)點共享一個網(wǎng)格結(jié)構(gòu)來分發(fā)它們的感知數(shù)據(jù),同時網(wǎng)格共享也提高了數(shù)據(jù)聚合的機會,而且用單目標廣播消息取代了局部泛洪。在EDDA中,sink使用hash函數(shù)來獲取鄰近的直接分發(fā)節(jié)點的位置,然后通過單目標廣播把查詢發(fā)送給該節(jié)點。但EDDA仍然要在監(jiān)測區(qū)域上構(gòu)建和維護網(wǎng)格。
(3)HDDS(Hierarchical Data Dissemination schemes)數(shù)據(jù)分發(fā)方案[7]。HDDS通過構(gòu)建不均勻的網(wǎng)格來分發(fā)數(shù)據(jù)。源節(jié)點在其配置領(lǐng)域的網(wǎng)格F內(nèi)選擇一個節(jié)點作為分發(fā)節(jié)點d,負責把源節(jié)點的感知數(shù)據(jù)傳送給F內(nèi)的任意sink節(jié)點。由于傳感器節(jié)點的存儲容量有限,d只能為有限個(k個)sink服務(wù),當d收到k+1個sink的預約消息時,需要新增一層分發(fā)節(jié)點來處理。數(shù)據(jù)由d逐次轉(zhuǎn)發(fā)給由其增加的分發(fā)節(jié)點,直到轉(zhuǎn)發(fā)給sink代理為止。在HDDS中,數(shù)據(jù)從源到移動sink的發(fā)送路徑,只有在發(fā)送查詢期間才建立,且數(shù)據(jù)發(fā)送路徑接近于最短路線,能夠更有效地減少總能量的消耗,但構(gòu)建不均勻網(wǎng)格作為分發(fā)節(jié)點的覆蓋區(qū)域也要消耗能量。
(4)ODDD(On-Demand Data Dissemination)數(shù)據(jù)分發(fā)方案[8]。在ODDD方案中,源節(jié)點不需要提前構(gòu)建一個虛擬網(wǎng)格,因此,ODDD減少了在整個網(wǎng)絡(luò)上創(chuàng)建和維護虛擬網(wǎng)格結(jié)構(gòu)的費用。當源節(jié)點監(jiān)測到某類型d的感知數(shù)據(jù)時,使用hash函數(shù)計算出網(wǎng)格點的位置,并把數(shù)據(jù)聲明消息發(fā)送給最靠近該網(wǎng)格點位置的節(jié)點N,如果存在d的分發(fā)路徑,就使用它來傳播數(shù)據(jù)聲明消息;否則,N變成d的一個網(wǎng)格點,沿著X軸轉(zhuǎn)發(fā)數(shù)據(jù)聲明消息。當sink節(jié)點想獲取類型d的數(shù)據(jù)時,它應(yīng)用同一個hash函數(shù)計算出直接分發(fā)點,并把查詢發(fā)送給它,直接分發(fā)點沿著Y軸轉(zhuǎn)發(fā)該查詢。如果網(wǎng)格點收到查詢,它將檢查廣播列表,查看是否已包含查詢中指定的數(shù)據(jù)聲明。如果包含,則該網(wǎng)格點沿著數(shù)據(jù)聲明消息相反的路徑轉(zhuǎn)發(fā)查詢給相應(yīng)的源節(jié)點,源節(jié)點一旦收到該查詢,就開始沿著查詢聲明的相反路徑把數(shù)據(jù)發(fā)送給sink,數(shù)據(jù)的轉(zhuǎn)發(fā)先沿著X軸,再沿著Y軸到達sink節(jié)點。
c.源與sink節(jié)點均不固定的數(shù)據(jù)分發(fā)方案
當源節(jié)點和sink節(jié)點可以移動時,前面介紹的數(shù)據(jù)分發(fā)方案都不是很有效。參考文獻[9]提出了基于動態(tài)代理樹的數(shù)據(jù)分發(fā)方案(Dynamic Proxy Tree-based data dissemination scheme),其基本思想是每個源節(jié)點或sink節(jié)點對應(yīng)于一個固定的節(jié)點,稱為源代理或sink代理,監(jiān)測同一目標的源代理和查詢該源的sink代理形成一棵代理樹,通過代理樹,源節(jié)點可以把感知數(shù)據(jù)定期發(fā)送給它的代理,繼而再轉(zhuǎn)發(fā)給代理樹中的多個sink代理,每個sink節(jié)點可以查詢它的代理來獲取數(shù)據(jù)。這種數(shù)據(jù)分發(fā)方案的關(guān)鍵是當源或sink代理改變時,如何有效重建代理樹,參考文獻[9]提出了兩種調(diào)整代理樹的分布式在線方案:一種是最短路徑方案SP(Shortest Path-based scheme);另一種是跨度范圍方案SR(Spanning Range-based scheme)。由于SR需要的控制消息比SP少,因此,SR優(yōu)于SP。
不同應(yīng)用的無線傳感器網(wǎng)絡(luò),需要設(shè)計不同的能量有效地數(shù)據(jù)分發(fā)方案,才能有效地利用有限的能量,更好地延長傳感器節(jié)點和網(wǎng)絡(luò)的生存時間。