基于NTP协议的网络时间同步系统的设计与实现胥婕 徐亮 董莲 胡立志 马志超 / 上海市计量测试技术研究院
摘 要 介绍了NTP(Network Time Protocol)网络时间协议工作原理,基于网络时间同步服务器
构建网络时间同步系统,通过对网络环境下影响同步精度的因素进行深入分析,设计了网络时间同
步应用软件,并开展重复性实验,对网络时延和时刻偏差作了详细分析。
关键词 NTP;网络时间同步;网络时延;时刻偏差
0 引言
随着电子信息技术和互联网的迅猛发展,计算机对信息的处理和传送起着至关重要的作用。计算机的时钟精度很低,一天内就有几秒钟甚至几分钟的时间漂移,已经无法满足高准确度时间约束业务的要求,因此,如何在网络系统中实现高准确度时间同步是一个相当重要的问题。
网络时间同步技术在不断地推陈出新。早期的时间同步技术需要组建专用网络为各系统提供服务,成本较高。为了能够在应用网络中实现时间同步,美国德拉瓦大学的ls教授于1985年提出NTP(Network Time Protocol)[1]协议。该协议除了可以将网络中各设备的时间统一到一个时间上,这个时间可以是绝对时间(比如世界协调时) 或者相对时间(网络中某台主机的时间),还可以估算封包在网络上的往返延迟,并独立地估算计算机时钟偏差,从而实现在网络上的高准确度计算机校时。网络时间协议是设计用来在互联网上使不同的机器能维持相同时间的一种通信协定[2],主要应用于互联网中计算机时钟的同步,可提供广泛的、接近于国家时间频率的服务、组织时间子网的时间同步和调整子网中的地方性时钟[3]。时间服务器是遵从网络时间协议(如NTP)的一种设备,通过它可以使连接于网络中的相关设备维持时间同步。
为了研究网络时间同步系统,本文基于NTP协议,利用网络时间服务器构建网络时间同步系统,通过对NTP工作原理的理解以及对网络环境下影响同步精度的因素进行深入分析,根据NTP协议所规定的算法来估算网络中的传输延迟,进行补偿处理,并实时监测需校时计算机的时刻偏差,从而达到精准授时的目的。
1 NTP工作原理
网络中的设备节点通过发送和接收带有时间戳的数据包,使自己的时钟与标准时钟同步[4]。
NTP协议的时间同步过程分为偏移测量阶段和延迟测量阶段。NTP协议基于UDP,定义了四种时钟报文:同步报文Sync、延迟请求报文Delay_Req、跟随报文Follow_Up和延迟请求响应报文Delay_Resp。
网络延迟与时刻偏差计算的基本原理如图1
所示。
图1 NTP工作原理
1)偏移测量阶段
偏移测量阶段用来修正主、从时钟的时间差。
(1)主时钟向从时钟发送同步报文Sync,报文
10国内统一刊号CN31-1424/TB2017/4 总第260期
中包含一个时间戳,表示报文被发出的预计时间;
(2)主时钟在同步报文Sync发送完毕后,再向从时钟发送一个跟随报文Follow_Up,报文中包含一个时间戳,表示同步报文的真实发出时间T1;
(3)从时钟收到同步报文Sync后,记录接收时间T2;
偏移测量阶段分离了报文传输和时间测量,相互之间没有影响。
将主从时钟的网络延迟记为Delay1,主从时钟的时刻偏差记为Offset(从时钟减主时钟),则从时钟根据跟随报文Follow_Up中的T1和接收时间T2,可以得出:
T
2
- T1 = Offset + Delay1 (1)2)延迟测量阶段
延迟测量阶段用来测量网络传输造成的时间延迟。
(1)从时钟收到同步报文Sync后,在T3时刻向主时钟发送延迟请求报文Delay_Req;
(2)主时钟收到延迟请求报文Delay_Req后,向从时钟发送延迟请求响应报文Delay_Resp,报文记录了主时钟的接收时间T4;
将主从时钟的网络延迟记为Delay2,主从时钟的时刻偏差记为Offset(从时钟减主时钟),则从时钟根据延迟请求报文Delay_Req的发送时间T3和延迟请求响应报文Delay_Resp中记录的时间T4,可以得出:
T
3
- Offset + Delay2 = T4 (2)也即:
T
4
- T3 = Delay2 - Offset (3)假设偏移测量阶段的网络延迟Delay1与延迟测量阶段的Delay2相等,即
Delay
1
= Delay2 = Delay (4)可以得出:
Delay = [ (T
2
- T1) + (T4 - T3)] / 2 (5)Offset = [ (T
2
- T1) - (T4 - T3)] / 2 (6)2 同步精度影响因素
网络延迟是影响NTP系统同步精度的重要因素,网络延迟包括物理链路上端到端的传输延迟和网络协议栈的处理延迟[5]。
物理链路上端到端的传输延迟,简称传输延迟,与具体的网络状况有关,受网络负载和网络中间设备的影响。网络负载低时,数据传输比较顺畅,经过的网络路由也较近,从而传输延迟较低;反之,网络负载高时,数据包传输延迟较大。
由于网络的异构性,网络中间设备不同,不同的数据转发能力对传输延迟也有一定的影响。传输延迟发生在物理传输链路上,由于时间同步是为其他应用系统服务的,它不能控制网络负载和网络中间设备,所以很难在物理链路层解决。传输延迟的问题可以在应用层通过对数据的过滤和处理解决。根据延迟情况使用数据处理算法过滤延迟过大的数据包,并对数据包的延迟和偏差进行拟合,选择网络延迟较低的偏差数据进行时间同步[6]。
网络协议栈的处理延迟,简称协议栈延迟,是指数据包从物理层到应用层、从应用层到物理层的处理延迟。从网络协议上看,协议栈延迟又分为两部分:MAC 层到应用层之间的处理延迟、物理层到 MAC 层之间的处理延迟。由于 NTP协议在 MAC 层记录准确的时间戳信息并将其填充到数据包中,也就是说,NTP数据包中的时间戳信息没有包含 MAC 到应用层之间的延迟,因此,NTP协议标准本身就解决了 MAC 层到应用层之间的处理延迟问题。
3 时间同步系统的设计与实现
3.1 硬件设计
本文构建的时间同步系统由外部时间源、网络时间服务器、网络交换机、授时准确度监测系统以及用户设备组成,如图2所示。外部时间源是产生作为网络时间服务器参考时间信号的时间源,通常可以是原子钟或卫星授时信号等。本文以本单位守时实验室氢钟输出的一路光纤IRIG-B信号作为参考时间信号,网络时间服务器采用的是上海远景数字信息技术有限公司研制的PTS-10型时间服务器。该时间服务器含GPS/北斗双模通道,支持双通道IRIG-B源,支持2路NTP授时输出,支持FO组合板(2个IRIG-B-AC,2个TTL可编程,1个光输出),可以通过前面板、Telnet登录以及串口通信修改其内部设置。授时准确度监测系统实时计算需校时用户设备的时刻偏差。
3.2 软件设计
时间同步系统的软件主要包括客户方软件和服务器软件。这两部分是独立处理的,互不影响,分别实现本地计算机作为客户方和服务器方的功能。
服务器的主要作用就是从守时系统读取标准时间脉冲,并向客户端提供精准时间服务。为了保证
11
国内统一刊号CN31-1424/TB
2017/4 总第260期