NTPサーバとは
NTPサーバとは、インターネット上で現在時刻を送信するサーバのことです。
NTP (Network Time Protocol) は、ネットワーク上のサーバ間で時刻データを取得・補正したり、クライアントのPCに正確な現在時刻を提供したりするプロトコルを指します。PCやルータなどのネットワーク機器は、このプロトコルを利用してNTPサーバから現在時刻を取得します。
仮にNTPサーバを利用せずネットワーク機器が通信を行った場合、互いの時刻のずれによりトラブルを引き起こす可能性があるからです。現在、NTPサーバは原子時計を基準として極めて高精度の時刻を提供しています。
NTPサーバの使用用途
NTPサーバは先述の通り、あらゆるPCやネットワーク機器が利用しています。家庭用PCやオフィスPCもNTPサーバより時刻を取得します。
また、NTPサーバはさまざまな法人で利用されます。NTPサーバの具体的な法人における使用用途は以下の通りです。
- 国立大学、私立大学
- 大手通信プロバイダ
- 大手企業
- 国立天文台などの天体観測場所
- 情報関係の独立行政法人
NTPサーバの原理
従来1秒の定義は地球の自転速度を基に決めていましたが、現在ではセシウムを用いた電子時計により定義されています。概略するとセシウム133の原子が、2点間で放射する周期を1秒と定めています。
現時点で最大精度である秒の測定方法です。国際単位系 (SI) における基本単位として定義されています。日本の場合は、NICT (国立研究開発法人情報通信研究機構) の保有するものを標準として使われています。
NTPの階層構造
NTPは負荷分散の目的から階層構造となっており、これをStratum (ストラタム) と呼ばれます。Stratumは0から順次採番され、数字が大きいほど大元のNTPサーバから離れて誤差が大きいという関係にあります。
Stratum0は原子時計で、Stratum1はNICTのNTPサーバです。Stratum1では原子時計から取得した高精度時刻を使ってサーバ上で刻時した時刻に補正をかけて運用しています。
Stratum1であるNTPサーバは、100万リクエスト/秒以上の処理能力を有し、現状は日本中からアクセスしても問題ありません。ただし、Stratum1にアクセスが集中して正常な処理が行われなくなる可能性が危惧されています。
これを回避するために、Stratum2以降を階層として設定して運用中ですが、Stratum2以降階層が下がるたびに微少な誤差が蓄積されるのが懸念点です。そのため、階層が下にいくほど誤差が大きくなります。
NTPサーバのその他情報
1. NTPサーバと水晶振動子
正確な時刻を刻む素子として、従来からあるのが水晶振動子です。この素子に電圧を加えると一定周期の振動が得られます。この振動を利用してPCのハードウェアボードは時刻を刻みます。
ただし、水晶振動子は100万秒あたり1回のずれが生じます。コンピュータ間の通信は互いの時刻データで同期を取りながら動作するため、このような誤差は問題となります。
そこで、より正確な時刻を維持管理するNTPサーバが使われるようになりました。NTPサーバは原子時計から正確な時刻を取得し、このデータをネットワーク機器に提供します。この仕組みにより各PCが正確な時刻を取得し、それぞれの処理を高精度に実行することが可能となりました。
2. 主要なPublic NTPサーバ
多数の公的機関がNTPサーバを一般公開しています。ユーザーはこれらのNTPサーバを自由に利用することが可能です。このように、一般公開されているNTPサーバをPublic NTPサーバと呼びます。
もっとも有名なPublic NTPサーバは、NICTが運営するPublic NTPサーバです。NTPサーバのアドレスは”ntp.nict.jp”となります。CDNサービスを提供する会社として知られるCloudflare社もPublic NTPサーバを提供しています。Cloudflare社は東京と大阪にサーバを設置しており、通信も低遅延で行うことができます。NTPサーバのアドレスは”time.cloudflare.com”です。
GoogleもPublic NTPサーバを提供しています。Googleが自社で保有する原子時計を基に時間設定を行っており、精度に問題はありません。NTPサーバのアドレスは”time.google.com”です。
3. NTPサーバの設定方法
NTPサーバの利用には設定作業が必要ですが、容易に行うことが可能です。設定方法はOSによって異なりますが、Windowsでは以下のように行います。
- コントロールパネルから「日付と時刻」を選択
- その中にある「インターネット時刻」のタブを選択
- 「サーバ」欄に利用するNTPサーバのアドレスを設定
OSの時刻表示が不正確である場合、NTPサーバの設定に失敗した可能性があります。NTPサーバの設定を変更することで、時刻表示が正確になります。
参考文献
https://www.idcf.jp/words/ntp.html
https://liginc.co.jp/464201
https://jjy.nict.go.jp/ntp
https://www.gigabile.com/