羅少甫 陳 磊
1(重慶航天職業技術學院基礎學科部 重慶 400021)2(重慶大學大數據與軟件學院 重慶 400044)
物聯網(Internet of Things,IoT)作為實現海量傳感器、通信設備和異構通信系統互聯互通的關鍵技術,其主要功能為實時收集并共享傳感器采集到的海量狀態信息,通過先進大數據分析技術提取蘊含價值,進而服務于各類高級應用場景,如決策分析、智能服務、智慧城市等[1-3]。
考慮到部署建設物聯網的經濟技術成本,物聯網中傳感器節點的電池能量、存儲容量、計算速度和通信帶寬等一般是有限的。故其數據處理與通信能力十分有限,從而決定了在物聯網網絡中應用的所有解決方案都必須考慮到資源約束的限制[4]。然而,隨著傳感器節點部署規模、數據類型以及異構網絡規模不斷增加,人們對物聯網高效、穩定、可靠的數據傳輸要求越來越高,因此,研究設計適用于物聯網的數據路由轉發策略受到了學術界和工業界的廣泛關注。
基于內容/位置數字化尋址,以主機為中心的傳統TCP/IP轉發機制由于高度依賴數據存儲標識而存在移動性、可擴展性和安全性差等缺點,故而不適用于海量物聯網數據的傳輸轉發[5]。近年來,以數據為中心的命名數據網絡(Named Data Network,NDN)轉發策略受到了眾多學者的廣泛關注[6]。NDN技術框架下,物聯網中的數據轉發不再以IP尋址,而是通過引入Interest報文和Data報文的方式實現數據轉發,請求節點和路由節點的請求、查詢等操作均以報文的名稱而不是報文的地址進行,由于不依賴IP,NDN轉發機制也被認為是解決IP地址資源有限的有效技術手段之一。
現有基于NDN的轉發策略研究主要以有線場景和無約束限制的無線場景展開,而對于能量和網絡資源受限的無線物聯網數據轉發策略的研究尚處于起步階段。例如:文獻[7]提出了一種基于接口等級的NDN自適應路由轉發策略,對NDN中的未決請求表(Pending Interest Table,PIT)、轉發信息庫(Forwarding Information Base,FIB)以及內容存儲庫(Content Store,CS)進行了細化和擴展,但其假設通信節點的網絡資源和能量是不受限的,無法直接應用于無線物聯網場景;文獻[8]借鑒蟻群優化技術,提出了針對NDN的蟻群QoS感知轉發策略,將Interest報文和Data報文分別視為前向和后向螞蟻探測實時網絡QoS參數更新網絡接口排序,但文中同樣沒有考慮通信節點網絡資源和剩余能量約束,且蟻群優化算法存在計算量較大、求解時間長的缺陷。文獻[9]針對車輛網這一無線傳感器網絡典型應用場景,為提升數據傳輸實時性,提出了面向車載命名數據網絡的數據轉發模型,設計了路間節點算法和路口節點算法來判斷節點自身是否適合轉發Interest報文,從而有效降低了數據端到端平均延時,并均衡了整個車聯網的傳輸能力,但文中同樣沒有考慮到通信節點的能量約束。
針對現有NDN轉發策略存在的缺點,本文提出了一種考慮鄰節點空間信息和能量信息的新型NDN路由轉發策略,提升NDN網絡對各類物聯網應用場景的適應性。主要的創新點總結如下:
1) 現有NDN轉發策略往往由某一節點發出Interest報文開始觸發,然而實際應用場景中,大量監測數據存在周期性主動上報的情形。因此,本文提出的NDN轉發策略將涵蓋這兩種報文轉發模式,故而可擴展性和適用性更強。
2) 現有NDN轉發策略大多未曾考慮到計算節點的能量資源約束,故網絡能耗較高而生命周期較短。而本文提出的改進NDN轉發策略則主動對傳感器節點的剩余能量和節點空間信息考慮在內實現路由策略優化設計,從而提高了物聯網的生命周期。
如圖1所示,NDN中數據包的轉發交互通過Interest報文和Data報文實現[10]。通信節點為接收數據,首先向NDN路由器發送包含有所需數據名稱的Interest報文,每個Interest報文僅能匹配一個數據包,從而保證數據內容的唯一性。

