云解决方案提供商——云计算 云存储 云安全 虚拟化
BOWRY NETWORK  设为首页 | 加入收藏
解决方案
更多信息
您当前的位置:首页 >>  >> 解决方案 >> 

NTP和互联网时间同步

时间:2013-1-17 2:13:23  来源:未知  作者:未知  点击:1897次

1.引言

网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议。NTP的用途是把计算机的时间同步到某些时间标准。目前采用的时间标准是世界协调时UTC (Universal Time Coordinated)。NTP的主要开发者是美国特拉华大学的David L. Mills教授。

NTP的设计充分考虑了互联网上时间同步的复杂性。NTP提供的机制严格、实用、有效,适应于在各种规模、速度和连接通路情况的互联网环境下工作。 NTP以GPS时间代码传送的时间消息为参考标准,采用了Client/Server结构,具有相当高的灵活性,可以适应各种互联网环境。NTP不仅校正现行时间,而且持续跟踪时间的变化,能够自动进行调节,即使网络发生故障,也能维持时间的稳定。NTP产生的网络开销甚少,并具有保证网络安全的应对措施。这些措施的采用使NTP可以在互联网上获取可靠和精确的时间同步,并使NTP成为互联网上公认的时间同步工具。

目前,在通常的环境下,NTP提供的时间精确度在WAN上为数十毫秒,在LAN上则为亚毫秒级或者更高。在专用的时间服务器上,则精确度更高。
2.互联网环境中的时间同步要求

在互联网上,一般的计算机和互联设备在时间稳定度方面的设计上没有明确的指标要求。这些设备的时钟振荡器工作在不受校对的自由振荡的状况。由于温度变 化、电磁干扰、振荡器老化和生产调试等原因,时钟的振荡频率和标准频率之间存在一些误差。按误差的来源、现象和结果可以按固有的或者外来的、短期的或者长 期的、以及随机的或者固定的等进行分类。这些误差初看来似乎微不足道,而在长期积累后会产生相当大的影响。假设一台设备采用了精确度相当高的时钟,设其精 确度为0.001%,那么它在一秒中产生的偏差只是10微秒,一天产生的时间偏差接近1秒,而运行一年后则误差将大于5分钟。必须指出,一般互联网设备的 时钟精确度远低于这个指标。设备的时间校准往往取决于使用者的习惯,手段常为参照自选的标准进行手工设定。

在互联网上进行时间同步具有重要意义。互联网起源于军事用途明显的ARPA网。在军事应用领域,时间从来就是一个非常重要的考虑因素。对于互联网的时 间同步和NTP的研究,就是在美国国防部的资助下启动和进行的。随着互联网的发展和延伸到社会的各个方面,在其他的领域对时间同步也提出了多种要求,例如 各种实时的网上交易、制造过程控制、通信网络的时间配置、网络安全性设计、分布性的网络计算和处理、交通航班航路管理以及数据库文件管理和呼叫记录等多种涉及时间戳的应用,都需要精确、可靠和公认的时间。

在计算机网络的发展过程中产生了一些比较简单的与时间有关的应用和服务。它们通过时间标记的通信使网络设备的时间向统一的参考源看齐靠拢,在所覆盖的网络范围上得到一致同步,确保获得精确可靠的时间,这包括了TCP/IP中ICMP的时间标记、Digital公司的DTS服务等。这些应用为NTP提供了理论借鉴和应用经验。 3.NTP发展的追溯和现状

NTP的发展可以分为三个时期。

3.1.NTP v1之前的工作

时间协议的首次实现记载在Internet Engineering Note [IEN-173] 之中,其精确度为数百毫秒。稍后出现了首个时间协议的规范,即 [RFC 778] ,它被命名为DCNET互联网时间服务,而它提供这种服务还是借助于Internet Control Message Protocol (ICMP),即互联网控制消息协议中的时间戳和时间戳应答消息。   作为NTP名称的首次出现是在 [RFC 958]之中,该版本也被称为NTP V0。其开宗明义是为ARPA网提供时间同步。它已完全脱离ICMP,而作为独立的协议在完成更高要求的时间同步。它对于如本地时钟的误差估算和精密度等 基本运算、参考时钟的特性、网络上的分组数据包及其消息格式进行了描述。但是不对任何频率误差进行补偿,也没有规定滤波和同步的算法。

3.2.NTP v1到NTP v3

NTP v1出现于1988年6月, 在[RFC 1059]中 描述了首个完整的NTP的规范和相关算法。这个版本就已经采用了client/server模式以及对称操作。但是它不支持鉴权和NTP的控制消息。 1989年9月推出了取代[RFC 958]和[RFC 1059]的NTP v2 [RFC 1119] 。

