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