标题几乎解释了它。我只使用NTP服务器作为时间源,我只需要精确到100μs左右。
在协议的stratum和refid字段中使用什么的最佳实践是什么?
我将从time.nist.gov服务器获取时间,所以我不知道我的上游服务器的层数是多少。
答案 0 :(得分:1)
当作为客户端连接时,这些字段将从您从中获取时间的上游服务器填充。
这里的示例是ntpq -p
的输出(服务器数据匿名)
remote refid st t when poll reach delay offset jitter
==============================================================================
PRIVATE .STEP. 16 u - 1024 0 0.000 0.000 0.000
-PRIVATE1 .GPS. 1 u 55 64 377 29.585 0.071 0.312
-PRIVATE2 .GPS. 1 u 40 64 377 9.468 0.209 0.129
-PRIVATE3 1.1.1.1 2 u 12 64 377 6.943 -0.270 0.142
-PRIVATE5 .PPS. 1 u 20 64 377 16.383 -0.531 0.197
+PRIVATE6 .DCFa. 1 u 22 64 377 8.661 -0.036 0.126
-ISP1 2.2.2.2 2 u 36 64 377 11.720 -0.027 0.280
#PRIVATE7 .GPS. 1 u 47 64 377 24.781 -1.405 1.118
+ISP2 .PPS. 1 u 4 64 377 6.012 0.062 0.154
-ISP3 .PPS. 1 u 14 64 377 13.993 -0.463 0.206
-ISP4 .CDMA. 1 u 57 64 377 71.712 -0.109 0.249
ntp.mcast.net .MCST. 16 u - 64 0 0.000 0.000 0.002
LOCAL(0) .LOCL. 10 l 69d 64 0 0.000 0.000 0.000
xSHM(0) .GPS. 0 l 9 16 377 0.000 -25.278 7.907
*SHM(1) .PPS. 0 l 11 16 377 0.000 -0.030 0.060
文档here将有助于解释更多内容,但基础知识是:
st = Stratum - 这就是所列服务器与实际时间接收器的“接近”程度。在我的例子中,取PRIVATE6
服务器它自己是一个层1服务器直接从一个层0设备(在这种情况下是一个DCFa接收器)获得它的时间,但如果你看到底部你看到我有{{1 SHM(1)
层作为其直接连接到我的服务器的GPS PPS设备。
refid =参考ID - 这是你从中获取时间的服务器,它是自己的时间。在上面的示例中,大多数服务器都是通过直接连接的硬件获得时间的,但如果您查看我的列表中的0
,您会看到它有一个IP地址作为其参考源 - 那是因为该服务器依赖于另一台服务器它的时间(而不是像GPS / DCF / MSF那样的'真正的'时钟)
地层水平总是比你得到的时间源“进一步”增加1。
GPS RX(S0) - >运行GPS的服务器(S1) - >另一个服务器(S2) - >终端客户。
如果您正在构建一个强大的时序域,那么ntp需要最少的3台服务器,理想情况下 5才能使其工作最佳并最大限度地减少任何机会被毒害了。 (你的时间远离几个流氓服务器的真实情况)你应该选择(如果可以的话)接近你的服务器(如往返时间)和服务器,理想情况是S2或更好。 我个人不会使用PRIVATE3
或任何其他众所周知的ntp服务器,因为它们通常距离太远,负载较高且RTT较差如果你有一个环顾四周你应该是能够找到一些合适的服务器,或者花费不多,你可以使用GPS接收器建立自己的服务器。