1.3无线传感器网络支撑技术简介
(1)通信协议
通信协议对于所有网络都是必不可少的基础支撑技术。WSN的通信协议与其它网络相比还不成熟,没有统一的标准,改进空间很大,研究非常活跃。 ①MAC协议
已有的无线网络MAC协议的设计目标主要是为蜂窝网提供QOS和高带宽,即使是无线Ad Hoc网络的MAC层协议设计一般也只是加入自组织和移动的设计考虑。而WSN的MAC层协议的主要设计目标则是低功耗,尽量延长网络寿命,其次则是良好的扩展性和适应性,与已有的协议存在很大差异。 ②路由协议
路由协议是通信协议极其重要的一环。WSN路由协议的设计除了需要考虑资源限制外,还具有许多特异性:以数据为中心的路由在WSN中很受关注,几乎所有应用都存在节点与基站之间多对一的数据传输,此外要考虑数据冗余等问题。 ③传输协议
因特网的TCP和UDP协议是两个著名的传输协议,但并不适合WSN的需求。TCP协议需要一个握手过程,但是一般WSN中每次传输的数据量很小,所以相对来说握手的能耗过大。而且TCP通过端到端的方式来控制拥塞和保证可靠性,在链路非常不可靠的WSN下会花费很长时间,ACK在网络中的端到端传输也会耗费很多能量。 (2)能量管理
低能耗在WSN中是贯穿始终的设计理念,通信单元负责节点与其它节点或者网络代理等设备之间的无线通信,即无线信号的收发功能,一般被认为是整个结构中能耗最大的部分,从物理层到应用层各层面的设计都要将低能耗作为最主要的设计目标之一。广义的能量管理包括所有WSN中需要考虑能耗的部分,如节点的功率控制、低耗的MAC协议和路由协议、应用中的采样率控制、数据融合等。 (3)时间同步
由于晶体振荡器频率的差异及诸多物理因素的干扰,无线传感器网络各节点的时钟会出现时间偏差。而时钟同步对于无线传感器网络非常重要,如安全协议中的时间戳、数据融合中数据的时间标记、带有睡眠机制的MAC层协议等都需要不同程度的时间同步。 (4)定位
WSN采集的数据往往需要与位置信息相结合才有意义。由于WSN具有低功耗、自组织和通信距离有限等特点,传统的GPS等算法不再适合WSN。WSN中需要定位的节点称为未知节点,而已知自身位置并协助未知节点定位的节点称为锚节点(anchor node)。WSN的定位就是未知节点通过定位技术获得自身位置信息的过程。在WSN定位中,通常使用三边测量法、三角测量法和极大似然估计法等算法计算节点位置。
2
2 时间同步算法协议分析
2.1时钟模型和时延 2.1.1 时钟模型
在无线传感器网络搭建中,节点的计时信号一般由晶振提供。而因为晶振制造工艺的差别,在节点的运行过程中又会被环境所影响,再加上晶体老化等许多偶然因素,致使每个晶振的频率不可能完全一致,进而导致节点的计时速率产生的偏差,造成节点时间的不一致。一般地,本地时间与系统标准时间满足函数关系式:
[7]
其中,w(t)为晶振的角频率,W0为系统晶振的标准角频率,t为标准时间,C(t)为标准时间在t时刻的本地时间。
在现实环境中,晶振的频率是在不断变化着的,常用r(t)=dC(t) / dt,来表示时钟的变化速率。如果讨论的是理想情况,则不考虑晶振的变化,则r(t)=1。当Ci(t)=t时,表示节点i的本地时间与标准时间同步。
t时刻的时钟偏差(Clock Offset) 定义为 C(t)-t t时刻的时钟偏移(Clock Skew) 定义为 ρ(t)=r(t)-1
2.1.2 无线传感器网络中的时延
在传统计算机网络中,时延(delay或latency)一条链路)的一端传送到另一端所需的时间。
需要注意的是,时延(有些统称做传输时延)是由以下几个不同的部分组成的: (1)发送时延 发送时延是结点在发送数据时使数据块从结点进入到传输媒体所需要的时间,也就是从数据块的第一个比特开始发送算起,到最后一个比特发送完毕所需的时间。发送时延又称为传输时延,它的计算公式是:发送时延=数据块长度/信道带宽 (2)传播时延 传播时延是电磁波在信道中需要传播一定的距离而花费的时间。
它的计算公式是:传播时延=信道长度/电磁波在信道上的传播速度
(3)处理时延 这是数据在交换结点为存储转发而进行一些必要的处理所花费的时间。在结点缓存队列中分组排队所经历的时延是处理时延中的重要组成部分。因此,处理时延的长短往往取决于网络中的那个当时的通信量。当网络的通信量很大时,还会发生队列溢出,使分组丢失,这相当于处理时延为无穷大了。有时可用排队时延作为处理时延。这样,数据经历的总时延(传输时延)就是以上三种时延之和:
传输时延=发送时延+传播时延+处理时延
3
[5]
是指一个报文或分组从一个网络(或
2.1.3 消息传递过程分解
将消息在无线传感器网络节点间传递的过程分解成不同的阶段,是对时间同步问题研究的关键,一条消息在节点间的传递过程可分解成如下六个部分:
(1) Send Time:发送节点构造一条消息所需要的时间,包括内核协议处理和缓冲时间等,
它取决于系统调用开销和处理器当前负载。
(2) Access Time:消息等待传输信道空闲所需时间,即从等待信道空闲到消息发送开始
时的延迟,它取决于网络当前负载状况。
(3) Transmission Time:发送节点按位 (bit)发射消息需时间,该时间取决于消息长度和发
射速率。
(4) Propagation Time:消息在两个节点之间传输介质中的传播时间,该时间主要取决于节点间的距离 (电磁波在空气中的传播速率是一定的),类似于上述传输时延中的传播时延。
(5) Reception Time:接收节点按位 (bit)接收消息并传递给MAC层的时间,这个过程和 (3)相对应。
(6) Receive Time:接收节点重新组装消息并传递给上层应用所需的时间。
2.2过去三种时间同步算法协议
2.2.1 Reference Broadcast Synchronization
RBS(Reference Broadcast Synchronization)即参照广播同步[6],是由加州大学Jeremy Elson等2002年提出的以“第三方广播”的思想让参照节点利用数据链路层的广播特性周期性地向网络中其它节点发送参照广播(reference broadcast),使接收者与接收者之间进行同步,排除了发送方对同步精度的影响。
所谓的“第三方广播”,即发送方不参与计算。根节点消息覆盖全部接收节点,且假定这个参照消息到所有节点的传播延迟都相等(忽略所有需同步节点与根节点之间的传播时延),然后广播域内的所有节点相互交换接收参照消息的时间。参照广播同步机制可以有效减少广播域内消息通信开销,相对节省网络资源消耗,但增加节点能量消耗。因为要用到复杂的线性拟合数学运算,总的来说能耗较大。RBS建立在时钟偏移速率恒定模型的基础上,即是t时刻的时钟偏移(Clock Skew) 定义为 ρ(t)=r(t)-1=k (k为常数)。
RBS协议优势恰恰在于数据链路层“广播特性”的较低网络开销。为什么说这里的“广播特性”可以减少网络开销?在传统的计算机网络中,广播是会产生较多的网络开销的。比如我们就知道在传统网络数据链路层的CISCO技术中有spanning-tree来控制“广播风暴”,但是,上文中提到的无线传感器网络中的广播特性,是仅仅1个节点的广播。试想在计算过程中如果不采用广播方法,想要告知彼此联络的数据就需要两两之间的成对同步,这样做其实是会有更多的网络消息开销的。
4
2.2.2 Delay Measurement Time Synchronization
DMTS(Delay Measurement Time Synchronization)算法是由伯克利英特尔研究实验室的Su Ping于2003年提出的单向同步算法。它的实现策略是牺牲部分时间同步精度换取较低的计算复杂度和能耗。接收节点通过精确地测量从发送节点到接收节点的单向时间延迟并结合发送节点中的时间戳计算出时间调整值。DMTS 为了较准确地测量发送方到接收方的单向时间延迟,采取了以下方法:
(1) 发送方在检测到信道畅通时才给即将发送的时间包标记时间戳并立即发送,从而避免了send time和Access time对同步精度产生的影响。
(2) DMTS通过数据发射速率和发射数据的位数(6bit)对发射延迟(包括发射前导码及起始符的时间和发射数据的时间)进行估计。
(3)接收方在MAC层给同步包标记一个到达时间戳,并在接收处理完成时再标记一个时间戳,通过这两个时间戳的差值来估计接收处理延迟。
基本原理:选择一个节点作为时间主节点广播时间同步消息。所有接收节点测量这个时间广播消息的延迟,设置自己的时间为接收到消息携带的时间加上这个广播消息的传输延迟,这样,所有接收到消息的节点都与主节点进行时间同步。发送节点和接收节点的时间延迟td可由(1)式得出: td = n*t + ( t2 - t1) (1)
其中,nt为发送前导码和起始字符所需的时间,n为发送的信息位个数,t为发送一位所需时间;t1为接收节点在消息到达时的本地时间;t2为接收节点在调整自己的时钟之前的那一时刻记录的本地时间,( t2 - t1)就是接收处理延迟。
[4]
2.2.3 Timing—Sync Protocol for Sensor Networks
TPSN(Timing—Sync Protocol for Sensor Networks)是一种双向报文交换的时间同步协议,他类似于因特网时间同步协议NTP,是由加州大学网络和嵌入式系统实验室 SaurabhGaneriwal等提出的。采用发送者与接受者 (sender— receiver)之间进行成对同步的工作方式,并将其扩展到全网域 (Network—wide)。成对同步采用典型的两次消息交换法取得一对节点间的时钟同步。TPSN同步算法的执行分两阶段
[11]
:
(1)层次发现阶段 (Level discovery phase),该阶段主要在网络中产生一个分层的拓扑结构,使每个节点被赋予一个层次号。首先选取一个节点作为根节点并赋予层次号0,然后由它广播一个 level—discovery包,level—discovery包中封装有发送者的标识和层次号,根节点的直接相邻节点收到这个包后将包中的层次号加1作为自身的层次号,然后它们再广播一个新的level—discovery包,重复这个过程直至网络中的每个节点都赋予一个层次号。节点一旦建立自己的分层级别,就忽略任何其它分级数据包,以防网络拥塞。
5
(2)同步阶段 (synchronization phase),在这个阶段中,从根节点开始与其下一层节点进行成对 (pair—wise) 同步,接着属于i层的节点与第i-1层的节点进行成对同步。最终每个节点都同步于根节点并获得了网络的全局时间同步。TPSN对任意节点其同步误差取决于它距离根节点的跳数而与网络中节点总数无关,使TPSN同步精度不会随节点数目增加而降级,从而使TPSN具有较好的扩展性。同时TPSN算法的缺点是一旦根节点失效,就要重新选择根节点并重新进行上述两个阶段处理,增加了计算和能量开销。 如图3-1
图3-1 TPSN双向同步
每个节点与它上一级节点通过两路消息交换而产生的时间同步,最后实现所有节点与根节点的同步。节点B向节点A发送同步请求报文并记录此刻的本地时间T1,A收到请求报文时将记录本地时间T2,并立即向节点B返回一个应答报文,并在该报文中写入T2时刻数和该报文的发送时刻数T3,B收到应答报文后记录本地时间T4。基于报文传输的对称性,可以认为请求报文和应答报文的传输时间相等。当节点B的本地时刻为T1时,节点A和B之间的时钟偏差为△(假设A比B的时间快△,且△>0,其余情况同理), 则T2=T1+△+d (1),T4=T3-△+d (2);联立(1) (2)两式解方程组,可以得到 △,d分别是
可以经计算得知知道节点B在T4时刻将本地时间改为T4+△,就可以达到与节点A的在这一时刻的同步。
6