一种基于ZigBee树状路由协议的改进算法ATSPF
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种基于ZigBee树状路由协议的改进算法ATSPF
周鑫;林勇
【摘要】ZigBee现有的树状路由协议是根据节点间的父子关系创建路由并进行数据传输,这样容易产生较长的路径并加重父节点的处理任务.提出一种基于树状路由协议的改进算法ATSPF,将ZigBee网络地址转换为逻辑索引值列表,根据索引值计算出节点所有邻居到目的节点的跳数,选择跳数最少的邻居为下一跳来建立路由.仿真结果表明,ATSPF可以有效减少路由跳数、降低分组丢失率、减小节点间通信时延、降低协调器的能量消耗、延长网络生存时间.%The current Zigbee tree routing protocol is based on the relationship between father and son nodes create routing and data transmission, which is easy to produce a longer path and aggravate the parent node processing tasks. An algorithm based on tree routing protocol named ATSPF is presented, which, translotes ZigBee network address to logical index value list, according to the index value calculats routing hops from all the neighbor node to the destination node, and choose the least number of hops neighbor as the next hop. The simulation results show that, ATSPF can effectively reduce routing hops, reduce the packet loss rate, reduce the inter-node communication delay, reduce the energy consumption of the coordinator, and prolong the survival time of the network.
【期刊名称】《科学技术与工程》
【年(卷),期】2012(012)032
【总页数】5页(P8722-8725,8729)
【关键词】树状路由协议;网络深度;逻辑索引值;路由跳数
【作者】周鑫;林勇
【作者单位】重庆电子工程职业学院,重庆401331;重庆电子工程职业学院,重庆401331
【正文语种】中文
【中图分类】TN925+.91
ZigBee是一种基于802.15.4协议的无线网络技术,具有低速率、短距离、高可靠性、低功耗等特点,常用于无线传感器网络(WSN)以及其他无线个域网络(WPAN)的组建,在工业控制和监控、家庭网络、楼宇自动化、汽车自动化等领域发挥着越来越重要的作用[1]。
目前,ZigBee网络采用的树状路由协议只是简单地根据节点间父子关系进行路径创建和数据的传输[2],当节点收到数据后,如果自己不是目的节点,就将数据交给父节点进行中继直至目的节点,这种处理方式虽然较为简单,但很容易产生较长的路径,消耗网络更多的能量,增加网络的时延[2,3]。
本文提出一种改进的基于ZigBee树状路由的协议 ATSPF(Address Transforming Short Path First,地址转换路径最短优先),该算法的核心思想有两点,一是如何将ZigBee网络中节点的16位网络地址转换为树的逻辑地址;二是如何根据逻辑地址计算出所有邻居节点到目的节点的跳数,并选择到目的节点路径最短(以去往目的节点跳数最少为判断依据)的邻居为下一跳地址。
1 Zigbee树状路由算法
已在ZigBee网络中的节点允许一个新节点通过它加入网络时,它们之间就形成了
父子关系,此时,父节点通过分布式机制为子节点分配一个16位的网络地址[2,3]。
以下是几个与树状路由相关的基本概念:
协调器:主节点,通常一个网络只有一个协调器,协调器管理网络中的其他节点,
并选择适当的参数初始化网络。
Cm:每个父节点最多可连接的子节点个数。
网络深度d:节点到协调器的跳数。
Lm:网络的最大深度。
Rm:子节点中最多可连接的路由节点个数。
Cskip(d):网络深度为d的父节点为其子节点分配的地址之间的偏移量。
Cskip(d)
的计算方法见公式(1):
ZigBee网络中有两类设备,分别叫做FFD(全功能设备)和RFD(精简功能设备)。
RFD设备不能接受新的节点加入网络,其Cskip(d)=0;FFD设备可以接受新的节点加入网络并为其分配一个16位的网络地址,其Cskip(d)>0。
ZigBee协议中规定,协调器的网络深度为0,其网络地址也为0。
父节点为第n个子节点(n=0,1,2,3…)分配网络地址An的方法见公式(2),其中Aparent表示当前父节点的网络地
址[4]。
为方便起见,本文以图1所示拓扑进行描述和说明。
图1 ZigBee网络示意图
如图1 所示网络,Cm=3,Lm=3,Rm=3,通过公式(1),可计算出各个网络深
度的偏移量Cskip(d);通过公式(2),可得出各节点的网址地址,如图2所示。
图2 各节点的网络地址和偏移量
文献[4,5]对树状路由寻址过程进行了详细的说明,过程如下:节点接收到数据
后,首先检查自己是否为目的节点,如果是则接收数据;否则检查自己的后代节点
是否为目的节点,如果是则将数据送到指定的子节点;如果不是,则将数据送给其
父节点进行中转。
如图2所示,若节点A要发数据到F,它总是将数据交给自己
的父节点B进行中继,因此会建立A→B→C→D→E→F的路由,然而这并非最优
的路径,若能选择A→J→E→F进行数据传输,则路由跳数更小,有利于平衡网络负载、延长网络生存时间[6—8]。
2 ATSPF路由算法
如前所述,当Zigbee网络使用原有的树状路由协议时,容易产生较长的路径,从而降低网络的各种性能。
基于此,本文提出一种改进的树状路由协议ATSPF,该
算法是将网络中各节点的16位网络地址转换成逻辑索引值列表,并根据索引值列表计算出所有邻居到目的节点的路由跳数,然后选择距离目的节点最近的邻居作为下一跳节点,据此来建立路由。
ATSPF算法描述如下:
第1步:当节点收到数据后,发现自己或其子节点并非目的节点,此时节点不会将
数据转交给上一级父节点进行转发,而是检查自己的邻居表,如果目的节点在其邻居表中,则直接进行传输,否则转入到第2步。
第2步:将邻居节点和目的节点的16位网络地址转换成逻辑索引值列表,对于同一颗子树分支中不同网络深度的子节点,其逻辑索引值列表的格式见表1。
表1 逻辑索引值网络节点深度逻辑索引值序列表0(协调器)[0 0 0 0……0][I10 0 0……0]2[I1 I20 0……0]3[I1 I2 I3 0……0]Lm [I1 I2 I3 I4……ILm 1]
列表中的元素个数为网络的最大深度值,处于同一网络深度的子节点,其逻辑索引值列表中的元素Ix从1开始,根据16位网络地址的大小顺序依次加1分别取值。
如图2所示网络拓扑,各节点转换后的逻辑索引值列表如图3所示。
图3 各节点的逻辑索引地址列表
第3步:根据逻辑索引值列表计算所有邻居节点到目的节点的跳数,并把到目的节
点跳数最小的邻居节点作为下一跳(如果有两个以上邻居节点到目的节点跳数同为
最小,则随机选择一个节点作为下一跳)。
假设有两个节点S和D,二者的逻辑索引值列表分别为:[S1S2S3… Sn]和
[D1D2D3… Dn],计算 S到D的跳数方法如下:
①查找S、D节点最近的共同父节点节点C,并计算出节点C的网络深度DCO,DCO等于节点S和节点D的逻辑索引值列表对应元素相等的个数。
②计算出节点S和节点D的网络深度DS和DD,其值等于各自逻辑索引值列表中不等于0的元素个数。
③节点S到节点D的跳数为Count=|DS-DCO|+|DD-DCO|。
例如:节点S和节点D的逻辑索引值列表分别为:S:[2 1 0],D:[2 2 2],,即
S1=D1=2,即两节点对应元素相等的元素个数为1,所以DCO=1;节点S和节点
D的逻辑索引值列表中各有2个和3个元素不为0,因此DS=2,DD=3;则节点S 到节点D的跳数为|2-1|+|3-1|=4。
根据以上规则,以图3为例,A节点要发送数据到F节点,先计算其所有邻居(节
点J、B、G)到F的跳数,如表2所示。
表2 节点A所有邻居到F的跳数A的邻居节点到节点F[2 2 2]的跳数J[2 1 0]3跳B[1 0 0]4跳G[1 2 0]5跳
此时A节点就会选择节点J为其下一跳节点,节点J会按照同样的方法计算其所有邻居节点(E、D、A)到节点F的跳数,并将跳数最小的的节点E作为下一跳,并将数据通过E直接传输到F,这样就建立起完整的传输路径A→J→E→F。
3 实验与仿真
为了验证上述算法,本文采用NS-2.30软件对ATSPF和ZigBee树状路由两种协议进行仿真,通过比较平均路由跳数、分组丢失率和端到端延时、协调器能量值变化四个参数来衡量网络的性能。
仿真网络场景范围100 m×100 m,100个通信节
点,协调器位于网络中心,其余节点分布在周围,节点间最大通信距离为15 m,数据流类型为CBR,分组包大小为 60 Bytes,Cm=4,Rm=4,Lm=6,假设进
行数据传输的源节点和目的节点分别为10对,15对,20对,30对,40对,仿
真时间100 s,仿真数据均为仿真20次取均值。
图4是ATSPF和ZigBee树状路由协议建立路由时的平均跳数对比,可以看出,
随着发起路由寻址次数的增加,参与寻址的节点数越来越多,通信范围也越来越大,平均路由跳数因而也随之增加。
由于ATSPF算法根据逻辑索引地址,选择到目的
节点跳数最小的邻居节点为下一跳,路径最短,这样可以减少节点能量消耗,延长网络生存时间。
图4 两种协议的平均路由跳数比较
图5显示的是两种协议分组丢失率对比,随着通信节点的增加,网络会变得拥塞,因此丢包率会逐渐上升,尤其是树状路由协议,当节点很多的时候,由于父节点中转的数据越来越多,其丢包率会明显增加;ATSPF算法选择跳数最小的路径进行传输,减轻了父节点的处理任务,因而丢包数也较少。
图5 两种协议的分组丢失率比较
图6和图7分别是节点间通信的端到端延时图以及协调器能量值变化图。
可以看出,相比于树状路由协议,ATSPF路由算法的路径更短,其时延也更小,实时性
优于树状路由协议;而随着通信节点的增加,协调器的能量会逐渐减少,因为ATSPF算法并不总是把数据转交给协调器中继,比树状路由协议更加节省协调器
的能量,这对于延长网络的生存时间也更有利。
图6 两种协议的端到端延时比较
4 结束语
图7 两种协议下协调器的能量变化比较
本文提出一种基于ZigBee树状路由的改进协议ATSPF,将ZigBee网络地址转换
为逻辑索引值列表,并通过逻辑索引值计算出所有邻居节点到目的节点的跳数,选择跳数最小的节点作为下一跳地址进行路径的建立。
通过NS2仿真验证,相比于Zig-Bee网络原有树状路由协议,ATSPF协议可以有效减少路由跳数,降低分组丢失率和传输时延、延长网络生存时间。
参考文献
【相关文献】
1 贺玲玲.Zigbee传感网络Cluste-Tree改进路由协议算法研究.传感技术学报,
2010;23(9):1303—1307
2 郑娟毅,石明卫.基于ZigBee技术的无线传感器网络树形路由的研究.西安邮电学院学报.2010—1;15(1):23—26
3 张栋.ZigBee无线传感器网络路由协议研究与优化.济南:山东大学.2009
4 朱向庆,王建明.ZigBee协议网络层的研究与实现.电子技术应用,2006;32(1):137—140
5 BI Jun-lei1,Chen Jing.Research on routing protocols for wireless sensor
puter Knowledge and Technology(AcademicExchange),2007;06(1):54—55 6 杜焕军,张维勇,刘田国.zigbee网络的路由协议研究.合肥工业大学学报,2008;31(10):1617—1621
7 邹国霞,李燕.Zigbee中Cluste-Tree路由算法改进研究.制造业自动化,2011;7(11):110—112
8 刘丹,钱志鸿,刘影.ZigBee网络树路由改进算法.吉林大学学报(自然版),2010;40(5):1392—1396。