国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Cooja的SD-IoT仿真實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)*

2022-01-19 04:57孫濤蔡江濤
關(guān)鍵詞:接收器模擬器數(shù)據(jù)包

孫濤,蔡江濤

(內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010)

傳統(tǒng)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施由不同的網(wǎng)絡(luò)設(shè)備組成,如交換機(jī)、路由器和中間設(shè)備,其中安裝了專用集成電路來執(zhí)行專用任務(wù).由于設(shè)備的資源受限性質(zhì),它們不能用多個(gè)規(guī)則來提供最佳網(wǎng)絡(luò)服務(wù).因此,傳統(tǒng)的網(wǎng)絡(luò)技術(shù)不能實(shí)時(shí)地采用適當(dāng)?shù)牟呗詠頋M足物聯(lián)網(wǎng)的特定應(yīng)用需求[1-3].

為了解決傳統(tǒng)網(wǎng)絡(luò)中的這些局限性,提出了一種新的概念,稱為軟件定義網(wǎng)絡(luò)(SDN)[4].SDN的出現(xiàn)為物聯(lián)網(wǎng)帶來新思路[5,6].

目前基于SD-IoT的系統(tǒng)開發(fā)主要分為2種,一種是基于特殊硬件的開發(fā)系統(tǒng),該系統(tǒng)優(yōu)點(diǎn)是簡(jiǎn)單便捷,對(duì)于初學(xué)者無(wú)需過問搭建流程,可直接上手操作,但過于依賴硬件,可移植性低,一旦硬件環(huán)境改變,該系統(tǒng)的開發(fā)環(huán)境也隨之改變.另一種是基于開源工具搭建的仿真實(shí)驗(yàn)教學(xué)平臺(tái),該平臺(tái)可移植性高,對(duì)硬件要求低,但是搭建流程繁瑣,新手上手難度較大.在本項(xiàng)目研究中,采用第二種基于開源工具搭建SD-IoT仿真實(shí)驗(yàn)平臺(tái),可以為以后在軟件定義物聯(lián)網(wǎng)的環(huán)境下開發(fā)應(yīng)用系統(tǒng)打下基礎(chǔ).

1 相關(guān)技術(shù)介紹

1.1 無(wú)線傳感器網(wǎng)絡(luò)模型

在無(wú)線傳感器網(wǎng)絡(luò)中可以有1個(gè)或幾個(gè)匯聚節(jié)點(diǎn)和固定數(shù)量的傳感器節(jié)點(diǎn),所有的傳感器節(jié)點(diǎn)都與基站有聯(lián)系.無(wú)線傳感器網(wǎng)絡(luò)被設(shè)計(jì)成執(zhí)行高級(jí)信息處理任務(wù),如檢測(cè)、分類和跟蹤.

如圖1所示,無(wú)數(shù)個(gè)傳感器節(jié)點(diǎn)匯聚在感知區(qū)域中,傳感器節(jié)點(diǎn)是采集數(shù)據(jù)和傳輸數(shù)據(jù)的綜合體,先是通過傳感器節(jié)點(diǎn)收集到數(shù)據(jù)通過幾次轉(zhuǎn)發(fā)、多跳的自組織傳感器網(wǎng)絡(luò)傳輸?shù)骄W(wǎng)關(guān),然后網(wǎng)關(guān)通過網(wǎng)絡(luò)將數(shù)據(jù)反饋給用戶[7].用戶也可以通過任務(wù)管理節(jié)點(diǎn),將數(shù)據(jù)傳輸給網(wǎng)關(guān),以此控制傳感器節(jié)點(diǎn),向傳感器節(jié)點(diǎn)下發(fā)控制指令.

圖1 無(wú)線傳感器網(wǎng)絡(luò)模型

1.2 無(wú)線傳感器網(wǎng)絡(luò)協(xié)議棧

6LoWPAN協(xié)議是IETF推出的物聯(lián)網(wǎng)標(biāo)準(zhǔn)協(xié)議,是為了讓在功耗相對(duì)低且無(wú)線的域網(wǎng)上使用IPv6技術(shù)以此實(shí)現(xiàn)萬(wàn)物互聯(lián)的狀態(tài),因此6LoWPAN協(xié)議又被稱為無(wú)線傳感器網(wǎng)絡(luò)標(biāo)準(zhǔn)協(xié)議[8].如圖2所示,無(wú)線傳感器網(wǎng)絡(luò)標(biāo)準(zhǔn)協(xié)議棧和普通網(wǎng)絡(luò)TCP/IP協(xié)議棧相似,都分為應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、MAC層、物理層.不同的是MAC層和物理層的協(xié)議使用了專為低功耗有損網(wǎng)絡(luò)推出的協(xié)議.

