本發(fā)明屬于無(wú)線(xiàn)傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及了一種多鏈型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的無(wú)分層通信方法。
背景技術(shù):
隨著無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的技術(shù)發(fā)展和應(yīng)用,其在工程中的應(yīng)用越來(lái)越廣泛,線(xiàn)型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)和星型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)作為常見(jiàn)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),具有廣泛的應(yīng)用前景和發(fā)展空間。但是單獨(dú)的線(xiàn)型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)和星型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)在工程應(yīng)用中的范圍都比較小,因此,目前更趨向于研究結(jié)合兩種拓?fù)浣Y(jié)構(gòu)的特點(diǎn)的多鏈?zhǔn)降幕旌贤負(fù)浣Y(jié)構(gòu)。另外,對(duì)于無(wú)線(xiàn)傳感器網(wǎng)絡(luò)本身的研究熱點(diǎn)主要集中在3個(gè)方面的關(guān)鍵技術(shù)上:網(wǎng)絡(luò)通信協(xié)議、網(wǎng)絡(luò)管理技術(shù)、網(wǎng)絡(luò)支撐技術(shù),主要體現(xiàn)在:mac協(xié)議、路由協(xié)議、節(jié)能降耗以及節(jié)點(diǎn)定位四個(gè)方面。由于無(wú)線(xiàn)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)由電池供電,節(jié)點(diǎn)的生命周期決定了網(wǎng)絡(luò)的生命周期,因而從節(jié)能降耗的角度設(shè)計(jì)傳感器網(wǎng)絡(luò)成為當(dāng)今研究熱點(diǎn)。
影響無(wú)線(xiàn)傳感器網(wǎng)絡(luò)生命周期的一個(gè)重要因素是網(wǎng)絡(luò)協(xié)議。目前廣泛使用的網(wǎng)絡(luò)協(xié)議有zigbee、182.15.4等基于層次結(jié)構(gòu)的網(wǎng)絡(luò)協(xié)議,但是,由于無(wú)線(xiàn)信道的動(dòng)態(tài)變化特性、無(wú)線(xiàn)介質(zhì)的不可靠性、廣播特性、wsn的能量、存儲(chǔ)能力、通信能力、計(jì)算能力資源受限等特點(diǎn),使得此類(lèi)網(wǎng)絡(luò)協(xié)議不能良好的應(yīng)用于多鏈型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)。因此,需要研究一種適用于多鏈型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的網(wǎng)絡(luò)協(xié)議,從而更好的實(shí)現(xiàn)網(wǎng)絡(luò)資源分配,延長(zhǎng)網(wǎng)絡(luò)生命周期并提高網(wǎng)絡(luò)可靠性。
為了解決上述分層協(xié)議帶來(lái)的問(wèn)題,無(wú)分層協(xié)議應(yīng)運(yùn)而生。目前基于無(wú)分層設(shè)計(jì)方法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)協(xié)議并不是很多,多數(shù)對(duì)無(wú)分層協(xié)議的研究?jī)H僅是提出一個(gè)理論框架,并沒(méi)有應(yīng)用到實(shí)際的應(yīng)用場(chǎng)景中,已提出的幾個(gè)無(wú)分層協(xié)議也不適用于工業(yè)應(yīng)用中的多鏈型傳感器網(wǎng)絡(luò)。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述背景技術(shù)提出的技術(shù)問(wèn)題,本發(fā)明旨在提供一種多鏈型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的無(wú)分層通信方法,克服傳統(tǒng)分層通信方法存在的缺陷,改善和優(yōu)化無(wú)線(xiàn)傳感網(wǎng)絡(luò)的性能。
為了實(shí)現(xiàn)上述技術(shù)目的,本發(fā)明的技術(shù)方案為:
一種多鏈型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的無(wú)分層通信方法,所述多鏈型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)采用星-鏈?zhǔn)酵負(fù)浣Y(jié)構(gòu),匯聚節(jié)點(diǎn)位于監(jiān)測(cè)區(qū)域的中心,每條鏈上的傳感器節(jié)點(diǎn)通過(guò)多跳方式向匯聚節(jié)點(diǎn)傳輸信息,將通信協(xié)議分為時(shí)間同步模塊、數(shù)據(jù)融合模塊、功率控制模塊和介質(zhì)訪(fǎng)問(wèn)控制模塊,通信過(guò)程如下:
(1)對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行初始化,包括初始化傳感器節(jié)點(diǎn)的功率控制表、流量速率以及一個(gè)睡眠周期的時(shí)長(zhǎng);
(2)匯聚節(jié)點(diǎn)對(duì)全網(wǎng)進(jìn)行時(shí)間同步,保證每條鏈上的傳感器節(jié)點(diǎn)時(shí)間是一致的,相互之間能夠進(jìn)行數(shù)據(jù)傳輸;
(3)時(shí)間同步之后,各傳感器節(jié)點(diǎn)均同步進(jìn)行周期性偵聽(tīng)和睡眠,在偵聽(tīng)階段,匯聚節(jié)點(diǎn)開(kāi)始發(fā)送分配時(shí)隙請(qǐng)求,傳感器接收到請(qǐng)求后開(kāi)始動(dòng)態(tài)時(shí)隙部署,在睡眠階段,傳感器節(jié)點(diǎn)根據(jù)部署好的時(shí)隙在規(guī)定的時(shí)間內(nèi)醒來(lái)進(jìn)行數(shù)據(jù)傳輸。
進(jìn)一步地,采用粗粒度方式進(jìn)行時(shí)間同步;由匯聚節(jié)點(diǎn)廣播包含編號(hào)的一系列信標(biāo)幀,以保證網(wǎng)內(nèi)所有傳感器節(jié)點(diǎn)至少接收到一個(gè)信標(biāo)幀,各傳感器節(jié)點(diǎn)根據(jù)信標(biāo)幀的編號(hào)計(jì)算喚醒時(shí)間,達(dá)到時(shí)間同步的目的。
進(jìn)一步地,每個(gè)傳感器節(jié)點(diǎn)均建立和維護(hù)一個(gè)功率控制表,用于存放本節(jié)點(diǎn)與其相關(guān)的傳感器節(jié)點(diǎn)之間的最優(yōu)功率值,根據(jù)具體通信需要從功率控制表中取出相應(yīng)的功率值,并在鏈路發(fā)生變化時(shí),對(duì)功率控制表進(jìn)行相應(yīng)更新;任意兩跳傳感器節(jié)點(diǎn)之間的最優(yōu)功率值的計(jì)算公式如下:
上式中,plimit為接收節(jié)點(diǎn)的功率門(mén)限值,pt為節(jié)點(diǎn)發(fā)射功率,pr為節(jié)點(diǎn)接收功率,
進(jìn)一步地,所述分配時(shí)隙請(qǐng)求為rta0請(qǐng)求,rta0請(qǐng)求包括鏈編號(hào)、應(yīng)答節(jié)點(diǎn)id和時(shí)隙id;應(yīng)答節(jié)點(diǎn)是每條鏈路上距離匯聚節(jié)點(diǎn)最遠(yuǎn)的一跳節(jié)點(diǎn),每條鏈路上的應(yīng)答節(jié)點(diǎn)根據(jù)鏈編號(hào)獲取相應(yīng)的時(shí)隙id。
進(jìn)一步地,所述動(dòng)態(tài)時(shí)隙部署的過(guò)程如下:
(a)匯聚節(jié)點(diǎn)廣播rta0請(qǐng)求;
(b)每條鏈路上的應(yīng)答節(jié)點(diǎn)n1收到rta0請(qǐng)求后,取出時(shí)隙id,并在隨機(jī)退避一段時(shí)間后向下一跳傳感器節(jié)點(diǎn)n2發(fā)送cta0請(qǐng)求,cta0請(qǐng)求包括數(shù)據(jù)發(fā)送時(shí)間、時(shí)隙id、數(shù)據(jù)發(fā)送標(biāo)志位和節(jié)點(diǎn)id;
(c)節(jié)點(diǎn)n2收到cta0請(qǐng)求后,首先根據(jù)數(shù)據(jù)發(fā)送標(biāo)志位計(jì)算時(shí)隙長(zhǎng)度,并根據(jù)數(shù)據(jù)發(fā)送時(shí)間部署數(shù)據(jù)接收時(shí)隙和下一跳的數(shù)據(jù)上傳時(shí)隙,若節(jié)點(diǎn)n1和n2均無(wú)數(shù)據(jù)發(fā)送,則不進(jìn)行時(shí)隙部署,直到匯聚節(jié)點(diǎn)收到來(lái)自某條鏈路的cta0請(qǐng)求,表示該條鏈路時(shí)隙部署完成;
(d)每個(gè)傳感器節(jié)點(diǎn)在收到上一跳節(jié)點(diǎn)發(fā)送的cta0請(qǐng)求后,會(huì)向上一跳節(jié)點(diǎn)返回一個(gè)確認(rèn)信息。
進(jìn)一步地,當(dāng)某條鏈路上的節(jié)點(diǎn)出現(xiàn)傳輸錯(cuò)誤時(shí),重新建立新路由:
設(shè)某條鏈路上的節(jié)點(diǎn)n1在向下一跳節(jié)點(diǎn)n2進(jìn)行數(shù)據(jù)傳輸時(shí),發(fā)現(xiàn)鏈路中斷,此時(shí)節(jié)點(diǎn)n1處于偵聽(tīng)階段,并發(fā)送一個(gè)rts消息幀聽(tīng)兩條鄰鏈的信道是否空閑,若兩條鄰鏈空閑,則節(jié)點(diǎn)n1會(huì)向兩條鄰鏈上與節(jié)點(diǎn)n2處于同一時(shí)隙的兩個(gè)節(jié)點(diǎn)a2和b2持續(xù)發(fā)送路由請(qǐng)求,在接到路由請(qǐng)求后,節(jié)點(diǎn)a2和b2首先會(huì)判斷自己的剩余能量,如果剩余能量低于一個(gè)特定的值將忽略此次請(qǐng)求,如果兩條相鄰的鏈路的剩余能量都滿(mǎn)足條件,則向節(jié)點(diǎn)n1發(fā)送一個(gè)確認(rèn)幀,那么節(jié)點(diǎn)n1根據(jù)收到的確認(rèn)幀的先后來(lái)確定新路由,節(jié)點(diǎn)n1加入新路由,匯聚節(jié)點(diǎn)對(duì)新路由所在鏈路進(jìn)行時(shí)隙重分配。
進(jìn)一步地,在數(shù)據(jù)傳輸過(guò)程中引入臨時(shí)休眠機(jī)制,過(guò)程如下:
(a)每個(gè)傳感器節(jié)點(diǎn)設(shè)有一個(gè)計(jì)數(shù)器,初始值為一個(gè)大于0的整數(shù);
(b)若某傳感器節(jié)點(diǎn)在接收時(shí)隙內(nèi)沒(méi)有收到來(lái)自上一跳節(jié)點(diǎn)的數(shù)據(jù),則該節(jié)點(diǎn)的計(jì)數(shù)器減1;
(c)若節(jié)點(diǎn)n1的計(jì)數(shù)器為0,則進(jìn)入省電模式,即在下一個(gè)接收時(shí)隙到來(lái)的時(shí)候,該節(jié)點(diǎn)n1只在接受時(shí)隙的開(kāi)始階段偵聽(tīng)一個(gè)時(shí)間t,t的時(shí)長(zhǎng)要大于接收一個(gè)wakeup報(bào)文的時(shí)間,若沒(méi)有數(shù)據(jù)接收,則立即進(jìn)入睡眠模式,節(jié)省能耗;
(d)當(dāng)鏈路恢復(fù)正常,節(jié)點(diǎn)n1的上一條節(jié)點(diǎn)首先向節(jié)點(diǎn)n1發(fā)送一個(gè)wakeup消息,防止節(jié)點(diǎn)n1處于省電模式,waekup消息僅包含下一節(jié)點(diǎn)id和鏈編號(hào),節(jié)點(diǎn)n1在時(shí)間t內(nèi)接收到了這個(gè)wakeup消息,計(jì)數(shù)器恢復(fù)初始值,并在自己的接收時(shí)隙內(nèi)正常接收數(shù)據(jù)。
進(jìn)一步地,在數(shù)據(jù)傳輸過(guò)程中引入擁塞控制機(jī)制,包括阻止傳感器節(jié)點(diǎn)參與通信來(lái)控制擁塞以及控制節(jié)點(diǎn)生成數(shù)據(jù)包的速率來(lái)控制擁塞;當(dāng)傳感器節(jié)點(diǎn)滿(mǎn)足下式才能參與通信:
上式中,pi為節(jié)點(diǎn)i傳輸數(shù)據(jù)包的錯(cuò)誤率,λi,relay為節(jié)點(diǎn)i傳輸數(shù)據(jù)包的源速率,λi,src為節(jié)點(diǎn)i傳輸數(shù)據(jù)包的延時(shí)速率,tpacket為節(jié)點(diǎn)i傳輸數(shù)據(jù)包到下一跳節(jié)點(diǎn)的平均持續(xù)時(shí)間;
當(dāng)檢測(cè)到擁塞時(shí),數(shù)據(jù)包的生成速率如下式計(jì)算:
上式中,λ(t+δt)為當(dāng)前時(shí)刻的數(shù)據(jù)包生成速率,λ(t)為上一時(shí)刻的數(shù)據(jù)包生成速率,δt為時(shí)間間隔,v、α為速率控制因子,v>1,α>0。
進(jìn)一步地,為了避免最后一跳數(shù)據(jù)傳輸在匯聚節(jié)點(diǎn)處發(fā)生碰撞,出現(xiàn)丟包,因此在時(shí)隙分配時(shí)保證各條鏈路的第一跳的時(shí)隙不同。
采用上述技術(shù)方案帶來(lái)的有益效果:
本發(fā)明采用無(wú)分層通信方法,將協(xié)議劃分成時(shí)間同步模塊、數(shù)據(jù)融合模塊、功率控制模塊、介質(zhì)訪(fǎng)問(wèn)控制模塊等功能模塊,完全打破了傳統(tǒng)的層次模型,實(shí)現(xiàn)協(xié)議棧向功能模塊的轉(zhuǎn)變,使其更加適用于傳感器網(wǎng)絡(luò),解決了鏈間干擾、數(shù)據(jù)時(shí)延、網(wǎng)絡(luò)能耗等問(wèn)題。
附圖說(shuō)明
圖1是本發(fā)明的通信網(wǎng)絡(luò)結(jié)構(gòu)圖;
圖2是本發(fā)明的通信協(xié)議結(jié)構(gòu)圖;
圖3是本發(fā)明的時(shí)間同步時(shí)序圖;
圖4是本發(fā)明的鏈路故障示意圖;
圖5是本發(fā)明的tdma幀時(shí)隙結(jié)構(gòu)圖;
圖6是本發(fā)明的多鏈時(shí)隙分配序列圖;
圖7是本發(fā)明的單鏈時(shí)隙分配序列圖;
圖8是本發(fā)明的數(shù)據(jù)傳輸錯(cuò)誤恢復(fù)機(jī)制示意圖;
圖9是本發(fā)明的數(shù)據(jù)融合機(jī)制示意圖;
圖10是本發(fā)明的數(shù)據(jù)幀格式變化圖;
圖11是本發(fā)明的傳感器節(jié)點(diǎn)工作流程圖;
圖12是本發(fā)明的匯聚節(jié)點(diǎn)工作流程圖;
圖13是各協(xié)議的節(jié)點(diǎn)的數(shù)據(jù)采集率與數(shù)據(jù)延時(shí)關(guān)系圖;
圖14是各協(xié)議的節(jié)點(diǎn)的偵聽(tīng)周期占空比與能耗關(guān)系圖;
圖15是本發(fā)明的鏈路故障處理機(jī)制示意圖;
圖16是本發(fā)明的節(jié)點(diǎn)故障與非故障網(wǎng)絡(luò)生命周期關(guān)系圖;
圖17是本發(fā)明的的網(wǎng)絡(luò)仿真網(wǎng)絡(luò)拓?fù)鋱D;
圖18是本發(fā)明的rbp協(xié)議仿真模型圖;
圖19是各協(xié)議的網(wǎng)絡(luò)仿真節(jié)點(diǎn)個(gè)數(shù)與數(shù)據(jù)時(shí)延關(guān)系圖;
圖20是各協(xié)議的網(wǎng)絡(luò)仿真占空比與數(shù)據(jù)時(shí)延關(guān)系圖;
圖21是各協(xié)議的鏈的條數(shù)與數(shù)據(jù)時(shí)延關(guān)系圖;
圖22是各協(xié)議的節(jié)點(diǎn)剩余能量關(guān)系圖;
圖23是各協(xié)議的網(wǎng)絡(luò)仿真占空比與網(wǎng)絡(luò)總能耗關(guān)系圖;
圖24是各協(xié)議的網(wǎng)絡(luò)仿真節(jié)點(diǎn)個(gè)數(shù)與網(wǎng)絡(luò)總能耗關(guān)系圖;
圖25是各協(xié)議的網(wǎng)絡(luò)仿真鏈的條數(shù)與網(wǎng)絡(luò)總能耗關(guān)系圖;
圖26是本發(fā)明的網(wǎng)絡(luò)仿真出現(xiàn)節(jié)點(diǎn)故障對(duì)每個(gè)節(jié)點(diǎn)生命周期的影響關(guān)系圖;
圖27是本發(fā)明的網(wǎng)絡(luò)仿真出現(xiàn)故障的鏈的條數(shù)與網(wǎng)絡(luò)生命周期的關(guān)系圖。
具體實(shí)施方式
以下將結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
如圖1所示本發(fā)明的通信網(wǎng)絡(luò)結(jié)構(gòu)圖,匯聚節(jié)點(diǎn)位于整個(gè)監(jiān)測(cè)區(qū)域中心,以匯聚節(jié)點(diǎn)為中心形成多鏈?zhǔn)降耐負(fù)浣Y(jié)構(gòu)覆蓋整個(gè)監(jiān)測(cè)區(qū)域,每條鏈上傳感器節(jié)點(diǎn)通過(guò)多跳方式向匯聚節(jié)點(diǎn)傳輸信息。匯聚節(jié)點(diǎn)進(jìn)行全網(wǎng)周期性時(shí)間同步,傳感器節(jié)點(diǎn)進(jìn)行周期性偵聽(tīng)及睡眠。
如圖2所示本發(fā)明的通信協(xié)議結(jié)構(gòu)圖,整個(gè)系統(tǒng)被分為若干個(gè)模塊,每個(gè)功能模塊有一個(gè)頭信息,用于存儲(chǔ)模塊間需要共享的一些信息,包括功率,距離,節(jié)點(diǎn)狀態(tài),剩余能量等信息,所有的這些信息均被封裝在一個(gè)數(shù)據(jù)包內(nèi),各個(gè)模塊均可對(duì)這些包頭信息進(jìn)行任意的訪(fǎng)問(wèn),模塊和模塊之間實(shí)現(xiàn)了信息共享,打破了傳統(tǒng)的層的概念,實(shí)現(xiàn)了無(wú)線(xiàn)傳感器網(wǎng)絡(luò)無(wú)分層的設(shè)計(jì)。
匯聚節(jié)點(diǎn)進(jìn)行周期性時(shí)間同步:本發(fā)明通過(guò)動(dòng)態(tài)調(diào)整同步周期的長(zhǎng)度來(lái)解決時(shí)間漂移的問(wèn)題。同步周期長(zhǎng)度的選取充分考慮傳輸延時(shí)的抖動(dòng),通過(guò)考慮本次數(shù)據(jù)傳輸與上一次傳輸之間的時(shí)延差,最終通過(guò)一段時(shí)間內(nèi)的平均時(shí)延和一個(gè)初始化的比例因子k計(jì)算本次同步周期的補(bǔ)充值δt,k的值與具體的硬件環(huán)境有關(guān)。即如果上次同步周期內(nèi)時(shí)鐘偏移量較小,則將本此同步周期長(zhǎng)度按比例增加,δt增加;如果上次同步周期內(nèi)時(shí)鐘偏移量較大,則將本此同步周期長(zhǎng)度按比例縮短,δt減少;如果本此同步消息沒(méi)有收到應(yīng)答,則按照前面m次同步周期的平均值進(jìn)行時(shí)間同步。假設(shè)前兩次同步周期間隔為t,那么下一次同步時(shí)長(zhǎng)為
傳感器節(jié)點(diǎn)進(jìn)行周期性偵聽(tīng)及睡眠:時(shí)間同步后,傳感器節(jié)點(diǎn)進(jìn)入周期性偵聽(tīng)及睡眠周期。偵聽(tīng)階段,節(jié)點(diǎn)進(jìn)行相關(guān)的時(shí)隙部署,睡眠階段,節(jié)點(diǎn)在自己的時(shí)隙內(nèi)醒來(lái)接收或發(fā)送數(shù)據(jù)。
以上通信過(guò)程中還融入了其他相關(guān)機(jī)制:粗粒度的時(shí)間同步,可調(diào)功率控制,多鏈時(shí)隙部署,動(dòng)態(tài)時(shí)隙大小,鏈路中斷后時(shí)隙移動(dòng)機(jī)制,臨時(shí)休眠機(jī)制,占空比機(jī)制,擁塞控制和數(shù)據(jù)融合。
1、粗粒度的時(shí)間同步
匯聚節(jié)點(diǎn)在進(jìn)行時(shí)間同步時(shí)采用的是粗粒度的時(shí)間同步方式。如圖3所示本發(fā)明的時(shí)間同步時(shí)序圖,匯聚節(jié)點(diǎn)廣播信標(biāo)幀,傳感器節(jié)點(diǎn)根據(jù)接收到的信標(biāo)幀的時(shí)刻進(jìn)行相應(yīng)的時(shí)間調(diào)整,最終達(dá)到時(shí)間同步。假設(shè)每個(gè)傳感器節(jié)點(diǎn)內(nèi)部時(shí)鐘為t′,即傳感器節(jié)點(diǎn)每隔t′時(shí)間周期性的醒來(lái)接收信標(biāo)幀,整個(gè)同步周期為tsyc,假設(shè)某個(gè)傳感器節(jié)點(diǎn)在第一次醒來(lái)接收到信標(biāo)幀的時(shí)間為周期t′內(nèi)的t1時(shí)刻,如果傳感器節(jié)點(diǎn)第二次醒來(lái)在t1時(shí)刻沒(méi)有收到信標(biāo)幀,則在下次周期t′內(nèi)接收信標(biāo)幀的時(shí)間為t+δt,δt表示隨機(jī)延時(shí)的一時(shí)間間隔,如果傳感器節(jié)點(diǎn)第二次醒來(lái)在時(shí)間t1正常接收到信標(biāo)幀,則在下次周期t′內(nèi)接收信標(biāo)幀的時(shí)間為仍為t。網(wǎng)內(nèi)的傳感器節(jié)點(diǎn)通過(guò)周期性的醒來(lái)接收信標(biāo)幀進(jìn)行若干次的時(shí)間調(diào)整,最終達(dá)到時(shí)間同步的狀態(tài)。
當(dāng)n個(gè)信標(biāo)幀廣播結(jié)束后,關(guān)閉傳感器節(jié)點(diǎn)的內(nèi)部時(shí)鐘,所有的傳感器節(jié)點(diǎn)進(jìn)入休眠狀態(tài),在時(shí)間t后同時(shí)醒來(lái),進(jìn)入偵聽(tīng)階段。
2、可調(diào)功率控制
本發(fā)明中采用圖1所示的多鏈?zhǔn)降耐ㄐ啪W(wǎng)絡(luò)結(jié)構(gòu)圖,因此通過(guò)嚴(yán)格的功率控制避免鏈間干擾,節(jié)省能耗,提高網(wǎng)絡(luò)可靠性。
本發(fā)明中主要有以下三種情況要進(jìn)行鏈路控制:
(1)在通信鏈路正常的情況下,每個(gè)節(jié)點(diǎn)需要根據(jù)節(jié)點(diǎn)間距初始化自身的發(fā)送功率p0,p0剛好能夠覆蓋所在鏈路上上一跳傳感器節(jié)點(diǎn)和下一跳傳感器節(jié)點(diǎn);
(2)當(dāng)某一條通信鏈路出現(xiàn)異常,如本發(fā)明中圖4所示,鏈路lmo中節(jié)點(diǎn)b出現(xiàn)異常,此時(shí)節(jié)點(diǎn)b首先需要增大自身功率嘗試向節(jié)點(diǎn)h發(fā)送數(shù)據(jù);
(3)如果此時(shí)b距離sink節(jié)點(diǎn)較遠(yuǎn),節(jié)點(diǎn)間距較大,即h節(jié)點(diǎn)不在b的功率控制表中,節(jié)點(diǎn)b向鄰鏈節(jié)點(diǎn)發(fā)起路由請(qǐng)求,如本發(fā)明中圖4所示,b向e節(jié)點(diǎn)發(fā)起新的路徑請(qǐng)求,此時(shí)需要調(diào)節(jié)b的功率,使得b和e之間能夠進(jìn)行通信。
每個(gè)傳感器節(jié)點(diǎn)需要建立和維護(hù)一個(gè)功率控制表,用于存放節(jié)點(diǎn)與其相關(guān)的傳感器節(jié)點(diǎn)的最優(yōu)的功率值,根據(jù)具體通信需要從傳感器節(jié)點(diǎn)的功率控制表中取相應(yīng)的功率值。通過(guò)合理的功率控制,不但可以避免鏈與鏈之間的干擾,還可以避免由于功率過(guò)大而引起的額外的能耗的浪費(fèi)。在有新節(jié)點(diǎn)加入等鏈路發(fā)生變化的情況,功率表要相應(yīng)更新。任意兩跳傳感器節(jié)點(diǎn)之間的最優(yōu)的功率值計(jì)算如下:
首先,傳感器節(jié)點(diǎn)在數(shù)據(jù)通信過(guò)程中接收端功率的計(jì)算公式如下:
其中,λ表示監(jiān)測(cè)區(qū)域內(nèi)節(jié)點(diǎn)的平均密度,β為損耗系數(shù),d為發(fā)送節(jié)點(diǎn)和接受節(jié)點(diǎn)之間的距離,gt為發(fā)射天線(xiàn)增益,gr為接收天線(xiàn)增益,pt為天線(xiàn)的發(fā)送功率。假設(shè)plimit為接收節(jié)點(diǎn)的門(mén)限值,pmin為發(fā)送節(jié)點(diǎn)的最小的發(fā)射功率,則有:
由(1.1)和(1.2)可得發(fā)送端的功率如下:
3、多鏈時(shí)隙部署
本發(fā)明基于tdma的時(shí)隙分配方式,通過(guò)tdma時(shí)隙部署節(jié)點(diǎn)周期性的醒來(lái)進(jìn)行數(shù)據(jù)的發(fā)送和接收。通過(guò)合理的時(shí)隙分配,避免了數(shù)據(jù)碰撞,保證數(shù)據(jù)的正確傳輸,本發(fā)明的tdma的幀時(shí)隙結(jié)構(gòu)如圖5。
一個(gè)tdma幀被分為若干時(shí)隙,時(shí)隙0在本發(fā)明中是一個(gè)特定的競(jìng)爭(zhēng)訪(fǎng)問(wèn)時(shí)隙,主要用于時(shí)隙分配,其他的若干時(shí)隙被動(dòng)態(tài)的分配給傳感器節(jié)點(diǎn)用于數(shù)據(jù)傳輸。每條鏈上的第一跳節(jié)點(diǎn)(即離匯聚節(jié)點(diǎn)最遠(yuǎn)的一跳節(jié)點(diǎn))都需要維護(hù)一個(gè)時(shí)隙表,給每個(gè)時(shí)隙一個(gè)標(biāo)志位flag,一開(kāi)始初始化所有的時(shí)隙,使得flag=0,如果一個(gè)時(shí)隙被分配到某個(gè)節(jié)點(diǎn)中,就所有節(jié)點(diǎn)的時(shí)隙分配表中該時(shí)隙的flag置1。具體的時(shí)隙分配算法如下:
(1)假設(shè)整個(gè)監(jiān)測(cè)區(qū)域有l(wèi)條鏈,sink節(jié)點(diǎn)在時(shí)隙ts0廣播l個(gè)rta0(requesttoassign)消息給每條鏈上的第一跳節(jié)點(diǎn),開(kāi)始時(shí)隙分配。rta0消息應(yīng)包括鏈編號(hào)\源地址,應(yīng)答節(jié)點(diǎn)id以及要分配的時(shí)隙tsi;應(yīng)答節(jié)點(diǎn)只接受鏈編號(hào)相同的rta0消息,如果鏈編號(hào)相同,則接受該消息,如果不同,則丟棄該消息。如圖6所示本發(fā)明的多鏈時(shí)隙分配圖,為了避免沖突,每條鏈上第一個(gè)節(jié)點(diǎn)的數(shù)據(jù)發(fā)送時(shí)隙均不能相同,圖中n1n表示第一條鏈上第一跳節(jié)點(diǎn),ts-l表示一個(gè)tdma周期,tsi表示第i個(gè)時(shí)隙,圖6中通過(guò)給每條鏈的第一跳節(jié)點(diǎn)分配不同的時(shí)隙從而使得每條鏈上最后一跳數(shù)據(jù)傳輸時(shí)隙不同,避免了sink節(jié)點(diǎn)處的數(shù)據(jù)沖突,整個(gè)數(shù)據(jù)傳輸過(guò)程中需要的時(shí)隙數(shù)為(l+n)個(gè)。
(2)第一跳傳感器節(jié)點(diǎn)在收到rta0消息后,首先根據(jù)時(shí)隙表中的flag位來(lái)檢查tsi是否為空閑:
a.如果flag=0,則說(shuō)明時(shí)隙tsi沒(méi)有被占用,傳感器節(jié)點(diǎn)i會(huì)主動(dòng)發(fā)送一個(gè)cta0(cleartoassign)消息給sink節(jié)點(diǎn);sink節(jié)點(diǎn)收到cta0則將時(shí)隙tsi分配給節(jié)點(diǎn)i,并且將該時(shí)隙的flag置1,cta0消息中包含鏈編號(hào),源地址,目的地址,時(shí)隙id,數(shù)據(jù)發(fā)送標(biāo)志位;
b.如果時(shí)隙表中tsi的flag=1,那么傳感器節(jié)點(diǎn)不會(huì)對(duì)sink節(jié)點(diǎn)進(jìn)行應(yīng)答,當(dāng)超過(guò)一定的時(shí)間sink節(jié)點(diǎn)仍然沒(méi)有收到某條鏈上的應(yīng)答消息,則再次對(duì)其進(jìn)行時(shí)隙分配;
(3)每條鏈上的第一跳節(jié)點(diǎn)不會(huì)同時(shí)給sink節(jié)點(diǎn)回復(fù)cta0消息,此時(shí)應(yīng)用隨機(jī)退避機(jī)制,即只有一個(gè)節(jié)點(diǎn)會(huì)立即回復(fù)一個(gè)cta0給sink,其他節(jié)點(diǎn)會(huì)退避不同的隨機(jī)時(shí)間后發(fā)送cta0應(yīng)答消息,避免了沖突。具體如下:假設(shè)整個(gè)網(wǎng)絡(luò)一共有l(wèi)條鏈,每條鏈的第一跳節(jié)點(diǎn)同時(shí)收到rta0消息,第一條鏈的第一跳節(jié)點(diǎn)n11緩沖時(shí)間δt后向sink節(jié)點(diǎn)應(yīng)答,第二條鏈的第一跳節(jié)點(diǎn)n21則退避(δt+t)時(shí)間后向sink節(jié)點(diǎn)應(yīng)答sink節(jié)點(diǎn)收到cta0,第i條鏈的第一跳節(jié)點(diǎn)ni1則退避(δt+(i-1)t)時(shí)間后向sink節(jié)點(diǎn)應(yīng)答,這里的時(shí)間t是接收一個(gè)cta0消息的時(shí)長(zhǎng),由于cta0消息比較小,因此t很小。cta0消息的具體發(fā)送過(guò)程如下:
a.cta0消息在上傳的過(guò)程可以對(duì)其所在鏈上的其他節(jié)點(diǎn)進(jìn)行時(shí)隙分配。cta0消息是通過(guò)多跳的方式上傳到匯聚節(jié)點(diǎn)。第一跳節(jié)點(diǎn)轉(zhuǎn)發(fā)cta0消息給下一跳節(jié)點(diǎn),節(jié)點(diǎn)可以根據(jù)接收到的上一跳節(jié)點(diǎn)的時(shí)隙id確定自己的時(shí)隙id,并且可以根據(jù)收到的cta0消息的發(fā)送時(shí)間以及下一跳節(jié)點(diǎn)接收到cta0消息所需時(shí)間計(jì)算和部署數(shù)據(jù)接收時(shí)隙和下一跳的數(shù)據(jù)上傳時(shí)隙。下一跳節(jié)點(diǎn)在收到cta0消息后,回復(fù)一個(gè)確認(rèn)消息cta給上一跳節(jié)點(diǎn);
b.在時(shí)隙部署的過(guò)程中,cta0消息中還增加了1bit數(shù)據(jù)發(fā)送標(biāo)志位,用來(lái)標(biāo)志發(fā)送該請(qǐng)求消息的源節(jié)點(diǎn)是否有數(shù)據(jù)需要發(fā)送。假設(shè)節(jié)點(diǎn)i向節(jié)點(diǎn)j發(fā)送cta0請(qǐng)求消息,如果節(jié)點(diǎn)i有數(shù)據(jù)要發(fā)送,則將該位置1,如果沒(méi)有數(shù)據(jù)發(fā)送,則將該位置0,當(dāng)節(jié)點(diǎn)i的時(shí)隙到來(lái)時(shí),如果該位為0,節(jié)點(diǎn)i在當(dāng)前時(shí)隙將繼續(xù)休眠。節(jié)點(diǎn)j收到來(lái)自節(jié)點(diǎn)i的cta0消息,如果該消息數(shù)據(jù)發(fā)送標(biāo)志位為1,則按照前文所描述的方法進(jìn)行時(shí)隙部署;如果標(biāo)志位為0,并且節(jié)點(diǎn)j也沒(méi)有數(shù)據(jù)發(fā)送,則不對(duì)節(jié)點(diǎn)j進(jìn)行時(shí)隙部署,繼續(xù)向下一跳節(jié)點(diǎn)發(fā)送cta0消息,在節(jié)點(diǎn)j的時(shí)隙到來(lái)時(shí)節(jié)點(diǎn)j繼續(xù)休眠;如果如果標(biāo)志位為0,但是節(jié)點(diǎn)j有數(shù)據(jù)發(fā)送,則將節(jié)點(diǎn)j的cta0消息中的數(shù)據(jù)標(biāo)志位置1,發(fā)送到下一跳節(jié)點(diǎn),并對(duì)節(jié)點(diǎn)j進(jìn)行相應(yīng)的時(shí)隙部署,后面的節(jié)點(diǎn)以此類(lèi)推。
(4)如果sink節(jié)點(diǎn)收到來(lái)自鏈i上的cta0消息,則說(shuō)明鏈i完成時(shí)隙部署。如果沒(méi)有收到,將會(huì)重新分配一個(gè)時(shí)隙給節(jié)點(diǎn)i,i的時(shí)隙分配將會(huì)在下一個(gè)tdma幀的ts0進(jìn)行。
(5)若超過(guò)一定時(shí)間沒(méi)有收到cta消息,則根據(jù)隨機(jī)退避算法,隨機(jī)退避一定時(shí)間后重發(fā)cta0消息,如果此時(shí)ts0已結(jié)束,則在下一個(gè)周期的ts0進(jìn)行。
(6)最終匯聚節(jié)點(diǎn)收到來(lái)自該鏈的cta0消息,則表示該條鏈上的時(shí)隙部署完成。本發(fā)明中每條鏈上的時(shí)隙部署過(guò)程如圖7所示。
4、動(dòng)態(tài)時(shí)隙大小
本發(fā)明中采用了tdma動(dòng)態(tài)時(shí)隙分配方法,每個(gè)時(shí)隙的大小根據(jù)需要發(fā)送的數(shù)據(jù)量動(dòng)態(tài)的變化,通過(guò)動(dòng)態(tài)時(shí)隙分配,可以減少時(shí)延和不必要的能耗的浪費(fèi)。假設(shè)每個(gè)節(jié)點(diǎn)產(chǎn)生的數(shù)據(jù)量為rij,節(jié)點(diǎn)發(fā)送一次數(shù)據(jù)的時(shí)間為tdata。
如圖6所示,節(jié)點(diǎn)n1,n在時(shí)隙ts1內(nèi)如果有數(shù)據(jù)發(fā)送,那么協(xié)議中t11的大小應(yīng)為t11>tdata+t0,其中t11表示第一條鏈第一個(gè)節(jié)點(diǎn)所在時(shí)隙的長(zhǎng)度,t0是一個(gè)預(yù)留時(shí)間,用于鏈路中斷發(fā)送請(qǐng)求或者接收其他數(shù)據(jù)幀等等,n1,n-1在收到上一節(jié)點(diǎn)的cta0消息時(shí)首先根據(jù)數(shù)據(jù)發(fā)送標(biāo)志位判斷上一節(jié)點(diǎn)是否有數(shù)據(jù)發(fā)送,如果上一節(jié)點(diǎn)有數(shù)據(jù)發(fā)送,則節(jié)點(diǎn)n1,n-1處的數(shù)據(jù)量為r11+r12,即時(shí)隙ts2的大小t12的大小應(yīng)為t12>2tdata+t0;如果上一跳節(jié)點(diǎn)沒(méi)有數(shù)據(jù)發(fā)送,則ts2的大小t12的大小應(yīng)為t12<2tdata+t0。假設(shè)每一跳節(jié)點(diǎn)均有數(shù)據(jù)發(fā)送,那么第一條鏈上第i個(gè)節(jié)點(diǎn)所在時(shí)隙tsi的大小t1i應(yīng)為t1i>i*tdata+t0。同理,第二條鏈在進(jìn)行時(shí)隙部署時(shí)根據(jù)節(jié)點(diǎn)是否有數(shù)據(jù)發(fā)送最終確定時(shí)隙i的長(zhǎng)度為t2i,第i條鏈在進(jìn)行時(shí)隙部署時(shí)根據(jù)節(jié)點(diǎn)是否有數(shù)據(jù)發(fā)送最終確定時(shí)隙i的長(zhǎng)度為tii,最終時(shí)隙i的大小為:
5、鏈路中斷后時(shí)隙移動(dòng)機(jī)制
本發(fā)明的通信網(wǎng)絡(luò)結(jié)構(gòu)基于鏈?zhǔn)剑虼嗽跀?shù)據(jù)傳輸?shù)倪^(guò)程中,如果某一個(gè)中間節(jié)點(diǎn)出現(xiàn)傳輸錯(cuò)誤,那么整條鏈路的傳輸將會(huì)中斷。為了提高傳輸?shù)目煽啃?,本發(fā)明提出ssm(scheduleshiftmechanism)機(jī)制,用來(lái)應(yīng)對(duì)鏈路傳輸中的數(shù)據(jù)傳輸錯(cuò)誤。
ssm機(jī)制主要思想是通過(guò)時(shí)隙的移動(dòng)重新建立新的路由,保證數(shù)據(jù)包的可靠傳輸,具體如圖8所示。鏈路i上的節(jié)點(diǎn)n13在向下一跳節(jié)點(diǎn)進(jìn)行數(shù)據(jù)傳輸時(shí),發(fā)現(xiàn)鏈路中斷,數(shù)據(jù)包沒(méi)有轉(zhuǎn)發(fā)成功,此時(shí)節(jié)點(diǎn)ni3會(huì)向兩條相鄰鏈上的節(jié)點(diǎn)nj3和nk1持續(xù)發(fā)送路由請(qǐng)求,在發(fā)送路由請(qǐng)求之前,節(jié)點(diǎn)ni3首先會(huì)處于偵聽(tīng)階段,并發(fā)送一個(gè)rts消息偵聽(tīng)鄰鏈的信道是否處于忙碌,如果信道均被占用,則說(shuō)明鄰鏈正在發(fā)送或者接收數(shù)據(jù),如果檢測(cè)到兩邊信道都處于空閑狀態(tài),則節(jié)點(diǎn)ni3會(huì)立即向nj3和nk1發(fā)送新的路由請(qǐng)求request,如果nj3和nk1同收到該請(qǐng)求,首先會(huì)判斷自己的剩余能量,如果剩余能量低于一個(gè)特定的值將忽略此次請(qǐng)求,如果兩條相鄰的鏈路都滿(mǎn)足條件,并向原節(jié)點(diǎn)發(fā)送一個(gè)確認(rèn)幀,那么節(jié)點(diǎn)ni3根據(jù)收到的確認(rèn)幀的先后來(lái)確定最后的路由。如圖8中,節(jié)點(diǎn)ni3先收到了鄰鏈j的確認(rèn)幀,最終加入到鄰鏈j中進(jìn)行數(shù)據(jù)傳輸,sink節(jié)點(diǎn)對(duì)鏈路j進(jìn)行時(shí)隙重分配過(guò)程。sink節(jié)點(diǎn)廣播1bit的控制信息,隨后再?gòu)V播時(shí)隙分配通知,節(jié)點(diǎn)nj3之前的節(jié)點(diǎn)向前移動(dòng)一個(gè)時(shí)隙,從而預(yù)留出一個(gè)空余時(shí)隙,鏈上各節(jié)點(diǎn)收到通知后,按照新的時(shí)隙,將來(lái)自鏈j的數(shù)據(jù)包和來(lái)自節(jié)點(diǎn)ni3的數(shù)據(jù)包進(jìn)行融合,并進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。
最終,整個(gè)鏈路恢復(fù)正常。當(dāng)然,太多的時(shí)隙移動(dòng)會(huì)造成額外的能量消耗,因此,本發(fā)明還限制了移動(dòng)的時(shí)隙單元的數(shù)量。如果移動(dòng)的次數(shù)超過(guò)這個(gè)上限,那么該過(guò)程則被取消。
6、臨時(shí)休眠機(jī)制
本發(fā)明中提出的臨時(shí)休眠機(jī)制是為了進(jìn)一步減少不必要的能耗的浪費(fèi)。
在數(shù)據(jù)傳輸過(guò)程中,當(dāng)某個(gè)時(shí)刻節(jié)點(diǎn)醒來(lái),上一節(jié)點(diǎn)沒(méi)有數(shù)據(jù)要發(fā)送,會(huì)存在能量浪費(fèi),這種情況通常發(fā)生在某條鏈路中斷后,節(jié)點(diǎn)已經(jīng)申請(qǐng)了新的路徑,但是該條鏈上后面的節(jié)點(diǎn)在屬于他們的時(shí)隙依舊醒來(lái)接收數(shù)據(jù),本文對(duì)此進(jìn)行了考慮:
(1)每個(gè)節(jié)點(diǎn)有一個(gè)計(jì)數(shù)器,初始值為一個(gè)大于0的整數(shù);
(2)若節(jié)點(diǎn)在接收時(shí)隙內(nèi)沒(méi)有收到來(lái)自上一跳節(jié)點(diǎn)的數(shù)據(jù)包,相應(yīng)的計(jì)數(shù)器值減1;否則,計(jì)數(shù)器保持初始值不變;
(3)若節(jié)點(diǎn)的計(jì)數(shù)器為0,則進(jìn)入ps(powersaving,省電)模式,即在下一個(gè)接收時(shí)隙到來(lái)的時(shí)候,節(jié)點(diǎn)只在接受時(shí)隙的開(kāi)始階段偵聽(tīng)一個(gè)很短的時(shí)間t,t的時(shí)長(zhǎng)要大于接收一個(gè)wakeup報(bào)文的時(shí)間,若沒(méi)有數(shù)據(jù)接收,則立即進(jìn)入睡眠模式,節(jié)省能耗;
(4)若某時(shí)刻鏈路回復(fù)正常,節(jié)點(diǎn)首先下一節(jié)點(diǎn)發(fā)送一個(gè)wakeup消息,防止下一節(jié)點(diǎn)處于ps模式,無(wú)法正常接收數(shù)據(jù),waekup消息很小,僅包含下一結(jié)點(diǎn)id,鏈編號(hào)。節(jié)點(diǎn)在時(shí)間t內(nèi)接收到了這個(gè)wakeup消息,計(jì)數(shù)器恢復(fù)初始值,并在自己的接收時(shí)槽內(nèi)保持活躍狀態(tài),開(kāi)始接收數(shù)據(jù)。
本發(fā)明在整個(gè)協(xié)議中采用了占空比機(jī)制,即節(jié)點(diǎn)周期性的偵聽(tīng)和睡眠。節(jié)點(diǎn)偵聽(tīng)的時(shí)長(zhǎng)對(duì)整個(gè)網(wǎng)絡(luò)性能影響很大,如果偵聽(tīng)時(shí)長(zhǎng)過(guò)長(zhǎng),整個(gè)網(wǎng)絡(luò)時(shí)延減少,但會(huì)導(dǎo)致能耗增大;反之,偵聽(tīng)時(shí)間過(guò)短,可能會(huì)導(dǎo)致數(shù)據(jù)傳輸時(shí)延較大,網(wǎng)絡(luò)擁塞變大。因此本發(fā)明對(duì)占空比的大小δ進(jìn)行分析。
由前文分析可知,偵聽(tīng)階段主要進(jìn)行時(shí)隙分配,即t1的長(zhǎng)度必須能保證時(shí)隙分配過(guò)程能夠完成,然后節(jié)點(diǎn)才能進(jìn)入sleep狀態(tài)。時(shí)隙分配過(guò)程中的數(shù)據(jù)傳輸主要包括rta0消息,cta0消息,cta消息,假設(shè)傳輸這三種消息的平均時(shí)間分別為
其中,l為整個(gè)網(wǎng)絡(luò)中的鏈的條數(shù),ts-l表示一個(gè)完整的幀聽(tīng)周期,tl表示傳感器節(jié)點(diǎn)醒來(lái)的時(shí)長(zhǎng),n為一條鏈上節(jié)點(diǎn)的個(gè)數(shù),th為緩沖時(shí)長(zhǎng)。因此在設(shè)定δ時(shí),必須保證δ*ts-l≥tl,由于ts=tack+tdata×(n+l),而cta0消息長(zhǎng)度約為數(shù)據(jù)包長(zhǎng)度的1/6到1/5左右,因此δ的值一般在0.1到0.3之間。
8、擁塞控制
在傳統(tǒng)的跨層協(xié)議中,一般由傳輸層進(jìn)行擁塞控制。但是,由于層與層之間的接口問(wèn)題,傳輸層無(wú)法充分獲取其他層的信息,比如時(shí)隙,隊(duì)列等等,從而導(dǎo)致無(wú)法進(jìn)行很好的擁塞控制。而在本發(fā)明中,使用了無(wú)層協(xié)議的思想,在進(jìn)行擁塞控制時(shí)可以共享其他模塊的信息,因此能更好的進(jìn)行擁塞控制。
本發(fā)明從兩個(gè)角度對(duì)擁塞控制進(jìn)行考慮:
第一,如果當(dāng)前的負(fù)載較高,路由任務(wù)通過(guò)阻止傳感器節(jié)點(diǎn)參與通信來(lái)控制擁塞;第二,通過(guò)限定源節(jié)點(diǎn)上生成數(shù)據(jù)包的傳輸速率。
對(duì)于任何一個(gè)節(jié)點(diǎn)i,其輸入輸出包的速率可以用如下公式表示:
λi,in=λi,src+λi,relay(1.6)
λi,out=(1+pi)λi,in(1.7)
其中pi代表節(jié)點(diǎn)i傳輸數(shù)據(jù)包的錯(cuò)誤率,λi,src數(shù)據(jù)包的源速率,λi,relay數(shù)據(jù)包的延時(shí)速率,1+pi代表著數(shù)據(jù)包傳輸?shù)钠骄螖?shù)。通過(guò)(1.6)和(1.7)可以計(jì)算出節(jié)點(diǎn)i發(fā)送和接收持續(xù)的時(shí)間(其中t代表一個(gè)比較長(zhǎng)的時(shí)間間隔,tpacket是節(jié)點(diǎn)i傳輸數(shù)據(jù)包到下一個(gè)節(jié)點(diǎn)的平均持續(xù)時(shí)間):
ttx=t*λi,out*tpacket(1.8)
trx=t*λi,relay*tpacket(1.9)
為了在節(jié)點(diǎn)i處阻止擁塞,所有的數(shù)據(jù)包都需要在時(shí)間間隔t內(nèi)完成傳輸,因此,必須滿(mǎn)足下面的關(guān)系:
t≥ttx+trx(1.10)
結(jié)合公式(1.6)~(1.10),我們最終有如下關(guān)系:
節(jié)點(diǎn)滿(mǎn)足公式(1.11)才能進(jìn)行數(shù)據(jù)包的轉(zhuǎn)發(fā)。擁塞控制的另一方面即控制源節(jié)點(diǎn)的速率。在本發(fā)明中,生成數(shù)據(jù)包的傳輸速率按照加性增加,乘性較少的規(guī)律來(lái)控制。當(dāng)檢測(cè)到擁塞時(shí),生成數(shù)據(jù)包的速率按公式
9、數(shù)據(jù)融合
本發(fā)明的數(shù)據(jù)傳輸采用多跳轉(zhuǎn)發(fā)的機(jī)制,數(shù)據(jù)在轉(zhuǎn)發(fā)到下一節(jié)點(diǎn)的過(guò)程中,采用了數(shù)據(jù)融合機(jī)制。通過(guò)數(shù)據(jù)融合,能夠有效的減少數(shù)據(jù)包的長(zhǎng)度,并能剔除冗余數(shù)據(jù)。合理的數(shù)據(jù)融合機(jī)制能夠節(jié)省能耗,降低時(shí)延。
如圖9所示本發(fā)明的數(shù)據(jù)融合機(jī)制圖,圖中為一條鏈,鏈上有7個(gè)傳感器節(jié)點(diǎn),節(jié)點(diǎn)在向下一跳轉(zhuǎn)發(fā)的過(guò)程中,會(huì)對(duì)數(shù)據(jù)包進(jìn)行融合,最終在節(jié)點(diǎn)1處打包成一個(gè)數(shù)據(jù)包一起上傳到匯聚節(jié)點(diǎn)。
數(shù)據(jù)融合前后數(shù)據(jù)幀的變化如圖10所示,其中控制信息中包含鏈編號(hào),幀類(lèi)型,前導(dǎo)碼等信息。
為了進(jìn)一步減少數(shù)據(jù)包的大小,在進(jìn)行數(shù)據(jù)融合時(shí),只有當(dāng)相鄰兩次傳感器采集到的數(shù)據(jù)的差值大于某個(gè)特定的容忍限度時(shí)(該值根據(jù)不同的應(yīng)用場(chǎng)景作具體的規(guī)定),該數(shù)據(jù)才轉(zhuǎn)發(fā)到下一節(jié)點(diǎn),即滿(mǎn)足公式(1.13)的數(shù)據(jù)才能轉(zhuǎn)發(fā),否則數(shù)據(jù)將被丟棄。
|c1-c2|>cth(1.13)
另外,在數(shù)據(jù)融合中,數(shù)據(jù)幀過(guò)長(zhǎng)會(huì)導(dǎo)致傳輸時(shí)間大大增加,因此,網(wǎng)絡(luò)中節(jié)點(diǎn)初始化過(guò)程中,需給定數(shù)據(jù)融合最大值,以確保在部署的時(shí)隙內(nèi)數(shù)據(jù)可以成功發(fā)送和接收。當(dāng)超過(guò)這個(gè)最大融合的值時(shí),傳感器節(jié)點(diǎn)將不再進(jìn)行數(shù)據(jù)融合。
如圖11所示本發(fā)明的傳感器節(jié)點(diǎn)的工作過(guò)程具體如下:
(1)首先對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行初始化,包括傳感器節(jié)點(diǎn)的初始功率信息表,流量速率,一個(gè)周期性睡眠周期的時(shí)間等等;
(2)匯聚節(jié)點(diǎn)對(duì)全網(wǎng)進(jìn)行時(shí)間同步,保證每條鏈上的傳感器節(jié)點(diǎn)時(shí)間是一致的,相互之間能夠進(jìn)行數(shù)據(jù)傳輸;
(3)匯聚節(jié)點(diǎn)對(duì)全網(wǎng)進(jìn)行時(shí)隙分配,考慮到無(wú)線(xiàn)傳感器網(wǎng)絡(luò)相對(duì)比較穩(wěn)定且在最后一跳處數(shù)據(jù)流量比較大,為了避免最后一跳數(shù)據(jù)傳輸在匯聚節(jié)點(diǎn)處發(fā)生碰撞,出現(xiàn)丟包,因此在時(shí)隙分配時(shí)保證每條鏈第一跳的時(shí)隙不同;
(4)鏈穩(wěn)定運(yùn)行階段:在tdma時(shí)隙分配完成之后,sink節(jié)點(diǎn)廣播tdma時(shí)隙表之后,開(kāi)始處于接收數(shù)據(jù)的狀態(tài),鏈節(jié)點(diǎn)在接收到本鏈上的時(shí)隙分配表之后,根據(jù)時(shí)隙分配的要求,關(guān)閉無(wú)線(xiàn)射頻收發(fā)模塊,進(jìn)入sleep狀態(tài),直到所分配的發(fā)送時(shí)隙的到來(lái),則醒來(lái)進(jìn)行數(shù)據(jù)傳輸。在傳感器節(jié)點(diǎn)的每個(gè)數(shù)據(jù)傳輸周期開(kāi)始,節(jié)點(diǎn)會(huì)先偵聽(tīng)一段時(shí)間,用來(lái)接收一些控制,請(qǐng)求消息等等。偵聽(tīng)結(jié)束之后,則進(jìn)入睡眠階段,等待自己的時(shí)隙。
(5)數(shù)據(jù)傳輸階段:節(jié)點(diǎn)在睡眠周期內(nèi),根據(jù)部署好的時(shí)隙,開(kāi)始以初始化功率值逐跳上傳數(shù)據(jù):
a.如果當(dāng)前時(shí)隙屬于本節(jié)點(diǎn),并且節(jié)點(diǎn)在當(dāng)前時(shí)隙內(nèi)有數(shù)據(jù)發(fā)送,那么節(jié)點(diǎn)在發(fā)送子時(shí)隙發(fā)送數(shù)據(jù)幀,在確認(rèn)子時(shí)隙接收來(lái)自下一跳節(jié)點(diǎn)的數(shù)據(jù)幀,相當(dāng)于ack報(bào)文;
b.如果當(dāng)前時(shí)隙屬于本節(jié)點(diǎn),但是節(jié)點(diǎn)在當(dāng)前時(shí)隙內(nèi)沒(méi)有需要發(fā)送的數(shù)據(jù),則當(dāng)前節(jié)點(diǎn)進(jìn)入休眠狀態(tài);
c.如果當(dāng)前時(shí)隙屬于上一跳節(jié)點(diǎn),節(jié)點(diǎn)在接收子時(shí)隙內(nèi)接收數(shù)據(jù);
如圖12所示本發(fā)明的匯聚節(jié)點(diǎn)的主要功能具體如下:
(1)時(shí)間同步:匯聚節(jié)點(diǎn)主要用于廣播同步消息,保證鏈上所有的節(jié)點(diǎn)都能收到同步消息,并指定相應(yīng)的應(yīng)答節(jié)點(diǎn);
(2)時(shí)隙分配:sink節(jié)點(diǎn)在時(shí)隙ts0廣播一個(gè)rta0(requesttoassign)消息,來(lái)進(jìn)行時(shí)隙分配;
(3)時(shí)隙重分配:鏈路意外中斷,重新申請(qǐng)新的路徑時(shí)由匯聚節(jié)點(diǎn)進(jìn)行時(shí)隙重分配;
(4)老節(jié)點(diǎn)退出和新節(jié)點(diǎn)入網(wǎng):當(dāng)匯聚節(jié)點(diǎn)在一段時(shí)間之內(nèi)一直沒(méi)有收到某條鏈中某個(gè)節(jié)點(diǎn)的數(shù)據(jù)包,則斷定此位置節(jié)點(diǎn)已死亡,此時(shí)匯聚節(jié)點(diǎn)啟動(dòng)節(jié)點(diǎn)退出與加入的算法;
(5)功率控制表:在新節(jié)點(diǎn)入網(wǎng)和鏈路重申請(qǐng)時(shí),需更新節(jié)點(diǎn)功率控制表;
(6)數(shù)據(jù)接收:這是匯聚節(jié)點(diǎn)最核心的一個(gè)功能,所有的傳感器節(jié)點(diǎn)采集到的數(shù)據(jù)最終都上傳到匯聚節(jié)點(diǎn),匯聚節(jié)點(diǎn)進(jìn)行分析,存儲(chǔ),最終和上層控制中心進(jìn)行數(shù)據(jù)通信;
(7)其他功能:當(dāng)網(wǎng)絡(luò)中出現(xiàn)擁塞警告或者當(dāng)節(jié)點(diǎn)能量出現(xiàn)低電警告等情況時(shí),匯聚節(jié)點(diǎn)需要作出相應(yīng)的處理。
本發(fā)明的性能理論分析:
本發(fā)明提供了一種農(nóng)田監(jiān)測(cè)多鏈型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)無(wú)分層通信方法,可以視為一種新的網(wǎng)絡(luò)通信協(xié)議,一下用rbp表示
(1)數(shù)據(jù)包時(shí)延:假設(shè)在一條鏈中,每個(gè)傳感器節(jié)點(diǎn)都被分配一個(gè)單獨(dú)的時(shí)隙,單跳的傳輸可以看作是一個(gè)伯努利模型,一跳(s_hop)成功傳輸?shù)钠骄鶗r(shí)隙數(shù)可表示如下:
其中,ptxfail表示在一次數(shù)據(jù)包傳輸失敗的概率,n為節(jié)點(diǎn)的總跳數(shù),p0表示時(shí)隙內(nèi)沒(méi)有數(shù)據(jù)需要發(fā)送的概率,ptxfail和鏈路的誤比特率pe相關(guān),由于考慮的是一個(gè)時(shí)隙內(nèi),因此還決定于當(dāng)前節(jié)點(diǎn)的時(shí)隙內(nèi)數(shù)據(jù)傳輸?shù)拇螖?shù)ntxop,因此我們可以得到:
根據(jù)m/m/1/b排隊(duì)模型,p0可以表示如下:
其中ρ表示傳輸密度,ρ可以用一次上傳過(guò)程的數(shù)據(jù)總量r和傳輸率μ表示:
其中tdata表示數(shù)據(jù)上傳一次到sink節(jié)點(diǎn)的時(shí)間??紤]到多跳傳輸,如果一個(gè)時(shí)隙內(nèi)傳輸失敗,即s_hop>1,s_hop-1即為額外的平均時(shí)隙數(shù),假設(shè)相鄰兩跳間的距離為d,則到達(dá)匯聚節(jié)點(diǎn)的平均幀數(shù)如下:
根據(jù)每幀內(nèi)的時(shí)隙總數(shù)(nslots)以及一次數(shù)據(jù)交換的持續(xù)時(shí)間tdata,一個(gè)數(shù)據(jù)包的平均時(shí)延如下:
其中,slot_distance表示的是當(dāng)前節(jié)點(diǎn)i所在的時(shí)隙與幀的最后一個(gè)時(shí)隙間的時(shí)隙數(shù)。在smac中,由于沒(méi)有事先的時(shí)隙分配,而且占空比是固定的,數(shù)據(jù)通信如果在listen階段沒(méi)有完成,協(xié)議將數(shù)據(jù)通信延遲到下一次偵聽(tīng)的開(kāi)始,這樣大大增加了時(shí)延。在xlp中數(shù)據(jù)傳輸在偵聽(tīng)階段,且沒(méi)有時(shí)間同步,單次數(shù)據(jù)上傳時(shí)間由rts-cts-data-ack順序完成,其中還需要通過(guò)競(jìng)爭(zhēng)窗機(jī)制獲取通信資格,大大的增加了單次數(shù)據(jù)上傳時(shí)間,因此在xlp中,ttxop遠(yuǎn)遠(yuǎn)大于rba中的ttxop,時(shí)延大于rbp,通過(guò)上面的分析,最終可以獲得三種協(xié)議的時(shí)延如圖13所示。由圖13可知,rbp的時(shí)延低于其他兩種協(xié)議。
(2)系統(tǒng)能耗:假設(shè)每條鏈上的節(jié)點(diǎn)數(shù)為n,節(jié)點(diǎn)i經(jīng)過(guò)多跳傳輸數(shù)據(jù)到sink節(jié)點(diǎn),一次數(shù)據(jù)交換的持續(xù)時(shí)間ttxop,假設(shè)數(shù)據(jù)發(fā)送和接收的時(shí)間相等,即數(shù)據(jù)發(fā)送和接收的時(shí)間為ttxop/2,一個(gè)時(shí)隙的時(shí)間為tslot。另外,設(shè)偵聽(tīng)階段沒(méi)有數(shù)據(jù)傳輸時(shí)為eactive,睡眠階段能耗為esleep,同步過(guò)程能耗在此處忽略不計(jì),數(shù)據(jù)接收的平均能耗為erx=13.8mw,數(shù)據(jù)發(fā)送的平均能耗為etx=24.95mw。根據(jù)前文分析,節(jié)點(diǎn)i通過(guò)多跳將數(shù)據(jù)上傳到匯聚節(jié)點(diǎn)所需要消耗的能量如下:
erep,i=eslot,i+elisten,i+edata,i(1.20)
eslot,i和elisten,i具體的可以表示成如下:
elisten,i=iδts-leactive(1.22)
其中,δ表示占空比,
對(duì)于數(shù)據(jù)傳輸過(guò)程,可分為兩部分,正常數(shù)據(jù)傳輸消耗的能量以及鏈路中斷后數(shù)據(jù)傳輸消耗的能量,假設(shè)節(jié)點(diǎn)出現(xiàn)意外死亡的概率為p,這里的p是一個(gè)常數(shù),與具體的環(huán)境相關(guān),那么,
當(dāng)鏈路正常的情況下,節(jié)點(diǎn)i傳輸數(shù)據(jù)所需要的能耗為:
當(dāng)鏈路中斷的情況下,傳輸數(shù)據(jù)所需要的能耗要比正常情況下多一個(gè)路由申請(qǐng)的過(guò)程和時(shí)隙充分配的過(guò)程:
而對(duì)于xlp協(xié)議,偵聽(tīng)階段和睡眠階段總能耗可表示如下:
而對(duì)于smac協(xié)議,具體的能耗分析可參考論文。設(shè)網(wǎng)絡(luò)中所有節(jié)點(diǎn)的數(shù)據(jù)采集率為v,由于網(wǎng)內(nèi)節(jié)點(diǎn)部署采用的是優(yōu)化部署方案,雖然上式在計(jì)算過(guò)程中將數(shù)據(jù)發(fā)送和接收簡(jiǎn)化成平均能耗,但是在實(shí)際網(wǎng)絡(luò)傳輸中節(jié)點(diǎn)功耗可調(diào),即在正常的發(fā)射功率下,可路由的節(jié)點(diǎn)有且僅有一個(gè)。因此,上傳所有數(shù)據(jù)需要的總能耗為:
同時(shí),根據(jù)文獻(xiàn)數(shù)據(jù)正確發(fā)送或接受的概率為:
p=(1-pe)8ρf(1.28)
其中,f是包的長(zhǎng)度(比特),ρ是編碼率,pe是信噪比。
根據(jù)上面的分析,最終可以得到本發(fā)明所述通信協(xié)議的能耗與占空比的關(guān)系如圖14所示。從圖中可以看出,當(dāng)占空比超過(guò)0.5時(shí),整個(gè)網(wǎng)絡(luò)的能耗增大的很快,當(dāng)占空比約等于0.2時(shí),整個(gè)網(wǎng)絡(luò)的能耗最低。
(3)單鏈故障:當(dāng)一條鏈上某個(gè)節(jié)點(diǎn)意外故障時(shí),整個(gè)網(wǎng)絡(luò)的生命周期也會(huì)發(fā)生變化。如果di+di-1≤rmax,rmax為最大通信半徑,故障處理如圖15(a)所示,,節(jié)點(diǎn)i將轉(zhuǎn)發(fā)數(shù)據(jù)到節(jié)點(diǎn)i-2。此種情況下,由于節(jié)點(diǎn)i的傳輸距離發(fā)生變化,其他節(jié)點(diǎn)的傳輸沒(méi)有受到影響,因此節(jié)點(diǎn)i的能耗為:
e′net(i)=etx+εamp·(di+di-1)β)·k·(n-i+1)+erx·k·(n-i)(1.29)
整個(gè)網(wǎng)絡(luò)的生命周期則為:
如果di+di-1>rmax,此時(shí)節(jié)點(diǎn)i不能直接與節(jié)點(diǎn)i-2進(jìn)行數(shù)據(jù)通信,因此需要向鄰鏈發(fā)起新的路由請(qǐng)求,如圖15(b)所示。
節(jié)點(diǎn)i向節(jié)點(diǎn)j發(fā)起新的路由請(qǐng)求,鏈2上從節(jié)點(diǎn)j開(kāi)始所承擔(dān)的數(shù)據(jù)流量將大大增大,消耗的能量更多,網(wǎng)絡(luò)的生命周期也隨之發(fā)生變化。鏈2上每個(gè)節(jié)點(diǎn)將需要(2n-i-j+2)此數(shù)據(jù)發(fā)送和(2n-i+1-j)次數(shù)據(jù)接收,因此對(duì)于鏈2:
e′net(j)=(etx+(ε·dj)β)·k·(2n-i+2-j)+erx·k·(2n-i+1-j)(1.31)
此時(shí)網(wǎng)絡(luò)的生命周期為:
根據(jù)上面的分析最終得到無(wú)節(jié)點(diǎn)故障時(shí)的網(wǎng)絡(luò)生命周期和有節(jié)點(diǎn)變化時(shí)的網(wǎng)絡(luò)生命周期之間的關(guān)系,如圖16所示。
根據(jù)圖16可知,當(dāng)節(jié)點(diǎn)出現(xiàn)故障時(shí),整體網(wǎng)絡(luò)生命周期下降;節(jié)點(diǎn)故障位置出現(xiàn)位置不同,網(wǎng)絡(luò)生命周期不同,節(jié)點(diǎn)故障出現(xiàn)在靠近匯聚節(jié)點(diǎn)的位置,由于兩跳之間距離較小,直接增大功率與下下跳節(jié)點(diǎn)通信,此時(shí)對(duì)網(wǎng)絡(luò)生命周期影響較小;當(dāng)節(jié)點(diǎn)故障位置出現(xiàn)在距離匯聚節(jié)點(diǎn)較遠(yuǎn)的位置,需要向鄰鏈申請(qǐng)新的路由,對(duì)網(wǎng)絡(luò)生命周期影響較大。
本發(fā)明的性能仿真分析:
采用omnet++對(duì)本發(fā)明的性能進(jìn)行仿真。圖17和圖18分別是本發(fā)明的網(wǎng)絡(luò)仿真網(wǎng)絡(luò)拓?fù)鋱D和協(xié)議仿真模型圖。
(1)數(shù)據(jù)時(shí)延仿真:數(shù)據(jù)時(shí)延是無(wú)線(xiàn)傳感器網(wǎng)絡(luò)性能的一個(gè)重要指標(biāo)。在鏈?zhǔn)骄W(wǎng)絡(luò)中,數(shù)據(jù)時(shí)延是隨著節(jié)點(diǎn)個(gè)數(shù)的增加而不斷累加的,因此在一條鏈上節(jié)點(diǎn)個(gè)數(shù)越多,平均時(shí)延越大。對(duì)于相鄰的兩條鏈之間,由于大部分時(shí)隙是復(fù)用的,因此時(shí)延不會(huì)隨著節(jié)點(diǎn)個(gè)數(shù)的增大而增大,在某個(gè)階段會(huì)保持不變,假設(shè)占空比此時(shí)取固定值,即δ=0.2,那么平均時(shí)延與某兩條鏈上節(jié)點(diǎn)個(gè)數(shù)的關(guān)系如圖19所示。
當(dāng)節(jié)點(diǎn)個(gè)數(shù)一定時(shí),即監(jiān)測(cè)區(qū)域半徑固定,δ的取值對(duì)時(shí)延也產(chǎn)生很大的影響,δ越小,節(jié)點(diǎn)睡眠時(shí)間越長(zhǎng),相應(yīng)的時(shí)延越大,某一條鏈上平均數(shù)據(jù)時(shí)延和占空比的關(guān)系如圖20所示。
由圖20可知,當(dāng)占空比很小時(shí),xlp時(shí)延過(guò)大,盡管在δ>0.65時(shí),時(shí)延性能略?xún)?yōu)于rbp,但是由于能耗的因素,一般δ<0.5。
rbp協(xié)議的時(shí)延除了和節(jié)點(diǎn)個(gè)數(shù)及占空比有關(guān),還和鏈的條數(shù)有關(guān),鏈的條數(shù)與數(shù)據(jù)時(shí)延的關(guān)系如圖21所示。
綜上所述,可知rbp協(xié)議由于睡眠周期仍可數(shù)據(jù)傳輸,并且采用時(shí)隙復(fù)用的方式,因此降低了平均數(shù)據(jù)時(shí)延,提高了網(wǎng)絡(luò)的實(shí)時(shí)性。
(2)網(wǎng)絡(luò)能耗仿真:能耗是無(wú)線(xiàn)傳感器網(wǎng)絡(luò)另一個(gè)重要的指標(biāo),能耗越低,網(wǎng)絡(luò)性能越優(yōu)。本文在仿真中假設(shè)每個(gè)節(jié)點(diǎn)的初始能量相同,監(jiān)測(cè)區(qū)域半徑為500m,在經(jīng)過(guò)一段時(shí)間后,其中一條鏈上每個(gè)節(jié)點(diǎn)的剩余能量如圖22所示。
由圖22所示,rbp協(xié)議仿真后每個(gè)節(jié)點(diǎn)的剩余能量基本相當(dāng),且仿真值與理論值接近。而xlp協(xié)議中節(jié)點(diǎn)剩余能量與節(jié)點(diǎn)位置有關(guān),越靠近匯聚節(jié)點(diǎn)的傳感器節(jié)點(diǎn)剩余能量越少。而且在xlp協(xié)議中仿真值明顯低于理論值,這表明rbp協(xié)議在實(shí)際環(huán)境中的適應(yīng)性比xlp協(xié)議要好。
上面的仿真過(guò)程中占空比,節(jié)點(diǎn)個(gè)數(shù)以及鏈的條數(shù)是固定的,如果改變占空比,節(jié)點(diǎn)個(gè)數(shù)以及鏈的條數(shù),總能耗也隨之改變,節(jié)點(diǎn)個(gè)數(shù)越多,鏈數(shù)越多,能耗越高,占空比越低,能耗越低。下面本發(fā)明將通過(guò)改變占空比,節(jié)點(diǎn)個(gè)數(shù)以及鏈的條數(shù)對(duì)能耗進(jìn)一步分析。首先,分析占空比與網(wǎng)絡(luò)能耗的關(guān)系,仿真過(guò)程中通過(guò)設(shè)定不同的占空比計(jì)算網(wǎng)絡(luò)的總能耗值,具體如圖23所示。由圖23可知,占空比越大,網(wǎng)絡(luò)總能耗越大,因此在實(shí)際的應(yīng)用場(chǎng)景中,在保證實(shí)時(shí)性的同時(shí)應(yīng)盡量減小占空比。
其次,進(jìn)一步分析不同的網(wǎng)絡(luò)傳感器節(jié)點(diǎn)個(gè)數(shù)與網(wǎng)絡(luò)總能耗的關(guān)系,此處取δ=0.2。仿真過(guò)程中取傳感器節(jié)點(diǎn)個(gè)數(shù)為1~7個(gè),傳感器節(jié)點(diǎn)個(gè)數(shù)增加,數(shù)據(jù)轉(zhuǎn)發(fā)的跳數(shù)增加,能耗也隨之增加。兩種協(xié)議的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)相同,網(wǎng)絡(luò)能耗圖如圖24所示。
最后,分析鏈的條數(shù)與網(wǎng)絡(luò)總能耗的關(guān)系,δ仍取0.2,監(jiān)測(cè)區(qū)域半徑為500m,仿真結(jié)果如圖25所示。
綜上所述,rbp無(wú)層協(xié)議與xlp相比具有更小的能耗,提高了網(wǎng)絡(luò)的整體性能,延長(zhǎng)了網(wǎng)絡(luò)生命周期。
(3)網(wǎng)絡(luò)故障仿真:假設(shè)監(jiān)測(cè)區(qū)域半徑為500m,每條鏈上有7個(gè)節(jié)點(diǎn),有相鄰的兩條鏈節(jié)點(diǎn)id編號(hào)分別為1-14,某一條鏈路上節(jié)點(diǎn)id為5的節(jié)點(diǎn)出現(xiàn)故障死亡,并通過(guò)向鄰鏈上節(jié)點(diǎn)id為12的節(jié)點(diǎn)申請(qǐng)新的路由進(jìn)行數(shù)據(jù)傳輸,通過(guò)仿真得到這兩條鏈路上的節(jié)點(diǎn)剩余能耗如圖26所示。仿真結(jié)果表明節(jié)點(diǎn)id為5和12的節(jié)點(diǎn)由于需要承擔(dān)更多的負(fù)擔(dān),導(dǎo)致剩余能量明顯降低。
當(dāng)網(wǎng)絡(luò)中有多條鏈路出現(xiàn)節(jié)點(diǎn)故障時(shí),rbp協(xié)議和xlp協(xié)議的生命周期變化如圖27所示。由圖27所示,當(dāng)鏈路出現(xiàn)故障時(shí),兩種協(xié)議的網(wǎng)絡(luò)生命周期均有所下降,rbp協(xié)議由于具有故障處理機(jī)制,因此網(wǎng)絡(luò)生命周期下降緩慢,而xlp協(xié)議隨著鏈路故障的條數(shù)的增加生命周期迅速減少,最后變?yōu)?。由此可見(jiàn),rbp協(xié)議性能明顯由于xlp協(xié)議。
綜上所述,rbp協(xié)議在鏈路出現(xiàn)故障時(shí)其處理能力明顯優(yōu)于xlp協(xié)議,提高了網(wǎng)絡(luò)的可靠性。
實(shí)施例僅為說(shuō)明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護(hù)范圍,凡是按照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何改動(dòng),均落入本發(fā)明保護(hù)范圍之內(nèi)。