圖1 NDN中Interest報文處理過程
對于NDN路由轉發節點而言,則需要進行如圖2所示三個方面的維護工作:
1) 未決請求表(Pending Interest Table,PIT):用于跟蹤轉發的Interest報文;
2) 轉發信息庫(Forwarding Information Base,FIB):將Interest報文請求的內容轉發給該通信節點;
3) 內容存儲庫(Content Store,CS):用于緩存Interest報文請求的內容以便后續通信節點對該數據的請求。

圖2 NDN數據結構
當NDN路由轉發節點收到Interest報文時,首先在其CS上查找,若CS中已緩存有所需的Data報文,則在同一接口上傳輸該Data報文;若CS中沒有Interest報文匹配的內容,則將Interest存儲在PIT中并創建包含有Interest報文名稱的條目,且為其預留一組接口一遍接收匹配的Data報文。隨后,Interest報文將基于FIB繼續轉發至上游鄰點進行查詢。當在上游NDN節點中查詢到匹配的Data報文時,將該數據轉發到下游PIT接口中后刪除該PIT條目,并將數據緩存在CS中。若最終不存在匹配的PIT條目,則將該Interest數據包丟棄。
目前,廣泛應用在物聯網的NDN轉發策略為基于盲洪泛路由算法的法定向擴散NDN策略(Directed Diffusion-NDN,DD-NDN)[11-12]。其轉發策略的基本步驟為:
1) 匯聚節點無目的(即盲轉發方式)地將Interest報文廣播到其覆蓋范圍內的所有傳感器節點。當節點收到Interest報文時,啟動計時器功能,若接收節點在計時器設定范圍內沒有從鄰節點偵聽到相同的Interest報文,則將該報文轉發,否則將丟棄該報文。
2) 當Interest報文到達內容的提供方時,返回的Data報文將包含一個附加字段,該字段攜帶轉發Data報文的節點的標識符ID,該ID將存儲在一個名為下一跳表(Next Hop Table,NHT)的表中。
3) 在盲轉發階段之后,當匯聚節點在發送另一個Interest報文之前,首先檢查NHT中是否存在可能的下一跳。若存在匹配項,則將Interest報文中包含該ID,且只具有該ID的節點才能轉發該Interest報文;否則DD-NDN協議將回退到盲轉發算法。
分析傳統DD-NDN算法可知,由于引入了NHT,該方案最大限度地減少了參與轉發過程的節點數量。傳統DD-NDN轉發方法忽略了周期性數據向通信節點發送的情形。此外,由于隨著物聯網中通信節點和數據量的增大,使用盲洪泛法將顯著增加網絡能耗,不利于延長其整體生命周期[13]。
考慮如下部署物聯網以監測物理設備或外部環境的應用場景:監控區域可以是單個的建筑物甚至整個智能城市,被監測的對象包含有自動化系統以控制相關參數(如溫度、濕度、能耗等)。傳感器節點通過采集控制目標的狀態生成傳感數據。
為不失一般性,設傳感器網絡中部署的接收器的數量為n,滿足n∈{1,2,…,N}。實際工程中,傳感器和接收器之間將采用兩種傳輸模式:
1) 基于推送(push)的模式(第一種傳輸模式):傳感器節點周期性地發送數據,而不從接收器接收先前的顯式Interest報文。
2) 基于拉動(pull)的模式(第二種傳輸模式):接收器可以發出Interest報文以查詢特定參數的相關數據。
此外,設傳感器節點是靜止的,其位置以及匯聚節點的位置是已知的。
物聯網大數據的典型工作模式是將數據從多個傳感器節點(即數據源)發送到接收器,而不是在任何一對節點之間進行通信。而NDN中不依賴于地址的通信模式自然適合于以數據為中心的物聯網。實際上,如前述分析,NDN通信模型自然支持pull模式的通信傳輸方式,即除非請求節點明確發送Interest報文以請求相關Data報文,否則傳感器節點不會主動發送數據。此種傳輸模式雖然能夠顯著減少不必要的數據傳輸量以延長物聯網的生命周期,但由于傳感器節點無法主動上報數據,故傳統DD-NDN轉發策略不能支持各種高級應用,如狀態信息更改上報或緊急情況預警等。然而,若使NDN網絡支持push傳輸模式,則會帶來數據量上升和網絡能耗過大的缺陷。因此,本文設計了一種考慮鄰節點空間信息和能量信息的改進NDN轉發策略,實現物聯網大數據的高效轉發,NDN網絡支持采用push傳輸模式的如下兩個應用目標:
1) 傳感器節點將數據直接傳輸到接收器節點,而無須事先發送Interest報文;
2) 傳感器節點通知其對匯聚節點的存在。
2.2.1轉發策略總體設計
本文采用具有能量意識的貪婪轉發策略將消息傳輸到內容請求方。具體內容為:匯聚節點覆蓋范圍內的鄰節點通過發送“Hello包”的方式來發送該節點的身份、位置和剩余能量信息。為最小化網絡擁塞,“Hello包”的發送僅在鄰節點發現階段進行一次。此后,每個傳感器節點將使用發現階段中基于push的Interest報文將其坐標和對應生成的數據類型發送到接收器節點。最后,本文轉發策略中的每個節點都擁有自己的鄰節點和數據源節點列表。每當一個接收節點請求特定數據內容時,本文轉發策略總是試圖尋找與該接收節點最近的、剩余能量更大的鄰居,并將該Data報文通過該節點轉發,此過程稱為數據交換階段。為保持最低功耗的同時維持每個節點的鄰節點列表動態更新,在傳感器節點傳輸Data報文時附加該節點的能量信息,而不是在鄰節點之間定期交換。
綜上,本文轉發策略包含以下4個環節:1) 數據命名;2) 鄰節點發現;3) 數據源節點發現;4) 數據交換。
2.2.2數據命名方案
作為NDN通信技術中最重要環節之一,數據命名方案的優劣性直接影響了路由轉發策略的性能。因此,數據命名方案必須準確地描述數據傳感任務,即:1) 完全表達自己所需信息的接收器;2) 用于準確描述傳感數據的傳感器。數據命名方案包含兩個環節:
1) 數據源節點的命名方案。數據源節點的命名規則如下所示:
/匯聚節點ID/位置/數據源節點坐標/數據前綴
其中:
匯聚節點ID——數據源節點返回作為對Interest報文響應的Data報文的前綴。
位置——傳感器所在的地理區域標識符,可采用GPS坐標、邏輯名稱等進行唯一性標識。例如,在建筑物中,房間可以具有特定的唯一名稱,例如room10或area-5。
數據源節點坐標——數據源節點的地理坐標標識符。
數據前綴——數據源節點從接收器接收Interest報文時響應的數據名稱。
例如,當為特定區域area-1溫度監測的傳感器想要宣告其數據內容存在于宿源(即匯聚節點)S0時,將發送如下數據包:
/S0/AREA1/X/Y/Z//area1/temperature
2) 數據交換的命名方案。圖3(a)和(b)分別為push和pull傳輸模式下數據源節點和接收器之間的數據交換過程。根據2.1節所述的數據傳輸方式,需要定義兩種不同的命名方案。

