秦 峰,曾 浩,2,林開東
1.重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶400065
2.重慶郵電大學(xué) 電工理論與新技術(shù)實(shí)驗(yàn)室,重慶400065
低功耗有損網(wǎng)絡(luò)(Low-power and Lossy Networks,LLN)[1-2]被認(rèn)為是一種特殊的無線傳感器網(wǎng)絡(luò),在物聯(lián)網(wǎng)[3-4]等領(lǐng)域中具有廣泛的應(yīng)用前景。LLN 通常由大量的嵌入式設(shè)備組成,然而組成LLN 的這些嵌入式設(shè)備往往受到一定的限制,譬如能量供應(yīng)不足,存儲(chǔ)空間較小和處理能力較弱。因此,鑒于LLN 的廣泛應(yīng)用前景和其特有的性質(zhì),設(shè)計(jì)出一種適用于LLN 的路由協(xié)議顯得尤為重要。
2008 年,國(guó)際互聯(lián)網(wǎng)任務(wù)工程組制定了一種基于IPv6 的低功耗有損網(wǎng)絡(luò)路由協(xié)議(Routing Protocol for Low-power and Lossy network,RPL)[5]。RPL是一種基于距離矢量的先驗(yàn)式路由協(xié)議,由根節(jié)點(diǎn)發(fā)起并逐級(jí)完成整個(gè)面向目的地的有向無環(huán)圖(Destination Oriented Directed Acyclic Graph,DODAG)的構(gòu)建。此外,DODAG中的每個(gè)嵌入式設(shè)備均需要定期廣播DODAG 信息對(duì)象消息(DODAG Information Object,DIO),該消息主要用于維護(hù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的穩(wěn)定性,且該消息的發(fā)送周期間隔由溪流計(jì)時(shí)器[6]控制。
目前,學(xué)術(shù)界對(duì)RPL 已展開了大量研究工作。文獻(xiàn)[7]在構(gòu)建DODAG時(shí)將傳輸跳數(shù)作為路由度量,能夠在一定程度上提高數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,但忽略了數(shù)據(jù)傳輸?shù)目煽啃?。文獻(xiàn)[8]在構(gòu)建DODAG 時(shí)將期望傳輸次數(shù)作為路由度量,能夠?qū)?shù)據(jù)傳輸?shù)目煽啃杂幸欢ㄌ嵘?,卻忽略了數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。尤其是在高負(fù)載場(chǎng)景下,依據(jù)文獻(xiàn)[7]和[8]中的路由度量所構(gòu)建的DODAG均無法較好地實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡,將會(huì)對(duì)網(wǎng)絡(luò)各方面的性能造成嚴(yán)重的影響。
為了減少在構(gòu)建DODAG 時(shí)僅考慮節(jié)點(diǎn)一跳范圍內(nèi)的期望傳輸次數(shù)所產(chǎn)生的能量瓶頸節(jié)點(diǎn)的數(shù)量,文獻(xiàn)[9]在構(gòu)建DODAG 的過程中考慮了當(dāng)前節(jié)點(diǎn)至根節(jié)點(diǎn)整條傳輸路徑上的期望傳輸次數(shù),在一定程度上能夠減少能量瓶頸節(jié)點(diǎn)產(chǎn)生的數(shù)量,但效果不是很顯著。文獻(xiàn)[10]在構(gòu)建DODAG 的過程中,綜合考慮了當(dāng)前節(jié)點(diǎn)至根節(jié)點(diǎn)整條路徑上的期望傳輸次數(shù)和節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包的概率,即根據(jù)當(dāng)前節(jié)點(diǎn)至根節(jié)點(diǎn)整條路徑的數(shù)據(jù)傳輸代價(jià)進(jìn)行最優(yōu)父節(jié)點(diǎn)的選擇。此種方式雖然能夠在整體上降低數(shù)據(jù)的傳輸代價(jià),卻未考慮負(fù)載不均衡對(duì)網(wǎng)絡(luò)性能所產(chǎn)生的負(fù)面影響。文獻(xiàn)[11]在單路徑RPL協(xié)議的基礎(chǔ)上,提出了一種多路徑RPL協(xié)議。該協(xié)議為了降低網(wǎng)絡(luò)中能量瓶頸節(jié)點(diǎn)的能耗速率,節(jié)點(diǎn)在傳輸數(shù)據(jù)時(shí)根據(jù)每條路徑中能量瓶頸節(jié)點(diǎn)的期望壽命進(jìn)行數(shù)據(jù)流量的分配,并實(shí)現(xiàn)數(shù)據(jù)的分流傳輸。該協(xié)議能夠在一定程度對(duì)網(wǎng)絡(luò)整體壽命進(jìn)行延長(zhǎng),但忽略了數(shù)據(jù)傳輸?shù)目煽啃?。文獻(xiàn)[12]在構(gòu)建DODAG的過程中綜合考慮了節(jié)點(diǎn)的期望傳輸次數(shù)和節(jié)點(diǎn)剩余能量,在保證數(shù)據(jù)傳輸可靠性的前提下,能夠避免剩余能量不足的節(jié)點(diǎn)被選作為最優(yōu)父節(jié)點(diǎn)。
當(dāng)檢測(cè)到節(jié)點(diǎn)發(fā)生網(wǎng)絡(luò)擁塞時(shí),文獻(xiàn)[13-14]均通過周期性廣播的DIO 控制消息將網(wǎng)絡(luò)擁塞狀態(tài)通告給網(wǎng)絡(luò)中的其他節(jié)點(diǎn),并進(jìn)一步對(duì)當(dāng)前網(wǎng)絡(luò)擁塞進(jìn)行處理。然而,當(dāng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)相對(duì)穩(wěn)定時(shí),DIO 控制消息的發(fā)送周期間隔相對(duì)較大,故通過周期性廣播的DIO控制消息無法快速地將節(jié)點(diǎn)的網(wǎng)絡(luò)擁塞狀態(tài)通告給網(wǎng)絡(luò)中的其他節(jié)點(diǎn),從而影響當(dāng)前網(wǎng)絡(luò)擁塞的處理。文獻(xiàn)[15]針對(duì)文獻(xiàn)[13-14]中存在的問題,通過對(duì)溪流計(jì)時(shí)器的重置便可快速的將節(jié)點(diǎn)當(dāng)前的網(wǎng)絡(luò)擁塞狀態(tài)通告給網(wǎng)絡(luò)中的其他節(jié)點(diǎn)。然而,多次的將溪流計(jì)時(shí)器重置將會(huì)增加大量不必要的控制開銷,且對(duì)數(shù)據(jù)的傳輸也會(huì)產(chǎn)生一定的影響。
如圖1 所示為HSLB-RPL 協(xié)議的網(wǎng)絡(luò)拓?fù)淠P蛨D。其中,sink 節(jié)點(diǎn)也被稱之為根節(jié)點(diǎn),主要用于對(duì)下游節(jié)點(diǎn)向上游節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)流量進(jìn)行匯聚;R1~R8為中繼節(jié)點(diǎn),主要用于轉(zhuǎn)發(fā)所有葉子節(jié)點(diǎn)所產(chǎn)生的數(shù)據(jù)流量;S1~S7為葉子節(jié)點(diǎn),主要用于產(chǎn)生數(shù)據(jù)流量,并向上游節(jié)點(diǎn)傳輸所產(chǎn)生的數(shù)據(jù)流量。
圖1 HSLB-RPL協(xié)議網(wǎng)絡(luò)模型
關(guān)于HSLB-RPL協(xié)議的網(wǎng)絡(luò)模型有如下假設(shè):
(1)網(wǎng)絡(luò)中所有節(jié)點(diǎn)的物理構(gòu)造、屬性和性質(zhì)均相同,其中根節(jié)點(diǎn)除外。
(2)為了盡可能保證網(wǎng)絡(luò)的穩(wěn)定性,網(wǎng)絡(luò)中所有節(jié)點(diǎn)均工作于靜態(tài)模式下。
(3)雖然節(jié)點(diǎn)的存儲(chǔ)空間受限,但網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)均有足夠的隊(duì)列空間對(duì)路由表項(xiàng)進(jìn)行緩存。
(4)網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)既可作為消息的發(fā)布者,也可作為消息的接收者。
通過深入研究發(fā)現(xiàn),在高負(fù)載場(chǎng)景下已有RPL協(xié)議存在以下幾個(gè)問題:
(1)在DODAG 的構(gòu)建過程中,節(jié)點(diǎn)在選擇最優(yōu)父節(jié)點(diǎn)時(shí)通常僅考慮與其備選父節(jié)點(diǎn)之間的期望傳輸次數(shù),而未考慮其備選父節(jié)點(diǎn)與其備選父節(jié)點(diǎn)的上一跳節(jié)點(diǎn)之間的期望傳輸次數(shù),使得擁有期望傳輸次數(shù)較大的父節(jié)點(diǎn)的節(jié)點(diǎn)被其鄰居節(jié)點(diǎn)選作為最優(yōu)父節(jié)點(diǎn)的概率增大,從而導(dǎo)致節(jié)點(diǎn)所選擇的最優(yōu)父節(jié)點(diǎn)并非最優(yōu)。
(2)當(dāng)檢測(cè)到網(wǎng)絡(luò)中某些節(jié)點(diǎn)的負(fù)載較重時(shí),并未對(duì)此類節(jié)點(diǎn)的DIO 控制消息的廣播周期間隔進(jìn)行一定調(diào)整,從而導(dǎo)致此類節(jié)點(diǎn)的負(fù)載極有可能持續(xù)加重,且加快了此類節(jié)點(diǎn)的能耗速率,并對(duì)數(shù)據(jù)的傳輸造成了一定的影響。
(3)在數(shù)據(jù)傳輸過程中,當(dāng)檢測(cè)到網(wǎng)絡(luò)中節(jié)點(diǎn)出現(xiàn)網(wǎng)絡(luò)擁塞時(shí),利用周期性廣播的DIO控制消息無法及時(shí)的將當(dāng)前網(wǎng)絡(luò)擁塞節(jié)點(diǎn)的網(wǎng)絡(luò)擁塞狀態(tài)通告給其鄰居節(jié)點(diǎn)。此外,重置溪流計(jì)時(shí)器雖然能夠盡快的將當(dāng)前網(wǎng)絡(luò)擁塞節(jié)點(diǎn)的網(wǎng)絡(luò)擁塞狀態(tài)通告給其鄰居節(jié)點(diǎn),但會(huì)增加大量不必要的控制開銷,且對(duì)數(shù)據(jù)的傳輸也會(huì)造成一定的影響。
為了解決上述問題,本文提出了一種高負(fù)載場(chǎng)景下基于負(fù)載均衡的LLN 路由協(xié)議(HSLB-RPL)。該協(xié)議包含3 種改進(jìn)策略:(1)最優(yōu)父節(jié)點(diǎn)選擇策略。為了避免擁有期望傳輸次數(shù)較大的父節(jié)點(diǎn)的備選父節(jié)點(diǎn)被其鄰居節(jié)點(diǎn)選作為最優(yōu)父節(jié)點(diǎn),綜合考慮當(dāng)前備選節(jié)點(diǎn)和其父節(jié)點(diǎn)的期望傳輸次數(shù)。(2)溪流計(jì)時(shí)器調(diào)整策略。當(dāng)檢測(cè)到節(jié)點(diǎn)負(fù)載較重時(shí),為了降低其被鄰居節(jié)點(diǎn)選作為最優(yōu)父節(jié)點(diǎn)的概率,對(duì)其DIO控制消息的發(fā)送時(shí)間間隔進(jìn)行一定調(diào)整。(3)網(wǎng)絡(luò)擁塞狀態(tài)通告策略。當(dāng)檢測(cè)到節(jié)點(diǎn)發(fā)生網(wǎng)絡(luò)擁塞時(shí),設(shè)計(jì)一種網(wǎng)絡(luò)擁塞通告消息(NCN),及時(shí)將當(dāng)前網(wǎng)絡(luò)擁塞狀態(tài)通告給其鄰居節(jié)點(diǎn)。
在DODAG 構(gòu)建過程中,節(jié)點(diǎn)在選擇最優(yōu)父節(jié)點(diǎn)時(shí),通常會(huì)依據(jù)不同的路由度量對(duì)最優(yōu)父節(jié)點(diǎn)進(jìn)行確定,譬如傳輸跳數(shù)、節(jié)點(diǎn)剩余能量、期望傳輸次數(shù)和節(jié)點(diǎn)緩存占用率等。其中,傳輸跳數(shù)能夠大致反映數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性;期望傳輸次數(shù)能夠大致反映數(shù)據(jù)傳輸?shù)目煽啃?。為了兼顧?shù)據(jù)傳輸?shù)目煽啃院蛯?shí)時(shí)性,本文將結(jié)合傳輸跳數(shù)和期望傳輸次數(shù)兩種路由度量。
此外,最優(yōu)父節(jié)點(diǎn)選擇策略的核心之處在于,節(jié)點(diǎn)在選擇最優(yōu)父節(jié)點(diǎn)時(shí),不僅需要考慮與當(dāng)前一跳范圍內(nèi)的備選父節(jié)點(diǎn)之間的期望傳輸次數(shù),而且還需要考慮其備選父節(jié)點(diǎn)與其備選父節(jié)點(diǎn)上一跳節(jié)點(diǎn)之間的期望傳輸次數(shù),降低期望傳輸次數(shù)較高的備選父節(jié)點(diǎn)被選作為最優(yōu)父節(jié)點(diǎn)的概率,從而達(dá)到均衡網(wǎng)絡(luò)負(fù)載的目的。以節(jié)點(diǎn)k 為例,其當(dāng)前擁有兩個(gè)備選父節(jié)點(diǎn)m 和n ,那么,節(jié)點(diǎn)k 在選擇最優(yōu)父節(jié)點(diǎn)時(shí)的具體實(shí)施步驟如下:
步驟1 節(jié)點(diǎn)k 的備選父節(jié)點(diǎn)m 和n 分別計(jì)算各自的期望傳輸次數(shù)。期望傳輸次數(shù)為節(jié)點(diǎn)間無線鏈路質(zhì)量的倒數(shù),表示節(jié)點(diǎn)成功傳輸一個(gè)數(shù)據(jù)包到達(dá)其父節(jié)點(diǎn)需要傳輸?shù)钠骄螖?shù),其計(jì)算如公式(1)所示:
步驟2 節(jié)點(diǎn)m 和n 分別將各自的期望傳輸次數(shù)與各自的傳輸跳數(shù)進(jìn)行匯聚處理[15],并通過周期性廣播的DIO控制消息中的RANK字段攜帶匯聚處理后的結(jié)果,并將匯聚后的結(jié)果通告給節(jié)點(diǎn)k。期望傳輸次數(shù)與傳輸跳數(shù)匯聚處理如公式(3)所示:
步驟3 節(jié)點(diǎn)k 接收到節(jié)點(diǎn)m 和n 廣播的DIO控制消息后,分別解析出節(jié)點(diǎn)m 和n 的傳輸跳數(shù)和期望傳輸次數(shù)。期望傳輸次數(shù)與傳輸跳數(shù)解析處理如公式(3)和公式(4)所示:
步驟4 節(jié)點(diǎn)k 解析出節(jié)點(diǎn)m 和n 的期望傳輸次數(shù)后,判斷是否需要對(duì)與節(jié)點(diǎn)m 和n 之間的期望傳輸次數(shù)進(jìn)行調(diào)整,其調(diào)整如公式(5)所示:
步驟5 節(jié)點(diǎn)k 分別計(jì)算與節(jié)點(diǎn)m 和n 之間的路由度量值,并選擇路由度量值較小的節(jié)點(diǎn)作為最優(yōu)父節(jié)點(diǎn)。路由度量值的計(jì)算如公式(6)所示:
在RPL協(xié)議中,DIO控制消息的發(fā)送間隔由溪流計(jì)時(shí)器控制,可通過調(diào)整溪流計(jì)時(shí)器實(shí)現(xiàn)對(duì)DIO控制消息進(jìn)行周期性的發(fā)送。當(dāng)檢測(cè)到網(wǎng)絡(luò)出現(xiàn)不一致(網(wǎng)絡(luò)結(jié)構(gòu)發(fā)生較大變化)時(shí),溪流計(jì)時(shí)器通常會(huì)被重置,從而使得節(jié)點(diǎn)更快的適應(yīng)網(wǎng)絡(luò)的變化;而當(dāng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)較為穩(wěn)定時(shí),DIO 控制消息的發(fā)送時(shí)間間隔將會(huì)逐漸增大,從而避免不必要的控制開銷。因此,為了降低負(fù)載較重節(jié)點(diǎn)被其鄰居節(jié)點(diǎn)選作為最優(yōu)父節(jié)點(diǎn)的概率,對(duì)溪流計(jì)時(shí)器發(fā)送DIO控制消息的策略進(jìn)行一定改進(jìn),即根據(jù)節(jié)點(diǎn)的負(fù)載狀態(tài)適當(dāng)延長(zhǎng)DIO 控制消息的發(fā)送間隔。溪流計(jì)時(shí)器調(diào)整策略實(shí)施具體流程,如圖2所示。
圖2 溪流計(jì)時(shí)器調(diào)整策略
溪流計(jì)時(shí)器中用到的主要參數(shù)如下:
(1)Imin:發(fā)送DIO控制消息的最小時(shí)間間隔長(zhǎng)度。
(2)Imax:發(fā)送DIO控制消息的最大時(shí)間間隔長(zhǎng)度。
(3)k:冗余常量。
(4)I :當(dāng)前DIO控制消息發(fā)送的時(shí)間間隔長(zhǎng)度。
(5)t:時(shí)間值,介于[I/2,I]之間。
(6)c:冗余計(jì)數(shù)器。
那么,溪流計(jì)時(shí)器調(diào)整策略的具體實(shí)施步驟如下:
步驟1 網(wǎng)絡(luò)初始化時(shí),將I 設(shè)置為介于[Imin,Imax]之間的任意一個(gè)值,并開始第一個(gè)時(shí)隙。
步驟2 將冗余計(jì)數(shù)器c 的值初始化為0,t 設(shè)置為介于[I/2,I]之間的任意一個(gè)值,該時(shí)隙終止于I 處。
步驟3 Trickle定時(shí)器每接收到一個(gè)“一致性”傳輸,則將冗余計(jì)數(shù)器c 的值自增1。
步驟4 在時(shí)刻t 時(shí),Trickle定時(shí)器檢查冗余計(jì)數(shù)器c 的值是否小于冗余常量k。如果c <k,再判斷當(dāng)前節(jié)點(diǎn)的隊(duì)列利用率是否超過預(yù)設(shè)的閾值,所預(yù)設(shè)的閾值大小為0.6。如果當(dāng)前節(jié)點(diǎn)的隊(duì)列利用率超過預(yù)設(shè)的閾值,Trickle 定時(shí)器將會(huì)延長(zhǎng)DIO 控制消息的發(fā)送間隔,則將其發(fā)送間隔增大1 倍;反之,則當(dāng)前節(jié)點(diǎn)可以向其鄰居節(jié)點(diǎn)廣播DIO 控制消息。如果c >k ,則當(dāng)前節(jié)點(diǎn)被禁止向其鄰居節(jié)點(diǎn)廣播DIO控制消息。
步驟5 當(dāng)時(shí)隙I 結(jié)束后,將I 的值增大到原來的兩倍,并重復(fù)步驟2。如果加倍后的I 大于Imax,則將I 的取值設(shè)置為Imax。
步驟6 一旦接收到“不一致”傳輸時(shí),Trickle定時(shí)器立刻被重置,即將c 的值重新歸位于0,并將時(shí)間間隔I設(shè)置為Imin并重復(fù)步驟3,直至網(wǎng)絡(luò)運(yùn)行時(shí)間結(jié)束。
通常,當(dāng)檢測(cè)到網(wǎng)絡(luò)中的節(jié)點(diǎn)處于網(wǎng)絡(luò)擁塞狀態(tài)時(shí),需要網(wǎng)絡(luò)擁塞節(jié)點(diǎn)將當(dāng)前的網(wǎng)絡(luò)擁塞狀態(tài)通告給其子節(jié)點(diǎn),以便其子節(jié)點(diǎn)對(duì)當(dāng)前的網(wǎng)絡(luò)擁塞進(jìn)行一定處理,譬如對(duì)當(dāng)前數(shù)據(jù)的傳輸路徑進(jìn)行更換或是調(diào)整當(dāng)前數(shù)據(jù)包的傳輸速率。在RPL協(xié)議中,通用方式是利用周期性廣播的DIO控制消息攜帶節(jié)點(diǎn)當(dāng)前網(wǎng)絡(luò)擁塞狀態(tài),并將節(jié)點(diǎn)當(dāng)前網(wǎng)絡(luò)擁塞狀態(tài)通告給其子節(jié)點(diǎn)。然而,此種方式并不能及時(shí)的將節(jié)點(diǎn)當(dāng)前網(wǎng)絡(luò)擁塞狀態(tài)通告給其子節(jié)點(diǎn)和鄰居節(jié)點(diǎn);此外,通過重置溪流計(jì)時(shí)器雖然能夠快速地對(duì)節(jié)點(diǎn)當(dāng)前網(wǎng)絡(luò)擁塞狀態(tài)進(jìn)行通告,但是,此操作會(huì)導(dǎo)致DIO控制消息的發(fā)送間隔變小,從而增加了大量不必要的控制開銷,且會(huì)對(duì)數(shù)據(jù)的傳輸造成一定的影響。
為了盡量減少不必要的控制開銷,并且能夠及時(shí)地將節(jié)點(diǎn)當(dāng)前網(wǎng)絡(luò)擁塞狀態(tài)通告給其子節(jié)點(diǎn)和鄰居節(jié)點(diǎn),設(shè)計(jì)了一種新的網(wǎng)絡(luò)擁塞通告控制消息(NCN)。NCN控制消息的幀格式與DIO控制消息的幀格式區(qū)別不大,除了消息的類型不同之外,在NCN 控制消息中新增了網(wǎng)絡(luò)擁塞狀態(tài)(NC)字段。為了避免增加NCN 控制消息的大小,利用其保留字段中的1 bit 設(shè)置為NC 字段。當(dāng)該字段的值為1 時(shí),表明當(dāng)前節(jié)點(diǎn)處于網(wǎng)絡(luò)擁塞狀態(tài);反之,當(dāng)前節(jié)點(diǎn)處于正常狀態(tài)。因此,當(dāng)節(jié)點(diǎn)檢測(cè)其當(dāng)前處于網(wǎng)絡(luò)擁塞狀態(tài)時(shí),無需對(duì)溪流計(jì)時(shí)器進(jìn)行重置,僅需向其子節(jié)點(diǎn)組播NCN 控制消息便可及時(shí)地實(shí)現(xiàn)網(wǎng)絡(luò)擁塞狀態(tài)通告的目的。
為了驗(yàn)證HSLB-RPL協(xié)議的性能,本文采用Contiki 2.7操作系統(tǒng)中的Cooja 仿真器對(duì)文獻(xiàn)[8]、文獻(xiàn)[10]所提協(xié)議以及本文所提協(xié)議進(jìn)行模擬仿真,并對(duì)它們以下三種性能指標(biāo)分別進(jìn)行對(duì)比和分析。
(1)網(wǎng)絡(luò)平均壽命:以網(wǎng)絡(luò)中最先死亡的節(jié)點(diǎn)的生存時(shí)間作為網(wǎng)絡(luò)平均壽命,其中死亡節(jié)點(diǎn)是指當(dāng)前剩余能量?jī)H為初始能量的1%的節(jié)點(diǎn)。
(2)根節(jié)點(diǎn)平均吞吐量:根節(jié)點(diǎn)平均吞吐量表示為在單位時(shí)間內(nèi)網(wǎng)絡(luò)中成功傳輸?shù)臄?shù)據(jù)包的數(shù)量,是衡量LLN網(wǎng)絡(luò)性能的一項(xiàng)重要指標(biāo)。
(3)歸一化控制開銷:歸一化控制開銷是指在網(wǎng)絡(luò)運(yùn)行時(shí)間內(nèi),網(wǎng)絡(luò)中所有節(jié)點(diǎn)傳輸?shù)目刂葡⒈忍財(cái)?shù)與網(wǎng)絡(luò)中所有節(jié)點(diǎn)傳輸?shù)目刂葡⒈忍財(cái)?shù)和根節(jié)點(diǎn)接收的數(shù)據(jù)包比特?cái)?shù)的比值。
在200 m×200 m 的仿真區(qū)域構(gòu)建節(jié)點(diǎn)數(shù)為21 且節(jié)點(diǎn)隨機(jī)分布的LLN 網(wǎng)絡(luò),其中根節(jié)點(diǎn)的數(shù)量為1,普通節(jié)點(diǎn)的數(shù)量為20。此外,根節(jié)點(diǎn)的初始能量不受限制,而普通節(jié)點(diǎn)的初始能量將會(huì)受到一定限制。本文所提協(xié)議與其他兩種對(duì)比協(xié)議采用相同的網(wǎng)絡(luò)模型,且為了網(wǎng)絡(luò)模型的穩(wěn)定性,其中所有節(jié)點(diǎn)均工作于靜態(tài)模式。模擬仿真過程中用到的主要仿真參數(shù)如表1所示。
表1 仿真參數(shù)設(shè)置
4.2.1 網(wǎng)絡(luò)平均壽命
如圖3表明,隨著節(jié)點(diǎn)數(shù)據(jù)包傳輸速率增加,HSLBRPL 協(xié)議的網(wǎng)絡(luò)平均壽命均比文獻(xiàn)[8]和文獻(xiàn)[10]協(xié)議高,且至少提升了23.57%。分析其原因主要體現(xiàn)在以下三點(diǎn):(1)HSLB-RPL 協(xié)議中,在構(gòu)建DODAG 時(shí),綜合考慮了當(dāng)前節(jié)點(diǎn)與其備選父節(jié)點(diǎn)之間的期望傳輸次數(shù)以及其備選父節(jié)點(diǎn)與其備選父節(jié)點(diǎn)上一跳節(jié)點(diǎn)之間的期望傳輸次數(shù),能夠避免期望傳輸次數(shù)較大的備選父節(jié)點(diǎn)被選作為最優(yōu)父節(jié)點(diǎn),從而降低了節(jié)點(diǎn)因數(shù)據(jù)包重傳所耗費(fèi)的能量。(2)在數(shù)據(jù)傳輸過程中,當(dāng)檢測(cè)到節(jié)點(diǎn)負(fù)載較重時(shí),對(duì)其DIO控制消息的發(fā)送時(shí)間間隔進(jìn)行調(diào)整,能夠降低此類重負(fù)載節(jié)點(diǎn)被其鄰居節(jié)點(diǎn)選作為最優(yōu)父節(jié)點(diǎn)的概率,從而避免了此類重負(fù)載節(jié)點(diǎn)的能耗速率持續(xù)增加。(3)當(dāng)節(jié)點(diǎn)發(fā)生網(wǎng)絡(luò)擁塞時(shí),設(shè)計(jì)了一種網(wǎng)絡(luò)擁塞通告消息(NCN),能夠避免重置溪流計(jì)時(shí)器所產(chǎn)生大量不必要控制開銷,同時(shí)還能夠?qū)⒐?jié)點(diǎn)當(dāng)前網(wǎng)絡(luò)擁塞狀態(tài)及時(shí)地通告給其子節(jié)點(diǎn)和鄰居節(jié)點(diǎn),從而加快了當(dāng)前網(wǎng)絡(luò)擁塞的緩解,降低了網(wǎng)絡(luò)擁塞節(jié)點(diǎn)的能耗。
圖3 網(wǎng)絡(luò)平均壽命比較
4.2.2 根節(jié)點(diǎn)平均吞吐量
從圖4 中發(fā)現(xiàn),隨著節(jié)點(diǎn)數(shù)據(jù)包傳輸速率的增加,HSLB-RPL 協(xié)議的根節(jié)點(diǎn)平均吞吐量均比文獻(xiàn)[8]和文獻(xiàn)[10]協(xié)議高,且至少提升了14.52%。通過分析發(fā)現(xiàn)其主要原因在于:HSLB-RPL 協(xié)議中,在構(gòu)建DODAG 時(shí),綜合考慮了當(dāng)前節(jié)點(diǎn)與其備選父節(jié)點(diǎn)之間的期望傳輸次數(shù)以及其備選父節(jié)點(diǎn)與其備選父節(jié)點(diǎn)上一跳節(jié)點(diǎn)之間的期望傳輸次數(shù),能夠避免期望傳輸次數(shù)較大的備選父節(jié)點(diǎn)被選作為最優(yōu)父節(jié)點(diǎn),從而有效地降低了數(shù)據(jù)包的重傳次數(shù);當(dāng)檢測(cè)到網(wǎng)絡(luò)中節(jié)點(diǎn)發(fā)生網(wǎng)絡(luò)擁塞時(shí),設(shè)計(jì)了一種網(wǎng)絡(luò)擁塞通告消息(NCN),能夠避免重置溪流計(jì)時(shí)器產(chǎn)生大量不必要控制消息,同時(shí)能夠及時(shí)地將節(jié)點(diǎn)當(dāng)前網(wǎng)絡(luò)擁塞狀態(tài)通告給其子節(jié)點(diǎn)和鄰居節(jié)點(diǎn),從而有效地避免了重置溪流計(jì)時(shí)器對(duì)數(shù)據(jù)傳輸?shù)挠绊憽?/p>
圖4 根節(jié)點(diǎn)平均吞吐量比較
4.2.3 歸一化控制開銷
如圖5顯示,隨著節(jié)點(diǎn)數(shù)據(jù)包傳輸速率的增加,HSLBRPL 協(xié)議的歸一化控制開銷均比文獻(xiàn)[8]和文獻(xiàn)[10]協(xié)議低,且至少降低了12.87%。分析其原因主要有以下兩點(diǎn):(1)HSLB-RPL協(xié)議中,在構(gòu)建DODAG時(shí),綜合考慮了當(dāng)前節(jié)點(diǎn)與其備選父節(jié)點(diǎn)之間的期望傳輸次數(shù)以及其備選父節(jié)點(diǎn)與其備選父節(jié)點(diǎn)上一跳節(jié)點(diǎn)之間的期望傳輸次數(shù),能夠避免期望傳輸次數(shù)較大的備選父節(jié)點(diǎn)被選作為最優(yōu)父節(jié)點(diǎn),從而有效地降低了數(shù)據(jù)包的重傳次數(shù)。(2)HSLB-RPL協(xié)議中,當(dāng)檢測(cè)到網(wǎng)絡(luò)中節(jié)點(diǎn)發(fā)生網(wǎng)絡(luò)擁塞時(shí),設(shè)計(jì)了一種網(wǎng)絡(luò)擁塞通告消息(NCN),能夠避免重置溪流計(jì)時(shí)器所產(chǎn)生大量不必要控制消息,同時(shí)還能夠及時(shí)地將當(dāng)前網(wǎng)絡(luò)擁塞狀態(tài)通告給其子節(jié)點(diǎn)和鄰居節(jié)點(diǎn),從而有效地降低了當(dāng)前網(wǎng)絡(luò)擁塞狀態(tài)通告的控制開銷,并減少了數(shù)據(jù)傳輸帶寬的占用。
圖4 歸一化控制開銷比較
本文提出了一種高負(fù)載場(chǎng)景下基于負(fù)載均衡的LLN路由協(xié)議(HSLB-RPL)。HSLB-RPL協(xié)議包含三種策略:(1)最優(yōu)父節(jié)點(diǎn)選擇策略,在組網(wǎng)的過程中,聯(lián)合節(jié)點(diǎn)傳輸跳數(shù)和期望傳輸次數(shù)兩種路由度量;(2)溪流計(jì)時(shí)器調(diào)整策略,在數(shù)據(jù)傳輸過程中,對(duì)重負(fù)載節(jié)點(diǎn)的DIO 控制消息的發(fā)送周期進(jìn)行一定調(diào)整;(3)網(wǎng)絡(luò)擁塞狀態(tài)通告策略,當(dāng)檢測(cè)到網(wǎng)絡(luò)發(fā)生擁塞時(shí),通過NCN控制消息及時(shí)地將當(dāng)前網(wǎng)絡(luò)擁塞狀態(tài)進(jìn)行通告。仿真結(jié)果表明,HSLB-RPL協(xié)議能夠有效地改善網(wǎng)絡(luò)各方面的性能。在今后的工作中,基于動(dòng)態(tài)網(wǎng)絡(luò)場(chǎng)景下的負(fù)載均衡將是研究的重點(diǎn)。