编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

网络时间协议NTP

wxchong 2025-05-14 17:18:53 开源技术 2 ℃ 0 评论

1,网络时间协议NTP(Network Time Protocol):一种网络时间同步的协议,用于在计算机网络中同步设备时钟的协议基于UDP,默认端口为123。

2,NTP特点:

  • 全球时间标准: 提供一个全球性的时间标准,即协调世界时(UTC);
  • 高精度:通过选择合适的同步源和精密的算法,NTP可以实现高准确的时间同步;
  • 恢复能力: 当网络连接存在问题时,NTP可以通过历史数据等来提供帮助,能够提供可靠的时间同步;

3,工作流程:

  • 第1步:客户端从时间服务器列表中选择一个作为参考源;
  • 第2步:客户端向选定的时间服务器发送时间同步请求;
  • 第3步:时间服务器接收到客户端请求后,将自己的时间信息作为响应发送给客户端;
  • 第4步:客户端接收到时间服务器的响应后,计算请求和响应之间的延迟;
  • 第5步:客户端使用延迟信息来校准自己的本地时钟,以使其与时间服务器的时钟保持同步;

4,NTP同步时序:

  • T1:时间同步请求时间
  • T2:时间服务器接收到请求时间
  • T3:时间服务器响应时间
  • T4: 时间同步请求响应时间
  1. 计算NTP客户端发送到NTP服务器所需要的时间Delay,Delay = [ ( T4 - T1 ) - ( T3 - T2 ) ] / 2;
  2. 在T4时刻点,NTP服务器发送过来的报文被NTP客户端接收到时,服务器的时刻已经为T3 + Delay。这时时间差Offset可由以下公式进行计算:T4 + Offset = T3 + Delay;即Offset = T3 + Delay - T4 = T3 + [ ( T4 - T1 ) - ( T3 - T2 ) ] / 2 - T4 = [ ( T2- T1 ) + ( T3 - T4 ) ] / 2。
  3. NTP客户端根据计算得到Offset来调整自己的时钟,实现与NTP服务器的时钟同步。

5,NTP层级(Stratum)用来表示时钟源的分级系统,分层结构能确保高精度的时间同步,分层结构允许网络中的设备根据它们与更高级别的时钟源的接近程度来选择时间源。顶层的参考时钟被分配编号0,层级编号表示与参考时钟的距离,较高层的时间源通常质量更高。但NTP数据包中的层字段为0的表示未指定层级。

  • Stratum0:是最高层级,通常由地球上的主要时间源提供,如原子钟、GPS接收器或其他高精度的时间源。Stratum 0时钟源被认为是最准确和最可信赖的,NTP服务器无法被分配到Stratum 0。
  • Stratum 1:是直接与Stratum 0时钟源连接的NTP服务器,Stratum 1服务器也称为主服务器,stratum 1 的服务器也可与其他 stratum 1 服务器对等连接,它们提供时间信息给下级的Stratum。
  • Stratum 2:与Stratum 1服务器同步的NTP服务器,这些服务器依赖于Stratum 1服务器提供的时间信息,stratum 2 的服务器可查询多个 stratum 1 的服务器,也可与其他 stratum 2 的服务器对等连接,从而互相同步。
  • Stratum 3:与Stratum 2服务器同步,stratum 2 为下一层提供时间同步,以此类推。
  • NTP的层级结构可以继续下去,层级上限为15,层级 16 用于表示设备未同步。随着层级的下降,时间同步的准确性会降低。

6,NTP工作模式:

  • client/server:客户端/服务器模式工作在不同层之间,客户端需要预先知道服务端的 IP 地址。
  • peer:对称模式(symmetric active/passive)运行在同一层级中。
  • broadcast:广播模式应用在一台或多台时间服务器定期向其他客户端发送广播报文,广播报文在毫秒级的延迟基础上确定时间。
  • multicast:组播模式适用于有大量客户端分布在网络中的情况。

7,同步时间设置(例子是Win7):

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表