999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于cooja仿真器的無線傳感器網絡實驗研究

2017-04-12 02:02:47方君麗張恩展
計算機教育 2017年3期
關鍵詞:資源

郭 顯,方君麗,張恩展

(蘭州理工大學 計算機與通信學院,甘肅 蘭州 730050)

基于cooja仿真器的無線傳感器網絡實驗研究

郭 顯,方君麗,張恩展

(蘭州理工大學 計算機與通信學院,甘肅 蘭州 730050)

分析無線傳感器網絡教學中采用集成開發環境對硬件平臺的依賴性問題,提出基于cooja仿真實驗平臺和傳感器網絡標準協議6LoWPAN協議,設計無線傳感器網絡應用系統方法及分析網絡協議的方法。

無線傳感器網絡;6LoWPAN;contiki操作系統;cooja

0 引 言

無線傳感器網絡課程是物聯網及相關專業的核心專業課程,其內容涉及網絡協議、通信技術、嵌入式系統開發等內容。基于無線傳感器網絡的應用系統開發有兩種方法,一種是基于特定硬件的商業化集成開發環境開發應用系統,這種方法的好處是方便易學,缺點是依賴于特定硬件環境,開發系統不便于移植;傳感器設備差異性較大,如果硬件環境改變,學習者需重新學習新的開發環境。另一種是基于開源工具搭建開發環境設計應用系統,這種方法對于初學者而言比較困難,但一旦掌握這些開發技術,即能以不變應硬件平臺的萬變。目前一些流行的無線傳感器網絡教學實驗箱也都是基于集成開發環境設計的,不便于學生學習。在無線傳感器網絡課的教學中,我們基于流行的開源工具搭建仿真實驗教學平臺,使學生能夠更好地把理論與實踐相結合,學好無線傳感器網絡的相關理論技術和應用開發技術,為以后在不同環境下的應用系統開發打下堅實基礎。

Contiki操作系統[1]是一個輕量級、開源的適合于資源受限環境的物聯網操作系統,目前已廣泛應用于物聯網的各個領域。Contiki系統完全支持IETF推出的物聯網協議6LoWPAN協議棧[2],支持資源受限應用層協議CoAP協議[3],contiki操作系統還支持Wireshark[4]網絡協議分析工具。Cooja仿真器是contiki操作系統下無線傳感器網絡仿真工具,在cooja仿真器中可以仿真目前流行的多種傳感器構成的不同傳感器網絡,在仿真環境中可以分析網絡不同層的協議,cooja仿真工具還可以分析節點能量使用情況,接收信號強度、鏈路質量等。更重要的是,在cooja仿真環境中可以開發基于無線傳感器網絡的各種應用程序。

1 無線傳感器網絡

1.1 無線傳感器網絡模型

無線傳感器節點通常部署在感知區域,如圖1所示,這些分散的傳感器節點具有采集數據并向終端用戶傳輸路由數據的能力。因此,傳感器節點承擔數據源和路由器兩種角色,傳感器節點采集的數據通過多跳、無基礎設施的自組織傳感器網絡到達網關,再由網關傳輸到終端用戶。相反,用戶可通過網關向傳感器網絡節點發送控制指令,如控制與節點連接的各種設備。網關與終端用戶間的通信方式可以是以太網、互聯網、衛星網絡和無線網絡等。

圖1 無線傳感器網絡模型

1.2 無線傳感器網絡協議棧

6LoWPAN協議是IETF推出的物聯網標準協議,其目的是在低功耗無線個域網上使用IPv6技術實現萬物互聯,該協議完全適合于資源受限傳感器節點構成的無線傳感器網絡。在無線傳感器網絡教科書中,一般把6LoWPAN協議也稱為無線傳感器網絡標準協議。6LoWPAN協議棧結構如圖2所示。

圖2 6LoWPAN協議棧結構

在使用6LoWPAN協議棧的傳感器網絡中,物理層和鏈路層使用IEEE 802.15.4協議,網絡層使用RPL協議[5]組網,RPL協議是IETF專為低功耗有損網絡LLN推出的路由協議。運輸層一般使用傳統TCP/IP協議簇運輸層的UDP協議,應用層使用專為資源受限設備設計的類似于HTTP協議的無線傳感器網絡應用層協議CoAP協議。在目前流行的瀏覽器軟件,如Firefox瀏覽器中安裝插件copper[6]就可支持CoAP協議。

1.3 網絡協議分析工具

