陶銘
(東莞理工學院 計算機科學與技術學院,廣東 東莞)
2010年3月,在我國政府工作報告所附的注釋中,將物聯網定義為通過信息傳感設備,按照約定的協議,把任何物品與互聯網連接起來,進行信息交換和通訊,以實現智能化識別、定位、跟蹤、監控和管理的一種網絡[1]。它是在互聯網基礎上的延伸和擴展,也可稱之為“物物相連的互聯網”。普通對象設備化、自治終端互聯化以及普適服務智能化是物聯網的三個重要特征。當前,隨著物聯網技術的發展及應用的廣泛深入,物聯網工程專業成為國內各高校新開熱門專業。該專業旨在為推進未來信息社會可持續發展而培養物聯網產業領域內的工程型與應用型人才,主要訓練學生在獲得良好的科學與人文素養基礎之上,充分理解物理世界的信息感知、數據標識及傳輸、分析、處理等各階段原理、技術與方法,重點掌握廣泛領域內物聯網應用系統設計與開發的知識與技能,以此為未來產業發展、地方經濟及信息化建設服務。作為一門新興專業,知識面涵蓋了計算機技術、通信技術、自動控制技術、信息處理技術和互聯網技術等,因此,在專業課程(理論課程及實踐課程)體系以及知識體系等各方面均需進行適用、合理、有效及科學的探索,據此制定并完善切實可行的教學方案、培養計劃以及人才培養方案等[2,3]。
物聯網作為一種系統網絡,與其他網絡一樣,也有其內部特有的架構。目前廣泛接受的物聯網系統架構可劃分為四個層次,可根據物聯網應用系統開發的四個功能部分:信息生成、傳輸、處理和應用,對應地將物聯網系統架構劃分為感知識別層、網絡構建層、管理服務層和綜合應用層,具體如圖1所示[4]。

圖1 物聯網系統架構模型
其中,感知識別層位于物聯網四層系統架構模型的最底端,是上層結構的基礎,具體可利用 RFID、傳感器、條碼識別以及多媒體信息采集等設備或裝置隨時隨地采集物理世界的信息。網絡作為物聯網最重要的基礎設施之一,網絡構建層主要起紐帶的作用,在物聯網四層系統架構模型中連接感知識別層和管理服務層,高效、穩定、及時、安全地在上下層之間傳遞數據。管理服務層在物聯網四層系統架構模型中位于感知識別層和網絡構建層之上,綜合應用層之下,是物聯網智慧的源泉,主要解決數據存儲、數據檢索、數據使用以及數據不被濫用等問題。物聯網豐富的內涵催生出更加豐富的外延應用,相關的基于物聯網技術的應用可在綜合應用層中定義。目前,物聯網作為我國戰略新興產業重點發展的方向和技術之一,已被廣泛應用于智能家居、智能安防監控、智能樓宇、智能冷鏈物流、智慧醫療、國防軍事等諸多領域。

