基于反向路由的Zigbee网络本地修复机制改进

2018-07-04 10:52:50何智勇
山东科学 2018年3期
关键词:空闲报文路由

何智勇

(1.南京工业职业技术学院电气工程学院, 江苏 南京 210046;2. 南京工业职业技术学院江苏风力发电工程技术中心, 江苏 南京 210046)

Zigbee是一种低功耗、低成本、可靠性好的无线网络技术,具有延时小和网络容量大的特点[1-2],目前主要应用于医疗、矿井、环境检测等,无线传感器网络物理层和MAC层采用IEEE 802.15.4协议标准,网络层采用Cluster-Tree路由算法[3]和AODVjr路由算法[4-5],Cluster-Tree路由算法只需要根据网络节点之间的父子关系进行转发,路由方式简单,不需要存储路由表。AODVjr路由算法[5]可以在源节点与目的节点之间寻找最优路径,节点路由发现过程通过广播形式发送RREQ报文建立路由,节点能量消耗大,节点依靠电池供电,节点的电量绝大部分用于节点之间的分组转发的通信消耗,由于网络总体能量有限,特别是在协调器附近的高层节点,随着网络运行时间不断增长,节点能量耗尽,导致网络链路出现中断,AODVjr路由算法采用本地修复机制,当网络中出现链路中断,故障链路的上游节点重新启动路由发现过程,通过向网络中广播RREQ数据分组来启动路由发现过程,寻找一条新的可达路由,在发现路由的过程中,链路上传送的数据分组直接被丢失,网络出现拥塞,延长了数据端到端时间,因此,局部链路的快速修复显得非常重要。

Zigbee网络国内外学者的研究热点主要集中在路由局部修改过程中RREQ报文的处理方法和链路选择方面。Shang等[6-7]研究协议运行机制,提出给每个局部修复进程分配优先级,来提高链路修复过程中网络性能,但该算法只是在故障修复过程中对进程的优先级进行分类,没有减少网络链路中断出现和对链路数据分组进行保护。肖雳[8]提出在网络链路启动本地修复过程中,首先对链路中断位置上一处节点进行分析,由上游节点发送有限跳数的发现报文RREQ进行局部路由修复,但该算法路由发现过程是在链路中断后启动修复机制,不能减少因重建路由而产生的数据分组端到端时延。李子璇等[9]提出根据网络链路最大剩余能量来选择最佳路由,避免局部节点死亡导致的网络分割,根据链路能量选择路径,延长网络生命周期,但是该算法没有考虑在节点能量耗尽出现死亡,网络出现链路故障的情况。针对以上研究的不足,结合空闲路由节点反向路由机制,本文提出一种改进的Zigbee网络本地修复机制ILRA-AODVjr(improved local repair algorithm-AODVjr),通过向邻居节点定期广播一个具有两跳生命周期反向路由构建报文S-RREQ,为ZigBee网络产生多个备用局部路由,增加网络中节点可达路由数量,提高网络发现路由过程的效率,缩短网络局部故障修复时间,减少数据分组丢失。

2 ZigBee故障机制存在的问题

图1 AODVjr本地算法修复过程Fig.1 AODVjr local algorithm repair process

如图1所示,在AODVjr路由算法建立路径的过程中,源节点S要发送数据分组到目的节点D,S首先查找本身路由表,寻找源节点到目的节点的路径,如果节点路由表不能找到目的节点的路由,由源节点S启动路由发现过程,通过广播RREQ 报文进行建立路由,路由建立成功后,发送数据分组到目的节点。在AODVjr路由算法中,节点选择下一跳路由的原则是选择先返回RREP报文的节点,随着网络运行时间增长,节点能量耗尽失效,导致链路中断,特别是网络中高层节点数据转发频繁,节点能量损耗快,网络会提前出现分割现象。如图1所示的网络结构中,节点1是网络关键节点,数据分组转发频繁,节点能量耗尽死亡,网络出现链路中断,{7,1}、{8,1}、{13,1}变成中断链路不能发送数据分组,AODVjr启动局部修复机制,由中断链路的上游节点7重新启动路由发现过程,向网络中广播发送RREQ报文再次寻找到目的节点的路由{S,6,7,2,8,12,13,14,D},由于RREQ是广播发送,增加网络节点的负担,网络中传送的数据分组被直接丢弃,直接影响网络传输效率,增大了网络数据分组端到端时延。