Wireshark是一款開源、廣泛使用的網絡協議分析工具,允許對分組跟蹤嗅探、捕獲和分析,分組跟蹤是對網絡上某個位置的流量的記錄,是對特定鏈路上傳輸的所有比特的快照。分組跟蹤記錄從協議棧低層到高層的每個分組的時間戳,以及構成分組的所有比特信息。該工具的使用能夠讓學生深入理解媒體介入、路由、可靠傳輸、擁塞控制等無線傳感器網絡原理,能夠深入理解實現這些機制的方法,為設計新的網絡協議和改進協議打下堅實基礎。

1.4 無線傳感器網絡操作系統

Contiki操作系統是專為資源受限網絡設計的無線傳感器網絡操作系統,它完全支持6LoWPAN協議及CoAP協議,支持Wireshark網絡分析工具。我們選擇contiki操作系統的原因是,contiki操作系統中包含一個功能豐富的無線傳感器網絡仿真工具cooja仿真器,它不僅能夠仿真實現、分析網絡協議,跟蹤網絡節點能量消耗情況等,還能夠在仿真環境下設計無線傳感器網絡應用系統,如設計基于CoAP API的應用系統等。

2 無線傳感器網絡仿真實驗

2.1 教學實驗平臺搭建

Contiki操作系統的安裝有兩種選擇,可以直接在安裝好ubuntu操作系統的計算機中安裝contiki操作系統,也可以在Windows操作系統中安裝虛擬機軟件VMWare,然后下載安裝contiki操作系統的虛擬機instant contiki,instant contiki是一個完整的contiki開發環境,包括contiki系統,各種開發工具、編譯工具和仿真工具。Contiki操作系統的文件夾結構如圖3所示。

Contiki對硬件的要求很低,移植十分方便,cpu文件夾中列出了支持的硬件平臺,目前已經支持8051系列、AVR、MSP430、ARM、ARMCortex、X86等處理器,這樣,方便在不同硬件平臺上開發應用程序。Examples文件夾中包含了各種應用程序開發實例,這些應用程序可以在應用開發中使用,tools文件夾中包括cooja仿真工具等。

圖3 contiki系統文件夾結構

另外,如果是在ubuntu下直接安裝contiki系統,為了讓ubuntu中的Fixfox瀏覽器支持CoAP協議,需要安裝Copper插件,還需要安裝Wireshark工具,以便網絡協議分析。

2.2 CoAP API

Contiki操作系統中,CoAP協議的實現是基于contiki系統的低功耗REST引擎Erbium(Er)的,CoAP引擎在apps/rest-engine/er-coap-engine.c中實現,引擎接口由下面的結構體提供,我們把它稱為CoAP 應用編程接口API:

可用下面的函數調用CoAP引擎:

REST.get_query_variable();

基本的REST設計使用了HTTP協議或CoAP協議的POST、GET、PUT和DELETE等方法,Web服務被看成是由URIs唯一標識的資源(resources)。在Web服務器上有多種可用的資源,每個資源都有REST層調用的處理函數,以便為客戶請求提供服務,REST服務器通過向客戶發送其請求的資源內容作為響應。要建立新的CoAP資源時,可以使用contiki系統中定義的基本“資源”類型:normal resource、parent resource、separate resource、event resource和periodic resource。文件apps/rest-engin/rest-engin.h中給出了這些資源的宏定義。如普通資源的宏定義如下:

普通資源(normal resource)由與資源處理函數相關的靜態uri-path定義,它是所有其他資源類型的基礎。父資源(parent resource)通過評價uri-path管理幾個子資源。

一旦聲明和實現了資源,需要通過使用以下函數初始化REST框架,啟動HTTP或CoAP進程:

void rest_init_engine(void);

然后再用下面的函數激活每個聲明的資源:

2.3 應用程序舉例

通過簡單應用程序可以說明CoAP API的使用方法,假設本例中的網絡節點上有光敏傳感器和執行器兩個設備,光敏傳感器向用戶發送采集數據,執行器控制節點上紅色led燈的開/關。Examples/er-rest-example/resource文件中的res_ light.c和res_toggle.c中分別定義了rest_light和rest_toggle兩種資源,這兩種資源與節點上的光敏傳感器和執行器相對應,資源聲明如下:

資源聲明中指定資源名稱為res_light,res_ toggle,與它們對應的回調處理分別是GET(res_get_handler)、POST(res_post_handler),即通過HTTP或CoAP協議的GET、POST方法就可獲得傳感器采集值或控制節點紅色led燈的開/關。

激活這兩種資源的函數如下:

其含義是資源分別在uri_path標識“sensors/ light”和“actuators/toggle”下可用,函數的功能是將資源存入資源表。

下面是rest_light和rest_toggle資源對應的靜態處理函數,細節參見資源定義程序:

