胥婕 徐亮 董莲 胡立志 马志超 / 上海市计量测试技术研究院
基于NTP协议的网络时间同步系统的设计与实现
胥婕 徐亮 董莲 胡立志 马志超 / 上海市计量测试技术研究院
介绍了NTP(Network Time Protocol)网络时间协议工作原理,基于网络时间同步服务器构建网络时间同步系统,通过对网络环境下影响同步精度的因素进行深入分析,设计了网络时间同步应用软件,并开展重复性实验,对网络时延和时刻偏差作了详细分析。
NTP;网络时间同步;网络时延;时刻偏差
随着电子信息技术和互联网的迅猛发展,计算机对信息的处理和传送起着至关重要的作用。计算机的时钟精度很低,一天内就有几秒钟甚至几分钟的时间漂移,已经无法满足高准确度时间约束业务的要求,因此,如何在网络系统中实现高准确度时间同步是一个相当重要的问题。
网络时间同步技术在不断地推陈出新。早期的时间同步技术需要组建专用网络为各系统提供服务,成本较高。为了能够在应用网络中实现时间同步,美国德拉瓦大学的D.L.Mills教授于1985年提出NTP(Network Time Protocol)[1]协议。该协议除了可以将网络中各设备的时间统一到一个时间上,这个时间可以是绝对时间(比如世界协调时) 或者相对时间(网络中某台主机的时间),还可以估算封包在网络上的往返延迟,并独立地估算计算机时钟偏差,从而实现在网络上的高准确度计算机校时。网络时间协议是设计用来在互联网上使不同的机器能维持相同时间的一种通信协定[2],主要应用于互联网中计算机时钟的同步,可提供广泛的、接近于国家时间频率的服务、组织时间子网的时间同步和调整子网中的地方性时钟[3]。时间服务器是遵从网络时间协议(如NTP)的一种设备,通过它可以使连接于网络中的相关设备维持时间同步。
为了研究网络时间同步系统,本文基于NTP协议,利用网络时间服务器构建网络时间同步系统,通过对NTP工作原理的理解以及对网络环境下影响同步精度的因素进行深入分析,根据NTP协议所规定的算法来估算网络中的传输延迟,进行补偿处理,并实时监测需校时计算机的时刻偏差,从而达到精准授时的目的。
网络中的设备节点通过发送和接收带有时间戳的数据包,使自己的时钟与标准时钟同步[4]。
NTP协议的时间同步过程分为偏移测量阶段和延迟测量阶段。NTP协议基于UDP,定义了四种时钟报文:同步报文Sync、延迟请求报文Delay_Req、跟随报文Follow_Up和延迟请求响应报文Delay_Resp。
网络延迟与时刻偏差计算的基本原理如图1所示。
1)偏移测量阶段
偏移测量阶段用来修正主、从时钟的时间差。
(1)主时钟向从时钟发送同步报文Sync,报文中包含一个时间戳,表示报文被发出的预计时间;
(2)主时钟在同步报文Sync发送完毕后,再向从时钟发送一个跟随报文Follow_Up,报文中包含一个时间戳,表示同步报文的真实发出时间T1;
(3)从时钟收到同步报文Sync后,记录接收时间T2;
偏移测量阶段分离了报文传输和时间测量,相互之间没有影响。
将主从时钟的网络延迟记为Delay1,主从时钟的时刻偏差记为Offset(从时钟减主时钟),则从时钟根据跟随报文Follow_Up中的T1和接收时间T2,可以得出:
2)延迟测量阶段
延迟测量阶段用来测量网络传输造成的时间延迟。
(1)从时钟收到同步报文Sync后,在T3时刻向主时钟发送延迟请求报文Delay_Req;
(2)主时钟收到延迟请求报文Delay_Req后,向从时钟发送延迟请求响应报文Delay_Resp,报文记录了主时钟的接收时间T4;
将主从时钟的网络延迟记为Delay2,主从时钟的时刻偏差记为Offset(从时钟减主时钟),则从时钟根据延迟请求报文Delay_Req的发送时间T3和延迟请求响应报文Delay_Resp中记录的时间T4,可以得出:
也即:
假设偏移测量阶段的网络延迟Delay1与延迟测量阶段的Delay2相等,即
可以得出:
网络延迟是影响NTP系统同步精度的重要因素,网络延迟包括物理链路上端到端的传输延迟和网络协议栈的处理延迟[5]。
物理链路上端到端的传输延迟,简称传输延迟,与具体的网络状况有关,受网络负载和网络中间设备的影响。网络负载低时,数据传输比较顺畅,经过的网络路由也较近,从而传输延迟较低;反之,网络负载高时,数据包传输延迟较大。
由于网络的异构性,网络中间设备不同,不同的数据转发能力对传输延迟也有一定的影响。传输延迟发生在物理传输链路上,由于时间同步是为其他应用系统服务的,它不能控制网络负载和网络中间设备,所以很难在物理链路层解决。传输延迟的问题可以在应用层通过对数据的过滤和处理解决。根据延迟情况使用数据处理算法过滤延迟过大的数据包,并对数据包的延迟和偏差进行拟合,选择网络延迟较低的偏差数据进行时间同步[6]。
网络协议栈的处理延迟,简称协议栈延迟,是指数据包从物理层到应用层、从应用层到物理层的处理延迟。从网络协议上看,协议栈延迟又分为两部分:MAC 层到应用层之间的处理延迟、物理层到MAC 层之间的处理延迟。由于 NTP协议在 MAC 层记录准确的时间戳信息并将其填充到数据包中,也就是说,NTP数据包中的时间戳信息没有包含 MAC到应用层之间的延迟,因此,NTP协议标准本身就解决了 MAC 层到应用层之间的处理延迟问题。
本文构建的时间同步系统由外部时间源、网络时间服务器、网络交换机、授时准确度监测系统以及用户设备组成,如图2所示。外部时间源是产生作为网络时间服务器参考时间信号的时间源,通常可以是原子钟或卫星授时信号等。本文以本单位守时实验室氢钟输出的一路光纤IRIG-B信号作为参考时间信号,网络时间服务器采用的是上海远景数字信息技术有限公司研制的PTS-10型时间服务器。该时间服务器含GPS/北斗双模通道,支持双通道IRIG-B源,支持2路NTP授时输出,支持FO组合板(2个IRIG-B-AC,2个TTL可编程,1个光输出),可以通过前面板、Telnet登录以及串口通信修改其内部设置。授时准确度监测系统实时计算需校时用户设备的时刻偏差。
时间同步系统的软件主要包括客户方软件和服务器软件。这两部分是独立处理的,互不影响,分别实现本地计算机作为客户方和服务器方的功能。
服务器的主要作用就是从守时系统读取标准时间脉冲,并向客户端提供精准时间服务。为了保证时间的准确性,服务器需要在收到报文和发送报文的同时,立刻把本地时间写入报文。图3为服务器端程序流程图。
图2 时间同步系统框架图
图3 服务器端程序流程图
与服务器端相比,客户端的软件设计比较复杂,客户端的主要作用是向服务器端发送 NTP 报文,请求授时,并对返回的 NTP 报文进行计算,得出本地时钟偏差和网络时延,调整本地时钟。在返回的每一个报文中都含有四个时间戳,根据四个时间戳计算出时刻偏差和网络时延。这一部分的设计对于提高时间同步的准确度至关重要,因此在软件设计前需要对网络状态和时延数据进行大量的统计分析,对超出设定值的实测网络延迟数据进行剔除处理,并采用数据拟合的方式计算时钟偏差,以确定出较好的时延补偿方法。图4为客户端程序流程图。
为了测试网络授时系统的同步性能和偏差情况,在本单位利用局域网进行网络授时系统运行实验。在局域网内,网络授时系统对一台客户端PC1进行授时服务,同域内设置一台电脑作为测试终端,用来计算客户端的网络延迟和时刻偏差,以此测试搭建的网络授时系统的同步性能,测试网络如图5所示。
图4 客户端程序流程图
图5 测试网络图
在整个网络处于正常运行状态下,同步成功后客户端和服务器同时向测试电脑发送时间数据,测试电脑同时记录客户端和服务器的时间数据,计算出两者的差值,从而验证网络授时系统服务器和客户端时间同步的效果,测试时间是每10 min测试一次,测试24 h,测试数据如表1所示。
依据测试数据,计算得到客户端PC1的平均网络延迟为-0.5 ms,最大时刻偏差为1.1 ms,平均时刻偏差为0.4 ms,时刻偏差的标准方差为0.4 ms。实验数据表明,时刻偏差未出现较大的抖动,网络授时系统具有良好的准确度和稳定性,符合设计要求。
由于测试是在网络流量较小的局域网中进行的,网络拥塞现象较少、丢包率不高,网络延迟较小,所以,时刻偏差量相对非常稳定,如果在网络拥塞现象频繁、丢包率高的网络中使用,可以考虑在网络交换机中为时间同步程序设置较高的优先级,以便保证较高的时间同步精度。
通过对网络授时技术进行研究,本项目搭建的网络授时系统可以为电子停车计时计费系统、大型购物商场交易数据库、交通运输调度中心等需要高准确度时间标准的公共服务系统提供授时服务,为形成良性的产业发展环境提供技术支撑和保障。
表1 网络延迟和时刻偏差测试数据
[1] MILLS D L. Internet time synchronization:the network time.protocol[J].IEEE Trans Communications,1991,39(10):1482-1492.
[2] 王圣东,方建勇,刘新友.基于NTP 协议的一种校时实现及相关算法[J].指挥控制与仿真,2011,33(1):101-107.
[3] IEEE Std 1588 -2008: “IEEE Standard for a precision Clock Synch ronizationProtocolfor Networked Measurement and Control Systems”[S].IEEE1588-2008standard,2008.
[4] 李晓珍.基于 IEEE1588 的网络时间同步系统研究[D].西安:中国科学院国家授时中心,2011.
[5] 张贺,张林,郑滟磊,等.NTP报文格式及应用[J].邮电设计技术,2011(8):29-33.
[6] 乌伟.LXI 总线系统精密时钟同步技术的实现方法[D].天津:天津大学,2011.
Design and implementation of network time synchronization system based on NTP
Xü Jie,Xü Liang,Dong Lian,Hu Lizhi,Ma Zhichao
(Shanghai Institute of Measurement and Testing Technology)
The basic working principle of network time protocol is introduced. Network time synchronization system is constructed based on network time synchronization server, and the network time synchronization application software is designed through analyzing the factors that affect the accuracy of synchronization in the network environment. The network time delay and time difference are analyzed in detail based on repeated experiments.
NTP; network time synchronization; network time delay; time difference