几乎同时,DEC公司也推出了一个时间同步协议,数字时间同步服务,Digital Time Synchronization Service(DTSS)。

在1992年3月,NTPv3 [RFC 1305]问世,该版本总结和综合了NTP先前版本和DTSS,正式引入了校正原则,并改进了时钟选择和时钟滤波的算法,而且还引入了时间消息发送的广播模式。这个版本取代了NTP的先前版本。

3.3.NTP v3后的进展

NTP V3发布后,一直在不断地进行改进,这些版本标注为xntp3-y,这里x表示试验,y表示第几次修改。 NTP实现的一个重要功能是对计算机操作系统的 时钟调整。在NTP v3研究和推出的同时,有关在操作系统核心中改进时间保持功能的研究也在并行地进行。 1994年推出了[RFC 1589],名为 a kernel model for precision timekeeping,即精密时间保持的核心模式,这个实现可以把计算机操作系统的时间精确度保持在微秒数量级。几乎同时,又提出了NTP V4改进建议。对本地时钟调整算法,通信模式,新的时钟驱动器,适配规则等方面的改进描述了具体方向。

1999年在 [RFC 2783] 中,描述了每秒脉冲的操作系统用户应用接口(Pulse-per-second API for Unix-like operating system, version 1)。在该实现中,计算机操作系统的时钟可以用精密的外部时间参考源的秒脉冲来加以校准和稳定。

NTP v4的工作也在进行之中。它也将适用于IPV6; 它将改进时钟模型,在各种同步源和网络通路的情况下更精确地预测和调节频率和时间;提出相应的新算法将降低网络抖动和振荡器漂移的冲突,并且将加速启始时 的时间同步收敛速度;重新设计工作在锁频环、锁相环或者两者混合模式下的时钟校正算法;还将提供关于自动配置(例如,manycast mode)、可靠性、降低互联网话务量和加强网络安全性的鉴权(使用public-key密码)等方面的新特性。V4的正式版本还没有面世,但改进过程中 的许多方法已经加入xNTP3.y之中。

NTP发展的另一分支是SNTP-Simple Network Time Protocol ,即简单网络时间协议。 SNTP适用于时间精确度低于NTP的客户机,并强烈建议仅限于使用在时间同步网的终端位置。在1992年8月,[RFC 1361] 的SNTP问世,它的精确度为秒级。 [RFC 1361]的1995年3月,提出了[RFC 1769],它取代了[RFC 1361]其功能和被其取代的[RFC 1361] 相似,时间精确度为数百毫秒级。SNTP的最新规范是1996年的 [RFC 2030],并被冠以简单网络时间协议V4。SNTP的实现比较简单,特别对于Client侧的实现。一些商用的操作系统直接支持Client端的 SNTP协议。

4.时间同步子网络

互联网中运用NTP进行时间同步和分配所涉及的设备和通路的集合称为时间同步子网络。时间同步子网络以分层主从结构模式运行,其结构示意图见于图1。在这种结构中,少许几个高层设备可以为大量的低层设备提供同步信息。

NTP和互联网时间同步(图一)

图 1 时间同步网络结构图



时间同步网络理论上根据其精确度和重要性一般分为从0-15的共16个级别或更多级,实际上不会大于6级。级别编码越低,精确度和重要性越高。时间的 分配自级别编码小的层次向较大的层次进行,即由第0级向第15级分配渗透。第0级设备处于该子网络的特殊位置,是时间同步网络的基准时间参考源。它位于子 网络的顶端,目前普遍采用全球卫星定位系统,即由GPS播发的UTC时间代码,本身并不具有NTP。子网络中的设备可以扮演多重角色。例如一个第二层的设 备,对于第一层来说是客户机;对于第三层可能是服务器;对于同层的设备则可以是对等机。这里对等机的含义是相互用NTP进行同步的计算设备。

NTP工作在时间同步子网络1级以下的其他各级设备中。图1中,在第1级和第2级上用机盒图式表示的设备是网络时间服务器,或者称为NTP时间服务 器;用计算机主机和工作站图式表示的是一般互联网中的对应物,在时间同步子网络中它们均被视为时间服务器的时间客户机(下面简称服务器和客户机)。服务器 可以是专用设备,也可以是备有专用时钟电路的通用计算机。出于对精确度和可靠性的考虑,下层设备同时引用若干个上层设备作为参考源;而且也可以引用同层设 备作为参考源。NTP能够时间参考源中选择最好的几个时间源来推断现行时间。在同层设备配置为互为参考时,NTP会在两个对等机间进行自动选择,以精确度 高者作为两者共同的参考源,而绝非两者互相引用。

