專利名稱:無線傳感器網(wǎng)絡(luò)中匯聚節(jié)點在移動時采集信息的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種無線傳感器網(wǎng)絡(luò)的新技術(shù),確切地說,涉及一種無線傳感器網(wǎng)絡(luò) 中匯聚節(jié)點Sink在移動時采集信息的方法,屬于無線自組織網(wǎng)絡(luò)系統(tǒng)技術(shù)領(lǐng)域。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)(WSNs)是由大量傳感器節(jié)點構(gòu)成的、用于收集物理空間環(huán)境相關(guān)
信息的多跳的網(wǎng)絡(luò)。其路由協(xié)議的主要目的是保證感知數(shù)據(jù)能夠正確地傳遞到傳感器網(wǎng)絡(luò)中
的網(wǎng)關(guān)節(jié)點,即匯聚節(jié)點Sink。 Sink是在無線傳感器網(wǎng)絡(luò)中,負責與各個傳感器節(jié)點進行無
線通信,同時采用其他通信方式接入外部總線或網(wǎng)絡(luò)以進行信息交換的裝置。Sink可以是固
定設(shè)備,也可以是移動終端,如筆記本、PDA或手機等。WSNs路由協(xié)議與應(yīng)用緊密相關(guān),考慮無
線傳感器網(wǎng)絡(luò)中的一類典型的環(huán)境監(jiān)測應(yīng)用,例如森林防火、毒氣泄漏、環(huán)境監(jiān)測等。以森林
防火為例,Sink可由巡視人員在巡視時隨身攜帶而處于移動狀態(tài)。而Sink的移動給WSNs路
由協(xié)議帶來新的挑戰(zhàn)。目前,支持移動Sink的路由協(xié)議有TTDD、 EARM、 SEAD等,其中最為典
型的就是雙層數(shù)據(jù)分發(fā)TTDD(TWO-TIER DATA DISSEMINATION)路由協(xié)議。 TTDD路由協(xié)議是一種適用于大規(guī)模網(wǎng)絡(luò)的基于地理位置的通信協(xié)議。其核心思想
是把整個網(wǎng)絡(luò)分成多個虛擬的網(wǎng)格,每個網(wǎng)格的四個頂點都成為數(shù)據(jù)傳輸點,并保存數(shù)據(jù)
信息。當某個Sink需要查詢數(shù)據(jù)時,該Sink先在其所在的網(wǎng)格單元內(nèi)洪泛查詢請求,當該
查詢請求到達Sink相鄰的傳輸節(jié)點后,傳輸節(jié)點就利用基于地理位置的貪婪算法沿傳輸
節(jié)點把請求傳送給源節(jié)點,然后,源節(jié)點以同樣的方式把數(shù)據(jù)傳回Sink。 雖然TTDD路由協(xié)議能解決Sink移動的問題,但是,它有以下幾點不足 1、消耗能量多每個源節(jié)點都是以在全網(wǎng)洪泛數(shù)據(jù)信息的方式構(gòu)建網(wǎng)格,增加了
能量開銷。 2、監(jiān)測突發(fā)事件的能力差興趣事件發(fā)生后,雖然該事件源節(jié)點立即主動發(fā)起建 立網(wǎng)格,但是,必須等待Sink的查詢消息到達網(wǎng)格格點后,Sink才能接收到相關(guān)數(shù)據(jù)信息, 因此,它不能有效地應(yīng)對突發(fā)事件的發(fā)生和監(jiān)測。 3、興趣事件發(fā)生后,保證只有一個傳感器節(jié)點成為源節(jié)點來建立網(wǎng)格的機制至今 未被詳細論述。如果對于同一事件,多個傳感器節(jié)點都作為事件源節(jié)點,并發(fā)起在全網(wǎng)建立 網(wǎng)格結(jié)構(gòu)的命令時,不僅會使節(jié)點處理過程復(fù)雜化,造成大量冗余開銷,更會導致網(wǎng)絡(luò)通信 量的急劇增加,造成難以估算的嚴重后果。 然而,考慮到環(huán)境監(jiān)測類應(yīng)用,所監(jiān)測的事件大多是突發(fā)事件,需要事件源直接將 消息數(shù)據(jù)傳送給Sink,以便能夠及時地監(jiān)測到事件的發(fā)生和進展情況。同時,很多時候人們 還需要主動獲取某些特定區(qū)域的環(huán)境數(shù)據(jù)。所以,如何提出一種更有效地支持Sink在移動 情況下采集信息的方法,就成為業(yè)內(nèi)科技人員一項迫切需要解決的新課題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的是提供一種無線傳感器網(wǎng)絡(luò)中匯聚節(jié)點Sink在移動時采集信息的方法,該方法適用于以環(huán)境監(jiān)測為目的、節(jié)點部署密集且規(guī)模較大的傳感器網(wǎng) 絡(luò),它既解決了 Sink在移動狀態(tài)時如何采集信息的問題,又解決了 TTDD路由協(xié)議中能量消 耗大、監(jiān)測突發(fā)事件的能力差的多種問題。 為了達到上述目的,本發(fā)明提供了一種無線傳感器網(wǎng)絡(luò)中匯聚節(jié)點Sink在移動 時采集信息的方法,其特征在于先在全網(wǎng)建立一個兩層結(jié)構(gòu)的網(wǎng)格,并基于該兩層結(jié)構(gòu)的 網(wǎng)格執(zhí)行分級監(jiān)測機制,對環(huán)境中的興趣事件分別進行事件驅(qū)動或查詢驅(qū)動的監(jiān)測應(yīng)用; 并在Sink發(fā)生移動時,利用代理機制重新選擇直接代理和主代理,以確保Sink能夠持續(xù)收 集來自事件源或查詢源的節(jié)點的數(shù)據(jù)該方法包括下列操作步驟 (1)初始化階段在傳感器網(wǎng)絡(luò)中設(shè)置各個傳感器節(jié)點,并對其執(zhí)行初始化,然后 為該傳感器網(wǎng)絡(luò)選擇一個全局代理節(jié)點; (2)網(wǎng)格構(gòu)建階段由Sink發(fā)起在全網(wǎng)構(gòu)建一個兩層的網(wǎng)格結(jié)構(gòu),每個網(wǎng)格單元 用于定位Sink和事件源或查詢源的位置,網(wǎng)格格點用于傳輸數(shù)據(jù); (3)建立代理機制Sink在其所在的網(wǎng)格單元內(nèi)選擇兩個代理直接代理和主代 理,該兩個代理負責Sink在移動時能夠持續(xù)收集來自事件源或查詢源的源節(jié)點的數(shù)據(jù);
此時,如果所述方法是執(zhí)行事件驅(qū)動,則順序執(zhí)行步驟(4);如果所述方法是執(zhí)行
查詢驅(qū)動,則跳轉(zhuǎn)執(zhí)行步驟(5); (4)分級監(jiān)測階段在兩層網(wǎng)格結(jié)構(gòu)基礎(chǔ)上進行分級監(jiān)測,其中初級監(jiān)測負責監(jiān) 測事件信息,并把事件信息上傳給Sink ;緊密監(jiān)測負責監(jiān)測事件信息及其周圍環(huán)境的具體 數(shù)據(jù),并將事件信息和監(jiān)測數(shù)據(jù)傳輸?shù)絊ink ; (5)查詢階段Sink接收到應(yīng)用層的查詢命令后,向全網(wǎng)絡(luò)下發(fā)該查詢命令,建立 查詢路徑,執(zhí)行查詢命令,最后得到查詢信息; (6)當Sink發(fā)生移動時,利用代理機制重新選擇直接代理和主代理后,返回相應(yīng) 的步驟(4)或步驟(5),執(zhí)行事件驅(qū)動或查詢驅(qū)動的監(jiān)測應(yīng)用。 本發(fā)明是以環(huán)境監(jiān)測應(yīng)用為背景提出的一種支持Sink在移動情況下收集信息的 方法。本發(fā)明的技術(shù)創(chuàng)新之處是將構(gòu)建網(wǎng)格的任務(wù)分配給Sink節(jié)點,避免了原來的網(wǎng)格 是由事件源發(fā)起構(gòu)建而可能造成大量不必要的開銷的弊病。而且,該方法采用基于兩層網(wǎng) 格結(jié)構(gòu)的分級監(jiān)測機制,能更加有效地監(jiān)測周圍環(huán)境中的興趣事件。此外,還為Sink設(shè)立 一個全局代理,隨時跟蹤Sink,提高了事件監(jiān)測的靈敏度。尤其是為了滿足實際應(yīng)用中眾多 用戶要求主動查詢環(huán)境信息的需求,本發(fā)明首創(chuàng)提出一種支持Sink主動查詢某一地理范 圍內(nèi)的環(huán)境信息的具體操作方法,使得無線傳感器網(wǎng)絡(luò)的監(jiān)測功能大大增強。因此,本發(fā)明 在環(huán)境監(jiān)測領(lǐng)域具有很好的應(yīng)用前景。
圖1是本發(fā)明無線傳感器網(wǎng)絡(luò)中匯聚節(jié)點在移動時采集信息的方法操作步驟方 框圖。 圖2是本發(fā)明構(gòu)建的兩層網(wǎng)格結(jié)構(gòu)示意圖。 圖3是本發(fā)明分級監(jiān)測示意圖。 圖4是本發(fā)明0 8號節(jié)點之間組成的通信關(guān)系樹示意圖。 圖5是本發(fā)明的事件驅(qū)動路徑的建立示意圖。
6
圖6是本發(fā)明的查詢路徑的建立示意圖。
圖7是本發(fā)明Sink移動后的路徑變化示意圖 圖8 (A) 、 (B) 、 (C) 、 (D)分別是本發(fā)明實施例在網(wǎng)絡(luò)規(guī)模變化時的吞吐量、數(shù)據(jù)成 功接收率、端到端時延和首次數(shù)據(jù)時延的性能比較圖。 圖9 (A) 、 (B) 、 (C) 、 (D)分別是本發(fā)明實施例在Sink速度變化時的吞吐量、數(shù)據(jù)成 功接收率、端到端時延和首次數(shù)據(jù)時延的性能比較圖。 圖10 (A) 、 (B) 、 (C) 、 (D)分別是本發(fā)明實施例在數(shù)據(jù)源數(shù)目變化時的吞吐量、數(shù)據(jù) 成功接收率、端到端時延和首次數(shù)據(jù)時延的性能比較圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和實施例對本發(fā)明 作進一步的詳細描述。 參見圖l,介紹本發(fā)明無線傳感器網(wǎng)絡(luò)中Sink在移動時采集信息的方法,該方法 是先在全網(wǎng)建立一個兩層結(jié)構(gòu)的網(wǎng)格,并基于該兩層結(jié)構(gòu)的網(wǎng)格執(zhí)行分級監(jiān)測機制,對環(huán) 境中的興趣事件分別進行事件驅(qū)動或查詢驅(qū)動的監(jiān)測應(yīng)用;并在Sink發(fā)生移動時,利用代 理機制重新選擇直接代理和主代理,以確保Sink能夠持續(xù)收集來自事件源或查詢源的節(jié) 點的數(shù)據(jù)。該方法包括下列操作步驟 步驟1、初始化階段在傳感器網(wǎng)絡(luò)中設(shè)置各個傳感器節(jié)點,并對其執(zhí)行初始化, 然后為該傳感器網(wǎng)絡(luò)選擇一個全局代理(GA-Global Agent)節(jié)點。
該步驟包括下述具體操作內(nèi)容 (11)初始化無線傳感器網(wǎng)絡(luò)中的全部傳感器節(jié)點都設(shè)置好后,各傳感器分別進 行初始化過程,得到自己及鄰居節(jié)點的物理位置及各自節(jié)點ID信息; (12)選擇全局代理Sink在網(wǎng)絡(luò)中指定一個傳感器節(jié)點作為全局代理,在網(wǎng)絡(luò)的 整個生命周期內(nèi),該全局代理始終存在而不被更換,而且其相關(guān)信息隨著網(wǎng)格構(gòu)建過程中 發(fā)送的網(wǎng)格構(gòu)建消息被洪泛到整個網(wǎng)絡(luò)的所有格點,每個格點都保存該信息留待使用。
步驟2、網(wǎng)格構(gòu)建階段由Sink發(fā)起在全網(wǎng)構(gòu)建一個兩層的網(wǎng)格結(jié)構(gòu),每個網(wǎng)格單 元用于定位Sink和事件源或查詢源的位置,網(wǎng)格格點用于傳輸數(shù)據(jù)。
該步驟包括下述具體操作內(nèi)容 (21)構(gòu)建虛擬基準網(wǎng)格Sink選擇一個鄰居節(jié)點作為網(wǎng)格的第一個格點(該格點 稱作基本格點,標識為BaseGP);再以該基本格點為基準,根據(jù)地理位置貪婪算法發(fā)起網(wǎng)格 構(gòu)建消息,把全網(wǎng)劃分成一個設(shè)定格長為a的虛擬基準網(wǎng)格(虛擬基準網(wǎng)格的格點標識為
VGP); (22)構(gòu)建實際基準網(wǎng)格為每個虛擬格點尋找一個最近的傳感器節(jié)點做代理,這 些用作實際代理的傳感器節(jié)點構(gòu)成實際基準網(wǎng)格架構(gòu),實際基準網(wǎng)格節(jié)點的傳感器節(jié)點稱 為傳輸節(jié)點(簡稱DN);實際基準網(wǎng)格成功建立后,每個傳輸節(jié)點都知道相鄰傳輸節(jié)點的位 置信息,任意傳輸節(jié)點之間均能通過多跳的方式進行通信; (23)劃分兩層網(wǎng)格把實際基準網(wǎng)格劃分為底層網(wǎng)格和高層網(wǎng)格的兩層架構(gòu),其 中底層網(wǎng)格是前述步驟(22)構(gòu)建的實際基準網(wǎng)格,即網(wǎng)格單元邊長為a的細粒度網(wǎng)格;底 層網(wǎng)格的格點稱為GP0節(jié)點;高層網(wǎng)格是建立在底層網(wǎng)格基礎(chǔ)上、抽取底層網(wǎng)格的部分格點所形成的網(wǎng)格單元邊長為2a的粗粒度網(wǎng)格,高層網(wǎng)格的格點稱為GP1節(jié)點(參見圖2所 示的兩層網(wǎng)格結(jié)構(gòu)示意圖,該圖及后面的各個附圖中的五角星代表GP1節(jié)點,三角代表GP0 節(jié)點,小圓圈為普通傳感器節(jié)點)。 步驟3、建立代理機制Sink在其所在的網(wǎng)格單元內(nèi)選擇兩個代理一個直接代理 和一個主代理,該兩個代理負責Sink在移動時能夠持續(xù)收集來自源節(jié)點(事件源或查詢 源)的數(shù)據(jù)。 該步驟包括下述具體操作內(nèi)容 (31) Sink進入網(wǎng)絡(luò)后,通過hello消息獲取其鄰近的各傳感器節(jié)點信息,并從中 選取距離自己一跳、直接與Sink通信的一個傳感器節(jié)點作為自己的直接代理;并在其所在 的網(wǎng)格內(nèi),Sink選擇一個傳感器節(jié)點作為其主代理; (32) Sink把直接代理信息發(fā)送給主代理,使主代理作為Sink在其所在的網(wǎng)格單 元內(nèi)的代表,與該直接代理進行通信,保證數(shù)據(jù)傳遞的連貫性;而對于主代理,直接代理代 表Sink,主代理與直接代理進行通信;但是,如果此時的直接代理與主代理為同一個傳感 器節(jié)點時,省略該步驟操作; (33)Sink的主代理在其所在的網(wǎng)格范圍內(nèi)洪泛其自身的信息,并把自身信息傳送 給全局代理;收到該信息的各個傳輸節(jié)點存儲該信息備用,以便當監(jiān)測數(shù)據(jù)傳送到Sink所 在網(wǎng)格的各個傳輸節(jié)點時,這些傳輸節(jié)點只要將感測數(shù)據(jù)通過地理位置貪婪算法轉(zhuǎn)發(fā)給主 代理,再由主代理將數(shù)據(jù)發(fā)送到直接代理,由后者廣播到Sink ;對于全局代理來說,主代理 的物理位置信息表示Sink目前所在的地理位置,全局代理只需將數(shù)據(jù)發(fā)送給其自己當前 存儲的主代理; (34)如果Sink需要發(fā)送信息時,則先將該信息發(fā)送給直接代理,再由直接代理轉(zhuǎn) 發(fā)給主代理,由后者轉(zhuǎn)發(fā)到所建立的有效路徑上的第一個傳輸節(jié)點。 此時,如果所述方法是執(zhí)行事件驅(qū)動,則順序執(zhí)行步驟4 ;如果所述方法是執(zhí)行查 詢驅(qū)動,則跳轉(zhuǎn)執(zhí)行步驟5。 步驟4、分級監(jiān)測階段在兩層網(wǎng)格結(jié)構(gòu)基礎(chǔ)上進行分級監(jiān)測,其中初級監(jiān)測負責 監(jiān)測事件信息,并把事件信息上傳給Sink ;緊密監(jiān)測負責監(jiān)測事件信息及其周圍環(huán)境的具 體數(shù)據(jù),并將事件信息和監(jiān)測數(shù)據(jù)傳輸?shù)絊ink。
該步驟包括下述具體操作內(nèi)容 (41)兩層網(wǎng)格構(gòu)建成功后,所有高層網(wǎng)格格點(即GP1節(jié)點)作為初級監(jiān)測點,開 始監(jiān)測以其本身為中心、面積為2a X2a的初級監(jiān)測區(qū)域高層網(wǎng)格格點先在自己的監(jiān)測 區(qū)域內(nèi)洪泛初級監(jiān)測啟動信息,通知監(jiān)測區(qū)域內(nèi)的所有傳感器節(jié)點, 一旦發(fā)生興趣事件,就 將該事件信息以多跳方式傳遞到該GP1節(jié)點; (42)該GP1節(jié)點接收到該事件信息后,在將該事件信息向Sink點傳遞的同時,向
其相鄰的四個傳輸節(jié)點發(fā)送緊密監(jiān)測啟動信息,開始緊密監(jiān)測; 其中,GP1節(jié)點將事件信息傳送到Sink點的過程包括下述操作內(nèi)容 (421)接收到事件信息的GP1節(jié)點成為事件源,該事件源GP1節(jié)點執(zhí)行全局代理轉(zhuǎn)
發(fā)先利用地理位置貪婪算法把事件信息傳送給Sink的全局代理,再由全局代理把事件信
息分別通過Sink的主代理和直接代理傳送給Sink ; (422) Sink接收到來自事件源的事件信息后,根據(jù)事件源的地理位置信息,按照下
8述操作步驟沿傳輸節(jié)點建立一條到事件源的有效傳輸路徑 Sink先尋找直接代理和主代理,再在與Sink相鄰的4個傳輸節(jié)點中,選擇一個距 離事件源最近的傳輸節(jié)點作為此時Sink的第一個傳輸節(jié)點; 該第一個傳輸節(jié)點在其本身的4個鄰居傳輸節(jié)點中尋找一個距離事件源最近的 傳輸節(jié)點作為該第一個傳輸節(jié)點的下游傳輸節(jié)點而繼續(xù)傳輸相關(guān)信息;如此不斷操作,直 到找到事件源節(jié)點,就建立了一條由Sink到事件源的有效傳輸路徑;該路徑上的每個傳輸 節(jié)點都記錄其上游傳輸節(jié)點和下游傳輸節(jié)點的位置及其標識信息。 (43)收到緊密監(jiān)測啟動信息的四個傳輸節(jié)點在給該GPl節(jié)點發(fā)送回復(fù)信息的同 時,根據(jù)GPl節(jié)點的方向和自己相鄰的傳輸節(jié)點位置,向另一個相鄰的傳輸節(jié)點發(fā)送緊密 監(jiān)測啟動信息。如此傳遞,就由多個底層網(wǎng)格格點(GP0節(jié)點)作為緊密監(jiān)測點建立一個監(jiān) 測樹(參見圖4),每個GP0節(jié)點收集以其本身為中心,面積為a X a的緊密監(jiān)測區(qū)域內(nèi)的 周圍環(huán)境詳細信息,監(jiān)測樹上的各個GPO節(jié)點所收集到的緊密監(jiān)測數(shù)據(jù),都沿著樹傳送給 作為事件源的根節(jié)點(GPl節(jié)點); (44)事件源節(jié)點將緊密監(jiān)測的所有數(shù)據(jù)都上傳到Sink點;該步驟中的緊密監(jiān)測 數(shù)據(jù)的上傳都是經(jīng)由前述步驟(422)建立的有效傳輸路徑完成的。 參見圖3,介紹該步驟4的具體操作內(nèi)容圖中的0號節(jié)點為GPl點,它負責監(jiān)測 陰影區(qū)域是否發(fā)生興趣事件或其它事件(即執(zhí)行初級監(jiān)測)。當監(jiān)測到事件時(此時的E 節(jié)點是事件發(fā)生點),這個事件點就把事件信息通知給O號節(jié)點。此時作為GPl節(jié)點的0號 節(jié)點就變成一個事件源。然后,O號節(jié)點就啟動它周圍的8個GPO節(jié)點,即1 8號節(jié)點執(zhí) 行緊密監(jiān)測,l 8號節(jié)點分別從各自陰影區(qū)域內(nèi)收集環(huán)境的詳細信息。在0號節(jié)點啟動 1 8號節(jié)點的過程中,該9個節(jié)點構(gòu)成一棵以0號節(jié)點為根節(jié)點的緊密監(jiān)測樹(如圖4所 示)。在這個樹中,父節(jié)點與子節(jié)點之間是通過多跳的方式完成通信。O號根節(jié)點收到緊密 監(jiān)測節(jié)點的監(jiān)測數(shù)據(jù),就會將監(jiān)測數(shù)據(jù)和對應(yīng)監(jiān)測區(qū)域的其它信息發(fā)送到Sink。
參見圖5,介紹事件驅(qū)動中的路徑建立的具體過程(各個附圖中的字符涵義相 同)S為Sink, I為直接代理,P為主代理,G為全局代理,E為事件源,N為Sink對應(yīng)事件 E的第一個傳輸節(jié)點;虛線是事件信息從事件源傳到全局代理,再通過主代理和直接代理 傳到Sink的過程;實線是Sink沿格點到事件源的傳輸路徑。 步驟5、查詢階段Sink接收到應(yīng)用層的查詢命令后,向全網(wǎng)絡(luò)下發(fā)該查詢命令, 建立查詢路徑,執(zhí)行查詢命令,最后得到查詢信息。 該查詢驅(qū)動的操作步驟是本發(fā)明的首創(chuàng),也就是完成前述相應(yīng)步驟后,在監(jiān)測網(wǎng) 絡(luò)狀態(tài)的同時,Sink可以向網(wǎng)絡(luò)下發(fā)查詢命令,主動獲取網(wǎng)絡(luò)中的數(shù)據(jù)。查詢?nèi)蝿?wù)是根據(jù) 不同應(yīng)用而定制的,查詢命令則是根據(jù)查詢?nèi)蝿?wù)而設(shè)定的,
此時建立查詢路徑的過程包括下述具體操作內(nèi)容 (51) Sink接收到來自應(yīng)用層的查詢命令后,存儲該查詢命令,并通過查詢命令中 的查詢范圍字段計算出查詢范圍的中心,即虛擬查詢數(shù)據(jù)源vSource ; (52)因vSource是虛擬的查詢數(shù)據(jù)源,實際網(wǎng)絡(luò)中的該位置不一定存在一個節(jié) 點,所以要尋找離vSource位置最近的一個傳感器節(jié)點作為實際查詢數(shù)據(jù)源Source ;此時, 尋找Source的過程就是建立查詢路徑過程,操作步驟如下 (521) Sink計算出vSource位置后,通過自己位置及網(wǎng)絡(luò)的基本格點的位置尋找第一個傳輸節(jié)點,由該第一個傳輸節(jié)點發(fā)送路徑建立消息,該消息沿網(wǎng)格尋找至離vSource 最近的節(jié)點,該節(jié)點就成為實際查詢數(shù)據(jù)源Source ; (522)該Source發(fā)送路徑回應(yīng)消息給Sink,該回應(yīng)消息中包含該Source的物理 位置信息; (523) Sink收到回應(yīng)消息后,把查詢消息發(fā)送至實際數(shù)據(jù)源節(jié)點Source。
(53)該Source收集查詢區(qū)域內(nèi)的各項查詢數(shù)據(jù),并把所有查詢數(shù)據(jù)傳送給Sink。
參見圖6,簡要介紹查詢路徑的具體建立過程圖中的陰影區(qū)域為查詢區(qū)域Query field,Q為查詢數(shù)據(jù)源Source, 1、2、3分別表示查詢路徑上的各個傳輸節(jié)點;圖中的實線即 為Sink通過直接代理和主代理找到第一個傳輸節(jié)點l,然后再順序通過傳輸節(jié)點2和3到 達查詢數(shù)據(jù)源Q的路徑。 上面所介紹的事件驅(qū)動和查詢驅(qū)動的過程都是在Sink未發(fā)生移動的情況下進行 的,當Sink發(fā)生移動時,為確保Sink能持續(xù)收集來自源節(jié)點(事件源或查詢源)的數(shù)據(jù), 需要執(zhí)行步驟6的操作 步驟6、當Sink發(fā)生移動時,利用代理機制重新選擇直接代理和主代理后,返回相 應(yīng)的步驟4或步驟5,執(zhí)行事件驅(qū)動或查詢驅(qū)動的監(jiān)測應(yīng)用。 在該步驟中,當Sink移動到一個新的網(wǎng)格單元時,若網(wǎng)絡(luò)中存在有效的數(shù)據(jù)源, 即事件源或查詢源仍然在發(fā)送數(shù)據(jù),則要重新建立一條Sink到達該有效數(shù)據(jù)源的傳輸路 徑,即重新選擇直接代理和主代理后,再選擇第一個傳輸節(jié)點,并由該第一個傳輸節(jié)點沿著 網(wǎng)格建立一條到達有效數(shù)據(jù)源的傳輸路徑。
該步驟至少包括下述具體操作內(nèi)容 (61)當Sink移動出直接代理的覆蓋范圍,但還在原來的網(wǎng)格單元內(nèi)時,不要重新 選擇主代理,只需重新選擇直接代理,保證該直接代理和Sink之間的距離是一跳,并把該 直接代理的位置通知給主代理,保證主代理能與該直接代理通信;或 (62)當Sink移動到一個新的網(wǎng)格單元,要重新分別選擇直接代理和主代理,并 且,Sink要將更換了的主代理的信息發(fā)送到全局代理節(jié)點。 參見圖7,該圖展示了 Sink由S移動到S'時查詢路徑的變化情況1,2,3,4分別 表示路徑上的各個傳輸節(jié)點,S'表示Sink移動之后的位置,I'表示Sink移動后重新選擇 的直接代理,P'表示Sink移動后重新選擇的主代理;Sink未發(fā)生移動時,查詢路徑為S通 過直接代理I、主代理P、傳輸節(jié)點1、2、3,到達查詢源Q。而在Sink移動后,新的查詢路徑 為S'通過新的直接代理I'、主代理P'、傳輸節(jié)點4、3到達查詢源Q。
本發(fā)明已經(jīng)進行了仿真實施試驗,下面介紹本發(fā)明方法的仿真實施情況。
為了體現(xiàn)本發(fā)明方法的優(yōu)點,申請人在相同情況下對現(xiàn)有技術(shù)的TTDD協(xié)議的方 法和本發(fā)明方法分別進行仿真實施試驗,以方便對比。 在仿真中,測量了四個參數(shù)網(wǎng)絡(luò)吞吐量、數(shù)據(jù)成功接受率、端到端時延和首次數(shù) 據(jù)時延。網(wǎng)絡(luò)吞吐量定義為每秒內(nèi)網(wǎng)絡(luò)發(fā)送和接收包的個數(shù);由于傳感器網(wǎng)絡(luò)的能量消耗 主要取決于節(jié)點間的通信,因此這個參數(shù)可以用來測量網(wǎng)絡(luò)的能量消耗。數(shù)據(jù)成功接受率 是Sink接收的數(shù)據(jù)包數(shù)量與源節(jié)點發(fā)送的數(shù)據(jù)包總數(shù)的比例;該參數(shù)表明數(shù)據(jù)傳輸?shù)挠?效性。端到端時延是數(shù)據(jù)產(chǎn)生時刻到Sink接收到該數(shù)據(jù)時刻的時間間隔的平均值;該參數(shù) 表明接收的數(shù)據(jù)包的新鮮度。首次數(shù)據(jù)時延是指事件發(fā)生時刻到Sink第一次收到時間信
10息時刻的時間間隔;該參數(shù)在監(jiān)測類應(yīng)用中非常重要,它表明事件監(jiān)測的靈敏度。 在仿真實施試驗中,通過變換網(wǎng)絡(luò)規(guī)模、Sink移動速度以及網(wǎng)絡(luò)中源節(jié)點的個數(shù)
來設(shè)定三組不同的場景,并且在設(shè)定仿真場景時,做如下假設(shè)所有傳感器節(jié)點具有相同的
傳輸半徑(30米)。監(jiān)測區(qū)域為二維平面,傳感器節(jié)點均勻分布在該平面內(nèi),且相鄰節(jié)點之
間的距離為27米(略小于通信半徑)。兩種方法中的網(wǎng)格邊長a相同,都設(shè)置為60米。
Sink以監(jiān)測區(qū)域中心為圓心沿區(qū)域邊緣做圓周運動。 參見圖8,介紹在五種不同網(wǎng)絡(luò)規(guī)模時進行測試得到的仿真結(jié)果。
在這組性能測驗中,通過改變網(wǎng)絡(luò)的規(guī)模,同時設(shè)定Sink的傳輸速度為3米/秒, 網(wǎng)絡(luò)中的數(shù)據(jù)源個數(shù)為1。 5組不同的網(wǎng)絡(luò)規(guī)模情況是50個節(jié)點分布在180X180m2的區(qū) 域,75個節(jié)點分布在200X250m2的區(qū)域,100個節(jié)點分布在270X270m2的區(qū)域,125個節(jié)點 分布在300X320m2的區(qū)域,以及150個節(jié)點分布在320X350m2的區(qū)域。從仿真結(jié)果來看, 本發(fā)明方法比TTDD方法更有效。 參見圖9,介紹在Sink速度變化時進行測試得到的仿真結(jié)果。
在這組仿真測試中,通過改變Sink的移動速度來測試兩種方法的性能。設(shè)定網(wǎng)絡(luò) 中的數(shù)據(jù)源個數(shù)為l,網(wǎng)絡(luò)規(guī)模為100個節(jié)點分布在270X270m2的區(qū)域,Sink節(jié)點的移動 速度分別為0米/秒,3米/秒,6米/秒,9米/秒和12米/秒。仿真結(jié)果表明在Sink速 度增加情況下,本發(fā)明方法比TTDD方法性能更佳。 參見圖IO,介紹在數(shù)據(jù)源數(shù)目不同情況時進行測試得到的仿真結(jié)果。 在傳感器網(wǎng)絡(luò)中,同一時刻的數(shù)據(jù)源數(shù)目不同也會對路由的性能造成影響。實施
例對數(shù)據(jù)源數(shù)目變化時的路由性能也進行了仿真。同樣,選擇ioo個節(jié)點的網(wǎng)絡(luò)規(guī)模,并把
Sink的速度設(shè)定為3米/秒。然后,在分別設(shè)定了4組仿真場景,數(shù)據(jù)源的數(shù)目分別為1,
2,3,4。 仿真結(jié)果表明隨著數(shù)據(jù)源的增加,兩種方法的路由性能都會降低。但在相同情況 下,本發(fā)明方法的性能要優(yōu)于TTDD方法。 經(jīng)過以上仿真試驗的實施結(jié)果可看出,在相同場景下,本發(fā)明方法要比TTDD的方 法的能量消耗更少、時延更小、數(shù)據(jù)成功接受率更高,并且本發(fā)明方法對突發(fā)事件監(jiān)測的靈 敏度也要高于TTDD方法。 總之,仿真實施試驗的結(jié)果是成功的,實現(xiàn)了發(fā)明目的。
權(quán)利要求
一種無線傳感器網(wǎng)絡(luò)中匯聚節(jié)點Sink在移動時采集信息的方法,其特征在于先在全網(wǎng)建立一個兩層結(jié)構(gòu)的網(wǎng)格,并基于該兩層結(jié)構(gòu)的網(wǎng)格執(zhí)行分級監(jiān)測機制,對環(huán)境中的興趣事件分別進行事件驅(qū)動或查詢驅(qū)動的監(jiān)測應(yīng)用;并在Sink發(fā)生移動時,利用代理機制重新選擇直接代理和主代理,以確保Sink能夠持續(xù)收集來自事件源或查詢源的節(jié)點的數(shù)據(jù)該方法包括下列操作步驟(1)初始化階段在傳感器網(wǎng)絡(luò)中設(shè)置各個傳感器節(jié)點,并對其執(zhí)行初始化,然后為該傳感器網(wǎng)絡(luò)選擇一個全局代理節(jié)點;(2)網(wǎng)格構(gòu)建階段由Sink發(fā)起在全網(wǎng)構(gòu)建一個兩層的網(wǎng)格結(jié)構(gòu),每個網(wǎng)格單元用于定位Sink和事件源或查詢源的位置,網(wǎng)格格點用于傳輸數(shù)據(jù);(3)建立代理機制Sink在其所在的網(wǎng)格單元內(nèi)選擇兩個代理直接代理和主代理,該兩個代理負責Sink在移動時能夠持續(xù)收集來自事件源或查詢源的源節(jié)點的數(shù)據(jù);此時,如果所述方法是執(zhí)行事件驅(qū)動,則順序執(zhí)行步驟(4);如果所述方法是執(zhí)行查詢驅(qū)動,則跳轉(zhuǎn)執(zhí)行步驟(5);(4)分級監(jiān)測階段在兩層網(wǎng)格結(jié)構(gòu)基礎(chǔ)上進行分級監(jiān)測,其中初級監(jiān)測負責監(jiān)測事件信息,并把事件信息上傳給Sink;緊密監(jiān)測負責監(jiān)測事件信息及其周圍環(huán)境的具體數(shù)據(jù),并將事件信息和監(jiān)測數(shù)據(jù)傳輸?shù)絊ink;(5)查詢階段Sink接收到應(yīng)用層的查詢命令后,向全網(wǎng)絡(luò)下發(fā)該查詢命令,建立查詢路徑,執(zhí)行查詢操作,最后得到查詢信息;(6)當Sink發(fā)生移動時,利用代理機制重新選擇直接代理和主代理后,返回相應(yīng)的步驟(4)或步驟(5),執(zhí)行事件驅(qū)動或查詢驅(qū)動的監(jiān)測應(yīng)用。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(1)進一步包括下述操作內(nèi)容(11) 初始化無線傳感器網(wǎng)絡(luò)中的全部傳感器節(jié)點都設(shè)置好后,各個傳感器分別進行初始化過程,得到自己及鄰居節(jié)點的物理位置及各自節(jié)點標識信息;(12) 選擇全局代理Sink在網(wǎng)絡(luò)中指定一個傳感器節(jié)點作為全局代理,在網(wǎng)絡(luò)的整個生命周期內(nèi),該全局代理始終存在而不被更換,且其相關(guān)信息隨著網(wǎng)格構(gòu)建過程中發(fā)送的網(wǎng)格構(gòu)建消息被洪泛到整個網(wǎng)絡(luò)的所有格點,每個格點都保存該信息留待使用。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(2)進一步包括下述操作內(nèi)容(21) 構(gòu)建虛擬基準網(wǎng)格Sink選擇一個鄰居節(jié)點作為網(wǎng)格的第一個格點,即標識為BaseGP的基本格點;再以該基本格點為基準,根據(jù)地理位置貪婪算法發(fā)起網(wǎng)格構(gòu)建消息,把全網(wǎng)劃分成一個設(shè)定格長為a的虛擬基準網(wǎng)格,虛擬基準網(wǎng)格的格點標識為vGP;(22) 構(gòu)建實際基準網(wǎng)格為每個虛擬格點尋找一個最近的傳感器節(jié)點做代理,這些用作實際代理的傳感器節(jié)點構(gòu)成實際基準網(wǎng)格架構(gòu),實際基準網(wǎng)格節(jié)點的傳感器節(jié)點稱為傳輸節(jié)點;建立實際基準網(wǎng)格后,每個傳輸節(jié)點都知道相鄰傳輸節(jié)點的位置信息,任意傳輸節(jié)點之間均能通過多跳方式進行通信;(23) 劃分兩層網(wǎng)格把實際基準網(wǎng)格劃分為兩層架構(gòu)底層網(wǎng)格和高層網(wǎng)格,其中底層網(wǎng)格是所述步驟(22)構(gòu)建的實際基準網(wǎng)格,即網(wǎng)格單元邊長為a的細粒度網(wǎng)格;底層網(wǎng)格的格點稱為GPO節(jié)點;高層網(wǎng)格是建立在底層網(wǎng)格基礎(chǔ)上、抽取底層網(wǎng)格的部分格點所形成的網(wǎng)格單元邊長為2a的粗粒度網(wǎng)格,高層網(wǎng)格的格點稱為GP1節(jié)點。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(3)進一步包括下述操作內(nèi)容(31) Sink進入網(wǎng)絡(luò)后,通過hello消息獲取其鄰近的各傳感器節(jié)點信息,并從中選取距離自己一跳、直接與Sink通信的一個傳感器節(jié)點作為自己的直接代理;并在其所在的網(wǎng)格內(nèi),Sink選擇一個傳感器節(jié)點作為其主代理;(32) Sink把直接代理信息發(fā)送給主代理,使主代理作為Sink在其所在的網(wǎng)格單元內(nèi)的代表,與該直接代理進行通信,保證數(shù)據(jù)傳遞的連貫性;而對于主代理,直接代理代表Sink,主代理與直接代理進行通信;但是,如果此時的直接代理與主代理為同一個傳感器節(jié)點時,省略該步驟操作;(33) Sink的主代理在其所在的網(wǎng)格范圍內(nèi)洪泛其自身的信息,并把自身信息傳送給全局代理;收到該信息的各個傳輸節(jié)點存儲該信息備用,以便當監(jiān)測數(shù)據(jù)傳送到Sink所在網(wǎng)格的各個傳輸節(jié)點時,這些傳輸節(jié)點只要將數(shù)據(jù)通過地理位置貪婪算法轉(zhuǎn)發(fā)給主代理,再由主代理將數(shù)據(jù)發(fā)送到直接代理,由后者廣播到Sink ;對于全局代理來說,主代理的物理位置信息表示Sink目前所在的地理位置,全局代理只需將數(shù)據(jù)發(fā)送給其自己當前存儲的主代理;(34) 如果Sink需要發(fā)送信息時,則先將該信息發(fā)送給直接代理,再由直接代理轉(zhuǎn)發(fā)給主代理,由后者轉(zhuǎn)發(fā)到所建立的有效路徑上的第一個傳輸節(jié)點。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(4)進一步包括下述操作內(nèi)容(41) 兩層網(wǎng)格構(gòu)建成功后,所有高層網(wǎng)格格點、即GP1節(jié)點作為初級監(jiān)測點,開始監(jiān)測以其本身為中心、面積為2a X2a的初級監(jiān)測區(qū)域高層網(wǎng)格格點先在自己的監(jiān)測區(qū)域內(nèi)洪泛初級監(jiān)測啟動信息,通知監(jiān)測區(qū)域內(nèi)的所有傳感器節(jié)點, 一旦發(fā)生興趣事件,就將該事件信息以多跳方式傳遞到該GP1節(jié)點;(42) 該GP1節(jié)點接收到該事件信息后,在將該事件信息向Sink點傳遞的同時,向其相鄰的四個傳輸節(jié)點發(fā)送緊密監(jiān)測啟動信息,開始緊密監(jiān)測;(43) 收到緊密監(jiān)測啟動信息的四個傳輸節(jié)點在給該GP1節(jié)點發(fā)送回復(fù)信息的同時,根據(jù)GP1節(jié)點的方向和自己相鄰的傳輸節(jié)點位置,向另一個相鄰的傳輸節(jié)點發(fā)送緊密監(jiān)測啟動信息;如此傳遞,就由多個底層網(wǎng)格格點、即GPO節(jié)點作為緊密監(jiān)測點建立一個監(jiān)測樹,每個GPO節(jié)點收集以其本身為中心,面積為aXa的緊密監(jiān)測區(qū)域內(nèi)的周圍環(huán)境詳細信息,監(jiān)測樹上的各個GPO節(jié)點所收集到的緊密監(jiān)測數(shù)據(jù),都沿著樹傳送給作為事件源的根節(jié)點,即GP1節(jié)點;(44) 事件源節(jié)點將緊密監(jiān)測的所有數(shù)據(jù)都上傳到Sink點。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于所述步驟(42)中,GPl節(jié)點將接收到的事件信息傳送到Sink點的過程包括下述操作內(nèi)容(421) 接收到事件信息的GP1節(jié)點成為事件源,該事件源GP1節(jié)點執(zhí)行全局代理轉(zhuǎn)發(fā)先利用地理位置貪婪算法把事件信息傳送給Sink的全局代理,再由全局代理把事件信息分別通過Sink的主代理和直接代理傳送給Sink ;(422) Sink接收到來自事件源的事件信息后,根據(jù)事件源的地理位置信息,按照下述操作步驟沿傳輸節(jié)點建立一條到事件源的有效傳輸路徑Sink先尋找直接代理和主代理,再在與Sink相鄰的4個傳輸節(jié)點中,選擇一個距離事件源最近的傳輸節(jié)點作為此時Sink的第一個傳輸節(jié)點;該第一個傳輸節(jié)點在其本身的4個鄰居傳輸節(jié)點中尋找一個距離事件源最近的傳輸節(jié)點作為該第一個傳輸節(jié)點的下游傳輸節(jié)點而繼續(xù)傳輸相關(guān)信息;如此不斷操作,直到找 到事件源節(jié)點,就建立了一條由Sink到事件源的有效傳輸路徑;該路徑上的每個傳輸節(jié)點 都記錄其上游傳輸節(jié)點和下游傳輸節(jié)點的位置及其標識信息。
7. 根據(jù)權(quán)利要求5或6所述的方法,其特征在于所述步驟(44)中的緊密監(jiān)測數(shù)據(jù)的 上傳都是經(jīng)由所述步驟(422)建立的有效傳輸路徑完成的。
8. 根據(jù)權(quán)利要求l所述的方法,其特征在于所述步驟(5)中,查詢?nèi)蝿?wù)是根據(jù)不同應(yīng)用而定制的,查詢命令則是根據(jù)查詢?nèi)蝿?wù)而設(shè)定的,其中建立查詢路徑的過程進一步包括 下列操作內(nèi)容(51) Sink接收到來自應(yīng)用層的查詢命令后,存儲該查詢命令,并通過查詢命令中的查 詢范圍字段計算出查詢范圍的中心,即虛擬查詢數(shù)據(jù)源vSource ;(52) 因vSource是虛擬的查詢數(shù)據(jù)源,實際網(wǎng)絡(luò)中該位置不一定存在一個節(jié)點,所以 要尋找離vSource位置最近的一個傳感器節(jié)點作為實際查詢數(shù)據(jù)源Source ;(53) 該Source收集查詢區(qū)域內(nèi)的各項查詢數(shù)據(jù),并把所有查詢數(shù)據(jù)傳送給Sink。
9. 根據(jù)權(quán)利要求8所述的方法,其特征在于所述步驟(52)中,所述尋找Source的過 程就是建立查詢路徑的過程,該過程包括下列操作內(nèi)容(521) Sink計算出vSource位置后,通過自己位置及網(wǎng)絡(luò)的基本格點的位置尋找第一 個傳輸節(jié)點,由該第一個傳輸節(jié)點發(fā)送路徑建立消息,該消息沿網(wǎng)格尋找至離vSource最 近的節(jié)點,該節(jié)點就成為實際查詢數(shù)據(jù)源Source ;(522) 該Source發(fā)送路徑回應(yīng)消息給Sink,該回應(yīng)消息中包含該Source的物理位置 信息;(523) Sink收到回應(yīng)消息后,把查詢消息發(fā)送至實際數(shù)據(jù)源節(jié)點Source。
10. 根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(6)中,Sink移動到一個新的 網(wǎng)格單元時,若網(wǎng)絡(luò)中存在有效的數(shù)據(jù)源,即事件源或查詢源仍然在發(fā)送數(shù)據(jù),則要重新建 立一條Sink到達該有效數(shù)據(jù)源的傳輸路徑,即重新選擇直接代理和主代理后,再選擇第一 個傳輸節(jié)點,并由該第一個傳輸節(jié)點沿著網(wǎng)格建立一條到達有效數(shù)據(jù)源的傳輸路徑。
11. 根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(6)至少包括下列操作內(nèi)容;(61) 當Sink移動出直接代理的覆蓋范圍,但在原來的網(wǎng)格單元內(nèi)時,不要重新選擇主 代理,只需重新選擇直接代理,保證該直接代理和Sink之間的距離是一跳,并把該直接代 理的位置通知給主代理,保證主代理能與該直接代理通信;或(62) 當Sink移動到一個新的網(wǎng)格單元,要重新分別選擇直接代理和主代理,并且, Sink要將更換了的主代理的信息發(fā)送到全局代理節(jié)點。
全文摘要
一種無線傳感器網(wǎng)絡(luò)中Sink在移動時采集信息的方法先在全網(wǎng)建立一個兩層網(wǎng)格,并基于該兩層網(wǎng)格執(zhí)行分級監(jiān)測,對環(huán)境中的興趣事件分別進行事件驅(qū)動或查詢驅(qū)動的監(jiān)測應(yīng)用;在Sink移動時,利用代理機制重新選擇直接代理和主代理,以確保Sink能持續(xù)收集來自事件源或查詢源的節(jié)點的數(shù)據(jù)。其操作步驟包括初始化、網(wǎng)格構(gòu)建、建立代理機制、分級監(jiān)測或查詢、以及在Sink移動時,利用代理機制重新選擇直接代理和主代理后,繼續(xù)執(zhí)行事件驅(qū)動或查詢驅(qū)動的監(jiān)測應(yīng)用的各階段。本發(fā)明適用于以環(huán)境監(jiān)測為目的、節(jié)點部署密集且規(guī)模較大的傳感器網(wǎng)絡(luò),解決了Sink在移動狀態(tài)時采集信息,以及TTDD路由協(xié)議中能量消耗大、監(jiān)測突發(fā)事件的能力差等問題。
文檔編號H04W88/18GK101715201SQ20091023728
公開日2010年5月26日 申請日期2009年11月12日 優(yōu)先權(quán)日2009年11月12日
發(fā)明者張瑜, 王彥, 蔣挺, 謝東亮, 陳明星 申請人:北京郵電大學