圖2 無(wú)線傳感器網(wǎng)絡(luò)標(biāo)準(zhǔn)協(xié)議棧

1.3 SD-IoT協(xié)議架構(gòu)

SD-IoT架構(gòu)內(nèi)核的也就是軟件定義無(wú)線傳感器SDN-WISE(Software Defined Networking solution for Wireless Sensor Networks, SDN-WISE)是基于IEEE 802.15.4物理和MAC層.SDN-WISE的目的是為了簡(jiǎn)化網(wǎng)絡(luò)管理,為開發(fā)新穎的應(yīng)用程序以及試驗(yàn)新的網(wǎng)絡(luò)提供解決方法.網(wǎng)絡(luò)元素可以分為接收器和節(jié)點(diǎn).接收器和節(jié)點(diǎn)之間的區(qū)別在于,前者配備了連接到基礎(chǔ)結(jié)構(gòu)網(wǎng)絡(luò)的網(wǎng)絡(luò)接口.因此,所有控制數(shù)據(jù)包都應(yīng)設(shè)法到達(dá)接收器以離開WSN并到達(dá)控制器[9].在MAC層之上,轉(zhuǎn)發(fā)(FWD)層按照WISE流表中的指定處理傳入數(shù)據(jù)包.FWD層根據(jù)控制平面發(fā)送的配置更新此表,SDN-WISE協(xié)議體系架構(gòu)如圖3所示.

所述在網(wǎng)絡(luò)分組處理(INPP)上轉(zhuǎn)發(fā)層的頂部層運(yùn)行和它負(fù)責(zé)數(shù)據(jù)聚合或其它網(wǎng)絡(luò)內(nèi)的處理操作.如果WISE流表中沒有條目與當(dāng)前數(shù)據(jù)包匹配,則將請(qǐng)求發(fā)送到控制平面.為了聯(lián)系控制平面,每個(gè)節(jié)點(diǎn)必須知道朝向接收器的最佳下一跳.通過信標(biāo)使用拓?fù)浒l(fā)現(xiàn)(TD)層以分布式方式計(jì)算此值.

在控制平面中,網(wǎng)絡(luò)邏輯由1個(gè)或多個(gè)控制器和WISE-Visor決定.WISE-Visor可以抽象化網(wǎng)絡(luò)資源,以便具有不同控制器設(shè)置的不同管理策略的不同邏輯網(wǎng)絡(luò)可以在同一組物理設(shè)備上運(yùn)行.

在接收器WISE-Visor之間有1個(gè)Adaptation層,該層負(fù)責(zé)格式化從接收器接收到的消息,以便WISE-Visor可以處理它們,反之亦然.

圖3 SDN-WISE協(xié)議體系架構(gòu)

1.4 網(wǎng)絡(luò)協(xié)議分析工具

在Contiki系統(tǒng)中自帶一款開源、功能強(qiáng)大的網(wǎng)絡(luò)分析工具Wireshark,可以直觀地看到網(wǎng)絡(luò)數(shù)據(jù)傳輸情況.Wireshark有權(quán)限對(duì)數(shù)據(jù)包進(jìn)行跟蹤、抓取、數(shù)據(jù)分析,并且Wireshark自帶的過濾器對(duì)初學(xué)者很友好,可以清除大量冗余信息.該工具的使用可以讓使用者更全面更透徹地理解到軟件定義物聯(lián)網(wǎng)網(wǎng)絡(luò)原理,更熟悉各傳感節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù),為在SD-IoT上設(shè)計(jì)系統(tǒng)、改進(jìn)協(xié)議和網(wǎng)絡(luò)實(shí)驗(yàn)打下良好的基礎(chǔ).從圖4可以看到Wireshark捕獲到的TCP包中的每個(gè)字段.

1.5 SD-IoT網(wǎng)絡(luò)操作系統(tǒng)

