服务热线:

18141908485

13401166073

微信二维码

Beijing Beidou Hongtuo Technology Co., Ltd

  

 

您当前的位置:首页 > 资讯中心 > 授时资讯

 

NTP网络授时简介

时间:2022-09-13 11:03:01  来源:  作者:

1. NTP网络时间协议简介
      NTP(Network Time Protocol)是由美国德拉瓦大学的David L. Mills教授于1985年提出,除了可以估算封包在网络上的往返延迟外,还可独立地估算计算机时钟偏差,从而实现在网络上的高精准度计算机校时,它是设计用来在Internet上使不同的机器能维持相同时间的一种通讯协定。时间服务器(time server)是利用NTP的一种服务器,通过它可以使网络中的机器维持时间同步。在大多数的地方,NTP可以提供1-50ms的可信赖性的同步时间源和网络工作路径。
      网络时间协议(NTP)的详细说明在RFC-1305[Mills 1992]中。RFC-1305对 NTP协议自动机在事件、状态、转变功能和行为方面给出了明确的说明。它以合适的算法以增强时钟的准确性,并且减轻多个由于同步源而产生的差错,实现了准确性低于毫秒的时间服务,以满足目前因特网中路径量测的需要。
      NTP是一个跨越广域网或局域网的复杂的同步时间协议,它通常可获得毫秒级的精度。RFC2030[Mills 1996]描述了SNTP(Simple Network Time Protocol),目的是为了那些不需要完整NTP实现复杂性的主机,它是NTP的一个子集。通常让局域网上的若干台主机通过因特网与其他的NTP主机同步时钟,接着再向局域网内其他客户端提供时间同步服务。

2. NTP授时原理
NTP授时原理NTP最典型的授时方式是Client/Server方式。如下图所示:
       授时原理图
      NTP Client/Server模式授时原理:
      客户端首先向服务端发送一个NTP 包,其中包含了该包离开客户端的时间戳T1,当服务端接收到该包时,依次填入包到达的时间戳T2、包离开的时间戳T3,然后立即把包返回给客户端。客户端在接收到响应包时,记录包返回的时间戳T4。客户端用上述4个时间参数就能够计算出2个关键参数:
      · NTP包的往返延迟d;
      · 客户端与服务端之间的时钟偏差t;
      之后,客户端就可以使用时钟偏差t来调整本地时钟,以使其时间与服务端时间一致。具体方法如下,设:
      · T1为客户发送NTP请求时间戳(以客户时间为参照);
      · T2为服务端收到NTP请求时间戳(以服务端时间为参照);
      · T3为服务端回复NTP请求时间戳(以服务端时间为参照);
      · T4为客户收到NTP回复包时间戳(以客户时间为参照);
      · d1为NTP请求包传送延时,d2为NTP回复包传送延时;
      · t为服务端和客户端之间的时间偏差,d为NTP包的往返时间;
      则问题转换为已知T1、T2、T3、T4,求得t即可调整客户端时钟。列方程组如下:
       授时原理图
     假设NPT请求和回复包传送延时相等,即d1=d2,则可解得:
       授时原理图
      可以看出,t、d只与T2、T1差值及T3、T4差值相关,而与T2、T3差值无关,即最终的结果与服务端处理请求所需的时间无关。

3. NTP授时精度分析
       NTP授时精度与NTP服务端与用户间的网络状况有关,主要取决于NTP包往返路由的延时对称程度,往返路由的延时不对称值最大不超过网络延时。
      根据第一个方程组的第一个等式:
      授时原理图 
      t也可表示为:
       授时原理图
      我们此前都假设NTP请求和回复包在网上传送延时相等,即d1=d2=d/2,而d1、d2的取值范围在(0…d)间,因此由上式可以得出最大授时误差是±d/2。一般广域网的网络延时在10-500ms之间,局域网的网络延时在计时操作系统内核处理延迟的情况下通常小于1ms。假定局域网内NTP延时小于1ms,理论上授时误差小于0.5ms,但对于Windows操作系统内置的NTP客户和NTP服务而言并不能达到此精度。Windows NTP时钟分辨率因操作系统和硬件不同而有所不同,时钟分辨率通常为10ms或15ms。基于Windows操作系统内置的NTP授时精度最高不超过10ms。
       基于NTP时钟偏差的原因时钟频率偏差和时钟分辨率低是局域网NTP授时精度不高的主要原因。
      通用存在两类时钟源,即硬件时钟和软件时。不论是硬件时钟还是软件时钟,都是由石英晶体振荡器驱动的,通过累计石英晶体振荡器输出脉冲数换算出时间。受温度变化、电压、芯片老化等因素影响,晶振频率会发生小幅度波动,其中温度对晶振频影响最大。由于工艺和材料的原因,同一生产线上标称频率相同的石英晶体,其实际频率也是不同的。时钟频率偏差是时钟长期计时累积误差的主要原因,要提高时钟长期计时精度,必须补偿时钟频率偏差。任何晶振实际工作频率都是不稳定的,只是程度不同而已。此外,操作系统应用层加盖、操作系统内核处理延时的不确定也会影响NTP时钟的计算。