ミリ秒を扱えるNTP/SNTPになぜ2036年問題が発生するのか

NTPには2036年問題があるらしい(実際には読み替えて対応)
ミリ秒が扱えるNTPに32bitの2036年問題がなぜ関係するのか

NTP の Timestamp 部分 (8バイト=64bit)
上位32ビット = 秒(1900-01-01~) ←こっちが該当
下位32ビット = 秒未満

上位32ビットは UnixTime (こちらは1970年始まり)のように1秒毎に1カウントしているため、2036年中に4GB(2^32)を超えてしまいます
(1968年に最上位ビットを1へ変更しているようなので、当初は符号付き?)

2036年の上限に達した後は、0に戻して136年毎で使い回すようです

コメント