基于數(shù)據(jù)命名為中心的無線傳感器網(wǎng)絡(luò)異步休眠調(diào)度方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于無線網(wǎng)絡(luò)的應(yīng)用技術(shù)領(lǐng)域,具體涉及一種新的以命名數(shù)據(jù)為中心的網(wǎng) 絡(luò)架構(gòu)及在該構(gòu)架下實(shí)現(xiàn)的異步休眠調(diào)度方法,能夠更好的改進(jìn)現(xiàn)有無線傳感網(wǎng)中休眠調(diào) 度算法的不足,該方法應(yīng)用于無線傳感網(wǎng)去解決其休眠調(diào)度問題。
【背景技術(shù)】
[0002] 近年來,傳感器技術(shù)、無線通信技術(shù)與嵌入式計算技術(shù)的不斷進(jìn)步,推動了低功 耗、多功能傳感器的快速發(fā)展,使其在微小體積內(nèi)能夠集成信息采集、數(shù)據(jù)處理和無線通信 等多種功能。由這種微型傳感器組成的無線傳感器網(wǎng)絡(luò)由部署在監(jiān)測區(qū)域內(nèi)的大量廉價微 型傳感器節(jié)點(diǎn)組成。通過無線通信的方式形成一種多跳自組織的網(wǎng)絡(luò)系統(tǒng),能夠通過協(xié)作 實(shí)時監(jiān)測、感知和采集網(wǎng)絡(luò)分布區(qū)域內(nèi)的各種環(huán)境或監(jiān)測對象的信息,并對這些信息進(jìn)行 處理,從而獲取詳細(xì)而準(zhǔn)確的信息,這種傳感器網(wǎng)絡(luò)綜合了微電子、計算機(jī)和網(wǎng)絡(luò)通信等多 個學(xué)科的知識,是當(dāng)前國際上備受關(guān)注的、知識高度集成的一個新興研究熱點(diǎn)。
[0003] 由于無線傳感器網(wǎng)絡(luò)多應(yīng)用于進(jìn)行環(huán)境監(jiān)控,自然災(zāi)害的預(yù)警等。節(jié)點(diǎn)通常部署 的目標(biāo)監(jiān)測區(qū)域環(huán)境惡劣,再加上節(jié)點(diǎn)電池電量有限、長期工作的硬件自身可能出現(xiàn)故障 等情況,如何減少節(jié)點(diǎn)空閑偵聽、有效利用電池能源、降低能耗以及延長網(wǎng)絡(luò)生存期等一系 列問題越來越受到人們的關(guān)注。較有效的也是最常用的解決辦法之一是節(jié)點(diǎn)根據(jù)一定的調(diào) 度周期,在休眠狀態(tài)和工作狀態(tài)之間相互轉(zhuǎn)換,通過合理關(guān)閉部分節(jié)點(diǎn)的通信模塊,降低部 分節(jié)點(diǎn)的空閑偵聽來節(jié)省能量。近幾年,國內(nèi)外的研究人員對休眠調(diào)度技術(shù)進(jìn)行了不同的 探索,取得了一定的成果,但仍有欠缺,特別是在對于降低能耗方面需要新的技術(shù)或者網(wǎng)絡(luò) 框架來進(jìn)行有效的支持。
[0004] 命名數(shù)據(jù)網(wǎng)絡(luò)這種新型網(wǎng)絡(luò)架構(gòu)的提出,對于無線傳感器網(wǎng)絡(luò)降低能耗方面提供 了新的技術(shù)和解決思路。近年來,以美國為代表的研究下一代互聯(lián)網(wǎng)架構(gòu)的項(xiàng)目組越來越 多的出現(xiàn),其中以命名數(shù)據(jù)網(wǎng)絡(luò)發(fā)展最為快速,而且其以數(shù)據(jù)為中心的特點(diǎn)受到了廣泛的 共識。命名數(shù)據(jù)網(wǎng)絡(luò)以interest請求包和data數(shù)據(jù)包為其基本的通信方式,使用轉(zhuǎn)發(fā)信 息表(Forwarding Information Base,F(xiàn)IB),等待請求表(Pending Interest Table,PIT) 和內(nèi)容倉庫(Content Store,CS)為其框架的三大組件,構(gòu)成了一種新穎的網(wǎng)絡(luò)架構(gòu)。而且 其基于數(shù)據(jù)請求者(Consumer-Driver)的請求方式顛覆了傳統(tǒng)無線傳感器網(wǎng)絡(luò)中的基于 數(shù)據(jù)產(chǎn)生者(Product-Driver)的發(fā)送方式。這種傳輸方式在異構(gòu)傳感器網(wǎng)絡(luò)中具有相當(dāng) 重要的作用。
[0005] 目前,根據(jù)無線傳感器網(wǎng)絡(luò)中傳感器監(jiān)測、采集以及數(shù)據(jù)傳輸方式的不同,可以分 為兩種傳感器網(wǎng)絡(luò)。一種周期性監(jiān)測和采集數(shù)據(jù)的傳感器網(wǎng)絡(luò),主要針對于長期環(huán)境的監(jiān) 測,例如:空氣溫濕度傳感器網(wǎng)絡(luò)。另一種為爆發(fā)式數(shù)據(jù)采集的傳感器網(wǎng)絡(luò),主要針對于突 發(fā)性時間的監(jiān)測,例如:震動傳感器網(wǎng)絡(luò)、火山監(jiān)測傳感器網(wǎng)絡(luò)。針對不同的傳感器網(wǎng)絡(luò),所 需的數(shù)據(jù)傳輸?shù)乃俾什煌?,如何有效的自適應(yīng)的解決傳輸速率變化的問題也是目前無線傳 感器網(wǎng)絡(luò)的研究方向之一。
[0006] 在無線傳感器網(wǎng)絡(luò)中,執(zhí)行休眠調(diào)度策略是降低電池能耗的主要辦法之一。目前, 休眠調(diào)度策略分為兩種:第一種為同步休眠調(diào)度,即假設(shè)網(wǎng)絡(luò)中的所有節(jié)點(diǎn)有相同的時鐘, 使得其可以時鐘同步,然后采用休眠調(diào)度策略。這種休眠調(diào)度策略,假設(shè)性質(zhì)太強(qiáng),不能達(dá) 到大規(guī)?;蛘咭巴獠渴鸬囊?。第二種為異步休眠調(diào)度,即網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都會出現(xiàn)時 鐘漂移的現(xiàn)象,使得時鐘無法同步,解決方案為利用算法來保證某一時間點(diǎn)相鄰節(jié)點(diǎn)間達(dá) 到時鐘協(xié)調(diào),以達(dá)到數(shù)據(jù)傳輸?shù)哪康摹τ诘诙N策略雖然能夠達(dá)到真實(shí)環(huán)境的部署但是 其不斷的進(jìn)行探測包的發(fā)送,會消耗大量的電池電量來進(jìn)行無意義的偽同步的算法操作, 效果也不能達(dá)到最優(yōu)。
【發(fā)明內(nèi)容】
[0007] 針對上述現(xiàn)有的無線傳感器網(wǎng)絡(luò)方法存在的缺陷或不足,本發(fā)明的目的在于,利 用一種新型的命名數(shù)據(jù)網(wǎng)絡(luò)來改進(jìn)無線傳感器網(wǎng)絡(luò)中出現(xiàn)的異步休眠調(diào)度問題。該網(wǎng)絡(luò)結(jié) 構(gòu)可以統(tǒng)一多種不同速率的傳感器網(wǎng)絡(luò),并且能夠提供對應(yīng)的異步休眠調(diào)度策略,以達(dá)到 能夠大規(guī)模、野外部署,和減少電池能量消耗的目的。
[0008] 為了實(shí)現(xiàn)上述任務(wù),本發(fā)明采用以下技術(shù)方案:
[0009] -種基于數(shù)據(jù)命名為中心的無線傳感器網(wǎng)絡(luò)異步休眠調(diào)度方法,其特征在于,所 述的網(wǎng)絡(luò)中所有節(jié)點(diǎn)隨機(jī)分布于一個三維空間中,匯聚節(jié)點(diǎn)位于中間位置且只有一個;該 網(wǎng)絡(luò)在節(jié)點(diǎn)中構(gòu)建數(shù)據(jù)倉庫、轉(zhuǎn)發(fā)信息倉庫和等待數(shù)據(jù)返回路徑表,節(jié)點(diǎn)之間傳遞的數(shù)據(jù) 包包括請求包和信息包,所述的調(diào)度方法包括以下步驟:
[0010] 步驟一,路由建立及請求數(shù)據(jù)階段:
[0011] 步驟S10,匯聚節(jié)點(diǎn)發(fā)出請求包;
[0012] 步驟S11,節(jié)點(diǎn)1判斷是否收到請求包,如果收到則執(zhí)行步驟S12 ;
[0013] 步驟S12,在節(jié)點(diǎn)1的數(shù)據(jù)倉庫中查詢,查看請求包是否在其中已經(jīng)存在,如果查 詢成功則執(zhí)行步驟S13,否則執(zhí)行步驟S14 ;
[0014] 步驟S13,節(jié)點(diǎn)1直接回傳給匯聚節(jié)點(diǎn)數(shù)據(jù),執(zhí)行步驟S30 ;
[0015] 步驟S14,節(jié)點(diǎn)1在等待數(shù)據(jù)返回路徑表中查詢,查看請求包是否在其中已經(jīng)存 在,如果查詢成功,則執(zhí)行步驟S15,否則執(zhí)行步驟S16 ;
[0016] 步驟S15,節(jié)點(diǎn)1將收到的請求包中存儲的上一跳節(jié)點(diǎn)號存入等待數(shù)據(jù)返回路徑 表中,路由建立結(jié)束;
[0017] 步驟S16,節(jié)點(diǎn)1在轉(zhuǎn)發(fā)信息倉庫中查詢,查看請求包是否在其中已經(jīng)存在,如果 查詢成功,則執(zhí)行步驟S17,否則執(zhí)行步驟S18 ;
[0018] 步驟S17,節(jié)點(diǎn)1根據(jù)請求包在轉(zhuǎn)發(fā)信息倉庫中對應(yīng)的節(jié)點(diǎn)號,對該請求包進(jìn)行轉(zhuǎn) 發(fā),路由建立結(jié)束;
[0019] 步驟S18,將請求包添加到轉(zhuǎn)發(fā)信息倉庫中,執(zhí)行步驟S19 ;
[0020] 步驟S19,節(jié)點(diǎn)1廣播發(fā)送請求包,等待任意一個確認(rèn)包的返回;
[0021 ] 步驟S110,若有任何一個節(jié)點(diǎn)返回確認(rèn)包,則將返回的確認(rèn)包中的節(jié)點(diǎn)號存入轉(zhuǎn) 發(fā)信息倉庫中,路由建立結(jié)束;否則執(zhí)行步驟S111 ;
[0022] 步驟S111,若沒有節(jié)點(diǎn)返回確認(rèn)包,則進(jìn)行重傳;節(jié)點(diǎn)1等待Is后,執(zhí)行步驟S18 ;
[0023] 步驟二,休眠調(diào)度階段
[0024] 步驟S20,節(jié)點(diǎn)1喚醒狀態(tài)持續(xù)3s,若接收到請求包則執(zhí)行步驟S21,若接收到信息 包,則執(zhí)行步驟S23,若未接收到任何包,進(jìn)行隨機(jī)的一段時間等待后進(jìn)入休眠狀態(tài),并執(zhí)行 步驟S25 ;
[0025] 步驟S21,步驟S21,節(jié)點(diǎn)1收到請求包后,若在節(jié)點(diǎn)1中完成請求包的處理,則處 理完成后,進(jìn)行隨機(jī)一段時間的等待,如在等待過程中沒有收到任何包,則節(jié)點(diǎn)1進(jìn)入休眠 狀態(tài),執(zhí)行步驟S25 ;若節(jié)點(diǎn)1未完成請求包的處理,則執(zhí)行步驟S22 ;
[0026] 步驟S22,節(jié)點(diǎn)1等待自己發(fā)出的請求包后的確認(rèn)包返回,若接收到確認(rèn)包,則將 確認(rèn)包中的信息存儲在轉(zhuǎn)發(fā)信息倉庫中;若沒有收到確認(rèn)包,則執(zhí)行步驟S23 ;處理完成 后,進(jìn)行一段時間的等待,若沒收收到任何包,則進(jìn)入休眠狀態(tài),執(zhí)行步驟S25 ;
[0027] 步驟S23,如節(jié)點(diǎn)1沒有收到確認(rèn)包,則進(jìn)行重傳處理,重傳每Is進(jìn)行1次,共進(jìn) 行3次;若在3次重傳中任何一次有確認(rèn)包的返回,則完成處理,進(jìn)入休眠狀態(tài),執(zhí)行步驟 S25 ;
[0028] 步驟S24,節(jié)點(diǎn)1收到其下一跳節(jié)點(diǎn)2發(fā)來的信息包,在等待數(shù)據(jù)返回路徑表中查 詢該信息包對應(yīng)的請求包,若查詢到,則將信息包進(jìn)行回傳并存儲在節(jié)點(diǎn)1的數(shù)據(jù)倉庫中, 若未查詢到則丟棄信息包,整個過程完成;處理完成后,進(jìn)行隨機(jī)的一段時間等待,若未收 到任何包,則進(jìn)入休眠狀態(tài),執(zhí)行步驟S25 ;
[0029] 步驟S25,節(jié)點(diǎn)處于通信模塊關(guān)閉狀態(tài),休眠3s ;休眠結(jié)束后,執(zhí)行步驟S20,進(jìn)入 下一個休眠周期;
[0030] 步驟三,信息包回傳階段
[0031] 節(jié)點(diǎn)進(jìn)行信息包回傳的具體步驟如下:
[0032] 步驟S30,節(jié)點(diǎn)1將接收到的請求包與數(shù)據(jù)倉庫中的每一項(xiàng)進(jìn)行匹配查詢,如查詢 到則執(zhí)行步驟S31,否則執(zhí)行S37 ;
[0033] 步驟S31,節(jié)點(diǎn)1將查詢到與請求包對應(yīng)的數(shù)據(jù)進(jìn)行打包處理,生成信息包并回傳 給節(jié)點(diǎn)1的下一跳節(jié)點(diǎn)2,且等待確認(rèn)包的返回;執(zhí)行步驟S32 ;
[0034] 步驟S32,若節(jié)點(diǎn)2收到信息包,則查詢節(jié)點(diǎn)2的等待數(shù)據(jù)返回路徑表中是否存在 此信息包對應(yīng)的部分,如果存在,則執(zhí)行步驟S33,否則執(zhí)行步驟S37 ;
[0035] 步驟S33,節(jié)點(diǎn)2回傳給節(jié)點(diǎn)1確認(rèn)包,執(zhí)行步驟S34,否則執(zhí)行步驟S36 ;
[0036] 步驟S34,節(jié)點(diǎn)2將接收到的信息包存入其數(shù)據(jù)倉庫中,執(zhí)行步驟S35 ;
[0037] 步驟S35,節(jié)點(diǎn)2將接收到的信息包回傳給此節(jié)點(diǎn)的下一跳節(jié)點(diǎn),重復(fù)步驟S32至 S35,直至下一跳節(jié)點(diǎn)為匯聚節(jié)點(diǎn)位置,此時執(zhí)行步驟S37 ;
[0038] 步驟S36,若下一跳節(jié)點(diǎn)在重傳時間Is內(nèi)未返回確認(rèn)包,則信息包發(fā)送節(jié)點(diǎn)執(zhí)行 步驟S21 ;
[0039] 步驟S37,信息包回傳結(jié)束。
[0040] 進(jìn)一步地,所述的請求包和信息包的結(jié)構(gòu)均包括命名,命名包括請求的目的節(jié)點(diǎn) ID、需要請求的數(shù)據(jù)類型、數(shù)據(jù)包的批次號;請求包中還包括數(shù)據(jù)包類型、上一跳節(jié)點(diǎn)ID、 隨機(jī)數(shù);信息包中還包括數(shù)據(jù)包類型、一批數(shù)據(jù)包的總個數(shù)、目前屬于第幾個數(shù)據(jù)包、數(shù)據(jù)。
[0041] 進(jìn)一步地,所述的數(shù)據(jù)倉庫中每一個表項(xiàng)都包括:命名、一批數(shù)據(jù)包的總個數(shù)、目 前屬于第幾個數(shù)據(jù)包、對應(yīng)的一個數(shù)據(jù)、這個數(shù)據(jù)已經(jīng)在數(shù)據(jù)倉庫中被使用的次數(shù)。
[0042] 進(jìn)一步地,所述的轉(zhuǎn)發(fā)信息倉庫中每一個表項(xiàng)都包括:命名、每一個條目的發(fā)送到 哪個節(jié)點(diǎn)、每一個條編號已經(jīng)使用的空間、每一個條目已經(jīng)存在的時間、每一個條相似匹配 后使用的次數(shù)。
[0043] 進(jìn)一步地,所述的等待數(shù)據(jù)返回路徑表中每一個表項(xiàng)都包括:命名、每一個條目的 分別來自哪些節(jié)點(diǎn)、每一個條目的已經(jīng)使用的空間、每一個條目已經(jīng)存在的時間。
[0044] 進(jìn)一步地,所述的節(jié)點(diǎn)1在請求包發(fā)送時,在節(jié)點(diǎn)1和節(jié)點(diǎn)2之間執(zhí)行確認(rèn)和重傳 機(jī)制。
[0045] 本發(fā)明的技術(shù)優(yōu)勢在于,利用一種新的命名數(shù)據(jù)網(wǎng)絡(luò)來改進(jìn)傳感器網(wǎng)絡(luò)中的異步 休眠調(diào)度問題,該網(wǎng)絡(luò)結(jié)構(gòu)能夠提供能耗更少的異步休眠調(diào)度策略,以達(dá)到能夠大規(guī)模、野 外部署,和減少電池能量消耗的目的。其中優(yōu)勢主要體現(xiàn)在:
[0046] 1.命名數(shù)據(jù)網(wǎng)絡(luò)利用基于數(shù)據(jù)請求者(Consumer-Driver)的請求方式顛覆了傳 統(tǒng)無線傳感器網(wǎng)絡(luò)中的基于數(shù)據(jù)產(chǎn)生者(Product-Driver)的發(fā)送方式,形成了內(nèi)容請求 驅(qū)動式的通信模式;
[0047] 2.休眠調(diào)度喚醒后,不需要進(jìn)行探測包的發(fā)送,大大減少了探測包對于信道利用 率的占用;
[0048] 3.如果出現(xiàn)了丟包重傳的情況,由于每一個節(jié)點(diǎn)中有Content Store的存在,使 得再次返回的data包的跳步數(shù)大大減少、重傳概率降低,增大了信道的吞吐率。
[0049] 4?不需要對時鐘偏移進(jìn)行校正;
[0050] 5.能夠適應(yīng)于有路由空洞、具有移動性的無線傳感器網(wǎng)絡(luò)。
【附圖說明】
[0051] 圖1是interest請求包的結(jié)構(gòu);
[0052] 圖2是Data信息包的結(jié)構(gòu);
[0053] 圖3是Content Store中每一個表項(xiàng)的結(jié)構(gòu);
[0054] 圖 4 是 Forwarding Information Base 中每一個表項(xiàng)的結(jié)構(gòu);
[0055] 圖5是Pending Interest Table中每一個表項(xiàng)的結(jié)構(gòu);
[0056] 圖6是節(jié)點(diǎn)1發(fā)送interest至節(jié)點(diǎn)2的Content Store中,情況1 ;
[0057] 圖7是節(jié)點(diǎn)1發(fā)送interest至節(jié)點(diǎn)2的Content Store中,情況2 ;
[0058] 圖 8 是節(jié)點(diǎn) 2 將 interest 在 Content Store 至 Pending Interest Table 中傳送, 情況1 ;
[0059] 圖 9 是節(jié)點(diǎn) 2 將 interest 在 Content Store 至 Pending Interest Table 中傳送, 情況2 ;
[0060] 圖 10 是節(jié)點(diǎn) 2 將 interest 在 Pending Interest Table 至 Forwarding Information Base 中傳送,情況 1 ;
[0061] 圖 11 是節(jié)點(diǎn) 2 將 interest 在 Pending Interest Table 至 Forwarding