第4章4.8路由协议4.8.1路由协议概述1.路由协议考虑因素设计无线传感器网络的路由要考虑的因素很多,大致分为以下两种类型。(1)网络特征:无线传感器网络具有与众不同的特征,应用于路由协议设计时,主要应该考虑能量损耗、节点部署和网络拓扑变化。(2)数据传输特征:无线传感器网络的数据采集和传输要求与其他网络不同,因此路由协议设计时也需要加以区别,主要考虑数据传输方式、无线传输手段以及数据融合技术等。2.路由的过程无线传感器网络的路由过程主要分为以下4个步骤:①某一个设备发出路由请求命令帧,启动路由发现过程;②对应的接收设备收到该命令后,回复应答命令帧;③对潜在的各条路径开销(跳转次数、延迟时间),进行评估比较;④将评估确定之后的最佳路由记录添加到此路径上各个设备的路由表中。3.WSN路由协议分类方法1)按源节点获取路径的方法(1)主动路由协议(2)按需路由协议(3)混合路由协议2)按节点参与通信的方式(1)直接通信路由协议(2)平面路由协议(3)层次路由协议3)按路由的发现过程(1)以位置信息为中心的路由协议(2)以数据为中心的路由协议4)按路由选择是否考虑服务质量(QoS)约束保证QoS的路由协议是指在路由建立时,考虑时延、丢包率等QoS参数,从多条可行的路由中选择一条最适合QoS应用要求的路由;或者根据业务类型,保证满足不同业务需求的QoS路由协议。4.8.2平面路由协议1.FloodingandGrossing协议1)洪泛路由协议洪泛路由协议(FloodingProtocol)是一种最早的路由协议,接收到消息的节点以广播的形式转发报文给所有的邻居节点。洪泛法的优点和缺点都十分突出,其优点是实现简单,适用于健壮性要求高的场合;其缺点是存在信息爆炸问题(如图7-1所示)、出现部分数据交迭的现象(如图7-2所示)和盲目使用资源等。2)闲聊法闲聊法(Grossing)是洪泛法的改进版本。在某一个节点发送数据时,不再像洪泛法那样给它的每个邻居节点都发送数据副本,而是随机选择某个邻居节点,向它发送一份数据副本。接收到数据的节点采用相同的方法,随机选择下一个接收节点发送数据,如图7-3所示。2.SPIN协议基于协商机制的传感器网络SPIN协议(SensorProtocolsforInformationviaNegotiation)是一种以数据为中心的自适应通信方式,使用3种类型的信息进行通信,即ADV、REQ和DATA信息。图7-4表示了SPIN协议的工作过程。在发送一个TATA数据包之前,一个传感器节点首先对外广播ADV数据包;如果某个邻居节点在收到ADV后有意愿接收该DATA数据包,那么它向该节点发送一个REQ数据包,然后节点向该邻居节点发送DATA数据包。类似地进行下去,DATA数据包可被传输到远方汇聚节点或基站。SPIN协议的缺点是没有考虑节能和多种信道条件下的数据传输问题。因此,后续又出现了SPIN-PP(PointtoPoint,点到点的通信模式)、SPIN-EC(EnergyControl,点到点模式下的节能路由)、SPIN-RL(RouteLossy,点到点通信中的信道衰减模式)、SPIN-BC(BroadcastChannel,广播信道模式)等在SPIN基础上改进的路由协议。3.SAR、DD和MCFA协议1)SAR协议顺序分配路由SAR协议(SequentialAssignmentRouting)是第一个具有QoS意识的路由协议。该协议通过构建以Sink的单跳邻居节点为根节点的多播树来实现传感器节点到Sink节点的多跳路径。该协议的特点是路由决策不仅要考虑到每条路径的能源,还要涉及端到端的延迟需求和待发送数据包的优先级。SAR的能量消耗较少,但不适用于大型的和拓扑频繁变化的网络。2)DD协议定向扩散路由DD协议(DirectedDiffusion)是一种以数据为中心的信息传播协议,与已有的路由算法有着截然不同的实现机制。运行DD协议的传感器节点使用基于属性的命名机制来描述数据,并通过向所有节点发送对某个命名数据的Interest(任务描述符)来完成数据收集。3)MCFA协议最小开销前行算法MCFA协议(MinimumCostForwardingAlgorithmforLargeSensorNetworks)充分利用了传感器网络中的数据传输不对称的特点,即大多的数据流都是从传感器节点向Sink节点的方向传输。该算法根据能量和路径情况来灵活地测出节点的开销情况,但是它存在着如下一些问题:首先它不得不考虑延迟、信道错误和节点失败等问题,这就增大了算法的复杂度;其次,Sink节点的数目不能太多,否则节点要存储大量到Sink节点的开销信息,会增大存储负担;再次,开销域的建立时间取决于网络的大小,如果网络太大的话,建立整个开销域的时间会让人无法忍受;最后,网络负载不是很平衡,那些距离Sink节点较近的开销较小的节点容易很快耗尽能量。4.8.3层次路由协议1.LEACH低功耗自适应聚类分级LEACH协议(LOWEnergyAdaptiveClusteringHierarchy)是无线传感器网络中最早提出的分层路由算法。LEACH可以将网络整体生存时间延长15%,其基本思想是通过随机循环地选择簇头节点将整个网络的能量负载平均分配到每个传感器节点中,从而降低网络能源消耗,提高网络整体生存时间。2.PEGASIS高能效采集传感器信息系统PEGASIS协议(PowerEfficientGatheringinSensorInformationSystems)是在LEACH协议上提出的一种改进路由算法。PEGASIS路由协议在网络中选择一个节点作为起始节点建立一条最优回路链,起始节点将数据融合后的数据信息发送给Sink节点。由于起始节点的负载较重,PEGASIS采用了全网节点轮流作为回路链起始节点的方式来进行均衡。PEGASIS的模型假设如下:①节点都知道其他节点的位置信息,每个节点都具有直接和基站通信的能力:②传感器节点不具有移动性;③其他模型假设和LEACH中的相同。该路由协议中使用了贪婪算法(GreedyAlgorithm)来形成链,如图7-5所示。在每一轮通信之前才形成链。为确保每个节点都有其相邻节点,从离基站最远的节点开始构建,链中邻居节点的距离会逐渐增大,因为已经在链中的节点不能被再次访,当其中一个节点失效时,链必须重构。3.TEEN阈值敏感的高效传感器网络TEEN协议(ThresholdSensitiveEnergyEfficientSensorNetwork),是一个基于簇群的路由协议,也是由LEACH发展而来,在这个协议中定义了硬门限和软门限两个概念。由于报告时间以外的时间,节点都会关闭发射机,因此节约了能量。TEEN的模型中假设条件为:①网络由一个基站和一个由传感器节点构成的网络组成,并且传感器节点都拥有相同的初始能量值;②基站拥有持续的能量补充,可以方便的向节点传送指令和数据。TEEN利用LEACH的策略形成簇群,在每次簇群重组的时候,群头节点除了广播数据属性以外,还要广播硬门限和软门限。其工作过程为:节点连续地感应周围的情况(此时发射机处于关闭或者休眠状态),当节点收集到的数据首次大于硬门限值时,节点就打开发射机向群头节点报告信息。感应到的数据保存在节点内部的一个状态变量(StateViable,SV)。当最新感应到的数据值大于硬门限并且这个值和SV的差值大于或等于软门限时,节点才进行数据发送。这个算法适用于实时性要求较高的应用场合,用户可以及时获取感兴趣的信息。由于感应数据所耗能量比传输数据所耗能量要少得多,虽然节点一直处于感应状态,但是由于减少了很多不必要的数据传输,因此相对来说还是节能的。该协议也有一些不足之处:①门限值达不到,节点就永远不会和簇头节点通信,用户就无法从网络得到任何数据,即使节点已经死亡,用户也不知情;②TDMA机制的运用保证了群中不会出现数据冲撞的情况,但是如果一个节点没有数据要发送的话,属于它的时隙就浪费掉了,而其他节点却还在等待自己的时隙,这样会向系统中引入过多的时延,不适于实时性要求太高的场合;③没有相应的机制去区分那些没有感应到足够大变化的节点和处于关闭状态的节点。群头节点的接收机要时刻处于激活状态,以便接收任何时候由成员节点传来的数据,在某种程度上增加了簇头节点的负担。4.APTEEN、TTDD和EARSN协议1)APTEENAPTEEN(AdaptivePeriodicFEEN)协议是对TEEN的扩展,它是一种结合响应型和主动型传感器网络策略的混合型网络路由协议,可以根据用户需要和应用类型来设定协议的周期性和相关阀值,即可以周期性采集数据又可以对突发事件作出快速反应。APTEEN在TEEN的基础上定义了一个计数时间,当节点从上一次发送数据开始经历这个计数时间还没有发送数据,那么不管当前的数据是否满足软、硬门限的要求都会发送这个数据。APTEEN可以通过改变计数时间来控制能量消耗。2)TTDD双列数据分发TTDD(TWO-TierDataDissemination),协议假设节点静态,且各节点的位置信息已知。网络中可以存在多个Sink节点,Sink节点可以在网络中任意移动。网络中的节点以虚拟栅格的形式划分为若干区域,当监测区域发生事件,附近的多个节点将选择一个节点触发数据上报消息。发送数据上报消息的簇头节点将上报报文发送给栅格外的其他4个栅格的邻接节点,由邻接节点转发给该栅格的另外3个邻接节点,最后将上报的数据报文发送到每一个栅格。这样无论Sink节点移动到网络中的任何地方,都能够从距离最近的节点上收到上报的数据报文。3)EARSN簇头固定的分簇结构路由协议EARSN(EnergyAwareRoutingforClusterBasedSensorNetwork)是基于三层体系结构的路由协议。该协议要求网络运行前由终端用户将传感器节点划分成簇,并通知每个簇头节点的ID标识和簇内所分配节点的位置信息。传感器节点可以以活动方式和备用的低能源方式两种方式运行,并可以感知、转发、感知并转发和休眠4种方式之一存在。与其他路由协议不同的是,该协议的簇头不受能量的限制。它作为网络的中心管理者,可以监控节点的能量变化,决定并维护传感器的4种状态。算法依据两个节点间的能量消耗、延迟最优化等性能指标计算路径代价函数。簇头节点利用代价函数作为链路成本,选择最小成本的路径作为节点与其通信的最优路径。经仿真分析,该协议在运行过程中具有很好的节能性、较高的吞吐量和较低的通信延迟。5)平面路由协议和层次路由协议比较表7-1为各种协议之间的简单对比,主要从移动性、能量需求、路径长度、扩展性、路由状态复杂度、计算和通信所需开销、数据融合技术等多方面进行了分析比较。总体来看,由于网络结构的不同,平面路由和层次路由体现出了以下几处差异。①移动性②能量使用③路由选择④可拓展性⑤开销4.8.4能量感知路由1.能量消耗源1)通信相关的能量消耗2)计算相关的能量消耗2.能量路由能量路由是最早提出的传感器网络路由机制之一,根据节点的可用能量(PowerAvailable,PA)或传输路径上链路的能量需求,选择数据的转发路径。节点可用能量就是节点当前的剩余能量。在如图7-6所示的网络中,源节点是一般功能的传感器节点,完成数据采集工作。汇聚节点是数据发送的目标节点。大写字母表示节点,如节点A,节点右侧括号内的数字表示节点的可用能量。图中的双向线表示节点之间的通信链路,链路上的数字表示在该链路上发送数据消耗的能量。在图中,从源节点到汇聚节点的可能路径有4条。路径1:源节点—B—A—汇聚节点,路径上所有节点PA之和为4,在该路径上发送分组需要的能量之和为3;路径2:源节点—C—B—A—汇聚节点,路径上所有节点PA之和为6,在该路径上发送分组需要的能量之和为6;路径3:源节点—D—汇聚节点,路径上所有节点PA之和为3,在该路上发送分组需要的能量之和为4;路径4:源节点—F—E—汇聚节点,路径上所有节点PA之和为5,在该路径上发