于 童
(永城職業(yè)學(xué)院電子信息工程系,河南 永城 476600)
隨著微控制器以及傳感技術(shù)的發(fā)展,物聯(lián)網(wǎng)(internet of things,IoT)[1-2]已在智能交通、智慧農(nóng)業(yè)、康復(fù)醫(yī)療等領(lǐng)域廣泛應(yīng)用。預(yù)期到2025 年,在物聯(lián)網(wǎng)平臺平均每人擁有不止一個智能設(shè)備。這些智能設(shè)備可能是靜態(tài)的,也可能是移動的。
然而,既有靜態(tài)又有移動的智能設(shè)備組成的物聯(lián)網(wǎng)通信可靠性和設(shè)備能耗面臨著較大的挑戰(zhàn)。由IETF 標(biāo)準(zhǔn)化的低功率低損耗網(wǎng)絡(luò)路由協(xié)議(routing protocol for low power and lossy network,RPL)是面向靜態(tài)物聯(lián)網(wǎng)[2-5]。移動設(shè)備的加入,降低了RPL 路由的穩(wěn)定性。因此,若將傳統(tǒng)的RPL 路由直接應(yīng)用到移動物聯(lián)網(wǎng)應(yīng)用環(huán)境,路由可靠性以及數(shù)據(jù)包傳遞率得不到保證。
為此,研究者對傳統(tǒng)的RPL 路由進行改進,使其更適用于移動環(huán)境。例如,文獻[6]提出基于接收信號強度(received signal strength index,RSSI)的改進RPL 路由。該路由引用移動檢測機制,進而提高設(shè)備的能效。類似地,文獻[7]采用了定位算法,估計移動節(jié)點的位置,進而調(diào)整路由,提高了路由的可靠性。文獻[8]采用增強學(xué)習(xí)算法估計鏈路的有效時間,使其適用于移動環(huán)境,提高了路由的可靠性。
然而,這些改進路由只采用單一路由指標(biāo)構(gòu)建目標(biāo)函數(shù)。由單一路由指標(biāo)所選擇的最優(yōu)路徑無法滿足物聯(lián)網(wǎng)的多類應(yīng)用需求。此外,由移動和靜態(tài)設(shè)備組成的物聯(lián)網(wǎng),對路由的穩(wěn)定性提出了更高的要求。
為此,提出基于多路由指標(biāo)的RPL 改進路由MRPL。MRPL 路由先從節(jié)點剩余能量以及鏈路持續(xù)時間兩方面計算路由指標(biāo),再引用熵值法設(shè)定路由指標(biāo)的權(quán)重系數(shù)。本文的主要工作如下:1)提出剩余能量因子、鏈路持續(xù)時間和鏈路穩(wěn)定性3 個路由指標(biāo),并對它們進行歸一化處理,它們均是0~1 間的參數(shù);2)利用上述3 個路由指標(biāo)構(gòu)建復(fù)合的目標(biāo)函數(shù);3)采用熵值法設(shè)定復(fù)合目標(biāo)函數(shù)中3 個路由指標(biāo)的權(quán)重值;4)仿真結(jié)果表明,提出的MRPL 算法增強了路由穩(wěn)定性,提高了數(shù)據(jù)包傳遞率。
RPL 屬距離矢量路由協(xié)議[9-10]。在基于RPL 的物聯(lián)網(wǎng)架構(gòu)中,網(wǎng)絡(luò)內(nèi)的節(jié)點呈樹狀型結(jié)構(gòu)。每棵樹至少存在一個sink 節(jié)點,其作為樹的根節(jié)點。這些節(jié)點構(gòu)成一個有向無環(huán)路(directed acyclic graph,DAG)。通常將只含有一個sink 的DAG 稱為定向DAG(DODAG)。
利用目標(biāo)函數(shù)(object function,OF),構(gòu)建并更新DODAG。OF 通過路由指標(biāo)構(gòu)建DODAG 內(nèi)節(jié)點間的路徑。一般依據(jù)物聯(lián)網(wǎng)應(yīng)用要求定義路由指標(biāo),如節(jié)點的能耗、傳輸數(shù)據(jù)包的可靠性,路由的穩(wěn)定性。依據(jù)OF 選擇偏好的父節(jié)點(簡稱偏好父節(jié)點)作為下一跳節(jié)點,進而將數(shù)據(jù)包傳輸至根節(jié)點。此外,DODAG 中的每個節(jié)點依據(jù)離根節(jié)點的近似距離設(shè)置節(jié)點的秩值(Rank)。
RPL 路由階段有四類控制消息:1)DODAG 信息對象(DIO)。節(jié)點通過鄰居分發(fā)DIO 消息,獲取網(wǎng)絡(luò)參數(shù);2)DODAG 信息征集(DIS)。通過傳輸DIS,實現(xiàn)向RPL 節(jié)點請求DIO 消息;3)目標(biāo)廣播對象(DAO)。通過傳輸DAO,建立上行路由;4)DAO-確認(DAO-ACK)。通過傳輸DAO-ACK,告知DAO 消息發(fā)送節(jié)點已收到DAO 消息。
傳統(tǒng)的RPL 路由只考慮單一路由指標(biāo),這無法滿足物聯(lián)網(wǎng)各類應(yīng)用要求。特別是在移動應(yīng)用環(huán)境中,若只考慮期望傳輸次數(shù)(ETX)指標(biāo)[11],所構(gòu)建路由無法滿足應(yīng)用對數(shù)據(jù)包傳遞率的要求。
為此,本文針對移動環(huán)境,選擇鏈路質(zhì)量、鏈路穩(wěn)定性以及節(jié)點能耗構(gòu)建復(fù)合目標(biāo)函數(shù)。即采用多路由指標(biāo),綜合估計父節(jié)點,使所選擇的最佳父節(jié)點所構(gòu)建的路由能夠有效地傳輸數(shù)據(jù)包,進而提高應(yīng)對移動環(huán)境的強健性。
本文采用3 個路由指標(biāo):剩余能量因子、鏈路持續(xù)時間和鏈路的穩(wěn)定性。
假定節(jié)點sj攜帶數(shù)據(jù)包,其需要從候選父節(jié)點中選擇一個節(jié)點作為下一跳節(jié)點,即選擇最佳父節(jié)點。令Nj表示節(jié)點sj的候選父節(jié)點集。
2.1.1 候選父節(jié)點的剩余能量因子
計算候選父節(jié)點的剩余能量因子,其考慮父節(jié)點的能量變化速度。在計算候選父節(jié)點的剩余能量因子時,考慮兩種情況:1)候選父節(jié)點為BR;2)候選父節(jié)點不是BR。
當(dāng)候選父節(jié)點為BR 時,直接利用候選父節(jié)點的能量變化速度作為其剩余能量因子:
若候選父節(jié)點不是BR 時,就考慮候選父節(jié)點的偏好父節(jié)點的剩余能量因子。在這種情況下,候選父節(jié)點的剩余能量因子的定義如式(2)所示:
2.1.2 鏈路持續(xù)時間
鏈路持續(xù)時間等于鏈路兩端節(jié)點在彼此通信范圍內(nèi)的持續(xù)時間。引用鏈路持續(xù)時間,可提高鏈路穩(wěn)定性。
以圖1 為例,闡述計算鏈路持續(xù)時間的可能性。節(jié)點A 向其鄰居節(jié)點(C,D,E,B)廣播DIO 消息,其包含節(jié)點A 的移動速度和當(dāng)前的位置。鄰居節(jié)點接收后,結(jié)合自己的位置和移動速度便可計算與節(jié)點A 間鏈路的持續(xù)時間。若節(jié)點速度為零,則表示節(jié)點為靜態(tài)節(jié)點。例如,節(jié)點C 的移動速度為零,其屬靜態(tài)節(jié)點。
圖1 基于DIO 消息計算鏈路可持續(xù)時間Fig.1 Calculating the duration of link based on DIO information
基于上述討論,節(jié)點sj可計算其與候選父節(jié)點間鏈路的持續(xù)時間。令(xj,yj)表示節(jié)點sj的位置;令?j表示節(jié)點sj的移動速度。節(jié)點sj將包含(xj,yj)和?j信息的DIO 消息向候選父節(jié)點廣播,候選父節(jié)點接收后,就計算離節(jié)點sj的相對距離:
由于節(jié)點移動,在經(jīng)時間t 后,可用式(4)更新節(jié)點的位置:
令Tj,i表示節(jié)點sj與候選父節(jié)點si間鏈路的可持續(xù)時間;令R 表示節(jié)點的最大通信范圍。用R 替換式(3)中,用Tj,i替換式(4)中t,可構(gòu)建等式(5):
通常,節(jié)點的最大通信范圍是固定的,即R 已知。因此,通過求解式(5)可估算鏈路持續(xù)時間??紤]到,對鏈路持續(xù)時間進行歸一化:其中,表示期望的鏈路持續(xù)時間。
2.1.3 路由穩(wěn)定性因子
Tj,i只反映了節(jié)點sj與候選父節(jié)點si間的一跳鏈路的持續(xù)時間,并沒有考慮了si與它的候選父節(jié)點的間鏈路的穩(wěn)定性。令Ti,p表示節(jié)點si與它的偏好父節(jié)點間鏈路持續(xù)時間。若Tj,i與Ti,p越相近,則由節(jié)點si作為下一跳節(jié)點所構(gòu)建的路由越穩(wěn)定。因此,將路由穩(wěn)定性(RSE)定義為式(6):
節(jié)點sj有n=個候選父節(jié)點。令rik表示第i個候選父節(jié)點的第k 個路由指標(biāo),其中,i=1,2,…,n,k=1,2,…,m。本文考慮了3 個路由指標(biāo),則m=3。用樣本空間表示每個候選父節(jié)點的路由指標(biāo),則形成矩陣Θ:
用G(i)表示考量第i 個候選父節(jié)點是否為最佳父節(jié)點的評估值:
因此,可構(gòu)建如式(9)所示的復(fù)合目標(biāo)函數(shù)OF:
作為客觀賦值法的一種,熵值法通過獲取指標(biāo)變化的信息熵值而設(shè)定指標(biāo)的權(quán)重值[12],其賦值原則:給信息熵小的指標(biāo)賦予較大的權(quán)重,給信息熵大的指標(biāo)賦予小的權(quán)重。
算法1 給出基于熵值法估算權(quán)重系數(shù)的過程。先設(shè)定決策矩陣D,用于解決n 個方案、m 個屬性的多屬性決策問題。將矩陣Θ 賦予D。這作為算法1 的輸入,輸出為各指標(biāo)的權(quán)重系數(shù)。
?
將算法1 輸出的指標(biāo)權(quán)重值代入式(9),生成最終的:
最終根據(jù)式(10),選擇具有最小OFcom的候選父節(jié)點作為最佳父節(jié)點。圖2 給出產(chǎn)生最佳父節(jié)點的主要過程。
圖2 產(chǎn)生最佳父節(jié)點的主要過程Fig.2 Main process of generating the optimal parent node
采用硬件開發(fā)平臺Zolertia Z1 和仿真軟件Cooja 建立仿真平臺。引用CC2420 射頻模式建立無線通信[13]。Z1 的主板為MSP430 微處理器。在區(qū)域內(nèi)部署一個sink 和多個靜態(tài)節(jié)點和多個移動節(jié)點,其中,sink 位于區(qū)域的左頂點??紤]兩個仿真場景(Case one 和Case two),具體的仿真參數(shù)如表1 所示。
Case one 與Case two 的主要差別:靜態(tài)節(jié)點和移動節(jié)點所占的比例不同。在Case one 中:移動節(jié)點和靜態(tài)節(jié)點各占50%,總的節(jié)點數(shù)從20~40 變化;節(jié)點傳輸數(shù)據(jù)間隔(TI)服從[30 s,60 s,90 s,120 s]區(qū)間的隨機分布;在Case two 中:固定節(jié)點數(shù)為12 個,移動節(jié)點數(shù)從20~40 變化;所有節(jié)點采用相同的TI。
此外,為了更好地分析MRPL 路由性能,選擇傳統(tǒng)的RPL 路由(ORPL)和文獻[14]提出的基于移動感知的RPL 路由(MA-RPL)。MA-RPL 路由引用了ETX 和RSSI 路由指標(biāo)構(gòu)建目標(biāo)函數(shù)。
分析Case one 中的數(shù)據(jù)包傳遞率。圖3 給出了MRPL 路由、ORPL 路由和MA-RPL 路由的數(shù)據(jù)包傳遞率,其中,圖3(a)中節(jié)點數(shù)為20 個,圖3(b)中節(jié)點數(shù)為40 個??紤]了兩個移動模型:Random Walk 和Manhattan。
圖3 數(shù)據(jù)包傳遞率(case one)Fig.3 Delivery rate of data package(case one)
對比圖3(a)和圖3(b),網(wǎng)絡(luò)內(nèi)節(jié)點數(shù)的增加對數(shù)據(jù)包傳遞率的影響較小。原因在于:固定節(jié)點和移動節(jié)點的比例相同。此外,從圖3 可知,相比于Manhattan 模型,移動節(jié)點采用Random Walk 模型下的數(shù)據(jù)包傳遞率更高。
相比于ORPL 和MA-RPL 路由,MRPL 路由提高了數(shù)據(jù)包傳遞率。原因在于:MRPL 路由在構(gòu)建路由時,考慮到節(jié)點移動問題。目標(biāo)函數(shù)關(guān)聯(lián)到路由的穩(wěn)定性以及節(jié)點能效,提高了路由的穩(wěn)定性。而ORPL 和MA-RPL 路由沒有考慮到節(jié)點移動特性,所構(gòu)建的路由不穩(wěn)定,降低了數(shù)據(jù)包傳遞率。
下頁圖4 顯示ORPL 路由,MA-RPL 路由和MRPL 路由在Case two 中的數(shù)據(jù)包傳遞率。
圖4 數(shù)據(jù)包傳遞率(case two)Fig.4 Delivery rate of data package(case two)
從圖4 可知,相比于ORPL 和ML-RPL 路由,MRPL 路由提高數(shù)據(jù)包傳遞率。在所有情況中,比ORPL 和ML-RPL 路由,MRPL 路由的數(shù)據(jù)包傳遞率最低也分別提高了16%和15%,最高分別提高了約64%和58%。
MRPL 路由在構(gòu)建目標(biāo)函數(shù)時,考慮了鏈路的持續(xù)時間以及穩(wěn)定性,并避免選擇剩余能量低的候選父節(jié)點作為最佳父節(jié)點,提高了路由的穩(wěn)定性。而ORPL 路由和MA-RPL 路由考慮了期望傳輸跳數(shù)ETX,接收信號強度RSSI 和歐式距離3 個路由指標(biāo)。這些路由指標(biāo)并沒有考慮到節(jié)點的移動性,無法在節(jié)點移動環(huán)境中建立穩(wěn)定路由。
控制包開銷率是衡量路由性能的重要指標(biāo)。在構(gòu)建路由時,控制包數(shù)越多,節(jié)點獲取更多的網(wǎng)絡(luò)拓撲信息,提升路由的穩(wěn)定性,但也增加了節(jié)點能量消耗。
圖5 給出了Case one 場景下控制包開銷率。從圖可知,MRPL 路由的控制包開銷率分別比ORPL路由和MA-RPL 路由提升了約21%和30%。原因在于:MRPL 路由需要發(fā)送額外的DIO 消息,進而使移動節(jié)點能夠快速地識別周圍的靜態(tài)節(jié)點,從而構(gòu)建穩(wěn)定的路由。
圖5 控制包開銷率(case one)Fig.5 Control packet overhead rate(case one)
圖6 顯示了ORPL 路由,MA-RPL 路由和MRPL 路由在Case two 中的控制包開銷率。與Case one情況類似,在Case two 場景下,MRPL 路由的控制包開銷率仍高于ORPL 路由和MA-RPL 路由。但是,從圖3 和圖4 可知,MRPL 路由具有高的數(shù)據(jù)包傳遞率。換而言之,MRPL 路由以增加控制包開銷換取高的數(shù)據(jù)包傳遞率。
圖6 控制包開銷率(case two)Fig.6 Control packet overhead rate(case two)
針對傳統(tǒng)RPL 以及相關(guān)改進路由在移動物聯(lián)網(wǎng)環(huán)境中的數(shù)據(jù)包傳遞率低的問題,提出多路由指標(biāo)的改進路由MRPL。MRPL 路由采用多個路由指標(biāo),綜合地評估候選父節(jié)點,使所選擇的下一跳節(jié)點能夠維持更長的鏈路連通時間。性能分析表明,相比于傳統(tǒng)的RPL,MRPL 路由提升了數(shù)據(jù)包傳遞率。
在后續(xù)研究中,將考慮6G 網(wǎng)絡(luò)與RPL 的結(jié)合,進一步提升網(wǎng)絡(luò)性能,這將是后期的研究工作。