2.4 网络层

网络层是无线传感器网络研究的热点之一,特别是在无线传感器网络的发展过程中,提出了许多路由算法和协议。

路由协议的目的是将消息分组从源节点(传感器节点)发送到目的节点(汇聚节点),因此需要完成两大功能:一是选择适合的优化路径,二是沿着选定的路径正确转发数据。尽管传统的无线局域网或者移动Ad hoc网络基于提高服务质量和公平性提出了很多路由协议,但这些协议的主要任务不是考虑网络的能量消耗,而是追求端到端的延迟最小、网络利用率最高以及能够避免通信拥塞和均衡网络流量的最优路径。无线传感器网络具有较强的应用相关性,不同应用中的路由协议可能差别很大,没有一个通用的路由协议。此外,无线传感器网络的路由机制还经常与数据融合技术联系在一起,通过减少通信量而节省能量,因此,传统无线网络的路由协议不适用于无线传感器网络。

2.4.1 路由协议概述

在最初的研究中,人们借鉴传统的无线网络路由协议的思想,运用成熟的互联网技术和Ad hoc路由机制设计无线传感器网络的路由协议,但结果显示传统无线网络与无线传感器网络有着明显不同的技术要求。举例来说,传统无线网络中通常是有源供电不用担心能量耗尽,无线传感器网络中的节点是能量有限且没有补充,如果大量节点因能量耗尽而无法正常工作将导致整个网络瘫痪;另外,无线传感器网络还具有拓扑结构变化频繁、节点计算存储能力有限等特点。

与传统网络的路由协议相比,无线传感器网络的路由协议具有以下特点。

1)能量优先。传统路由协议在选择最优路径时,很少考虑节点的能量消耗问题,而无线传感器网络中节点的能量有限,如何延长整个网络的生存期成为传感器网络路由协议设计的重要目标。因此需要考虑节点的能量消耗以及网络能量均衡使用的问题。

2)基于局部拓扑信息。无线传感器网络为了节省通信能量,通常采用多跳的通信模式,而节点有限的存储资源和计算资源,使其不能存储大量的路由信息,不能进行太复杂的路由计算。在节点只能获取局部拓扑信息和资源有限的情况下,如何实现简单高效的路由机制是无线传感器网络要解决的一个基本问题。

3)以数据为中心。传统的路由协议通常以地址作为节点的标识和路由的依据,而无线传感器网络中大量节点随机部署,所关注的是监测区域的感知数据,而不是具体哪个节点获取的信息,不依赖于全网唯一的标识。无线传感器网络通常包含多个传感器节点到少数汇聚节点的数据流,按照对感知数据的需求、数据通信模式和流向等,形成以数据为中心的消息转发路径。

4)应用相关。无线传感器网络的应用环境千差万别,数据通信模式不同,没有一个路由机制能够适合所有的应用,设计者需要针对每一个具体应用的需求,设计与之适应的特定路由机制。

针对无线传感器网络路由机制的上述特点,在设计符合其自身特点的路由协议时必须考虑以下问题:

1)能量高效。无线传感器网络路由协议不仅要选择能量消耗小的消息传输路径,而且要从整个网络的角度考虑,选择使整个网络能量均衡消耗的路由。传感器节点一般采用电池供电,通常部署在恶劣环境下很难更换电池。因此,无线传感器网络的路由机制要能够简单且高效地实现信息传输。

2)可扩展性。在无线传感器网络中,监测区域范围或节点密度不同,造成网络规模大小不同;节点失败、新节点加入以及节点移动等,都会使网络拓扑结构发生动态变化,这就要求路由机制具有可扩展性,能够适应网络结构的变化。

3)鲁棒性。能量用尽或因环境因素造成传感器节点信息传输的失败、周围环境对无线链路通信质量的影响以及无线链路本身的缺点等,这些无线传感器网络的不可靠特性要求路由机制具有一定的容错能力。

4)快速收敛性。无线传感器网络的拓扑结构动态变化,节点能量和通信带宽等资源有限,因此要求路由机制能够快速收敛,以适应网络拓扑的动态变化,减少通信协议开销,提高消息传输效率。

