專(zhuān)利名稱(chēng)::一種用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及無(wú)線傳感網(wǎng)的路由選擇
技術(shù)領(lǐng)域:
,特別是涉及一種用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法。
背景技術(shù):
:傳感器技術(shù)、微機(jī)電系統(tǒng)、現(xiàn)代網(wǎng)絡(luò)和無(wú)線通信等技術(shù)的進(jìn)步,推動(dòng)了具有現(xiàn)代意義的無(wú)線傳感器網(wǎng)絡(luò)的產(chǎn)生和發(fā)展。無(wú)線傳感器網(wǎng)絡(luò)涉及眾多學(xué)科,成為目前IT領(lǐng)域中的研究熱點(diǎn)之一。它擴(kuò)展了人們的信息獲取能力,將客觀世界的物理信息同傳輸網(wǎng)絡(luò)連接在一起,在下一代互聯(lián)網(wǎng)中為人們提供最直接、最真實(shí)、最有效的信息。無(wú)線傳感網(wǎng)有著十分廣闊的應(yīng)用前景,能應(yīng)用于軍事國(guó)防、環(huán)境監(jiān)測(cè)、搶險(xiǎn)救災(zāi)、工農(nóng)業(yè)控制、生物醫(yī)療、危險(xiǎn)區(qū)域遠(yuǎn)程控制等諸多領(lǐng)域。路由協(xié)議負(fù)責(zé)將數(shù)據(jù)分組從源節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)轉(zhuǎn)發(fā)到目的節(jié)點(diǎn),它主要包括兩個(gè)方面的功能1)尋找源節(jié)點(diǎn)和目的節(jié)點(diǎn)間的優(yōu)化路徑;2)將數(shù)據(jù)分組沿著優(yōu)化路徑正確轉(zhuǎn)發(fā)。傳統(tǒng)無(wú)線網(wǎng)絡(luò)路由協(xié)議的首要目標(biāo)是提供高服務(wù)質(zhì)量和公平有效地利用網(wǎng)絡(luò)帶寬,尋找最優(yōu)路徑,能耗問(wèn)題不是這類(lèi)網(wǎng)絡(luò)考慮的重點(diǎn)。而在無(wú)線傳感器網(wǎng)絡(luò)中,由于節(jié)點(diǎn)能量受限,因此路由協(xié)議的設(shè)計(jì)一般是首要考慮能耗的高效利用,但片面強(qiáng)調(diào)低功耗的設(shè)計(jì)目標(biāo)則會(huì)限制路由協(xié)議的其他性能,因此在保證一定能量有效性的前提下,可以針對(duì)某些對(duì)時(shí)延等Qos有嚴(yán)格求的應(yīng)用,設(shè)計(jì)能量高效且低時(shí)延的路由協(xié)議。無(wú)線傳感網(wǎng)中的突發(fā)事件監(jiān)測(cè)應(yīng)用,在這種應(yīng)用中,無(wú)線傳感器網(wǎng)絡(luò)需要實(shí)時(shí)檢測(cè)、跟蹤和采集網(wǎng)絡(luò)布設(shè)區(qū)域內(nèi)的各種環(huán)境或監(jiān)測(cè)對(duì)象的信息,并將采集或者監(jiān)測(cè)到的數(shù)據(jù)及時(shí)傳輸?shù)絪ink節(jié)點(diǎn)進(jìn)行處理,在正常情況下,節(jié)點(diǎn)采集轉(zhuǎn)發(fā)的都是普通數(shù)據(jù),這些數(shù)據(jù)屬于正常數(shù)據(jù),傳輸時(shí)適用于能量有效性?xún)?yōu)先原則,即使有一定的傳輸時(shí)延也不會(huì)影響到系統(tǒng)性能;而一旦出現(xiàn)異常情況,節(jié)點(diǎn)采集或者監(jiān)測(cè)到的就是異常數(shù)據(jù),這類(lèi)數(shù)據(jù)是我們需要緊急處理的數(shù)據(jù),需要盡快將它傳輸給sink節(jié)點(diǎn),以便告知用戶(hù)發(fā)生異常。這時(shí)候就不再適合以能耗為優(yōu)先原則來(lái)轉(zhuǎn)發(fā)數(shù)據(jù),而是應(yīng)該盡可能的減少數(shù)據(jù)在傳輸過(guò)程中的時(shí)延,選擇一條最快路徑進(jìn)行轉(zhuǎn)發(fā),但顯然如果所有的數(shù)據(jù)分組都沿最快路徑轉(zhuǎn)發(fā),長(zhǎng)此以往肯定會(huì)造成某一路徑上的某些節(jié)點(diǎn)因能量消耗過(guò)快而失效,網(wǎng)絡(luò)整體能耗會(huì)極度不平衡,從而導(dǎo)致某條傳輸鏈路不可用或者出現(xiàn)孤島節(jié)點(diǎn)的后果。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,使得時(shí)延降低、能耗更為平衡。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是提供一種用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,包括以下步驟(I)網(wǎng)絡(luò)初始化,每個(gè)節(jié)點(diǎn)建立自身的深度權(quán)值和鄰居表,其中,深度權(quán)值等于節(jié)點(diǎn)距離sink節(jié)點(diǎn)的最短跳數(shù)成正比;(2)將要傳輸?shù)姆纸M分為兩種類(lèi)型時(shí)延敏感分組和非時(shí)延敏感分組,并在幀頭用標(biāo)志位進(jìn)行區(qū)分;(3)當(dāng)節(jié)點(diǎn)有數(shù)據(jù)要傳輸時(shí),廣播添加了分組類(lèi)型的路由請(qǐng)求幀,等待接收鄰居節(jié)點(diǎn)的路由應(yīng)答幀,接收到路由應(yīng)答幀后,根據(jù)不同的分組類(lèi)型選擇不同的路由算法來(lái)選擇下一跳節(jié)點(diǎn);若是時(shí)延敏感分組,則優(yōu)先選擇時(shí)延權(quán)值最小的節(jié)點(diǎn)來(lái)進(jìn)行轉(zhuǎn)發(fā);若是非時(shí)延敏感分組,則優(yōu)先選擇平衡權(quán)值最小的節(jié)點(diǎn)來(lái)進(jìn)行轉(zhuǎn)發(fā)。所述步驟(I)還包括以下子步驟(11)sink節(jié)點(diǎn)設(shè)定自身深度cbpth為0,并周期性的廣播包含自身深度的hello消息;(12)其他節(jié)點(diǎn)設(shè)定自身深度D為無(wú)窮大,保持偵聽(tīng)信道,若接收到其他節(jié)點(diǎn)廣播的hello消息,將此節(jié)點(diǎn)添加到鄰居表中,并查看消息中此節(jié)點(diǎn)廣播的深度d,若d〈D+l,則設(shè)置D=d+1,廣播he11ο消息,若d>=D+1,不需要改變自身深度。所述步驟(11)中周期性廣播的周期根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的性質(zhì)來(lái)確定。所述步驟(3)中分組類(lèi)型為時(shí)延敏感分組時(shí),從應(yīng)答幀中選擇時(shí)延權(quán)值Wt最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),其中,Wt=a*Wd+b*Wq,a+b=l,a>b,a、b為加權(quán)系數(shù),其中Wd為深度權(quán)值,Wq為隊(duì)列權(quán)值;若時(shí)延權(quán)值Wt最小的節(jié)點(diǎn)有兩個(gè)以上時(shí),從中選擇深度權(quán)值Wd較小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),若深度權(quán)值Wd與隊(duì)列權(quán)值Wq都分別相等,則從中隨機(jī)選擇一個(gè)節(jié)點(diǎn)作為下一跳節(jié)點(diǎn)。所述步驟(3)中分組類(lèi)型為非時(shí)延敏感分組時(shí),從應(yīng)答幀中選擇平衡權(quán)值Wb最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),其中,Wb=c*We+d*Wd,c+d=l,c>d,其中,C、d為加權(quán)系數(shù),We為能量權(quán)值,Wd為深度權(quán)值;若平衡權(quán)值Wb最小的節(jié)點(diǎn)有兩個(gè)以上時(shí),從中選擇能量權(quán)值We較小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),若能量權(quán)值We與深度權(quán)值Wd都分別相等,則從中隨機(jī)選擇一個(gè)節(jié)點(diǎn)作為下一跳節(jié)點(diǎn)。所述節(jié)點(diǎn)自身保存兩個(gè)分組隊(duì)列緩沖區(qū)實(shí)時(shí)隊(duì)列和非實(shí)時(shí)隊(duì)列,實(shí)時(shí)隊(duì)列用來(lái)發(fā)送時(shí)延敏感分組,非實(shí)時(shí)隊(duì)列用來(lái)發(fā)送非時(shí)延敏感分組,并且優(yōu)先發(fā)送時(shí)延敏感分組隊(duì)列,對(duì)于每個(gè)隊(duì)列中同種類(lèi)型的分組轉(zhuǎn)發(fā)遵循先入先出的原則。節(jié)點(diǎn)的任一分組隊(duì)列滿員時(shí),對(duì)于所有鄰居節(jié)點(diǎn)發(fā)來(lái)的該分組類(lèi)型的路由請(qǐng)求幀都不予以回復(fù)。所述步驟(3)中接收鄰居節(jié)點(diǎn)的路由應(yīng)答幀時(shí),對(duì)深度大于自身的鄰居節(jié)點(diǎn)與非鄰居節(jié)點(diǎn)的路由應(yīng)答不做處理,直接丟棄。所述步驟(3)中節(jié)點(diǎn)在傳輸分組后需要進(jìn)行確認(rèn)幀確認(rèn),在未收到確認(rèn)幀時(shí)節(jié)點(diǎn)會(huì)重傳分組,其中,最大重傳次數(shù)為3。所述步驟(3)中如果節(jié)點(diǎn)向同深度的最優(yōu)權(quán)值的鄰居節(jié)點(diǎn)發(fā)送數(shù)據(jù)后,此鄰居節(jié)點(diǎn)經(jīng)過(guò)路由選擇后又將分組重新發(fā)送給自己,那么節(jié)點(diǎn)再次進(jìn)行路由選擇時(shí),不再發(fā)給此鄰居節(jié)點(diǎn),而直接轉(zhuǎn)發(fā)給次優(yōu)權(quán)值的節(jié)點(diǎn)。有益效果由于采用了上述的技術(shù)方案,本發(fā)明與現(xiàn)有技術(shù)相比,具有以下的優(yōu)點(diǎn)和積極效果本發(fā)明中將要傳輸?shù)臄?shù)據(jù)分為兩種類(lèi)型時(shí)延敏感分組與非時(shí)延敏感分組。前者需要在最短時(shí)間內(nèi)沿最快路徑傳輸?shù)絪ink節(jié)點(diǎn),其特點(diǎn)是具有突發(fā)性、不確定性,短時(shí)間內(nèi)數(shù)據(jù)量較大,傳輸此類(lèi)分組不會(huì)主要考慮節(jié)點(diǎn)的能耗問(wèn)題;后者在傳輸過(guò)程中應(yīng)該考慮局部網(wǎng)絡(luò)的能耗平衡,其特點(diǎn)是周期性上傳、可以容忍一定的延時(shí)。本方法針對(duì)網(wǎng)絡(luò)中的兩種不同的分組,分別按照不同的路由算法進(jìn)行路徑選擇,大大減少了時(shí)延敏感分組的傳輸時(shí)延,同時(shí)使得整個(gè)網(wǎng)絡(luò)的能耗維持一個(gè)相對(duì)平衡的狀態(tài),保證高效傳輸數(shù)據(jù)的同時(shí)避免了中繼節(jié)點(diǎn)因能耗過(guò)大而死亡,延長(zhǎng)了網(wǎng)絡(luò)的生存時(shí)間。利用本發(fā)明,節(jié)點(diǎn)只需知道一跳范圍內(nèi)的局部信息,采用分布式的算法即可求的最優(yōu)路徑,不需要維護(hù)全局的網(wǎng)絡(luò)拓?fù)湫畔?,?jié)約了節(jié)點(diǎn)的能量和內(nèi)存,這種分布式的路由算法降低了實(shí)現(xiàn)、部署和擴(kuò)展的難度。利用本發(fā)明,緩沖區(qū)總長(zhǎng)度不變,但分成了兩個(gè)隊(duì)列來(lái)分別保存不同類(lèi)型的分組,時(shí)延敏感隊(duì)列的優(yōu)先發(fā)送權(quán)保證了時(shí)延敏感分組總是優(yōu)先于非時(shí)延敏感分組發(fā)送,相比于只采用一個(gè)隊(duì)列保存兩種分組然后從中選擇時(shí)延敏感分組優(yōu)先發(fā)送的算法,本方法要更簡(jiǎn)單。利用本發(fā)明,根據(jù)鄰居節(jié)點(diǎn)反饋的狀態(tài)信息,節(jié)點(diǎn)能通過(guò)計(jì)算精確選擇一個(gè)時(shí)延最小的下一跳節(jié)點(diǎn)來(lái)進(jìn)行轉(zhuǎn)發(fā),算法本身是線性的,計(jì)算復(fù)雜度較低。利用本發(fā)明,通過(guò)對(duì)非時(shí)延敏感分組的轉(zhuǎn)發(fā),平衡了局部網(wǎng)絡(luò)的能耗,防止了局部網(wǎng)絡(luò)內(nèi)某些節(jié)點(diǎn)因能耗不均而失效。圖I是本發(fā)明網(wǎng)絡(luò)初始化階段的算法流程圖;圖2是本發(fā)明數(shù)據(jù)傳輸階段的算法流程圖;圖3是本發(fā)明網(wǎng)絡(luò)初始化的示意圖;圖4是本發(fā)明針對(duì)時(shí)延敏感分組的傳輸示意圖;圖5是本發(fā)明針對(duì)非時(shí)延敏感分組的傳輸示意圖。具體實(shí)施例方式下面結(jié)合具體實(shí)施例,進(jìn)一步闡述本發(fā)明。應(yīng)理解,這些實(shí)施例僅用于說(shuō)明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對(duì)本發(fā)明作各種改動(dòng)或修改,這些等價(jià)形式同樣落于本申請(qǐng)所附權(quán)利要求書(shū)所限定的范圍。本發(fā)明的實(shí)施方式涉及一種用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,適用于網(wǎng)絡(luò)拓?fù)錇榉謱咏Y(jié)構(gòu)的無(wú)線傳感網(wǎng)。針對(duì)網(wǎng)絡(luò)中的兩種不同的分組,分別按照不同的路由算法進(jìn)行路徑選擇,保證了時(shí)延敏感分組即時(shí)傳輸?shù)臅r(shí)延最小,同時(shí)使得局部網(wǎng)絡(luò)的能耗維持一個(gè)相對(duì)平衡的狀態(tài),保證高效傳輸數(shù)據(jù)的同時(shí)避免了中繼節(jié)點(diǎn)因能耗過(guò)大而死亡,延長(zhǎng)了網(wǎng)絡(luò)的生存時(shí)間。如圖I和圖2所示,網(wǎng)絡(luò)在初始化階段,先通過(guò)廣播hello消息來(lái)確定每個(gè)節(jié)點(diǎn)的深度,sink節(jié)點(diǎn)設(shè)定自身深度為O,其他節(jié)點(diǎn)設(shè)定自身深度為無(wú)窮大。sink節(jié)點(diǎn)首先將深度信息添加到hello消息中并廣播,其他節(jié)點(diǎn)偵聽(tīng),處于sink節(jié)點(diǎn)一跳范圍內(nèi)的普通節(jié)點(diǎn)先接收到hello消息并解析,然后設(shè)定自身深度D=l,然后將此深度信息添加到自身的hello消息中并廣播,通過(guò)he11ο消息在全網(wǎng)的傳遞,每個(gè)節(jié)點(diǎn)都通過(guò)接收已知深度節(jié)點(diǎn)的he11ο消息來(lái)設(shè)定自身的深度,D=d+1,其中D為節(jié)點(diǎn)自身深度,d為接收到的節(jié)點(diǎn)深度。在hello消息廣播的過(guò)程中,節(jié)點(diǎn)可能收到多個(gè)其他節(jié)點(diǎn)發(fā)送的hello消息,節(jié)點(diǎn)遵從自身深度最小化原則,當(dāng)接收到的深度D>d和D=d時(shí),節(jié)點(diǎn)將不再改變自身深度。待網(wǎng)絡(luò)穩(wěn)定后,各節(jié)點(diǎn)深度都已確定,每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)都是深度與自身相等或者相差I(lǐng)的節(jié)點(diǎn),然后進(jìn)入數(shù)據(jù)傳輸階段。在傳輸分組之前先廣播路由請(qǐng)求幀,所有收到該路由請(qǐng)求幀的鄰居節(jié)點(diǎn),首先查看路由請(qǐng)求幀中的發(fā)送節(jié)點(diǎn)的深度,若比自身深度小,則不做出應(yīng)答;若不小于自身深度,則再查看請(qǐng)求發(fā)送的分組類(lèi)型,若是時(shí)延敏感分組,則節(jié)點(diǎn)將自身節(jié)點(diǎn)的序號(hào)、深度、敏感隊(duì)列長(zhǎng)度及鏈路性能等信息添加到路由應(yīng)答幀中并向源節(jié)點(diǎn)發(fā)送,若是非時(shí)延敏感分組,貝U節(jié)點(diǎn)將自身節(jié)點(diǎn)的序號(hào)、深度、非敏感隊(duì)列長(zhǎng)度及剩余能量等信息添加到路由應(yīng)答幀中并向源節(jié)點(diǎn)發(fā)送。源節(jié)點(diǎn)在發(fā)送路由請(qǐng)求幀后偵聽(tīng)并接收各個(gè)做出應(yīng)答的鄰居節(jié)點(diǎn)的路由應(yīng)答幀,然后根據(jù)以下兩個(gè)原則來(lái)選擇下一跳節(jié)點(diǎn)I)若是時(shí)延敏感分組,從應(yīng)答幀中選擇時(shí)延權(quán)值Wt最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),fft=a*ffd+b*ffq,a+b=l,a>b,a、b為加權(quán)系數(shù)。若有多個(gè)時(shí)延權(quán)值Wt相等,從中選擇深度權(quán)值Wd較小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),若深度權(quán)值Wd與隊(duì)列權(quán)值Wq都分別相等,則從中隨機(jī)選擇一個(gè)節(jié)點(diǎn)作為下一跳節(jié)點(diǎn)。2)若是非時(shí)延敏感分組,從應(yīng)答幀中選擇平衡權(quán)值Wb最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),ffb=c*ffe+d*ffd,c+d=l,c>d,C、d為加權(quán)系數(shù)。若平衡權(quán)值Wb相等,從中選擇能量權(quán)值We較小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),若能量權(quán)值We與深度權(quán)值Wd都分別相等,則從中隨機(jī)選擇一個(gè)節(jié)點(diǎn)作為下一跳節(jié)點(diǎn)。各個(gè)權(quán)值的計(jì)算方法如下深度權(quán)值Wd的計(jì)算方法為Wd=d/do,d為鄰居節(jié)點(diǎn)的深度,do為節(jié)點(diǎn)自身的深度。隊(duì)列權(quán)值Wq的計(jì)算方法為Wq=(Qr-qr)/Qr,Qr為節(jié)點(diǎn)的實(shí)時(shí)隊(duì)列緩沖區(qū)的總長(zhǎng)度,qr為鄰居節(jié)點(diǎn)反饋的實(shí)時(shí)隊(duì)列長(zhǎng)度。能量權(quán)值We的計(jì)算方法為We=[E-(qr+qn)*e]/Eo,E為鄰居節(jié)點(diǎn)反饋的當(dāng)前節(jié)點(diǎn)剩余能量,qr、qn分別為鄰居節(jié)點(diǎn)反饋的實(shí)時(shí)隊(duì)列長(zhǎng)度與非實(shí)時(shí)隊(duì)列長(zhǎng)度,e為傳輸一個(gè)分組所消耗的能量,Eo為節(jié)點(diǎn)初始的總能量。由于無(wú)線傳感網(wǎng)是能量有限的、自組織的網(wǎng)絡(luò),不存在一個(gè)中心基站在分組轉(zhuǎn)發(fā)過(guò)程中隨時(shí)獲取各個(gè)節(jié)點(diǎn)的信息,因此集中式算法在無(wú)線傳感網(wǎng)中是不適用的,只能采用一種分布式的算法來(lái)根據(jù)即時(shí)的局部信息選擇其轉(zhuǎn)發(fā)路徑。采集到的數(shù)據(jù)流的方向總是從源節(jié)點(diǎn)到sink節(jié)點(diǎn)的,由源節(jié)點(diǎn)將采集到的突發(fā)監(jiān)測(cè)數(shù)據(jù)也即時(shí)延敏感分組傳輸?shù)絪ink節(jié)點(diǎn)的過(guò)程中,總是在每一跳都即時(shí)選擇時(shí)延最小的路徑,在網(wǎng)絡(luò)拓?fù)渲锌矗疃缺茸陨硇〉墓?jié)點(diǎn)會(huì)更靠近sink節(jié)點(diǎn),深度大的節(jié)點(diǎn)的數(shù)據(jù)總是會(huì)傳給深度小的鄰居節(jié)點(diǎn),因?yàn)楹笳呔嚯xsink的跳數(shù)更短,因此在數(shù)據(jù)流傳輸?shù)倪^(guò)程中,應(yīng)該盡量選擇深度小的鄰居節(jié)點(diǎn)作為下一跳節(jié)點(diǎn)。另一方面,為了保證公平性,設(shè)定同種隊(duì)列采用先進(jìn)先出原則(FIFO),數(shù)據(jù)就要等到它前面的所有同類(lèi)型的數(shù)據(jù)都傳輸完成后才會(huì)進(jìn)行傳輸,因此時(shí)延長(zhǎng)短t又與時(shí)延敏感隊(duì)列的長(zhǎng)度Qr有著很大的關(guān)系,t與Qr成正比。時(shí)延敏感分組所選擇的傳輸路徑上的實(shí)時(shí)隊(duì)列長(zhǎng)度越小,分組越容易先傳到sink節(jié)點(diǎn)。所以時(shí)延敏感分組選擇下一跳節(jié)點(diǎn)時(shí)要綜合考慮深度與實(shí)時(shí)隊(duì)列長(zhǎng)度兩個(gè)參數(shù),而不是單獨(dú)考慮一方面。如果出現(xiàn)下面的情況,例如A、B節(jié)點(diǎn)為同深度的鄰居節(jié)點(diǎn),C、D節(jié)點(diǎn)為同深度的節(jié)點(diǎn),節(jié)點(diǎn)A要進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),而其深度小的鄰居節(jié)點(diǎn)C本身的實(shí)時(shí)隊(duì)列已經(jīng)很長(zhǎng),而與自己在同一深度的節(jié)點(diǎn)B的實(shí)時(shí)隊(duì)列比較空,在這種情況下,A有一定概率將數(shù)據(jù)分組先轉(zhuǎn)發(fā)給同深度的鄰居節(jié)點(diǎn)B,然后由B進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),如果B節(jié)點(diǎn)的下一跳鄰居節(jié)點(diǎn)D實(shí)時(shí)隊(duì)列也比較短,那么此數(shù)據(jù)經(jīng)過(guò)A-B-D轉(zhuǎn)發(fā)的時(shí)延就會(huì)小于由A-C轉(zhuǎn)發(fā)的時(shí)延。但如果B經(jīng)過(guò)路由選擇后發(fā)現(xiàn)A仍然是其最優(yōu)的下一跳節(jié)點(diǎn),B節(jié)點(diǎn)會(huì)將節(jié)點(diǎn)重新發(fā)送回給A,而A不再選擇B作為其下一跳節(jié)點(diǎn),以避免分組在A、B之間多次重復(fù)轉(zhuǎn)發(fā)浪費(fèi)資源。同樣,對(duì)于非時(shí)延敏感分組,在其傳輸?shù)絪ink節(jié)點(diǎn)的過(guò)程中,總是在每一跳都選擇能耗平衡的路徑。由于時(shí)延敏感分組的傳輸特性,某些節(jié)點(diǎn)相對(duì)于其同深度的其他節(jié)點(diǎn),在連續(xù)傳輸幾次時(shí)延敏感分組后能量消耗過(guò)多,導(dǎo)致能量比同深度的其他節(jié)點(diǎn)的能量少很多。此時(shí)非時(shí)延敏感分組不再適合由此節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā),而是應(yīng)該選擇另外一個(gè)剩余能量較多的節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā),這里的剩余能量不僅是指鄰居節(jié)點(diǎn)當(dāng)前的剩余能量,還應(yīng)該包括其隊(duì)列內(nèi)所有分組傳輸完成所需要消耗的能量。因?yàn)楣?jié)點(diǎn)隊(duì)列緩沖區(qū)內(nèi)存在一定數(shù)量的分組,將這些分組發(fā)送都需要消耗一定的能量,因此節(jié)點(diǎn)的最終能量其實(shí)是當(dāng)前能量減去發(fā)送這些分組所消耗的能量。另外雖然非敏感時(shí)延分組可以容忍一定的時(shí)延,但不代表對(duì)時(shí)延因素一點(diǎn)不在乎,因此權(quán)值計(jì)算中還是加入了深度權(quán)值,使得分組還是沿著從大到小的深度進(jìn)行轉(zhuǎn)發(fā)。設(shè)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖3所示,節(jié)點(diǎn)上電后,圖3A中sink節(jié)點(diǎn)設(shè)置自身cbpth=0,并廣播自身的深度信息,其他所有節(jié)點(diǎn)設(shè)置深度為無(wú)窮大,偵聽(tīng)信道。節(jié)點(diǎn)H、I、J處于sink節(jié)點(diǎn)的一跳范圍之內(nèi),首先會(huì)接收到sink節(jié)點(diǎn)的深度信息,將之與自身深度判斷,O〈無(wú)窮大-I,設(shè)置自身深度depth=l并將sink節(jié)點(diǎn)添加到鄰居表內(nèi);然后圖3B中H、I、J將自身深度分別進(jìn)行廣播,D、E、F、G分別位于H、I、J的一跳范圍內(nèi),D、E、F、G會(huì)先后收到它們廣播的消息,然后將自身消息設(shè)置為depth=2并分別更新自己的鄰居表,例如D添加鄰居H,E、F添加鄰居I,G添加鄰居J。同理,圖3C中D、E、F、G分別廣播自身的深度信息,A、B、C、H、I、J分別位于其各自的一跳范圍內(nèi),由于H、I、J深度比D、E、F、G的深度小,所以即使收到D、E、F、G的深度信息也不會(huì)更新自身深度,只是將其添加到各自的鄰居表中。而A、B、C不僅更新自己的鄰居表,同時(shí)會(huì)更新自身的深度cbpth=3。最后圖3D中A、B、C分別廣播自身的深度信息,D、E、F、G會(huì)收到它們各自鄰居的深度信息但不更新自身深度,只更新鄰居表。網(wǎng)絡(luò)初始化完成后,形成的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖3E,各節(jié)點(diǎn)的深度和鄰居如下表所示節(jié)點(diǎn)序號(hào)(ID)深度(depth)鄰居表(Nbrtable)~3~3CEF~C3B-G~2O權(quán)利要求1.一種用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,其特征在于,包括以下步驟(1)網(wǎng)絡(luò)初始化,每個(gè)節(jié)點(diǎn)建立自身的深度權(quán)值和鄰居表,其中,深度權(quán)值等于節(jié)點(diǎn)距離sink節(jié)點(diǎn)的最短跳數(shù)成正比;(2)將要傳輸?shù)姆纸M分為兩種類(lèi)型時(shí)延敏感分組和非時(shí)延敏感分組,并在幀頭用標(biāo)志位進(jìn)行區(qū)分;(3)當(dāng)節(jié)點(diǎn)有數(shù)據(jù)要傳輸時(shí),廣播添加了分組類(lèi)型的路由請(qǐng)求幀,等待接收鄰居節(jié)點(diǎn)的路由應(yīng)答幀,接收到路由應(yīng)答幀后,根據(jù)不同的分組類(lèi)型選擇不同的路由算法來(lái)選擇下一跳節(jié)點(diǎn);若是時(shí)延敏感分組,則優(yōu)先選擇時(shí)延權(quán)值最小的節(jié)點(diǎn)來(lái)進(jìn)行轉(zhuǎn)發(fā);若是非時(shí)延敏感分組,則優(yōu)先選擇平衡權(quán)值最小的節(jié)點(diǎn)來(lái)進(jìn)行轉(zhuǎn)發(fā)。2.根據(jù)權(quán)利要求I所述的用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,其特征在于,所述步驟(I)還包括以下子步驟(11)sink節(jié)點(diǎn)設(shè)定自身深度cbpth為O,并周期性的廣播包含自身深度的hello消息;(12)其他節(jié)點(diǎn)設(shè)定自身深度D為無(wú)窮大,保持偵聽(tīng)信道,若接收到其他節(jié)點(diǎn)廣播的hello消息,將此節(jié)點(diǎn)添加到鄰居表中,并查看消息中此節(jié)點(diǎn)廣播的深度d,若d〈D+l,則設(shè)置D=d+1,廣播hello消息,若d>=D+l,不需要改變自身深度。3.根據(jù)權(quán)利要求2所述的用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,其特征在于,所述步驟(11)中周期性廣播的周期根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的性質(zhì)來(lái)確定。4.根據(jù)權(quán)利要求I所述的用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,其特征在于,所述步驟(3)中分組類(lèi)型為時(shí)延敏感分組時(shí),從應(yīng)答幀中選擇時(shí)延權(quán)值Wt最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),其中,Wt=a*Wd+b*Wq,a+b=l,a>b,a、b為加權(quán)系數(shù),其中Wd為深度權(quán)值,Wq為隊(duì)列權(quán)值;若時(shí)延權(quán)值Wt最小的節(jié)點(diǎn)有兩個(gè)以上時(shí),從中選擇深度權(quán)值Wd較小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),若深度權(quán)值Wd與隊(duì)列權(quán)值Wq都分別相等,則從中隨機(jī)選擇一個(gè)節(jié)點(diǎn)作為下一跳節(jié)點(diǎn);分組類(lèi)型為非時(shí)延敏感分組時(shí),從應(yīng)答幀中選擇平衡權(quán)值Wb最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),其中,Wb=c*We+d*Wd,c+d=l,c>d,其中,c、d為加權(quán)系數(shù),We為能量權(quán)值,Wd為深度權(quán)值;若平衡權(quán)值Wb最小的節(jié)點(diǎn)有兩個(gè)以上時(shí),從中選擇能量權(quán)值We較小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),若能量權(quán)值We與深度權(quán)值Wd都分別相等,則從中隨機(jī)選擇一個(gè)節(jié)點(diǎn)作為下一跳節(jié)點(diǎn)。5.根據(jù)權(quán)利要求I所述的用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,其特征在于,所述節(jié)點(diǎn)自身保存兩個(gè)分組隊(duì)列緩沖區(qū)實(shí)時(shí)隊(duì)列和非實(shí)時(shí)隊(duì)列,實(shí)時(shí)隊(duì)列用來(lái)發(fā)送時(shí)延敏感分組,非實(shí)時(shí)隊(duì)列用來(lái)發(fā)送非時(shí)延敏感分組,并且優(yōu)先發(fā)送時(shí)延敏感分組隊(duì)列,對(duì)于每個(gè)隊(duì)列中同種類(lèi)型的分組轉(zhuǎn)發(fā)遵循先入先出的原則。6.根據(jù)權(quán)利要求5所述的用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,其特征在于,節(jié)點(diǎn)的任一分組隊(duì)列滿員時(shí),對(duì)于所有鄰居節(jié)點(diǎn)發(fā)來(lái)的該分組類(lèi)型的路由請(qǐng)求幀都不予以回復(fù)。7.根據(jù)權(quán)利要求I所述的用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,其特征在于,所述步驟(3)中接收鄰居節(jié)點(diǎn)的路由應(yīng)答幀時(shí),對(duì)深度大于自身的鄰居節(jié)點(diǎn)與非鄰居節(jié)點(diǎn)的路由應(yīng)答不做處理,直接丟棄。8.根據(jù)權(quán)利要求I所述的用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,其特征在于,所述步驟(3)中節(jié)點(diǎn)在傳輸分組后需要進(jìn)行確認(rèn)幀確認(rèn),在未收到確認(rèn)幀時(shí)節(jié)點(diǎn)會(huì)重傳分組,其中,最大重傳次數(shù)為3。9.根據(jù)權(quán)利要求8所述的用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,其特征在于,所述步驟(3)中在重傳達(dá)到最大次數(shù)仍未成功傳輸時(shí),節(jié)點(diǎn)直接選擇次優(yōu)節(jié)點(diǎn)作為下一跳節(jié)點(diǎn)再次進(jìn)行發(fā)送,若還未成功發(fā)送直接丟棄此分組。10.根據(jù)權(quán)利要求I所述的用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,其特征在于,所述步驟(3)中如果節(jié)點(diǎn)向同深度的最優(yōu)權(quán)值的鄰居節(jié)點(diǎn)發(fā)送數(shù)據(jù)后,此鄰居節(jié)點(diǎn)經(jīng)過(guò)路由選擇后又將分組重新發(fā)送給自己,那么節(jié)點(diǎn)再次進(jìn)行路由選擇時(shí),不再發(fā)給此鄰居節(jié)點(diǎn),而直接轉(zhuǎn)發(fā)給次優(yōu)權(quán)值的節(jié)點(diǎn)。全文摘要本發(fā)明涉及一種用于無(wú)線傳感網(wǎng)的低時(shí)延且能耗平衡的路由方法,包括以下步驟網(wǎng)絡(luò)初始化,每個(gè)節(jié)點(diǎn)建立自身的深度權(quán)值和鄰居表,其中,深度權(quán)值等于節(jié)點(diǎn)距離sink節(jié)點(diǎn)的最短跳數(shù)成正比;將要傳輸?shù)姆纸M分為兩種類(lèi)型時(shí)延敏感分組和非時(shí)延敏感分組,并在幀頭用標(biāo)志位進(jìn)行區(qū)分;當(dāng)節(jié)點(diǎn)有數(shù)據(jù)要傳輸時(shí),廣播添加了分組類(lèi)型的路由請(qǐng)求幀,等待接收鄰居節(jié)點(diǎn)的路由應(yīng)答幀,接收到路由應(yīng)答幀后,根據(jù)不同的分組類(lèi)型選擇不同的路由算法來(lái)選擇下一跳節(jié)點(diǎn);若是時(shí)延敏感分組,則優(yōu)先選擇時(shí)延權(quán)值最小的節(jié)點(diǎn)來(lái)進(jìn)行轉(zhuǎn)發(fā);若是非時(shí)延敏感分組,則優(yōu)先選擇平衡權(quán)值最小的節(jié)點(diǎn)來(lái)進(jìn)行轉(zhuǎn)發(fā)。本發(fā)明使得時(shí)延降低、能耗更為平衡。文檔編號(hào)H04W52/04GK102883398SQ20121034987公開(kāi)日2013年1月16日申請(qǐng)日期2012年9月18日優(yōu)先權(quán)日2012年9月18日發(fā)明者于峰,高丹,張帥,張誠(chéng)申請(qǐng)人:中國(guó)科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所