3 ILRA-AODVjr算法提出

本文提出的改进的Zigbee网络本地修复算法ILRA-AODVjr的基本思想是网络节点处于空闲状态时,即节点在一个时间段内除了与向邻居节点发送KEEP_ALIVE报文进行路由维护之外,不进行任何其他数据分组的发送、转发和接收,充分利用网络节点空闲时间,通过空闲路由节点反向路由机制,向邻居节点广播一个具有两跳生命周期反向路由构建报文S-RREQ,节点产生多个备用局部路由,减少路由发现等待过程,缩短网络局部故障修复时间。

源节点通过路由发现过程建立链路之后,路由进入路由维护阶段。在链路有效时间内,目的节点定期向源节点发送KEEP_ALIVE数据分组来维持链路信息,如果源节点成功收到KEEP_ALIVE数据分组,链路可达,否则认为链路失效,重新进行路由发现过程,KEEP_ALIVE路由维护报文发送如图2所示。

图2 ILRA-AODVjr算法产生备用路由过程Fig.2 Generation of a standby routing process by ILRA-AODVjr algorithm

在网络运行过程中,路径{S,6,7,2,8,12,13,14,D}的节点有数据分组发送,不属于空闲链路。网络中节点在一定周期Tidle内,系统设置的空闲超时时间为T,节点没有任何数据分组、RREQ报文或RREP报文发送或者转发,该节点处于空闲状态。在整个Zigbee网络中,同一时间内有很多的节点处于没有数据分组转发的状态,以节点2为例,当节点2的Tidle>T,为了节省网络资源,节点2向网络发送生命周期为2的路由发现报文S-RREQ建立备用路由,算法具体执行步骤如下:

(1)空闲节点Tidle>T时,向邻居节点发送TTL=2的路由发现报文S-RREQ,对2跳范围内能到达的节点建立备用路由,收到S-RREQ数据分组的节点回复RREP报文进行路径建立确认。

(2)备用路由建立成功后,节点定期对已建立的路由进行维护,让已存在的备用路由不会因为超时被删除,如图2所示,节点2建立的备用路由{2,3,9},{2,3,19},{2,8,9},{2,8,12},{2,8,1}在链路时间到期,目的节点发送KEEP_ALIVE数据分组到节点2确定路由存在,刷新路由信息。

(3)节点发起新的路由过程后,节点向网络中发送RREQ报文,空闲节点维护的路由表中有备用路由信息,节点19要发送数据分组到目的节点D,向网络中广播RREQ报文启动路由发现过程,节点3收到RREQ报文,对比本身存储的路由信息,由于节点有备用路由,节点3直接给节点19回复响应RREP报文确定链路的建立,大大提高了路由发现过程的效率。

(4)节点能量耗尽链路出现断裂,网络出现中断,如节点1能量耗尽死亡,路径{1,7}、{1,8}、{1,13}中断,上游节点7发起局部路由修复机制,向全网发送RREQ报文,等待目的节点D回复RREP数据分组确定路由的建立,由于节点7到目的节点的跳多,响应时间慢。通过空闲路由节点反向路由信息,节点2收到节点7发起的路由发现报文后,查看自身的路由表,节点2维护的路由表中有到过目的节点的路由信息,节点2直接回复RREP报文给节点7,路由本地修复完毕,节点2到节点D的新路径重新构建完毕,大大减少了网络节点故障本地修复时间。

整个算法的流程如图3 所示。

图3 改进的路由算法处理过程Fig.3 Improved routing algorithm process

4 仿真分析

通过NS2平台验证本文提出的ILRA-AODVjr算法,仿真实验中,网络覆盖面积为100×100,节点120个,信道数据传输率为200 kbit/s,节点初始能量为5 J,仿真时间为200 s,数据包长度为128 bit,本仿真实验中,节点能量低于初始能量2%,节点被认为是死亡节点,系统设置空闲超时时间为T=0.01 s。仿真实验从平均节点故障修复时间、数据分组端到端延时和网络剩余能量比率三方面与AODVjr算法进行了比较。

4.1 节点故障平均修复时间

