利用CPU时间戳实现局域网时间同步的新机制

2022-04-05 08:24:35 | 浏览次数:

摘要:当前在网络应用中,经常需要多台计算机协同工作,因而要有一个统一时钟。提出一种利用CPU内部高精度时间戳实现局域网时钟同步的新机制,并用VC++语言编写了服务端与客户端软件,且在WindowsXP和Windows2000环境的小型局域网进行测试。结果表明,该算法同步精度较高,且系统运行稳定。

关键词:内部时间戳;局域网;相对同步;精确延时;服务器

中图分类号:TP393.07

文献标志码:A

0引言

近年来,网络与计算机已经无处不在,但由于设计缺陷、温度变化、电磁干扰、负载等多种原因,多数计算机的时钟是不精确的,同时时间误差是累积的,随着时间的推移,误差逐渐增大。在一些对时间精度要求比较严格的领域(如金融结算业务、实时数据融合等),时间精度要求控制在毫秒级以内,实现一个精确的系统时间变得尤为重要。时钟同步实现有硬件和软件方法:硬件同步是通过各仿真节点都连入专用的时钟信号线来进行的,它精度高,但成本也高,操作复杂;软件同步是完全利用软件完成分布式系统中各时钟的同步。软件方式迫切需要一个能调整时间抖动率,建立一个即时缓和、调整时间变化,并以一群服务器提供准确、稳定时间的时间管理协议,这就是网络时间协议(NetworkTimeProtocol,NTP)[1-2]。

NTP除了可以估算封包在网络上的往返延迟外,还可独立地估算计算机时钟偏差,从而实现在网络上的高精准度计算机校时。NTP不仅校正现行时间,而且持续跟踪时间的变化,自动进行调节,即使网络发生故障,也能维持时间的稳定,并具有保证网络安全的应对措施,这些措施的采用使NTP成为互联网上公认的时间同步工具。NTP的详细内容可参考RFC1305[3]。它提供广泛的以接近国家时间和频率的服务,组织时间子网的时间同步和调整子网中的地方性时钟。RFC1305对NTP协议自动机在事件、状态、转变功能和行为方面给出了明确的说明。它以合适的算法增强时钟的准确性,并且减轻由于多个同步源而产生的差错,实现了准确性低于毫秒的时间服务,以满足目前因特网中路径量测的需要。

然而,在实际应用中,应用程序常常需要在一个可能与外界没有相连、相对封闭的中小型局域网中进行时钟同步。而且在这类应用程序中,并不需

要对局域网中的时钟进行精确的绝对时间同步,而只需要知道各个机器的相对时钟。为此,本文基于NTP及IEEE1588(简称为精密时间协议,PrecisionTimeProtocol,PTP)实现机制,提出并实现了一种适用于这种环境下的相对时钟同步协议,可有效解决这类特殊局域网内高负载情况下的时钟同步问题。该协议选定局域网中某台高性能计算机为服务器,其他客户机通过本协议模型与其同步即可,而且利用现代CPU内部高精度时间戳进行取时,可以达到非常高的时钟精度。在有外部时钟源提供标准时间信号(如:GPS接收机、北斗系列产品等授时设备)的前提下,服务器还可进行局域网内的绝对时间同步,这种情况下,服务器扮演着授时设备的客户端以及局域网内其他客户机的服务器端的双重角色。

推荐访问: 时间 局域网 新机制 同步 利用