NTPのジッターと遅延

ジッターとは

NTPにおけるジッターは、時刻同期プロセスの安定性と精度を評価する指標です。

技術的には、ジッターはNTPパケットの往復時間の変動や揺らぎを数値化したもので、連続する時刻測定間の時間差のばらつきを表します。

シャトル欄を例にするとわかりやすいかもしれません。

4回の往復にかかる時間を計測してみると、往復時間の揺らぎが見えてきます。

ジッターの例
ジッターの値が小さいほど、時刻源からの信号が安定していることを意味し、より信頼できる時刻同期が可能になります。

反対に、ジッターが大きい場合、ネットワークの混雑、ルーティングの変更、あるいは時刻源自体の不安定さなどの問題が示唆されます。

NTPシステムはジッター値を継続的に監視し、この情報を使って最も安定した時刻源を選択したり、複数の時刻源からのデータを重み付けする際の判断材料としています。

具体的には、ジッターの値が高い時刻源は信頼性が低いと見なされ、アルゴリズムによって重要度が下げられます。

ジッターによる優先度調整
実用的な観点では、高品質なNTP同期では通常、数ミリ秒以下のジッター値が期待されます。

しかし、インターネット経由の一般的なNTP接続では、数ミリ秒から数十ミリ秒程度のジッターが観測されることも珍しくありません。

システム管理者はntpqやntpstatといったツールを使用して、定期的にジッター値をモニタリングすることで、時刻同期の品質低下を早期に発見し、必要に応じて代替の時刻源を構成するなどの対策が可能になります。

遅延とは

NTPにおける遅延(delay)は、クライアントとNTPサーバー間の時刻情報交換にかかる往復時間を指す測定値です。

この遅延はミリ秒単位で測定され、クライアントがサーバーにリクエストを送信してから応答を受け取るまでの総所要時間を表します。

ジッターは、複数の計測結果のブレのことを言いましたが、「遅延」はまさに通信が往復するのにかかる時間のことです。

遅延のイメージ
遅延の主な要因は物理的な距離、ネットワークの混雑状況、中継するルーターやスイッチの数、および各装置での処理時間です。

理想的なNTP同期では遅延が小さく一定していることが望ましいとされています。

遅延が大きいと時刻同期の精度が低下する可能性があり、特に遅延が非対称(往路と復路で異なる)な場合に問題が生じやすくなります。

NTPプロトコルはこの遅延を測定し、往復時間の半分を片道の伝搬時間と仮定して時刻オフセットを計算します。

片道の計算
しかし、実際のネットワーク環境では往路と復路の遅延が非対称になることも多く、これが時刻同期の誤差の一因となります。

NTPデーモンは継続的に複数のサンプルを収集し、統計的手法を用いて遅延の影響を最小化しようとします。

また、NTP設定では地理的に近いサーバーを選択することで遅延を減らすことが推奨されます。

多くのシステムでは、LAN環境内の同期で数ミリ秒以下、インターネット経由の同期で数十から数百ミリ秒程度の遅延が一般的ですが、安定していることが精度よりも重要な場合が多いです。

時刻同期の品質を評価する際は、遅延の絶対値だけでなく、その安定性(変動の少なさ)も重要な判断基準となります。

ジッターと遅延の違い

NTPのジッターと遅延には明確な違いがあります。

遅延(delay)は、NTPクライアントとサーバー間の時刻情報交換にかかる往復時間そのものを指します。

これは単純に言えば、クライアントがサーバーにリクエストを送信してから応答を受け取るまでの時間です。

物理的な距離、ネットワークの経路、通信機器の処理時間などによって決まり、一般的に値が小さいほど時刻同期の精度が上がる可能性があります。

遅延は絶対的な時間の長さを表す指標です。
一方、ジッター(jitter)は遅延時間の変動や揺らぎを表す指標です。

連続するNTPパケットの遅延時間がどれだけばらついているかを示します。

例えば、ある時点での遅延が50ミリ秒、次の時点で45ミリ秒、その次に55ミリ秒と変化する場合、これらの値の標準偏差に相当する値がジッターとして計算されます。

ジッターはネットワークの安定性を反映し、値が小さいほど時刻源からの信号が安定していることを意味します。

重要な違いとして、遅延が大きくても安定(一定)していればジッターは小さくなります。

