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