使用w32tm / stripchart来判断两个Windows主机之间的时间差异是否可行?发现两个主机时间差异的更好方法是什么?

前端之家收集整理的这篇文章主要介绍了使用w32tm / stripchart来判断两个Windows主机之间的时间差异是否可行?发现两个主机时间差异的更好方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用w32tm.exe的选项条形图来判断两台主机的时间差异(在很小的误差范围内)是否可行?请注意,w32tm.exe的条带图功能Windows时间服务本身使用的算法是分开的.

如果没有,有什么替代方法

谢谢,

马特

您的第一个问题的答案是“是的,w32tm.exe(Windows时间)能够在非常小的误差范围内(相对术语)测量两个网络主机的时间差异.”

第二个问题的答案是“是的,有更好的方法来衡量两个主机之间的时间差异.微软说得对here.他们指向NIST,其中列出了一大堆其他软件(和硬件).可能比w32tm.exe好.我相信很多都是,因为微软显然不支持w32tm.exe作为超高精度工具.“

Windows时间(和w32tm.exe)符合RFC 1305(NTPv3),包括补偿网络延迟.补偿网络延迟是网络时间协议的基本特征之一. (参见Marzullo的算法,这是NTPv3使用的算法.)

让我对你的问题感到沮丧的是,高精度对你来说非常重要,但是你没有给出任何关于你需要精确精度的提示. 1秒? 1毫秒? 1纳秒?通用计算机的时钟分辨率与处理器接收的时钟中断频率相关,通常由运行在32.768 KHz(功率为2)的晶体振荡器控制,但这对温度,电压等敏感. .典型Windows机器上的HAL默认配置实时时钟每15.6毫秒启动一次,或大约每秒64次.但是,您仍然可以将RTC调低至1ms,您还可以通过软件将该15.6毫秒时间片细分为更小的片段,以实现高性能应用.无论如何,NTP时间戳本身是一个64位无符号定点数,因此理论上的限制大约为232皮秒的精度,但Windows时间实现甚至没有接近. Windows时间显示的NTP精度为-6,并且不支持某些最新和最好的NTP算法,因此实际上它可能永远不会产生比一个硬件时钟滴答或正负16毫秒更精确的精度.

通用操作系统不是非常好的时钟,特别是如果在用户模式下实现时间保持算法,其中执行线程不断被抢占.高精度时钟很贵.

上图是系统上时钟中断的频率.请注意,即使是时钟中断(32位Windows上的IRQL 28和64位Windows上的IRQL 13)也可以被更高的中断(例如处理器间中断)抢占,并且即使是通过纳秒.

所以回到NTP.

w32tm / stripchart /computer:10.0.1.8是测试一台Windows机器与另一台机器之间的时间差异的完美有效方法.它确实考虑了网络延迟,正如我们上面讨论的那样,它与NTPv3兼容.但是不要相信我的话.您可以在Wireshark跟踪(w32tm.exe发送到Windows NTP服务器的客户端数据包)中查看自己的事务:

Microsoft不保证使用Windows Time的亚秒精度,因为他们不需要支持它以使其任何产品都能正常工作.但是,这并不意味着w32tm.exe仍然不具备亚秒精度.

如果你确实需要比这更准确的时间,你可能会使用另一种使用稍微不同的算法的NTP实现额外的毫秒或10精度.但如果你真的需要更准确的时间,我个人根本不会建议NTP.我将铯钟直接连接到您的机器上,而不是使用先发制人的操作系统.

编辑5/2/2017:上述信息已过期,不一定适用于Windows Server 2016及更高版本. Microsoft在以后的操作系统中对Windows Time的准确性做了一些重大改进.

猜你在找的Windows相关文章