0 引 言
无线传感器网络(Wireless Sensor Networks,WSN)是一种特殊的无线自组织通信网络。其区别于传统无线自组织网络的特点包括:节点数量特别巨大、节点硬件功能简单、应用场境复杂、各种资源受限等。能量资源受限是WSN主要的瓶颈之一。
能量感知型WSN协议重点强调高效利用能量的重要性,其设计思想主要是在WSN各层协议中引入能量优化算法,通过控制整个网络的能耗平稳性和高效性,从而达到在系统层面上改善传感器网络能耗特性、减少传感器网络的热点并延长整个网络的生存周期的目的。为了解决能耗问题,研究者提出了众多的解决途径,文献[2]提出的SPEED协议采用基于位置的思想,提供拥塞控制和软实时保障,从而降低通信冲突;文献[3]提出的SPIN协议则是利用基于数据的思想,通过引入抽象的元数据概念避免资源的盲目利用;Shah RC等人则直接设计了基于能量优化的路由协议。然而后续研究表明,在网络某一层单独引入能量优化策略的效果并不明显,并且可能会恶化其他层的能耗特性。跨层优化思想利用网络各层信息的有机交互,可以避免各层独立优化时引起的层间干扰。
本文基于这一思想,设计了一种简单可靠的跨层式通信协议ECLC(Cross-Layer Communication Proto-c0l),仿真结果表明:ECLC协议在保障网络流量和网络效率的前提下,可以较好地改善网络的能耗特性,延长网络的生存时间。
1 ECLE协议的设计目标
ECLC协议首要目标是改善整个网络的能耗特性;利用路由层与MAC层之间交互各自的能量信息,因此设计目标完全以实际应用的需求和可实现性为出发点。
1.1 能耗特性
网络整体能耗效率:整个网络的生存周期内,网络总能量(全部节点的初始能量之和)与整个网络采集到的数据量之比值。可表示为:
其中:ein-WSN表示整个WSN的初始能量;Dwsn为WSN在整个生存期内探测到的数据;ein-i为节点i的初始能量;Di为节点i在其生存期内探测到的全部数据;n为该WSN节点的个数。该指标衡量了WSN路由协议的整体能量效率。
网络能耗平稳度:在任意时刻,整个网络中所有节点剩余能量的均方误差。可表示为:
其中:随机变量erem表示WSN节点的剩余能量。剩余能量均方误差衡量了整个网络能耗的平稳性,通过控制剩余能量均方误差,可防止部分节点过早耗尽能量。
网络生存时间:从网络开始工作到有一定数量的节点死亡。该指标主要从时间角度考察了路由协议的整体性能;在WSN的实际应用过程中,网络生存时间是很关键的指标之一。
1.2 可扩展性与容错能力
由于WSN的应用环境复杂多变,节点失效、节点位置变化、新节点的加入都会引起网络拓扑结构的变化,这就要求网络协议具有很强的扩展性。另外由于节点死亡或无线链路本身的缺点会造成通信失败等故障,因而又对协议的容错能力有较高要求。
1.3 快速收敛性
WSN的能量和通信带宽等资源十分有限,因此要求协议能够快速收敛,以适应网络拓扑的动态变化,减少通信协议开销,提高信息传输效率。
1.4 服务质量(QoS)
WSN协议的QoS主要包括传输时延、数据精度、带宽利用率等指标。一旦考虑了服务质量,那么必然要在QoS和能耗特性之间选择平衡。
2 ECLC协议的描述
2.1 基本定义
为了后面描述的方便,先给出以下基本定义:邻居(Vicinage):与节点A可以直接通信的节点称为节点A的邻居。节点A的所有邻居构成它的邻域,记为VA。
前向邻居(Forward Vicinage):数据传输过程中可以成为节点A下一跳节点的邻居。节点A的所有前向邻居构成它的前向邻居集;记为FVSA。
后向邻居(Backward Vicinage):如果节点A是节点B的前向邻居,那么节点B就称为节点A的后向邻居。节点A的所有后向邻居构成它的后向邻居集,记为BVSA。
目的节点(Termini Node):不需其他节点路由,可直接将数据包发送给Sink的节点。
热度:节点建立通信链路的频繁程度。
2.2 信道接入
无线信道访问机制采用IEEE802.11 CSMA/CA机制。需要使用信道的节点首先侦听信道是否空闲,如果信道空闲且经过一个DIFS时序间隔后仍为空闲状态,那么发送节点直接开始发送分组数据;否则发送节点一直侦听信道直至信道最终空闲下来并且超过DIFS时序间隔,此时发送节点将启动退避机制。图1描述了CSMA/CA机制的基本访问方式。
2.3 链路选择
当系统布设完毕进入稳定状态后,Sink节点开始广播HELL0消息,其格式如图2所示。
该数据包共16个字节,其各字段含义如下:
NOP:用来标识采用何种协议,包括协议的名称代码、版本号等信息;
TID:HELLo消息的来源,因为系统中往往不止一个节点可直接向Sink发送数据;
NOT:该数据包被转发的次数,Sink节点广播此消息时该字段为O,每转发一次,该字段值加1,终节点发送时此字段值为1;
TRID:发出该数据包的节点ID;
EREM:发出该数据包的节点的当前剩余能量;
HELL0:消息内容;
HOT:发送该消息的节点“热度”;
0NM:用来标记每次建立路由,在一次建立路由过程中,消息编码固定,Sink节点移动位置或其他情况下需要重建路由时,修改该字段;
SP:用来填补该数据包的空余,该字段值为O。
当某个节点收到此消息后,完成下面动作:
(1)检测数据帧,检测步骤如下:
①查看数据包的消息代码字段,检查与上次接收到的协议编号是否相同(首次接收到判为不同);若相同转步骤③;否则转步骤②;
②清除邻居列表信息,重新建表;
③查看HELLO消息数据包的转发节点ID字段,若该节点已包括在后向邻居列表中,则丢弃该包;
④将转发节点ID添加到前向邻居列表。
(2)发送一个名为“COUNTERSIGN”的确认消息数据包,消息格式如图3所示:
该数据包共有16个字节,各字段含义如下:
NOP:与HELLO消息的相应字段相同;
TRID:产生并发送该消息的节点ID;
COUNTERSIGN:消息内容;
REIDL:该字段包含了需接收该消息的全部节点ID;
SP:与HELL0消息的相应字段相同。
(3)转发HELLO消息,其过程为:
①修改转发次数字段,给其值加1;
②将转发节点ID、“热度”、剩余能量替换为自己的相应值;
③发送HELLO消息。
(4)接收确认消息,修改其后向邻居表。
2.4 建立通信链路
当某个节点需要发送数据时,它在自己的前向邻居中选择一个节点作为接收点,其选择步骤如下:
(1)根据前向邻居表内各个邻居的“热度”,避开比较热的节点;
(2)启用功率管理算法计算最佳传输距离范围;
(3)在最佳传输距离范围内选择剩余能量最大的节点作为它的下一跳。
2.5 数据传输
传感器节点产生的数据包格式如图4所示,数据包中各字段含义如下:
NOP:与HELL0消息相同;
REID:接收该数据包的节点ID;
NOT:表示该数据包被发送的次数;源节点发送时该字段值为1;
TRID:发送该数据包的节点ID;
DATE:数据包的内容;
SP:补充数据包的空余,该字段值为0。
图4数据帧格式数据包转发过程如下:
(1)当某个节点接收到该数据包时,检测接收节点ID是否与自己ID一致,若不一致丢弃该包,再检测发送节点ID是否在自己的后向邻居列表中,若发送节点ID不在自己后向邻居列表中,则丢弃该包。否则接收该包并缓存。
(2)数据包被缓存后,该节点将该数据包的接收节点ID字段替换为它的下一跳ID,将发送节点ID字段修改为自己的ID,然后将数据包发送出去。
3 仿真分析
利用OPNET仿真平台对设计的通信协议进行了仿真,在200×100的区域中,共随机布设了120个节点,仿真环节的各项参数设置如表1所示。
3.1 ECLC的能耗特性分析
图5表示了AODV,DSRE,SPEED,GPSR,SPIN(MAC层采用802.11协议),ECLC六种协议在传输相同数据量的条件下的能耗特性,可以看出:与其他几种协议相比,未使用跨层交互机制时几种协议能耗特性相差较小,原因是几种协议的MAC层访问机制相同;而在开启跨层优化功能后,ECLC可以很好地避免冲突与网络拥挤,因而减少了能量浪费。图5是未开启跨层优化时各种协议的能耗比较;图6是开启跨层优化后各种协议的能耗比较。
3.2 ECLC网络生存时间的影响
在仿真路由协议对网络生存时间的影响时,选择节点死亡数目超过1/3的时刻作为WSN的失效时刻,即在仿真时,当死亡节点数量达到40时,表示WSN死亡。图7表示了多次仿真取算术平均值的网络生存时间比较图。从图中可以看出,ECLC可以最大限度地延长网络生存周期,这是因为ECLC协议更好地控制了所有节点能量消耗的平稳性,因而不会导致部分区域过早出现热点而引发连锁效应。
4 结 语
本文通过采用跨层机制来交换层间能耗信息,设计了一种简单可靠的能量感知型无线传感器网络通信协议ECL,并给出了实现过程。在理论分析的基础上,用OPNET仿真平台对所设计的协议进行了仿真分析,结果表明:ECLC通信协议对节点数量特别巨大的传感器网络的能耗特性有很好的改善作用,可以显著改善整个WSN网络能耗的均衡性,从而延长了网络的生存时间。由于无线传感器网络协议有很强的应用相关性,后续工作将包括:进一步优化ECLC协议细节,增强其各种性能,尤其是增强可移植性,使其成为一种开放式WSN通信协议。