(a) 基于拉動的數據 (b) 基于推送的數據圖3 數據包在消費者(C)和生產者(P)之間的流動
push模式:此種模式下,傳感器通過將特定的Interest報文推送到匯聚節點來自動傳播收集數據。命名方案設計如下:
/位置/類型/接收器坐標/數據
其中:類型指的是傳感任務的名稱,例如溫度、濕度等。
pull模式:此種模式下,傳感器在收到Interest報文前不會主動發送收集到的數據。命名方案設計如下:
/位置/類型/數據源節點坐標
2.2.3鄰節點發現機制設計
在鄰節點發現階段,每個節點將僅用于交換位置和剩余能量信息的“Hello包”廣播到其鄰節點。該交換過程僅作為配置并存儲鄰節點信息的列表的第一步且僅進行一次,創建的鄰節點列表包含以下字段:鄰節點ID、位置和剩余能量。為此,“Hello包”對應的Interest報文需添加兩個名為Interest REnergy和Interest SenderID的新字段,從而收集鄰節點的剩余能量信息。
圖4為“Hello包”的廣播流程。節點A希望通過發送一個限制為1跳(可由特殊字段進行制定)的“Hello包”向其鄰點宣告其存在,該數據包包含其ID、位置和剩余能量。收到該數據包的每個節點將在其配置的鄰節點列表中創建包含節點A的相關信息的條目。

