ZigBee网络地址分配机制及路由失效自修复研究

2018-03-07 01:03李清平刘清华傅幼萍
关键词:路由器延时路由

李清平,刘清华,傅幼萍

(1.浙江育英职业技术学院 信息技术分院,浙江 杭州 310018) (2.杭州万向职业技术学院 经济贸易系,浙江 杭州 310023)

基于IEEE802.15.4标准的ZigBee是一种低功耗、近距离的WSN(Wireless Sensor Network,无线传感器网络)通讯技术,具有短时延、低复杂度、自组织、低功耗、免执照频段等特点[1-4].作为一种新兴的无线通信技术,ZigBee得到了越来越广泛的关注和应用.由于ZigBee联盟直到2005年6月才推出技术规范[5],因此对于IEEE802.15.4和ZigBee的研究仍处于活跃阶段,目前主要存在以下几方面的问题:(1)ZigBee的核心技术之一是动态组网,即网络中的每个节点相隔一定时间,需要以无线信号交流的方式重新组网,这就涉及到网络地址的分配机制问题;(2)由于ZigBee网络中部署了大量微型无线传感器,节点分布密集,每一个网络节点除了自身作为信息采集点和执行来自中心的命令外,还承担着来自网络的数据中转任务.当由于能量耗尽、传感器损坏、环境变化等因素导致节点失效后,ZigBee网络能否有效修复路由路径、确保数据传输,也是技术瓶颈之一.

此外,ZigBee网络节点能耗问题、数据传输时延问题以及传输距离问题,均为当前ZigBee技术实际应用亟待解决和完善之处[6-8].

1 ZigBee设备类型及网络地址分配机制

1.1 ZigBee网络设备类型

ZigBee网络的基本单元是节点,按功能可分为全功能设备(Full Function Device,FFD)和简化功能设备(Reduced Function Device,RFD).FFD可用作网络协调器,连接协调器或另一个通信设备,还能发现其它FFD和RFD并建立通信联系.RFD按最少RAM和ROM资源设计成简单的收/发节点,能搜索现有网络,必要时传输数据,向协调器请求数据,多数时间处于休眠状态以节省电池能耗[9].

(1)协调器(Coordinator):启动和配置网络的设备,具有最高权限,负责网络正常工作以及保持与网络中其它设备的通信并负责网络ID的分配.一个ZigBee网络只允许有一个ZigBee 协调器.

(2)路由器(Router):一种支持关联的设备,能够实现其它节点消息的转发功能,同时还具有为其它子节点分配网络ID的功能,这就意味着路由器和终端设备可以不依赖协调器而自行构成一个ZigBee网络.

(3)终端设备(EndDevice):具体执行数据采集和传输的设备,不能转发其它节点消息.

1.2 ZigBee网络地址分配机制

ZigBee网络中的所有节点都有两个地址:64位的IEEE地址(MAC地址)和16位的网络地址.64位的MAC地址是全球唯一地址,由IEEE组织来分配和维护.16位网络地址是节点加入网络时动态分配的,用于设备识别和数据传输,仅在网络内部使用,采用逻辑树层次机制进行分配[9-10].

网络地址是节点加入网络时由其父节点动态分配的,彼此形成父子关系,所有的节点共同组成树状逻辑关系,逻辑树中的每一个节点都拥有两个参数:网络地址A和网络深度d,网络深度表示仅仅采用父子关系的网络中,一个数据分组发送到ZigBee协调器所传递的最小跳数[10-11].

Coordinator是整个ZigBee网络的根节点,当Coordinator建立一个新网络时,它将给自己分配网络地址A0=0,网络深度d0=0.如果节点i加入网络,并且与节点k连接,那么父节点k将根据自身的网络地址AK和网络深度dk,为子节点i分配网络地址Ai和网络深度di=dk+1,网络地址Ai的算法为[10-11]:

(1)如果加入的是没有路由功能的RFD节点,则:Ai=AK+Cskip(di)×Rm+i, 1≤i≤Cm-Rm.

(2)如果加入的是具有路由功能的FFD节点,则:Ai=AK+1+Cskip(di)×(i-1), 1≤i≤Rm.式中

Cskip(d)=

(1)

式(1)中:Cskip(d)表示不同深度下父节点拥有的地址数;Cm表示父节点可以拥有的最大子节点数;Lm表示网络最大深度;Rm表示父节点可以拥有的最大子路由节点数.

