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
主站蜘蛛池模板: 亚洲大尺码专区影院| 精品国产自| 国产91精品调教在线播放| 色网在线视频| 国产偷倩视频| 欧美成一级| 中国一级特黄视频| 亚洲最大福利网站| 69视频国产| 亚洲AV无码久久精品色欲| 色偷偷综合网| 欧美激情视频在线观看一区| 制服丝袜国产精品| 狠狠色婷婷丁香综合久久韩国| 91久久偷偷做嫩草影院电| 青草视频免费在线观看| 国产欧美在线观看一区| 乱系列中文字幕在线视频| 精品国产免费观看一区| 亚洲a免费| 亚洲国产综合自在线另类| 55夜色66夜色国产精品视频| 57pao国产成视频免费播放| 国产中文在线亚洲精品官网| 日韩无码真实干出血视频| 狼友视频一区二区三区| 在线播放国产99re| 91高清在线视频| 亚洲中文精品久久久久久不卡| 国产精品国产主播在线观看| 一级毛片在线播放免费| 日韩一级二级三级| 亚洲一道AV无码午夜福利| 国产情侣一区二区三区| 最新日本中文字幕| 国内a级毛片| 欧美在线一级片| 精品成人一区二区三区电影| 亚洲欧洲天堂色AV| 老色鬼久久亚洲AV综合| 国产一区二区福利| 国产美女久久久久不卡| 亚洲中字无码AV电影在线观看| 亚洲精品男人天堂| 日韩黄色精品| 日韩av电影一区二区三区四区 | 天天爽免费视频| 麻豆国产在线观看一区二区| 欧美日韩成人在线观看| 亚洲综合色婷婷中文字幕| 精品自窥自偷在线看| 在线观看无码a∨| 九九九精品成人免费视频7| 99久视频| 午夜视频在线观看免费网站| 97精品国产高清久久久久蜜芽| 欧美日本在线| 呦系列视频一区二区三区| 一级全黄毛片| 午夜无码一区二区三区| 国产流白浆视频| 国产高颜值露脸在线观看| 在线观看国产精美视频| 精品91在线| 亚洲精品成人片在线播放| 成人亚洲天堂| 3D动漫精品啪啪一区二区下载| 五月天福利视频| 高清久久精品亚洲日韩Av| 天天综合网色| 91青青在线视频| 视频二区欧美| 国产高清色视频免费看的网址| 国产91高跟丝袜| 国产午夜福利亚洲第一| 91黄视频在线观看| 国产成人免费视频精品一区二区| 日韩第一页在线| AV网站中文| 高清乱码精品福利在线视频| 国产激情影院| 亚洲一区二区无码视频|