牟杰,蔡自興,劉麗玨
(中南大學(xué)信息科學(xué)與工程學(xué)院,湖南長沙 410083)
ZigBee簇狀網(wǎng)的OMNeT++仿真模型
牟杰,蔡自興,劉麗玨
(中南大學(xué)信息科學(xué)與工程學(xué)院,湖南長沙 410083)
最新版的ZigBee 2007協(xié)議規(guī)范允許在一個(gè)網(wǎng)絡(luò)中部署64 000個(gè)節(jié)點(diǎn)以上,但目前市場(chǎng)和技術(shù)尚未完全成熟,國內(nèi)仍無大規(guī)模節(jié)點(diǎn)部署的實(shí)例.為了給大規(guī)模部署Zigbee節(jié)點(diǎn)的研究提供參考模型,通過OMNeT++仿真環(huán)境,圍繞Zigbee 2007協(xié)議中定義的網(wǎng)絡(luò)結(jié)構(gòu)及AODV路由算法進(jìn)行了大規(guī)模節(jié)點(diǎn)的組網(wǎng)和路由仿真.仿真實(shí)驗(yàn)表明,該模型具有Zigbee 2007網(wǎng)絡(luò)層和介質(zhì)訪問控制層的組網(wǎng)和路由功能,成功實(shí)現(xiàn)了大規(guī)模節(jié)點(diǎn)的自組網(wǎng)和數(shù)據(jù)傳輸,可用于大規(guī)模部署ZigBee節(jié)點(diǎn)的可行性研究.
ZigBee;OMNeT++;AODV;大規(guī)模節(jié)點(diǎn)網(wǎng)絡(luò);仿真模型
無線傳感器網(wǎng)絡(luò),尤其是成百上千個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)研究必須依賴于仿真模型.通常,仿真模型要盡可能接近實(shí)際情況,同時(shí)易于修改和擴(kuò)展.文獻(xiàn)[1]針對(duì)少數(shù)節(jié)點(diǎn)的星型無線傳感器網(wǎng)絡(luò)進(jìn)行了仿真建模,文獻(xiàn)[2]建立的模型使用全局拓?fù)浣Y(jié)構(gòu)控制和GEAR路由.前者不符合大規(guī)模網(wǎng)絡(luò)的要求,后者不符合外設(shè)資源有限的無線傳感器節(jié)點(diǎn)網(wǎng)絡(luò)的實(shí)際條件.文獻(xiàn)[3]基于Worldsens的一部分WSNet建立了大規(guī)模節(jié)點(diǎn)模型XS-WSNet,但是Worldsens擴(kuò)展性能不理想.文獻(xiàn)[4]基于TinyOS的仿真組件TOSSIM建立了一個(gè)具有能量約束的分布式仿真模型,根據(jù)文獻(xiàn)[5]對(duì)仿真工具的對(duì)比分析,TOSSIM的使用比較復(fù)雜并且僅適用于MICA節(jié)點(diǎn)平臺(tái),不利于后續(xù)的開發(fā).文獻(xiàn)[5-6]均指出 OMNe T++是一款流行的、擴(kuò)展性能極好且運(yùn)行效率高的網(wǎng)絡(luò)仿真工具.故基于文獻(xiàn)[5-6]的分析,本文使用OMNeT++仿真工具,根據(jù)最新的無線傳感器網(wǎng)絡(luò)協(xié)議 ZigBee 2007建立一個(gè)大規(guī)模節(jié)點(diǎn)網(wǎng)絡(luò)的仿真模型,該模型具有自組網(wǎng)和點(diǎn)對(duì)點(diǎn)路由功能,基于模塊和面向?qū)ο蟮脑O(shè)計(jì)便于后續(xù)開發(fā)者使用,為研究現(xiàn)實(shí)中部署大規(guī)模傳感器節(jié)點(diǎn),如土地監(jiān)測(cè)等應(yīng)用,提供可靠的參考模型.
OMNeT++是一個(gè)優(yōu)秀的網(wǎng)絡(luò)仿真IDE(integrated development environment),其開發(fā)界面類似于開發(fā)JAVA常用的ECLIPSE,平臺(tái)使用C++和NED(network description)作為開發(fā)語言.NED語言用于定義一個(gè)模塊,通過幾個(gè)簡(jiǎn)單的向?qū)Ю泳湍茌p松掌握.模塊分為簡(jiǎn)單模塊和組合模塊,簡(jiǎn)單模塊的功能由用戶的C++代碼實(shí)現(xiàn),組合模塊由簡(jiǎn)單模塊組合而成.
OMNeT++是基于離散事件驅(qū)動(dòng)的,一個(gè)事件即一個(gè)消息,仿真中的節(jié)點(diǎn)在接收到消息后進(jìn)行相關(guān)操作,當(dāng)整個(gè)網(wǎng)絡(luò)中不再有消息傳遞時(shí)仿真停止運(yùn)行.OMNeT++中的圖形接口稱為Tkenv,它可以出色地顯示網(wǎng)絡(luò)連接的各種事件和狀態(tài)(比如收發(fā)消息、節(jié)點(diǎn)之間的連接狀態(tài)等),并能對(duì)事件及數(shù)據(jù)進(jìn)行記錄和統(tǒng)計(jì).
IEEE 802.15.4-2003 協(xié)議[7]將設(shè)備分為全功能設(shè)備(full-function device,F(xiàn)FD)和簡(jiǎn)單功能設(shè)備(reduced-function device,RFD),全功能設(shè)備根據(jù)在網(wǎng)絡(luò)中的角色又可分為網(wǎng)絡(luò)協(xié)調(diào)器(personal area network coordinator,PAN coordinator)和協(xié)調(diào)器(coordinator).在IEEE 802.15.4-2003標(biāo)準(zhǔn)中,簇狀網(wǎng)是一個(gè)多子網(wǎng)(cluster,也稱為簇)構(gòu)成的網(wǎng)絡(luò),如圖1所示.圖1中的連線表示父設(shè)備與子設(shè)備的關(guān)系,不表示信息流.每個(gè)子網(wǎng)呈樹形展開,由一個(gè)簇頭(cluster head)負(fù)責(zé)與其他子網(wǎng)通信和維護(hù)本子網(wǎng)通信.簇頭在子網(wǎng)內(nèi)的16 bit短地址(short address)為0,在子網(wǎng)內(nèi)的其他設(shè)備的短地址由簇頭分配.
圖1 IEEE 802.15.4-2003定義的簇狀網(wǎng)Fig.1 Cluster-tree network defined by IEEE 802.15.4-2003
ZigBee協(xié)議[8]是 ZigBee 聯(lián)盟根據(jù)IEEE 802.15.4-2003標(biāo)準(zhǔn)制訂的低速率、低功耗、全雙工的無線通信協(xié)議,最新的ZigBee 2007(下文均稱為Zig-Bee Specification)是目前惟一獲得ZigBee聯(lián)盟董事會(huì)許可的版本.
ZigBee Specification將設(shè)備分為協(xié)調(diào)器(ZigBee coordinator)、路由器(ZigBee router)和終端設(shè)備(ZigBee enddevice).ZigBee協(xié)調(diào)器即IEEE 802.15.4-2003的網(wǎng)絡(luò)協(xié)調(diào)器,ZigBee路由器即IEEE 802.15.4-2003的路由器,ZigBee協(xié)調(diào)器和ZigBee路由器都是全功能設(shè)備,兩者的角色是可以互相轉(zhuǎn)換的.ZigBee終端設(shè)備即IEEE 802.15.4-2003的簡(jiǎn)單功能設(shè)備,簡(jiǎn)單功能設(shè)備之間不能直接進(jìn)行通信,要通過其父節(jié)點(diǎn)(全功能設(shè)備)進(jìn)行通信.ZigBee Specification描述的通信過程不涉及網(wǎng)間通信,即ZigBee網(wǎng)絡(luò)僅僅描述圖1中網(wǎng)絡(luò)協(xié)調(diào)器所在的子網(wǎng)而不涉及其他子網(wǎng).
在本文中,ZigBee簇狀網(wǎng)指ZigBee Specification中的對(duì)等網(wǎng)絡(luò)(mesh network),把每個(gè)路由器及其子設(shè)備看成一個(gè)簇,如圖2所示.
圖2 ZigBee Specification定義的對(duì)等網(wǎng)絡(luò)Fig.2 Mesh network defined by ZigBee Specification
本模型設(shè)計(jì)的主要目的是實(shí)現(xiàn)大規(guī)模ZigBee節(jié)點(diǎn)的自組網(wǎng)和點(diǎn)對(duì)點(diǎn)路由,為研究ZigBee節(jié)點(diǎn)部署提供參考依據(jù),故模型包含了介質(zhì)訪問控制層和網(wǎng)絡(luò)層的組網(wǎng)和點(diǎn)對(duì)點(diǎn)路由功能,如圖3所示,應(yīng)用層僅用于產(chǎn)生凈載荷.
通常,建立模型前需要提出一些假設(shè)條件,本模型做如下假設(shè):1)信道是無損、無延遲的理想信道;2)鑒于ZigBee路由器與ZigBee協(xié)調(diào)器的角色可以相互轉(zhuǎn)換,認(rèn)為所有ZigBee路由器都可作為潛在的ZigBee協(xié)調(diào)器,模型中不單獨(dú)設(shè)計(jì)ZigBee協(xié)調(diào)器;3)網(wǎng)內(nèi)通信使用16 bit短地址,且短地址為靜態(tài)分配,使用OMNeT++給模塊分配的ID號(hào)作為短地址;4)廣播消息不設(shè)置重發(fā).在以上假設(shè)條件下,仿真模型設(shè)計(jì)如下.
圖3 ZigBee節(jié)點(diǎn)模型Fig.3 Node model of ZigBee
網(wǎng)絡(luò)節(jié)點(diǎn)個(gè)數(shù)可以選取任意值,出于仿真時(shí)間成本的考慮,總共使用500個(gè)節(jié)點(diǎn),具體網(wǎng)絡(luò)參數(shù)見表1.
表1 網(wǎng)絡(luò)關(guān)鍵參數(shù)Table 1 Parameters of the network
關(guān)于幀格式的細(xì)節(jié)請(qǐng)查閱文獻(xiàn)[8-9],本文對(duì)幀格式做了適當(dāng)簡(jiǎn)化:數(shù)據(jù)包(packet)包括MAC層幀頭(如表2所示)和網(wǎng)絡(luò)層消息.網(wǎng)絡(luò)層消息有4種,包括連接請(qǐng)求消息、連接確認(rèn)消息、路由請(qǐng)求消息和路由應(yīng)答消息,網(wǎng)絡(luò)層消息由網(wǎng)絡(luò)層幀頭和網(wǎng)絡(luò)層載荷組成,如表3~7所示.
表2 MAC層幀頭Table 2 MAC header
表3 網(wǎng)絡(luò)層幀頭Table 3 NWK header
表4 連接請(qǐng)求消息的網(wǎng)絡(luò)層載荷Table 4 Payload field of the connection request command
表5 連接確認(rèn)消息的網(wǎng)絡(luò)層載荷Table 5 Payload field of the connection confirm command
表6 路由請(qǐng)求消息的網(wǎng)絡(luò)層載荷Table 6 Payload field of the routing request command
表7 路由應(yīng)答消息的網(wǎng)絡(luò)層載荷Table 7 Payload field of the routing reply command
由文獻(xiàn)[8]得知2.4GHz ZigBee模塊 CC2430的傳輸距離約為100 m.組網(wǎng)過程中,ZigBee終端設(shè)備向其通信半徑內(nèi)最近的ZigBee路由器發(fā)出連接請(qǐng)求,ZigBee路由器之間也互相發(fā)送連接請(qǐng)求,請(qǐng)求成功后相互將對(duì)方添加到自己的鄰居表中.網(wǎng)絡(luò)節(jié)點(diǎn)隨機(jī)均勻分布在750 m×750 m的區(qū)域內(nèi),連接過程可用偽代碼表示為:這里需要說明的是,“<-->”在NED語言中表示2個(gè)門(gates)之間互連,門即消息傳遞的接口.
ZigBee協(xié)議規(guī)范使用的路由算法是經(jīng)典的AODV(Ad hoc on-demand distance vector)算法[10],該算法依賴于2個(gè)表——路由發(fā)現(xiàn)表(route discovery table)和路由表(route table),分別如表8~9所示.
表8 路由發(fā)現(xiàn)表Table 8 Route discovery table
表9 路由表Table 9 Route table
啟動(dòng)路由發(fā)現(xiàn)后,ZigBee路由器向通信距離內(nèi)的其他路由器廣播路由請(qǐng)求,發(fā)起或轉(zhuǎn)播路由請(qǐng)求的ZigBee路由器均建立以上2個(gè)表.其中路由發(fā)現(xiàn)表記錄了路由請(qǐng)求ID、發(fā)起路由的源地址、轉(zhuǎn)發(fā)路由請(qǐng)求節(jié)點(diǎn)的地址、前向代價(jià)(路由請(qǐng)求消息中的pathCost)、后向代價(jià)(路由應(yīng)答消息中的pathCost)以及路由發(fā)現(xiàn)超時(shí)時(shí)間.路由表中記錄了路由請(qǐng)求的目的地址、路由的下一跳地址和路由狀態(tài).
當(dāng)先后抵達(dá)ZigBee路由器的2個(gè)路由請(qǐng)求的routeRequestID和sourceAddress均相同時(shí),路由器只轉(zhuǎn)播前向代價(jià)最小的請(qǐng)求,同時(shí)更新路由發(fā)現(xiàn)表.當(dāng)多個(gè)路由請(qǐng)求均指向同一個(gè)目的地址時(shí),路由器在其路由表中僅建立一個(gè)與目的地址相應(yīng)的記錄,同時(shí)在其路由發(fā)現(xiàn)表中建立幾個(gè)不同的路由請(qǐng)求記錄,如圖4所示.
當(dāng)目的節(jié)點(diǎn)接收到路由請(qǐng)求,它就給發(fā)送路由請(qǐng)求的鄰居回發(fā)一個(gè)路由應(yīng)答.在接收到路由應(yīng)答后,ZigBee路由器更新路由表的nextHopAddress,使之成為最小后向代價(jià)的應(yīng)答消息的發(fā)送者.最后,從路由表中的nextHopAddress可確定一條從路由源地址到目的地址的代價(jià)最小路徑.
圖4 路由發(fā)現(xiàn)表與路由表的對(duì)應(yīng)關(guān)系Fig.4 The relationship between route discovery table and route table
組網(wǎng)完成后,在終端設(shè)備上每10 s隨機(jī)產(chǎn)生一個(gè)地址,若該地址與自己的地址相同,則終端設(shè)備生成一個(gè)數(shù)據(jù)包(data),并隨機(jī)挑選一個(gè)ZigBee路由器作為目的節(jié)點(diǎn).
ZigBee簇狀網(wǎng)的局部網(wǎng)絡(luò)放大后如圖5所示,圖中連線表示2個(gè)設(shè)備成功連接,end表示enddevice,rte表示 router.
圖5 路由器將終端設(shè)備的數(shù)據(jù)包暫存Fig.5 The data packet temporary storage in routers
圖5中,end[346]要給 rte[84]發(fā)送 1 個(gè)數(shù)據(jù)包,先將數(shù)據(jù)包發(fā)給其父節(jié)點(diǎn) rte[39],由于 rte[39]不是數(shù)據(jù)包的目的節(jié)點(diǎn),目的節(jié)點(diǎn)rte[84]不是rte[39]的鄰居,并且 rte[39]沒有 rte[84]的相應(yīng)路由記錄,所以rte[39]只能將數(shù)據(jù)包暫存并為該數(shù)據(jù)包尋找路由.
當(dāng)rte[39]成功收到路由應(yīng)答后,它先更新路由表,然后從數(shù)據(jù)隊(duì)列中取出數(shù)據(jù)包,將數(shù)據(jù)包的目的地址與路由表中的目的地址比對(duì),若相同且路由表狀態(tài)為ACTIVE,則將數(shù)據(jù)包發(fā)給路由表中nextHopAddress對(duì)應(yīng)的鄰居.鄰居繼續(xù)沿路由表中對(duì)應(yīng)的nextHopAddress轉(zhuǎn)發(fā)下去,最后rte[84]成功接收到end[346]發(fā)給它的數(shù)據(jù)包,如圖6所示.
圖6 數(shù)據(jù)包成功路由到目的地址Fig.6 The data packet has been successfully routed to its destination
為研究大規(guī)模無線傳感器網(wǎng)絡(luò)的部署提供參考,通過分析IEEE 802.15.4和ZigBee2007協(xié)議,運(yùn)用開源、構(gòu)件化、面向?qū)ο笤O(shè)計(jì)的網(wǎng)絡(luò)仿真工具OMNeT++建立了大規(guī)模ZigBee節(jié)點(diǎn)的網(wǎng)絡(luò)仿真模型.仿真結(jié)果表明,該模型具有大規(guī)模節(jié)點(diǎn)的自組網(wǎng)和路由功能,為研究現(xiàn)實(shí)中部署ZigBee節(jié)點(diǎn)提供了可靠友好的仿真環(huán)境.后續(xù)的工作可以分3個(gè)方向:1)繼續(xù)完善本模型,如增加節(jié)點(diǎn)移動(dòng)性能,改進(jìn)信道模型,增加傳感模塊和能量模塊等,實(shí)現(xiàn)網(wǎng)絡(luò)覆蓋、能量效率、安全加密等功能,以滿足部署ZigBee節(jié)點(diǎn)的研究需要;2)加入不同的無線傳感器通信協(xié)議,比較不同協(xié)議之間的性能;3)基于不同的仿真工具開發(fā)仿真模型,比較各個(gè)模型的性能,為不同的應(yīng)用場(chǎng)合提供量材定制的仿真環(huán)境.
[1]FENG Chen,F(xiàn)ALKO D.A simulation model of IEEE 802.15.4 in OMNeT++[C]//Proceedings of the 6th GI/ITG KuVS Fachgesprach Drahtlose Sensornetze.Aachen,Germany,2007:35-38.
[2]CHEN Jiming,ZHANG Jianhui,XU Weiqiang,et al.The development of a realistic simulation framework with OMNeT++[C]//Second International Conference on Future Generation Communication and Networking.Sanya,China,2008:497-500.
[3]ALI A,SEBASTIEN T.XS-WSNet:extreme scale wireless sensor network simulation[C]//2010 IEEE International Symposium on a World of Wireless Mobile and Multimedia Networks.Montreal,Canada,2010:1-9.
[4]MINA J,JAE C.SWARM-eTOSSIM:a simulator for distributed energy-constrained tiny devices[C]//2011 Tenth International Symposium on Autonomous Decentralized Systems.Kobe,Japan,2011:17-24.
[5]MUHAMMAD Z,BOB A,F(xiàn)AYCAL B,et al.Limitations of simulation tools for large-scale wireless sensor networks[C]//2011 Workshops of International Conference on Advanced Information Networking and Applications.Singapore,2011:820-825.
[6]EYANGELIA K,VASSILIOS V.Assessment of network simulators for real world WSNs in forest environments[C]//2011 International Conference on Networking,Sensing and Control.Delft,Netherlands,2011:427-432.
[7]LAN/MAN Standards Committee of the IEEE Computer Society.SS95127 Part 15.4:wireless medium access control(MAC)and physical layer(PHY)specifications for lowrate wireless personal area networks(LR-WPANS) [S].New York,USA:The Institute of Electrical and Electronics Engineers Inc,2003:29-160.
[8]ZigBee-Alliance.ZigBee specification:document 053474r17[S].San Ramon,CA,USA:ZigBee-Alliance Inc,2008:259-418.
[9]郭宏福,白麗娜,郭志華.2.4 GHz Zigbee數(shù)傳模塊傳輸距離的估算方法[J].西安電子科技大學(xué)學(xué)報(bào),2009,36(4):691-695.
GUO Hongfu,BAI Li’na,GUO Zhihua.Estimation method for the transmission distance for the 2.4 GHz Zigbee application[J].Journal of Xidian University,2009,36(4):691-695.
[10]CHARLES E,ELIZABETH M.Ad-h(huán)oc on-demand distance vector routing[C]//Proceedings of the Second IEEE Workshop on Mobile Computing Systems and Applications.New Orleans,USA,1999:90-100.
牟杰,男,1987年生,碩士研究生,主要研究方向?yàn)闊o線傳感器網(wǎng)絡(luò).
蔡自興,男,1938年生,教授,博士生導(dǎo)師,首屆國家級(jí)教學(xué)名師獎(jiǎng)、寶鋼教育基金優(yōu)秀教師特等獎(jiǎng)和徐特立教育獎(jiǎng)獲得者,國際導(dǎo)航與運(yùn)動(dòng)控制科學(xué)院院士、紐約科學(xué)院院士,任中國人工智能學(xué)會(huì)第5屆理事會(huì)副理事長及智能機(jī)器人專業(yè)委員會(huì)主任、中國自動(dòng)化學(xué)會(huì)理事、中國計(jì)算機(jī)學(xué)會(huì)模式識(shí)別與人工智能專委會(huì)委員等.主要研究方向?yàn)橹悄芟到y(tǒng)、人工智能、智能控制、智能機(jī)器人等.主持并完成包括國家自然科學(xué)基金重點(diǎn)項(xiàng)目在內(nèi)的科教研究項(xiàng)目30余項(xiàng),其中獲國際獎(jiǎng)勵(lì)2項(xiàng)、國家級(jí)獎(jiǎng)勵(lì)2項(xiàng)、省部級(jí)等獎(jiǎng)勵(lì)15項(xiàng).發(fā)表學(xué)術(shù)論文660余篇,出版專著、教材32部.
劉麗玨,女,1973年生,副教授,主要研究方向?yàn)槿斯ぶ悄堋⒅悄苡?jì)算、傳感器網(wǎng)絡(luò)、多機(jī)器人等.
A simulation of the ZigBee cluster-tree network in OMNeT++
MOU Jie,CAI Zixing,LIU Lijue
(Institute of Information Science and Engineering,Central South University,Changsha 410083,China)
ZigBee 2007 offers full wireless mesh networking capable of supporting more than 64,000 devices on a single wireless sensor network.Due to immature markets and technology,a deployment with hundreds of thousands of nodes does not exist at present.By using the OMNeT++simulation IDE,a simulation model of a large-scale network according to the ZigBee 2007 protocol was created which aimed at providing a reference model for deploying a large-scale sensor network.The model implemented the networking and routing functions of the network layer and medium access control layer according to the ZigBee 2007 protocol,and successfully established an ad-h(huán)oc network while transmitting data internally.For these reasons,it can be used for the study of deploying a large-scale ZigBee network.
ZigBee;OMNeT++;AODV;large-scale network;simulation model
TP393
A
1673-4785(2012)01-0056-05
10.3969/j.issn.1673-4785.201107001
http://www.cnki.net/kcms/detail/23.1538.TP.20120210.1640.001.html
2011-07-03. 網(wǎng)絡(luò)出版時(shí)間:2012-02-10.
國家自然科學(xué)基金資助項(xiàng)目(90820302,61175064).
牟杰.E-mail:JoeccMou@csu.edu.cn.