2.4 仿真實現過程

Contiki操作系統下進入tools/cooja文件夾,運行“ant run”命令啟動cooja仿真器,在cooja仿真器中,我們建立如圖5(a)所示的網絡,網絡中的節點是“sky”類型的傳感器節點。節點1為傳感器網絡的網關,其上運行examples/ ipv6/rpl-border-router/border-router.c程序。在使用6LoWPAN協議棧的傳感器網絡中,每個節點都使用根據MAC地址自動生成的IPv6鏈路本地地址,所以節點的地址都是以“fe80”開頭的地址。為了能夠通過互聯網上的遠程用戶終端訪問傳感器節點,需要將鏈路本地地址映射為IPv6的全球單播地址,這一工作由網關完成。首先通過仿真器的菜單項tools->serial scoket->sky1打開網關的偵聽端口,然后打開新的ubuntu終端窗口,使用如下命令即可完成地址映射:

本例中除節點1外,其他節點上都運行服務器程序examples/er-rest-example/er-example-server.c,該程序主要是激活定義的各種資源。網絡中節點使用RPL路由協議組網。現在,選擇cooja仿真器的simulation->start simulation菜單項就可啟動仿真過程。仿真運行過程中,遠程用戶通過瀏覽器訪問網關節點1,瀏覽器窗口中就會列出網絡拓撲信息,如網關節點的一跳鄰居節點信息以及由路由協議RPL協議建立的從網關節點到各節點的路徑信息,如圖5(b)所示,顯然該網絡是多跳自組織網絡。

圖5 仿真實例

傳感器網絡中的節點類似于Web服務器,基于定義的各種“資源”向客戶提供服務。在安裝了copper插件的Firefox瀏覽器中連接網絡節點,單擊“discover”按鈕后,就會在瀏覽器“discovering”區域列出在其上運行程序中激活的已定義資源,如前文中介紹的控制傳感器節點led燈的res_toggle資源,該資源的uri-path為actuators/toggle。圖6(a)顯示了連接網絡中節點4并單擊“discovering”后的結果。

因為與res_light資源對應的處理函數是res_ get_()_handler(),所以通過瀏覽器上的“GET” 按鈕就可獲得光敏傳感器采集的數據。同理,通過瀏覽器上的“POST”按鈕就可遠程控制傳感器節點上的紅色led燈。如圖6(a)中選中“actuators/ toggle”,然后單擊瀏覽器上“POST” 按鈕就可控制節點4上的紅色Led燈,圖6(b)是單擊之前的狀態,圖6(c)是單擊“POST”按鈕之后的狀態。由圖6(c)可知,節點1通過節點7向節點4發送控制指令控制節點4上的紅色led燈打開。

圖6 仿真結果

3 Wireshark網絡協議分析

啟動網絡仿真程序之前,選擇cooja仿真器的菜單項tools->radio messages打開radio messages對話框,在radio messages對話框中選擇analyzer->6LoWPAN Analyzer with PCAP菜單項,則在仿真過程中會自動生成wireshark分組跟蹤記錄文件,該文件保存在contiki操作系統的tools/cooja/ build文件夾中,文件擴展名是.pcap。這樣,可以在wireshark中打開這些文件進行網絡協議分析。例如,圖7顯示了仿真開始時,節點間通過交換RPL協議的控制消息DIS(DODAG Information Solicitation),DIO(DODAG Information Object)和DAO (Destination Advertisment Object)消息建立以網關為根的有向無環圖DODAG,節點進而加入RPL網絡時的部分分組。圖8顯示了當單擊瀏覽器上“POST”按鈕(如圖6(a)所示)時,節點1和節點4之間交換的部分CoAP分組。如果想觀察分組的細節,可以雙擊相應分組對應的行,如雙擊圖8中序號為293的分組,就會顯示出該分組的詳細信息,如圖9所示,能夠觀察到6LoWPAN協議棧的完整信息。

圖7 DODAG建立分組

圖8 CoAP協議分組

圖9 CoAP分組

4 結 語

無線傳感器網絡是物聯網及相關專業的核心專業課程,內容涉及網絡協議、通信技術、嵌入式系統開發等內容,內容多,學習難度較大。教學中,我們基于無線傳感器網絡操作系統contiki下的cooja仿真器構建仿真實驗平臺,便于學生把理論和實踐相結合,在仿真實驗平臺上分析網絡協議原理,設計應用系統程序。通過實例分析采用6LoWPAN協議的無線傳感器網絡仿真實驗方法及應用程序的開發過程,并說明基于wireshark工具分析網絡協議的方法。

