基于不等長蘇醒時隙的低占空比傳感網鄰居發(fā)現(xiàn)方法
【技術領域】
[0001] 本發(fā)明涉及無線傳感網技術領域,尤其涉及傳感網中的鄰居發(fā)現(xiàn),具體是一種基 于不等長蘇醒時隙的低占空比傳感網鄰居發(fā)現(xiàn)方法。 二、
【背景技術】
[0002] 無線傳感網越來越廣泛地得到應用。但是能耗問題一直困擾著無線傳感網絡技術 的發(fā)展。因為,無線傳感網中的節(jié)點是由電池供電的,且由于環(huán)境的復雜性,電池不易更換 或者充電麻煩,因此節(jié)點能量十分有限。由于無線傳感網絡大多是自組織的,在組網前,節(jié) 點缺乏周圍鄰居的信息,因此鄰居發(fā)現(xiàn)是網絡構建的第一步和路由的前提,尤其在移動網 絡中,由于節(jié)點間的鄰居關系動態(tài)變化,鄰居發(fā)現(xiàn)更是常規(guī)工作。因此鄰居發(fā)現(xiàn)一直是無線 傳感器網絡研究中的熱點問題。但是以下兩個因素增加了鄰居發(fā)現(xiàn)的挑戰(zhàn)。一是,由于低能 耗的要求,節(jié)點一直處于蘇醒狀態(tài)去搜尋周圍鄰居是不太可行的。因此一般用低占空比技 術來降低能量消耗,低占空比技術即節(jié)點大部分時間處于休眠狀態(tài),而只有少量時間處于 蘇醒狀態(tài)。低占空比操作雖然降低了能耗,但是增加了鄰居發(fā)現(xiàn)的難度。二是,無論是在靜 態(tài)網絡還是在移動網絡中,鄰居發(fā)現(xiàn)要求發(fā)現(xiàn)延遲越小越好。因此,人們對鄰居發(fā)現(xiàn)的研 究,其核心就是要提高能效,要求能耗和延遲都越小越好。
[0003] 低占空比模式一般將時間軸劃分為多個連續(xù)等長時隙,其長度為的大小由具 體硬件決定,特別取決于無線模塊從睡眠狀態(tài)轉換到蘇醒狀態(tài)的轉換時間,在數(shù)值上等于 多個發(fā)送或者接收一幀數(shù)據(jù)的時間8。根據(jù)不同的算法,節(jié)點決定在某些時隙蘇醒(叫做蘇 醒時隙),而在其他時隙休眠(叫做休眠時隙)。由t個T時隙構成一個周期,t的大小是由一個 周期內節(jié)點的蘇醒時間和給定的占空比共同決定的。一般,節(jié)點只在很少的時隙蘇醒,所以 增大了鄰居發(fā)現(xiàn)難度。因為只有當節(jié)點蘇醒時,它才可以發(fā)送或接收信號,而只有在兩個物 理鄰居節(jié)點都同時蘇醒時,且蘇醒時隙具有部分重疊時,它們才能實現(xiàn)相互發(fā)現(xiàn)。由于各節(jié) 點間提供額外的同步時鐘需要增加硬件成本和能量消耗,所以現(xiàn)有低占空比傳感網絡中的 流行鄰居發(fā)現(xiàn)方法都是異步的。異步的鄰居發(fā)現(xiàn)方法分成兩類,分別是概率性鄰居發(fā)現(xiàn)算 法和確定性鄰居發(fā)現(xiàn)算法。概率性鄰居發(fā)現(xiàn)算法只能以一定的概率(或比例)實現(xiàn)兩個物理 鄰居節(jié)點之間的相互發(fā)現(xiàn),它的主要缺點是不能給出兩個物理鄰居節(jié)點間的發(fā)現(xiàn)延時的上 限。概率性鄰居發(fā)現(xiàn)主要包括基于生日悼論的Birthday Protocols算法(Michael,J.,and Steven,A.:"Birthday protocols for low energy deployment and flexible neighbor discovery in ad hoc wireless networks"?ACM Inti.Symp.on Mobile ad hoc networking&computing(MobiHoc),New York,NY,USA,October 2001)及其衍生算法,和基 于素數(shù)集合的概率性算法(Liangyin Chen,Yecheng Li,Yanru Chen,Kai Liu,Jingyu Zhang,Yanhong Cheng,Hongyue You and Qian Luo:"Prime-set-based neighbour discovery algorithm for low duty-cycle dynamic WSNs "'ELECTRONICS LETTERS, 2015,51(6):534-536)等。確定性鄰居發(fā)現(xiàn)算法能夠保證節(jié)點在給定時限內一定能夠發(fā)現(xiàn) 它的所有鄰居。它們的主要優(yōu)點是能夠給出兩個物理鄰居之間的發(fā)現(xiàn)延時的上限。因此本 發(fā)明主要關注確定性鄰居發(fā)現(xiàn)方法。先前的算法是基于等時隙的,即所有時隙無論是蘇醒 時隙還是休眠時隙都要求等大?。ū热鏒 i s c 〇算法:P r a b a 1 D u 11 a a n d D a v i d Culler.Practical asynchronous neighbor discoveryand rendezvous for mobile sensing applications ? In ACM SenSys,2008 ?),這一類型的算法在Non-Integer算法 (S.Chen,A.Russell,R.Jin,Y.Qin,B-Wang and S?Vasudevan"Asynchronous Neighbor Discovery on Duty-cycled Mobile Devices:Integer and Non-Integer Schedules," SMobiHoc'15Proceedings of the 16th ACM International Symposium on Mobile Ad Hoc Networking and Computing, pp.47_56.2015)中統(tǒng)稱為Integer 策略。2012 年發(fā)表的 Searchlight(M?Bakht and R?Kravets,"SearchLight:asynchronous neighbor discovery using systematic probing,''ACM SIGMOBILE Mobile Computing and Communications Re view, vo 1.14, no .4, pp.31-3 3,2011)中的 Striped Searchlight (Searchl ight算法分為Nos triped Search light和Striped Searchl ight 兩種)米用 了蘇醒 時隙向臨近休眠時隙"溢出" 一小部分的策略從而獲得了比當時最好的U-connect (A.Kandhalu,K.Lakshmanan and R.Rajkumar,"Neighbor discovery in mobile sensor networks/'Technical report,Carnegie Mellon University.2010)大約 50% 的能效提 升。受到Striped Search light的啟發(fā),Non-Integer算法提出將任何Integer策略轉化為 Non-Integer 的方法。Non-Integer 算法由于可將 Nos triped Searchl ight 算法(Nos triped Sear chi ight算法仍屬于Integer策略)轉化為Non-Integer策略,從而比以往最好的 Striped Searchlight提升性能大約40? 5%。
[0004] 雖然現(xiàn)有方法大幅地提升了鄰居發(fā)現(xiàn)能效,但是目前所有的方法中,蘇醒時隙的 大小都是等長的,我們的研究發(fā)現(xiàn)利用等長蘇醒時隙的策略阻礙了鄰居發(fā)現(xiàn)效能的進一步 提升。之所以使用等長蘇醒時隙策略是因為蘇醒時隙的長度主要取決于從睡眠狀態(tài)到蘇醒 狀態(tài)的轉換時間。但是最近的研究表明,RF模塊除了蘇醒和休眠兩個狀態(tài),還包含一個空閑 狀態(tài)。這里的空閑狀態(tài)與傳統(tǒng)的空閑偵聽狀態(tài)不同。在這種空閑狀態(tài)下,節(jié)點既不能發(fā)送信 息也不能接收信息,但節(jié)點需要非常少的能量(約正常的10%)維持CPU的晶體振蕩器工作, 使節(jié)點可以快速切換到工作狀態(tài)。從空閑狀態(tài)轉換到蘇醒狀態(tài)的時間遠小于從休眠狀態(tài)轉 換到蘇醒狀態(tài)的時間,并且在空閑狀態(tài)消耗的能量遠小于蘇醒狀態(tài)。結合蘇醒,休眠和空閑 狀態(tài)使得在鄰居發(fā)現(xiàn)中使用不等長的蘇醒時隙可能帶來更好的收益。除此之外,現(xiàn)有的所 有方法都在一次蘇醒時隙的重疊中保證雙向發(fā)現(xiàn),但是,由于節(jié)點無線信號的不規(guī)則性,對 于部分鄰居節(jié)點對,不存在雙向鏈接,在這種情況下在一次蘇醒時隙重疊中實現(xiàn)雙向發(fā)現(xiàn) 是沒有必要的。因此可以考慮在一次蘇醒時隙的重疊中只保證單向發(fā)現(xiàn),這樣可以將長度 較小的蘇醒時隙減小到只發(fā)送一幀數(shù)據(jù)的大小。在單向發(fā)現(xiàn)之后再實施雙向發(fā)現(xiàn),這樣雙 向發(fā)現(xiàn)也很容易獲得,因為當一個節(jié)點收到一幀數(shù)據(jù)時,它可以在發(fā)送節(jié)點的下一個蘇醒 時隙主動蘇醒并發(fā)送一幀數(shù)據(jù)。這樣的方法能夠獲得能效的提升。因此采用不等長的蘇醒 時隙和單向鄰居發(fā)現(xiàn)的方法能夠最大幅提升能量效率。 三、
【發(fā)明內容】
[0005] 本發(fā)明的目的在于解決現(xiàn)有異步鄰居發(fā)現(xiàn)方法發(fā)現(xiàn)延遲大,能量消耗高,即能效 不夠高的問題。針對現(xiàn)有技術均采用等長蘇醒時隙和保證在一次蘇醒時隙的重疊中保證雙 向發(fā)現(xiàn)方法所遇到的難以繼續(xù)提升能效的技術瓶頸,首次采用全新的長度不等長蘇醒時隙 和單向鄰居發(fā)現(xiàn)方法,最大幅度地提高鄰居發(fā)現(xiàn)能效。
[0006] 本發(fā)明的目的是這樣達到的:
[0007] 采用長度不等長蘇醒時隙和單向鄰居發(fā)現(xiàn)方法,在每一個周期中構建兩種蘇醒時 隙,A時隙和C時隙,C時隙分為IP和BP兩部分,只有BP處于蘇醒狀態(tài),IP處于空閑狀態(tài),且BP 的蘇醒持續(xù)時間只夠發(fā)送一幀數(shù)據(jù),其值為S,A時隙和C時隙的末端都具有時隙溢出,溢出 的長度為發(fā)送一幀數(shù)據(jù)的時間S;
[0008]具體做法是:
[0009] 預先將時間軸劃分為多個等長連續(xù)時隙,其長度為I,由t個連續(xù)時隙構成一個周 期,用時隙的大小作為基本單位,每個周期內時隙從〇到t_l編號,用n個周期構成一個n行t 列的矩陣M,其大小用T表示,則T = nt。
[0010] 每個周期內有一個A時隙,位于這個周期內的第0個時隙位置,有一個或者多個C時 隙,其余時隙都為休眠時隙。
[0011] 在一個矩陣內總共設置有t/2個C時隙,將這t/2個C時隙平均分配到n行;C時隙如 果不能平均分配,即t/2不能被n整除時,則把余下的C時隙分配到最后一個周期,同時保證 把每行