ICDロゴ

NTP (Network Time Protocol)

【エヌ・ティー・ピー】

最終更新日: 2005/02/01

 ネットワークで結ばれたコンピュータ同士で時刻を同期させるためのプロトコル。ネットワークを使って階層的に構築された時刻情報サーバを使い、多数のマシンに効率よく、精度の高い時刻情報を提供することができる。RFC1305で定義されている。

 多数のコンピュータが協調して動作する環境では、それぞれが持っている内蔵時計の時刻情報を正確に同期させておく必要がある。仮に各マシンが持っている時刻情報が異なっていると、例えば時間に同期して開始や終了するプログラムやサービスなどがマシンによっては正しく動かなかったり、ログファイルに記録された時刻がずれていて後で正しくログを検証できなくなったり、ファイルの時間などを比較して動作するプログラムが誤動作したりと(例:2つのファイルのうち、古いものを削除して新しいファイルの内容に統一するなど)、さまざまな不具合が起こる可能性がある。これを防ぐためには、1秒(たいていのファイル システムでは、ファイルの作成や更新、参照時間は1秒単位で記録されている)、ないしさらに高い精度で時刻情報(コンピュータの内蔵時計)を同期させなければならない。

 このような用途に利用できるのがNTPプロトコルである。NTPプロトコルでは、基準となる時刻情報を提供するNTPサーバをネットワーク上に何台か用意し、それらを基にして他のクライアントが自分の内蔵時計を同期させることによって、ネットワーク上のすべてのノードが同じ時刻を刻むようにする。NTPサーバは階層的に構築可能で、この場合、階層の最上位にあるNTPサーバをStratum 1のNTPサーバと呼ぶ(Stratumは「階層」という意味)。Stratum 1のサーバは、ほかのすべてのNTPサーバの基準となる重要なサーバであり、正確な時刻情報源(原子時計やGPS、無線電波などを使った基準となる時計)と同期して動作するように設定しなければならない。Stratum 1のサーバからNTPプロトコルで時刻情報をもらって動作するNTPサーバをStratum 2のサーバと呼び、さらにそれを基準にして動作するNTPサーバをStratum 3のサーバと呼ぶ。以下同様にして、最大15階層(Stratum 15)までNTPサーバを構築することができる。このような構成のため、階層が下へ行くほど時刻の精度が低くなる(上位の方が信頼性が高い)。ただし実際には、複数のNTPサーバからの情報を参照して(必ずしも上位だけでなく、同レベルにあるNTPサーバからの情報も参照する)、ネットワークが一時的に利用できなくなってもサービスが無効にならないようにしている。一般的には、インターネットのプロバイダがルートとなるNTPサーバを用意し、各組織ではそれをもとにして自組織のためのNTPサーバを用意する。そして組織内でも、地域ごとなどにさらにNTPサーバを複数用意し、NTPサーバ システムを階層的に構築する。

 NTPでは、ネットワークの通信の遅延時間やそのばらつきも考慮することにより、非常に高い精度(一般的には1msecとか、それ以下の誤差)で時刻を合わせることができる。ネットワークを使った通信では、利用するネットワーク媒体の特性やトラフィックの状況などに応じてパケットの到達時間がさまざまに変化するが、NTPでは他のサーバと通信する場合、その通信時間(時刻情報を要求してから、その応答が返ってくるまでの時間)やばらつき(分散)も考慮して、精度が低い場合(正確さが低いと判断された場合)は時刻同期の頻度を上げるなどの措置を行って、常に高い精度を保つようにしている。

Copyright (C) 2000-2007 Digital Advantage Corp.

関連用語

参考リンク

アイティメディアの提供サービス

キャリアアップ