刘会珍
(滁州职业技术学院,安徽 滁州 239000)
目前我国已经全面跨入信息化时代,ZigBee技术作为信息产业最关键的信息技术之一,具有非常广泛的应用前景。尤其是在多元化通信技术的发展背景下,提升ZigBee技术的通信性能、减少信道干扰等是强化与进一步推广ZigBee技术的关键[1]。对此,众多研究人员对ZigBee技术进行了优化与改进,王能河、王飞等人(2018)提出一种基于GA-PSO算法的ZigBee自组网并通过仿真实验结果显示很大程度上减少了延时,性能的整体性得到大幅度提高;于纪言、李铁良等人(2018)提出了一种新孤立节点技术并通过仿真测试得到该技术能对节点入网时间进行缩短;何智勇(2018)针对存在死亡节点率高等问题,在结合ZigBee技术路由协议的基础上提出了改进型算法——G-AODVjr,最后通过仿真结果证明改进后的算法能大幅度提高节点的生存率,使节点能量处于均衡状态[2-4]。综合前人的研究可以明显得知加强ZigBee技术协议算法优化是强化该技术应用的重要内容。对此本文提出一种基于ZigBee技术的路由协议改进算法,来实现网络协调器的底层优化和通信性能提升,从而强化ZigBee技术的进一步推广与应用。
ZigBee技术是一种新兴的具有短距离、低功耗、低成本的无线通信技术,是介于无线标记技术和蓝牙之间的一种技术方案。该技术是基于IEEE 802.15.4无线标准下研发的关于组网、信息安全与应用等方面的通信技术[5]。飞利浦以及摩托罗拉等众多国际知名企业在2001年8月共同成立了ZigBee联盟,其着力开发低成本、低功耗等功能的无线通信技术,这正是ZigBee技术的由来。于2004年联盟发布了第一款标准协议正式标志着ZigBee技术的兴起。ZigBee技术在功耗、成本、组网以及数据传输可靠性等多个方面具有很大的优势性,尤其是通信标准能与多个传感器之间起到协调通信的作用,使其具有极强的应用价值。目前ZigBee技术得到广泛应用,在医疗、工业检测以及智能家居等多个领域都可见其身影,并且随着ZigBee技术不断成熟其应用范围与规模将不断壮大。
ZigBee的网络结构体系是在传统的ISO/OSI模型上仅选择了四层进行定义。应用层(APL)、网络层(NWK)、媒体访问控制层(MAC)以及物理层(PHY)构成完整的ZigBee协议结构,其中MAC与PHY层使用的是IEEE802.15.4 协议,NWK与APL层则有ZigBee联盟制定[6]。ZigBee的网络结构体系由下层向上层提供数据与管理接口等服务。从网络配置结构上来说ZigBee技术网络主要可以分为星状、网状以及簇树状这三种类型的拓扑结构,如图1所示。
图1 拓扑结构
这种类型各有优势,根据不同的使用环境进行适用。在拓扑结构中共分为终端节点、路由器节点和协调器节点三种节点,其中协调器节点属于功能型节点,其主要起到启动时建立网络通信以及节点入网与退网等功能,路由器节点与终端节点则分别起到转发消息、采集数据与路由器节点通信的功能。无论是哪种扑结构,在ZigBee中协调器节点都是唯一存在的。
ZigBee无线通信网络的低功耗以及高可靠性等特点的实现,有赖于簇树(Cluster-Tree)与精简按需距离矢量(AODVj)路由协议算法[7]。
簇树路由协议算法(Cluster-Tree)是根据传输数据的目的节点的网络地址从而计算出下一跳节点的地址。假设网络地址为A的节点,其目的节点的网络地址为D,并且D网络地址满足公式(1),那么D网络节点则是A节点的一个子节点。
A (1) 其中skipd是深度为d 的父节点与子节点之间的分配网络地址的偏移量,满足公式(2)。 Cskip(d)={1+Cm*(Lm-d-1),Rm-1 (2) 当节点的目的节点为接收节点的一个子节点,此时节点A就需要将传输的数据发给它的所有子节点。若节点的网络地址满足D>A+Rm×Cskip(d),这就说明所需要发送数据的目的节点是节点的一个终端子节点,假定下一跳节点的地址N=D,不然为公式(3)所呈现的网络地址。如果当节点的目的节点不是接收节点的一个子节点,那么则会分组发送至节点的父节点。 (3) AODVj算法是简化了的AODV算法,其继承了AODV算法绝大部分的优良特性,AODVj路由协议中取消了先驱节点列表且未使用目的节点序列号。当AODVj路由协议接受目的节点的传输数据后会回复RREP数据包,这极大地减少了的控制量,简化了运算流程。另外,当通信链路断开时,AODVj路由协议会采用本地修复,此时只允许目的节点回复RREP数据包。簇树路由协议算法存在延时性较大且传输分布不均最后造成通信中断,而AODVj算法虽具有延时性短的特点但是存在的较高的消耗性,对此ZigBee技术将这两种算法结合起来,集合了这两种算法的优势。 虽然在ZigBee网络中采用了Cluster-Tree和AODVj路由协议算法,但是在实际的应用过程中还存在着不少的问题,在数据传输性能上还有待进一步提升才能满足日益增长的ZigBee技术应用需求。对此在结合前人的研究成果基础上提出了一种改进后的路由协议算法,在传统的ZigBee路由协议算法上,对路由发现过程中的RREQ分组转发方向进行预先确定从而来控制其分组发送的范围,同时还利用转发节点的邻居列表来减少节点的跳数,另外设置变量Pmin随着时间来不断进行调整使得网络能量消耗处于均衡。 为了明确改进后的ZigBee技术路由协议算法的性能是否能够达到预期设想,为此利用NS2仿真软件进行仿真模拟。NS2仿真软件是美国伯克利大学开发的一种面向对象的网络仿真工具包,是目前最常用来对ZigBee进行仿真的权威性仿真软件。设定网络覆盖面积为50mX50m,节点数量共计50个,节点初始能量均是100J,传输速率与数据包长度分别为250kb/s和64Byte,时间间隔设置为100s,网络设置参数Cm、Rm与Lm分别为5、4和4,通过对传统的ZigBee技术路由协议算法和改进后的算法在网络节点平均跳数、启动时间以及节点失效个数上的仿真结果具体如下所示。 网络节点平均跳数表示的是所有的数据包被转发的总次数/接收到的数据包数量,其仿真结果如图2所示,两种算法在网络节点的平均跳数对比结果可以看到,改进后的ZigBee路由协议算法的平均跳数明显要优于传统算法。因为改进后的算法在路由发现阶段就有效地减少了RREQ分组转发从而使得路由过程中节点的平均跳数减少,并且随着节点数量的增多效果更为明显。 图2 两种算法网络节点平均跳数仿真结果对比 网络失效节点指的是能量耗尽后的节点数量,一般来说节点深度越浅越容易变成失效节点。 图3 两种算法网络失效节点数仿真结果对比 如上图3,网络失效节点的数量对比结果显示,改进后的ZigBee路由协议算法的失效节点数量会随着时间的推移不断增加,但是数量的增长速度与数量要明显小于传统ZigBee算法,能有效控制因能量耗尽而出现的网络分割现象。 仿真结果显示,改进后的算法的节点通信启动时间为30.6s,比传统算法的启动时间要快上近3秒,使得网络性能得到很大程度的提高。 为提升ZigBee网络的整体性能,基于ZigBee技术进行了路由算法改进,仿真实验结果显示,改进后算法能减少网络节点的平均跳数和失效节点数量,同时缩短启动反应时间,综合显示满足预期效果,达到ZigBee网络性能优化的目的。2.2 ZigBee技术路由协议改进算法
3 基于NS2仿真软件的仿真结果分析
3.1 网络节点平均跳速结果对比
3.2 网络失效节点个数结果对比
3.3 网络启动反应时间结果对比
4 结论