圖4 Hello數據包廣播
為最大限度地降低功耗,所設計的轉發策略將不定期廣播“Hello包”,如果節點收到Interest報文,且此報文發送者ID與鄰節點列表中任何條目都不對應,或傳感器將Interest報文推送到接收器且鄰節點列表為空時,該節點將啟動鄰居發現機制。
如圖5所示,節點B將Interest報文傳輸到其傳輸范圍內的所有節點(如節點A和節點G)。若節點A發現節點B為在其鄰節點列表中列出,節點A將廣播“Hello包”而接收該包的每個節點將驗證節點A的信息是否在鄰節點列表中列出。若“Hello包”發送方的ID已存在于接收節點的鄰節點表中,則該數據包將被忽略;否則該節點將繼續向鄰節點廣播“Hello包”。上述過程表示在圖6中,其中節點B接收節點A的“Hello包”,驗證得知節點A的ID并未在其鄰節點列表中列出,故而節點B發送“Hello包”以宣告其存在于節點A中。

圖5 接收來自未知鄰點的興趣

圖6 來自節點A的Hello數據包廣播和回復
2.2.4數據源節點發現機制設計
傳統基于盲洪泛算法的DD-NDN路由轉發策略顯然存在網絡能耗過高的缺點,故采用基于push的Interest報文傳輸模式使數據源節點向接收器節點宣布其存在。當鄰節點發現過程完成后,每個節點都有關于其鄰節點的信息列表,此時數據源節點會向接收器發送Interest報文,以貪婪轉發的方式通知其位置和數據內容,而接收器則將數據越節點發送的信息存儲在一個名為Producers的列表中。
圖7為數據源節點的發現過程,其中節點P想要將其數據前綴告知宿節點(S0)。節點P將數據前綴通知宿節點S0,它發送一個下一跳ID的Interest報文,下一跳節點采用類似的轉發過程最終傳輸到匯聚節點S0,在S0存儲在Producers列表中。

圖7 數據源節點發現過程
2.2.5數據交換機制設計
在預設的靜態物聯網場景中,一旦數據源節點將其信息傳輸到接收器,便觸發數據查詢過程。如圖8所示,為減少通信過程涉及到的節點數量,接收器首先選擇與之空間距離最近的數據源節點,然后通過選擇滿足特定條件的鄰節點來發送Interest報文。當傳感器節點接收到Interest報文時,它執行下一跳檢查以驗證它是否被選擇為轉發器。若節點不是預期的轉發器,則丟棄該Interest報文。反之,如果選擇傳感器節點作為轉發器,則檢查Interest報文請求的數據內容,如果收到的Interest報文是pull模式,則轉發過程繼續;如果Interest報文是push模式,則從報文中提取數據,并在繼續轉發過程之前將其添加到內容存儲庫CS中。

圖8 Interest報文處理過程
圖9為節點A向節點D發送Interest報文的過程。考慮到節點B是A的所有鄰點中與D最近的節點,為支持更高效的數據轉發并平衡通信節點之間的能耗,轉發節點的選擇應綜合考慮通信節點之間的空間距離與能耗,選擇的判據為如下目標函數取最大值:
(1)
式中:Ji為第i個候選轉發節點的目標函數值;β∈[0,1]為權重系數;Ei和Eini分別為第i個候選節點的剩余能量和節點初始剩余能量;LΣ分別為接收節點與數據源節點之間的總距離;Lio為第i個候選轉發節點與接收節點之間的距離。顯然,β接近于0時,更靠近接收節點的節點被選擇轉發Interest報文的概率更高。隨著β的增加,節點剩余能量在傳輸節點的選擇中將發揮更大的作用,從而有助于降低網絡能耗。

圖9 貪婪轉發示例
為更好地解釋所提的轉發方案,考慮如圖10所示的示例,接收節點C具有如表1所示的鄰節點列表。

圖10 Interest報文轉發過程

表1 接收節點鄰節點列表
令Eini=10 J,LΣ=25 m,β=0.7,根據式(1),FA=0.32,FB=0.412,故而選擇節點A作為轉發器,然后C廣播一個包含所選轉發節點ID的Interest報文,名稱格式為:
/room1/temperature/Producer Coordinates
當節點A收到Interest報文時,它將檢查下一跳是否與其ID相對應。若不是,Interest報文將被丟棄;否則,A將驗證數據報文類型并將其轉發到下一跳。如果C沒有聽到相同的Interest報文,節點A的ID將從C的鄰節點表中刪除,并且將重新傳輸Interest報文。
在NDNSim仿真環境下進行實驗,為驗證提出的轉發策略的可行性與優越性,將其與文獻[12]提出的DD-NDN轉發策略進行對比。同時設置兩個場景進行適應性分析,如圖11所示,場景1中N個傳感器節點分布在500 m×500 m的晶格拓撲上,而場景2中,傳感器節點通過均勻分布隨機部署,接收節點則位于拓撲的中間。仿真參數如表2所示,仿真結果以20次獨立運行結果的平均值為準。

