Benjie Chen等人提出的Span也是一种在保证网络正常运行的条件下,尽量将节点关机的节能算法。在这种节能方法中,只有部分节点处于通信状态,相当于组成一个通信骨干网,网络上所有的数据流都从这些骨干节点通过。因此,与全体节点都处于通信状态情况相比,可能导致时延增大,带宽资源下降,甚至有些节点不可达。
基本思想
一个令人满意的关机节能算法应当具有以下几个特点:
1、在大多数时间内尽可能地让更多的节点关闭无线接收机;
2、能够保证网络的连通性与不使用这种节能措施时相同;
3、使用这种方法与不使用这种方法相比,增加的时延要尽可能小、可利用的带宽资源下降不大。
4、这样一种方法最好与具体的路由和
MAC协议无关,也就是能够支持多种路由与
MAC协议。
Span是满足上述要求的一种节能算法。在Span算法中,网络的每一个节点能够以分布式方式独立周期性地判断和决定自己应当进入休眠还是保持清醒。保持清醒的节点作为一个协调者,承担当前骨干路由上的中继转发功能。判断是否应当清醒成为协调者的原则是:当一个节点发现它的两个邻节点之间既不能之间通信又不能通过一个现存的协调者通信时,它就认为自己应当成为协调者。为了均衡能量消耗避免部分节点过早死亡,网络中的节点应当轮替地成为协调者。同时,为了更好地节能,处于清醒状态作为协调者的节点越少越好。
Span通过让每个节点周期性地广播HELLO消息实现上述基本思想。HELLO消息中包含:节点状态(节点是或不是协调者),节点当前的协调者、节点当前的邻居。然后,每一个非协调者节点周期性地唤醒和休眠,唤醒时依据自己获得的信息,根据上述规则确定它是否应当成为一个协调者。
关键技术问题
1、避免协调者竞争
当局部区域内的多个节点同时发现缺少一个协调者时,它们就都认为自己应当成为一个协调者,然后就利用HELLO消息通告周围节点,这就产生了通告竞争。Span通过让这些节点采用随机退避发送HELLO消息来解决这个竞争问题。
这种方法是:当节点判断自己应当成为协调者时,使用某种机制确定一个随机退避时间,然后退避;如果在退避时间结束时节点没有收到从其他相邻节点发出的HELLO消息,它就发出HELLO消息;否则,它会根据任何收到的HELLO消息来重新判断它成为协调者的合格性,如果它依然应当成为协调者,这个节点就会利用HELLO消息发出通告。
2、退避时间确定
退避时间短意味着节点成为协调者的优先级高,退避时间长意味着节点成为协调者的优先级低。一个节点是否更应当成为协调者,取决于这个节点的剩余能量,以及这个节点周围的局部拓扑结构等因素。
首先考虑:当所有的节点有大概相等的能量的情况,这意味着在决定哪些节点更容易成为协调者时只考虑节点的拓扑结构。设Ni是节点i的邻节点数目,Ci是节点i成为协调者后通过节点i新增连接的节点对数目。显然0≦Ci≦,在Span中将Ci/称为节点i的利用率。利用率高的节点表明这个节点成为协调者后,通过它新连接的相对节点对数多。让利用率高的节点成为协调者,可以减少成为协调者的总节点个数。因此,应当让Ci值高的节点更易于成为协调者。为了避免协调者竞争,应当引入一定的随机性。因此,当所有节点的能量大概相等时,一个比较合理的确定退避时间的公式如下:
delay =
R是[0,1]内均匀分布的随机变量,T是无线链路上的往返传播时延。
其次考虑节点中的电池能量不相等的情况。原则显然是:要求剩余能量高的节点更应该成为协调者。Span中考虑了的节点的不一致性:每个节点的总可用电池量(也就是开始时的总电池能量)是不同的,有的节点类型多,有的节点类型少。在这种情况下,如果用Er来代表一个节点剩余的总能量(用焦耳表示),用Em表示该节点的总可用能量,一个合理的观点是保证Er/Em比值比较大的节点比Er/Em比值小的节点更容易成为一个协调者。在Span中,综合剩余能量和网络拓扑因素后,确定退避时间的公式为:
delay =
3、协调者身份撤销
每个协调者周期性地检查它是否应当推出协调者行列。撤销自己作为协调者的原则是:当一个节点的每对邻居都能直接互相到达或能通过其他协调者到达,这个节点就应当推出协调者行列。但是,为了能量消耗的均衡性,当一个节点当了一段时间的协调者后,如果它的每对邻节点能通过其他邻居相互到达,就算那些邻居目前不是协调者,这个节点也会退出协调者行列。这个规则给了其他邻居一个成为协调者的机会。协调者退出也是通过发送HELLP消息实现的。
为了避免一个协调者的退出和一个新协调者上任之间的时间空白,引起网络连通性的暂时失效,节点在发出它的退出通告后仍然要作为协调者提供一段短时间的服务,在这段短时间内允许路由协议继续使用以前的协调者直到选举出一个新的协调者。
4、与MAC和路由的互操作
如图1-1所示,Span既不属于路由协议,也不属于
MAC协议;而是处于两者之间的一个中间层。Span通过只允许在协调者集合中寻找和维护路由的方式,可以考虑支持多种路由协议。Span协议的实现与MAC层的节能模式有关。Span协议是在IEEE802.11的节能模式上采用基于地理位置的
路由协议实现的。
总结
Span能在不明显降低
网络容量和连通性的条件下降低能量的消耗。Span分布式地从所有节点中推选协调者,并不时地轮流更替协调者。协调者处于唤醒状态并完成多跳分组数据的路由,而非协调者处于休眠节省能量的模式,非协调者周期性唤醒检查它是否应当成为一个协调者。
仿真结果表明,Span不仅能够保持网络的
连通性,也能保持网络的容量,降低了时延,有效地节省了能量,而且在某些场合下,网络寿命可以延长两倍。