NTP
「Network Time Protocol」の略です。NTPは、複数のシステム間でコンピューターの時計を同期するために使われるプロトコルです。ローカルエリアネットワークとインターネットを介した同期に対応しています。
2つ以上のシステムのタイムスタンプを一致させるのは簡単な作業に思えるかもしれませんが、実際には複数の手順が必要です。すべてのネットワークにはある程度の遅延があるため、要求から応答までの遅延を考慮する必要があります。NTPはクライアントサーバーモデルを使用し、次の4つの値を使って往復遅延を計算します。
上記の1と2の間の時間に、3と4の間の時間を加えることで、往復遅延の合計を計算します。この遅延の半分を差し引くことで、リモートサーバーの正確な時刻を、通常は数ミリ秒以内の精度で推定できます。
ネットワークの状態によって、NTPのパケットの送信または受信にかかる時間が変わることがあるため、1回の要求では正確な結果が得られない場合があります。そのため、複数回NTP要求を送信し、遅延の平均を取って、より正確なタイムスタンプを得るのが一般的です。また、複数のコンピューター間でタイムスタンプの平均を取ることで、ネットワーク上のすべてのマシンで一貫した時刻を得ることもできます。複数の時計を同時に同期するとき、NTPはピアツーピアプロトコルとして使われ、各システムが時刻の供給元になります。
NTPの例
ネットワークタイムプロトコルは、さまざまな時刻同期ユーティリティーで使われており、WindowsやmacOSに組み込まれたツールもその一例です。Windowsでは、「日付と時刻」のコントロールパネルにある「インターネット時刻」機能がNTPを使ってタイムサーバーから現在の時刻を取得します。macOSでは、「日付と時刻」のシステム環境設定で「日付と時刻を自動的に設定」が選択されている場合、NTPを使って現在の時刻を取得します。WindowsとmacOSはいずれも、Simple Network Time Protocol(SNTP)と呼ばれるNTPの簡易版を使用しています。
知識をテストする
