Network Time Protocol
1985年、NTPバージョン0(NTPv0)がファズボールとUNIXの両方に実装され、NTPパケットヘッダとラウンドトリップ遅延とオフセットの計算がRFC 958で文書化された。当時は比較的遅いコンピュータとネットワークしか利用できなかったにもかかわらず、大西洋のスパニングリンクでは通常100ミリ秒以上、イーサネットネットワークでは数十ミリ秒の精度が得られた。
1988年、NTPv1プロトコルのより完全な仕様と関連アルゴリズムがRFC 1059で公開された。この仕様は、実験結果とRFC 956で文書化されたクロックフィルタアルゴリズムに基づいており、クライアントサーバモードとピアツーピアモードを記述した最初のバージョンだった。1991年、NTPv1のアーキテクチャ、プロトコル、アルゴリズムについてのデイヴィッド・L・ミルズの論文がIEEE Transactions on Communications(英語版)に掲載され、エンジニアのコミュニティ内で広く注目を集めた。
1989年にRFC 1119が発行された。このRFCでは、状態機械を用いてNTPv2を定義し、その動作を記述するための疑似コードが含まれている。
Windows NTではSMBプロトコルを使ったnet timeコマンドによる時刻同期が可能であったが、これはNTPではなかった。またそれ以前のWindowsでは、サードパーティーのソフトウェアを使用する必要があり、日本では、Windowsが本格的にインターネット対応を開始した1990年代後半に「桜時計」と呼ばれる、サードパーティーによるNTPの実装が有名になった。
Windows 2000以降のWindowsには、コンピュータの時計をNTP サーバに同期させる機能を持つWindows Timeサービス (W32Time)が含まれている。W32Timeは元々ケルベロス認証バージョン5のために実装されたものである。ケルベロス認証では、反射攻撃への対抗として、タイムスタンプに含まれる時間が正確な時間から5分以内である必要があった。
Windows 2000とWindows XPではSNTPのみを実装しており、NTPバージョン3に対してはいくつかの規約に違反している。Windows Server 2003とWindows Vistaからは、フルセットのNTPに準拠した実装となり、GUIで時刻同期を設定することができるようになった。また、有志によってビルドされたWindows向けのntpd/ntpdateも公開されている。
マイクロソフトは、W32Timeは1秒の精度でしか時刻同期を確実に維持できないと声明している。より高い精度が必要な場合は、Windowsの新しいバージョンを使用するか、別のNTP実装を使用することを勧めている。Windows 10とWindows Server 2016では、特定の動作条件の下で1ミリ秒の時間精度の同期に対応している。