NTP 【Network Time Protocol】 ネットワークタイムプロトコル
概要
NTP(Network Time Protocol)とは、IPネットワークを通じて現在時刻の情報を送受信するプロトコル(通信規約)の一つ。時刻情報を配信するサーバと時刻合わせを行うクライアントの間、および、サーバ間の通信方法を定めている。NTPはコンピュータ間で時刻情報をやり取りし、現在時刻を配信するサーバからクライアントが時刻情報を取得して内蔵時計の補正を行う仕組みを提供する。通信時の遅延を計測して補正するメカニズムも定められている。標準のポート番号としてUDPの123番を使用する。
インターネット上には、時報のように現在時刻を配信する「NTPサーバ」(タイムサーバ)がいくつも公開・運用されている。パソコンやスマートフォンなどで動作するNTPクライアントは、指定されたサーバから時刻情報を取得し、内部の時計(RTC)を正しい時刻に調整することができる。
NTPにはこのようなクライアント-サーバ間の通信の他に、時刻サーバ間で時刻情報を調整したり、上位サーバから下位サーバへの階層構造を構成・管理する機能なども定義している。同期されたサーバ群を運用することで、特定の時刻サーバに負荷が集中しないよう考慮されている。
なお、クライアントからサーバへの時刻の問い合わせには、その用途に機能を限定したサブセットである「SNTP」(Simple NTP)が主に利用されてきたが、2010年のNTPv4でNTP本体に統合され、独立したプロトコルとしては廃止された。
公開NTPサーバ
インターネット上には誰でも自由に接続して時刻合わせができる公開NTPサーバが多数存在する。また、米マイクロソフト(Microsoft)社が運用する「time.windows.com」をWindowsが標準的に参照するように、顧客向けサービスの一環などとしてNTPを公開する例も見られる。
日本では、日本標準時を決定するNICT(情報通信研究機構)が「ntp.nict.jp」という公開サーバを、ネットインフラ事業大手のインターネットマルチフィード株式会社が「ntp.jst.mfeed.ad.jp」(ntpの部分はntp1、ntp2、ntp3も指定可能)という公開サーバを運用しており、広く利用されている。
NTPサーバの階層構造
NTPサーバ群は「Stratum」(ストラタム)と呼ばれる階層構造を形成しており、最上位から順に「Stratum 1」「Stratum 2」のように呼ぶ。最大で15階層(Stratum 15)まで階層を設定することができる。
最上位のStratum 1は原子時計や電波時計、特殊なGPS受信機など、何らかの時刻源(便宜上「Stratum 0」と呼ぶことがある)となる機器に直結されている。安定的に運用するため一般には公開せず、限られた下位サーバにのみ時刻情報を提供するように設定されることが多い。
Stratum 2以下のサーバは自らは時刻源を持たず、上位階層のサーバからNTPで時刻データを受信して自らの時刻を正確に維持する。Stratum 3や4など、より下位のサーバへ時刻を提供し、クライアントからの問い合わせにも応答する。インターネット上の公開NTPサーバの多くは、こうした下位Stratumのサーバである。