文章目录
路由协议的 作用是 寻找一条或多条满足一定条件的,从源节点到目的节点的路径,将数据分组沿着所寻找的路径进行转发
路由协议的功能主要有:
- 搜索满足条件的优化路径
- 转发资料分组
路由协议类型:
- 以数据为中心的路由协议
- 基于层次结构(树结构)的路由协议
- 基于地理信息路由协议
- 基于多路径的路由协议
这些路由协议又可归纳为两种主要类型:平面型、层次型
-
平面型路由协议:各个节点间的地位平等,节点通过局部信息来生成路由
- 优点:结构简单,鲁棒性(稳定性)较好
- 缺点:对网络动态变化的反应较慢
-
层次(分簇)型路由:网络被划分为若干个簇,每个簇由一个簇头节点和若干个簇成员节点组成
簇头节点负责簇内成员节点数据信息的收集和融合处理,以及簇间数据的转发分簇协议中设计簇头的选举策略是一个重要议题
典型的分簇路由协议有:LEACH、PEGASIS、TEEN、APTEEN、HEED等
路由协议设计:
无线传感器网络在设计路由协议时一个最重要的目标就是在传输数据的同时,最大限度地延长网络寿命并且避免网络连通性降低,因此,在设计路由协议时需要考虑到以下关键问题:
- 节点部署方式
部署方案:① 人工 ② 随机 - 数据精确性前提下的能耗
- 以数据为中心的数据报告模型
- 鲁棒性与容错性
- 网络动态性
- 数据融合
简单的无结构路由协议
Flooding & Gossiping 路由协议
Flooding 和 Gossiping 两个路由协议是传统网络中最为经典和简单的路由协议,它们都是基于洪泛机制的路由协议,可以应用到无线传感器网络中
-
Flooding
Flooding(泛洪)路由协议不要求维护网络的拓扑结构和相关路由计算,仅要求传感器网络节点在接收到信息后以广播的方式向邻居节点转发数据包,邻居节点重复执行上述过程(转发时除去刚刚发送给它们的节点),直到数据包到达目的地或者该数据包的生命周期结束
特别指出的是,无线传感器网络中一般要预先设定数据包所转发的最大跳,即数数据包的生命周期 TTL (Time To Live)
【举例】源节点 A 需要将数据包 p 发送至汇聚节点 D
- 节点 A 首先将 p 的副本广播,则其邻居节点 B 接收到 p 副本
- 节点 B 直接将 p 副本通过广播的形式转发给 E、F、C
- 以此类推,直到p到达汇聚节点 D 或 到达 TTL
Flooding的优缺点:
-
优点
简单,容错性好,传输延时短,适用于对数据可靠性要求较高的应用场景
每个节点只需将接收到的数据包进行广播,而无需查找路由表;其次,无需特殊的算法保持网络拓扑信息的更新以及新路由的发现
-
缺点
- 信息内爆(Implosion):网络中的节点收到一个数据的多个副本
- 部分重迭(Overlap)现象:由于WSN中节点密集部署,因此在同一局部区域中,若干个节点对区域内同一个事件做出的反应相同,数据相近,这些节点的邻居节点所接收到的数据副本也具有较大的相关性
- 网络能耗高:未考虑各节点能量可用状况,在任何情况下都转发数据
-
Gossiping
Gossiping 路由协议(闲聊路由协议),是对Flooding协议的改进
当节点接收到数据之后,是按照一定概率随机地将数据包转发给邻居节点中不同于发送节点的某一个节点,这个节点以相同的方式向其邻居节点进行数据转发直到数据到达汇聚节点
Gossiping路由协议考虑了节点的能量消耗,因此在选择下一跳时只选择一个节点进行数据转发,但在每次选取下一跳节点时,并没有采用路径优化相关算法,因此所选择的路由往往不理想,这将导致数据包的端到端延时增加或者没到达目的节点之前就结束
【举例】
SPIN路由协议
SPIN(信息协商的传感器协议)是无线传感器网络中一种基于数据中心的路由协议,其通过节点之间的协商以建立传输路径
SPIN协议的设计目标是能够解决 Flooding 以及 Gossiping 协议的内爆、重叠及资源利用不合理现象
节点间通过发送元数据(描述传感器节点采集的数据属性的数据),而不是采集的整个数据进行协商。由于元数据小于采集的实际数据,因此传输元数据消耗的能量相对较少
SPIN协议在路由建立时,采用了3种数据包:ADV、REQ 与 DATA
- ADV 数据包:路由请求发起的数据包,当某一节点接收到数据包时,它会向其周围的邻居节点广播这个 ADV 数据包,以通告是否需要接收数据,由于 ADV 数据包体积很小,所消耗的能量资源较少
- REQ数据包:请求响应数据包,当邻居节点接收到来自传输请求节点发起的 ADV 数据包后,若其需要接收,则向请求发起节点发送 REQ 资料包
- DATA数据包:传感采集的数据内容
【举例】SPIN路由协议转发过程
- 0 号节点向1号节点发送传感数据
- 当1号节点接收到数据后,向其周边邻居节点广播ADV数据包,通知邻居节点自己有传感数据需要转发
- 当邻居节点接收到1号节点的ADV数据包后,根据自己的情况,自主选择接受数据DATA与否
节点3与节点5选择接收数据DATA,因此其向1号节点发送REQ数据包 - 当1号节点接收到节点3和节点5发送的REQ,即立刻将DATA发送至这两个节点
SPIN路由协议优缺点:
- 优点
- 简单,不需要进行路由维护
- 通过协商机制保证了只向需要的节点发送数据,提高了转发效率
- 小ADV消息解决了内爆问题
- 通过数据命名减轻了重叠问题
- 节点根据自身资源和应用信息决定是否进行ADV通告,避免了资源利用盲目问题
- 缺点
- ADV消息采用广播方式传输,开销比较大
- 每次发送数据包之前都要进行协商,数据传输延迟较大
- 当产生或收到数据的节点的所有邻节点都不需要该数据时,将导致数据不能继续转发,以致较远节点无法得到数据
定向扩散路由协议(DD)
定向扩散路由协议(Directed Diffusion)简称DD路由协议,以数据为中心(基于信息查询)的里程碑式平面路由协议
汇聚节点根据不同的应用需求定义不同的兴趣请求消息,并通过洪泛的方式将兴趣请求消息数据包发送至全网或者局部网络节点
在进行兴趣消息洪泛发送的同时,每个节点根据缓存中的兴趣列表,沿着兴趣消息发送方向的反向建立数据传输梯度
当兴趣消息到达源节点后,源节点则将数据沿着之前建立好的传输梯度进行正向传输,直到汇聚节点
定向扩散路由协议为了能够适应网络拓扑的动态变化,采用周期性地对网络进行路由维护与更新,其主要分为3个阶段:兴趣消息扩散、数据传输梯度建立、路径加强
若汇聚节点对网络的数据查询只有一次,并且源节点只需向汇聚节点上报一次数据,使用定向扩散协议的开销就会比较大
【举例】以 A、B、D 演示兴趣消息的扩散过程
- 汇聚节点向传感器网络内节点 A、B 广播兴趣消息
- 节点A、B接收到兴趣消息,然后,节点A向节点B、D广播接收到的消息,同时节点B向节点D广播接收到的消息
- 节点B收到节点A发送过来的消息,判断是否与刚才转发给D的消息相同,如果是则丢弃该消息。否则检查本地兴趣列表,如果没有相同“兴趣”,则增加新表项并转发“兴趣”,否则判断表项中是否有邻居节点等于兴趣消息数据包中的发送节点,如果是则更新最新时间戳,否则添加新邻居节点,转发“兴趣”
随着兴趣查询消息遍布全网,梯度场就在传感器节点和汇聚节点间建立起来,于是多条通往汇聚节点的路径也相应的形成
路径加强:通过加强机制,发送路径加强消息给最新发来数据的邻居节点,并且给这条加强信息赋予一个值,最终梯度值最高的路径就为数据传输最佳路径。即数据沿这条值最高的最路径以规定速率传输数据,其它梯度值较低的路径视为备份路径
DD路由协议优缺点:
- 优点
- 以数据为中心的路由算法,使得无线传感器网络的通信不再依赖特定的节点,而依赖于网络中的数据
- 采用多路径,健壮性好
- 使用数据融合能减少数据通信量
- 节点遵循本地交互的原则。节点只需要知道局部(邻居)节点的情况,无需了解整个网络的拓扑结构,也不需要特定的节点来计算路由。可以说,定向扩散的寻路是自适应的
- 缺点
- 兴趣传播及梯度的建立开销很大
- 对于大规模网络,会带来较大开销和时延
- 资源盲目使用导致能耗不均匀,可能导致某些节点的过早死亡
谣传路由协议
谣传路由协议(Rumor Routing Protocol)是在定向扩散路由协议的基础上建立起来的、适用于数据传输量较小的传感器网络
该路由协议借鉴了欧式平面几何中的任意两条曲线相交的概率较大的思想:从源节点产生代理数据包并发送,汇聚节点发送请求探测数据包,两者都随机进行下一跳节点的选择,直到两个数据包在某一节点上相交,则构成了一条可行路由
其被认为是SPIN路由协议与定向扩散路由协议的折中,并且加入了 Gossiping 随机转发给其某一邻居节点的转发机制,解决了定向扩散路由中一次传输开销较大的问题
树类路由协议
高弹性多径路由协议
WSN由于其节点的能量有限,应用场景复杂多变,因此网络的动态性较大,节点往往会由于某种原因而失效,WSN自适应这种情况称为弹性
为了解决WSN中数据传输的可靠性问题,一种常见策略是采取多条路径的路由策略。利用冗余路径,当一条路径失效时,可以选择其余路径。在多路径路由当中,通常多条路径中性能最优的路径作为主路径,其余路径则作为备选路径。性能最优可以根据需要定义不同的衡量标准
通常,多路径路由有两种:一种是分离多路径,另一种则是缠绕多路径
多路径的弹性和维护开销有着密切关系:弹性好,意味着协议能够快速检测到路径失效并切换到另外的路径上
SAR路由协议
SAR(有序分配路由)协议是第一个在无线传感器网络中保证 QoS (Quality of Service,服务质量) 的主动路由协议,也是一种基于多路径的路由协议
为了建立起从每个节点到达汇聚节点的多径路由,从汇聚节点的邻居节点开始为树根,依次扩展建立树状结构。从汇聚节点开始,每一个树都会尽可能地向具有满足QoS或者剩余能量较多的邻居节点延伸和扩展
【举例】构建树
当构建树完成后,大多数节点都将成为所建树的一部分,并且由于汇聚节点周围的邻居节点都是这些树的树根节点,因此所形成的多条路径针对汇聚节点周围的邻居节点是不相交的
每个节点由于有多条路径到达汇聚节点,采用“有序分配路由”算法进行路由选择。即综合考虑路径上的能量资源 、QoS、数据分组的优先级等
该算法节点需要大量的冗余路由信息以建立路由,且耗费存储资源,更新信息开销较大
LEACH路由协议
LEACH是一种低功耗自适应聚类路由协议,它打破了原有成簇算法中固定簇头的思想,采用本地簇头随机轮循机制将能量负载均匀分布到网络中的所有节点,提升了簇状无线传感器网络的性能
LEACH基本思想:将节点组织成簇结构形式,每个簇有一个簇头节点,其他节点作为非簇头节点。所有的非簇头节点只与本簇的簇头节点通信,数据由簇头节点传输到Sink节点
簇头节点除了传输非簇头节点的数据外,还要执行数据融合功能。因此,簇头节点要比非簇头节点消耗更多能量,为避免节点长期担当簇头而过早耗尽能量,LEACH使用轮转的方式选举节点成为簇头节点,从而让所有的节点都有机会成为簇头节点而达到网络中节点能量消耗均匀的目的
【举例】LEACH的执行过程
- 按照规定选取合适的簇头
- 当网络中部分节点选择自己为簇头节点后,则发布消息通知网络中其它节点自己是簇头节点
- 每个非簇头节点根据自己与簇头之间的距离来选择加入哪个簇,并通知该簇头,簇头收到消息后将该节点加入到簇成员表中
- 非簇头节点在簇内指定的持续时间内发送一次数据,在没有数据发送时,将进入休眠状态以节省能量,而簇头节点保持工作状态以接收数据
- 簇头收到所有的簇内数据之后,就执行数据融合功能,然后将处理后的数据传输到Sink节点
LEACH路由协议的优缺点:
- 优点
- 由于采用层次结构,使得节点路径的选择及路由信息的储存都非常简单直接,节点不需要储存大量路由信息,比较适合无线传感器网络
- 簇头随机选取,无需全网命令控制,实现比较容易。而且节点机会均等,网络负载比较均衡
- LEACH中采用的成簇技术使网络具有很好的扩展性,同时簇头的轮转选择使网络具有较强的抗毁性
- 传感器节点对信息收集是集中和周期性的,因此该协议能良好的应用于持续监测的区域
- 缺点
- 在LEACH算法中,所有节点都与簇头节点通信,而簇头节点又要与Sink节点进行通信,簇头能量消耗将大大增加,会导致其过早死亡。一旦簇头节点死亡失效,就会导致其簇内成员不能将数据传送到Sink节点,使网络覆盖不全
- 在所有节点初始能量相同的前提下,LEACH在选取簇头时没有考虑到节点当前能量问题。当节点当前能量较低时,继续担任簇头节点,将加快其死亡而成为盲节点。过多的盲节点会降低网络平均生命周期,导致路由协议的低效率
- 选择簇头的方法无论从数量上还是分布位置上往往呈现较大不确定性
PEGASIS路由协议
PEGASIS是一种在LEACH协议基础上建立起来的路由协议,主要解决LEACH协议中由于簇头频繁变更,导致通信开销较大的问题
PEGASIS协议并不采用全网多个簇头的方案,而是只采用一个簇头,其将全网看成是一个簇群,并将其称为链。簇头节点与汇聚节点能够通过一跳通信,其余传感器节点只能通过多跳的形式与簇头节点通信
PEGASIS将全网看成是一个链,因此簇头节点将链分成两部分,而数据分别从两端传输至簇头节点
在传输的过程中,每个节点必须知道自己的所在地理位置,以便在转发时采用贪心策略,将数据转发给与其距离最近的节点,并在转发过程中应做相应的数据融合。当两端数据发送完毕后,进行下一轮簇头节点的选择
- 缺点
- 一旦簇头出现故障,整个网络将陷于瘫痪
- 协议假定每个节点均能直接与汇聚节点通信,而在实际网络中,传感器节点一般是通过多跳的形式传输数据以减少能量消耗
- 每个节点需要知道邻居节点的能量状态以及地理位置信息,需要大量的能量开销
- 链尾节点会有较大的信息延迟
- 采用簇头节点轮流担任的机制,会导致离基站较远的节点先死亡
TEEN和APTEEN路由协议
TEEN:能量有效的阈值敏感路由协议,是一种具有实时性的路由协议,与LEACH相似,采用多簇运行方式。随着簇首节点的选定,基站通过簇首节点使用TDMA实现数据的调度
TEEN协议引入了两个参数值:硬门限与软门限
在数据传输过程中,首先由汇聚节点向网络中传感器节点广播硬门限及软门限值;传感器节点根据这个硬门限值,在第一次将监测到的数据上报给簇头节点时,仅上报其值大于硬门限的数据,并将当前的监测数据保存为监测值(SV)
在这之后监测到的数据则根据硬门限与软门限两者共同决定是否需要上报给簇头节点,凡是数值大于硬门限值且与监测值之差的绝对值不小于软门限时,节点才向簇头上报数据,并将当前观测到的数据作为最新的 SV
TEEN的优缺点
- 优点
- TEEN协议有效地降低了网络数据传输量
- 因簇头节点可以与其它簇头节点构成层次结构,不要求直接与汇聚节点通信,可不具备大功率通信能力
- 对超过阀值的数据比较敏感,可对突发事件快速响应
- 缺点
- 因为阀值的设置,造成有些数据不能上报
- 对周期性应用支持不足
地理位置路由协议
在诸如目标跟踪的应用问题中,往往需要唤醒距离被跟踪目标最近的节点,以得到关于目标的更精确位置等相关信息
在这类与坐标位置有关的应用问题中,通常需要知道目的节点的精确或者大致地理位置。把节点的位置信息作为路由选择的依据,不仅能够完成节点的路由选择功能,还可以降低系统专门维护路由协议的能耗
基于局部地理拓扑的单播路由协议
基于局部地理拓扑的典型单播路由协议是指每个节点仅仅知道其邻居节点所在的地理位置,而不知道全网所有节点地理位置,利用局部地理信息位置,进行路由的选择
经典路由协议:PALR路由协议
PALR路由协议中,要求每个传感器节点仅知道自己、目标节点与其邻居节点的地理位置信息(PALR是根据地理位置来优化网络的传输能量)
设网络中源节点为 S,汇聚节点为 BS,S 的邻居节点为 {s1,s2, ‥ ‥sn },则 S 在选择路径时,将整个路径拆分为两个部分:一是从 S 到其邻居节点的单跳路径,二是从其某邻居节点到汇聚节点的单跳或多跳路径,实线表示源节点到邻居节点的路径,虚线表示从邻居节点到汇聚节点的路径
对于任意一条从源节点 S 到汇聚节点 BS 的路径,其能量消耗以等于两端路径消耗能量之和 。如用 u(.) 表示第一段路径的能量消耗,v(.) 表示第二段路径的能量消耗,则寻找的路径应满足 min{u(.)+v(.)} ,即总能量消耗最小。由于节点知道其邻居节点的地理坐标,因此能够较为容易且准确地计算出通信代价,但是 v(.) 并不能准确计算出,因此需要估计出来,PALR采取的办法是利用最小理想能耗来计算
基于地理位置信息改善的多播路由协议
LBM是在保证多播精确度的前提下,利用地理位置信息,进行有目的的广播数据包转发,从而降低整个网络的通信能耗。LBM利用多播目的节点的地理位置信息,定义了转发区域,只有在转发区域内的节点才会转发多播数据包
转发域主要有以下3种类型:
-
静态转发域
通过将目标域与源节点限制在一定范围空间中,从而将节点的数据转发范围缩小,有效降低广播的通信量
最简单的空间限制即是将目标区域与源节点限制在一个满足条件的最小矩形内
-
自适应转发域
转发域会随着数据包的不断转发进行相应的变化,通过自适应将转发区域根据当前数据发送节点进行调整,可以进一步提高网络数据通信效率,避免冗余数据通信,但是,由于节点每一次收到新数据时都需要计算自适应转发域的大小,增加了个别节点的计算复杂性程度
假设节点2先于节点3收到数据,则自动调整转发域如下图,有效避免节点3的冗余数据的转发
-
基于前进距离的非显示转发域
是一种根据每个节点自身计算值,决定是否将数据包向前转发,即这个转发区域是时刻在变的且没有固定形状
节点1将数据发给节点2后,节点2判断 L1-L2 ≥ δ,若是,则转发;否则丢弃
基于地理栅格的分层网络路由协议
GRID路由协议是典型基于地理珊格的路由协议,其初始为移动自组织网络设计
基本思想:将网络划分成多个正方形的小珊格,相邻珊格中的任意两个节点可直接通信
算法主要包括3个阶段:
-
栅格划分
栅格划分阶段主要包括了两个部分,即节点属于哪个栅格与簇头的选取
栅格的大小,即边长 r 的选取对于路由的性能影响较大:若栅格边长 r 选取较大,则可能导致各个栅格的簇头节点之间相距较远而导致无法通信;若 r 较小,则可能在某一个栅格内,导致没有节点存在,使得路由无法选取
通常情况下,r 的选取值为 r = d 5 r = \frac{d}{\sqrt {5}} r=5d ,d 为两节点之间的通信距离
-
路由建立
-
路由维护
无线传感器网络路由协议比较
路由协议 | 单路径 | 多路径 | 平面结构 | 树状结构 | 混合路由 | 基于地理位置 | 基于数据融合 |
---|---|---|---|---|---|---|---|
Flooding | √ | √ | 可选 | ||||
Gossiping | √ | √ | 可能 | ||||
SPIN | 可能 | 可能 | √ | √ | |||
DD | √ | √ | √ | ||||
Rumor | √ | √ | √ | √ | |||
高弹性多路径 | √ | √ | 可能 | 可能 | |||
SAR | √ | √ | |||||
LEACH | √ | √ | 可能 | √ | |||
PEGASIS | √ | √ | √ | ||||
H-PEGASIS | √ | √ | √ | ||||
TEEN | √ | √ | √ | ||||
APTEEN | √ | √ | √ | ||||
PALR | √ | √ | √ | ||||
LBM | √ | √ | √ | √ | |||
GRID | √ | √ | √ | √ | √ |
路由协议 | 应用场景 |
---|---|
Flooding | 紧急事件报警,高可靠性传输,节点频繁移动,小规模网络 |
Gossiping | 多汇聚节点,端到端延时不敏感,节点移动,小规模网络 |
SPIN | 多汇聚节点,中间节点需要知道它周围的节点是否需要数据,小规模网络 |
DD | 少量汇聚节点,请求驱动的、周期性的请求,Qos感知的 |
Rumor | 多汇聚或少量汇聚节点均可。对时延要求不高,请求驱动,且密集部署 |
高弹性多路径 | 节点密集部署,可靠性要求较高 |
SAR | 基于构建树的,Qos感知的,小规模网络,对时延要求不高 |
LEACH | 能量有效,节点密集部署,周期性请求,小规模网络,端到端延时感知 |
PEGASIS | 改进LEACH的能量消耗,节点密集部署,周期性请求,小规模网络,端到端延时感知 |
H-PEGASIS | 多层次的PEGASIS |
TEEN | 进行了数据阀值的设置,数据整合进一步减少了网络通信量 |
PALR | 节点密集部署,最优能量路由需要选择的中继点以很大概率存在 |
LBM | 与内部的相关参数关联较大 |
要求不高 | |
LEACH | 能量有效,节点密集部署,周期性请求,小规模网络,端到端延时感知 |
PEGASIS | 改进LEACH的能量消耗,节点密集部署,周期性请求,小规模网络,端到端延时感知 |
H-PEGASIS | 多层次的PEGASIS |
TEEN | 进行了数据阀值的设置,数据整合进一步减少了网络通信量 |
PALR | 节点密集部署,最优能量路由需要选择的中继点以很大概率存在 |
LBM | 与内部的相关参数关联较大 |
GRID | 适用于移动性较强的网络,栅格的大小对路由的性能影响较大 |