尽管LEACH协议具备以上优点,但也存在一些不足之处。
(1)由于LEACH算法假定所有节点能够与汇聚节点直接通信,并且每个节点都具备支持不同MAC协议的计算能力,因此该协议不适合在大规模的无线传感器网络中应用。
(2)LEACH算法是让网络中自组织的形成簇,由于簇头节点是随机产生的,这样无法保证簇头节点的合理分布。因此,很有可能出现被选择的簇头节点集中在网络中某一区域的现象,这样就会使得一些节点的周围没有任何簇。
(3)LEACH算法忽略了被选簇头在网络内的分布状态和节点间不同的通信距离而导致的节点能量损耗的不平衡。
1.2 PEGASIS协议
PEG ASIS(Power一Efficient Gathering in Sensor、Information Systems)协议是在LEACH基础上改进设计的。PEGASIS算法的主要思想是在传感器网络中形成一条覆盖所有节点的“链”,节点从它的一边的邻居节点接收数据,然后将接收到的数据和自身的数据进行融合处理之后形成一个与原来数据包同样大小的新数据包,再将得到的新数据包发送给它的另外一边的邻居节点,以此类推,数据最终被传到一个“领导”节点,由这个“领导”节点把数据发送给基站。节点充当“领导”节点与基站通信是轮流的,当网络中的所有节点都充当过“领导”节点后,节点再进行新一回合的轮流通信。
在PEGASIS算法中,“链”的形成过程是整个通信的关键。“链”的形成采用的方法是:节点发送能量递减的测试信号通过监测应答来确定离自己最近的相邻节点。通过这种方式,网络中的所有节点能够了解彼此的位置关系,找到自己的邻居节点,每一轮通信中节点只需要与自己的邻居节点进行通信。为确保每个节点都有其相邻节点,从离基站最远的节点开始构建,链中邻居节点的距离会逐渐增大,因为已经在链中的节点不能被再次访问。依次下去,最终形成一条包含网络中所有节点的链。
当节点链形成并且选举出领导节点后,就开始了数据传输过程。PEGASIS中的数据传输使用Token(令牌)机制,如图1所示。Token很小,故能耗较少。在一轮通信中,领导节点用Token控制数据从链尾开始传输。图中,C2为领导节点,将Token沿着链传给C0,Co传数据给C1,C1将C0数据和自身数据进行融合后形成一个相同长度的数据包,再传给C2。然后,C2将Token传给C4,C2以相同的方式接收来自C3,C4的数据。这些数据在C2处进行融合后,发给基站。
PEGASIS是在LEACH基础上建立的路由协议,PEGASIS比LEACH节省能量主要体现在以下几个方面:
(1)在本地数据聚合阶段,PEGASIS算法中每个节点只与离自己最近的邻居节点进行通信,而不是像LEACH算法一样需要与簇头节点进行通信,PEGAS—IS算法大大减小了每轮通信中每个节点的通信距离,从而降低了每个节点在每一轮通信中所消耗的能量。
(2)LEACH算法中,一个簇头要接收多个簇成员节点发送过来的数据,而PEGASIS算法中,一个领导节点最多只需要接收2个节点发送过来的数据包。
(3)在每一轮通信中,PEGASIS算法只有1个领导节点与基站通信,而LEACH中则有多个簇头节点与基站通信。PEGASIS也存在一些不足之处:节点维护位置信息(相当于传统网络的拓扑信息)需要额外的资源,在网络全局信息比较难以获得的情况下就不合适了,而且领导节点的惟一性使得其成为整个通信过程的瓶颈。
2 其他典型路由协议
2.1 SPIN协议
SPIN(Sensor Protocols for Information via Nego—tiation)协议的设计思想是:每个节点在发送数据前通过协商来确定其他节点是否需要该数据;同时,节点通过“元数据”确定接收数据中是否有重复信息存在。节点通过3种消息进行通信:ADV(数据描述),REQ(数据请求)和DATA(数据)。源节点在传送DATA信息之前,首先向相邻节点广播包含DATA数据描述机制的ADV信息,需要该DATA信息的邻节点向信息源发送REQ请求信息,源节点在收到REQ信息后,有选择地将DATA信息发送给相应的邻节点。收到DATA后,该邻节点可以作为信息源,按照前述过程将DATA信息继续传播到网络中的其他节点。该协议的优点是:ADV消息减轻了内爆问题;通过数据命名解决了交叠问题;节点根据自身资源和应用信息决定是否进行ADV通告,避免了资源利用盲目的问题,进而有效地节约了能量。其缺陷是:当产生或收到数据的节点的所有邻节点均不需要该数据时,将导致数据不能继续转发,会使较远节点无法得到数据。