1.3.6 时间同步
1. 基本概念[29]
时间同步是无线传感网的一项重要的底层支撑技术,其目的是为网络中节点的本地时间提供共同的时间戳,无线传感器节点间的时间同步是实现节点的协同感知、通信、能量管理等网络功能的前提条件。作为无线传感网技术中的一项关键技术,时间同步技术不仅需要提高时间同步精度来实现系统运行的可靠性,还需要减少时间同步开销,延长网络寿命,实现系统运行的可持续性。
因为在无线传感网中,各节点相互独立并且以无线的方式进行通信,各节点都采用各自的本地时钟模块进行计时,而这种计时模块功能主要是由晶体振荡器提供的,晶振频率的误差及初始计时时刻的不同会导致节点时钟时间和本地时钟无法同步,这就会造成传感网应用无法正常运行,也会大大降低其他的服务质量。
2. 设计原则[30]
在过去的几十年里,对有线网络时间同步协议的研究已非常成熟,目前广泛用于时间同步的协议有NTP和GPS,但由于无线传感网本身的特性,这些协议不适用于无线传感环境中,无线传感网时间同步协议的设计主要考虑以下几个方面:
1)可扩展性
由于传感器的廉价和微型化,使无线传感网通常包含数千个传感器节点,并且能够被广泛地部署在检测区域内,因此要求协议在大规模网络中不仅能正常工作,而且能保持较好的性能。
2)鲁棒性
无线传感网通常部署在人们无法接近、危险的环境中,外部环境的变化和传感器故障都会导致网络的高度动态性,这就要求协议能够对这些情况进行处理,保证系统的鲁棒性。
3)节点能量有限
因为传感器是由电池供电的,能量非常有限,所以时间同步协议的设计要充分考虑节点能量的消耗。
4)传输延迟
无线传感网传输延迟的不确定性严重影响了时间同步的精度,因此时间同步协议的设计要考虑传输延迟所带来的问题。
3. 技术难点
节点间时钟差异主要来源于节点晶振的差异。节点的上电时间不同带来节点不同的时间相位偏移,晶振因制作工艺和环境的影响会产生频率偏差和频率漂移,并进一步导致节点时钟的输出时间产生偏差和漂移。无论是估计同一时刻不同节点的时间差值,还是通过对节点的晶振建立时间模型来实现时间同步,在节点进行报文交互的过程中都必然面临报文时延的不精确性。
1)发送时间(Send Time)
即发送端用于消息组装和向MAC层发出发送请求的时间,该时间取决于系统开销和当前处理器的负载。发送时间是不确定的,有时可以高达几百毫秒。
2)介质访问时间(Access Time)
即在信息传输开始前,等待访问传输信道的时间。介质访问时间是无线传感网消息传输延迟中最不确定的一部分,根据当前信道空闲度和网络负载状况,从几毫秒到几秒不等。
3)传输时间(Transmission Time)
即发送端发送信息所需的时间,该时间取决于信息的长度和发送端的发送速度,一般在几十毫秒左右。
4)传播时间(Propagation Time)
即从消息离开发送方开始,传播到接收方所需要的时间。传播时间在无线传感网消息传输延迟中最具确定性,仅仅取决于发送端和接收端的距离,该时间一般少于1μm(300m范围内)。
5)接收时间(Reception Time)
接收端接收消息的时间与发送端的传输时间是一样的。
6)接收处理时间(Receive Time)
即接收端处理接收到的消息并通知接收方应用层的时间,该时间的特点与发送时间相似。
除上述随机性较大的发送时间、介质访问时间、接收处理时间外,传输过程中存在的噪声经常会在同步报文的时延中引入部分符合高斯或指数分布的小时延。
4. 经典时间同步协议
根据节点同步过程中同步报文的传输方向和交互方式的差异,经典时间同步协议可以归纳为三类:基于接收—接收的同步机制、基于发送—接收的双向同步机制和基于发送—接收的单向同步机制。
1)基于接收—接收的同步机制
在基于接收—接收的同步机制中,由参考节点向其广播范围内的节点广播不携带任何时间信息的参考同步报文。收到参考同步报文的一个节点会向另一个节点发送接收到该参考同步报文的本地时间。此时另一个节点可以根据收到的接收时间和自身记录的接收时间得到参考同步报文到达不同节点的时间差值,即两个节点的时间差值。
接收—接收模式下的同步协议以同一参考同步报文到达不同节点应当在同一个时刻为出发点,通过节点间交换接收时间得到节点间的时间差值,通过补偿该时间差值来实现节点间的时间同步。
基于接收—接收的同步机制的代表时间同步协议为RBS(Reference Broadcast Synchronisation)。该机制下的同步协议虽然能够实现较高的同步精度,但是需要大量的参考同步报文和节点间交互报文,同步开销较大。尤其是在多跳网络中,所需的报文数量和同步计算的复杂度均将成倍增加。另外,节点间报文交互是接收—接收的同步机制下实现网络时间同步的前提条件,所以基于接收—接收的同步机制不适用于跳数较多和节点分布较为稀疏的网络环境。
2)基于发送—接收的双向同步机制
在基于发送—接收的双向同步机制中,待同步节点向基准节点发送同步请求报文,基准节点收到请求报文之后,向待同步节点发送包含自身当前时间的同步应答报文。待同步节点收到此应答报文之后通过自身的本地时间估算出节点间的时间偏差和传输时延,并据此校准自己的时钟。
双向同步机制在较短时间间隔内,认为节点间的时间偏差不变且报文传输时延一致,通过两次同步报文交互获得节点间的时间信息。基于发送—接收的双向同步机制的时间同步协议主要包括TPSN(Time-sync Protocol for Sensor Networks)和TS/MS(Tiny Time Synchronisation Protocol /Mini Time Synchronisation Protocol)。
采用双向同步机制的TPSN具有较高的同步可靠性,同步性能也比较好。但是因为没有考虑节点的时钟模型和晶振存在的频率偏移,在利用TPSN协议同步之后,节点仍会产生新的时间偏差,因此TPSN必须较为频繁地进行同步操作。TS/MS同步协议在TPSN的基础上采用线性节点时钟模型,通过对少量的时间点进行拟合处理便可得到节点的时间偏差和时钟漂移。TS/MS时间同步协议采用较少的时间点得到比TPSN更高的同步精度,属于轻量级时间同步算法,适用于能量受限制的无线传感网。
基于发送—接收的双向同步机制的时间同步协议在具有较高同步可靠性的同时产生相对较大的同步开销。另外,双向同步协议对网络拓扑的扩展的兼容性较差,无法适用于动态拓扑网络。
3)基于发送—接收的单向同步机制
在基于发送—接收的单向同步机制的时间同步协议中,主要由基准节点向网络中单向广播包含报文发送时间的同步报文。子节点接收到同步报文之后,根据估计报文时延和记录本地报文的接收时间,对自身时间进行同步调整。
基于发送—接收的单向同步机制的时间同步方法主要包括DMTS(Delay Measurement Time Synchronisation)、FTSP(Flooding Time Synchronisation Protocol)等方法。DMTS同步方法通过估计同步报文的传输时延,将同步报文中携带的发送时间与同步报文传输时延之和作为子节点的全局时间,对子节点进行时间同步。FTSP忽略同步报文的传输时延,认为待同步节点接收同步报文和基准节点发送报文为同一时刻,即节点记录的接收时间和准节点的发送时间为两节点间的偏差。通过对时间点进行拟合,利用线性时钟模型得到待同步节点于基准节点的时钟偏移和相位偏移。
基于发送—接收的同步机制采用单向信息交互,同步精度较高,能适应网络拓扑动态变化。和双向同步机制相比,它能够有效地减少网络中的同步开销,减小网络能耗。但由于基于发送—接收的单向同步机制采用泛洪广播机制,当网络规模较大时,产生的同步报文偏多。另外,FTSP协议中节点的多径效应使节点的同步精度不能得到保证。
总的来说,经典的时间同步协议主要通过得到节点间的时间差异,更新待同步节点的时钟来实现节点间的时间同步。在以上三种同步机制中,基于发送—接收的双向同步机制和基于发送—接收的单向同步机制均没有考虑同步报文的传输时延;基于接收—接收的同步机制以接收节点间的时间对比为基础,无须考虑参考报文传输时的发送时延、信道访问时延和传播时延,时间同步精度不受发送方影响。基于发送—接收的双向同步机制因为采用双向报文传输,所以更适用于对可靠性要求较高的应用。基于发送—接收的同步机制采用时钟模型,利用得到的时钟参数对节点的时钟偏移进行修正补偿,同步精度较高;和双向同步机制相比,单向的同步方式更适用于动态变化的网络拓扑结构。
5. 新型时间同步协议
经典的时间同步协议主要解决节点间的时间同步精度问题。新型时间同步协议在进一步提高精度的同时着手降低网络中的同步能耗,并研究应用于特定环境下的时间同步协议。
1)基于物理脉冲耦合的同步协议
经典的时间同步协议无法完全消除传输过程中时延对同步精度的影响,所以难以做到对节点间同步精度的进一步提升。在基于物理脉冲耦合的同步协议中,传感器节点被看作完全相同的耦合振荡器,通过物理方式来消除报文传输过程中的时延,实现节点间的高精度同步。
基于物理脉冲耦合的同步机制以萤火虫同步算法为主。1988年,Buck对萤火虫同步闪烁的现象进行了总结,并对此现象进行了基于phase-advance和phase-delay两种模式下的时间同步建模。1990年,Mirollo和Strogatz提出M&S脉冲耦合振荡模型,在假定脉冲时延为零的情况下,耦合振荡系统可以达到同步。1998年,Ernst在前人的基础上对脉冲时延情况下的耦合振荡系统的同步状况进行了研究。当一个振荡器状态激发时,会和临近的振荡器产生电耦合,使临近的振荡器产生一个耦合强度的状态增量。Ernst通过理论证明,在脉冲时延不为零的情况下,正的耦合强度无法使振荡器之间产生同步现象,只有在负的耦合强度情况下,振荡器之间才能取得同步。
2)基于调度的时间同步协议
基于调度的时间同步协议有TSMP(Time Synchronised Mesh Protocol)、TSCH(Time Synchronised Channel Hopping)。基于调度的同步机制是在网络初期将所有节点间的工作时隙、工作信道、网络结构均进行分配,并通过广播报文的形式告知网络中所有节点,节点在各自分配的时隙和分配好的邻居节点之间进行报文交互。父节点在固定的同步周期向网络广播时间同步报文,子节点在安全时间内接收到同步报文,然后根据发送时间和接收时间调整自身的时钟。如果安全时间内没有收到时间同步报文,则认为子节点与网络失去同步。
基于调度的同步机制能够达到较高的时间同步精度,但是该机制需要网络层、MAC层及物理层进行整体协作,不再是单纯的时间同步机制。而且一般需要多信道甚至多频段的复用,整体上较为复杂。
3)分布式同步协议
经典的同步协议中,基于发送—接收的双向同步算法无法解决无线传感网中节点加入、失效和移动引起的网络拓扑动态变化问题,也无法较好地减小网络中的累积同步误差。为了解决这个问题,分布式同步协议应运而生。
分布式同步协议主要通过节点周期性地广播本地时间来实现网络内节点的时间同步。分布式同步协议主要包括:实现邻居节点高精度同步的梯度时间同步协议GTSP(Gradient Time Synchronization Protocol)、分开校正频偏和相偏以实现更可靠时间同步的平均时间同步协议ATS(Average Time Synch)、节点广播时间到网络虚拟时钟的分布时间同步协议等。
分布式同步协议不要求网络拓扑为层次拓扑,这使分布式同步协议的鲁棒性较强,能更好地适应拓扑动态变化的无线传感网。由于分布式同步协议主要基于全局节点进行时间扩散和不停地同步迭代,分布式同步协议的收敛速度相对于经典的同步协议来说比较慢;并且分布式同步协议中需要的同步报文数量较多,网络开销较大,不利于减小网络同步能耗。
4)混合时间同步协议
除提高时间同步精度,延长同步周期进而减少网络同步能耗之外,部分时间同步协议采用主动同步和被动同步相结合的混合时间同步机制。
混合时间同步机制中,代表节点之间采用双向的时间同步机制。在同步报文交互过程中,代表节点广播半径中的邻居节点能够监听到双向同步报文,得到同步报文中的时间信息。通过分析报文中包含的两个节点的时间信息,监听节点实现被动的时间同步。混合时间同步机制只需要代表节点之间进行报文交互,多数节点只需要对周围环境中的报文进行监听,无须发送报文,较大程度地减少了网络中的时间同步报文数量。混合时间同步机制通过主动时间同步来保证网络同步精度,通过被动时间同步来节省网络同步开销,从而实现了保证同步精度和节约能耗的双重目标。但是由于被动时间同步主要通过节点监听周围环境中的报文来实现自身的时间同步,所以混合时间同步协议中节点的分布密度不能过小,适用的网络规模不宜过大。
5)特殊用途时间同步协议
传统的时间同步协议无法适用于报文时延较长、节点移动较为频繁的水下应用,近年来针对水下传感网的特殊用途的无线同步协议逐渐发展起来。水下应用的时间同步协议主要从估计报文时延方面来实现节点同步。例如,利用邻居节点间的相对速度和多普勒频移来计算节点的真实移动速度,得到精确的报文时延,并进一步通过双向时间同步机制和基于权重的最小二乘法来求得节点相对于参考节点的相对时钟参数。
除了上述同步协议,新型的时间同步协议还包括利用外部时间源的外部梯度时间同步协议、针对移动网络拓扑的时间同步协议、利用卡尔曼滤波实现高精度时间同步的卡尔曼一致滤波时间同步协议和基于最大似然估计的时间同步协议等。
总的来说,新型时间同步协议主要基于非层次网络结构,更少地受到网络中心节点的制约,能够更好地适用于网络拓扑结构动态变化的无线传感网。无论是通过物理方式还是主动、被动同步方式结合,新型时间同步协议和经典时间同步协议相比,能够较大地减少网络同步能耗。另外,新型时间同步协议在提高同步精度和降低网络开销的同时,开始对特殊应用条件下的时间同步进行探索。虽然新型时间同步协议和经典时间同步协议相比有较多的优点,但是新型时间同步协议的复杂程度一般较高,对节点有较高的性能要求;而且新型时间同步协议大多数仍旧处于理论研究阶段,并没有在实际环境中大量应用。