姚玉坤,朱克蘭,楊 迪,趙子軍
(1.重慶郵電大學(xué)通信與信息工程學(xué)院,重慶 400065;2.重慶郵電大學(xué)移動(dòng)通信技術(shù)重點(diǎn)實(shí)驗(yàn)室,重慶 400065)
隨著智能電網(wǎng)[1]、智能建筑[2]、智能家居[3]以及環(huán)境監(jiān)測(cè)[4]等領(lǐng)域的快速發(fā)展,無(wú)線傳感器網(wǎng)絡(luò)(WSN)[5-7]得到研究人員的廣泛關(guān)注。針對(duì)鏈路質(zhì)量不穩(wěn)定、網(wǎng)絡(luò)節(jié)點(diǎn)能量及處理能力受限的低功耗有損網(wǎng)絡(luò)(LLN),互聯(lián)網(wǎng)任務(wù)工作組(IETF)中的低功耗網(wǎng)絡(luò)工作組(ROLL)提出一種針對(duì)LLN 的路由協(xié)議(RPL)[8-9]。目前,ROLL 工作組制定了2 種路由度量,一種為當(dāng)前節(jié)點(diǎn)距離根節(jié)點(diǎn)的邏輯位置,稱為網(wǎng)絡(luò)深度[10],另一種為期望傳輸次數(shù)(ETX)[11],待入網(wǎng)節(jié)點(diǎn)依據(jù)這2 種路由度量標(biāo)準(zhǔn)選擇父節(jié)點(diǎn)。
RPL 是一種網(wǎng)絡(luò)拓?fù)涑蕵?shù)形的路由協(xié)議,網(wǎng)絡(luò)中的所有節(jié)點(diǎn)均支持多點(diǎn)到點(diǎn)通信、點(diǎn)到多點(diǎn)通信和點(diǎn)到點(diǎn)通信3 種數(shù)據(jù)通信模式。文獻(xiàn)[12]針對(duì)RPL 路由協(xié)議負(fù)載不均衡導(dǎo)致能量失衡的問(wèn)題,提出一種負(fù)載均衡的多路徑機(jī)制,待入網(wǎng)節(jié)點(diǎn)通過(guò)新定義路由度量選擇最優(yōu)多父節(jié)點(diǎn),新的路由度量綜合考慮節(jié)點(diǎn)剩余能量[13]、鏈路質(zhì)量、緩存區(qū)占用率[14]以及子節(jié)點(diǎn)數(shù)目等多種因素。同時(shí),文獻(xiàn)[12]依據(jù)期望壽命[15]、緩存區(qū)占用率、網(wǎng)絡(luò)深度以及子節(jié)點(diǎn)數(shù)目等因素定義路徑權(quán)重,依據(jù)路徑權(quán)重進(jìn)行多路徑數(shù)據(jù)傳輸。文獻(xiàn)[16]提出基于多父節(jié)點(diǎn)的RPL 路由協(xié)議,通過(guò)啟發(fā)式的貪婪算法實(shí)現(xiàn)網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的生存時(shí)間最大化,同時(shí),通過(guò)數(shù)據(jù)的多路徑轉(zhuǎn)發(fā)實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡。但是,文獻(xiàn)[12,16]在最優(yōu)父節(jié)點(diǎn)選擇時(shí)均未考慮備選父節(jié)點(diǎn)的上行鏈路節(jié)點(diǎn)網(wǎng)絡(luò)狀態(tài)。
文獻(xiàn)[17]提出一種考慮父節(jié)點(diǎn)及子節(jié)點(diǎn)網(wǎng)絡(luò)狀態(tài)的目標(biāo)函數(shù)(CAOF),并設(shè)計(jì)新的基于CAOF 的路由度量,稱為上下文感知路由度量(CARF)。CARF綜合考慮整條鏈路的隊(duì)列利用率以及剩余能量,待入網(wǎng)節(jié)點(diǎn)依據(jù)CARF 選擇最優(yōu)父節(jié)點(diǎn),從而減緩高負(fù)載網(wǎng)絡(luò)場(chǎng)景中負(fù)載不均衡問(wèn)題。但是,文獻(xiàn)[17]對(duì)于如何在控制消息中添加相關(guān)信息并未給出具體方案。文獻(xiàn)[18]提出一種提前預(yù)測(cè)的基于多種路由度量的父節(jié)點(diǎn)選擇機(jī)制,其中備選父節(jié)點(diǎn)與待入網(wǎng)節(jié)點(diǎn)均參與最優(yōu)父節(jié)點(diǎn)選擇過(guò)程。待入網(wǎng)節(jié)點(diǎn)依據(jù)多種路由度量標(biāo)準(zhǔn)選擇最優(yōu)備選父節(jié)點(diǎn),最優(yōu)備選父節(jié)點(diǎn)根據(jù)自身隊(duì)列利用情況決定是否接受待入網(wǎng)節(jié)點(diǎn)為子節(jié)點(diǎn)。但是,該機(jī)制由于提前預(yù)測(cè)導(dǎo)致網(wǎng)絡(luò)控制開(kāi)銷(xiāo)提升,且在進(jìn)行最優(yōu)父節(jié)點(diǎn)選擇時(shí)存在路由度量較為單一的問(wèn)題。文獻(xiàn)[19]通過(guò)實(shí)驗(yàn)指出在當(dāng)前Contiki RPL 開(kāi)源系統(tǒng)以下行流量為主的網(wǎng)絡(luò)場(chǎng)景中,存在ETX 路由度量更新不及時(shí)的問(wèn)題,并針對(duì)該問(wèn)題提出改進(jìn)方案。文獻(xiàn)[20]在文獻(xiàn)[19]的基礎(chǔ)上進(jìn)行優(yōu)化,在最優(yōu)父節(jié)點(diǎn)選擇時(shí)融合網(wǎng)絡(luò)深度、期望傳輸次數(shù)和隊(duì)列利用率等多種路由度量,同時(shí)通過(guò)Trickle Timer[21]定時(shí)器進(jìn)行快速重置,及時(shí)通告網(wǎng)絡(luò)擁塞情況。但是,上述方案僅考慮網(wǎng)絡(luò)負(fù)載均衡問(wèn)題,并未解決數(shù)據(jù)傳輸時(shí)存在的繞路問(wèn)題。
本文通過(guò)改進(jìn)的最優(yōu)父節(jié)點(diǎn)選擇機(jī)制以及橫向路由建立機(jī)制,對(duì)當(dāng)前RPL 路由協(xié)議進(jìn)行優(yōu)化,提出一種高效低時(shí)延的RPL 跨層優(yōu)化機(jī)制CL-ORPL。
在LLN中構(gòu)建面向目的地的有向無(wú)環(huán)圖(DODAG)時(shí),需要DODAG信息(DIO)、DAO(DestinationAdvertisement Object)以及目的地通告對(duì)象確認(rèn)消息(DAO-ACK)3 種控制消息。RPL 路由算法構(gòu)建網(wǎng)絡(luò)拓?fù)涞目刂葡⒔换ミ^(guò)程如圖1 所示。根節(jié)點(diǎn)廣播DIO 消息發(fā)起組網(wǎng),通信范圍內(nèi)的待入網(wǎng)節(jié)點(diǎn)在收到DIO 消息后,若選擇加入該DODAG 中,則將根節(jié)點(diǎn)的信息添加到父節(jié)點(diǎn)列表中,并向根節(jié)點(diǎn)單播回復(fù)攜帶自身信息的DAO消息。根節(jié)點(diǎn)對(duì)每個(gè)接收到的DAO 消息均單播回復(fù)DAO-ACK 消息,待入網(wǎng)節(jié)點(diǎn)接收到DAO-ACK 消息后完成入網(wǎng)。節(jié)點(diǎn)入網(wǎng)后將繼續(xù)廣播發(fā)送添加自身相關(guān)信息的DIO 消息,重復(fù)上述過(guò)程,直至網(wǎng)絡(luò)拓?fù)浣M建完成。
圖1 節(jié)點(diǎn)入網(wǎng)的消息交互過(guò)程Fig.1 Message interaction process of the nodes entering the network
RPL 路由協(xié)議的組網(wǎng)流程偽代碼如下:
算法1RPL 路由協(xié)議組網(wǎng)算法
當(dāng)前針對(duì)RPL 路由協(xié)議的研究存在以下問(wèn)題:
1)路由度量不完善。當(dāng)前RPL 路由協(xié)議的研究中最優(yōu)父節(jié)點(diǎn)選擇機(jī)制未考慮備選父節(jié)點(diǎn)處的網(wǎng)絡(luò)連接情況,易造成網(wǎng)絡(luò)拓?fù)洳痪狻?/p>
2)不合理的基于隊(duì)列利用率的路由度量。在當(dāng)前基于隊(duì)列利用率的路由度量中,僅考慮備選父節(jié)點(diǎn)的隊(duì)列利用率,若所選最優(yōu)備選父節(jié)點(diǎn)處的整條鏈路中部分節(jié)點(diǎn)的隊(duì)列利用率較高,此時(shí)節(jié)點(diǎn)選擇該備選父節(jié)點(diǎn)為最優(yōu)父節(jié)點(diǎn)將加重鏈路負(fù)載。
3)數(shù)據(jù)傳輸存在繞路問(wèn)題。在數(shù)據(jù)傳輸時(shí),當(dāng)節(jié)點(diǎn)發(fā)送數(shù)據(jù)包時(shí)的目的節(jié)點(diǎn)不是自身時(shí),需向最優(yōu)父節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù),直至到達(dá)公共源節(jié)點(diǎn),由公共源節(jié)點(diǎn)依據(jù)路由表發(fā)送數(shù)據(jù)。如圖2 所示,當(dāng)節(jié)點(diǎn)A向節(jié)點(diǎn)E 發(fā)送數(shù)據(jù)時(shí),完整的數(shù)據(jù)傳輸路徑應(yīng)如圖中帶箭頭的虛線所示,即A →C →R →C →E,但若此時(shí)節(jié)點(diǎn)E 在節(jié)點(diǎn)A 的通信范圍內(nèi),就不需要經(jīng)過(guò)多次轉(zhuǎn)發(fā)。當(dāng)網(wǎng)絡(luò)規(guī)模較大時(shí),RPL 路由協(xié)議中的數(shù)據(jù)傳輸繞路問(wèn)題將更加顯著。
圖2 數(shù)據(jù)轉(zhuǎn)發(fā)過(guò)程示意圖Fig.2 Schematic diagram of data forwarding process
本文提出一種高效的CL-ORPL 機(jī)制,其主要包括最優(yōu)父節(jié)點(diǎn)選擇機(jī)制和橫向路由建立機(jī)制2 個(gè)部分。
最優(yōu)父節(jié)點(diǎn)選擇機(jī)制的基本思想是綜合考慮節(jié)點(diǎn)與父節(jié)點(diǎn)間的鏈路質(zhì)量和網(wǎng)絡(luò)深度,本文以跳數(shù)指代節(jié)點(diǎn)網(wǎng)絡(luò)深度、鏈路隊(duì)列利用率以及子節(jié)點(diǎn)數(shù)目等多種路由度量,從而使得在選擇最優(yōu)父節(jié)點(diǎn)時(shí)更全面地考慮多個(gè)備選父節(jié)點(diǎn)及其鏈路的網(wǎng)絡(luò)狀態(tài),有效實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡。最優(yōu)父節(jié)點(diǎn)選擇機(jī)制的具體步驟如下:
步驟1節(jié)點(diǎn)根據(jù)當(dāng)前的負(fù)載情況計(jì)算隊(duì)列利用率,避免負(fù)載較重的節(jié)點(diǎn)被選作最優(yōu)父節(jié)點(diǎn)。節(jié)點(diǎn)隊(duì)列利用率的計(jì)算公式如下:
其中,Boccupancy(n)指節(jié)點(diǎn)n當(dāng)前隊(duì)列所占數(shù)據(jù)量,Bmax_size(n)指節(jié)點(diǎn)n的隊(duì)列空間大小。
用ETX(n,m) 表示n與m2 個(gè)節(jié)點(diǎn)間的鏈路質(zhì)量,其計(jì)算公式如下:
其中,Dtotal(n→m)為節(jié)點(diǎn)n發(fā)送的總數(shù)據(jù)量,Dsuccess(n→m)為節(jié)點(diǎn)m成功接收的數(shù)據(jù)量。
步驟2為了不增加額外的控制開(kāi)銷(xiāo),通過(guò)DIO消息中的Rank字段攜帶網(wǎng)絡(luò)深度以及鏈路隊(duì)列利用率[13],如下:
節(jié)點(diǎn)在廣播DIO 消息前需將自身的隊(duì)列利用率與最優(yōu)父節(jié)點(diǎn)隊(duì)列利用率進(jìn)行對(duì)比,若自身隊(duì)列利用率較高,則將自身隊(duì)列利用率與網(wǎng)絡(luò)深度進(jìn)行編碼;否則,將最優(yōu)父節(jié)點(diǎn)的隊(duì)列利用率與網(wǎng)絡(luò)深度進(jìn)行編碼。
步驟3節(jié)點(diǎn)依據(jù)接收到的DAO 消息計(jì)算子節(jié)點(diǎn)數(shù)目,并將該信息加入待廣播發(fā)送的DIO 消息中。
步驟4待入網(wǎng)節(jié)點(diǎn)在接收到來(lái)自備選父節(jié)點(diǎn)的DIO 消息后,得到不同備選父節(jié)點(diǎn)的網(wǎng)絡(luò)情況,即網(wǎng)絡(luò)深度、期望傳輸次數(shù)、鏈路隊(duì)列利用率以及子節(jié)點(diǎn)數(shù)目等信息。通過(guò)對(duì)改進(jìn)的Rank 字段解碼可以得到網(wǎng)絡(luò)深度以及鏈路隊(duì)列利用率的信息,解碼過(guò)程如式(4)、式(5)所示:
步驟5待入網(wǎng)節(jié)點(diǎn)依據(jù)式(6)分別計(jì)算所有備選父節(jié)點(diǎn)的綜合路由度量值,選擇具有最小路由度量值的節(jié)點(diǎn)為最優(yōu)父節(jié)點(diǎn)。
其中,hp為備選父節(jié)點(diǎn)p的網(wǎng)絡(luò)深度,ETX(n,p)為待入網(wǎng)節(jié)點(diǎn)n與備選父節(jié)點(diǎn)p之間的無(wú)線鏈路質(zhì)量,λ為備選父節(jié)點(diǎn)的已連接子節(jié)點(diǎn)數(shù)目,Q()p為鏈路隊(duì)列利用率。
橫向路由建立策略包括攜帶上一跳節(jié)點(diǎn)信息的DAO-ACK 消息機(jī)制以及跨層旁聽(tīng)DAO-ACK 消息機(jī)制2 個(gè)方面,其能夠有效縮短數(shù)據(jù)傳輸路徑,降低數(shù)據(jù)傳輸?shù)钠骄说蕉藭r(shí)延。
2.2.1 攜帶上一跳節(jié)點(diǎn)信息的DAO-ACK 消息機(jī)制
攜帶上一跳節(jié)點(diǎn)信息的DAO-ACK 消息機(jī)制的基本思路為:用DAO-ACK 消息的源地址字段攜帶上一跳節(jié)點(diǎn)地址,節(jié)點(diǎn)將DAO-ACK 消息的源地址字段內(nèi)容,從原來(lái)保持不變的根節(jié)點(diǎn)網(wǎng)絡(luò)地址調(diào)整為當(dāng)前節(jié)點(diǎn)的上一跳節(jié)點(diǎn)網(wǎng)絡(luò)地址。圖3 所示為改進(jìn)的攜帶上一跳節(jié)點(diǎn)信息的DAO-ACK 消息具體幀格式。
圖3 攜帶上一跳節(jié)點(diǎn)信息的DAO-ACK 消息Fig.3 DAO-ACK message with information of last hop node
攜帶上一跳節(jié)點(diǎn)信息的DAO-ACK 消息機(jī)制的具體操作步驟如下:
步驟1節(jié)點(diǎn)的MAC 層在收到DAO-ACK 幀后,無(wú)論自己是否為目的地,均將幀中的內(nèi)容(即DAO-ACK 消息)取出上傳至網(wǎng)絡(luò)層,并且將幀頭的源MAC 地址也取出上傳至網(wǎng)絡(luò)層。
步驟2節(jié)點(diǎn)的網(wǎng)絡(luò)層在接收到來(lái)自MAC 層傳輸?shù)脑碝AC 地址后,通過(guò)查詢所建立的“網(wǎng)絡(luò)地址-MAC 地址”映射表,獲取源MAC 地址對(duì)應(yīng)的網(wǎng)絡(luò)地址,即上一跳節(jié)點(diǎn)地址,并將該地址放入接收到的DAO-ACK 消息的“Previous Hop Address”字段,即原“Source Address”字段。
步驟3用DAO-ACK 消息的目的地址查詢路由表獲取通往目的地的下一跳節(jié)點(diǎn)網(wǎng)絡(luò)地址。接著,通過(guò)查詢“網(wǎng)絡(luò)地址-MAC 地址”映射表,獲取下一跳節(jié)點(diǎn)的MAC 地址。最后,將DAO-ACK 消息和下一跳節(jié)點(diǎn)的MAC 地址下傳至MAC 層。
2.2.2 跨層旁聽(tīng)DAO-ACK 消息機(jī)制
跨層旁聽(tīng)DAO-ACK 消息機(jī)制的基本思路為:當(dāng)網(wǎng)絡(luò)中其他節(jié)點(diǎn)的MAC 層接收到DAO-ACK 幀時(shí),均將該DAO-ACK 幀的內(nèi)容取出并上傳至網(wǎng)絡(luò)層,網(wǎng)絡(luò)層讀取相關(guān)內(nèi)容,建立其到鄰居節(jié)點(diǎn)父節(jié)點(diǎn)的兩跳路由,從而避免數(shù)據(jù)傳輸繞路問(wèn)題。
跨層旁聽(tīng)DAO-ACK 消息機(jī)制的操作步驟如下:
步驟1節(jié)點(diǎn)依據(jù)發(fā)送到網(wǎng)絡(luò)層的信息的幀頭源MAC 地址,根據(jù)“網(wǎng)絡(luò)地址-MAC 地址”映射表獲取網(wǎng)絡(luò)地址,建立鄰居節(jié)點(diǎn)路由表,即一跳路由表。
步驟2節(jié)點(diǎn)讀取幀中的“Previous Hop Address”字段值,根據(jù)“網(wǎng)絡(luò)地址-MAC 地址”映射表獲取網(wǎng)絡(luò)地址,建立通過(guò)該節(jié)點(diǎn)和可到達(dá)節(jié)點(diǎn)的路由表,即兩跳路由表。在圖3 中,由于建立了橫向路由表,CL-ORPL機(jī)制中當(dāng)節(jié)點(diǎn)A 向節(jié)點(diǎn)E 傳輸數(shù)據(jù)時(shí),數(shù)據(jù)傳輸路徑如帶箭頭實(shí)線所示,即A →E。
CL-ORPL 機(jī)制的組網(wǎng)流程如圖4 所示,具體步驟如下:
1)待入網(wǎng)節(jié)點(diǎn)依據(jù)式(6)依次計(jì)算每個(gè)備選父節(jié)點(diǎn)的綜合路由度量值。
2)待入網(wǎng)節(jié)點(diǎn)選擇綜合路由度量值最小的備選父節(jié)點(diǎn)為最優(yōu)父節(jié)點(diǎn),并向最優(yōu)父節(jié)點(diǎn)單播發(fā)送DAO 消息請(qǐng)求入網(wǎng)。最優(yōu)父節(jié)點(diǎn)接收到DAO 消息后更新路由表,并繼續(xù)向自身的最優(yōu)父節(jié)點(diǎn)轉(zhuǎn)發(fā),直至根節(jié)點(diǎn)接收DAO 消息。
3)根節(jié)點(diǎn)依據(jù)DAO 消息建立路由表并單播回復(fù)DAO-ACK 消息。
4)節(jié)點(diǎn)在轉(zhuǎn)發(fā)的過(guò)程中,不斷更新DAO-ACK消息中的“Previous Hop Address”字段并繼續(xù)依據(jù)自身的路由表發(fā)送DAO-ACK 消息。
5)若在MAC 層接收到目的地址不是自身的DAO-ACK 幀,仍將幀的內(nèi)容傳輸至網(wǎng)絡(luò)層,并依據(jù)幀頭源MAC 地址以及Previous Hop Address 建立一跳鄰居路由以及通過(guò)鄰居可到達(dá)的兩跳路由。
6)待入網(wǎng)節(jié)點(diǎn)在接收到DAO-ACK 消息后入網(wǎng)。
圖4 CL-ORPL 機(jī)制組網(wǎng)流程Fig.4 The networking procedure of CL-ORPL mechanism
CL-ORPL 機(jī)制能有效降低數(shù)據(jù)傳輸?shù)钠骄说蕉藭r(shí)延并提高數(shù)據(jù)傳輸成功率,理論分析具體如下:
1)CL-ORPL 機(jī)制能有效降低數(shù)據(jù)傳輸?shù)钠骄说蕉藭r(shí)延。
假設(shè)數(shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)亩说蕉藭r(shí)延為發(fā)送時(shí)延Tsend、傳播時(shí)延Ttra、處理時(shí)延Tpro以及排隊(duì)時(shí)延Tqueue之和,則總時(shí)延T為:
設(shè)TQU?RPL與TCL?ORPL分別為QU-RPL 與CL-ORPL的數(shù)據(jù)傳輸端到端時(shí)延,m與n分別為QU-RPL 與CL-ORPL 的數(shù)據(jù)平均發(fā)送次數(shù),則有:
當(dāng)網(wǎng)絡(luò)規(guī)模較大時(shí),由于數(shù)據(jù)傳輸時(shí)橫向路由信息的建立,解決了數(shù)據(jù)包在網(wǎng)絡(luò)中通過(guò)上下行路徑傳輸導(dǎo)致的繞路問(wèn)題,則有TQU-RPL遠(yuǎn)大于TCL-ORPL,因此,CL-ORPL 機(jī)制能有效降低數(shù)據(jù)傳輸?shù)亩说蕉藭r(shí)延。
2)CL-ORPL 機(jī)制能有效提高數(shù)據(jù)傳輸成功率。
假設(shè)CL-ORPL 機(jī)制與QU-RPL 路由協(xié)議的數(shù)據(jù)傳輸成功率均為α,則CL-ORPL 機(jī)制與QU-RPL路由協(xié)議的平均數(shù)據(jù)傳輸成功率分別為nα與mα,由于CL-ORPL 機(jī)制通過(guò)橫向路由建立機(jī)制緩解了數(shù)據(jù)傳輸?shù)睦@路問(wèn)題,因此其數(shù)據(jù)平均發(fā)送次數(shù)小于QU-RPL 路由協(xié)議,n<m,則有nα>mα,即CL-ORPL機(jī)制能有效提高數(shù)據(jù)傳輸成功率。
本文采用OPNET14.5 仿真軟件,在相同的網(wǎng)絡(luò)場(chǎng)景下對(duì)所提CL-ORPL 機(jī)制、QU-RPL 路由協(xié)議以及RPL 路由協(xié)議的網(wǎng)絡(luò)性能進(jìn)行對(duì)比與分析。實(shí)驗(yàn)中的具體參數(shù)設(shè)置如表1 所示。
表1 仿真參數(shù)設(shè)置Table 1 Simulation parameters setting
如圖5 所示,CL-ORPL 機(jī)制的數(shù)據(jù)傳輸平均端到端時(shí)延小于其他路由協(xié)議,主要原因?yàn)椋篊L-ORPL機(jī)制通過(guò)跨層旁聽(tīng)攜帶上一跳節(jié)點(diǎn)信息的DAO-ACK消息,建立橫向路由,中間節(jié)點(diǎn)轉(zhuǎn)發(fā)次數(shù)的減少能夠有效降低平均端到端時(shí)延,此外,CL-ORPL 機(jī)制在選擇最優(yōu)父節(jié)點(diǎn)時(shí)綜合考慮鏈路隊(duì)列利用率以及連接的子節(jié)點(diǎn)數(shù)目,從而有效降低了部分路由節(jié)點(diǎn)處的負(fù)載以及數(shù)據(jù)傳輸時(shí)的排隊(duì)時(shí)延。
圖5 平均端到端時(shí)延變化情況Fig.5 Variation of average end-to-end delay
如圖6 所示,CL-ORPL 機(jī)制能夠提高數(shù)據(jù)傳輸?shù)某晒β剩饕蛟谟跀?shù)據(jù)傳輸成功率與數(shù)據(jù)的轉(zhuǎn)發(fā)次數(shù)相關(guān),CL-ORPL 機(jī)制通過(guò)橫向路由的建立減少了數(shù)據(jù)轉(zhuǎn)發(fā)次數(shù),同時(shí),隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,RPL 路由協(xié)議與QU-RPL 路由協(xié)議的繞路問(wèn)題將更加嚴(yán)重,因此,CL-ORPL 機(jī)制提高數(shù)據(jù)傳輸成功率的效果更為顯著。
圖6 數(shù)據(jù)傳輸成功率變化情況Fig.6 Variation of success rate of data transmission
網(wǎng)絡(luò)生存時(shí)間指出現(xiàn)第一個(gè)節(jié)點(diǎn)的能量降至節(jié)點(diǎn)初始能量10%時(shí)的網(wǎng)絡(luò)運(yùn)行時(shí)間。從圖7 可以看出,CL-ORPL 機(jī)制能夠有效延長(zhǎng)網(wǎng)絡(luò)生存時(shí)間,主要原因在于:1)CL-ORPL 機(jī)制通過(guò)最優(yōu)父節(jié)點(diǎn)選擇機(jī)制實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡,避免了網(wǎng)絡(luò)拓?fù)洳痪鈱?dǎo)致的部分節(jié)點(diǎn)需轉(zhuǎn)發(fā)數(shù)據(jù)量較大的問(wèn)題,有效降低了部分路由節(jié)點(diǎn)的能耗;2)通過(guò)跨層旁聽(tīng)攜帶上一跳節(jié)點(diǎn)信息的DAO-ACK 消息機(jī)制大幅減少了數(shù)據(jù)轉(zhuǎn)發(fā)次數(shù),進(jìn)一步降低了路由節(jié)點(diǎn)的處理能耗。
圖7 網(wǎng)絡(luò)生存時(shí)間變化情況Fig.7 Variation of network lifetime
針對(duì)當(dāng)前RPL 路由協(xié)議中存在的網(wǎng)絡(luò)負(fù)載不均衡、數(shù)據(jù)傳輸繞路等問(wèn)題,本文提出一種改進(jìn)的CL-ORPL 機(jī)制。該機(jī)制通過(guò)綜合網(wǎng)絡(luò)深度、鏈路隊(duì)列利用率、期望傳輸次數(shù)以及子節(jié)點(diǎn)數(shù)目等多種路由度量,實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡,同時(shí)利用跨層旁聽(tīng)攜帶上一跳節(jié)點(diǎn)信息的DAO-ACK 消息建立橫向路由,以緩解數(shù)據(jù)傳輸時(shí)的繞路問(wèn)題。OPNET 仿真軟件上的實(shí)驗(yàn)結(jié)果表明,CL-ORPL 機(jī)制能夠有效降低數(shù)據(jù)傳輸?shù)钠骄说蕉藭r(shí)延,提高數(shù)據(jù)傳輸成功率并延長(zhǎng)網(wǎng)絡(luò)生存時(shí)間。下一步將對(duì)RPL 路由協(xié)議中的橫向路由進(jìn)行維護(hù)并繼續(xù)優(yōu)化數(shù)據(jù)傳輸過(guò)程。