圖2 物聯網通信系統結構
當前也有相關研究將四層系統架構模型中的相關功能進行了重新規劃,并劃分成了三層系統架構模型,如圖1所示。按照物聯網三層系統架構模型,物聯網的通信系統可大體分為兩大類:感知控制層通信和網絡層傳輸通信,其基本結構如圖2所示[5]。在感知控制層通信系統中,主要是使用感知控制設備所具有的通信能力,將所感知的信息在較短的通信距離內采用短距離有線通信系統或短距離無線通信系統傳送到信息匯聚系統,并由該系統傳送(或互聯)到網絡傳輸層。一般情況下,若干個感知控制設備負責某一區域,整個物聯網可劃分為眾多個感知控制區域,每個區域都通過一個匯聚設備接入到互聯網中,即接入到網絡傳輸層。其通信的特點是傳輸距離近,傳輸方式靈活、多樣。感知控制層中的短距離有線通信系統主要是由各種串行數據通信系統構成的,目前使用較為廣泛的技術有RS-232/485、USB、CAN工業總線及各種串行數據通信系統。感知控制層中的短距離無線通信系統主要由各種低功率、中高頻無線數據傳輸系統構成,目前使用較為廣泛的技術包括藍牙、紅外、超寬帶、WiFile、GSM、3G4G5G等。對于網絡層傳輸通信系統主要是由數據通信主機(或服務器)、網絡交換機、路由器等構成的,在數據傳送網絡支撐下的計算機通信系統,一般由公眾通信網絡及專用通信網絡構成,主要是支持感知信息的大范圍遠距離傳輸。
目前,大部分高校一般按照物聯網系統架構所劃分的三個層次來設置物聯網專業核心課程,如表1所示。比如,對應感知層,開設物聯網感知、識別與控制技術,傳感器原理及應用,物聯網數據智能感知技術等課程,要求學生掌握物聯網信息標識、采集感知等方面的知識;對應網絡層,開設物聯網通信技術、無線通信技術、無線傳感器網絡等課程,要求學生掌握主流的網絡通信技術、數據傳輸技術及網絡接入技術等;對應應用層,開設物聯網數據處理與融合,云計算與大數據等課程,要求學生掌握處理、識別和控制相關的技術[6]。
值得一提的是,網絡層相關課程所講授的網絡通信技術、數據傳輸技術及網絡接入技術,知識涵蓋了離散數學、計算機網絡、通信原理等多個方面,因此這些課程組成了理論性和應用性都很強的專業課程群。作為網絡技術類理論課程,在實際教學過程中,通常會比較偏向于理論知識的講授,內容相對抽象空洞,不利于學生了解和掌握各種網絡通信技術、數據傳輸技術及網絡接入技術的具體工作原理及運行方式。并且針對不同網絡技術的課程實驗需要不同的硬件環境,而課程實驗相關的硬件平臺通常價格不菲。因此,在這類課程的實踐教學中,充分采用適用的開源網絡仿真軟件進行網絡仿真實驗,不僅可以節省采購硬件平臺產生的實驗費用,還可以集教學、學習、設計及創新于一體,拓展教學和實驗的深度和廣度,提高學生學習理論知識的興趣,改善教學效果。

表1 結合物聯網(三層)系統架構的專業核心課程設置
NS-3和OMNet++均是基于離散事件仿真(DES, Discrete Event Simulation)的網絡仿真軟件。離散事件仿真器原理如圖3所示。作為一種基于組件的、模塊化的網絡仿真平臺,OMNeT++近年來在科學和工業領域逐漸流行。其具備強大完善的圖形界面接口,可以運行在Unix和Windows 環境中[7]。然而OMNeT++并不是一款真正意義上的網絡仿真器,而只是一個通用的離散仿真框架。通過INET包,OMNeT++提供了對網絡建模的能力。另外,MF和Castalia模塊提供了對移動Adhoc和無線傳感器網絡的仿真功能。OMNeT++在簡單模塊中實現基本的協議行為,然后通過組合這些簡單模塊成復合模塊而成為仿真節點,OMNeT++中的網絡仿真就是這些復合模塊的組合。OMNeT++也是采用C++來實現的。但是使用了一種網絡描述語言NED來描述網絡框架。通過更改NED描述文件即可改變OMNeT++的仿真行為,例如可以更改網路中節點的數量,在這種情況下,網絡節點的實現模塊是在仿真執行過程中動態生成的。
在現有主流的網絡仿真軟件,如:OPNET、NS-2、GTNetS和yans等的基礎上,總結它們的優缺點, NS-3應運而生[8]。NS-3仍然采用C++語言來實現仿真節點(和NS-2一樣),然而仿真過程卻不再采用oTcl來控制,換作通過純C++語言實現,部分還可以使用Python語言實現。此外,NS-3還集成了GTNetS的架構設計概念和代碼,在可擴展性方面進一步提升。但是,這些設計方面的改動也帶來了兼容性方面的問題,比如:NS-2的模塊移植到NS-3上都需要手工的移植過程。當然,除了性能方面的改進之外,NS-3還支持和物理實現(如:BSD Socket或者POSIX線程等)的集成。

圖3 離散事件仿真器原理
基于NS-3的仿真過程接近于真實系統。相關物理實體概念在NS-3中被抽象成相應的網絡構件,比如:仿真節點如同一個計算機外殼,可以配置網卡、協議棧、IP地址和應用程序等。圖4按照TCP/IP 的網絡體系結構,自頂向下從應用層到物理層羅列了NS-3中實現的功能。由于NS-3是一個開源項目且具有很強的可擴展性,使用人員可以根據自己的需要自定義開發新的模塊,如:網絡模塊(如:Mesh、WiMax、LTE、UAN等)、網絡設備模塊(如:Click、Openflow等)和并行分布式計算模塊(如:MPI等)等。此外,emu模塊還可以將NS-3在試驗床或虛擬機環境下進行集成。

