因为楼主自己有写了 ntp 服务,顺带跑 ntp 集群,国内的就近使用了 aliyun 的公共服务,结果发现在 ntp.org 上总是有 50ms 左右的误差。
一开始怀疑的是自己写的代码有问题,但其他节点都在 10ms 以下的精度了,所以就怀疑到了 aliyun 本身的时钟误差,然后发现果然慢了 20ms 左右。
所以大家可以抛弃 aliyun 的 ntp,换 Google 或者 Apple 的都比 aliyun 准确
下面是跑脚本 3 次的结果,代码我附在最后
time2.aliyun.com,28.655746ms
time3.aliyun.com,26.759582ms
time5.aliyun.com,29.008967ms
time6.aliyun.com,22.483205ms
time1.google.com,302.125µs
time2.google.com,154.277µs
time3.google.com,942.302µs
time1.apple.com,128.849µs
time2.apple.com,150.666µs
time3.apple.com,46.247µs
time4.apple.com,263.644µs
time5.apple.com,196.309µs
time6.apple.com,28.467µs
time3.aliyun.com,25.598556ms
time5.aliyun.com,29.037168ms
time6.aliyun.com,14.518584ms
time1.google.com,0s
time2.google.com,1.146204ms
time2.apple.com,0s
time3.apple.com,0s
time4.apple.com,0s
time6.apple.com,0s
time1.aliyun.com,14.320869ms
time2.aliyun.com,26.738995ms
time3.aliyun.com,26.47347ms
time4.aliyun.com,26.599685ms
time5.aliyun.com,28.720771ms
time1.google.com,66.609µs
time2.google.com,129.603µs
time3.google.com,438.115µs
time1.apple.com,-91.208µs
time2.apple.com,121.155µs
time3.apple.com,-142.25µs
time4.apple.com,61.033µs
time5.apple.com,81.492µs
time6.apple.com,-171.77µs
https://gist.github.com/mengzhuo/8acbd88b71d0a88c6844a22f0f39093f
@AstroProfundis
仔细读一下原文,
GPS 在广播信息里带有偏移值
而如何计算是__接收器__决定的,万一两个都是劣质硬件产品呢?
12 楼的方法是确信 GPS 是准确的时钟源
而且阿里云自己的服务器之间也差不少,我回头补上 Refid 看看是不是同一台服务器。
而且,说我代码、计算方法有问题,至少要指出在哪里。