| | |
※ 为什么传统路由协议不使用于WSN呢?
※ 在设计WSN路由协议之前,我们首先要了解WSN的特点是什么?
※ 对WSN路由设计有什么要求呢??
|| 路由协议分类
@ 按路由发现策略分:
优点: 当节点需要发送数据分组时,只要去往目的节点的路由存在,所需的延时就会很小。
缺点:需要花费较大开销,尽可能使得路由更新能够紧随当前拓扑结构变化,浪费了一些资源来建立和重建那些根本没有被使用的路由。
优点:不需要周期性的路由信息广播,节省了一定的网络资源。
缺点:发送数据分组时,如果没有去往目的节点的路由,数据分组需要等待因路由发现引起的延时。
@ 按网络管理的逻辑结构划分
各节点在功能上地位相同,没有引入分层管理机制。
优点: 没有特殊节点,网络流量均匀分散,路由算法易于实现。
缺点: 可扩张性小,在一定程度上限制了网络的规模。
典型: Flooding Gossiping SPIN DD Rumor
采用簇的概念对传感器节点进行层次划分,每次簇有一个簇首,簇与簇之间可以通过网关通信,网关可以是簇首也可以是其他成员,网关之间的连接构成上层骨干网,所有簇之间的通信都通过骨干网转发。
包括 成簇协议、簇维护协议、簇内路由协议和簇间路由协议四个部分。
分层协议是比较适合WSN的,但成簇过程会产生一定的能耗,如何产生有效的簇类也正是学者们深入研究的问题。
典型——LEACH TTDD
需要知道目的节点的精确或者大概地理位置。把节点的位置信息作为路由的选择依据,不仅能够完成节点的路由功能,还可以降低系统专门维护路由协议的能耗。
典型——GPSR GEAR GEM
|| 能量感知路由
节点根据传输路径上的可用能量(Power available,PA)或能耗(E)来选择数据的转发路径。
|| 基于查询的路由协议
@ Flooding 和 Gossiping
Flooding是一种传统的路由技术,主要思想是由某节点发起数据广播,然后任意一个受到广播的节点都无条件将该数据副本广播出去,每一节点都重复这样的操作直到数据遍历全网或者达到规定的最大跳数。
算法是不用维护网络拓扑结构和进行路由计算的,实现简单,但存在的主要问题是内爆、重叠现象。
Gossiping 是对Flooding的改进,当节点收到数据包时,只将数据包随机转发给与其相邻的某一个节点,而不是所有节点。当相邻节点收到数据包时,也采用同样的方法转发给与其相邻的某一个节点。
优点是降低了数据转发重叠的可能性,解决了信息内爆现象的产生。缺点是可能产生递送失败,因为随机转发某一节点的方向可能并不一定在距离目的节点更近的方向上,因此容易造成数据到达目的节点的时间过长或者跳数已经达到最大,而数据还没有达到目的节点,造成递送失败。
@ SPIN(Sensor Protocol for Information via Negotiation)
该协议是对Flooding的改进,考虑到WSN的数据冗余,相邻节点所感知的数据具有相似性,通过节点间协商方式减少数据传输量,只广播其他节点没有的数据。
元数据——对节点感知数据的抽象,是原始感知数据的压缩,可以描述原始感知数据(传递元数据可以节省能耗)
SPIN采用三次握手机制,有三种分组:ADV(Advertise)、REQ(Request)、DATA
特点——通过和邻居节点的协商来减少Flooding带来的内爆和重叠的影响;通过元数据来完成协商过程(比源数据短;避免传输冗余数据)
SPIN2-2 在 SPIN-1 的基础上加入了能量阈值——当一个节点的剩余能量低于阈值时,减少其在协议中参与的活动。
优点:
(1)解决了内爆问题,部分解决了重叠问题(单播)
(2)不需要进行路由维护(ADV-REQ-DATA握手的过程就是建立路由的过程,不需要提前建立路由)
(3)对网络拓扑变化不敏感(不用维护路由),可用于移动WSN
缺点:
(1)本质上SPIN还是向全网扩散新消息,开销比较大
(2)当多个节点向同一个节点同时发送REQ时,需要退避算法
@ DD(Directed Diffusion)
思路:Sink节点周期性地广播一种称为“兴趣”的分组,告诉其他节点,我要收集什么兴趣。兴趣在扩散的过程中也反向建立了路由路径,与“兴趣”匹配节点通过路径传送数据到sink节点。
三个阶段:
兴趣扩散(Flooding)
梯度建立(反向建立)
强化路径(选最优路径进行加强)
评价优点:
(1)数据中心路由,定义不同任务类型、目标区域消息;
(2)路径加强机制显著提高数据传输的效率
(3)周期性路由:能量的均衡消耗
缺点:
(1)周期性洪泛机制——能量和时间开销都比较大
(2)Sink周期性广播不适用于大规模网络
(3)节点需要维护一个兴趣列表,代价较大
@ Rumor
|| 集群结构路由协议
@ LEACH ( Low-Energy Adaptive Clustering Hierarchy)
※ 集群结构路由原理??
实际上是分层结构路由协议的一种,网络划分为多个簇,每个簇由一个簇头和簇成员组成,这些簇头形成高一级网络,在高一级网络中,可以再一次分簇,形成更高一级网络。簇头管理簇内节点,负责收集和融合簇内信息和簇间信息的转发。其优点在于具有较好的扩展性,同时也适用于大规模的网络。
如果使用簇头的话,每个节点直接和sink节点通信,当节点比较稀疏的话,单次传输能量消耗过大;比较密集的话,冲突过多,效率低。
※ LEACH算法是如何运作的??
簇头建立阶段:
(1)节点运行算法,确定本次自己是否成为簇头
(2)簇头节点广播自己成为簇头的事实。
(3)其他非簇头节点按照信号强弱选择是否加入该簇,并通知该簇头节点
(4)簇头节点按照TDMA的调度,给依附于他的节点分配时间片
数据传输阶段
节点在分配给他的时间片上传输数据即可。
※ 算法评价?
优点??
缺点??
@ TTDD(A Two-tier Data Dissenmination Model for Large-scale Wireless Sensor Networks)
具体过程:
※ 格状网建立时的上下游关系??
上游节点: 分发节点在格状网建立阶段由源节点或者其它分节点选择,这个选择本分发节点的源节点或者分发节点就叫做上游节点,被选择的就是下游节点。
※ 如何评价TTDD协议??
优点:提出了一种新的应用场景;支持多sink和移动sink的网络环境。
缺点:需要地理位置信息的支持;网格大小不易确定。
|| 地理位置信息协议
@ GPSR ( Greedy Perimeter Stateless Routing 贪婪周边无状态路由)
|| 未来研究方向
|| 作业
相比互联网和传统Ad Hoc路由,WSN路由协议有什么特殊要求?
(1)WSN无基础设施,要延长网络寿命就必须要降低能耗
(2)同时,WSN需要考虑每个节点的寿命,单跳传输的距离不能太远,需要多跳中继。
(3)WSN使用环境恶劣,比如无线信道不稳定、节点的移动与失效使其拓扑结构随时可能变化,所以其路由协议需能够快速收敛。
(4)因为WSN功能是收集数据,一定以数据为中心,当多个节点监测同一区域时,需要考虑数据的冗余性,进行数据融合等处理。
洪泛协议导致的内爆和重叠有什么区别?
(1)内爆是多个节点转发相同的数据到目的节点
(2)重叠是两个或多个节点转发到目的节点的数据有相同的部分。
请分析Gossiping可能带来的问题?
可能产生递送失败,因为随机转发某一节点的方向可能并不一定在距离目的节点更近的方向上,因此容易造成数据到达目的节点的时间过长或者跳数已经达到最大,而数据还没有达到目的节点,造成递送失败。
你认为基于路径的剩余能量进行转发有什么问题?
剩余能量更多的路径可能具有更多的跳数从而使耗费增加。
简述SPIN的三次握手机制?
(1)节点A有新数据,通过ADV发布新数据消息,使用元数据
(2)节点B收到ADV后,发现自己没有该数据,通过REQ向A请求新 数据。
(3)节点A向B节点传送源数据。
从能耗的角度来看,DD协议最大的问题是什么?
周期性的洪泛机制使得能量的开销比较大。
作为分簇类的路由协议,LEACH如何尽量保证大家可以轮流作簇头?
采用一种簇头选举算法:
每个传感器节点n选择[0,1]之间的一个随机数,如果选定的值小于某一个阈值 T(n),那么这个节点成为簇头节点,计算如下:
p是期望的簇头节点比例,r是当前的回合数,G是最近1/p轮内没有成为簇头的节点集合,每个节点在1/p轮内都有机会成为一次簇头,选举完全是分布式的。
不能。因为LEACH的簇头选举方法无法保证簇头遍及整个网络,很容易扎堆。
某一节点的邻居节点到sink节点的距离大于该节点到sink节点的距离时,即出现路由空洞时要用到右手法则。
(1)一个源节点建立起的格状图中只有在交叉点附近的点才有可能被选为分发节点,综观整个网络,其中有很多个源节点,那么网络中的节点都有可能被选为分发节点,所以节点的能耗是比较均衡的。
(2)是通过主代理(PA)、直接代理(IA)实现对sink移动性的支持的。PA是sink指定的一个固定不变的节点,负责接收直接分发节点发送过来的数据,IA是sink移动时动态指定的,PA将数据传送给IA,IA再将数据传送给PA。