物聯(lián)網(wǎng)是由射頻識(shí)別、智能傳感器、通信技術(shù)和互聯(lián)網(wǎng)協(xié)議的最新發(fā)展推動(dòng)的.Cooja模擬器是1個(gè)專門為無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)的網(wǎng)絡(luò)模擬器.Cooja中模擬的Contiki Mote是1個(gè)實(shí)際編譯和執(zhí)行的Contiki系統(tǒng).該系統(tǒng)由Cooja控制和分析.這是通過將本機(jī)平臺(tái)的Contiki編譯為共享庫(kù),并使用Java本機(jī)接口(JNI)將庫(kù)加載到Java中來實(shí)現(xiàn)的.在同1個(gè)Cooja仿真中可以編譯加載幾個(gè)不同的Contiki庫(kù),代表不同種類的傳感器節(jié)點(diǎn)(異構(gòu)網(wǎng)絡(luò)).Cooja通過幾個(gè)功能控制和分析Contiki系統(tǒng).例如,模擬器通知Contiki系統(tǒng)處理1個(gè)事件,或者獲取整個(gè)Contiki系統(tǒng)內(nèi)存進(jìn)行分析.這種方法使模擬器能夠完全控制模擬系統(tǒng).不幸的是,使用JNI也有一些惱人的副作用.最重要的是對(duì)外部工具的依賴,比如編譯器和鏈接器以及它們的運(yùn)行時(shí)參數(shù).Cooja最初是為Cygwin/Windows和Linux平臺(tái)開發(fā)的,后來移植到了Mac OS.運(yùn)行Cooja需要Java版或更高版本.此外,構(gòu)建Cooja也需要構(gòu)建工具ant.Contiki是1個(gè)面向物聯(lián)網(wǎng)的開源操作系統(tǒng).Contiki將微型低成本、低功耗微控制器連接到互聯(lián)網(wǎng),是構(gòu)建復(fù)雜無(wú)線系統(tǒng)的強(qiáng)大工具箱.

安裝Contiki操作系統(tǒng)只需要在ubuntu操作系統(tǒng)的虛擬機(jī)上部署,如圖5所示,通過官網(wǎng)下載的Instant Contiki操作系統(tǒng)擁有完整的Contiki開發(fā)環(huán)境,對(duì)硬件要求極低,可移植性高,開發(fā)方式便捷,還自帶一些仿真工具,十分適合SD-IoT的環(huán)境開發(fā).

圖4 Wireshark分析數(shù)據(jù)所對(duì)應(yīng)的TCP數(shù)據(jù)包

圖5 Contiki操作系統(tǒng)下的文件列表

2 SD-IoT仿真實(shí)驗(yàn)平臺(tái)設(shè)計(jì)

2.1 SD-IoT仿真實(shí)驗(yàn)平臺(tái)的總體設(shè)計(jì)

本實(shí)驗(yàn)說明了如何在虛擬機(jī)(VM)中使用SDN-WISE,Cooja,Mininet和ONOS部署虛擬網(wǎng)絡(luò)搭建構(gòu)建成1個(gè)軟件定義物聯(lián)網(wǎng)環(huán)境.本實(shí)驗(yàn)設(shè)計(jì)的目標(biāo)是創(chuàng)建1個(gè)由ONOS控制的集成網(wǎng)絡(luò),其中OpenFlow交換機(jī)的虛擬網(wǎng)絡(luò)可以與仿真的SDN-WISE無(wú)線傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)進(jìn)行通信.

2.2 SD-IoT仿真實(shí)驗(yàn)平臺(tái)的搭建

先下載Instant Contiki,安裝VMWare Player,然后啟動(dòng)Instant Contiki.運(yùn)行啟動(dòng)Instant Contiki Instant_Contiki_Ubuntu_12.04_32-bit.vmx.等待虛擬Ubuntu Linux啟動(dòng).登錄到Instant Contiki,密碼是user.

打開Contiki系統(tǒng)后,在環(huán)境中安裝一些需要的軟件及編譯軟件.通過以下指令安裝下載SDN-WISE, Contiki, Mininet和SDN控制器ONOS的源代碼.如圖6所示.

當(dāng)下載安裝完畢后,需要對(duì)ONOS進(jìn)行編譯,配置環(huán)境.輸入下列指令,完成對(duì)控制器的編譯.

echo "export ONOS_ROOT=~/onos" >> ~/.bashrc && source ~/.bashrc

source $ONOS_ROOT/tools/dev/bash_profile

cd ~/onos

tools/build/onos-buck build onos --show-output

tools/build/onos-buck run onos-local--clean debug

編譯完成后,基礎(chǔ)環(huán)境已經(jīng)搭建完畢,下一步開始要搭建軟件定義物聯(lián)網(wǎng)環(huán)境.

步驟一:傳感節(jié)點(diǎn)的創(chuàng)建.

啟動(dòng)Cooja模擬器,在終端輸入以下命令

cd~/sdn-wise-contiki/contiki/tools/cooja/ && ant run

打開Cooja模擬器,在Setting-extensions中找到SDN-WISE-emulated,部署SDN-WISE,如圖7所示.

