按照NTP时间同步网络结构来组织和提供校时服务:中心NTP网络时间服务器作为授时服务的中央节点为整个系统提供时间同步源;第三级设备作为校时客户端向第二级设备发送NTP包请求校时,获得基准时钟后校正本地计算机系统,使用的是SNTP的客户机/服务器工作模式;第二级设备扮演两种角色,一方面作为校时客户端向中心服务器和同级的其它计算机请求并校正时间,一方面作为服务器向第三级或同级的其它计算机提供校时服务,使用的也是SNTP的客户机/服务器工作模式。
整个时间同步网络内的设备在某一时刻都只可能是校时的客户机或服务器之一,达到了统一处理的目的。
为了使中心NTP网络时间服务器能够提供准确时间,要为其配有准确的时钟来源,这一时间应该是国际标准时间(UTC)。
授时服务器获得UTC的时间来源可以是原子钟、天文台或者GPS卫星。GPS除了可以获取精准的导航定位信息,还可以获取时间偏差小于30ms的实时时钟信息,且接收机成本较低,在此采用GPS卫星作为标准的时钟源。GPS的校时可以使用脉冲中断和串行通信接口两种方式,脉冲方式精度高,但需要计算机加装脉冲接收装置,而串口通信方式可以直接获取绝对时间值,且普通计算机均配有串行接口,其精度达到毫秒级,因此使用这种方式获取GPS时间。
中心NTP网络时间服务器通过RS232串口与GPS接收机相连,每隔10min接收一次GPS卫星的准确时钟,将自身的时钟设置为与GPS时钟一致。
二级设备每隔10min向中心服务器和同级的其它计算机发送NTP包请求校时,采用加权平均的办法计算出当前的时钟偏差量。如中心服务器的权重为0.6,其它计算机的权重为0.4,依据实际到中心服务器或其它计算机的距离或网络延迟可以将权重设置为不同的值。时钟偏差量=与中心服务器的时钟偏差量×中心服务器的权重+与其它计算机的时钟偏差量×其它计算机的权重,按计算出的时钟偏差量进行时间校准。
三级设备向二级设备请求校时时,可以直接根据各二级设备返回的时钟偏差量的均值来校准当前时间。三级设备在启动运行后,每隔30min请求进行时间校准,并在该时间间隔内随机在0~30min之间再次进行时间校准,全部校时过程都自动完成。这样既可以保证时间同步的精确性,又可以减少人为手工校时带来的干扰。