网络时间同步系统的设计与实现

时间:2022-08-08 08:55:13

网络时间同步系统的设计与实现

Design and Implementation of Network Time Synchronization System

Li Ming

(Baoji University of Arts and Sciences,Baoji 721013,China)

摘要:互联网上进行时间同步具有重要的意义。本文首先介绍了NTP协议的原理,然后分析了提高授时精度的各种算法,最后设计并实现了网络时间同步系统。该系统的服务器部分是由ARM实现,客户端软件是通过socket编程实现。该系统中通过使用NTP算法和计算机内部高精度定时器,授时精度获得了进一步的提高。

Abstract: Internet time synchronization has vital significance. At first, this paper introduced the principle of the network time protocol (NTP); then analyzed various kinds of algorithm to improve the accuracy of GPS clock; finally, network time synchronization system was designed. In this system, the part of the server was realized by the ARM and the part of the client software was programmed through the socket. The precision of GPS clock timer won the further enhancement through the use of computers and internal NTP algorithm.

关键词:网络时间协议 时间同步 ARM

Key words: Network Time Protocol;time synchronization;ARM

中图分类号:TP39 文献标识码:A文章编号:1006-4311(2011)19-0150-02

0引言

网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议。NTP的用途是把计算机的时间同步到某些时间标准。目前采用的时间标准是世界协调时UTC(Universal Time Coordinated)。本文根据NTP协议设计实现了网络授时系统[1]。

1NTP协议

1.1 NTP基本原理NTP算法首先就要根据服务器和客户端的往返报文来确定两地时钟的差值和报文在网络中传输的延迟。这里先定义一下,客户端和时间服务器之间的时间偏差(offset)用希腊字母θ表示;对时过程中的网络路径延迟(delay)用希腊字母δ表示[2]。

图1中,T1和T4是客户端时钟记录的发送NTP报文和接收NTP报文的时间,T2和T3是服务器端时钟记录的接收和发送NTP报文的时间。1.2 NTP算法NTP涉及4个算法:时间滤波算法(Clock filter algorithm)、时间选择算法(Clock selection algorithm)、聚类算法(Clustering algorithm)和时钟调节算法(Clock discipline algorithm)。严格地说,这些算法并不是协议的固有部分,但是NTP的实现却有赖于这些算法[3]。NTP算法系统如图2所示。

1.3 NTP的工作模式NTP协议支持三种对时工作方式[3]:Server/Client mode(主从模式):用户向一个或几个服务器提出服务请求,根据所交换的信息,计算两地时间偏差和网络延迟,从中选择认为最准确的时间偏差,并调整本地的时钟。Multicast/Broadcast mode(广播模式):此种模式适用于高速的局域网中。局域网中一个或多个服务器以固定的时间周期向某个多播地址广播自己的时标,客户端不计算时间偏差和网络延迟,直接用接收到的时标修正自己的时钟,忽略各种误差。Symmetric mode(对称模式):两个以上的时间服务器互为主从,进行时间消息的通讯,相互校正对方的时间,以维持整个同步子网的时间一致性。

2NTP同步设计方案

本设计采用客户机/服务器方式进行授时,可以通过适当的算法确定时间误差,实现二者间的时间同步。NTP服务器由ARM7来实现。它由ARM7芯片、网络接口芯片及必要的电路构成。NTP服务器通过串口接收精确时间信息和1PPS信号,作为同步基准。ARM将得到的时间信息转化成NTP报文格式,通过网口向网络中的计算机进行授时服务。NTP客户端由运行于PC机上的客户端软件实现。

2.1 硬件设计本系统主要包括以下几部分:数据处理与控制部分、标准时间接收部分以及网络接口部分。具体设计时,数据处理与控制部分由ARM7微处理器完成,DC/DC转换器将外部5V电源,转换为系统各部分所必需的5V和3.3V电压;晶振电路为系统提供内部时钟信号;JTAG接口电路为系统提供调试接口;以太网接口用于NTP授时;RS232接口和系统连接,以获取标准时间和监控信号。NTP模块硬件结构框图如图3。

2.2 软件设计:NTP模块的软件分为服务器和客户端两个部分:

2.2.1 服务器端嵌入式授时软件:服务器端软件基于ARM7,采用Client/Server架构进行开发。软件通过RS232串口获取监控、配置和精确的时间信号。从中分离出精确时间信息后,根据NTP(RFC-1305)协议,实现对以太网口NTP协议包的接受和应答,从而完成NTP授时功能。

2.2.2 客户端时间同步软件采用VC++6.0下的Winsock网络编程接口编写客户端时间同步程序。客户端时间同步软件运行于windows环境下,通过图形用户界面与用户交互操作。用户可对服务器IP地址等有关参数进行设置。软件通过socket编程实现对以太网口NTP协议包的发送和接收,根据NTP协议解算出精确时间,对本地时间进行校正。NTP客户端界面如图4。

3影响时间精度的问题

3.1 计算机时间精度问题Windows系统中时间只是为日志服务的,系统根本就不重视时间的精度。在软件编写时,使用的API函数只能达到十几毫秒的精度,且调整过程抖动很大。这样本地时钟的软件调整方式就严重的限制时间同步精度。在本设计中我们利用Windows计算机系统内部的高精度性能定时器,采用系统时间和硬件计数器时间相结合的方法提高计算机时间精度:时间的秒部分采用系统时间,毫秒和微秒部分使用硬件计数器所得到的时间。

3.2 闰秒问题由于地球自转速率会有变化,历书时和原子时中的时刻并不严格同步。经过若干年后,历书时就很可能与原子时明显不一致,且这种差异会有长期累积的效应。为了解决上述矛盾,就出现了闰秒。闰秒会影响对时间总长度的计算,使计算结果产生1秒钟的误差。对此可以在客户端软件中定义一分钟的长度为59秒、60秒和61秒三种格式,通过接收到的报文中的闰秒信息来决定使用那一种格式。由于闰秒的出现是不规律的,我们必须从外部得到准确的闰秒信息填充在NTP报文中。

4结论

计算机网络时间同步系统是对传统时间传递方式的必要补充,随着计算机网络的发展,必将得到更加广泛的应用。本文通过对NTP协议的深入分析并结合具体项目要求,最终实现了NTP同步系统。在该系统中通过使用NTP各种算法,并通过使用计算机内部高精度定时器提高了授时精度。

参考文献:

[1]王若宇,谭华志,苏滢滢.基于NTP的网络时间同步抗毁性设计.舰船电子工程,2008.167:103-105.

[2]赵景斐.NTP在网络时间同步中的应用[J].测绘与空间地理信息,2008,31(5)178-190.

[3]柯熙政,和康元,袁海波.计算机网络时间传递和频率测量服务系统[J].宇航计测技术,1999,19(4):1-5.

上一篇:住房抵押贷款证券化风险研究 下一篇:射频通讯服务器的设计与实现