时间同步子网络和电信网络中的数字同步网一样,不允许出现时间环路。数字同步网中依据的是SSM信息;而NTP则利用协议的优势,自动识别高精确度的时钟源,确保时钟单方向地同步到高精确度的时钟,这样就绝对避免了时间环路的出现。

5.NTP的通信模式

NTP以客户机和服务器方式进行通信。每次通信共计两个包。客户机发送一个请求数据包,服务器接收后回送一个应答数据包。两个数据包都带有时间戳。NTP根据这两个数据包代的时间戳确定时间误差,并通过一系列算法来消除网络传输的不确定性的影响。

在数据包的传送方式上,有客户机和服务器一对一的点对点方式,还有多个客户机对一个服务器的广播/多播方式。两者工作方法基本相同。处于两种方式下的 客户机在初始时和服务器进行如同点对点的简短信息交换,据此对往返延时进行量化判断。此后广播/多播客户机只接收广播/多播消息的状态,并根据第一次信息 交换的判断值修正时间。不同之处在于时间服务器在广播方式下周期性地向广播地址发送时间刷新信号;而在多播方式下周期性地向多播地址发送时间刷新信号。在广播/多播方式下一个服务器可以为大量的客户机提供时间,但精度较低。

NTP要求的资源开销和通信带宽很小。NTP采用UDP协议,端口号设定为123。UDP占用很小的网络带宽,在众多客户机和少许服务器通信时有利于 避免拥塞。NTP数据包的净长度在V3下为64个字节,V4下为72个字节;在IP层分别为76和84个字节。如果通信方式是广播模式,服务器以固定的间 隔向客户机广播发送一个数据包;如果是服务器/客户机方式,则通信间隔将在指定的范围内变化(一般是64秒到1024秒),同步情况越好,间隔就越长。

6.NTP的基本结构

NTP V3和V4的结构基本相同,分别示于图6.a和图6.b。

NTP和互联网时间同步(图二)

图6.b NTP V4结构框图



参见图6.a和图6.b,NTP实际是一个反馈控制环路,在环路的工作简述如下:

当NTP获得时间同步信息后,时间滤波器从时间样本中选取最佳的样本,和本地时间进行比较。选择和聚类算法的功能是对往返延迟、离差和偏移等参数进行 分析,在有效参考源选取若干名列前茅者。合成算法对名列前茅者的信号进行综合,获取比任何单一信号更为优秀的时间参考。环路滤波器和可变频率振荡器是一个 自适应的混合锁相/锁频环路,它在时钟校正算法的控制下,调节本地时钟,提供本地时间。

NTP V4的基本结构框图参见图6.b。NTP V4和V3相似颇多,不同之处主要为两点:V4中对等机的通信间隔由网络相位抖动和本地时钟振荡器的频率稳定度确定,而V3对本地时钟的稳定度不作考虑; V4对VFO的调节间隔为固定的值,如1秒,而V3则未作硬性规定。

从NTP的基本结构框图中可以看出NTP和其他的互联网协议之间的一个重大的区别,这就是NTP不仅仅依靠软件完成,而且还要依靠通用计算机系统范畴 之外的本地时钟电路实现,也就是框图中的VFO及其接口部分。NTP及其相关协议系列对这部分的要求作了描述,但具体的实现却全部是NTP之外的技巧。

7.NTP的数据包格式

NTP网络结构中,无论是服务器或是客户机之间通信的数据包均带有时间戳。时间戳用32位表示,前面16位是整数部分,后面16位是小数部分,计数精度可以达到200ps。NTP从时间戳中获得最基本的时间信息。

NTP数据包消息直接遵循UDP的消息头格式,其分组数据包由若干个数据字组成,每个字长为32比特,详见图7.b。其中,未加底色的方框中内容为NTP v3和v4共同部分;浅灰底色部分为NTP v4专有部分;深灰底色部分为鉴权加密专用部分。在数据包传送时,可以采用DES-CBC或MD5进行数据加密。限于篇幅,这里不对NTP消息包中各个域的含义进行介绍。

NTP和互联网时间同步(图三)

图7.b NTP数据包格式



8.NTP的算法

从图6.a和图6.b中可以看到,NTP涉及4个算法:时间滤波算法、时间选择算法、聚类算法和时钟调节算法。严格地说,这些算法并不是协议的固有部分,但是NTP的实现却有赖于这些算法。

