摘要:針對物聯(lián)網(wǎng)無線傳感器監(jiān)測系統(tǒng),研究了適合稀疏分布傳感器節(jié)點下的無線路由OLSR協(xié)議。并對傳統(tǒng)OLSR路由協(xié)議進行改進。在網(wǎng)絡(luò)高可靠性要求和節(jié)點分布不均的情況下,引入了功率補償機制和自主切換機制,并對改進后的協(xié)議通過NS2進行了仿真實驗。實驗結(jié)果表明,該協(xié)議在可靠性和時延方面均有所提高,達(dá)到了提高稀疏節(jié)點無線路由網(wǎng)絡(luò)系統(tǒng)性能的目的。
關(guān)鍵詞:OLSRSR協(xié)議;稀疏路由;補償點;功率補償;自主切換機制
0 引言
無線傳感網(wǎng)絡(luò)節(jié)點多用于比較惡劣的環(huán)境,如戰(zhàn)場或各種地下作業(yè),因此對節(jié)能和數(shù)據(jù)可靠傳輸?shù)囊筝^高,同時由于節(jié)點分布不均勻,多為垂直和水平分布,傳統(tǒng)的路由協(xié)議如AODV(Ad Hoc On-Demand Distance Vector Routing),Gear,Leach等缺乏靈活性,且對節(jié)點定位要求較高。而先應(yīng)式路由協(xié)議OLSR(Optimized Link state Routing)引入了MPR選擇機制,使得其有效減少路由開銷和保證節(jié)點傳輸?shù)目煽啃浴?br />
OLSR是一種先驗式路由協(xié)議,已經(jīng)被IETFMANET工作組正式公布為自組網(wǎng)路由協(xié)議的RFC標(biāo)準(zhǔn)。OLSR通過獲得的拓?fù)湫畔?,利用Dijkstra算法進行路由計算,選擇到達(dá)目的節(jié)點的最短路徑。
雖然OLSR協(xié)議具有很多優(yōu)點,但研究結(jié)果表明,當(dāng)節(jié)點分布稀疏時,使用OLSR協(xié)議獲得的數(shù)據(jù)吞吐量大幅度下降,同時延遲也增大。因此本文將對OLSR協(xié)議進行改進,使其在稀疏節(jié)點環(huán)境中也能取得較好的性能。
1 OLSR路由協(xié)議的改進
本文提出的結(jié)合功率進行補償機制的改進OLSR協(xié)議,在節(jié)點密集處采用傳統(tǒng)OLSR協(xié)議,在節(jié)點稀疏處自動切換到改進后的OLSR協(xié)議。
1.1 OLSR路由算法的缺陷
(1)不適應(yīng)稀疏節(jié)點
OLSR協(xié)議默認(rèn)節(jié)點信號傳播半徑足夠大,保證源與目的節(jié)點之間存在通信鏈路使得網(wǎng)絡(luò)整體連通。但在節(jié)點稀疏或移動分布式無線網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,網(wǎng)絡(luò)拓?fù)漕l繁改變,無法確保網(wǎng)絡(luò)的連通性及節(jié)點問始終存在通信路徑。
(2)鏈路結(jié)構(gòu)不均衡
OLSR協(xié)議只有被選為MPR的節(jié)點才產(chǎn)生并轉(zhuǎn)發(fā)TC(TopologyControl)消息,默認(rèn)情況下的TC只包含了MPR(MultiPoint Relays)選擇者的地址信息。在每個時刻,網(wǎng)絡(luò)節(jié)點的拓?fù)浼飪H僅存在MPR鏈路信息,而塒其他的對稱鏈路或者單向鏈路不會反映到網(wǎng)絡(luò)拓?fù)浼?。OLSR協(xié)議實驗可以得到10個節(jié)點情況下網(wǎng)絡(luò)拓?fù)鋱D如圖1所示,完整的拓?fù)鋱D如圖2所示。
由圖1可以看出,節(jié)點3,7,8,9均未被任何節(jié)點選為MPR,它們沒有TC消息可以發(fā)送,同時節(jié)點8只有一條鏈路可以被廣播。
節(jié)點8到目的節(jié)點只有一條可用鏈路,因此需要為這些MPR節(jié)點集中節(jié)點數(shù)為1的節(jié)點選擇一個備用的轉(zhuǎn)發(fā)節(jié)點,當(dāng)MPR節(jié)點出現(xiàn)故障時,能夠及時代替MPR節(jié)點轉(zhuǎn)發(fā)。
1.2 稀疏OLSR路由補償節(jié)點選擇算法
改進協(xié)議針對只有一條鏈路被感知的節(jié)點,在Hello消息中增加一個標(biāo)志位,標(biāo)志該節(jié)點MPR集中節(jié)點數(shù)量。
協(xié)議開始后,按照傳統(tǒng)OLSR協(xié)議進行MPR選舉,MPR集合中的節(jié)點選出后,各個MPR節(jié)點檢查收到的節(jié)點Hello消息中的標(biāo)志位,當(dāng)標(biāo)志位為1時,在網(wǎng)絡(luò)性能下降到一定程度時就可以采用補償算法選取相應(yīng)的補償節(jié)點,增大補償節(jié)點發(fā)射功率,使它的通信范圍覆蓋MPR集合中惟一節(jié)點所覆蓋的范圍,這樣就解除了該惟一節(jié)點的不可靠性,以保證整個網(wǎng)絡(luò)的連通性。補償節(jié)點選擇流程如圖3所示。
由圖3可得到補償算法如下:
BEGIN
DO在Hello消息中附帶子集節(jié)點上一次發(fā)送消息后的剩余能量信息;
IF節(jié)點剩余能量>λ THEN
MPR集合中的節(jié)點能量將要耗盡或者鏈路狀態(tài)變壞;
DO MPR集合中節(jié)點惟一的節(jié)點發(fā)送補償請求消息給所有一跳鄰居節(jié)點;
IF該節(jié)點做過補償點THEN
根據(jù)分組內(nèi)部的發(fā)射/接收功率信息;
DO計算鄰接點與惟一節(jié)點的距離,并寫入補償回應(yīng)消息中,發(fā)送給MPR集合中的節(jié)點,同時該節(jié)點作為備用補償點;
ELSF IF距離鄰居節(jié)點N最近THEN
MPR集合中的惟一節(jié)點收到應(yīng)答消息;
DO選擇距離最近的鄰居節(jié)點作為補償點;
ELSE END
END IF
END IF
ELSE END
END IF
DO選出的補償節(jié)點根據(jù)收到的信息來調(diào)整發(fā)射功率。補償節(jié)點將自身通信半徑增大到補償節(jié)點的MPR節(jié)點的通信半徑和該MPR節(jié)點與它距離之和;
END
為了節(jié)約能量,補償節(jié)點最大發(fā)射功率的工作時間為一個查找周期,當(dāng)發(fā)現(xiàn)MPR集合中的集合節(jié)點不需要補償節(jié)點時就恢復(fù)之前的發(fā)射功率。
2 自主切換機制
在路由建立階段,當(dāng)通過各個節(jié)點的Hello消息使整個網(wǎng)絡(luò)的MPR節(jié)點集確定后,MPR子集內(nèi)部各個節(jié)點利用式(1)求出平均閾值Savr:
Savr=Sall/Smpr (1)
式中:Sall代表整個網(wǎng)絡(luò)的節(jié)點數(shù)和;Smpr代表MPR集合節(jié)點個數(shù)。MPR節(jié)點集合內(nèi)的各個子節(jié)點計算自己負(fù)責(zé)轉(zhuǎn)發(fā)的節(jié)點數(shù)Hello_Cou nt。當(dāng)Hello_Count低于平均閾值Savr時,便利用式(2)開始預(yù)測本輪信號強度:
式中:Snew-measure表示新測得的信號強度;Sold表示上一次預(yù)測的信號強度;Snew表示預(yù)測的下一段時間的信號強度;是權(quán)重,取值范圍是[0,1],越小,預(yù)測信號強度受該時刻信號強度的影響越大。
當(dāng)預(yù)測的下次信號強度低于預(yù)先規(guī)定的一定強度時,可以確定此處為稀疏節(jié)點分布區(qū)且信號強度較低,則該MPR集合中節(jié)點分組內(nèi)實行改進后的OLSR協(xié)議,否則繼續(xù)使用OLSR協(xié)議。
OLSR協(xié)議和改進OLSR協(xié)議的自主切換機制流程如圖4所示。
3 功率控制算法依據(jù)
補償機制中,需要增大節(jié)點的發(fā)射功率,當(dāng)源節(jié)點向目的節(jié)點發(fā)送分組時,發(fā)送功率Pt與接收功率Pr的關(guān)系如下:
式中:λ為載波波長;d為源節(jié)點和目的節(jié)點間的距離;Gt為發(fā)射機天線增益;Gr為接收機天線增益。設(shè)接收功率的門限為Prt,當(dāng)信號的功率不小于Prt時才能被正確接收,可推出式(4)和式(5):
由式(4)可知,當(dāng)傳輸距離增大1倍,發(fā)射功率成冪級數(shù)增加,才能被正確接收。
4 實驗結(jié)果
本文實驗環(huán)境是在Linux操作平臺下移植了TinyOS操作系統(tǒng),利用CC2430控制芯片進行編程,并在ns2.34環(huán)境下進行仿真實驗。
4.1 仿真實驗環(huán)境
仿真的網(wǎng)絡(luò)范圍為500m×1 000 m,節(jié)點數(shù)量為20和100個,傳輸范圍為250 m,物理信道的帶寬為2 Mb/s,MAC層使用802.11a協(xié)議。建立12個CBR業(yè)務(wù)連接,分組長度為512 B,仿真時間為200 s,發(fā)包率為4個/s。節(jié)點的速度分別為0 m/s,1 m/s,5 m/s,10 m/s,20 m/s,25m/s,30m/s。
4.2 性能指標(biāo)
協(xié)議改進主要針對網(wǎng)絡(luò)的可靠傳輸,因此仿真實驗的性能指標(biāo)有節(jié)點投遞率和網(wǎng)絡(luò)傳輸平均延時。由于改進后的協(xié)議運用了自主切換機制,必然會增大部分能量的開銷,因此,需要對剩余能量也進行仿真實驗。
(1)投遞率
OLSR協(xié)議適用于節(jié)點密集型的網(wǎng)絡(luò),從圖5可以看出,兩個協(xié)議在100個節(jié)點的網(wǎng)絡(luò)整體比20個節(jié)點的稀疏網(wǎng)絡(luò)的投遞率高。在節(jié)點固定或者移動較小的情況下,性能已經(jīng)很好,則改進后的協(xié)議性能并未得到良好的體現(xiàn)。當(dāng)節(jié)點移動速度超過10 m/s后,網(wǎng)絡(luò)性能明顯下降,這時運用自主切換機制,網(wǎng)絡(luò)的投遞率得到顯著改善。速度越大,OLSR協(xié)議性能下降越快,而改進的OLSR協(xié)議性能下降得到控制。
(2)平均時延
在節(jié)點固定或者移動速度較低的情況下,改進的OLSR協(xié)議并未表現(xiàn)出特別的優(yōu)勢,這是由于監(jiān)測網(wǎng)絡(luò)的性能耗費一定的時延,之前采用自主切換提高的時延并不明顯。
端到端時延統(tǒng)計如圖6所示。由圖可看出,當(dāng)節(jié)點移動速度超過15 m/s后,改進的OLSR協(xié)議能夠在網(wǎng)絡(luò)剩余能量很低或部分MPR節(jié)點失效的情況下,使數(shù)據(jù)通過補償節(jié)點得到及時的轉(zhuǎn)發(fā),因而它的網(wǎng)絡(luò)傳播時延相比OLSR協(xié)議有明顯降低。
(3)剩余能量
對100個節(jié)點進行仿真,速度固定為5m/s,假定節(jié)點初始能量在[20,60]間隨機分配。仿真時間為400s,x軸表示剩余能量,y軸表示處于該能量的節(jié)點數(shù),如圖7所示。
在400s處,使用傳統(tǒng)路由協(xié)議在剩余能量60 J處有3個,而改進的協(xié)議在此處為1個。但是存剩余能量為10 J的節(jié)點中,傳統(tǒng)OLSR有15個,而改進的OLSR只有11個,兩個協(xié)議的大多數(shù)節(jié)點都集中在[20,50]的能量區(qū)。由此可見,使用改進的OLSR協(xié)議并沒有造成過多的能量耗費,同時有效地平衡了能量的均衡使用,從而延長了部分節(jié)點的壽命。
5 結(jié)論
本文分析了OLSR協(xié)議不適合節(jié)點分布稀疏的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)情況,通過加入特定節(jié)點補償機制和自主切換機制塒其進行改進.并對改進后的OLSR協(xié)議進行了仿真。實驗結(jié)果表明,改進后的協(xié)議能夠取得更高的投遞率,提高了網(wǎng)絡(luò)傳輸?shù)目煽啃?。在?jié)點移動速度較大時,在降低時延方面效果顯著。同時也有利地均衡了各個節(jié)點的能量,從而延長整個網(wǎng)絡(luò)的壽命。
選取出的補償節(jié)點進行合適的功率放大后,增大了節(jié)點的傳輸覆蓋范圍,必然會對周圍的節(jié)點傳輸信號有所影響,本文假定是在忽略功率增大的幅度對周圍節(jié)點信號強度影響的情況下進行的研究,下一步對增加這種補償和切換機制后的網(wǎng)絡(luò)與節(jié)點信號強度之間的關(guān)系和影響進行研究,找到一種均衡的度量關(guān)系,使改進的協(xié)議性能可以得到最好的發(fā)揮。