论文部分内容阅读
摘 要: 目前无线传感器网络主要采用ZigBee协议,而ZigBee协议中AODVjr路由算法查找路由时容易引起广播风暴。根据AODVjr算法中路由请求命令帧结构和路由应答命令帧结构的特点,研究出一种改进的AODVjr路由算法。改进算法中通过命令帧结构中的命令选项保留字,取保留字第0位控制命令帧传输的方向性,该位为1表示向该节点的子节点方向传输,该位为0表示目的地不在该节点的子节点范围内。利用OMNET++4.1进行的仿真实验结果表明,改进的AODVjr路由算法能有效减少通信量,降低跳数,节约网络的整体能量,同时提高了网络的传输效率。
关键词: ZigBee; AODVjr; 广播风暴; OMNET
中图分类号:TP393 文献标志码:A 文章编号:1006-8228(2013)01-09-03
Improvement of AODVjr routing algorithm in wireless sensor network
Zou Guoxia, Tang Jianqing
(Guilin University of Aerospace Technology, Guilin, Guangxi 541004, China)
Abstract: At present, ZigBee protocol is mainly applied in wireless sensor network. However, it is easier to arouse a broadcast storm when using the AODVjr routing algorithm. According to the characteristics of AODVjr algorithm, that is, route-requesting command frame structure and the route-replying command frame structure, an improved AODVjr routing algorithm is designed. The improved algorithm reserves word by commanding options in the command frame structure, and controlling the direction of command frame transmission by using the reserved word 0. If the bit is 1, the frame should be forward to the child node of the current node. Otherwise, the destination node is not a child node of the current node. The simulation result by using OMNET++4.1shows that the improved AODVjr routing algorithm can effectively reduce traffic, and save the overall energy of the network, while improving the efficiency of network transmission.
Key words: ZigBee; AODVjr; broadcast storm; OMNET
0 引言
无线传感器网络是由大量无处不在的,具有通信与计算能力的微小传感器节点密集布设在监控区域而组成的自组织网络,应用前景非常广阔。目前无线传感器网络主要采用基于IEEE 802.15.4协议标准的ZigBee协议,ZigBee是一种无限个域网的短距离无线通信技术,它具有成本低、功耗低、复杂度低、网络容量大、可靠性高等方面的优势[1-3]。
ZigBee协议网络层采用Cluster-Tree和AODVjr路由算法。AODVjr算法是AODV(Ad hoe On Demand Distance Vector, Ad hoc按需距离矢量路由协议)算法的简化,它跟AODV一样,与目标节点通信时,采取先找路由,再发送数据或命令的办法。本文充分利用AODVjr算法中的命令选项的保留字,取保留字第0位控制路由的方向性,该位为1表示向该节点的子节点方向传输,该位为0表示目的地不在该节点的子节点范围内。经过omnet++4.1仿真,证实了改进后的AODVjr算法提高了ZigBee网络的通信效率。
1 AODVjr路由思想
AODVjr是在AODV的基础上发展而来的,是AODV算法的简化,其思想[4-6]如下。
⑴ AODVjr规定只能是目标节点对最先到达的RREQ信号做出响应,保证路由无环路,AODVjr中没有使用目的节点序列号。
⑵ AODVjr规定RERR(Route Error)仅转发给传输失败的数据包的源节点。
⑶ 在数据传输中如果发生链路中断,AODVjr采用本地修复,在路由修复的过程中,仅允许目的节点回复RREP。如果本地修复失败,则发送RERR到数据包的源节点,通知它由于链路中断而引起目的节点不可达。RERR的格式也被简化至仅包含一个不可达的目的节点。
⑷ AODVjr由目的节点定期向源节点发送KEEP ALIVE连接信息来维持路由。当源节点在一段时间内没有收到目的节点发来的KEEP ALIVE信号时,它认为此条路径失效,必要时重新进行路由发现。
如图1所示,当rfd[0]设备要发送数据给ffd[0],rfd[0]先把数据发送给具有路由功能的父节点ffd[5],ffd[5]查找自身路由表,如果没有发现到一条到ffd[0]的有效路径,于是就发起路由发现过程,构建并洪泛RREQ包。ffd[0]选择最先到达的RREQ包的传送路径ffd[5]-ffd[2]-zc-ffd[0],并返回RREP信息,ffd[5]收到ffd[0]发来的RREP信号,建立路由路径,ffd[5]就会按这条路径来发送缓存的数据。同时ffd[0]定期发送KEEP_ALIVE包,以维护路由信息。 2 AODVjr路由存在的问题
AODVjr算法具有灵活的路径查找功能,其按需产生路由路径的方式提高了协议效率,能快速适应动态链路环境,并可支持多播功能。但ZigBee网络中的AODVjr路由算法容易引起RREQ广播风暴并耗费资源。另外,AODVjr属于后应式的按需Ad hoe网络,不会周期性地更新自己的路由信息,只有在需要通信时,才发起路由查找过程。在ZigBee网状网络里,节点会移动或者休眠,因此对路由查找使用比较频繁。为了达到节能且降低通信复杂度的目的,本文对AODVjr算法进行了改进,针对广播风暴,采用网络命令传输的方向指导性,减少信息传输的次数。
3 改进算法设计
在AODVjr中里,路由请求命令帧用来发起一个路由发现过程,路由应答命令用来返回路由信息,它们的载荷部分的第二个字节命令选项中,低7位保留,为此在改进的AODVjr中,可以充分利用这些保留位,改进后的命令选项如表1所示。
命令传输方向位为1表示向该节点的子节点方向传输,该位为0表示目的地不在该节点的子节点范围内,应该向该节点的父节点传输。命令传输方向主要是控制命令传输的大致方向,避免发生广播风暴,其算法流程图如图2所示。
4 算法分析和仿真结果分析
根据ZigBee中网状路由AODVjr算法和改进的AODVjr算法思想,采用OMNET++4.1分别进行了模拟,其网络拓扑结构图如图1所示。在同一种网络拓扑结构下,所有的运行环境和参数都相同,利用原始AODVjr和改进的AODVjr算法,在相同的时间里,对RFD节点发送的数据包数量、消息经过的跳数以及FFD节点能量变化进行统计,得到的结果如图3、图4、图5所示。
图3上表示在AODVjr算法下,各个RFD节点收到的数据包的数量,图3下表示在改进的AODVjr算法下,各个RFD节点收到的数据包的数量。从图3中可以看出,改进的AODVjr算法在相同的时间里,传送的数据包的量比原始AODVjr算法要大得多,这说明改进后的AODVjr算法提高了通信效率。
图4上表示在AODVjr算法下,各个RFD节点上消息跳数,图4下表示在改进的AODVjr算法下,各个RFD节点上消息跳数。从图4中可以看出,改进的AODVjr算法在相同的时间里,RFD上统计的跳数的次数比原始AODVjr多很多,这一点与图3的仿真结果是一致的。另外,从图4可以看出,下图的跳数比较稳定,变化的幅度没有上图大,而且上图的节点上消息的跳数大都在10跳以上,下图最多只有6.0跳。这说明改进后的AODVjr算法减少了跳数。
图5上是原始AODVjr中FFD节点和中心协调器能量变化图,图5下是改进AODVjr中FFD节点和中心协调器能量变化图。起初中心协调器能量为30000,FFD节点为20000,黄色和绿色曲线分别表示FFD[1]和FFD[6],从图1可以看出,RFD[3]与其他节点通信时,都必须过这两个FFD节点,由于改进的AODVjr加入了方向控制,为此,这两个节点的能量耗费比没有改进的AODVjr要快很多。蓝色曲线表示FFD[3]节点能量变化,从图1可以看出FFD[3]节点只有RFD[1]节点发生数据和接收数据时需要用到,而从图3可以看出改进AODVjr中RFD收发数据量都比原始AODVjr中RFD收发数据量多,由于原始AODVjr没有进行数据包传输方向控制,在查找路由时使用了广播,为此,在原始AODVjr中FFD[3]能量耗费比改进AODVjr中FFD[3]能量耗费快。
5 结束语
针对AODVjr算法思想以及网络命令帧的格式,本文提出了一种改进的AODVjr算法,充分利用AODVjr算法中的命令选项的保留字,进行路由的传输的方向控制,避免广播风暴,降低了跳数,节约了能量。经过omnet++4.1仿真,证实改进之后的AODVjr算法提高了ZigBee网络的通信效率。
参考文献:
[1] ChakeresID, Klein-Berndt. AODVjr, AODV Simplified[J]. Mobile Computing and Communication Review,2002.6(3):100-101
[2] Baront P, Pillai P, Chook V W C. Wireless sensor networks: Asurvey on the state of the art and the 802.15.4 and ZigBee stand-stards[J].Computer Communications,2007.30(7):1655-1695
[3] Akaka K, Youngish M. A Survey on Routing Protocols for Wireless Sensor Networks[J].Ad Hoc Networks,2005.3(3):325-349
[4] 杜焕军,张维勇,刘国田.ZigBee网络的路由协议研究[J].合肥工业大学学报(自然科学版),2008.10:85-89
[5] Seong Hoon Kim, Poh Kit Chong, Woncheol Cho.Location-Free
Semi-Directional Flooding for On-Demand Routing in Low-Rate Wireless Mesh Networks[J].ICCCN’2011,2011:1-7
[6] 刘瑞霞,李春杰,郭强等.基于ZigBee网状网络的分簇路由协议[J].计算机工程,2009.3:167-169
关键词: ZigBee; AODVjr; 广播风暴; OMNET
中图分类号:TP393 文献标志码:A 文章编号:1006-8228(2013)01-09-03
Improvement of AODVjr routing algorithm in wireless sensor network
Zou Guoxia, Tang Jianqing
(Guilin University of Aerospace Technology, Guilin, Guangxi 541004, China)
Abstract: At present, ZigBee protocol is mainly applied in wireless sensor network. However, it is easier to arouse a broadcast storm when using the AODVjr routing algorithm. According to the characteristics of AODVjr algorithm, that is, route-requesting command frame structure and the route-replying command frame structure, an improved AODVjr routing algorithm is designed. The improved algorithm reserves word by commanding options in the command frame structure, and controlling the direction of command frame transmission by using the reserved word 0. If the bit is 1, the frame should be forward to the child node of the current node. Otherwise, the destination node is not a child node of the current node. The simulation result by using OMNET++4.1shows that the improved AODVjr routing algorithm can effectively reduce traffic, and save the overall energy of the network, while improving the efficiency of network transmission.
Key words: ZigBee; AODVjr; broadcast storm; OMNET
0 引言
无线传感器网络是由大量无处不在的,具有通信与计算能力的微小传感器节点密集布设在监控区域而组成的自组织网络,应用前景非常广阔。目前无线传感器网络主要采用基于IEEE 802.15.4协议标准的ZigBee协议,ZigBee是一种无限个域网的短距离无线通信技术,它具有成本低、功耗低、复杂度低、网络容量大、可靠性高等方面的优势[1-3]。
ZigBee协议网络层采用Cluster-Tree和AODVjr路由算法。AODVjr算法是AODV(Ad hoe On Demand Distance Vector, Ad hoc按需距离矢量路由协议)算法的简化,它跟AODV一样,与目标节点通信时,采取先找路由,再发送数据或命令的办法。本文充分利用AODVjr算法中的命令选项的保留字,取保留字第0位控制路由的方向性,该位为1表示向该节点的子节点方向传输,该位为0表示目的地不在该节点的子节点范围内。经过omnet++4.1仿真,证实了改进后的AODVjr算法提高了ZigBee网络的通信效率。
1 AODVjr路由思想
AODVjr是在AODV的基础上发展而来的,是AODV算法的简化,其思想[4-6]如下。
⑴ AODVjr规定只能是目标节点对最先到达的RREQ信号做出响应,保证路由无环路,AODVjr中没有使用目的节点序列号。
⑵ AODVjr规定RERR(Route Error)仅转发给传输失败的数据包的源节点。
⑶ 在数据传输中如果发生链路中断,AODVjr采用本地修复,在路由修复的过程中,仅允许目的节点回复RREP。如果本地修复失败,则发送RERR到数据包的源节点,通知它由于链路中断而引起目的节点不可达。RERR的格式也被简化至仅包含一个不可达的目的节点。
⑷ AODVjr由目的节点定期向源节点发送KEEP ALIVE连接信息来维持路由。当源节点在一段时间内没有收到目的节点发来的KEEP ALIVE信号时,它认为此条路径失效,必要时重新进行路由发现。
如图1所示,当rfd[0]设备要发送数据给ffd[0],rfd[0]先把数据发送给具有路由功能的父节点ffd[5],ffd[5]查找自身路由表,如果没有发现到一条到ffd[0]的有效路径,于是就发起路由发现过程,构建并洪泛RREQ包。ffd[0]选择最先到达的RREQ包的传送路径ffd[5]-ffd[2]-zc-ffd[0],并返回RREP信息,ffd[5]收到ffd[0]发来的RREP信号,建立路由路径,ffd[5]就会按这条路径来发送缓存的数据。同时ffd[0]定期发送KEEP_ALIVE包,以维护路由信息。 2 AODVjr路由存在的问题
AODVjr算法具有灵活的路径查找功能,其按需产生路由路径的方式提高了协议效率,能快速适应动态链路环境,并可支持多播功能。但ZigBee网络中的AODVjr路由算法容易引起RREQ广播风暴并耗费资源。另外,AODVjr属于后应式的按需Ad hoe网络,不会周期性地更新自己的路由信息,只有在需要通信时,才发起路由查找过程。在ZigBee网状网络里,节点会移动或者休眠,因此对路由查找使用比较频繁。为了达到节能且降低通信复杂度的目的,本文对AODVjr算法进行了改进,针对广播风暴,采用网络命令传输的方向指导性,减少信息传输的次数。
3 改进算法设计
在AODVjr中里,路由请求命令帧用来发起一个路由发现过程,路由应答命令用来返回路由信息,它们的载荷部分的第二个字节命令选项中,低7位保留,为此在改进的AODVjr中,可以充分利用这些保留位,改进后的命令选项如表1所示。
命令传输方向位为1表示向该节点的子节点方向传输,该位为0表示目的地不在该节点的子节点范围内,应该向该节点的父节点传输。命令传输方向主要是控制命令传输的大致方向,避免发生广播风暴,其算法流程图如图2所示。
4 算法分析和仿真结果分析
根据ZigBee中网状路由AODVjr算法和改进的AODVjr算法思想,采用OMNET++4.1分别进行了模拟,其网络拓扑结构图如图1所示。在同一种网络拓扑结构下,所有的运行环境和参数都相同,利用原始AODVjr和改进的AODVjr算法,在相同的时间里,对RFD节点发送的数据包数量、消息经过的跳数以及FFD节点能量变化进行统计,得到的结果如图3、图4、图5所示。
图3上表示在AODVjr算法下,各个RFD节点收到的数据包的数量,图3下表示在改进的AODVjr算法下,各个RFD节点收到的数据包的数量。从图3中可以看出,改进的AODVjr算法在相同的时间里,传送的数据包的量比原始AODVjr算法要大得多,这说明改进后的AODVjr算法提高了通信效率。
图4上表示在AODVjr算法下,各个RFD节点上消息跳数,图4下表示在改进的AODVjr算法下,各个RFD节点上消息跳数。从图4中可以看出,改进的AODVjr算法在相同的时间里,RFD上统计的跳数的次数比原始AODVjr多很多,这一点与图3的仿真结果是一致的。另外,从图4可以看出,下图的跳数比较稳定,变化的幅度没有上图大,而且上图的节点上消息的跳数大都在10跳以上,下图最多只有6.0跳。这说明改进后的AODVjr算法减少了跳数。
图5上是原始AODVjr中FFD节点和中心协调器能量变化图,图5下是改进AODVjr中FFD节点和中心协调器能量变化图。起初中心协调器能量为30000,FFD节点为20000,黄色和绿色曲线分别表示FFD[1]和FFD[6],从图1可以看出,RFD[3]与其他节点通信时,都必须过这两个FFD节点,由于改进的AODVjr加入了方向控制,为此,这两个节点的能量耗费比没有改进的AODVjr要快很多。蓝色曲线表示FFD[3]节点能量变化,从图1可以看出FFD[3]节点只有RFD[1]节点发生数据和接收数据时需要用到,而从图3可以看出改进AODVjr中RFD收发数据量都比原始AODVjr中RFD收发数据量多,由于原始AODVjr没有进行数据包传输方向控制,在查找路由时使用了广播,为此,在原始AODVjr中FFD[3]能量耗费比改进AODVjr中FFD[3]能量耗费快。
5 结束语
针对AODVjr算法思想以及网络命令帧的格式,本文提出了一种改进的AODVjr算法,充分利用AODVjr算法中的命令选项的保留字,进行路由的传输的方向控制,避免广播风暴,降低了跳数,节约了能量。经过omnet++4.1仿真,证实改进之后的AODVjr算法提高了ZigBee网络的通信效率。
参考文献:
[1] ChakeresID, Klein-Berndt. AODVjr, AODV Simplified[J]. Mobile Computing and Communication Review,2002.6(3):100-101
[2] Baront P, Pillai P, Chook V W C. Wireless sensor networks: Asurvey on the state of the art and the 802.15.4 and ZigBee stand-stards[J].Computer Communications,2007.30(7):1655-1695
[3] Akaka K, Youngish M. A Survey on Routing Protocols for Wireless Sensor Networks[J].Ad Hoc Networks,2005.3(3):325-349
[4] 杜焕军,张维勇,刘国田.ZigBee网络的路由协议研究[J].合肥工业大学学报(自然科学版),2008.10:85-89
[5] Seong Hoon Kim, Poh Kit Chong, Woncheol Cho.Location-Free
Semi-Directional Flooding for On-Demand Routing in Low-Rate Wireless Mesh Networks[J].ICCCN’2011,2011:1-7
[6] 刘瑞霞,李春杰,郭强等.基于ZigBee网状网络的分簇路由协议[J].计算机工程,2009.3:167-169