ntpq 对等体输出说明

ntpq 对等体输出说明

我从 ntpq 命令得到以下输出:

# ntpq -pn                                                     
 remote           refid            st t when poll reach delay  offset jitter 
================================================================================ 
*192.168.1.1          10.10.4.1     2 u  68y 1024 170   0.198   0.584  0.606 

68y栏里的是什么意思when?文档显示距离上次收到数据包已经过去了一段时间。这是否意味着最后收到的数据包是 68 年前收到的?我可以相信吗?

# ntpq --version 
ntpq 4.2.8p11

答案1

reach值是之前 8 次尝试轮询远程 NTP 服务器的结果的八进制表示形式。八进制值170映射到二进制值01111000,表示最近 3 次轮询尝试均失败。

poll值指示当前轮询间隔:在您的情况下,1024 秒是默认最大值。这表明ntpd已经在很长一段时间内保持与远程时间服务器 192.168.1.1 的连接,并且已经与它实现了相当好的同步,正如相当好的delayoffsetjitter值所证明的那样。结果,它已将该poll值调整到允许的最大值。

由于该reach值表示最近 3 次轮询尝试均失败,因此poll值 1024 意味着距配置的远程 NTP 服务器上次成功轮询以来必须至少经过 3076 秒。

在里面ntpq 子命令的源代码,该when值的计算方式为prettyinterval()功能。顾名思义,它以时间间隔的长度作为参数,并且该参数由函数计算when()。它计算当前时间戳和上次接收时间戳之间的间隔,或者如果接收时间戳为零,则计算当前时间戳和上次参考时间戳之间的间隔。

在我看来,when()产生大值的唯一方法是如果最后一个接收时间戳具有非零但意外的小值,或者最后一个接收时间戳为零最后一个参考时间戳非零但出乎意料地小。

我的疯狂猜测:当最后一次到达远程 NTP 服务器时,它可能在其响应中发出了无意义的 NTP 时间戳。或者你的本地系统时钟真的很疯狂。经过一些粗略的计算,远程 NTP 服务器发出的时间戳可能是 1954 年左右,或者该系统的本地时间概念可能是 2090 年左右。

相关内容