以图1为例说明网络地址的分配算法.协调器Coordinator节点的Cskip(d)=31,所以Coordinator关联的第1个路由器节点Router1分配地址1,第2个路由器节点Router2分配地址1+31=32,第3个路由器节点Router3分配地址32+31=63,第4个路由器节点Router4分配地址63+31=94,各个子路由器节点的地址以此类推.由于终端节点的父节点Coordinator的Rm=4,所以第1个终端节点EndDevice1的地址为0+31*4+1=125,第2个终端节点EndDevice2的地址为0+31*4+2=126,可见网络中所有同一父节点的终端设备的16位短地址都是连续的.

图1 ZigBee网络地址分配算法示意图Fig.1 Diagram of address allocation algorithm of ZigBee network

2 ZigBee网络路由算法及路由选择

路由协议是自组网体系结构的核心部分,ZigBee协议采用Cluster-Tree和AODVjr作为自身的路由算法,主要是发现和维护路由,选择路由并转发数据,监控网络拓扑结构变化等,以达到成本低、功耗低、可靠性高的设计目标[11-12].

2.1 ZigBee网络路由算法

1)Cluster-Tree路由算法

Cluster-Tree算法按树型结构分层遍历,节点根据目的网络地址计算下一跳.假设网络地址为A,网络深度为d的路由节点收到目的地址位为D的数据分组,则根据

A

(2)

判断是否为自己的子节点.

如果是自己的子节点,则转发给子节点N.N由公式(3)确定,即

(3)

如果不是自己的子节点,则转发给其父节点.

2)AODVjr路由算法

AODVjr(AODV Junior)算法是一种按需分配的路由协议,是对AODV(Ad-Hoc On Demand Distance Vector)算法的一种简化改进.首先源节点以广播的方式发送RREQ(Router Request,路由请求分组),具有路由功能的节点收到消息后,建立反向路由,转发RREQ分组,并将源节点到此节点的路由开销添加到路由搜索表和RREQ中,直到目的节点收到此RREQ.目的节点选择开销最少的反向路由,将RREP(Router Replies,路由回复分组)返回源节点,同时所有接收到此RREP分组的节点都将更新自己的邻居表,最终建立各个节点的路由表.

2.2 ZigBee网络路由策略

按有无路由功能,ZigBee网络节点可分为有路由功能的RN+节点(Coordinator设备、Router设备)和无路由功能的RN-节点(EndDevice设备).RN+节点有足够的存储空间和路由选择能力,执行AODVjr路由算法;RN-节点存储空间受限,不具备路由选择能力,收到分组后只能采用Cluster-Tree算法处理[12-14].不同规模下结合两种算法的ZigBee网络节点转发率和平均延时分别如图2和图3所示.

图2 不同网络规模的节点转发率Fig.2 Forwarding rate of nodes of different network scale

图3 不同网络规模的平均延时Fig.3 The average delay of different network scale

图2和图3显示,随着网络规模的扩大,ZigBee网络转发节点数占节点总数的比例整体上呈现不断下降趋势,平均延时逐渐减少,其原因在于随着网络规模的扩展,同一区域内的节点密度也随之增加,使得网络节点的转发率不断减小,平均延时因数据传输距离缩短,转发效率提升而降低.

3 基于OPNET平台的ZigBee网络路由失效自修复仿真

通过OPNET平台,仿真ZigBee网络的某个路由器节点失效后,其关联的子节点如何重新找到路由路径,从而体现ZigBee网络在无需人工干预情况下的自组织功能,并分析和评估由此对整个网络产生的影响.

3.1 OPNET仿真平台简介

OPNET是一个能够准确分析复杂网络性能和行为的仿真平台,提供Process(进程)、Node(节点)和Network(网络)三层建模机制,三层模型完全对应实际的协议、设备和网络层次,用户通过OPNET平台能完整而深入了解网络的相关特征.采用离散事件驱动模拟机理和混合建模机制,把基于包的分析方法和基于统计的数学建模方法结合起来,在提高仿真效率的同时,可得到详细的模拟结果[15-16].

3.2 场景设置及拓扑结构