圖4 NS-3組織結構圖
在NS-3中定義的網絡構件可以分為四類。(1)計算機節點設備(Node):可以添加應用、協議以及外部接口等;(2)網絡設備(NetDevice):安裝在節點內使節點可以通信的網卡及其驅動,目前,有NS-3中可以配置各種不同類型的網卡,如:CsmaNetDevice、PointToPointNetDevice以及WifiNetDevice等;(3) 信 道(Channel): 處理傳輸媒介的抽象,目前有以下幾種類型:CsmaChannel、PointToPointChannel、WifiChannel;(4)應用程序(Application):借助應用程序可以產生和消費網絡流量,驅動網絡模擬器,包括Udp EchoClientApplication、Udp Server Application等;(5)Topology 生成器:對應每種拓撲連接有不同的Helper,可以實現設備安裝、連接、屬性設置等。此外,在NS-3中還實現了三個支持系統。具體地,Attribute屬性系統可以用來設置對象屬性等信息,Logging 日志系統可以用來記錄用戶程序或系統的運行情況,以及Tracing 跟蹤系統可以用來實現結構化的輸出。
在使用NS-3實現具體的網絡仿真過程中,搭建NS-3網絡仿真場景與在物理世界中安裝主機和連接網絡類似[9,10]。首先,生成網絡仿真節點,并為網絡仿真節點配置好網絡設備、協議棧、應用程序,以及分配端口號和IP地址等。然后,與TCP/IP 網絡體系結構中數據包流動一樣,應用程序產生數據,并自頂向下逐層封裝,將數據封裝成報文,由報文封裝成報文段,由報文段封裝成IP數據報,由IP數據報封裝成數據幀,再形成二進制的比特流,最終變成信號通過傳輸媒介傳輸到目的節點。目的節點收到數據包后再自低向上逐層解封裝并轉交,最后經由傳輸層的端口號轉交給相應的應用程序。至此,在NS-3中完成一次和真實網絡極其相近的完整的數據傳輸過程。
當仿真結束后,為便于更好地理解網絡原理,可以采用多種手段收集、整理、分析以及再現網絡。在NS-3中,可以通過可視化界面(如:PyViz或NetAnim)直觀地觀測網絡運行的過程,包括仿真節點的拓撲結構、移動和數據包的流動等。除此之外,可以利用NS-3的追蹤系統捕獲仿真過程中產生的數據包,對網絡協議的格式進行驗證,以及對數據包的遲延、網絡流量、丟包率和節點消息緩存隊列等進行測試及分析。
NS-3在物聯網工程專業網絡技術類相關課程教學中的運用包括兩方面。一方面主要體現在理論講授過程中的運用,另一方面主要體現在實驗實踐過程中的運用。在日常理論教學過程中,可以使用NS-3仿真實現一些抽象的原理和算法,在具體講授過程中可以結合NS-3中仿真過程的動態效果,將抽象變為形象,可以幫助同學們更加直觀地觀察到相關的網絡理論是如何實現的,同時還可以讓同學們接觸到物聯網網絡技術科學研究的相關內容,開闊視野,增強學習的興趣,使枯燥乏味的課堂氛圍變得更加具有吸引力和更加活躍。在日常實驗實踐過程中,由于NS-3已集成了多種網絡協議,同時,還可以根據需要,將理論教學過程中講授的網絡通信協議、數據傳輸協議、網絡接入協議編寫基于NS-3的仿真實驗指導書,包括驗證性試驗和設計性試驗,可以對大規模的固定網絡、無線網絡、衛星網絡等進行仿真。通過這些實驗,可以使學生擴展網絡知識,提高動手能力,加深對物聯網中網絡通信技術、數據傳輸技術、網絡接入技術原理的理解和掌握,增強學習的興趣,提高實驗教學的效果。
將NS-3運用于物聯網工程專業網絡技術類相關課程教學,可以仿真實現網絡通信技術、數據傳輸技術、網絡接入技術課程中的大部分原理及協議。同時,借助NS-3,還可以結合這些原理、協議設計新的目標網絡,模擬網絡流量在實際網絡中傳輸及交換等過程。在日常理論及實驗實踐教學過程中的經驗表明,將NS-3引入物聯網工程專業網絡技術類相關課程教學,一方面極大地增強了學生的學習興趣,提高了學生網絡分析與設計的能力以及實踐動手能力;另一方面開闊了學生的視野以及激發了學生探索的興趣,同時,也有助于提高教學效果和教學質量。