例えば、地理的に遠いサーバーでは常に100ミリ秒の遅延があるが、その値がほぼ変わらない場合、ジッターは小さいです。

逆に、比較的近いサーバーでも、ネットワークの混雑状況によって遅延が20ミリ秒から80ミリ秒まで頻繁に変動する場合は、ジッターが大きくなります。

NTPの同期アルゴリズムでは、時刻源を選択する際に遅延の絶対値よりもジッターの方が重視されることが多いです。

ジッターの重要性
安定性のあるサーバー(低ジッター)は、たとえ遅延が大きくても、変動が激しいサーバー(高ジッター)よりも信頼性が高いと判断されるためです。

ジッターと遅延の許容範囲

NTPにおけるジッターと遅延の許容範囲を過去の経験をもとに整理してみます。

独断と偏見のもと作成したものなので、参考程度としてください。

指標 評価区分 値の範囲 評価理由 適用環境
遅延
(Delay)
優れた環境
(Excellent)
1~10ミリ秒未満 物理的に近く、中間障害がほとんどなく、パケットの伝送時間が最小限のため、最も正確な時刻同期が可能 LAN環境、データセンター内部、直接接続された時刻源
良好
(Good)
10~50ミリ秒 短距離のネットワーク経路で、最小限のルーターホップ数のため、実用上十分な精度を確保できる 地域的に近いインターネットNTPサーバー、同一国内の接続
許容範囲
(Acceptable)
50~100ミリ秒 複数のネットワークを経由するが、まだ実用的な範囲内のため、一般的なシステムに十分対応できる 長距離ネットワーク接続、典型的なインターネットNTP接続
要注意
(Concerning)
100~300ミリ秒 経路が長く、複数のネットワークやプロバイダを経由するため、時刻同期の精度低下リスクが高まる 大陸間接続、混雑したネットワーク経路
問題あり
(Problematic)
300ミリ秒以上 極めて長い伝搬時間や経路問題の可能性が高く、非対称遅延による誤差も大きくなるため、精度の高い時刻同期が困難 衛星回線、著しく混雑したネットワーク、経路障害のある接続
ジッター
(Jitter)
優れた環境
(Excellent)
1ミリ秒未満 ネットワーク遅延の変動がほとんどなく、高い安定性と予測可能性により、極めて正確な時刻推定が可能 専用線、高品質なLAN、低負荷の直接接続
良好
(Good)
1~5ミリ秒 わずかな遅延変動はあるが、統計的処理で精度を維持できる範囲内で、安定した時刻同期が維持可能 安定した企業ネットワーク、良好なインターネット接続
許容範囲
(Acceptable)
5~10ミリ秒 変動はあるが予測可能な範囲内であり、NTPの統計アルゴリズムが適切に対応可能なレベル 標準的なインターネット接続、一般的なビジネス環境
要注意
(Concerning)
10~20ミリ秒 遅延の不安定性が顕著で、時刻源の信頼性評価が低下し、精度の高い同期が徐々に困難になる 混雑したネットワーク、変動の大きいインターネット接続
問題あり
(Problematic)
20ミリ秒以上 極めて大きな遅延変動により、正確な時刻オフセット計算が困難で、誤差の蓄積や不正確な同期が発生しやすい 不安定なワイヤレス接続、深刻な輻輳状態のネットワーク

まとめ

NTPではネットワークを使用した時刻同期になるため、どうしても誤差が出てしまいます。

この誤差を最小にするために使用するのが、遅延とジッターという評価値です。

この評価は構築後、ずっと変動し続けるものです。

例えば、システムが増えたことによるネットワーク帯域の圧迫、ネットワーク経路の変更、社内NTPサーバへの過負荷などの要素で変動していきます。

誤差が大きい状態は正確な時刻同期ができない状態となりますので、本来であれば定期的な計測と改善が必要となります。

ただ、このような運用を行っているシステムは限りなく少なく、また改善が必要となっても単一のシステムでは改善できないような内容ばかりです。

費用対効果的に実施されない運用というのが一般的かもしれません。

とはいえ、障害発生時などには必要となる知識です。

時刻同期に誤差が大きい環境においては、NTPサーバとの通信やジッターと遅延をまず確認する必要があります。

概念をしっかりと理解しておきましょう。