Zum Hauptinhalt springen

10. Clock Filter Algorithm (Uhrenfilter-Algorithmus)

Der Uhrenfilter-Algorithmus ist Teil des Peer-Prozesses. Er wählt aus dem Datenstrom die Proben aus, die am wahrscheinlichsten die genaue Zeit darstellen. Der Algorithmus erzeugt Variablen einschließlich Offset (theta), Verzögerung (delta), Dispersion (epsilon), Jitter (psi) und Ankunftszeit (t).

Struktur und Berechnungen

Der Filter verwendet ein 8-stufiges Schieberegister zur Speicherung der letzten Tupel (theta, delta, epsilon, t). Die Tupel werden mit (0, MAXDISP, MAXDISP, 0) initialisiert und bei Ankunft gültiger Pakete aktualisiert.

Peer-Dispersion:

         i=n-1
--- epsilon_i
epsilon = \ ----------
/ (i+1)
--- 2
i=0

Jitter:

              +-----                 -----+^1/2
1 | \ 2 |
psi = ---- * | / (theta_0-theta_j) |
(n-1) | --- |
+----- -----+

Synchronisationsdistanz:

lambda = (delta / 2) + epsilon

In NTPv4 erhöht sich lambda mit der Zeit, bis MAXDIST überschritten wird, wodurch die Assoziation als ungeeignet für die Synchronisation gilt.