本發(fā)明涉及Glossy機(jī)制泛洪算法改進(jìn),屬于無線傳感網(wǎng)絡(luò)技術(shù)。
背景技術(shù):
最初的傳感器網(wǎng)絡(luò)是僅用來獲取簡單信號的傳統(tǒng)傳感器,節(jié)點(diǎn)之間采用點(diǎn)對點(diǎn)傳輸。近十年來,隨著半導(dǎo)體技術(shù)和無線通信技術(shù)的不斷發(fā)展,陸續(xù)出現(xiàn)多種新的短距離無線通信技術(shù),僅僅從IEEE 802.11就產(chǎn)生出許多新的協(xié)議標(biāo)準(zhǔn),如802.11b、802.11a、802.11g、802.11h以及高性能無線局域網(wǎng)技術(shù),其傳輸速率和傳輸距離等都得到很大的提高。
無線傳感網(wǎng)絡(luò)具有不需要固定網(wǎng)絡(luò)支持,快速展開、抗毀性強(qiáng)的特點(diǎn)使得它得到不斷普及,逐步應(yīng)用到工業(yè)控制、環(huán)境監(jiān)測、商業(yè)監(jiān)控、汽車電子,家庭數(shù)字控制網(wǎng)絡(luò)、軍事應(yīng)用。隨著應(yīng)用的提高以及應(yīng)用的特點(diǎn),對無線傳感網(wǎng)絡(luò)的低功耗、穩(wěn)定性,低成本提出了更高的要求。
Glossy是一種快速泛洪機(jī)制,基于時(shí)間同步,并發(fā)傳輸,相長干涉的特點(diǎn),實(shí)現(xiàn)數(shù)據(jù)包在整個(gè)網(wǎng)絡(luò)中的快速傳播。Glossy機(jī)制相比較與傳統(tǒng)的泛洪機(jī)制具有很多優(yōu)點(diǎn),例如包傳輸時(shí)間短,包傳輸?shù)目煽啃愿?,時(shí)間同步代價(jià)小且誤差小,平均時(shí)間誤差小于0.4us,節(jié)點(diǎn)傳輸延時(shí)小,最重要的是該機(jī)制的性能不依賴于節(jié)點(diǎn)的密度,可以應(yīng)用到很多現(xiàn)實(shí)場景中。
上面的需求就促使了研究者對協(xié)議的改進(jìn),以滿足實(shí)際應(yīng)用場景的需求。目前業(yè)界主要從網(wǎng)絡(luò)層、MAC層進(jìn)行改進(jìn),以使得傳輸節(jié)點(diǎn)滿足低功耗、穩(wěn)定的使用要求。所以對無線傳感網(wǎng)絡(luò)協(xié)議的研究和改進(jìn)有很重要的意義,一點(diǎn)點(diǎn)的改進(jìn)將會(huì)導(dǎo)致應(yīng)用場景的普及、功耗的降低、成本的降低,為國家能源節(jié)省和國家現(xiàn)代化建設(shè)產(chǎn)生重要的影響。
技術(shù)實(shí)現(xiàn)要素:
在認(rèn)識到Glossy機(jī)制的使用特點(diǎn)和優(yōu)點(diǎn)之后,通過進(jìn)一步分析Glossy機(jī)制,分析出在泛洪算法方面可以有改進(jìn)的地方,來實(shí)現(xiàn)性能的提高,進(jìn)一步增加應(yīng)用場景。具體改進(jìn)思路如下:
(1節(jié)點(diǎn)預(yù)選機(jī)制。非泛洪數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)中,不是每個(gè)節(jié)點(diǎn)都需要進(jìn)行轉(zhuǎn)播。如果我們可以減少再一次傳輸中節(jié)點(diǎn)的集合,其余非轉(zhuǎn)發(fā)節(jié)點(diǎn)可以關(guān)閉射頻信號來節(jié)約能量。轉(zhuǎn)發(fā)預(yù)選機(jī)制的目的在保證聯(lián)通性的基礎(chǔ)上減少傳輸節(jié)點(diǎn),改變原先的泛洪算法。借助節(jié)點(diǎn)預(yù)選機(jī)制的實(shí)現(xiàn),建立節(jié)點(diǎn)集合,完成路徑構(gòu)建,這點(diǎn)很重要,是該機(jī)制得以高效實(shí)現(xiàn)的保證。
(2機(jī)會(huì)偵聽機(jī)制。在完成路徑構(gòu)建基礎(chǔ)上,進(jìn)入異步事件偵聽階段,當(dāng)節(jié)點(diǎn)發(fā)生丟包時(shí),進(jìn)行時(shí)隙調(diào)整、再次偵聽鄰居節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包,最后讀取數(shù)據(jù)包進(jìn)行后續(xù)工作。
附圖說明
圖1是不同路徑算法示意圖。
圖2是CXFS進(jìn)程轉(zhuǎn)換圖。
圖3發(fā)送狀態(tài)處理過程流程圖。
圖4是接收及等待狀態(tài)處理過程流程圖。
具體實(shí)施方式
下面結(jié)合附圖對發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明:
如圖1所示路徑結(jié)構(gòu)圖,展示三種路徑算法。其中,F(xiàn)min、Fmax代表現(xiàn)有的Glossy泛洪機(jī)制的最小代價(jià)和最大代價(jià)路徑算法,F(xiàn)rr是本發(fā)明的路徑算法。
我們定義FRR(s,d)作為最短路徑轉(zhuǎn)發(fā)集合,這是在源節(jié)點(diǎn)s和目的節(jié)點(diǎn)d之間所有最小代價(jià)路徑的集合。根據(jù)三角不等定理,只有下面公式滿足,中間節(jié)點(diǎn)f才是集合成員,
dsf+dfd≤dsd
dij定義為i和j之間的最小距離。
相較于單路徑路由,每個(gè)節(jié)點(diǎn)f可以在不需要交換路由信息的情形下測試是否f屬于FRR(s,d),它只需要知道端到端的代價(jià)和它相鄰每個(gè)端點(diǎn)的代價(jià)。換句話說,F(xiàn)RR類似Fmax協(xié)議但是在目標(biāo)上更接近于Fmin。
相比較于Glossy中Fmax算法,只要終端之間不是所有路徑都是最小代價(jià)的,F(xiàn)RR路徑的總數(shù)就不是最多的。通過減少參與發(fā)送節(jié)點(diǎn)數(shù)目可以減少占空比,通過減少轉(zhuǎn)發(fā)集的直徑和內(nèi)部包空間來增加吞吐量。下面介紹用來選擇轉(zhuǎn)發(fā)節(jié)點(diǎn)的協(xié)議:并發(fā)傳輸轉(zhuǎn)發(fā)預(yù)選(CXFS),其中在建立進(jìn)程的每次交換中使用基本的多路泛洪。圖2是CXFS進(jìn)程展示,為了決定節(jié)點(diǎn)w是否應(yīng)該轉(zhuǎn)發(fā),節(jié)點(diǎn)w必須知道距離源節(jié)點(diǎn)s、目的節(jié)點(diǎn)d和源節(jié)點(diǎn)s到目的節(jié)點(diǎn)d的距離。對于點(diǎn)對點(diǎn)的傳輸,圖中a顯示了在CXFS的步驟,源節(jié)點(diǎn)S發(fā)送一個(gè)burst setup包,允許每個(gè)潛在的轉(zhuǎn)發(fā)節(jié)點(diǎn)w測量dsw,允許目的節(jié)點(diǎn)測量dsd。在setup acknowledgement(建立確認(rèn))階段,目的節(jié)點(diǎn)d進(jìn)行數(shù)據(jù)包響應(yīng),響應(yīng)包中包含dsd信息,用來使w節(jié)點(diǎn)可以獲得dsd去測量dwd信息,此時(shí)節(jié)點(diǎn)w擁有足夠的信息作出轉(zhuǎn)發(fā)決定。
圖中b主要面向的是收集流向圖。調(diào)度包提供給每個(gè)潛在的轉(zhuǎn)發(fā)者dwd,提供給每個(gè)潛在的源節(jié)點(diǎn)dsd。burst建立包包含dsd,同時(shí)允許節(jié)點(diǎn)測量dsw。此時(shí)只要在節(jié)點(diǎn)s的時(shí)隙時(shí)長完成單一的端到端的通信,節(jié)點(diǎn)w就可以對FRR(s,d)作出轉(zhuǎn)發(fā)決定。
在每種設(shè)置中,節(jié)點(diǎn)w可以計(jì)算出在FRR(s,d)中它的友元關(guān)系節(jié)點(diǎn)(即能夠互相傳遞數(shù)據(jù)的鄰居節(jié)點(diǎn))。在數(shù)據(jù)包的轉(zhuǎn)發(fā)階段,不在FRR(s,d)中的節(jié)點(diǎn)可以關(guān)閉射頻信號,同時(shí)s在內(nèi)部空間發(fā)送的包由dsd決定。
下面給出距離度量問題的設(shè)計(jì)方案。這里使用hop-count(跳數(shù))作為我們距離度量的基礎(chǔ),當(dāng)然hop-count如果直接使用,在單一的傳輸網(wǎng)絡(luò)中是非常不可靠的,采用一些關(guān)鍵措施使它適應(yīng)CXFS距離。
首先hop-count服從三角不等定理,離源節(jié)點(diǎn)4跳的節(jié)點(diǎn)到離源節(jié)點(diǎn)3跳的節(jié)點(diǎn)沒有更短的路徑。任何不能夠應(yīng)用于FRR定義的距離度量就不能夠在CXFS工作。
第二,為了保證并發(fā)傳輸?shù)目煽啃?,同時(shí)并發(fā)傳輸?shù)膬?nèi)容必須一致。中間節(jié)點(diǎn)不能夠在數(shù)據(jù)包中嵌入獨(dú)立的信息,轉(zhuǎn)發(fā)決定必須根據(jù)轉(zhuǎn)發(fā)者所有祖先節(jié)點(diǎn)的信息。當(dāng)然節(jié)點(diǎn)也不能夠發(fā)送信息給上一任傳遞數(shù)據(jù)包的節(jié)點(diǎn)。hop-count能夠在不要求中間節(jié)點(diǎn)發(fā)送沖突數(shù)據(jù)的情形下傳達(dá)有意義的距離信息。
最后距離度量必須明白在多跳網(wǎng)絡(luò)中的內(nèi)容。傳統(tǒng)的物理層度量(RSSI,LQI)會(huì)被限制在一定范圍,這會(huì)導(dǎo)致使用的局限性。我們加強(qiáng)hop-count使它成為優(yōu)勢。
由于鏈路質(zhì)量變化很快,導(dǎo)致鏈路的不勻稱,可以想象到在多發(fā)送者環(huán)境中距離測量是短暫的,必須階段性更新,來達(dá)到準(zhǔn)確的距離評估。在單路徑路由協(xié)議中,距離評估和鏈路評估、路由發(fā)現(xiàn)是相似的,采集有效的鄰居和路由表信息。這里采取3種策略實(shí)現(xiàn)距離評估的準(zhǔn)確性來提供一組可靠和壓縮的轉(zhuǎn)發(fā)節(jié)點(diǎn)集合。
最新觀察hop-count,這個(gè)很容易實(shí)現(xiàn)且不需要路由狀態(tài)。平均觀察hop-count,這會(huì)阻止節(jié)點(diǎn)響應(yīng)快速改變,但會(huì)簡單的處理變化。最大化觀察hop-count,指給出最大的包含轉(zhuǎn)發(fā)集合,使其更加的可靠。最后在最短距離公式中還會(huì)增加邊界區(qū)域變量,去彌補(bǔ)評估錯(cuò)誤,短期變化。通過增加邊界區(qū)域?qū)挾萣,使用d去表示評估距離和距離對稱性的猜想。FRR定義的公式變?yōu)橄旅娴男问健?/p>
FRR(s,d)={f:dsf+dfd≤dsd+b}
通過增加b,我們可以在轉(zhuǎn)發(fā)集合FRR中包含更多的節(jié)點(diǎn),包含使用的整個(gè)網(wǎng)絡(luò)。通過增加路徑的多樣性和距離評估的錯(cuò)誤邊界來增加包的接受。后面我們會(huì)發(fā)現(xiàn)簡單近似和邊界彌補(bǔ)策略使得CX(并發(fā)傳輸)對Glossy的性能得到了很大提高。
為了實(shí)現(xiàn)轉(zhuǎn)發(fā)預(yù)選集合的選取,對該節(jié)點(diǎn)在網(wǎng)絡(luò)中的路徑信息的獲取就相當(dāng)重要,再利用設(shè)定的公式進(jìn)行計(jì)算是否符合設(shè)定條件。距離長度主要通過轉(zhuǎn)播跳數(shù)來進(jìn)行統(tǒng)計(jì),這里主要展現(xiàn)求取相關(guān)路徑信息的邏輯流程圖,見圖3。
預(yù)選節(jié)點(diǎn)的選取主要牽扯三個(gè)步驟,源節(jié)點(diǎn)信息的發(fā)送,目的節(jié)點(diǎn)信息的發(fā)送,中間節(jié)點(diǎn)信息的獲取和計(jì)算,借助制定的路徑距離關(guān)系,再加上預(yù)設(shè)的邊界范圍判斷出結(jié)果是否滿足最小花費(fèi)路徑的條件。若不在設(shè)定的集合中,則進(jìn)入休眠模式,等到下個(gè)周期再喚醒,提高能效。
接收及等待狀態(tài)處理過程流程圖見圖4,并發(fā)傳輸轉(zhuǎn)發(fā)預(yù)選機(jī)制在contiki平臺(tái)實(shí)現(xiàn),基于距離測量、評估策略、邊界彌補(bǔ),實(shí)現(xiàn)對Glossy泛洪效率的提高。CX鏈路層維持轉(zhuǎn)發(fā)調(diào)度機(jī)制。時(shí)間被劃分為固定長度幀,再進(jìn)一步劃分為時(shí)隙。在網(wǎng)絡(luò)中節(jié)點(diǎn)被劃分一個(gè)時(shí)隙,那么這個(gè)調(diào)度被分發(fā)為單個(gè)根節(jié)點(diǎn)。節(jié)點(diǎn)在每個(gè)幀開始之前打開射頻信號,始終處于打開的狀態(tài),直到一個(gè)包被接受或者固定的1ms時(shí)間結(jié)束。
在增加hop-count域和減少TTL計(jì)數(shù)之后,節(jié)點(diǎn)轉(zhuǎn)發(fā)一個(gè)包。當(dāng)TTL為0,此時(shí)就要丟棄該數(shù)據(jù)包。當(dāng)節(jié)點(diǎn)發(fā)生丟包時(shí),進(jìn)行時(shí)隙調(diào)整、再次偵聽鄰居節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包,最后讀取數(shù)據(jù)包進(jìn)行后續(xù)工作。
CX網(wǎng)絡(luò)層模擬兩種泛洪,簡單泛洪和RR泛洪。在簡單泛洪時(shí),節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)直徑設(shè)置包的TTL值,節(jié)點(diǎn)在包的TTL計(jì)數(shù)為非零時(shí)進(jìn)行轉(zhuǎn)發(fā)。在RR泛洪中,包使它們的初始設(shè)置為dsd+b,RR泛洪中的組件要負(fù)責(zé)在CXFS中的轉(zhuǎn)發(fā)決定,在符合不等公式的前提下才進(jìn)行轉(zhuǎn)播處理。
CX提供兩種傳輸層協(xié)議,F(xiàn)lood Burst和RR Burst,這些控制包排隊(duì)和緩存空間,即在當(dāng)前包的TTL結(jié)束之后開始下次傳輸。節(jié)點(diǎn)會(huì)一直排列包直到一些預(yù)定閥值超過了,后面會(huì)在下一個(gè)時(shí)隙盡可能多的傳輸包。廣播包由Flood Burst傳輸協(xié)議處理,單播包由RR Busrt協(xié)議處理。
RR busrt建立相位使用簡單泛洪,包轉(zhuǎn)發(fā)階段使用RR泛洪。在一個(gè)Flood busrt中,包在其它包通過簡單的泛洪包傳輸之后被發(fā)送,同時(shí)這里沒有Burst Setup階段。如果節(jié)點(diǎn)在當(dāng)前時(shí)隙不是一個(gè)轉(zhuǎn)發(fā)者,就關(guān)閉無線射頻節(jié)約能量。如果節(jié)點(diǎn)在前N個(gè)幀沒有接受到包,就會(huì)假想時(shí)隙擁有者沒有任何包發(fā)送,同時(shí)直到下一個(gè)時(shí)隙開始才打開射頻信號。類似的,在Burst建立階段,只要節(jié)點(diǎn)計(jì)算不在FRR中,節(jié)點(diǎn)就會(huì)直到下一個(gè)時(shí)隙才打開射頻信號。
應(yīng)用使用標(biāo)準(zhǔn)的AMSend和AMReceive接口,允許存在的系統(tǒng)很容易的切換到CX。同時(shí)如果應(yīng)用要求移動(dòng)、多個(gè)中心支持、最小狀態(tài)維持,可以設(shè)置編譯器標(biāo)志來使用簡單的Flood Burst進(jìn)行單播和廣播。