设置一个2 000m×1 750m的ZigBee网络仿真场景,网络中包含一个ZigBee协调器Coordinator、一个ZigBee固定路由器Fixed_Router,一个ZigBee可移动路由器Mobile_Router和两个ZigBee终端节点EndDevice1、EndDevice2.终端节点EndDevice1、EndDevice2都无法直接与协调器Coordinator进行通信,必须通过各自关联的父节点路由器转发数据,EndDevice1通过Fixed_Router路由器接收转发Coordinator传送的数据分组,EndDevice2通过Mobile_Route路由器接收转发Coordinator传送的数据分组,如图4所示的粗实线展示部分.当Mobile_Route路由器沿着设定的白色细实线轨迹移动到ZigBee网络信号覆盖范围之外时,模拟该节点“失效”后EndDevice2的路由重发现和数据分组新的转发路径如图4虚线展示部分.

图4 ZigBee网络路由失效前后数据分组转发路径拓扑图Fig.4 Topological graph of data packet forwarding path before and after the routing failure of ZigBee network

3.3 仿真参数设置

设置ZigBee仿真场景中所有节点的PAN ID为1,信号传输频段为2 450MHz,发射功率为3mW,接收灵敏度为-85dBm.

dBm是无线网络发射功率的绝对值,其计算公式为:10lg(p/1mW)

式中,p是以mW为单位的功率值.

场景中,仿真节点发射功率为3mW,求得p=10lg3=4.77dBm ;因此,发射功率减去接收灵敏度的差值为4.77-(-85)=89.77dB.

自由空间路径损耗公式为

FSPL=32.45+20lgd(C)+20lgf

(4)

式(4)中:FSPL(Free Space Path-Loss)单位为dB;d(C)为视距传播距离,单位km;f为频率,单位MHz.

已知f=2 450MHz,FSPL=89.77dB,由式(4)可得d(C)=0.299 80km=299.8m.

从部署的仿真场景可知Coordinator的坐标(1 871,1 263),EndDevice1的坐标(673,970),EndDevice2的坐标(640,1 422),由此可以计算EndDevice1、EndDevice2分别与Coordinator之间的直线距离D(E1-C)=1 233.31m、D(E2-C)=1 241.23m,两者的值都大于视距传播距离d(C),说明两个终端节点接收的数据分组都无法通过协调器直接发送,且D(E1-C)和D(E2-C)两者之间的直线距离D(E1- E2)=453.2m,也大于视距传播距离d(C),说明彼此之间的信号区域不会覆盖重叠[16-18].因此终端节点EndDevice1、EndDevice2必须通过各自的父节点进行数据转发,这为模拟其中某一父节点失效后重新建立路由并转发数据的实验提供了可行性.

3.4 仿真结果分析

图5显示,Mobile_Route路由器沿着设定的轨迹移动,大约在12min后离开ZigBee网络,节点的路由功能“失效”.

图5 Mobile_Route节点路由功能变化情况Fig.5 The variation of routing function of Mobile_Route node

图6显示,开始阶段所有节点启动发送和接收工作,数据分组转发速率明显加大,几分钟之后趋于平稳,然后Mobile_Route路由器开始移动至约12min后离开ZigBee网络而路由功能“失效”,EndDevice2节点的接收速率因此而产生抖动现象,在与Mobile_Route路由器失联后,其数据接收中断,但在较短时间内重新恢复了与Coordinator协调器之间的通信,验证了网络设备较强的自我修复功能,同时也显示了ZigBee网络良好的鲁棒性.

图6 EndDevice2节点自我修复情况Fig.6 Self-healing of EndDevice2 node

路由节点“失效”后,网络数据传输的变化如图7所示.由于受影响节点能够在极短的时间内实现自我修复,重新恢复中断的收/发路径,因此从网络节点的接收速率来看,路由节点的“失效”对整个ZigBee网络的数据传输影响较小,显示了ZigBee网络良好的收敛性.

图8为Coordinator节点到EndDevice2节点的延时曲线.开始时节点延时增大,随后因Mobile_Route的移动引发延时曲线振荡加剧,路由“失效”后,数据传输中断,延时曲线陡然下降,但在很短时间内Coordinator就将数据分组通过Fixed_Router传送给EndDevice2节点,此时点对点延时曲线趋向平稳,进一步验证了ZigBee网络的“失效”自修复能力.

图7 ZigBee网络各节点应用层数据分组接收情况Fig.7 Reception of the application layer data packet of each node in the ZigBee network