8.1.时间滤波算法

该算法的功能是确认数据包的有效性和从某个给定的时间参考源的时间样本中选取最佳的样本。它可以分成健全性校验和滤波两个部分。

健全性校验的内容有:数据包的唯一性,数据包内容的符合性,服务器工作是否正常,往返延迟和离差数值是否合理,如果协议配置了安全性要求,则还将进行鉴权。

其后进行滤波。它备有一个时间参数寄存器数组,其深度N根据系统配置设置。时间参数的形式为 , 。当前的时间参数根据NTP消息交换时的发送启始时间、对端接收时间、对端回送时间和收到回送时间等四个时间戳信息计算得出,以(θ,δ,ε)形式表示。 这里θ是样本时钟偏移,δ和ε是相关的往返延迟和离差。

算法根据当前时间参数(θ,δ,ε),参照门限要求和时间参数寄存器数组中的历史信息,计算求得样本的滤波离差 、同步距离 并且更新时间参数寄存器数组。 和 表示了当前时间的偏移和最大误差,在后续的时钟选择算法中将作为参数用于时间同步参考源的选择。 该算法在典型情况下可以把偏移的均方误差降低18 dB。

8.2 时间选择算法

NTP客户机可以有若干时间同步参考源。时间选择算法则用于在若干时间参考源中选取最佳的若干参考源。 NTP首先使用滤波算法的结果滤波离差 和同步距离 确定对于各个时间源的有效的时间域值,也称之为交越值。然后对所有的时间逐一进行校验,如落入交越值规定的范围内时,认为有效,否则将被予以剔除。

8.3 聚类算法

NTP内部有一张时间参考源的表格,记录可供访问的所有时间参考源。这些参考源中最为优秀的方能作为候选者进入参考源的优选目录。从可靠性和效率的折 中考虑,通常在参考源中选取10个最佳的时钟进入优选目录。聚类算法根据前面滤波和选择两个算法的结果,对优选目录中的时间参考源重新选择。衡量标准说到 底是精确度,具体表现则为NTP的级、离差、延时、偏移和偏移的一次导数等的加权组合。现行候选者如能通过聚类算法则留用,否则将被剔除出优选目录,并在 其他参考源中选取一个最佳者加入优选目录。通过聚类算法,可以减少网络时间漂移产生的不良影响。

8.4.时钟调节

时钟调节是NTP实现至关重要的一个环节。时间精确度强烈依赖于时钟振荡器的稳定度和时钟调节的精密度。在NTP中,网络响应能力的变化产生的误差为 抖动;振荡器频率稳定度产生的误差为漂移。目前使用自适应混合时钟调整算法。该调整算法校准计算机时钟的时间,补偿固有频率误差,根据测得的抖动和漂移动 态地调节相关参数。算法使用了锁相环路PLL和锁频环路FLL两者的合成。PLL消除抖动非常有效,而只能间接地降低漂移,而FLL正好相反。因此,在抖 动主导的环境,使用PLL效果明显;在漂移占主导地位的环境中,FLL效果明显。调整算法如图8.4的反馈控制系统进行实现。

这里,θr表示周期性轮询产生的参考相位,θc是可变频率振荡器VFO产生的控制相位。鉴相器输出信号Vd表示θr和θc的瞬时相位差。时钟滤波器相 当一个带抽头的延迟线,由算法决定抽头位置。时钟选择、群集和合成算法组合滤波器的数据以生成信号Vs。环路滤波器产生信号Vc,控制VFO的频率ωc和 相位θc。该算法在不同的网络抖动和振荡器漂移情况下,自动控制管理消息更新间隔。更新间隔的上限从先前的不到0.5小时秒扩展到1.5天,大大减轻了网 络开销,增加了可靠性。而且切换时间源时,它不会出现跳频现象。

NTP和互联网时间同步(图四)

图8.4 时钟调节算法



9.结语

NTP和互联网的同步在国外已经得到广泛应用。据统计99年已有将近1万4千个专用时间服务器在工作,相应的对等服务器超过18万台。使用准确的和有依 据的时间不仅仅是许多工作的需要,而且正在成为企业和个人地位和身份的象征。在国内NTP的应用日益广泛,例如在时间戳认证方面,随着网络应用的普及和深 化,NTP的运用领域会获得更大的拓展。

 

附件下载:
博威信安计算机有限公司 版权所有 2000-2012 BOWAY NETWORK Co.,Ltd  冀ICP备2022010821号-1   公安机关备案号:13010302000361