2036年問題Part2 1999.11.22
 以前のコラムで「MSさんちの2036年問題」としましたが インターネットで使用されているNTPプロトコルにも同様な 問題がありました。
 NTPプロトコルはインターネット機器間で 時間の同期を合せる為に広く用いられていますが、これにも 2036年問題がありました。

 NTPプロトコルは64ビット幅で時間を表し、上位32ビットが 1900年1月1日からの経過秒を表します。
 これで行くとMSさんと同様に2036年2月7日6時28分16秒に 桁あふれがでます。
 MSさんちのCランタイムはここから取ってきたようです。

 この問題に対して、インターネット界はどう考えているかというと、 この仕様を定義?しているRFC2030では、先ほどの上位32ビットを 1ビットの状態ビットと31ビットの経過秒に分けて対応するようです。
 すなわち、状態ビットが'1'の場合は現在の経過秒が1968年から 2036年の間に有ることを示し、'0'の場合の2036年以降にある事を 示します。この方法だと、2104年までは対処できます。
 でも、この方法では約68年毎に状態ビットの状態で判別しなければ ならず、その度にアプリ側の修正が必要になります。

  根本対策には経過秒の桁数を増やすしかなさそうですね。
ご意見ご感想は webmaster@itofamily.com まで
written by i