ネットワークにつながる機器が正確な時刻を保持するために考えられたのは、世界中から参照され利用されている信頼度の高い正確な時刻をネットワークを経由して各機器がクライアントとなり参照する仕組みです。この仕組みを NTP のプロトコルが実現しています。
家庭でも PC だけではなく家電などあらゆるものがインターネットにつながる現在では、個々の機器が正確な時刻をもつことはデータの信頼性や正確性を保つためにますます重要になっています。
NTP の概要
NTP とは Network Time Protocol の略でネットワークにつながれた機器が正確な時刻を共有するために使われる OSI 参照モデルのレイヤー7のアプリケーション層の プロトコルです。NTPプロトコルを使ってネットワークを介して時刻を参照する側を「NTPクライアント」、参照される側を「NTPサーバー」と呼びます。
時刻を参照する機器が NTP サーバーから正確な時刻を受信し、さらに受信した時刻のわずかなずれを調整する機能も持っています。
時刻のずれとは、参照する機器間の通信にかかる時間や遅延のことで、NTP では参照した時刻を調整するために常にどれくらいの時刻のずれがあるかを把握し調整しています。また、NTPサーバーは複数のNTPサーバーと同期することでより正確性の高い時刻を取得します。
NTPで利用する協定世界時(UTC)
NTPサーバーと自身のもつ時刻を同期することを「時刻同期」と呼びます。
NTPは時刻同期に協定世界時(UTC)を基準にしています。日本における時刻は、協定世界時を9時間進めたもので、日本標準時(JST)と呼ばれます。また、UTC+9 のようにも表されます。
NTP が時刻同期をおこなう仕組み
時刻同期は原子時計や GPS の時刻を基準にして、その時刻を取得した NTPサーバーはさらにインターネット上にあるNTPサーバーから参照され時刻を共有する仕組みになっています。サーバーの処理を分散するために、NTPサーバ同士が時刻同期を行いながら階層的に連なる構造になっています。
各階層は stratum と呼ばれ、最上位の原子時計や GPS を stratum 0 として、stratum 1 の NTP サーバーから下位の層になるごとに+1されている仕組みです。最下層は16でこれ以上は同期できません。そのため、NTP サーバーとなりえるのは stratum 15 までとなります。
NTP サーバーと NTP クライアント
NTP サーバーは、下位層の NTP サーバーや端末機器類から時刻を参照されますが、同時に自身もNTPクライアントになり、上位のNTP サーバーを参照できます。
NTPクライアントでは、NTPサーバーから受信した時刻に通信にかかった時間を算出して調整しています。サーバーが処理にかかった時間や受信するまでにかかった時間から算出した精度の高い時刻を適応します。
一般的に使用されるNTP サーバー
一般的なPCでも普段から意識はしていなくてもNTPクライアントになり、NTP サーバーを利用しています。Windows の OS では、NTP サーバーは「time.windows.com」がデフォルトの設定になっています。この設定は OS の設定から変更も可能です。
公開されている NTP サーバーは、インターネットで 検索すると探すことができますが、一般的なPCなどへ設定する場合は、自身のプロバイダーが提供している NTP サーバーがあればそれを設定した方が良い場合もあります。
NTP サーバーはアクセスの集中による処理の負荷や、ネットワーク的な距離が離れるほど通信時間や遅延のばらつきなどの影響が大きくなるので、 ある程度のネットワーク規模をもつ企業などでは、 自社用にも NTP サーバーを用意し、内部機器の時刻を管理することもよくあります。
参考リンク
NTPの時刻自動取得を設定する – Cisco ネットワーク機器
コメント