5)安全性。无线的传输环境很容易被恶意攻击,无人看管的节点很容易被窃取数据,所以无线传感器网络路由机制应该提供有效的措施以确保信息传输的安全性。

针对不同的无线传感器网络的应用,研究人员提出了不同的路由协议。根据不同应用对无线传感器网络各种特性的敏感度不同,将路由协议进行分类整理。

1)根据拓扑结构可分为平面路由协议和分簇路由协议。平面路由协议一般节点对等、功能相同、结构简单、维护容易,但仅适合规模小的网络,不能对网络资源进行优化管理;而分簇协议中节点的功能不同、各司其职,网络的扩展性好,适合较大规模的网络。

2)根据路径的多少可分为单路径路由协议和多路径路由协议。单路径路由协议是将数据沿一条路径传递,数据通道少、消耗低,但容易造成丢包且错误率高。多路径路由协议是将单个数据分成若干组,沿多条路径进行传递,即便有一条路径报废,数据也会经由其他路径传递,可靠性较好,但重复率高、能量消耗大,适合对传输可靠性要求较高且初始能量高的应用场合。

3)根据通信模式可分为时钟驱动型、事件驱动型和查询驱动型。时钟驱动型是传感器节点周期性地主动把采集到的数据信息报告给汇聚节点,比如环境监测类的无线传感器网络;事件驱动型是传感器节点在感应到数据后进行判断,若超过事先设定的阈值,则认为触发了某种事件,需要立即传送数据给汇聚节点,如用于预警的无线传感器网络;在查询驱动型路由协议中,仅当传感器节点收到用户感兴趣的查询时,才向汇聚节点发送数据。

4)根据目的节点的个数可分为单播路由协议和多播路由协议。单播路由协议只有一个发送方和一个目的节点;多播路由协议有多个目的节点,节点将采集到的数据信息并行地以多播树方式进行传播,在树的分叉处复制和转发数据包。多播路由协议里数据包发送次数变少,网络带宽的使用效率提高。

5)根据是否进行数据融合可分为融合路由协议和非融合路由协议。如果在数据传输过程中,根据预先制定的规则对多个数据包的相关信息进行合并和压缩,就属于数据融合路由协议,这类协议降低了数据冗余度,减少了网络通信量,节省了能量,但是也相应增加了传输时延;非融合路由协议在传递过程中不做任何处理,传递量大,消耗能量大,甚至引起“拥堵”。

2.4.2 平面路由协议

(1)泛洪(Flooding)路由协议和闲聊(Gossiping)路由协议

泛洪路由协议是一种传统的路由协议,网络中各节点不需要掌握网络拓扑结构和路由的计算方法。节点接收感应消息后,以广播的形式向所有邻居节点转发消息,直到数据包到达目的节点或预先设定的生命期限变为零为止。泛洪路由协议实现起来简单、鲁棒性也高,而且时延短、路径容错能力强,可以作为衡量标准去评价其他路由算法,但是很容易出现消息“内爆”、盲目使用资源和消息重叠的问题,消息传输量大,加之能量浪费严重,因此泛洪路由协议很少直接使用。

闲聊路由协议是对泛洪路由协议的改进,节点在收到感应数据后不是采用广播形式而是随机选择一个节点进行转发,这样就避免了消息的“内爆”,但是随机选取节点会造成路径质量的良莠不齐,增加了数据的传输时延,并且无法解决资源盲目利用和消息重叠的问题。

(2)SPIN(Sensor Protocol for Information via Negotiation)路由协议

SP IN路由协议是第一个以数据为中心的自适应路由协议,它通过协商机制来解决泛洪路由协议中的“内爆”和“重叠”问题。传感器节点监控各自能量的变化,若能量处于低水平状态,则必须中断操作转而充当路由器的角色,所以在一定程度上避免了资源的盲目使用。但在传输新数据的过程中,没有考虑到邻居节点的能量限制,只直接向邻近节点广播ADV数据包[4],而不转发任何新数据,如果新数据无法传输,就会出现“数据盲点”,影响整个网络数据包信息的收集。

