什么是网络时钟
网络时钟是一个逻辑时钟。它用于时间戳的赋值。它保证所产生的时间戳是唯一的,并且以单调递增的顺序赋值。时钟也可跳过若干中间时间戳,转到某一特定时间,但不能倒转。为了保证在全网范围内时间戳值是唯一的,在时间戳的低位端接上场所编号。
为了保证并发控制的有效运行,各场所的时钟应尽可能地同步。为此,系统维持一个实时时钟。各场所的实时时钟是同步的。
逻辑时钟总是超前实时时钟一定时间。其工作过程是这样的:实时时钟以一定的最小时间间隔离散地打点行进。当它每次打点到某一时刻时,逻辑时钟也跟着跳到该时刻。从实时时钟每次打点起,逻辑时钟以更小的时间增量给时间戳赋值。因此,每场所的逻辑时钟与实时时钟之差为上次实时时钟打点以后的时间戳个数。如果逻辑时钟的增量定的足够小,为实时时钟两次打点间隔的很小一部分,那么两种时钟可以非常接近。以下说到时钟都是指逻辑时钟。
各场所的逻辑时钟是这样协调的:当每一消息发送时它被本场所按当时逻辑时钟赋以一个时间戳。接收场所读到此时间戳时其本地逻辑时钟便至少跳到此相同的值。利用这一技术,可以保证;若一个消息在逻辑上取决于另一个消息,则前者时间戳将大于后者。
传统网络时钟同步算法
在传统网络中,已经提出了多种网络同步机制,C/S模式是主要的时钟同步模式。客户端产生时钟同步请求消息,服务器回应时钟同步应答消息,通过测试这两个消息的发送和接收时间来估计两者的时间偏差,获得相对较精确的时钟同步。采用上述思想的典型例子就是网络时间协议NTP,被因特网用作网络时钟同步协议,NTPv4精确度已达到毫秒级。实现方案是在网络上指定若干时钟源服务器,为用户提供授时服务,并且这些服务器之间能够相互比较校正,以提高准确度。
NTP协议采用层次型树型结构,整个体系结构中有多棵树,每棵树的父节点都是一级时间基准服务器。NTP协议要将时间信息从这些一级时间服务器传输到分布式系统的二级时间服务器成员和客户端,第三级时间服务器从第二级服务器获得时间信息,以此类推,服务器级数越小,越接近一级服务器,时间就越准确。由于NTP协议设计对象为因特网和计算机,设计重点为协议的可靠性和同步精度。该协议要求能够始终占用CPU资源,以便它可以执行连续的操作,使时钟一直保持同步,没有考虑能耗和计算能力问题,无法直接应用于无线传感器网络中。
在无线传感器网络应用中,节点对功耗有严格的要求,并且要求尽可能保持较小的外形尺寸和低廉的成本使其能够被大量部署,其部署环境经常是常人难以接近的恶劣环境,这使得部署后的维护通常是不可能的;显然将GPS和NTP用于无线传感器网络的时间同步是不可取的。分布式系统中对时间同步也有大量研究,但这些方法都没有考虑传感器网络的特点,需要较大的资源开销,所以不适合传感器网络的时间同步。鉴于时间同步在无线传感器网络应用中的基础性作用,必须研究适用于无线传感器网络的时间同步算法。