NTPは正確な時刻を提供

待ち合わせに遅れないために、自分の時計を正確な時刻に合わせる必要があるように、ネットワークに接続されたパソコンやスマートフォンなどの通信端末にとっても、正確な時刻に合わせることは必要なことです。

単に時刻が不正確であることが、トラブルの原因となる可能性すら存在します。しかしコンピューターの内蔵時計の時刻を定期的に調整する通信規格として、提供されている「NTP( ネットワークタイムプロトコル)」を利用すれば問題は解決します。

もしも利用しているパソコンの設定を確認して、この規格を利用できる機能が無効になっていたら、すぐに有効にする必要があります。

NTPとは?

NTPとは、ネットワークを経由して、NTPサーバーから正確な時刻を受け取ることができる仕組みです。

世界中のコンピューターが、1台のサーバーに接続して時刻情報を取得したのでは、アクセスが集中してしまいますので、多数のサーバーが階層状に構成されています。

その最上位にあるサーバーが原子時計などから正確な時刻を取得して、下位のサーバーにその情報を伝達する形になっています。われわれの使用しているパソコンやスマートフォンなどの通信端末が、実際に時刻に関する情報を受け取る相手は、通信業者などが運営している下位のNTPサーバーとなります。

どれだけネットワークの通信速度が早くなっても、サーバーから情報が届くまでには、わずかな遅延が発生します。それでは、われわれの利用している端末で正確な時刻情報を取得できませんので、何らかの対応が必要になります。

そこで上位のNTPサーバーから時刻情報を受け取って、時刻を照会してきた各コンピューターのOSに時刻情報を渡すまでに発生する遅延を計測して、時刻の補正を行っています。

また下位のサーバーは、複数の上位サーバーから時刻を取得して、より精度の高い時刻を算出できるようになっています。

NTPの今後

現在の時刻を伝える際には、起点(1900年1月1日 0時0分0秒)から何秒経過しているかを、数値で表示したものをデータ化しています。

ところが、この数値は有限であり「42億9496万7295秒」までしか表現できません。そのため「2036年2月7日 6時28分15秒」までしか時刻を表示できませんので、次の「16秒」になると起点に戻ってしまいます。

これは「2036年問題」と呼ばれているものであり、正確な時刻表示を前提としているコンピューターのシステムに問題が発生することが確実視されています。

この問題に対しては、時刻を受け取るNTPサーバーさらにそこから時刻を取得する端末の側で、起点を「2036年2月7日6時28分16秒」と認識するようにプログラムを変更することによって対応できます。

また、この問題とは別に、一部のOS(UNIXの一部、C言語)を利用している端末においては類似した状況が発生する「2038年問題」と呼ばれているものがあります。

この問題は、すでに中間にあたる2004年1月10日以降に一部のシステムで発生しています。これは一部の金融機関においてATMの不具合を発生させる、という深刻なものでした。

このときは将来の日付を使用して計算を行うソフトウエアが「2038年1月19日3時14分7秒」を過ぎた時刻でデータを処理することによって、問題が発生したようです。

NTPとの付き合い

単なる時刻表示ですが、コンピューターにとっては、ちょうど人間にとっての心臓の鼓動と同じような意味を持っています。これほど社会の中枢に入り込んでいるコンピューターのシステムに、将来誤動作を起こす可能性のある問題の存在は全ての人が認識すべきです。

なぜなら、2036年には、現在よりもコンピューターに対する依存度が上がっていることが確実だからです。直前になって大騒ぎすることのないように、早めに対策を講じることが求められますが、これは地球規模で対応すべき問題となります。2036年には、果たしてどのような結末がわれわれを待っているでしょうか?