图8 Coordinator节点到EndDevice2节点的延时情况Fig.8 Time delay from Coordinator node to EndDevice2 node

4 结束语

无线传感器网络WSN涉及嵌入式计算、无线传感器、现代通信、分布式信息处理等交叉学科,为当前无线组网技术的重点研究领域.自组网能力强、自恢复能力强的无线自组网技术标准ZigBee发展迅速,已在部分智能传感器场景中得到应用,智慧城市的建设和发展将进一步推动ZigBee产品的推广应用和不断更新.

ZigBee网络存在的问题主要体现在地址分配机制、节点能耗、数据传输时延、传输距离以及路由失效自修复等方面.逻辑树分配机制说明ZigBee网络中同一父节点的终端设备的16位短地址都是连续的,结合Cluster-Tree和AODVjr路由算法的RN+节点和RN-节点路由选择策略,使得网络转发节点数占节点总数的比例随网络规模的扩大呈下降趋势,平均延时逐渐减少,通过设置OPNET平台的仿真场景和拓扑结构,分析了路由失效对数据传输、点对点延时等性能产生的影响,通过路由收敛性验证了ZigBee网络的自我修复能力和网络的鲁棒性.

[1]AKYILDIZ I F, SU W, SANKARASUBRAMANIAM Y, et al. A survey on sensor networks[J]. IEEE Communications Magazine, 2002,40(8):102-114.

[2]IEEE Std.15.4:Wireless Medium Access Control(MAC) and PhysicalLayer(PHY) Specifications for Low-Rate Wireless Personal AreaNetworks[S]. NewYork: IEEE, 2003.

[3]RACHANA B S,RAJESH P.Comprehensive survey on effect of mobility over routing issues in wireless multimedia sensor networks[J].International Journal of Pervasive Computing and Communications, 2016,12(4):447-465.

[4]MANJEET S,SURENDER K S.A comprehensive review of fuzzy-based clustering techniques in wireless sensor networks[J].Sensor Review,2017,37(3):289-304.

[5] 郭昌飞.基于ZigBee的无线传感器组网技术研究与应用[D].北京:北京信息科技大学,2012.

[6] 潘恒曦,辛旺,范蟠果.ZigBee在无线传感器网络中的应用[J].机械与电子,2010(S1):245-248.

[7] 刘承鹏.无线传感器网络定位算法研究[D].淄博:山东理工大学,2016.

[8] 李冉.基于ZigBee无线传感器网络定位的研究[D].广州:广东工业大学,2016.

[9] 杨春华.基于ZigBee技术的无线网络协调器的研究[D].成都:西南石油大学,2011.

[10] 李明.IEEE802.15.4MAC协议中能耗与时延均衡研究[D].广州:暨南大学,2010.

[11] 王月平,耿晓菊,刘春涛,等.IEEE802.15.4MAC协议低功耗研究[J].计算机技术与发展,2009,19(12):139-142,165.

[12] 练云翔.无线传感器网络路由算法与能耗模型研究与仿真[D].兰州:兰州交通大学,2016.

[13] 周登龙,陈硕.ZigBee网络中不同路由性能的研究与仿真[J]无线互联科技,2012(9):69-71.

[14] 穆嘉松,刘开华,史伟光.ZigBee网络中基于节点移动性的路由选择策略[J].天津大学学报,2012,45(4):301-308.

[15] 李清平.基于进程核心的网络仿真建模及统计分析[J].武汉理工大学学报(信息与管理工程版),2012,34(6):681-683.

[16] 陈敏.OPNET网络仿真[M].北京:清华大学出版社,2004.

[17] 范燕,俞洋,李永义,等.基于ZigBee 无线传感器网络的远程监控系统[J].实验室研究与探索,2016,35(1):80-84.

[18] 王一棋,何丽莉,胡成全,等.基于ZigBee和Internet的无线智能家居网关系统[J].吉林大学学报(理学版),2015,53(2):302-306.

猜你喜欢
路由器延时路由
买千兆路由器看接口参数
维持生命
路由器每天都要关
路由器每天都要关
基于级联步进延时的顺序等效采样方法及实现
铁路数据网路由汇聚引发的路由迭代问题研究
多点双向路由重发布潜在问题研究
日光灯断电关闭及自动延时开关设计
一种基于虚拟分扇的簇间多跳路由算法
路由重分发时需要考虑的问题