汪迅寶,劉 超 ,張 程,陳付龍 ,3
(1.安徽國際商務職業學院信息服務系,安徽合肥230000;2.網絡與信息安全安徽省重點實驗室,安徽蕪湖241002;3.安徽師范大學計算機科學與技術系,安徽蕪湖241002)
“物聯網”(Internet of things,IoT)作為一種“物物相連的互聯網”[1],其網絡節點不再是單純的網絡設備,而是通過網絡擴展到的任何物品。異構網絡之間的互聯互通是物聯網首要解決的問題。在IoT環境中,不僅要求傳感器節點能夠將采集數據通過互聯網發送至服務器,還要求互聯網上服務器能夠準確定位每一個傳感器節點并向其傳輸控制指令,同時不應受到傳感器節點網絡環境變化的影響。傳統的IoT中協議轉換網關[2]僅考慮協議數據間的轉換,當物聯子網中的節點網絡環境發生變化時,難以有效地實現數據通路。
IPv6作為下一代互聯網核心技術,擁有龐大的地址空間,可滿足部署大規模、高密度的傳感器網絡設備的需求,其在IoT中的應用成為必然[2]。2007年國際互聯網工程任務組(The Internet Engineering Task Force,IETF)成立6LoWPAN工作組,專門研究適配層、路由、報頭壓縮、分片、IPv6網絡接入和網絡管理等技術[3]。歐盟第七框架計劃也設立了IoT6[4],旨在探索用IPv6及相關標準(6LoWPAN等)解決物聯網面臨問題的途徑。國內肖融等[5]提出一種IPv6輕量級樹型層次轉化模型(TFAD),進而給出IPv6層次結構地址壓縮機制(IACH),利用層次結構中父子節點的IPv6地址繼承關系,以保證IPv6數據包在轉發過程中使用最為精簡的地址形式。胡光武等[6]設計了基于IPv6的物聯網末梢網絡分布式源地址驗證方案,以微小的代理實現了物聯網節點IP地址的分配,同時保證物聯子網節點之間、以及物聯子網節點與互聯網節點之間通信時雙方IP地址的真實可靠性。然而在模型驗證與實驗驗證方面,尚需要針對具體應用進行測試。
本文引入通信輔助網關,提出一種基于IPv6的IoT四層體系結構,即感知執行層、通信輔助層、網絡傳輸層和應用服務層,并對感知執行層與通信輔助層工作機理及協議報文格式進行重點設計,利用Ptolemy II建模環境對新建IoT通信體系結構進行建模、仿真與驗證。
傳統的ZigBee/WiFi互轉網關[7-10]僅考慮了兩種通信協議之間的互轉,若需要支持藍牙、3G、4G等通信方式,則需要制定更多的互轉協議,不利于IoT通信的擴展。因此,本文利用IPv6[11]作為中間協議,對上述互轉網關進行改造。
圖1為基于IPv6的物聯網體系結構。該體系結構包括了感知執行層(由具有Zigbee通信功能的感知和執行節點組成)、通信輔助層(由具有協議互轉功能的通信輔助網關組成)、網絡傳輸層(由運行IPv6協議的設備組成的骨干網絡)、應用服務層(提供高能性的計算與存儲等應用服務)組成,其功能主要在于:為具有較強移動性的感知執行節點快速組網、身份識別;將感知執行節點數據傳輸至IPv6骨干網、以及從IPv6骨干網有效接收數據。其中,通信輔助網關為一個基于IPv6的互轉網關,保證感知執行網絡快速的建立,協助服務器對感知執行節點進行有效定位并實現感知執行網絡與IPv6骨干網互連。

圖1 基于IPv6的物聯網體系結構Fig.1 Architecture of IoT based on IPv6
感知執行網絡中,通信輔助網關充當類似于ZigBee網絡中全功能集設備,網絡由通信輔助網關建立,通信輔助網關上電后,選擇一個信道,隨后啟動整個網絡。同時,為實現節點快速組網,應考慮網絡拓撲結構的選擇、節點入網過程及幀結構的優化。
節點入網由節點主動向通信輔助網關發出申請,入網請求交互過程如圖2。
1)新節點向通信輔助網關發送注冊消息;
2)通信輔助網關接收注冊消息后,向入網請求節點發送確認消息;
3)通信輔助網關向入網請求節點發送入網許可消息,并按地址的順序遞增方式為節點分配網絡地址;
4)入網請求節點向通信輔助網關返回確認消息,節點入網完成。

圖2 感知執行節點入網交互圖Fig.2 Networking interaction diagram of sensing/execution node
由于協議體系差異,IPv6網絡節點與感知執行節點無法直接進行數據傳輸。其通信障礙主要有:感知執行節點網絡地址是局域性的,無法被IPv6網絡唯一識別;感知執行網絡與IPv6網絡協議幀格式不同,且IPv6最大傳輸單元(MTU)最小值為1 280 B,而以IEEE 802.15.4為標準的感知執行網絡協議幀長度規定不超過127 B,二者之間需進行協議轉換和傳輸效率最優化設計。
圖3所示為感知執行節點識別交互過程,其通信輔助網關實現了IPv6網絡對于低功耗感知執行節點的識別。

圖3 感知執行節點識別交互圖Fig.3 Identification interaction diagram of sensing/execution node
感知執行節點識別主要實現過程如下。
1)通信輔助網關在建立感知執行網絡的同時,通過執行IPv6無狀態地址自動配置協議,生成EUI-64標識符,并結合IPv6路由器宣告的地址前綴,獲取IPv6全球單播地址。
2)當感知執行網絡有新節點請求入網時,通信輔助網關在接收節點注冊消息的同時,獲取注冊消息中節點的MAC地址字段內容,并向IPv6網絡中服務器發送綁定消息報文,進行通信輔助網關IPv6地址與節點MAC地址的綁定。
3)服務器接收綁定消息報文后,獲取源地址字段內容(即通信輔助網關IPv6地址)和載荷字段數據(即感知執行節點MAC地址),并查找“通信輔助網關IPv6地址-節點MAC地址”映射表,若節點MAC地址字段存在相同數據,則進行對應的通信輔助網關IPv6地址更新,否則新增一條記錄。映射表設計如表1。