創(chuàng)建新的模擬后,輸入仿真名稱為SD-IoT,點(diǎn)擊Create.如圖8所示,Cooja帶來了新的模擬的Network Window,左邊的屏幕頂部,顯示了模擬網(wǎng)絡(luò)中的所有Motes,它現(xiàn)在是空的,因?yàn)槲覀冞€沒有在網(wǎng)絡(luò)中增加節(jié)點(diǎn).Timeline Window,在屏幕的底部,顯示隨著時(shí)間的推移模擬中的所有通信事件,這很方便地了解在網(wǎng)絡(luò)傳播中所發(fā)生的狀態(tài).該Mote Output窗口中,在屏幕的右側(cè),顯示了所有的微塵所有串口打印輸出.在Notes window右上角可以記錄實(shí)驗(yàn)過程中的數(shù)據(jù)、問題以及一些小想法.Simulation Control Window是開始,暫停和重新加載仿真的地方.

圖7 在cooja中部署sdn-wise-emulated

圖8 SDN-WISE-Cooja模擬器

下一步就是在虛擬網(wǎng)絡(luò)上添加JAVA仿真的SDN-WISE節(jié)點(diǎn).首先要添加1個(gè)Sink節(jié)點(diǎn),點(diǎn)擊Motes -> Add motes -> Create new mote type -> SDN-WISE Emulated Sink.匯聚節(jié)點(diǎn)添加完,可以類似添加一些傳感節(jié)點(diǎn).

單擊Tools -> Radio messages.將會(huì)出現(xiàn)1個(gè)新窗口.此窗口將顯示有關(guān)通過無(wú)線電發(fā)送的消息的所有詳細(xì)信息.檢查接收器是否可以直接或通過多個(gè)躍點(diǎn)訪問所有節(jié)點(diǎn).單擊1個(gè)節(jié)點(diǎn)來查看它.將會(huì)出現(xiàn)1個(gè)綠色圓圈.選中區(qū)域可以到達(dá)綠色區(qū)域內(nèi)的所有節(jié)點(diǎn).有1個(gè)灰色圓圈,該圓圈表示節(jié)點(diǎn)的干擾區(qū)域.因?yàn)樾枰c外部控制器進(jìn)行交互,所以在“模擬控制”窗口中單擊Speed Limit并選擇100%.添加成功后的View Zoom如圖9所示.

圖9 傳感節(jié)點(diǎn)和匯聚節(jié)點(diǎn)

步驟二:連接ONOS控制器及測(cè)試連通性.

通過在ONOS中編寫簡(jiǎn)易的Dijkstra路由算法,以此來檢測(cè)網(wǎng)絡(luò)連通性.接收器節(jié)點(diǎn)是網(wǎng)絡(luò)中接收用戶發(fā)送的消息的第一個(gè)節(jié)點(diǎn).它檢查其WISE流表,若找不到匹配的規(guī)則,便詢問控制器.控制器提供到達(dá)目的地的路徑并發(fā)送相應(yīng)的規(guī)則.該路徑中的節(jié)點(diǎn)學(xué)習(xí)規(guī)則,可保證正確轉(zhuǎn)發(fā)消息.

當(dāng)節(jié)點(diǎn)收到自身的消息時(shí),它將在Mote輸出窗口中打印有效負(fù)載.如圖10所示.

圖10 Dijkstra路由算法的實(shí)現(xiàn)

如果要整體看到網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),可以檢查瀏覽器,將看到ONOS已經(jīng)識(shí)別出整個(gè)網(wǎng)絡(luò),此時(shí),即可以在Mininet主機(jī)和SDN-WISE節(jié)點(diǎn)之間路由數(shù)據(jù)包了.如圖11所示.

圖11 ONOS控制器下的整體網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)

3 結(jié)語(yǔ)

文章介紹了SD-IoT仿真實(shí)驗(yàn)平臺(tái)的具體搭建流程,相比于利用開源工具搭建實(shí)驗(yàn)環(huán)境的方法,該方法更便于初學(xué)者的快速掌握。實(shí)驗(yàn)證明,該仿真平臺(tái)具有一定的可靠性,可移植性強(qiáng)。

猜你喜歡
接收器模擬器數(shù)據(jù)包
二維隱蔽時(shí)間信道構(gòu)建的研究*
駕駛模擬器轉(zhuǎn)向系統(tǒng)的設(shè)計(jì)與研究
了不起的安檢模擬器
盲盒模擬器
劃船模擬器
民用飛機(jī)飛行模擬機(jī)數(shù)據(jù)包試飛任務(wù)優(yōu)化結(jié)合方法研究
淺談一種新型的25Hz相敏軌道電路微電子接收器
C#串口高效可靠的接收方案設(shè)計(jì)
奇奇小笨探秘海洋世界(六)
無(wú)線充電器