Meine Erfahrung ist eher mit NTP als mit OpenNTPD.
Sie sollten wissen, dass das NTP-Protokoll in der Regel mit dem Senden von Paketen jede Minute (64 Sekunden) beginnt, sich jedoch in der Regel durch das Senden und Empfangen eines Pakets alle 17 Minuten für jeden Server einstellt, den Sie in Ihrer Datei /etc/ntp.conf haben. Netzwerkausfälle oder eine instabile Uhr in Ihrem Gerät können dies jedoch verstärken. Jedes Paket hat eine Nutzlast von ungefähr 68 Bytes, das sind also wahrscheinlich etwas mehr als 100 Bytes pro Abfrage.
Das rdate und das ntpdate zur Netzwerkbetriebszeit sind gute Ideen zum Einstellen der Uhrzeit. Und wenn das alles ist, sollten Sie gut für Sie arbeiten.
Wenn Sie die Zeit jedoch über einen längeren Zeitraum synchron halten müssen, wurde das ntp-Protokoll dafür entwickelt. Die Uhr in Ihrem Gerät läuft ein wenig schnell oder langsam, je nachdem, wie warm oder kalt es wird, obwohl es wahrscheinlich eine kristallgesteuerte Uhr hat - und die fortlaufende Zeitmessung soll sich darauf einstellen.
Hier sind einige Vorschläge, wenn Sie eine kontinuierliche Zeitmessung benötigen und die genutzte Bandbreite reduzieren möchten. Sie beziehen sich auf Elemente in der Datei ntp.conf.
Verwenden Sie kein Iburst. (Das Einstellen der Uhrzeit dauert jedoch länger.)
Erhöhen Sie den minpoll von 6 nach oben (2 ^ 6 Sekunden sind 64 Sekunden). Dies reduziert den Datenverkehr, wenn das Protokoll nach dem Hochfahren des Netzwerks gestartet wird.
Erhöhen Sie den Maxpoll von 10 aufwärts (2 ^ 10 Sekunden sind 1024 Sekunden oder ungefähr alle 17 Minuten. Sie können bis zu 17 Sekunden erreichen, um ungefähr alle 36 Stunden abzufragen. Ich habe es selbst nicht versucht.
Verwenden Sie nur eine minimale Anzahl von Servern. Wenn Sie einen Server hatten, der zuverlässig von Ihren eingebetteten Geräten aus erreichbar ist, wäre das großartig gewesen. Je mehr Server vorhanden sind, desto zuverlässiger kann die Zeitmessung sein, der Datenverkehr nimmt jedoch zu, sodass ein Kompromiss entsteht.
Wenn ich mich richtig erinnere, kann das NTP-Abfrageintervall auf maximal 1024 Sekunden eingestellt werden. Die einfachste Lösung wäre vielleicht, ntpdate bei jedem Start und später von Zeit zu Zeit von crontab aus auszuführen.
Wenn Ihre Uhr bei jedem Start mit einer zufälligen Zeit startet, können Sie ntpd wahrscheinlich sowieso nicht ausführen und müssen zuerst ntpdate verwenden. Ntpd weigert sich, die Zeit zu synchronisieren, wenn der Unterschied zwischen Ihrer Uhr und der Uhr des Servers zu groß ist.
quelle
ntpd
denen dieser Anwendungsfall besser gehandhabt wird alscron
dies eecis.udel.edu/~mills/ntp/html/ntpdate.htmlWie TCP verfügt auch NTP über tiefgehende Theorie und praktische Erfahrung, die in das Protokoll integriert sind. Wenn Sie die grundlegenden Parameter ändern, werden die Synchronisierungseigenschaften, für die es entwickelt wurde, nicht mehr verwendet.
Wenn Ihr Gerät nur sporadisch angeschlossen ist, ist der gute alte RDATE möglicherweise der beste Dienst. Es kann weder im Uhrzeigersinn gedreht noch mit Peer-Mitteln verglichen werden, noch kann es gegen verschiedene subtile Hacks gesichert werden, die ein Mann in der Mitte spielen könnte, wenn es sich lohnt. Es erhält nur ein Referenzdatum von einem Remote-Server und schlägt mit einem Hammer auf die lokale Uhr. Aber es tut es, wenn Sie es wollen, und sein Verhalten ist deterministisch.
Die RDATE-Genauigkeit ist weitaus schlechter als es NTP bietet. Ich würde es nicht besser als ± 1 Sekunde anvertrauen, aber wenn Sie nur sporadisch verbunden sind, ist ein genaueres Timing nicht relevant. in der Tat könnte es der Relativität nach nicht einmal von Bedeutung sein.
quelle
Um das
minpool
/maxpool
zu berücksichtigen, müssen Sie dann pro Server in Ihrem hinzufügenntp.conf
.Es ist nicht ganz empfehlenswert, sich mit dem NTP-Deamon zu messen (es verfügt über ein eingebautes Mathod, um die Frequenz zu optimieren), aber Sie müssen diese Option wie folgt hinzufügen:
Wenn Sie hier die minimale Frequenz auf 2 ^ 12 Sekunden und die maximale auf 2 ^ 17 Sekunden einstellen.
Standardmäßig fand ich heraus, dass das NTP jede Minute oder so eine Anfrage stellen würde. Das ist viel zu viel. Hier habe ich die Frequenz von einmal pro Stunde auf einmal pro Tag reduziert (grob).
quelle