前言:本站为你精心整理了改良的WSNs路由协议范文,希望能为你的创作提供参考价值,我们的客服老师可以帮助你提供个性化的参考范文,欢迎咨询。
本文作者:王坤赤郑月节徐晨周晖庆栋良作者单位:南通大学电子信息学院
0引言
无线传感器网络(wirelesssensornetworks,wsns)已在军事、医疗、交通、环保、工业等多领域得到了广泛应用。但是,WSNs中的感知节点携带能量有限,且无法补充,当感知节点因能量耗尽而无法正常工作时,将会影响到网络性能,使得用户无法获得完整的感知信息。因此,如何设计一个有效的路由协议,节约网络能量消耗、最大程度利用感知节点的能量,最大化网络功能,延长网络的生命周期成为WSNs的研究重点[1]。路由协议是WSNs的关键技术之一,它负责将传感器节点的感知信息通过网络传输到汇聚节点,主要包括2个方面的功能:寻找源节点与目的节点的优化路径,将数据分组沿着优化路径正确转发[2]。根据拓扑结构的不同可以将路由协议分为:平面路由协议和层次路由协议。平面路由协议具有结构简单、网络启动快、维护开销小、适合中小规模网络等特点,典型的代表有Flooding,Gossiping,DirectedDiffusion,Rumor等协议;层次型路由协议具有路由扩展性好、能耗低、网络延迟小、适合大规模网络等特点,典型代表有LEACH,PEGASIS,TEEN等协议[3]。最小跳数路由(MHR)协议[4]是对DirectedDiffusion协议的改进,提出了最小跳数梯度场的概念。由于MHR协议简单、可以自动趋向于最短路径和时延最小等优点,倍受研究者关注,但是在研究的过程中发现该协议对能量的控制、路径选择等方面仍存在不足之处,需要进一步改进完善。
1最小跳数路由协议及其研究
1.1MHR协议描述
MHR协议工作过程分为2个阶段,即最小跳数梯度场的建立和基于最小跳数场的数据传输,具体描述如下:1)梯度场的建立阶段
a.初始化时,Sink节点的跳数设置为0,感知节点跳数设置为网络不可到达的跳数,如255。b.Sink节点采用Flooding方式向传感器网络发送数据查询分组,查询分组包中含有Sink节点ID、最小跳数值HC、任务类型等。c.Sink节点的邻居节点收到该信息后,将分组中的最小跳数值HC+1作为新HC值与自身储存的HC值比较,若新的HC值小于原来节点存储的HC值,用新的值代替原存储值,并将分组中的HC值替换成新HC值、原发送节点ID换成本节点ID,然后将修改后的查询分组同样以Flooding方式向其邻居节点广播;若新HC值大于原存储值,则丢弃查询分组,不作其他任何处理。d.其他节点收到查询分组后,重复第(3)步的处理。
2)数据传输阶段
在数据传输阶段,感知节点采集到数据后,数据以受控Flooding方式沿Sink节点方向进行转发数据,即按照已经建立的最小跳数梯度场以每跳HC值减1为约束,以此使源节点采集到的数据沿着最小跳数值递减的方向向Sink节点传送。
1.2协议研究
虽然MHR协议具有许多优点,但其网络中感知节点一般都会有多个父节点,这些父节点又会有自己的多个父节点,由于算法并未对转发报文进行记录,使得多个相同数据被多次重复传送,造成了一定的资源消耗与数据碰撞等。基于MHR协议,研究者作了相关研究与改进。文献[5]中针对网络中终端节点、中间节点采用不同的休眠与唤醒机制,以此来降低网络的能耗,延长网络的生命周期。文献[6]中通过引入元数据概念、延迟转发和阈值的设置等措施来降低网络中能量的消耗。针对最小跳数路由协议最小梯度场稳定周期短,导致数据接收不可靠的情况,文献[7]提出了一种基于链路可靠性的最小跳数路由协议,该协议在最小跳数梯度场建立阶段,控制其梯度场层次宽度,以此来提高通信链路的可靠性和延长最小梯度场的稳定周期。文献[8]中就最小跳数路由协议只考虑最大限度利用网络节点的通信覆盖能力,而不考虑网络节点的能量和负载的情况,提出了最优跳数路由协议。该协议的主要思想是构建一个基于跳数、能量、负载的三维决策函数,在数据传输阶段利用决策函数来确定转发节点,优化网络能量消耗、均衡网络负载。文献[9]通过对最小跳数WSNs的行为特征分析,提出了一种控制数据包冗余度的解决策略。
上述针对MHR路由协议的改进,并没有从如何避免数据包的多路径冗余传输、查询分组的周期泛洪、关键节点能量消耗速率过快,以及如何提高组网速度与动态适用性等角度考虑问题,本文将基于上述问题,提出一种改进的WSNs最小跳数路由协议。
2改进路由协议
2.1改进思路
针对上述角度提出相应的解决方案,具体思路为:1)利用侦听机制,在全网建立单一传输路径,以避免通过周期性泛洪查询分组信息来实现网络路由建立、更新,数据包的多路径冗余传输而造成的资源不必要消耗,并能提高组网速度和动态适用性;2)引入ACK报文确认机制,以避免从多路径到单路经数据包传输可靠性降低问题;3)提出一种Hello包插队机制,以控制网络中关键节点能量消耗过快问题。具体方案详述如下:
1)侦听机制:在传感器网络中,没有路由的节点主动广播RREQ(routingrequire)报文请求加入网络。收到RREQ的节点不仅回复RREP(routingreply)报文以提供路由信息,而且还将该RREP报文设置为广播型,使周围邻居节点也能侦听到该路由信息,以便快速建立路由、及时更新路由,从而提高网络的组网速度和灵活性,避免MHR协议中数据包的多路径传输。
2)ACK报文确认机制:在网络中节点发送一个数据包到父节点,等待父节点回复确认接收ACK报文。若在一段时间内收到ACK报文,则认为本次数据包传输成功,并在等待一段随机时间后发送缓冲区中下一个数据包。否则,该子节点等待一段随机时间重发该数据包,并统计重发次数,统计次数超过一定阈值n时,认为数据传输错误,丢弃该数据包。ACK报文确认机制可以保证在单路经下数据包的传输可靠性。
3)Hello包插队机制:本文规定感知节点的能量消耗速率v为(公式略)。设定v的一个阈值am(根据实验仿真部分关键节点的能量消耗曲线估算得到,am的值随着网络规模的不同取值也不同,m为网络中节点的数量)。Hello包插队机制的原理为:当某节点A检测到自身的v值大于所设定的阈值时,就生成一个Hello报文,该报文包含节点跳数HC、节点ID、剩余能量、生成时间等信息。生成Hello包后,将该报文插入缓冲区队列的头部,广播给邻近节点。每个收到该Hello报文的节点首先对比节点ID与自身父节点ID,若相同则取消该链路,将自身HC值为255后等待RREP,并在接收到的RREP中寻找最优的父节点建立新的路由,以降低节点A的能量消耗速率,均衡网路能量消耗;若节点ID与自身父节点ID不同,再判断本节点跳数HC是否等于或小于发Hello包节点的跳数,若满足条件就回广播型的RREP,否则,不做任何处理。
2.2改进协议描述
在上述思想基础上,提出一种改进的最小跳数路由协议,改进协议对最小跳数路由梯度场的建立与数据传输阶段进行改进,并增加路由维护阶段。具体协议的描述如下:
1)网络建立阶段
a.网络初始状态,设置Sink节点的跳数值为0,普通节点的跳数值设置为不可达到的值(设置为255),清空父节点列表。b.每个需要加入网络中的节点主动发送RREQ报文请求加入网络,周围节点收到RREQ报文后,检查自身的父节点列表,若不为空,说明该节点有路由,则该节点回复广播型RREP报文。c.邻居节点在收到该广播型的RREP报文后,将报文中的HC值加1后作为新的跳数值(HC+1)与自身储存的HC值进行比较,若新的跳数值小于自身储存的HC值,则将该节点作为自己的父节点,否则,丢弃该RREP报文,不做任何处理。d.其他节点重复执行步骤(2),(3),直到网络中的每个节点都记录了自身到Sink节点的最小HC值,完成网络的路由建立。侦听机制下的路由建立过程如图1所示。图1(a)表示网络的初始化,图1(b)表示节点A需要建立路由,发送RREQ报文,邻居节点在收到RREQ报文后根据自身的情况是否恢复RREP报文。图1(c)表示Sink节点回复的广播型RREP报文,节点A,B在接收到该RREP报文后,将报文中的HC值0加1后作为自身的跳数值,并建立路由。图1(d),(e),(f)则表示节点C,D,E建立路由的过程。通过图1可以发现,基于侦听机制的路由建立过程具有组网速度快且灵活等优点。
2)数据传输阶段
在数据的传送阶段,改进协议引入了数据报文缓存和ACK机制,普通节点在发送数据包时,沿着已建立的拓扑结构传向Sink节点,数据传输具有一定的方向性。在数据传输的过程中采用ACK确认机制来保证数据传输的可靠性。节点产生的数据包先添加到缓冲区,然后根据已建立的侦听机制路由传送给转发节点,等待一段时间,若等待时间内收到转发节点回复的ACK报文,则认为数据转发成功,并在缓冲区内丢弃该数据包;若等待一段时间后,没有收到转发节点的ACK报文,则节点在接下来的时间内随机重发该数据包,并统计重发次数,直至数据包被转发节点成功接收,此过程中设置最大重传次数n,超过n次,则认为数据包传输错误,丢弃数据包。
3)路由维护过程与新节点的加入
路由的维护过程分为2个部分,即节点的定时维护和检测维护。在网络中设定所有的感知节点工作过一段时间后,在一个随机时间范围内发起RREQ,进行定时的局部路由维护,选择能量最大的邻居节点作为父节点。与此同时,在数据包的传输过程中引入Hello包插队机制,不断地检测节点的消耗速率,用来更新节点的路由,均衡网络中节点能量消耗。Hello包插队机制流程图如图2所示。此外,当网络中有新的节点加入时,将新的节点跳数值设置为255,并主动广播RREQ,邻居节点在收到新节点发送的广播RREQ后,回复RREP,新节点选择能量最大节点作为父节点,加入网络。
3实验仿真结果与分析
3.1能量模型与仿真模型
3.1.1能量模型
在仿真实验中,采用了以下的能量消耗计算公式E=Power×sim_step×Length.(2)其中,Power为节点的发射功率或介绍功率;sim_step为仿真步长;Length为包的长度。
3.1.2仿真模型
为了验证改进协议I-MHR在WSNs中运行的情况,在自主研发的无线传感器仿真平台上建立模拟场景,将节点均匀随机分布在5000m×5000m的正方形区域内,Sink节点分布在正方形区域的中心位置,分别设置网络中的传感器节点数目为100,125,150,175,200,225,图3所示的为I-MHR协议的节点布设和网络拓扑图。网络使用的信道模型为自由空间模型,信道带宽设置为0.2MHz,网络工作在433MHz频段下,数据产生的速率为20kbps,数据包产生的速率为0.01Package/s,仿真的步长为0.0004s,节点的缓冲区大小为20Packages,数据包,RREQ,RREP,Hello报文长度均为48bytes,ACK报文长度为8bytes,节点的初始能量为1×10-2J,Sink的能量设置为100J,Ptx设为2.0mW,Prx设为1.0mW。Hello包插队机制与ACK确认机制中的参数设置为:a100=0.12mJ/s,a125=0.12mJ/s,a150=0.13mJ/s,a175=0.13mJ/s,a200=0.14mJ/s,a225=0.14mJ/s;n=5。
3.2仿真结果与分析
从网络能耗的均衡性、有效性以及网络生命周期等方面,验证I-MHR协议的性能,并将其与MHR协议进行比较。
3.2.1能耗的均衡性
衡量网络协议的能耗均衡性可以从能耗方差[10]进行比较。图4是选取150个节点的网络规模下,节点能耗均衡性曲线,从图中可以看出:I-MHR能耗方差上优于MHR,这是由于I-MHR采用了单一路径传输,引入了能量控制策略,避免了MHR周期性的洪泛查询和数据的冗余传输,降低且均衡了网络能量消耗。
3.2.2能量有效性
能量有效性[11]是在规定的网络仿真时间内,Sink节点接收到的数据包总数与所有普通节点消耗总能量的比值。图5显示了I-MHR与MHR协议在不同网络规模中能量有效性的比较。从仿真数据可以计算出:不同网络规模下,I-MHR协议的能量有效性比MHR协议平均提高70.78%。从图5还可以看出:随着网络规模的扩大,2种协议的能量有效性都有所降低,这是因为随着网络规模的增加,每一个数据包到达Sink节点的跳数值随之增加,能耗增加,降低能量有效性。
3.2.3网络生命周期
网络生命周期[11]是网络仿真中第一个节点死亡的时间值,其长短是检查网络节点能量消耗的重要指标。图6显示了不同网络规模中2种协议的网络寿命图,图7显示了在网络规模为150个节点下的节点生存个数图。仿真数据表明:在不同的网络规模下,I-MHR协议比MHR协议网络生命周期平均提高了57.59%,特别是在150个节点时,提高了94.41%。此外,由图6可以看到,随着节点数的增加,I-MHR与MHR协议的第一个死亡节点时间呈下降趋势,这是因为随着网络规模的不断增加,网络中产生的数据包不断增加,导致关键节点在单位时间内传输的数据包增加,最终使能量消耗过快,节点出现过早实效。
4结论
本文在MHR协议的基础上,提出了一种改进的无线传感器路由协议。改进的协议通过在路由建立阶段引入侦听机制,将RREQ报文设置为广播型,快速建立单一传输路径,有效地解决了多路径冗余传输和周期洪泛问题,提高网络的组网速度;在数据的传输阶段通过确认机制来保证数据包的可靠传输;增加路由定时维护阶段和运用能量控制策略,解决网络能量消耗不均衡、部分关键节点的能量消耗过快等问题。仿真实验表明:改进的路由协议可以有效地提高网络能量的均衡性、有效性,延长了网络生命周期。