刘 艳 赵冬会
(1.大连大学大连市环境感知与智能控制重点实验室 大连 116622)(2.大连大学信息工程学院 大连 116622)
ZigBee 是应用于无线监测与控制应用的全球性无线通信标准,通过将无线通信技术与教育、医疗、娱乐、军事、工业控制、环境监测等多个领域的有效融合,逐步提升了人们生活的便利化程度[1]。然而,实际应用中ZigBee无线传感器网络(WSN)的拓扑结构常因设备故障、节点的移动性和其它因素而发生改变,甚至会导致严重的后果,例如在远程医疗监护系统中,如果病人出现紧急状况,而家庭ZigBee 无线传感器网络却未能及时向医院发出报警,后果将是灾难性的。因此,了解ZigBee 网络的基本行为特性对确定它在各种应用场合下的适用性十分重要,尤其是网络节点移动性对ZigBee路由协议的影响,因为多数应用中ZigBee无线传感器网络节点的移动性是不可避免的[3~4]。
然而没有模拟仿真技术的支持,分析和评价具有移动节点的ZigBee 网络泛在通信能力是十分困难的。目前主要使用的仿真工具是OPNET 和NS-2,NS-2 开发效率较低,且没有节点模型,OPNET 因拥有强大的模型库、能逼真再现真实的网络环境而备受青睐。
在OPNET中ZigBee网络建模方面,目前多数文献聚焦于静态节点ZigBee网络建模研究,鲜有考虑移动节点的动态网络建模。此外ZigBee标准中AODV协议无法区分ZigBee设备类型,致使数据路由阶段为终端设备广播冗余RREQ数据包,加剧了网络阻塞。
近几年,基于OPNET 国内外学者在网络性能分析、评价方面取得了一些研究成果,早期主要使用OPNET 对ZigBee 网络三种拓扑结构进行性能仿真分析与评价[6~8],没有考虑节点的移动性。文献[9]在三种拓扑结构下研究了移动节点对网络的数据丢包、吞吐量、端到端延迟性能的影响,但未考虑移动节点的数量变化因素。文献[10~12]在分析评价网络性能中,虽然考虑了移动节点的数量变化,但未涉及移动节点速度对网络MAC 负载、MAC 延迟、端到端延迟性能的影响分析研究。
为此,本文首先基于OPNET构建具有移动Zig-Bee 节点的三种拓扑结构ZigBee 网络模型,改进其自带ZigBee节点网络层进程域模型,创建状态转移过程,模拟节点动态入网特性;改进平面距离向量路由协议(AODV)与Tree 路由结合机制,改善网络节点组网能力。其次,仿真研究移动节点数量和移动节点速度对三种拓扑结构ZigBee 网络MAC 负载、MAC 延迟、端到端延迟性能的影响,旨在分析评估三种拓扑结构ZigBee网络的环境适应性。
如图1 所示,本文采用网络域、节点域、进程域三层建模机制,基于OPNET 仿真平台构建了星型拓扑结构、簇状拓扑结构、网状拓扑结构的移动ZigBee 节点网络仿真模型。图中虚线为模型仿真之后可视化的无线连接。通过设置协调器属性Network Parameters 为Default Star Network 、Default Tree 或Mesh Network 可实现三种不同网络拓扑结构之间的切换。
图1 ZigBee网络仿真模型
如图2 所示,本文所建ZigBee 网络的节点模型采用OPNET 模型库自带ZigBee 节点域模型结构,从上至下分为应用层、网络层、MAC 层以及底层无线收发状态机模块,保留OPNET 模型库自带Zig-Bee 节点应用层、底层的原有功能,重点对其网络层进程进行了改进,旨在监控ZigBee网络节点动态入网过程及数据路由信息,这对医疗监控、独居老人监护等应用中实施及时救护至关重要。
图2 ZigBee节点域模型
为监控网络中移动节点的动态入网及数据路由过程,本文在OPNET 的ZigBee 节点模型网络层进程域中,利用状态转移图描述节点进程。如图3所示,用init、wait、set_network、active、route 五个状态模拟协调器节点网络层进程行为特性,用状态init、wait、join_network、active、route模拟非协调器节点网络层进程行为特性。其中,状态init 描述节点初始化过程,wait 描述协调器组网或是节点入网等待过程,set_network 描述组网过程,join_network 描述入网过程,active描述数据采集传输等活动过程,route 描述数据路由过程。同时,对原ZigBee 路由协议进行如表1 所示的改进,实现了移动节点的动态入网和数据路由,不仅减少了节点入网所需路由器数量,而且增强了网络的组网能力、降低网络堵塞率。
图3 ZigBee_network进程域模型
表1 原ZigBee协议与改进ZigBee协议对比
2.2.1 移动节点的入网实现
ZigBee网络节点部署完毕后,所有节点都进入网络初始化过程,分别被赋予协调器节点、路由器节点和传感器节点功能。为给相应节点赋予移动特性,本文创建进程状态active 后,在header block中加入如下代码并调用NODE_MOBILE。
为监控移动节点的动态入网及实时监测数据传输过程,本文给图3 中的协调器节点set_network状态设一个状态转移函数(SCAN_SUCCESS)/wpan_zigbee_set_network()进行网络配置;给非协调器节点join_network 设三个状态转移函数(PK_FROM_MAC)/wpan_handle_join_response()、(WAIT_TIMER_DONE)/wpan_handle_wait_response()、(SCAN_SUCCESS)/wpan_zigbee_join_network()分别实现子节点处理父节点回复的响应帧过程、子节点计时等待父节点回复响应帧过程、子节点成功入网过程。在计时器范围内子节点收到父节点回复响应帧,则节点加入网络进入active状态;若未收到父节点回复,则子节点入网失败,对此设转移函数(NODE_FAILURE)/wpan_restart_scan 实现重新扫描寻找合适的父节点入网。节点动态入网流程如图4所示。
图4 节点入网过程实现
2.2.2 数据路由的优化设计
为优化移动节点数据路由过程,增强组网能力,降低网络阻塞,进一步优化AODVjr与Tree路由结合机制,配置参数进行路由策略选择。优化的数据路由使节点具有动态维护和修复路由表的能力,当移动路由节点在网络中出现故障时,无需再为路由节点分配初始网络地址后更改其网络地址。移动节点全部接入网络所需路由器少,一定程度上提升路由节点的组网能力。对图3 中active、route 设状态转移函数:(HELLO_TIMER_EXPIRY)/aodvjr_rte_rrep_hello_message_send()、(PK_FROM_APP)/wpan_handle_app_pk ( ) 、(PK_FROM_MAC)/wpan_handle_mac_pk ( ) 、(WAIT_RESPONSE)/wpan_wait_route_response()、(PK_FROM_MAC)/wpan_handle_routing_response()、(ROUTE_DISCOVERY)/route_discovery_timeout()分别实现广播信息计时等待路由选择过程、处理来自应用层数据包过程、处理来自MAC 层数据包过程、等待路由回应过程、处理路由回应过程、路由发现过程。对于一个终端节点发送数据,启动执行(START_ROUTING)/wpan_start_route()转移到route状态根据Tree 路由将数据包发送给其父节点,父节点收到MAC 层数据包后立即搜索路由表,若路由表中有可用路由,发送数据至下一跳路由,若路由表中无可用路由,将AODVjr 与Tree 路由结合(ROUTE_DISCOVERY)/route_discovery_timeout()进行初始路由发现,创建路由。在整个数据传输过程中,路由器起到建立路由路径与转发数据的功能。路由节点会定期广播消息维护自己的路由,确保路由建立后的有效性。数据路由流程设计如图5所示。
图5 数据路由流程
本文以200×200m2区域为应用场景,搭建节点随机分布的三种拓扑结构ZigBee 网络。实验仿真环境为OPNET Modeler14.5,主要参数设置如下,物理层主要参数:工作频段2.4GHz,数据速率250kbps,传输功率Pt=0.05mw;MAC 层主要参数:最小退避指数3,最大退避次数4;网络层主要参数:最大子节点数Cm=7,子节点中最大路由器数Rm=5,网络最大深度Lm=5;应用层:以bernouli(1.0s)为数据包到达时间间隔进行发送。
图6 是节点移动过程仿真图,图中coordinator组建了星型拓扑结构PAN1 子网,coordinator_0 组建了簇状拓扑结构PAN2 子网,移动节点mobile_node_0 最初由PAN1 子网a 处位置沿着本文设定的轨迹线开始移动,仿真运行30s 后节点离开PAN1 子网进入PAN2 子网,此时移动节点只向PAN2 子网的设备发送数据信息,表明移动节点完成了PAN1、PAN2 子网的切换动作,由此验证所建进程模型具有支持节点移动的有效性。
图6 节点的移动性仿真
为验证改进数据路由协议的性能,对OPNET自带节点进程模型和本文设计的节点进程模型进行仿真对比实验。因网状ZigBee网络最为复杂,故本文以网状ZigBee 网络来建立网络模型组网对比仿真,实验节点数选11个,其中协调器1个,移动节点10 个(移动路由节点两个,移动终端节点8 个),如图7 仿真结果显示本文模型只需两个路由11 个节点即可全部入网,而OPNET 自带ZigBee 模型中有两个子节点未成功入网。随着移动节点数量的增加,本文模型和OPNET 自带ZigBee 模型全部节点入网所需的路由器数量都在增加,但同等规模网络本文模型所需路由器数量比OPNET 自带ZigBee模型少,且网络节点数越多,该优势越明显,试验结果数据统计如表2所示。
图7 移动节点接入网络所需路由器数对比
表2 不同规模网络需要路由器数
为评估三种拓扑结构ZigBee 网络的环境适应性,基于本文改进模型分析移动节点数量及速度变化对三种拓扑结构ZigBee 网络性能的影响。星型ZigBee 网络中移动节点全部是终端节点,簇状Zig-Bee 网络、网状ZigBee 网络中移动节点分别为20%的路由节点和80%的终端节点,在移动节点数量由10、30 至50,节点速度0.2m/s、0.4 m/s、0.6 m/s、0.8 m/s、1.0 m/s 下进行每组10 次仿真试验,仿真结果以ZigBee网络MAC负载、MAC延迟、端到端延迟为性能指标取10次均值进行分析。
MAC 负载表示网络中所有WPAN 节点较高层发送给802.15.4 MAC层的特定PAN的总负载。
图8 三种拓扑结构ZigBee网络MAC负载
MAC 延迟表示网络中所有WPAN 节点的802.15.4 MAC 接收并转发到更高层的所有数据包的延迟。
图9 为不同移动节点数量在不同速度下三种拓扑结构ZigBee 网络的MAC 延迟,随着节点数量的增加,三种拓扑结构的MAC 延迟均有所增加,随着节点速度的增加,由于节点流动性的加快网络流量得到均匀分配,MAC延迟有所下降。
图9 三种拓扑结构ZigBee网络MAC延迟
端到端延迟是传播延迟,拥塞延迟,访问延迟,排队延迟,分组/缓冲延迟和传输延迟的总和。
图10 三种拓扑ZigBee网络端到端延迟
本文对OPNET 自带ZigBee 节点网络层进程域模型进行改进,利用状态转移过程模拟节点移动进程特性,优化节点路由协议,改善基于OPNET 的ZigBee 无线传感器网络模型组网能力及网络阻塞状况,为进一步评价不同ZigBee网络拓扑结构的环境适应性提供了有效支撑。不同移动节点数量、移动节点速度下三种拓扑结构ZigBee 网络性能仿真结果表明:簇状ZigBee 网络能够承受更好的负载,星型ZigBee网络在延迟方面具有突出优越性,综合考虑负载和延迟两方面性能,网状ZigBee网络具有更大的优势。