Aller au contenu principal

10. Clock Filter Algorithm (Algorithme de filtre d'horloge)

L'algorithme de filtre d'horloge fait partie du processus de pair. Il sélectionne les échantillons les plus susceptibles de représenter l'heure précise. L'algorithme produit des variables incluant le décalage (theta), le délai (delta), la dispersion (epsilon), la gigue (psi) et l'heure d'arrivée (t).

Structure et calculs

Le filtre utilise un registre à décalage à 8 étages pour stocker les tuples récents (theta, delta, epsilon, t). Les tuples sont initialisés à (0, MAXDISP, MAXDISP, 0) et mis à jour à l'arrivée de paquets valides.

Dispersion du pair:

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

Gigue (jitter):

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

Distance de synchronisation:

lambda = (delta / 2) + epsilon

Dans NTPv4, lambda augmente avec le temps jusqu'à dépasser MAXDIST, moment où l'association est jugée impropre à la synchronisation.