基于ZigBee的无线传感器网络路由分析
2011-09-13俞仁来谭明皓
俞仁来,谭明皓
(沈阳工业大学 信息科学与工程学院,辽宁 沈阳 110870)
0 引言
无线传感器网络(WSN, Wireless Sensor Network)[1]采用微小型的传感器节点获取信息,节点之间具有自动组网和协同工作能力,网络内部采用无线通信方式,采集和处理网络中的信息,发送给观察者。目前WSN使用的无线通讯技术过于复杂,非常耗电,成本很高。而ZigBee[2]是一种短距离、低成本、低功耗、低复杂度的无线网络技术,在无线传感器网络应用领域极具发展潜力。
路由协议是无线传感器网络中一个关键技术,其优劣直接影响着网络的性能[3]。这里的工作就是在分析研究了多种应用在WSN上的路由协议之后,对比分析ZigBee路由算法,分析得出各自优劣及其适用的环境,为路由协议设计人员提供参考。
1 WSN中路由算法研究
1.1 AODV协议
AODV[4]是逐跳的按需距离向量路由协议。当源节点没有已知的路由到达目的节点时,广播一个请求消息(RREQ),每个接收到RREQ的中间节点记录下到源节点的逆向路径(以便为之后的应答消息(RREP)提供路由),然后重新广播RREQ。当RREQ到达目的节点时,目的节点利用记录在报文中的逆向路径发送RREP。如果中间节点知道最新的指向目的节点的路由,它就代替目的节点发送RREP。每个接收到 RREP的节点以相同的方式记录下本节点到目的节点的路径,以便为将来数据分组报文的到来提供路由服务。另外,每个节点都维护有一个目的序列号用于判断更新路由。节点广播HELLO消息来维护本地邻居表及其一跳内的链路。
1.2 LEACH路由协议
LEACH[5]是MIT的Heinzelman等人提出的基于簇的数据融合的层次型路由算法。该算法以轮为单位计算网络周期。每一轮从建立阶段开始,即节点自组织成一个一个的簇,然后进入稳定阶段,即成员节点将其数据发送给其簇首节点,然后簇首节点将所收成员的数据进行数据融合,发送给基站。
2 ZigBee无线传感器网络
ZigBee网络[6]支持两种类型的物理设备:全功能设备节点(FFD)和半功能设备节点(RFD)。FFD节点通常作为网络协调器或路由,能和任何设备通信;RFD节点只能作为网络的终端节点,负责本地信息收集和数据处理,只能和FFD节点通信。ZigBee网络支持三种节点类型:主节点、路由节点以及终端节点。主节点即协调器,必须由FFD节点构成,它是网络的核心,负责建立一个网络并下发地址。路由节点也是FFD节点,搜索网络并加入,给加入路由的终端节点分配地址。终端节点可以是FFD节点或者RFD节点。ZigBee的网络拓扑结构有三种:星型网络、树簇型网络、网型网络,如图1所示。
图1 ZigBee三种网络拓扑结构
2.1 ZigBee中的路由算法
ZigBee网络常见的路由算法有Cluster-Tree、AODVjr和Cluster-Tree+AODVjr等。ZigBee路由通常采用Cluster-Tree与AODVjr相结合的路由算法[7-8]。
2.1.1 Cluster-Tree
Cluster-Tree是一种逻辑链路和网络层协议,使用链路状态数据包建立一个简单的簇网络或是一个潜在的更大型的簇树网络。该网络具有自组织能力,并支持网络冗余,有一定的错误冗余度和自修复能力。网络中的节点形成父子关系,当有节点加入网络时,父节点将为其分配地址。分配机制如下:根据式(1),父节点为节点分配地址,其中C为父节点包容的最大节点数,R为参与路由的最大子节点数,L为网络的最大深度,d为当前网络深度,A为节点地址。为第n个RFD分地址为式(2);为第n个FFD分配地址为式(3)。
网络路径上的下一跳节点地址分配如下:对于地址为A的节点,如果满足式(4),则地址为D的节点为该节点后代:
如果满足式(5),则下一跳为终端后代,地址为N D= ,否则,地址为式(6)。
2.1.2 AODVjr
AODVjr具有AODV的主要功能,但考虑到降低成本、节能、使用的方便性等因素,对AODV作了一些简化。①没有使用目的节点序列号,并规定只有目的节点可以回复RREP;②不存在“先驱节点列表”,简化了路由表结构;③节点不发送HELLO分组,仅根据收到的分组或者MAC层提供的信息更新邻居节点列表;④RERR消息格式仅包含一个不可到达的目的节点。
3 路由仿真
文中基于NS-2.34模拟仿真软件对路由协议进行仿真。NS[9-10]即网络模拟,是面向对象的、离散事件驱动的网络环境模拟器,可以完整地模拟整个网络环境。主要用于解决网络研究方面的问题。
在NS2下分别仿真ZigBee路由和AODV协议,以比较两者的实现效果。采用101个节点随机分布在(100m×100m)的空间中, 消息长度设置为500 byte,运行时间200 s。每个节点的初始能量相同,均为2 J。rxPower和txPower都设为0.3 W。通讯距离设为25 m,消息发送间隔设为0.05 s,以802.15.4为底层。ZigBee簇树数量为:set Cm 4;set Lm 7。源节点(84.124781416787201, 85.201271942444734),目的节点(0,0)。
在仿真运行到151 s时,ZigBee和AODV中各节点的剩余能量如图2所示,除了一部分节点的剩余能量大致相同外,大部分AODV节点的剩余能量比ZigBee节点多,即ZigBee能量消耗相比AODV较多。这表明采用Cluster-Tree+AODVjr的ZigBee路由算法在能量损耗上,并不比AODV节省,反而消耗更多能量。
图3显示,Zigbee节点在151 s之后有71个存活节点;AODV节点在151 s之后有80个存活节点,在181 s之后仍有70个存活节点。Zigbee在151 s之后,网络活动停止,而AODV在181 s之后网络活动才停止。可知,AODV网络在151 s之后发现第二条路径,继续传输数据,使网络存活时间延长。
仿真结果表明,采用Cluster-Tree+AODVjr的Zigbee路由,没有考虑到节点在通信和路由处理过程中能量的变化,能量损耗超过了 AODV,限制了网络的生存时间。因此,Zigbee路由算法应更注重节能设计。
图2 节点剩余能量
图3 网络存活节点
4 结语
由于AODVjr主要适用于动态网络中发现最新的转发路径,但在网络拓扑变化很慢的无线传感器网络中,AODVjr就显得太过复杂,导致Zigbee路由能耗过大。而LEACH协议实现了所有节点间能量均匀分布的分群自适应算法和群首位置循环算法,节省了通信资源,降低了节点能耗,大大提高系统寿命。因此,以LEACH为参照修改Zigbee路由协议,将更有利于延长网络的生存时间。
[1] 夏少波,许娥.无线传感器网络 WSN探究[J].通信技术,2010,43(08):18-19.
[2] 徐志,陈彬兵.自组织 ZigBee网络节点通信研究[J].通信技术,2009,42(12):128-131..
[3] 罗玥,李雷.无线传感器网络路由问题探讨[J].通信技术,2007,40(12):361-362.
[4] 王新颖,吴钊,江小玲.基于节能的移动Ad Hoc网络AODV路由协议改进[J].通信技术,2008,41(07):121-123.
[5] HEINZELMAN W, CHANDRAKASAN A, BALAKRISHNAN H. Energy Efficient Communication Protocol for Wireless Microsensor Networks[C]//IEEE Computer Society. HICSS 2000, Hawaii,United States,2000.United States:IEEE Publications, 2000:3005-3014.
[6] Sinem Coleri Ergen. ZigBee/IEEE 802.15.4 Summary[EB/OL].(2004-09-10)[2010-06-01].http://citeseerx.ist.psu.edu/viewdoc/download?doi = 10.1.1.124.6333&rep=rep1&type=pdf.
[7] ZigBee Specification.ZigBee Document 053474r17[EB/OL].(2008-01-17)[2010-06-01]. http://www.zigbee.org/Markets/ZigBeeSm artEnergy/Specification.aspx.
[8] 杜焕军,张维勇,刘国田.ZigBee网络的路由协议研究[J].合肥工业大学学报,2008,31(10):1617-1621.
[9] KEVIN FALL,KANNAN VARADHAN. The ns Manual[R].[s.l.]: The VINT Project, 2008.
[10] 于斌,孙斌,温暖,等.NS2与网络模拟[M]. 北京:人民邮电出版社,2007.