陳蘇海,黨向盈
(1.徐州工程學(xué)院 信電工程學(xué)院,江蘇 徐州 221000;2.中國(guó)礦業(yè)大學(xué) 信息與控制學(xué)院,江蘇 徐州 221000)
低功耗有損網(wǎng)絡(luò)(low power and lossy networks,LLN)[1-5]通過(guò)網(wǎng)關(guān)或者邊界路由器直接與互聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)交互,使得LLN擁有較好的互操作性和靈活性。因此,LLN在工業(yè)控制、智能家居和醫(yī)療保健等領(lǐng)域擁有較好的應(yīng)用前景。考慮到LLN廣泛的應(yīng)用場(chǎng)景,國(guó)際互聯(lián)網(wǎng)工程任務(wù)組提出了一種適用于LLN網(wǎng)絡(luò)的IPv6路由協(xié)議(IPv6 based routing protocol for LLN,RPL)[6,7]。
當(dāng)前,學(xué)術(shù)界已對(duì)單路徑RPL路由協(xié)議展開大量研究。文獻(xiàn)[8]僅將傳輸跳數(shù)作為選擇最優(yōu)父節(jié)點(diǎn)的路由度量,而未考慮無(wú)線鏈路質(zhì)量,可能導(dǎo)致網(wǎng)絡(luò)中鏈路質(zhì)量不佳的節(jié)點(diǎn)被選作為父節(jié)點(diǎn),從而使數(shù)據(jù)包的丟包率上升,增大節(jié)點(diǎn)的能耗。為了避免將無(wú)線鏈路不佳的節(jié)點(diǎn)選作父節(jié)點(diǎn),文獻(xiàn)[9]中將數(shù)據(jù)包的期望傳輸次數(shù)作為選擇父節(jié)點(diǎn)的判據(jù),卻忽略了節(jié)點(diǎn)的剩余能量,極有可能將剩余能量不足的節(jié)點(diǎn)選作當(dāng)前父節(jié)點(diǎn),從而加快了此類節(jié)點(diǎn)的能量消耗速率,縮短了網(wǎng)絡(luò)生存時(shí)間。為了避免將剩余能量不足的節(jié)點(diǎn)選作父節(jié)點(diǎn),文獻(xiàn)[10]中將節(jié)點(diǎn)的剩余能量作為選擇父節(jié)點(diǎn)的路由判據(jù),可能導(dǎo)致無(wú)線鏈路質(zhì)量較差而擁有充足剩余能量的節(jié)點(diǎn)被選作為父節(jié)點(diǎn),增加了其子節(jié)點(diǎn)丟包重傳的次數(shù),從而降低了網(wǎng)絡(luò)吞吐量和增加了節(jié)點(diǎn)能耗。為了避免文獻(xiàn)[9]和文獻(xiàn)[10]中存在的問(wèn)題,文獻(xiàn)[11]中綜合考慮了節(jié)點(diǎn)剩余能量和無(wú)線鏈路質(zhì)量。然而,由于文獻(xiàn)[11]未將節(jié)點(diǎn)當(dāng)前緩存占用率考慮在內(nèi),一旦遇到突發(fā)緊急情況需要傳輸大量數(shù)據(jù)時(shí),容易產(chǎn)生網(wǎng)絡(luò)擁塞,從而嚴(yán)重影響數(shù)據(jù)的傳輸。文獻(xiàn)[12]僅將節(jié)點(diǎn)的緩存占用率作為路由度量,而未考慮節(jié)點(diǎn)間的無(wú)線鏈路質(zhì)量,從而加劇了節(jié)點(diǎn)丟包重傳的能耗。
上述針對(duì)單路徑RPL路由協(xié)議的研究主要存在以下兩個(gè)方面的不足:①在網(wǎng)絡(luò)拓?fù)涑跏蓟倪^(guò)程中,路由度量的選擇過(guò)于單一,無(wú)法有效地實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡,從而不能延長(zhǎng)網(wǎng)絡(luò)壽命;②在選擇最優(yōu)父節(jié)點(diǎn)的過(guò)程中,僅僅考慮一跳范圍內(nèi)的數(shù)據(jù)傳輸代價(jià)而未考慮整條路徑上的數(shù)據(jù)傳輸代價(jià)影響了最優(yōu)父節(jié)點(diǎn)的選擇,導(dǎo)致無(wú)法有效地提升網(wǎng)絡(luò)各方面的性能。
為了盡可能地解決上述所存在的問(wèn)題,本文提出了一種基于負(fù)載均衡的單路徑LLN路由協(xié)議(load balance-based single path routing protocol for LLN,LB-RPL),并對(duì)該協(xié)議的具體操作過(guò)程進(jìn)行了詳實(shí)的分析以及對(duì)該協(xié)議的網(wǎng)絡(luò)性能進(jìn)行了模擬仿真對(duì)比和驗(yàn)證。
在創(chuàng)建面向目的地有向無(wú)循環(huán)圖(destination oriented directed acyclic graph,DODAG)的過(guò)程中,RPL路由協(xié)議制定了3種常用的控制消息:DODAG信息對(duì)象消息(DODAG information object,DIO)、面向目的地有向無(wú)循環(huán)圖請(qǐng)求消息(DODAG information solicitation,DIS)以及面向目的地有向無(wú)循環(huán)圖目的地通告消息(destination advertisement object,DAO)。DIO消息的主要功能是為了創(chuàng)建上行路由和維護(hù)網(wǎng)絡(luò)拓?fù)涞倪B通性,由sink節(jié)點(diǎn)發(fā)起;在DODAG構(gòu)建過(guò)程中,DAO消息主要用于回應(yīng)DIO消息,從而完成下行路由的構(gòu)建;DIS消息主要用于路由請(qǐng)求,鏈路故障節(jié)點(diǎn)或是新節(jié)點(diǎn)均可通過(guò)廣播DIS消息可以主動(dòng)請(qǐng)求加入到DODAG中。DODAG構(gòu)建流程如圖1所示。
圖1 DODAG構(gòu)建流程
DODAG的構(gòu)建具體步驟如下:①sink節(jié)點(diǎn)向其鄰居節(jié)點(diǎn)周期性的廣播DIO消息;②sink節(jié)點(diǎn)的鄰居節(jié)點(diǎn)A成功接收到sink節(jié)點(diǎn)廣播的DIO消息之后,將sink節(jié)點(diǎn)作為父節(jié)點(diǎn),并回復(fù)包含自身路由前綴信息的DAO消息;③節(jié)點(diǎn)A重復(fù)sink節(jié)點(diǎn)的操作過(guò)程,節(jié)點(diǎn)B重復(fù)節(jié)點(diǎn)A的操作過(guò)程;④由于節(jié)點(diǎn)C在一段時(shí)間內(nèi)未接收到其鄰居節(jié)點(diǎn)廣播的DIO消息,于是主動(dòng)廣播DIS消息;⑤節(jié)點(diǎn)B接收到節(jié)點(diǎn)C廣播的DIS消息后,向節(jié)點(diǎn)C單播一個(gè)DIO消息;⑥節(jié)點(diǎn)C接收到DIO消息后,向節(jié)點(diǎn)B回復(fù)一個(gè)DAO消息;⑦節(jié)點(diǎn)A和節(jié)點(diǎn)B轉(zhuǎn)發(fā)該DAO消息直至根節(jié)點(diǎn),至此DODAG構(gòu)建完成。
針對(duì)LLN中現(xiàn)有單路徑路由協(xié)議在網(wǎng)絡(luò)拓?fù)錁?gòu)建過(guò)程中考慮的路由度量過(guò)于單一,以及在選擇最優(yōu)父節(jié)點(diǎn)時(shí)僅依據(jù)一跳范圍內(nèi)的數(shù)據(jù)傳輸代價(jià)而無(wú)法有效地均衡節(jié)點(diǎn)能耗和延長(zhǎng)網(wǎng)絡(luò)壽命等問(wèn)題,LB-RPL路由協(xié)議中主要提出了以下3種優(yōu)化策略:①在備選父節(jié)點(diǎn)的選擇過(guò)程中,對(duì)選擇備選父節(jié)點(diǎn)的條件進(jìn)行限制,從而選出合適的最優(yōu)父節(jié)點(diǎn);②在路由度量值的計(jì)算過(guò)程中,綜合考慮多種路由度量,避免單一路由度量對(duì)網(wǎng)絡(luò)性能所帶來(lái)的影響;③在選擇最優(yōu)父節(jié)點(diǎn)的過(guò)程中,考慮整條路徑上的數(shù)據(jù)傳輸代價(jià),最終選擇數(shù)據(jù)傳輸代價(jià)相對(duì)較小的備選父節(jié)點(diǎn)作為最優(yōu)父節(jié)點(diǎn)。
在DODAG的構(gòu)建過(guò)程中,為了降低單一路由度量對(duì)最優(yōu)父節(jié)點(diǎn)的選擇所產(chǎn)生的影響,在選擇備選父節(jié)點(diǎn)時(shí)需滿足以下3個(gè)限制條件:第一,節(jié)點(diǎn)與其備選父節(jié)點(diǎn)之間的無(wú)線鏈路質(zhì)量應(yīng)高于預(yù)設(shè)的鏈路質(zhì)量閾值,從而避免選擇無(wú)線鏈路質(zhì)量較差的節(jié)點(diǎn)作為父節(jié)點(diǎn)。在本文中,無(wú)線鏈路質(zhì)量低于0.7的節(jié)點(diǎn)將不能作為備選父節(jié)點(diǎn);第二,為了使節(jié)點(diǎn)的能耗均衡,剩余能量較低的節(jié)點(diǎn)(低于能量閾值)不能作為備選父節(jié)點(diǎn)。在本文中能量閾值為節(jié)點(diǎn)初始能量的20%;第三,備選父節(jié)點(diǎn)的緩存占用率應(yīng)低于預(yù)設(shè)的網(wǎng)絡(luò)擁塞閾值,從而避免選擇高負(fù)載的節(jié)點(diǎn)作為父節(jié)點(diǎn)。在本文中網(wǎng)絡(luò)擁塞閾值設(shè)定為節(jié)點(diǎn)最大緩存的80%。
在網(wǎng)絡(luò)拓?fù)涑跏蓟^(guò)程中,網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)為了獲知彼此之間的內(nèi)存空間占用情況、剩余能量和鏈路質(zhì)量,分別將上述3種信息添加到周期性廣播的DIO消息中。因此,節(jié)點(diǎn)在選擇備選父節(jié)點(diǎn)時(shí),只需依次判斷其鄰居節(jié)點(diǎn)的上述3種信息是否滿足要求。若滿足要求,則將該鄰居節(jié)點(diǎn)作為備選父節(jié)點(diǎn);反之,則將該DIO消息丟棄。圖2所示為L(zhǎng)B-RPL路由協(xié)議選擇備選父節(jié)點(diǎn)的流程。
圖2 備選父節(jié)點(diǎn)的選擇
在網(wǎng)絡(luò)構(gòu)建過(guò)程中,當(dāng)節(jié)點(diǎn)獲知其所有備選父節(jié)點(diǎn)信息之后,計(jì)算與各個(gè)備選父節(jié)點(diǎn)之間的路由度量值。在路由度量值的計(jì)算過(guò)程中,為了有效地避免選擇單一路由度量對(duì)網(wǎng)絡(luò)性能所產(chǎn)生的不良影響,因此需要將多種路由度量進(jìn)行有效地融合。下面以網(wǎng)絡(luò)中的節(jié)點(diǎn)i為例,對(duì)多種路由度量有效融合的實(shí)際操作步驟如下:
步驟1 根據(jù)節(jié)點(diǎn)i的當(dāng)前剩余能量計(jì)算其期望壽命,從而有利于避免潛在子節(jié)點(diǎn)選擇剩余能量非最佳的備選父節(jié)點(diǎn)作為最優(yōu)父節(jié)點(diǎn)。節(jié)點(diǎn)當(dāng)前期望壽命[13]可由如下幾個(gè)過(guò)程獲?。?/p>
(1)統(tǒng)計(jì)節(jié)點(diǎn)i的數(shù)據(jù)包發(fā)送速率,如式(1)所示。其中,Tgen(i)表示節(jié)點(diǎn)i的數(shù)據(jù)包發(fā)送速率,Tj表示其子節(jié)點(diǎn)j的數(shù)據(jù)包發(fā)送速率
(1)
(2)計(jì)算節(jié)點(diǎn)i將在一段時(shí)間內(nèi)所收集的數(shù)據(jù)包成功發(fā)送至其最優(yōu)父節(jié)點(diǎn)k大致所需要發(fā)送的平均次數(shù),如式(2)所示。其中,ETX(i,k)表示節(jié)點(diǎn)i成功發(fā)送單個(gè)數(shù)據(jù)包到達(dá)其最優(yōu)父節(jié)點(diǎn)k大致所需要發(fā)送的平均次數(shù)
Ni=Ti×ETX(i,k)
(2)
(3)計(jì)算節(jié)點(diǎn)i將在一段時(shí)間內(nèi)所收集的數(shù)據(jù)包成功發(fā)送至其最優(yōu)父節(jié)點(diǎn)k大致所耗費(fèi)的時(shí)間,如式(3)所示。其中,data_rate表示節(jié)點(diǎn)i的數(shù)據(jù)包傳輸速率
(3)
(4)計(jì)算節(jié)點(diǎn)i將在一段時(shí)間內(nèi)所收集的數(shù)據(jù)包成功發(fā)送至其最優(yōu)父節(jié)點(diǎn)k的能量大致消耗速率,如式(4)所示。其中,Ptx(i)被定義為節(jié)點(diǎn)i的數(shù)據(jù)包發(fā)送功率
(4)
(5)最后,依據(jù)節(jié)點(diǎn)i的當(dāng)前剩余能量以及能量消耗速率便可計(jì)算出其期望壽命,如式(5)所示。其中,Eres(i)表示節(jié)點(diǎn)i當(dāng)前剩余能量
(5)
步驟2 計(jì)算節(jié)點(diǎn)i的緩存占用率,從而有利于避免節(jié)點(diǎn)i的下游節(jié)點(diǎn)選擇高負(fù)載的備選父節(jié)點(diǎn)作為最優(yōu)父節(jié)點(diǎn)
(6)
式中:buffer_occupancyi反映了節(jié)點(diǎn)i的緩存空間被占用的情況,buffer_size被定義為節(jié)點(diǎn)i的緩存空間大小。
步驟3 在LLN網(wǎng)絡(luò)創(chuàng)建過(guò)程中,節(jié)點(diǎn)i根據(jù)所統(tǒng)計(jì)子節(jié)點(diǎn)發(fā)回的DAO消息的個(gè)數(shù)便可獲得當(dāng)前處于連接狀態(tài)的子節(jié)點(diǎn)數(shù)量,從而有利于避免節(jié)點(diǎn)i的下游節(jié)點(diǎn)選擇子節(jié)點(diǎn)數(shù)量較多的備選父節(jié)點(diǎn)作為最優(yōu)父節(jié)點(diǎn)。
步驟4 節(jié)點(diǎn)i將其期望壽命、緩存占用率和當(dāng)前子節(jié)點(diǎn)數(shù)量相關(guān)度量信息添加到DIO消息中,并廣播攜帶上述度量信息的DIO消息。
步驟5 節(jié)點(diǎn)i的鄰居節(jié)點(diǎn)從接收到的DIO消息中提取出節(jié)點(diǎn)i的期望壽命、緩存占用率以及其當(dāng)前子節(jié)點(diǎn)數(shù)量后,根據(jù)式(7)計(jì)算與節(jié)點(diǎn)i之間的路由度量值,路由度量值的大小能夠反映出節(jié)點(diǎn)的數(shù)據(jù)傳輸代價(jià),即路由度量值越大,節(jié)點(diǎn)的傳輸代價(jià)相對(duì)越小
(7)
在DODAG的構(gòu)建過(guò)程中,在選擇最優(yōu)父節(jié)點(diǎn)時(shí)綜合考慮整條路徑的數(shù)據(jù)傳輸代價(jià)。通過(guò)計(jì)算整條傳輸路徑上的總度量值大小判斷備選父節(jié)點(diǎn)的優(yōu)先級(jí)??偠攘恐翟酱?,備選父節(jié)點(diǎn)的優(yōu)先級(jí)越高,最終選擇優(yōu)先級(jí)最高的備選父節(jié)點(diǎn)作為最優(yōu)父節(jié)點(diǎn)。最優(yōu)父節(jié)點(diǎn)選擇策略的具體操作步驟為:
步驟1 當(dāng)sink節(jié)點(diǎn)發(fā)起DODAG的構(gòu)建時(shí),其一跳范圍內(nèi)的鄰居節(jié)點(diǎn)N選擇根節(jié)點(diǎn)作為最優(yōu)父節(jié)點(diǎn),并計(jì)算出度量值,且將度量值的大小添加到周期性廣播的DIO消息中。
步驟2 節(jié)點(diǎn)M接收到其鄰居節(jié)點(diǎn)周期性廣播的DIO消息后,根據(jù)備選父節(jié)點(diǎn)選擇策略選出備選父節(jié)點(diǎn)。
步驟3 節(jié)點(diǎn)M根據(jù)DIO消息中攜帶的相關(guān)信息計(jì)算與所有備選父節(jié)點(diǎn)之間的度量值,然后根據(jù)式(8)計(jì)算每條路徑上的總度量值
(8)
式中:Metric(M→N→sink)表示節(jié)點(diǎn)M通過(guò)其備選父節(jié)點(diǎn)N到達(dá)sink節(jié)點(diǎn)的總度量值,φ表示節(jié)點(diǎn)M的網(wǎng)絡(luò)深度值。
步驟4 節(jié)點(diǎn)M根據(jù)計(jì)算所得的每條路徑上的總度量值的大小選擇最優(yōu)父節(jié)點(diǎn),即選擇總度量值最大的備選父節(jié)點(diǎn)作為最優(yōu)父節(jié)點(diǎn)。如果計(jì)算得到一個(gè)節(jié)點(diǎn)擁有兩個(gè)總度量值相同的備選父節(jié)點(diǎn),則選擇度量值方差較小的備選父節(jié)點(diǎn)作為最優(yōu)父節(jié)點(diǎn)。
步驟5 節(jié)點(diǎn)M將當(dāng)前總度量值添加到周期性廣播的DIO消息中,其下游節(jié)點(diǎn)接收到該DIO消息后重復(fù)節(jié)點(diǎn)M的處理過(guò)程,直至網(wǎng)絡(luò)構(gòu)建完成。
如圖3所示,節(jié)點(diǎn)I有兩個(gè)備選父節(jié)點(diǎn)D和E,即節(jié)點(diǎn)I到sink節(jié)點(diǎn)有兩條路徑,分別為I→D→A→sink和I→E→B→sink。而這兩條路徑的總的度量值分別為17和15,根據(jù)最優(yōu)父節(jié)點(diǎn)選擇策略,則節(jié)點(diǎn)I選擇備選節(jié)點(diǎn)D作為最優(yōu)父節(jié)點(diǎn)。
圖3 基于LB-RPL路由協(xié)議的網(wǎng)絡(luò)拓?fù)錁?gòu)建
使用OPNET14.5仿真工具進(jìn)行平臺(tái)的搭建和仿真,將本文提出的LB-RPL路由協(xié)議與RPL-OF0[8]和ETX-RPL[9]路由協(xié)議從以下4個(gè)方面進(jìn)行對(duì)比和分析,分別為數(shù)據(jù)包投遞率、網(wǎng)絡(luò)生存時(shí)間、平均端到端傳輸時(shí)延和根節(jié)點(diǎn)平均吞吐量。
在300 m×300 m的模擬仿真場(chǎng)景中創(chuàng)建網(wǎng)絡(luò)規(guī)模大小分別為10、30、50、70、90和110的LLN網(wǎng)絡(luò),且每個(gè)場(chǎng)景中的所有節(jié)點(diǎn)均隨機(jī)放置。除此之外,網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)均工作在存儲(chǔ)模式下,且初始能量相同。在網(wǎng)絡(luò)創(chuàng)建初期,所有節(jié)點(diǎn)均采用靜態(tài)模型,即位置一旦被確定將不再進(jìn)行改變。仿真中用到的其它參數(shù)見表1。
表1 主要仿真參數(shù)
(1)數(shù)據(jù)包投遞率
數(shù)據(jù)包投遞率(packet delivery ratio,PDR)被定義為從源節(jié)點(diǎn)成功傳輸?shù)礁?jié)點(diǎn)的數(shù)據(jù)包數(shù)量與源節(jié)點(diǎn)發(fā)送數(shù)據(jù)包的比值,計(jì)算公式為
(9)
式中:Pi表示成功到達(dá)根節(jié)點(diǎn)的數(shù)據(jù)包數(shù)量,Dj表示源節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包數(shù)量。
(2)網(wǎng)絡(luò)生存時(shí)間
網(wǎng)絡(luò)生存時(shí)間是指在網(wǎng)絡(luò)拓?fù)涑跏蓟缶W(wǎng)絡(luò)中出現(xiàn)第一個(gè)能量耗盡的節(jié)點(diǎn)所耗費(fèi)的時(shí)間,計(jì)算公式為
TL=Td-T0
(10)
式中:Td表示網(wǎng)絡(luò)中出現(xiàn)第一個(gè)能量耗盡節(jié)點(diǎn)的時(shí)刻,T0表示網(wǎng)絡(luò)開始運(yùn)行的時(shí)刻。
(3)平均端到端時(shí)延
平均端到端時(shí)延被定義為所有從源節(jié)點(diǎn)成功傳輸?shù)竭_(dá)根節(jié)點(diǎn)的所有數(shù)據(jù)包的端到端傳輸時(shí)延總和與數(shù)據(jù)包個(gè)數(shù)的比值,計(jì)算公式為
(11)
式中:Ti表示第i個(gè)數(shù)據(jù)包到達(dá)根節(jié)點(diǎn)的傳輸時(shí)延,Dj表示第j個(gè)源節(jié)點(diǎn)成功傳輸?shù)竭_(dá)根節(jié)點(diǎn)的數(shù)據(jù)包數(shù)量。
(4)根節(jié)點(diǎn)平均吞吐量
根節(jié)點(diǎn)平均吞吐量被定義為在一定時(shí)間內(nèi)根節(jié)點(diǎn)成功接收到的總的數(shù)據(jù)包比特?cái)?shù),計(jì)算公式為
(12)
式中:ps表示成功到達(dá)根節(jié)點(diǎn)的數(shù)據(jù)包比特?cái)?shù),T表示網(wǎng)絡(luò)運(yùn)行的時(shí)間。
3.3.1 數(shù)據(jù)包投遞率
由圖4可知,3種路由協(xié)議的PDR均隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大呈下降趨勢(shì)。但是,LB-RPL路由協(xié)議的PDR明顯高于RPL-OF0和ETX-RPL路由協(xié)議,分析其主要原因有以下兩點(diǎn):①在DODAG構(gòu)建的過(guò)程中,LB-RPL路由協(xié)議在計(jì)算度量值的過(guò)程中綜合考慮了多種路由判據(jù),譬如鏈路質(zhì)量、節(jié)點(diǎn)緩存占用率和中繼節(jié)點(diǎn)當(dāng)前子節(jié)點(diǎn)數(shù)量,能夠最大化地實(shí)現(xiàn)負(fù)載均衡,從而有效地降低了節(jié)點(diǎn)因高負(fù)載而導(dǎo)致的丟包數(shù)量;②LB-RPL路由協(xié)議在選擇最優(yōu)父節(jié)點(diǎn)的過(guò)程中依據(jù)整條路徑的數(shù)據(jù)傳輸代價(jià),能夠有效地降低數(shù)據(jù)包從源節(jié)點(diǎn)到達(dá)sink節(jié)點(diǎn)整條路徑上的丟包概率。
圖4 數(shù)據(jù)包投遞率
3.3.2 網(wǎng)絡(luò)生存時(shí)間
從圖5中可以發(fā)現(xiàn),隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,RPL-OF0、ETX-RPL和LB-RPL路由協(xié)議的網(wǎng)絡(luò)生存時(shí)間均逐漸降低,但LB-RPL路由協(xié)議的網(wǎng)絡(luò)生存時(shí)間明顯高于RPL-OF0和ETX-RPL路由協(xié)議。分析其主要原因有以下3點(diǎn):①在選擇備選父節(jié)點(diǎn)的過(guò)程中,LB-RPL路由協(xié)議將節(jié)點(diǎn)當(dāng)前剩余能量和節(jié)點(diǎn)當(dāng)前緩存占用率進(jìn)行了有效地融合,其中考慮節(jié)點(diǎn)當(dāng)前剩余能量能夠避免將剩余能量不足的節(jié)點(diǎn)選作為備選父節(jié)點(diǎn),而考慮節(jié)點(diǎn)的緩存占用率,能夠延長(zhǎng)高負(fù)載節(jié)點(diǎn)的能耗;②LB-RPL路由協(xié)議在計(jì)算度量值的過(guò)程中綜合考慮多種路由判據(jù)能夠有效地提高數(shù)據(jù)包的投遞率,從而降低了數(shù)據(jù)包因丟包而重傳的能耗;③LB-RPL路由協(xié)議依據(jù)整條路徑的數(shù)據(jù)傳輸代價(jià)進(jìn)行最優(yōu)父節(jié)點(diǎn)的選擇,能夠有效地降低整條路徑上的節(jié)點(diǎn)能耗。
圖5 網(wǎng)絡(luò)生存時(shí)間
3.3.3 平均端到端時(shí)延
圖6表明,LB-RPL路由協(xié)議的平均端到端時(shí)延在隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大的過(guò)程中均低于RPL-OF0和ETX-RPL路由協(xié)議。分析其主要原因有以下3點(diǎn):①在網(wǎng)絡(luò)拓?fù)涞慕M建過(guò)程中,LB-RPL路由協(xié)議將節(jié)點(diǎn)當(dāng)前緩存占用率有效地考慮到其中,能夠有效地降低重負(fù)載節(jié)點(diǎn)出現(xiàn)的概率,從而縮短了排隊(duì)時(shí)延;②LB-RPL路由協(xié)議通過(guò)結(jié)合多種路由判據(jù)能夠最大化地實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡,提高了數(shù)據(jù)包的投遞率,從而降低了節(jié)點(diǎn)因丟包重傳而耗費(fèi)的時(shí)間;③在選擇最優(yōu)父節(jié)點(diǎn)的過(guò)程中,LB-RPL路由協(xié)議依據(jù)整條路徑的數(shù)據(jù)傳輸代價(jià)能夠有效地降低數(shù)據(jù)整體端到端傳輸時(shí)延。
圖6 平均端到端時(shí)延
3.3.4 根節(jié)點(diǎn)平均吞吐量
由圖7可知,根節(jié)點(diǎn)的平均吞吐量隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大均逐漸增大,其中LB-RPL路由協(xié)議的根節(jié)點(diǎn)平均吞吐量明顯高于RPL-OF0和ETX-RPL路由協(xié)議。分析其主要原因在于LB-RPL路由協(xié)議在DODAG的構(gòu)建過(guò)程中將多種路由判據(jù)有效結(jié)合能夠最大化地均衡網(wǎng)絡(luò)負(fù)載,降低了數(shù)據(jù)包的丟包率;其次,在計(jì)算路由度量值的過(guò)程中,LB-RPL路由協(xié)議將節(jié)點(diǎn)當(dāng)前緩存占用率考慮其中,從而對(duì)數(shù)據(jù)包的排隊(duì)時(shí)延有縮減趨勢(shì),以及降低了數(shù)據(jù)包因緩存而導(dǎo)致丟包重傳的次數(shù),故其根節(jié)點(diǎn)平均吞吐量相比較于RPL-OF0和ETX-RPL路由協(xié)議有所提高。
圖7 根節(jié)點(diǎn)平均吞吐量
本文針對(duì)LLN中現(xiàn)有單路徑RPL路由協(xié)議在DODAG構(gòu)建過(guò)程中,僅考慮一跳范圍之間的數(shù)據(jù)傳輸代價(jià)而未考慮整條路徑上的傳輸代價(jià),導(dǎo)致不能有效地均衡節(jié)點(diǎn)能耗以及延長(zhǎng)網(wǎng)絡(luò)壽命等問(wèn)題,提出一種基于負(fù)載均衡的單路徑LLN路由協(xié)議(LB-RPL)。該協(xié)議從3個(gè)方面進(jìn)行了改進(jìn):首先,在選擇備選父節(jié)點(diǎn)的過(guò)程中對(duì)無(wú)線鏈路質(zhì)量、節(jié)點(diǎn)剩余能量和緩存占用率進(jìn)行限制;其次,在度量值的計(jì)算過(guò)程中將多種路由判據(jù)有效地結(jié)合,旨在避免單一路由判據(jù)對(duì)網(wǎng)絡(luò)性能產(chǎn)生的影響;最后,依據(jù)整條路徑上的數(shù)據(jù)傳輸代價(jià)進(jìn)行最優(yōu)父節(jié)點(diǎn)的選擇。仿真結(jié)果表明,LB-RPL路由協(xié)議在均衡節(jié)點(diǎn)能耗方面有一定的改善,且能夠有效地延長(zhǎng)網(wǎng)絡(luò)生存時(shí)間以及相應(yīng)地提高數(shù)據(jù)傳輸?shù)目煽啃浴T谖磥?lái)的工作中,我們將研究LLN中基于負(fù)載均衡的多路徑RPL路由協(xié)議。