(3)DD(Directed Diffusion)路由协议

DD路由协议多用于查询的扩散路由协议,与其他路由协议相比,最大特点就是引入梯度的理念,表明网络节点在该方向的深入搜索,以此获得匹配数据的概率。它以数据为中心,生成的数据常用一组属性值来为其命名。兴趣扩散、初始梯度场建立和数据传输组成DD路由协议的三个阶段。

1)兴趣扩散。汇聚节点下达查询命令多采用泛洪方式,传感器节点在接收到查询命令后对查询消息进行缓存并执行局部数据的融合。

2)初始梯度场建立。随着兴趣查询消息遍布全网,梯度场就在传感器节点和汇聚节点间建立起来,于是多条通往汇聚节点的路径也相应地形成。

3)数据传输。通过加强机制发送路径加强消息给最新发来数据的邻居节点,并且给这条加强消息赋予一个值,最终梯度值最高的路径成为数据传输的最佳路径。

DD路由协议多采用多路径,鲁棒性好;节点只需与邻居节点进行数据通信,从而避免保存全网的信息;节点不需要维护网络的拓扑结构,数据的发送是基于需求的,这样就节省了部分能量。DD路由协议的不足是建立梯度时花销大,多汇聚节点的网络一般不建议使用。

2.4.3 分簇路由协议

1.LEACH协议

LEACH路由协议的全称是Low Energy Adaptive Clustering Hierarchy,中文意思是低功耗自适应集簇分层型协议。基本原理:选出簇头后,向全网广播当选成功的消息,其他节点根据接收到的信号强度来选择自己要加入哪个簇并递交入簇申请,信号强度越强表明离簇头越近;当完成簇成型后,簇头根据簇成员数量的多寡,需要发送给本簇内的所有成员一份TDMA时间调度表;簇成员在数据采集时根据事先设置的TDMA时间表进行操作,采集信息并上传给簇头;簇头将接收到的数据进行融合后直接传向汇聚节点;在数据采集达到规定时间或次数后,网络开始新一轮的工作周期,簇头依然根据上述步骤进行下一轮选举。

该协议实现简单,由于利用了数据融合技术,在一定程度上减小了通信流量,节省了能量;随机选举簇头,平均分担路由任务量,减少能耗,延长了系统的寿命;但LEACH路由协议也存在不可忽视的缺点,比如由于簇头选举是随机地依据本地信息自行决定,避免不了出现位置随机、分布不均的情况;每轮簇头的数量和不同簇中节点数量不同,导致网络整体负载的不均衡;多次分簇带来了额外开销以及覆盖问题;簇头选取时没有考虑节点的剩余能量,有可能导致剩余能量很少的节点随机当选为簇头;如果汇聚节点位置与目标区域有较大的距离,且功率足够大,通过单跳通信传送数据会造成大量的能量消耗,所以单跳通信模式下的LEACH协议比较适合于小规模网络;另外,该协议在单位时间内一般发送数量基本固定的数据,不适合突发型的通信场合。

2.TEEN路由协议

TEEN是第一个事件驱动的响应型聚类路由协议,根据簇头与汇聚节点间距离的远近来搭建一个层次结构。TEEN中有两个重要参数:硬阈值和软阈值。

硬阈值设置一个检测值,只有当传送的数据值大于硬阈值时,节点才允许向汇聚节点上传数据;而软阈值设置一个检测值的变化量值,规定只有当传送数据的改变量大于设定的软阈值时,才同意再次向汇聚节点上传数据,这两个阈值决定了节点何时能够发送数据。

工作原理如下:当首次发送的数据值大于硬阈值时,下一级节点向上一级节点报告,并将数值保存起来;此后当发送数据值大于硬阈值且变化量大于软阈值时,低一级节点才会再次向上一级节点报告数据。TEEN路由协议的示意图如图2-6所示。

图2-6 TEEN路由协议示意图