表1 “通信輔助網關IPv6地址-節點MAC地址”映射表Tab.1 Mapping of“communication auxiliary gateway IPv6 address-node MAC address”
4)通信輔助網關向入網請求節點發送入網許可消息,分配網絡地址,在收到入網請求節點確認消息后,通信輔助網關在自身的“節點MAC地址-節點網絡地址”映射表中記錄入網請求節點MAC地址與所分配的網絡地址信息,映射表設計如表2。
在感知執行網絡中,感知執行節點采集的信息數據封裝為數據消息傳送至通信輔助網關。通信輔助網關與IPv6網絡的數據傳輸采用IPv6消息報文形式,并封裝為依據IEEE 802.11標準規定的WiFi數據幀格式(或依據IEEE 802.3標準規定的Ethernet數據幀格式),隨后傳送至IPv6網關。
由于IPv6網絡與感知執行網絡協議體系不同,其傳輸幀格式、幀大小限制等存在差異,需進一步進行協議轉換和適配。通信輔助網關協議轉換模型如圖4,其中緩存區用于存放“節點MAC地址-節點網絡地址”映射表及其他所需的臨時數據。感知執行網絡接口、WiFi接口、Ethernet接口分別用于對感知執行網絡中各類消息、WiFi幀、Ethernet幀的收發。模塊A和B分別對異元網絡環境下不同結構數據包逐層進行解包或封裝操作。
依據通信輔助網關建立的數據通路模型如5。在感知執行節點完成入網及綁定操作前提條件下,實現數據雙向傳輸。

表2 “節點MAC地址-節點網絡地址”映射表Tab.2 Mapping of“node MAC address-node network address”

圖4 通信輔助網關協議轉換模型Fig.4 Protocol conversion model of communication auxiliary gateway
為了驗證本文所提的基于IPv6的互轉體系結構工作機制的可行性,利用Ptolemy II建模環境[12]對其進行建模仿真,其頂層模型如圖6所示。感知執行網絡中的節點通信通過SenseChannel信道完成,每個感知執行網絡均存在一個通信輔助網關,通過WiFiChannel或Ethernet鏈路與IPv6網關完成連接,IPv6骨干網中設備以有線以太網方式連接,整個模型的運行時間、順序等屬性受到Wireless Director組件的控制。

圖5 數據通路模型Fig.5 Data path model
理想情況下,感知執行節點按泊松分布函數,以平均時間0.1 s產生數據消息報文,經過通信輔助網關及IPv6網絡傳輸至服務器,為便于觀察,提取所傳輸數據報文中的應用層數據,如圖7所示。可以看出,由感知執行節點采集的數據在經過一定的網絡延時(包括通信輔助網關延時、路由器延時)后,服務器基本能夠正常接收來自感知執行節點的傳輸數據。進一步在具有一定丟包率的信道中進行數據傳輸測試,發現存在個別數據的丟失,如感知執行節點發送的第1個、第2個數據,但大部分數據均能夠被正常接收(圖8),表明所設計的ZigBee/WiFi互轉網關可以實現傳感器網絡中數據向IPv6網絡中節點的有效傳輸。

圖6 基于Ptolemy II的IoT通信體系結構模型Fig.6 IoT architecture model based on Ptolemy II

圖7 理想情況數據上行傳輸情況Fig.7 Data uplink transmission in the ideal case
下行傳輸由服務器發起,服務器按泊松分布函數以平均時間0.1 s產生數據消息報文,理想情況下的下行傳輸結果如圖9所示,服務器可準確地對指定的感知執行節點傳輸數據。在存在丟包率的信道中,存在數據丟失情況,如圖10,且由于網絡擁塞,感知執行節點接收部分數據的延時大于正常網絡延時,如在6.2 s時刻由服務器發送的數據,直到7.1 s時刻才被感知執行節點接收。盡管存在網絡延時、擁塞、數據丟失等情況,但最終仍有較多數據能夠被感知執行節點正常接收,從而驗證了下行傳輸數據通路的可用性。經過上行傳輸數據通路與下行傳輸數據通路的驗證,可以得以下結論:在通信輔助網關的協助下,IPv6網絡節點與感知執行節點可以有效進行數據傳輸,從而實現異構網絡之間的互聯互通。

圖8 存在丟包率的信道中數據上行傳輸情況Fig.8 Data uplink transmission with a certain packet loss rate

圖10 存在丟包率的信道中數據下行傳輸情況Fig.10 Data downlink transmission with a certain packet loss rate
構建異元網絡需要解決不同協議傳輸轉換問題,選取ZigBee無線傳輸模式和WiFi無線傳輸模式進行融合,突破了異元網絡傳輸障礙。另外,IPv6在IoT中的應用是大勢所趨,基于IPv6的IoT四層體系結構有效實現了數據的雙向傳輸。
需要指出的是,基于IPv6的互轉網關通信體系結構還有很多關鍵問題需要進一步研究,當感知執行網絡中節點數量足夠龐大時,通信輔助網關和服務器中的映射表如何進行高效的存儲與檢索,下行傳輸過程中IPv6消息報文的分片與重組問題[13],面向IoT的IPv6網絡路由機制等問題將是下一步研究工作重點。