ntpd
是NTP的参考实现。当前版本是 4.1.2。
手册页似乎说,iburst
使用时,重试无响应的 NTP 服务器的间隔为 16 秒。
http://doc.ntp.org/4.1.2/confopt.htm
iburst
当服务器无法访问并且在每个轮询间隔时,发送八个数据包的突发而不是通常的一个。只要服务器不可达,数据包之间的间隔大约为 16 秒,以允许调制解调器调用完成。一旦服务器可达,数据包之间的间隔约为 2s。这旨在加速使用服务器命令和 s 地址以及使用该
-q
选项启动 ntpd 时的初始同步获取。
但是官方的 NTP“手册”说重试间隔将提高到 64 秒(假设默认设置):
https://www.eecis.udel.edu/~mills/ntp/html/poll.html
对于该
iburst
选项,突发中的数据包数量为 6,这是同步时钟通常所需的数量;对于该burst
选项,突发中的数据包数量由当前轮询指数和最小轮询指数之间的差值作为 2 的幂来确定。例如,默认最小轮询指数为 6(64 秒),只有一个每次轮询都会发送数据包,而在轮询指数为 9(512 秒)或更多时发送全部 8 个数据包。这确保了平均车头时距永远不会超过最小车头时距。如果设计不当,突发选项可能会导致网络负载增加。这两个选项都受到速率管理和 Kiss-o'-Death Packet 页面上描述的规定的影响。此外,当
iburst
或burst
被启用时,会发送突发的第一个数据包,但只有在收到对第一个数据包的回复时才会发送剩余的数据包。如果在选项设置的超时后没有收到回复minpoll
,则再次发送第一个数据包。这意味着,即使服务器无法访问,网络负载也不会超过最小轮询间隔。
我是否应该理解重试之间的间隔在使用时实际上是 64 秒iburst
,除非该minpoll
选项也被调整?
该
iburst
设置会更改server
设置,以便在可以访问服务器之前,在每个轮询间隔发送八个数据包而不是一个。(八个数据包中的每一个之间的间隔是 16 秒或 2 秒,具体取决于是否收到任何响应。)要尝试具体回答您的问题,轮询重试之间的间隔将至少为 64 秒,无论是否
iburst
使用。iburst
时,每次服务器轮询重试发送一个数据包。iburst
,每次轮询重试时,最多以 16 秒或 2 秒的间隔发送多达 8 个数据包。iburst
标志就没有进一步的影响。iburst
服务器成为同步候选者时使用语义,请添加burst
标志。iburst
和burst
用于同一服务器。经过一些实验,这就是我实际发生的事情:
iburst
指定且服务器不回复时,每个轮询间隔发送一个数据包。iburst
指定并且服务器确实回复时,将发送六个数据包的初始序列,每两秒一个。这不会在随后的轮询间隔中重复,并且iburst
没有进一步的影响。这六个数据包的序列足以将服务器标记为同步的潜在候选者(*
在左侧列中ntpq -np
)。iburst
没有进一步的影响,每个轮询间隔都会发送一个数据包。与当前文档匹配的很少!