(a) 晶格拓撲 (b) 隨機拓撲圖11 網絡拓撲

表2 模擬參數

續表2
設匯聚節點定期發送特定任務的Interest報文,間隔時間為60 s。為了評估仿真中的能耗,采用如下能耗模型[14]。
發送過程能耗:
(2)
接收過程能耗:
REi=αelek
(3)
式中:TEi,j為節點i向節點j發送一個k比特數據包所消耗的能量;αele表示節點接收或發送數據時電路單位比特耗能,取αele=50 μJ/bit;αamp為發送節點放大器所消耗能量系數,取αamp=100 pJ/(bit·m2)。
為衡量轉發策略的優劣性,選用文獻[15]中的5個性能指標進行評估:
1) 網絡能量消耗——傳感器節點的總功耗;
2) 網絡生命周期——第一個傳感器節點剩余能量為0時網絡的運行時長;
3) 丟包數——丟棄的Interest報文和Data報文的總數;
4) 跳數——接收節點和數據源節點之間必須通過的中間節點數;
5) 數據檢索延遲——接收節點發送Interest報文到數據源節點返回Data報文的時間。
3.2.1跳數、數據檢索延遲和丟包性能
圖12和圖13為晶格拓撲網絡和隨機拓撲網絡下匯聚節點數量為1和4時,節點總數量從60變化到120時平均跳數的變化情況。結果表明,本文轉發策略比DD-NDN的平均跳數至少下降了11.11%。類似地,圖14和圖15為相同仿真條件下的平均檢索延遲隨監測任務數量的變化情況,可以發現,本文轉發策略相較于DD-NDN方案縮短了20.40%以上。由于本文轉發策略在每一跳轉發節點的選擇上都選擇更靠近接收節點的鄰節點,故而在跳數和檢索延遲上具有更明顯的優勢。

圖12 晶格網絡拓撲下平均跳數

圖13 隨機網絡拓撲下平均跳數

圖14 晶格拓撲中的平均檢索延遲

圖15 隨機拓撲中的平均檢索延遲
此外,圖16和圖17為兩種轉發策略下,兩個網絡拓撲場景的丟包數量隨監測任務數量的變化情況。可以看出,當監測任務從1變化到16時,本文轉發策略的丟包數增幅較DD-NDN轉發策略慢82.14%以上。結果表明,本文方案在數據包從源到目的節點的傳輸過程具有更高的可靠性。

圖16 晶格網絡拓撲下丟包數

圖17 隨機網絡拓撲下丟包數
3.2.2網絡能耗與生命周期性能
圖18-圖21為不同網絡拓撲所提轉發策略和DD-NDN轉發策略在網絡能耗與網絡生命周期方面的性能隨著監測任務數量的變化趨勢。顯然,更多的監測任務需要傳輸更多的Interest報文和Data報文,即網絡能耗和監測任務數量呈正相關的關系。當任務量由1增加到16時,本文轉發策略的網絡能耗增幅比DD-NDN轉發策略下降了72.97%以上,而網絡生命周期則延長了24.14%以上。這說明,與DD-NDN相比,本文轉發策略在總能耗和網絡壽命方面具有更好的性能。

圖18 晶格拓撲中總能耗

圖19 晶格拓撲中的網絡生命周期

圖20 晶格拓撲中總能耗

圖21 隨機拓撲中的網絡生命周期
傳統的基于定向擴散的命名數據網絡(DD-NDN)轉發策略未考慮數據轉發過程中的網絡能耗問題,不能完全適用于能量受限的物聯網大數據傳輸。因此,本文提出了考慮鄰節點能量和空間信息的改進物聯網大數據轉發策略,其在數據檢索效率、傳輸可靠性、網
絡能耗與網絡生命周期方面具有更好的性能。未來將進一步考慮節點的移動、休眠等更為實際的場景下的數據轉發策略研究。