NTP(Network Time Protocol,网络时间协议)

STRATUM-0 UTC参考时间-时钟

        NTP结构在0-15层STRATA树中组织。从Stratum 2开始,每台计算机都充当STRATUM-1服务器和STRATUM-3服务器的客户端。服务器可以通过PEER提供冗余并提高同步的稳定性。其他协议(如SNTP和PTP)不支持STRATUM层次结构。仅操作CLIENT-SERVER(主从)结构。

时钟分层

NTP使用等级制度、半分层的时间源系统。该等级结构的每一级被称为一层,并为顶部的参考时钟分配一个从零开始的数字。与第n层服务器同步的服务器在第n+1层运行。该数字表示与参考时钟的距离,用于防止层次结构中的循环依赖。层并不总是质量或可靠性的标志;通常会发现层3时间源比其他层2时间源质量更高。下面提供了层0、1、2和3的简要描述。

Stratum 0(层0)

这些是高精度的计时装置,如原子钟、GPS或其他无线电钟。它们生成非常精确的每秒脉冲信号,在连接的计算机上触发中断和时间戳。层0设备也称为参考时钟。

Stratum 1(层1)

这些计算机的系统时间同步到它们所连接的第0层设备相差几微秒时间。第1层服务器可以与其他第1层服务器对等,以进行完整性检查和备份。它们也称为主时间服务器。

黄色箭头表示直接连接;红色箭头表示网络连接

Stratum 2(层2)

这些计算机通过网络与第1层服务器同步。通常,层2计算机查询多个层1服务器。层2计算机还可以与其他层2计算机对等,以便为对等组中的所有设备提供更稳定和健壮的时间。

Stratum 3(层3)

这些计算机与第2层服务器同步。它们采用与第2层相同的对等和数据采样算法,并且本身可以充当第4层计算机的服务器,依此类推。
层的上限为15;层16用于指示设备未同步。每台计算机上的NTP算法交互以构建Bellman-Ford最短路径生成树,以最小化所有客户端到第1层服务器的累计往返延迟。

除了层之外,该协议还能够根据参考标识符(REFID)识别每个服务器的同步源。

NTP –网络时间协议

       网络时间协议(NTP)是一种网络协议,用于通过数据包交换的可变延迟数据网络在计算机系统之间进行时钟同步。 NTP从1985年开始运行,是目前使用的最古老,最稳定的Internet协议之一。NTP由特拉华大学的David L. Mills设计。

       NTP旨在将在公共Internet上运行的所有参与计算机同步到协调世界时(UTC)的几毫秒内。使用NTS-x000系列产品,可以在本地网络内部将精度提高到十几微秒。

       NTP使用交集算法(Marzullo算法的改进版本)选择准确的时间服务器,并旨在减轻可变网络延迟的影响。如果有多个时间服务器可用作时间的主要参考,则此算法也可用于检测时间操纵。

       NTP使用0-15分层、半分层的时间源系统。该层次结构的每一级都称为层,并为顶部的参考时钟分配了一个从零开始的数字。与n层服务器同步的服务器在n+1层运行。该数字表示与参考时钟的距离,并用于防止层次结构中的循环依赖性。

      重要提示!stratum并不总是质量或可靠性的标志。

       典型的NTP客户端会定期轮询不同网络上的三台或更多服务器。要同步其时钟,客户端必须计算其时间偏移和往返延迟。时间偏移θ定义为

往返延迟δ

这里:

  • t0是客户端发送请求数据包的时间戳,
  • t1是服务器接收请求数据包的时间戳,
  • t2是服务器响应数据包传输的时间戳
  • t3是客户端接收响应数据包的时间戳

       θ和δ的值通过过滤器进行统计分析。离群值被丢弃,并且从剩余的最佳三个候选中得出时间偏移的估计。然后调整时钟频率以逐渐减小偏移,从而形成反馈环路。

       当客户端和服务器之间的传入和传出路由都具有对称的额定延迟时,同步是正确的。如果路线没有共同的额定延迟,则前向和后向行驶时间之间将存在一半的系统偏差。