ネットワークを利用して時刻情報を受け渡す通信プロトコルで、代表的なもの。ポートは123/udpを使用する。
コンピュータ内蔵の時計は、精度はさほど高くない。このため使用しているうちに必ず時刻がずれてくる。従って定期的に時刻合わせを行なう必要があるが、人手で行なうと手間が掛かり、また誤差も出る。
そこでネットワークを利用し、自動的に時刻合わせを行なう仕組みを提供するプロトコルが様々に作られ、そのうちの一つがNTPである。
NTPバージョン3がRFC 1305
で規定される。
そこで、現在ではSNTPv4などのRFCにより対応案が提案されている。
秒数は32ビット無符号の数値であるので、この最上位ビットを見て判断する。これを著している現時点の日時を表わすには最上位ビットが立った状態である。
最上位ビットが0つまり立っていない最後の年は1968(昭和43)年である。
さて、NTPが送信するのは「現在日時」であるので、これ以前が表現できなくても何の問題もない。そこで、次のようにする。
今のうちから、このように実装を改めれば、特段大きな問題にはならないと考えられる。
この解決方法は同時に2104年問題を含むことになるが、この年が近付いた頃に同様の対応をすることで、問題なくクリアできるものと考えられている。
NTPは便利なものだが、外部から123/udpに侵入され不正な時刻が設定されるというセキュリティ上の問題もある。
例えばKerberos等の時刻を基準としたチャレンジ&レスポンス型のパスワードを利用する機構の場合、時刻を変更されることで同じチャレンジが再び使われる可能性がある。