全1493文字
PR

 NTP(Network Time Protocol)は、ネットワーク機器やネットワークに接続されたコンピューターが内蔵する時計を正しい時刻に同期するための通信プロトコルです。各機器が、インターネットで公開されているNTPサーバーに対して正しい時刻を要求し、NTPサーバーが正しい時刻を返します。機器側の時計がこの時刻に合わせることで、機器の時計が常に正確に保たれます。

 機器の時計が正確でないと、様々なトラブルの原因になります(PICT1)。

PICT1●それぞれの機器がNTPサーバーにアクセスして正しい時刻を得る
PICT1●それぞれの機器がNTPサーバーにアクセスして正しい時刻を得る
(イラスト:なかがわ みさこ)
[画像のクリックで拡大表示]

 例えば、通信しようとしている機器同士で時刻が合っていない場合は、通信できないことがあります。クライアントからサーバーにアクセスするときに、クライアントの時刻がサーバーの時刻とずれていると、不正アクセスと見なされて通信を拒否される可能性があるからです。

 また、ログに正しい時刻が記録されていないと、トラブルなどが発生した場合に調査が難しくなります。

通信の遅延の影響を考慮

 NTPはアプリケーション層(レイヤー7)のプロトコルです。UDPの123番ポートを利用します。最新のバージョンはNTPv4であり、NTPv4の仕様はRFC5905として公開されています。

 NTPの登場以前は、ネットワークによる時刻同期のプロトコルとして「Time Protocol」が使われていました。しかし、Time Protocolは通信時間による遅延の影響を考慮しません。このため、通信時間分の遅れが誤差として生じるという問題点がありました。

 そこでNTPでは、往復の通信時間を計測することで、遅延を補正しています。具体的には、パケットの往復にかかった時間からサーバーの処理時間を引き、それを半分にしたものを遅延時間と見なしています。この方法の欠点は、往路と復路の通信速度に極端な差がある場合、誤差が大きくなってしまうことです。