[1] Contiki: 開源物聯網操作系統[EB/OL]. [2016-11-13].http://www.contiki-os.org.

[2] Kushalnagar N, Montenegro G, Schumacher C. IPv6 over low-power wireless personal area networks (6LoWPANs): Overiew, assumptions, problem statement, and goals (RFC 4919)[EB/OL]. [2016-10-14]. https://datatracker.ietf.org/doc/rfc4919/.

[3] Shelby Z, Hartke K, Bormann C. Constrained application protocol (CoAP)(RFC 7252)[EB/OL]. [2016-06-28]. https://tools.ietf.org/ html/draft-ietf-core-coap-18.

[4] Wireshark: 開源網絡包分析工具[EB/OL]. [2016-10-14]. https://www.wireshark.org/.

[5] Winter T, Thubert P. Rpl: Ipv6 routing protocol for low-power and lossy networks(RFC 6550)[EB/OL]. [2016-10-13]. https:// datatracker.ietf.org/doc/rfc6550/.

[6] Matthias K. Demo abstract: Human-CoAP interaction with copper[C]//Proceeding of the 7th IEEE International Conference on Distributed Computing in Sensor Systems and Workshops (DCOSS). Washington D C: IEEE, 2011:1-2.

(編輯:郭田珍)

1672-5913(2017)03-0167-06

G642

國家自然科學基金項目(61461027);甘肅省自然科學基金項目(145RJZA078)。

郭顯,男,副教授,研究方向為物聯網工程、網絡安全,iamxg@63.com。

猜你喜歡
資源
讓有限的“資源”更有效
污水磷資源回收
基礎教育資源展示
崛起·一場青銅資源掠奪戰
藝術品鑒(2020年7期)2020-09-11 08:04:44
一樣的資源,不一樣的收獲
我給資源分分類
資源回收
做好綠色資源保護和開發
當代貴州(2018年28期)2018-09-19 06:39:04
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
激活村莊內部治理資源
決策(2015年9期)2015-09-10 07:22:44
主站蜘蛛池模板: 欧美成人二区| 黄色三级网站免费| 日韩美毛片| 一本色道久久88亚洲综合| 亚洲欧美精品日韩欧美| 亚洲一欧洲中文字幕在线| 怡红院美国分院一区二区| 91久久国产热精品免费| 国产精品一线天| 日韩国产黄色网站| 国产无码精品在线播放| 国产高颜值露脸在线观看| 亚洲欧美精品在线| 日韩区欧美国产区在线观看| 欧美区在线播放| 91福利一区二区三区| 亚洲动漫h| 91丨九色丨首页在线播放| 农村乱人伦一区二区| 精品三级在线| 国产黄在线观看| 成人免费午间影院在线观看| 午夜啪啪网| 免费国产小视频在线观看| 亚洲综合第一页| 久久夜色精品国产嚕嚕亚洲av| 久久精品亚洲热综合一区二区| 扒开粉嫩的小缝隙喷白浆视频| 自拍偷拍一区| 久久精品视频亚洲| 国产视频入口| 亚洲久悠悠色悠在线播放| 成人在线不卡| 9999在线视频| 国产va视频| 91福利在线看| 97在线国产视频| 91在线无码精品秘九色APP| 一区二区三区四区日韩| 日韩无码黄色| 婷婷六月在线| 国产成人精品2021欧美日韩| 免费看的一级毛片| 久久久波多野结衣av一区二区| 久久精品无码国产一区二区三区| 亚洲欧洲日产国码无码av喷潮| 亚洲手机在线| 婷婷午夜影院| AV不卡无码免费一区二区三区| 国产大片黄在线观看| 国产一区二区丝袜高跟鞋| 亚洲无卡视频| 国产精品亚欧美一区二区| 亚洲男人天堂2020| 欧美在线综合视频| 亚洲第一视频免费在线| 黄色免费在线网址| 五月婷婷中文字幕| 丁香婷婷综合激情| 免费 国产 无码久久久| 国产欧美视频在线| 国产亚洲视频在线观看| 国产中文在线亚洲精品官网| 成人av专区精品无码国产 | 91精品国产福利| 乱人伦视频中文字幕在线| 亚洲国产成人在线| 天天干天天色综合网| 亚洲精品大秀视频| 91小视频版在线观看www| 专干老肥熟女视频网站| 亚洲欧美日韩天堂| 色网在线视频| 国产精品片在线观看手机版| 中文纯内无码H| 日韩A级毛片一区二区三区| 福利国产微拍广场一区视频在线| 亚洲国产第一区二区香蕉| 亚洲精品图区| 国产永久在线观看| 亚洲精品图区| 欧洲成人免费视频|