TEEN路由协议的优点是由于软、硬阈值的存在,具有了过滤功能,精简了数据的传输量,节省了大量的能量,适合于响应型应用。层次型的簇头结构不需要所有节点具有大功率通信能力,更适合无线传感器网络的特点。

TEEN路由协议的缺点是多层次簇的构建非常复杂;如果某个节点的检测数据达不到硬阈值,那么用户将无法获知这个感应数据,也无法判断这个节点是否失效,因此在周期性采样的网络中要谨慎使用;如果每个节点都需要较高的通信功率与汇聚节点通信,则仅适合小规模的系统。

3.TTDD(Two-Tier Data Dissemination)路由协议

TTDD路由协议主要针对网络中存在的多汇聚节点和汇聚节点移动问题,是基于网格的层次路由协议。

TTDD协议包括三个阶段:构建网格阶段、发送查询数据阶段和传输数据阶段。其中构建网格阶段是TTDD协议的第一步,也是最关键、最核心的一步。协议中的节点都清楚自身所处的位置,当得到有事件发生的信号时,就近选择一个节点作为源节点。源节点将自身所处位置作为格状网的一个交叉点,基于此点,先计算出相邻交叉点的位置,利用贪婪算法计算出距离该位置最近的节点,最近节点就成为新交叉点,以此铺展开构建成一个网格状。

事件信息和源节点信息被保存在网格的各个交叉点。数据查询时,汇聚节点在所达范围内,依次找出最近的交叉点,经由交叉点传播数据直至源节点;源节点收到查询命令后,将数据沿最短路径返传向汇聚节点。有时,在等待数据回传时,汇聚节点可以采用代理(Agent)机制保持移动,以保证数据的可靠传输。

TTDD路由协议采用单路径,可以延长网络的生命周期,采用代理机制很好地解决了汇聚节点的移动性问题,但是在TTDD路由协议中,节点必须知道自身的位置,要求节点密度比较高,计算与维护网格的开销成本也较大,网格构建、查询请求和数据传输过程都会造成传输的延迟,所以这种协议在目标高速移动和高实时性需求的场合应慎用。

2.4.4 其他路由协议

SAR路由协议是第一个在无线传感器网络中保证服务质量(QoS)的主动路由协议,该协议以基于路由表驱动的多路径方式满足网络低能耗和鲁棒性的要求,它的特点是路由协议不仅要考虑到每条路径的能量,还要涉及端到端的延迟需求和待发送数据包的优先级。

最小代价路由协议是以跳数或能耗作为代价参数的,最终实现最小化代价的目的,一般采用退避原则进行代价发布。

GEAR(Geographical and Energy-Aware Routing)路由协议是根据事件区域的地理位置信息,建立汇聚节点到事件区域的优化路径,避免了泛洪传播方式,从而减少了路由建立的开销。

GEM(Graph Embedding)路由协议是一种适用于数据中心存储方式的地理路由协议,其基本思想是建立一个虚拟极坐标系统,用来表示实际的网络拓扑结构,网络中的节点形成一个以汇聚节点为根的带环树,每个节点用到树根的跳数距离和角度范围来表示,节点间的数据路由通过这个带环树实现。

SPEED协议是一个实时路由协议,在一定程度上实现了端到端的传输速率保证、网络拥塞控制以及负载平衡机制。SPEED协议首先交换节点的传输延迟,以得到网络负载情况;然后节点利用局部地理信息和传输速率做出路由决定,同时通过邻居反馈机制保证网络传输速率在一个全局定义的传输速率阈值之上;节点还通过反向压力路由变更机制避开延迟太大的链路和路由空洞。

2.4.5 路由协议自主切换

无线传感器网络中的路由协议和具体应用紧密相关,没有一个能适用于所有应用的路由协议,无线传感器网络可能需要在相同监测区域内完成不同的任务,此时如果为每种任务部署专门的传感器网络将增加运营成本。为了能够适应多种任务,需要根据应用环境和网络条件自主选择路由协议,并允许在各个路由协议之间自由切换。