メインコンテンツまでスキップ

10. Clock Filter Algorithm (クロックフィルターアルゴリズム)

クロックフィルターアルゴリズムはピアプロセスの一部です。これはオンワイヤーデータストリームから正確な時刻を最も表す可能性の高いサンプルを選択します。このアルゴリズムは、オフセット(offset, theta)、遅延(delay, delta)、分散(dispersion, epsilon)、ジッター(jitter, psi)、到着時刻(t)を含む変数を生成します。

10.1. フィルター構造

8段シフトレジスターとして機能するフィルター構造に、最新のサンプルタプル (theta, delta, epsilon, t) を保存します。初期化時、全段を (0, MAXDISP, MAXDISP, 0) に設定し、有効パケットの到着により古いタプルが破棄されます。

10.2. 分散計算

シフトレジスター段をdelta昇順でソートし、第i番目エントリの分散を epsilon_i とすると、ピア分散は:

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

10.3. ジッター計算

ソート済みリストの最初のオフセットを theta_0 とすると、ジッターはRMS平均:

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

10.4. 同期距離

同期距離lambdaは遅延と分散から計算:

lambda = (delta / 2) + epsilon

NTPv4では、lambdaは時間とともに増加し、最終的にMAXDISTを超えると同期に不適と判断されます。