10. Clock Filter Algorithm (Algoritmo filtro orologio)
L'algoritmo di filtro dell'orologio fa parte del processo peer. Seleziona i campioni più probabili di rappresentare l'ora accurata. L'algoritmo produce variabili tra cui offset (theta), ritardo (delta), dispersione (epsilon), jitter (psi) e tempo di arrivo (t).
Struttura e calcoli
Il filtro utilizza un registro a scorrimento a 8 stadi per memorizzare le tuple recenti (theta, delta, epsilon, t). Le tuple sono inizializzate a (0, MAXDISP, MAXDISP, 0) e aggiornate all'arrivo di pacchetti validi.
Dispersione del peer:
i=n-1
--- epsilon_i
epsilon = \ ----------
/ (i+1)
--- 2
i=0
Jitter:
+----- -----+^1/2
1 | \ 2 |
psi = ---- * | / (theta_0-theta_j) |
(n-1) | --- |
+----- -----+
Distanza di sincronizzazione:
lambda = (delta / 2) + epsilon
In NTPv4, lambda aumenta nel tempo fino a superare MAXDIST, momento in cui l'associazione è considerata inadatta per la sincronizzazione.