从 NTP 服务器获取时间时,最终用户应该在 refid 和 stratum 字段中设置什么?

When getting the time from an NTP server, what should an end user set in the refid and stratum field?

标题几乎解释了它。我只使用 NTP 服务器作为时间源,我只需要 100µs 左右的精度。

在协议的 stratum 和 refid 字段中使用什么的最佳实践是什么?

我将从 time.nist.gov 服务器获取我的时间,所以我不知道我的上游服务器的层级是什么。

当作为客户端连接时,这些字段是从您接收时间的上游服务器填充的。

作为示例,这里是我从 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 - 这就是 'close' 列出的服务器来自实际时间接收器的方式。在我的示例中,PRIVATE6 服务器本身是第 1 层服务器,直接从第 0 层设备(在本例中为 DCFa 接收器)获取时间,但是如果您查看底部,您会看到我有 SHM(1) 作为直接连接到我的服务器的 GPS PPS 设备,层数为 0

refid = 参考 ID - 这是您从中获取时间的服务器本身获取时间的地方。在我上面的例子中,大多数服务器从直接连接的硬件那里获得时间,但是如果你在我的列表中查看 PRIVATE3,你会看到它有一个 IP 地址作为其参考源——那是因为该服务器依赖于另一台服务器它的时间(而是一个 'real' 自己的时钟,例如 GPS/DCF/MSF)

离您获得的时间源 'further' 层级总是增加 1。

GPS RX (S0) -> 服务器 运行 GPS (S1) -> a.n.other 服务器 (S2) -> 终端客户端。

如果您要构建稳健的时序域,则 ntp 需要 最少 3 台服务器,理想情况下 5 台服务器才能最好工作,并尽量减少中毒的机会。 (你的时间被几个流氓服务器从真实情况中拉走了)你应该选择(如果可以的话)离你很近的服务器(如往返时间)和理想的 S2 或更好的服务器。 我个人不会使用 time.nist.gov 或任何其他知名的 ntp 服务器,因为它们通常距离太远,负载高且 RTT 差 如果你四处看看你应该能够找到一些合适的服务器,或者用不多的钱你可以用 GPS 接收器建立自己的服务器。