当延迟高度可变时,ntpd 的工作情况如何?

JP *_*son 7 ntp ntpd

我有一个应用程序,我们正在使用一些非标准网络设备(无法更改),这些设备在流量爆发之间进入休眠状态。第一个数据包的网络延迟非常高,因为它实际上是在唤醒系统,等待它重新连接,然后进行第一次往返。后续消息(假设它们在下一分钟左右)要快得多,但仍然具有很高的潜伏性。一组典型的 ping 看起来像 2500ms、900ms、880ms、885ms、900ms、890ms 等。

鉴于 NTP 在计算偏移量之前使用了几次往返,我能期望 ntpd 在这种链接上工作吗?最初缓慢的第一次往返是否会基于发往/来自 ntp 服务器的大量不同(和更快)的后续消息而被忽略?

Dav*_*rtz 6

简短的回答是肯定的,与高往返时间戳相比,NTP 更喜欢低往返时间戳。曾经有一个calldelay选项可以将这个问题告诉 NTP,通常是由使用按需拨号技术的网络创建的,这些技术会造成呼叫延迟。但是,现在 NTP 会自动执行此操作。

如果您想加快初始时间同步,您可能希望iburstserver/peer行使用关键字。这告诉 NTP 使用 8 个间隔的数据包而不是 1 个来测量时间。它将忽略任何具有更高往返时间的数据包。如果你有带宽,你可以使用burst让它每次测量时间使用8个数据包。