网络运行后,改进ILRA-AODVjr路由算法与AODVjr算法节点故障平均修复时间对比图见图4,由于改进算法在网络节点处于空闲状态时,通过空闲路由节点反向路由机制,建立备用链路信息,在网络中构建多条备用路由信息,网络中节点能量耗尽死亡,网络中出现链路中断,由于ILRA-AODVjr路由算法中有备用链路存在,减少路由发现过程,缩短网络局部故障修复时间,ILRA-AODVjr路由算法优于AODVjr路由算法。

4.2 数据分组端到端延时

数据分组端到端延时仿真结果见图5,随时间的增长,网络中有节点能量耗尽死亡,节点数据分组端到端延时不断增加,由于改进ILRA-AODVjr路由算法采用备用路由机制,提高了节点故障修复时间,避免了数据分组的丢失,ILRA-AODVjr路由算法优于AODVjr路由算法。

4.3 网络剩余能量比率

网络剩余能量比率仿真结果见图6,随网络运行时间的增长,网络中数据分组不断发送需要消耗能量,AODVjr算法在网络出现链路中断后,AODVjr上游节点启动路由发现过程,广播RREQ报文,节点能量消耗快,改进的ILRA-AODVjr路由算法采用空闲路由节点反向路由机制,避免了RREQ报文泛洪,有效保护了节点剩余能量,网络剩余能量比率ILRA-AODVjr路由算法优于AODVjr路由算法。

图4 节点故障平均修复时间对比图Fig.4 Comparison graph of the average repair time for node failure

图5 数据分组端到端延时对比图Fig.5 Comparison graph of data packet end-to-end delay

图6 网络剩余能量比率对比图Fig.6 Comparison graph of Network Residual Energy Ratio

5 结语

本文在对Zigbee路由协议进行深入研究的基础上,提出了改进ILRA-AODVjr路由算法,通过空闲路由节点反向路由机制,向邻居节点发送TTL=2反向路由构建报文S-RREQ,在网络中产生多个备用局部路由,当网络高层节点能量耗尽,链路出现中断后,减少路由发现等待过程,缩短网络局部故障修复时间,减轻了网络拥塞和延迟现象。通过仿真实验,将改进ILRA-AODVjr路由算法与AODVjr路由算法进行比较,ILRA-AODVjr算法在节点故障平均修复时间和数据分组端到端延时方面有优势,延长了网络生命周期。

参考文献:

[1]周武斌,罗大庸. ZigBee路由协议的研究[J].计算机工程与科学,2009,31(6):12-14.

[2]赵博,吴静. 基于ZigBee无线网络的Cluster-Tree路由算法研究[J].电子技术应用,2016,42(4):116-119.

[3]LEE K K, KIM S H, CHOI Y S, et al. A mesh routing protocol using cluster label in the ZigBee network[EB/OL].[2017-09-01].http://dx.dor.org/ 10.1109/MOBHOC.2006.278654.

[5]QIU F, WANG J M, LENG J, Design and implementation of a wireless personal area network based on AODVjr Routing[EB/OL].[2017-09-01]. http://dx.doi.org/ 10.1049/cp:20061277.

[6]SHANG T, WU W, LIU X D, et al. AODVjr routing protocol with multiple feedback policy for ZigBee network[EB/OL].[2017-09-01]. http://dx.doi.org/ 10.1109/ISCE.2009.5156814.

[7]韩林呈, 陈喜春. AODV协议局部修复机制改进[J].微型电脑应用,2016,32(4):65-67.

[8]肖雳. AODV路由协议路由修复研究和改进[D].北京:北京邮电大学,2010.

[9]李子璇, 童孟军,江浩然. AOMDV 多路径协议的研究和改进[J].计算机时代,2016,8(8):7-12.

猜你喜欢
空闲报文路由
恩赐
诗选刊(2023年7期)2023-07-21 07:03:38
基于J1939 协议多包报文的时序研究及应用
汽车电器(2022年9期)2022-11-07 02:16:24
CTCS-2级报文数据管理需求分析和实现
“鸟”字谜
小读者之友(2019年9期)2019-09-10 07:22:44
浅析反驳类报文要点
中国外汇(2019年11期)2019-08-27 02:06:30
探究路由与环路的问题
彪悍的“宠”生,不需要解释
ATS与列车通信报文分析
WLAN和LTE交通规则
CHIP新电脑(2016年3期)2016-03-10 14:09:48
PRIME和G3-PLC路由机制对比