Windows 的时间服务器同步精度是多少?(它是否补偿了 ping 时间?)

Bas*_*asj 7 windows-7 time ping ntp

对于这个问题的应用中描述的项目,我需要尽可能最好的时钟精度,一种解决方案是实现计算机实时时钟的精确同步。

  1. 与 Windows 7 的“调整日期/时间”>“互联网时间”>“更改设置”>“立即更新... ”进行同步的记录精度是多少?

  2. 更具体地说,它是否补偿了时间服务器的 ping?

    例子:

    • 时间服务器发送一个数据包说它正好是 12:00:00.000
    • 假设从我的计算机到时间服务器的平均 ping 是 93 毫秒(在最后一分钟计算的平均 ping)
    • 来自时间服务器的数据包将在 12:00:00.093 到达我的计算机,对吗?
    • 那么 Windows应该将时间设置为 12:00:00.093 而不是 12:00:00.000,对吗?
  3. 如果没有,是否有 Windows 软件可以通过 ping 补偿或其他类型的改进精度进行这种实时时钟同步?

har*_*ymc 8

非常有趣的问题,所以我对几个来源进行了一些挖掘。

Arno Lentfer 于 2012 年撰写的文章第二部分:系统时间调整( PDF ) 包含许多测量值,并表示:

事实证明,Windows 同步到网络时间参考不是很准确。特别是 Windows 版本 VISTA 和 7 似乎由于某种未知原因失去了一些功能。不幸的是,关于这个问题的信息不多,可用的信息很少,基本上是说 Windows 时间同步不应该期望比几秒钟更准确,并且 SetSystemTimeAdjustment 的行为可能在含义方面出现问题dwTimeAdjustment 的值。现在只有 Windows 8 克服了这些缺点,并且其系统时间调整的性能与在 Windows XP 上一样。

文章指出,系统时钟内置了一些小错误,通常不会保持准确的时间。分析表明,使用所检查的硬件,系统时间可能比实际时钟增加 0.0448 ms/s。

Microsoft 文章 支持为高精度环境配置 Windows 时间服务的边界得出的结论是,在严格控制的环境中使用 Windows 10 和 Windows Server 2016,您可以期望的最佳时间是 1 毫秒。Microsoft 的文档详细说明了 1 秒、50 毫秒和 1 毫秒精度的要求,而较旧的操作系统很难保持在几秒钟内。

相比之下,Domain Time II 实现了亚毫秒级的可证明精度,并且在使用 IEEE 1588-2008 精确时间协议 (PTP) 时,可以实现低两位数的微秒精度。

Microsoft 文章概述了给定精度的要求:

目标精度:1 秒 (1s) 要求

  • 目标系统必须运行 Windows 10、Windows Server 2016。
  • 目标系统必须从高度准确的 NTP 时间源同步时间
  • 必须正确配置 NTP 层次结构中的 Windows 系统
  • 目标和源之间的累积单向网络延迟不得超过 100 毫秒。

目标精度:50 毫秒要求

  • 目标计算机的时间源之间的网络延迟必须优于 5 毫秒。
  • 目标系统距离高度准确的时间源不得超过第 5 层
  • 目标系统必须在距离高精度时间源 6 个或更少的网络跳数以内
  • 所有层的一天平均CPU利用率不得超过90%
  • 对于虚拟化系统,主机一天平均CPU利用率不得超过90%

注意:w32tm /query /status从命令行运行以查看层。

目标精度:1 毫秒要求

  • 目标计算机的时间源之间的网络延迟必须优于 0.1 毫秒
  • 目标系统距离高度准确的时间源不得超过第 5 层
  • 目标系统必须在距离高度准确的时间源 4 个或更少的网络跳数内
  • 每个层的一天平均 CPU 使用率不得超过 80%
  • 对于虚拟化系统,主机一天的平均CPU利用率不得超过80%

如果您想知道什么是层,那么重要的是要意识到 NTP 是一个分层的、半分层的时钟级别系统。下图来自文章 网络时间协议 (NTP) 准确度如何?作者:戴夫·高尔特 ( PDF ):

NTP层次结构

该文章还列出了可能对显示的时间质量产生不利影响的因素:

  • 互联网连接的速度(延迟)。
  • 选择用于同步的时间服务器的层次。
  • 与服务器的信号距离(包括与轨道卫星之间的距离)。
  • 所用软件算法的质量和复杂性。
    • 它使用多个服务器吗?
    • 它是否计算往返延迟?
    • 它是否补偿了系统性偏差?
    • 它是否报告同步的准确性?

这比我预期的要长。但是要回答您的问题:

与 Windows 7 的“调整日期/时间”>“互联网时间”>“更改设置”>“立即更新...”进行同步的记录精度是多少?

这取决于上述目标精度的哪些要求适用于您的安装。如果上述要求均不适用,您的时间可能与实际时间相差最多 2 秒。NTP 时间服务器也可能不准确,具体取决于其层级。另请注意,在使用计算机的实时时钟时,您会遇到恒定的时间漂移​​,您可能可以测量(或可能从制造商处获得)。

更具体地说,它是否补偿了时间服务器的 ping?

答案是不。这取决于您来衡量,记住 ping 时间可能不会保持不变。

结论:如果您需要比 Internet 时间服务器提供的时间精度更高的时间精度,则需要获取和使用专门的时钟设备。

有趣的阅​​读是 Algorithmic Trading 文章 Precision Timekeeping on Windows,它解释了微软如何改进其内部计时功能以及系统时钟的精度:

图片

设置或检查计算机时间的有用工具

如果您希望通过 Internet 将您的计算机时间与低层服务器同步,您可以使用免费产品 Dimension 4

Dimension 4 使用一种称为 SNTP 的低级互联网协议来连接特殊用途的互联网时间服务器,这些服务器在过去 20 多年里一直保持网络的其余部分准时。这些时间服务器通常可以直接访问它们自己的时间源,或者它们直接连接到其他可以访问的 Internet 时间服务器。

在您指定的时间间隔内,Dimension 4 连接到这些 Internet 时间服务器之一,您可以从直接内置于 Dimension 4 的详尽列表中进行选择。然后时间服务器将正确的时间发送回您的计算机,其中 Dimension 4使用复杂的算法将您的计算机时钟正确调整到实时时间的几毫秒内

您还可以根据网站time.is验证您的计算机时钟 :

图片