摘 要: 物聯網開放環境下有更加面向服務的趨勢,應用層對于感知層的靈活控制需求日益凸顯,傳統的上傳下達的網關已經很難適應。著眼于一種基于SDN-OpenFlow理念的傳感網關的設計,根據開放環境及OpenFlow的不足進行適當的改進,并提出針對數據信息的封裝格式,以適應網關的流表處理機制。進而物聯網應用層可以通過控制通道對數據通道進行配置,實現網關對傳感網的開放環境的適應和對物聯網業務層的各種服務進行更好的支撐。此外設計主要還包括對網關結構分析、軟硬件實現等。最后分別從功能性和穩定性兩個方面驗證了系統的有益特性。
關鍵詞: 傳感網關;OpenFlow;數據封裝
0 引言
物聯網,也即萬物互聯技術,而物聯網的開放環境則是指網絡體系更加面向服務,包括整個網絡的資源整合,提供給用戶公共的資源公開的信息、多元和個性化的業務等[1]。本文主要著眼于傳感網所在的感知層的網關設備展開設計的論述。在物聯網開放環境中,面向服務的應用層對于底層數據平面的控制需求愈加強烈,網關的角色不再是上傳下達的郵差[2-3]。而且傳感網的應用囊括各種日常和惡劣場景:大面積信息感知、傳感節點動態組網、傳感網拓撲多變等,在這些情況下傳統的網關已經很難適應了。而目前在對網關設備的研究上主要分為如下幾個方向:(1)對網關的硬件設計;(2)對網關的工作協議和軟件的研究[4];(3)對網關設備的功能和屬性的研究;(4)具體場景型網關的研究。物聯網開放環境對網關提出了更高的要求[5]:(1)對物聯網應用層的控制開放和對感知層的感知開放;(2)對網絡的適應性;(3)豐富的業務的開展,對于控制管理的要求也更加突出。
本文將在計算機網絡領域的軟件定義網絡技術引入網關設備,參考OpenFlow協議,并將其引入網關設備與平臺之間的通信過程[6];設計一種對感知層傳感網信息的封裝和通信協議來實現對各種傳感網協議的統一適配,并給出了網關的實力實現方式。
1 網關關鍵技術
傳統的傳感網網關往往接口單一、邏輯固化、數據操作簡單、缺乏面向上層后臺部分的接口和支撐,已經很難滿足物聯網技術對底層的信息感知的需求。將在軟件定義網絡技術引入網關設備,參考OpenFlow協議,并將其引入網關設備與平臺之間的通信過程,實現平臺層直接處理原生的感知信息。設計一種對感知層傳感網信息的封裝和通信協議來實現對各種傳感網協議的統一適配。
1.1 SDN-OpenFlow的引入
將物聯網環境應用層的數據平臺類比SDN網絡控制器,將網關設備類比SDN網絡數據設備,從而參考OpenFlow來實現數據平臺和網關之間的通信。
OpenFlow協議針對的計算機網絡設備往往配有多個以太網口[7-8],為了將OpenFlow協議的理念融入傳感網網關中,就需要針對網關設備的特點對協議進行一些改良。
(1)根據地理位置和平臺的信息分割區域進行流表瘦身。傳感網節點之間的通信主要是傳感網節點與上層數據平臺的通信,不同部署區的傳感網節點之間很少會有通信需求。這個特點為數據流區域的劃分提供了可能。將整個物聯網開放環境下的感知層的傳感網進行數據流區域切割,不同區域之間的網關設備沒有直接通信的需求,流表幾乎沒有關聯,可以很好地達到流表瘦身的效果。當不同區域的網關或者傳感網節點出現通信需求時,則要借助上層的數據平臺。
(2)將流水線結構的流表改良為索引式結構。OpenFlow協議中的流水線式的流表匹配操作往往需要經歷多個流表才能查詢到。網關設備的數據流往往是固定的幾個類別,比如上行和下行數據流,因此可以按照這個特點改變原有的流水線式的流表組織,使用索引式流表組織使得每種數據流使用單獨的流表。每個索引對應的流表可以是異構的,可以將最常用的表項放在一張表,將支持擴展功能的擁有更細顆粒度的表項放在另外一張索引對應的流表中。流表組織結構如圖1所示,圖中按照數據流的類型(諸如版本號、上下行數據等)來作為區分的種類,只作為示例。
在N張表中,每張表有a個表項的情況下,級聯的流表查找效率是:平均查找深度為(N+1)/2,存儲單元為N*a個,而索引式結構流表在同等存儲損耗的情況下,查找深度為2。在嵌入式備中索引式無疑是較好的選擇。
1.2 數據適配與協議封裝
為使流表的適配高效,數據流的格式越統一越簡單越好,但網關需要適配的協議種類是繁多的。比較常用的協議有TCP/IP、ZigBee、6LoWPAN、藍牙等[9],這給流表的適配帶來了很大難度。
為了解決上述問題,使用32位/128位虛擬地址封裝數據載荷。因為很多處理器位寬都是32位,可以一次尋址讀取32位數據,128是32的整數倍,將所有的協議分為32位封裝和128位封裝兩種,32位封裝面向IPv4和ZigBee等,128位封裝面向IPv6和未壓縮6LoWPAN地址等。對于IPv4協議,不用任何處理即可;對于ZigBee地址,這里使用16位的網絡號和16位的節點地址作為標識符;對于IPv6協議和6LoWPAN協議不需要處理。版本號用以區分虛擬地址的長度是32位還是128位,還可以做流表選擇的索引功能。
2 網關系統設計
2.1 結構設計
本文提出一種針對上述若干關鍵技術的網關結構,如圖2所示,模塊之間的3條黑色虛線表示邏輯的控制通道。
設備結構上分為若干模塊,感知信息數據從各種底層物理接口進入網關設備,進行統一適配或協議封裝,交由交換/路由單元模塊進行流表的匹配操作(流表就在交換/路由模塊),或交由通信適配模塊進入互聯網或轉發給其他網關等,同樣從互聯網或者數據平臺的數據信息也是類似邏輯機制;管理員可以通過近端控制單元對設備進行現場配置、管理,也可以通過控制通道與控制管理單元通信,配置底層通信適配模塊和交換/路由模塊以改變設備的工作方式或者轉發策略協同工作等。
2.2 硬件設計
網關的硬件平臺選擇了ARM平臺,它擁有更豐富的接口和軟件支持性[10]。
核心部分主要包括處理器和存儲器,在這里存儲器分為Flash和RAM,分別用來數據存儲和運行內存。外圍接口部分主要負責為核心部分擴展接口,豐富接入屬性,主要包括電源、串口、USB和網卡等模塊。串口模塊主要是面向低速率的近距離的通信,USB(通用串行總線)模塊的主要作用就是通信組件的擴展,比如無線網卡等[11]。以太網卡模塊,一顆DM9000的百兆網絡適配芯片以實現網關穩定的網絡接入。
2.3 軟件設計
選擇了嵌入式Linux作為軟件環境[12]。下面給出網關的核心部分的軟件實現。
(1)流表的實現
流表主要存在于交換/路由模塊。在索引式結構流表中,分為索引表和每個索引對應的頁流表,在本次實現中使用版本號作為索引表,頁表中每個表項包括包頭域、計數域和操作域。表項的操作域由枚舉類型組成,每個參數對應一個函數指針,其指向的函數正進行相關的操作。每個流表設置8個表項,多個流表通過樹狀鏈表呈索引形式締結起來。而且索引式的流表可以實現異構的流表,比如最常用的數據流的操作放在某一張流表的最前面,而且包頭域十分簡潔以保證匹配速度,另外一個索引對應的流表可能較少用到,但是支持擴展的功能,比如端口號、用戶ID和優先級等,這種索引式的流表更好地權衡了效率和多樣性。
實現流表的代碼如下:
(2)數據封裝的實現
在實現過程中需要針對地址格式的不同提供至少兩種封裝的頭部,結構體中包含一個指針指向數據凈負荷,使用指針的方式避免了數據的復制操作,使得處理過程更加高效。而且在不考慮字節對齊的情況下只占用了10 B。
實現數據封裝的代碼如下:
3 系統驗證與分析
這里通過一個應用場景來對網關進行分析評價:一個多任務動態感知的情景,如圖3所示,每個虛線圓圈內部的加點表示一個物理上的節點網絡。
實驗中構建了一個簡單的類似圖3的環境,網關G2、G3直接連接6LoWPAN傳感網(N1、N2、N3分別為3個傳感網的協調節點),G1通過Wi-Fi與G2、G3連接并作為其上層網關提供互聯網接入。這里僅通過整個系統對流量的控制和時延兩個方面來驗證網關系統的功能性和穩定性。從網關G1通過G2向N1發送PING包,原路返回,其間附上節點的時間。實驗5次,時間曲線繪制如圖4(a)所示。可見在網關與傳感網之間的通信時延較大,但是總體時延控制在500 ms以內且時延抖動小。G2網關采集N1和N3的數據,G3網關采集N2的數據,N1和N3數據量很大,所以G2網關的下行接口隨時都有可能堵塞,這時G2向數據平臺反饋,數據平臺反饋N3改道G3網關,從而避免了G2的堵塞,流量監測如圖4(b)所示。
4 結論
網關具有以下特點:重量體積輕巧,低功耗;電路板采用DC 5V-2A供電,發熱量少;常溫下主芯片最高43℃。在測試的一周內,各個模塊都無異常。
上述的網關設計具有如下有益效果:(1)為物聯網開放環境的數據平臺的資源整合及控制傳感網提供了有效的支撐;(2)從傳統網關中提煉出控制面,能夠在運行中根據數據平臺的調度或者不同的需求更改網絡通信特性和適配特性;(3)流表及其控制機制的引入易于實現資源的調度。
參考文獻
[1] 張光河.物聯網概論[M].北京:人民郵電出版社,2014.
[2] MARA K, ABDEEN M, HASHEM M. A gateway-based framework for transparent interconnection between WSN and IP network[J]. EUROCON 2009, EUROCON′09, IEEE, 2009:1775-1780.
[3] Wu Lili, RIIHIJARVI J, MAHONEN P. A modular wireless sensor network gateway design[J]. Second International Conference on Communications and Networking in China, 2007 (CHINACOM 07), IEEE Press, 2007:882-886.
[4] 陳國峰.多網關協同下的無線網絡規劃優化研究[J].信息通信,2013(10):243.
[5] Zhu Qian, Wang Ruicong, Chen Qi, et al. IOT gateway: bridging wireless sensor networks into Internet of Things[J]. 2010 IEEE/IFIP 8th International Conference on Embedded and Ubiquitous Computing (EUC), IEEE, 2010:347-352.
[6] 龔向陽,王文東.一種面向多樣化網絡業務融合的SDN網絡結構[J].中興通訊技術,2013,19(5):16-21.
[7] 劉誠明.軟件定義網絡技術及應用[M].北京:人民郵電出版社,2013.
[8] NADEAU T D, GRAY K.軟件定義網絡:SDN與OpenFlow解析[M].畢軍主,譯.北京:人民郵電出版社,2014.
[9] 李文仲,段朝玉.ZigBee無線網絡技術入門與實戰[M].北京:北京航空航天大學出版社,2007.
[10] 黃志偉,鄧月明,王彥.ARM9嵌入式系統設計基礎教程[M].北京:北京航空航天大學出版社,2008.
[11] 楊斌.嵌入式系統應用開發實踐教程[M].北京:科學出版社,2014.
[12] 文全剛.嵌入式Linux操作系統原理與應用[M].北京:北京航空航天大學出版社,2014.