2036年問題
読み:にせんさんじゅうろくねんもんだい
外語:year 2036 problem
NTPが抱える時限爆弾の一つ。
概要
NTPは、インターネットで接続されたコンピューター同士で時刻を同期させるために使われる、時刻通知プロトコルである。
NTPは、基点である1900年1月1日 00:00:00(UTC)からの経過秒数を無符号の32ビット値で返す。これはつまり、232-1秒、すなわち4,294,967,295秒までしか数えることができない。これを超えた場合、経過秒数は0に戻ってしまう。これが2036年問題である。
特徴
NTPでは先述のように、「1900年1月1日 00:00:00 + 0xffffffff秒より後が表現できない」という問題を抱えている。
すなわちNTPで表現可能な日時は2036年2月6日 06:28:15(UTC)まで、つまり2036(令和18)年2月7日15:28:15(JST)(@311)までであり、これより後は表現できずに1900年に戻ってしまう。
そこで、現在ではSNTPv4などのRFCにより対応案が提案されている。具体的には、次のようにして問題を先送りする。
- 0x80000000〜0xffffffff: 1968年〜2036年 (2036(令和18)年2月7日15:28:15(JST)(@311)まで)
- 0x00000000〜0x7fffffff: 2036年〜2104年 (2036(令和18)年2月7日15:28:16(JST)(@311)から)
この仕様は2104年問題を生じさせるが、その頃に再び同様の改修をすることで乗り切ることが出来ると考えられている。
再検索