あなたのパソコンやスマホの時計は、どうやって正確な時間を表示しているのでしょうか?
実は裏側で「NTP」という仕組みが静かに働いています。
時計がズレていると、ログの時刻が突き合わせられなくなったり、ログインが弾かれたり、共有フォルダに入れなくなったりします。
この記事では、私たちの生活を支えている「NTP(Network Time Protocol)」について、専門知識がなくても理解できるように解説します。
| 項目 | 説明 |
|---|---|
| プロトコル名 | NTP(Network Time Protocol) ネットワーク時刻同期プロトコル |
| トランスポート層 | UDP |
| ポート番号 | 123番 |
| 説明 | ネットワーク上のコンピュータが時刻同期するためのプロトコル |
目次
NTPとは?

NTPを簡単に説明すると次の通り。
ネットワーク上のコンピュータが時刻同期するためのプロトコル
NTPは、時刻を合わせるNTPクライアントと、正確な時刻を保持するNTPサーバが通信する時に利用するプロトコルです。
通信には UDP の 123番ポート を使います。応答の速さが命なので、確実さより速さを優先するUDPが選ばれています。ファイアウォールでこの番号が塞がれていると、時刻が永久に合いません。
NTPを使った時刻同期は次の手順で行われます。
- NTPクライアントがNTPサーバに対して、現在のクライアントの時刻を書き込んだパケットを送信します。
- パケットを受け取ったNTPサーバは受け取った時刻と返信する時刻をパケットに書き加えて返信します。
- NTPクライアントはこの返信パケットを受け取った時刻と、パケットに書き込まれた時刻を元に、正しい時刻を計算します。
設定すべき正しい時刻は、「パケットが往復にかかった時間」を2で割り、NTPサーバから受け取った時刻に加えることで求められます。
設定すべき正しい時刻 =(パケットが往復にかかった時間 ÷ 2)+ NTPサーバから受け取った時刻
NTPはこのようにしてパケットのやり取りの際の遅延を調整しています。
NTPの詳細はこちらのサイトが参考になります。
NTPがなぜ必要なの?

ネットワークでサービスを提供しているサーバーにとって時刻は重要です。
メールやSNSメッセージの時刻、オンラインゲームの時刻がずれている状況をイメージするとわかりやすいのではないでしょうか?
そうならないように、インターネット上のサーバーは正しい時刻にあわせる必要があり、その「時刻同期」に使われるのがNTPという通信プロトコルです。
取得した時刻は、すぐには適用されない

しかし、NTPで取得した時刻はすぐに適用するわけではありません。
例えば、サーバではバックアップ処理を時刻で起動することがありますが、NTPにより時刻が数分とんでしまうと、処理が起動されないままスキップされてしまいます。
そうのような事態を避けるため、コンピュータのクロックを早くしたり遅くしたりして少しずつ正しい時刻にあわせるようなしくみがあります。
NTPの仕組み:Stratum(階層)で負荷を分散する

NTPサーバーは、負荷を分散するため「Stratum」(ストラタム)と呼ばれる階層構造になっています。
階層のいちばん上は、Stratum 0 と呼ばれる基準になる時計そのものです。セシウム原子時計や、GPS衛星から時刻を受け取る装置がこれにあたります。上の図でいちばん上に描かれている原子時計・人工衛星が Stratum 0 です。
その基準時計に直接つながっているNTPサーバが Stratum 1、Stratum 1 を見に行くサーバが Stratum 2 …と、基準から遠ざかるほど数字が増えます。数字が小さいほど信頼できる、と読めばよいということです。
基準になるセシウム原子時計は、1億年に1秒しかずれないと言われるほど精密なものです。
NTPを簡略化したSNTP

NTPを簡略化したSNTP(Simple Network Time Protocol)というプロトコルもあります。
簡略化といっても別物ではありません。NTPの仕様書である RFC 5905 は、SNTPをNTPの一部(サブセット)と位置づけ、両者は完全に混在させて使えるとしています。パケットの形も Stratum の考え方もそのままです。
省かれているのは、複数のサーバを見比べて怪しい答えを除くといった精度を高めるための計算です。上位サーバを1台しか見ないパソコンや家電では、そこまでの精度は要らないためSNTPで足ります。
NTPサーバはどこがおすすめ?

おすすめのNTPサーバは「ntp.nict.jp」です。
「ntp.nict.jp」は情報通信研究機構が管理している、日本標準時に直結した時刻サーバです。
本サービスでは、NICTで独自開発した インターネット用時刻同期サーバーを用いています。
引用:日本標準時グループ -公開NTP
時刻サーバはNICT内に設置され、 日本標準時に直結しています(stratum 1)。
その時刻精度は日本標準時と10ナノ秒以内、 処理能力は毎秒100万リクエスト以上の性能を有しています。
公開されているNTPサーバは、誰でも自由に叩いてよいわけではありません。NICTは、1時間平均で20回(1日の合計が480回)を超えないようにと案内しています(それ以上が必要なら事前連絡)。
パソコン1台なら気にする必要はありません。気をつけるのは、社内の何十台もが直接NICTを見に行く設定にしてしまうときです。その場合は社内に1台NTPサーバを立て、そこだけがNICTを見るようにします。
NTPサーバ名に「ntp.nict.jp」を設定することで利用可能です。
WindowsでNTPサーバを設定する方法

Windowsでは、デフォルトのNTPサーバに「time.windows.com」が設定されています。
⚠ 以下の画面は Windows 10 のものです。Windows 11 では「設定」の項目名と並びが変わっています。Windows キー + R を押して timedate.cpl と入力すれば、STEP4 の「日付と時刻」ダイアログを直接開けます(Windows 10 / 11 共通)。設定アプリをたどるより確実です。
変更する場合は下記の手順で変更が可能です。
- STEP
Windowsのスタートをクリックし設定アイコン(歯車マーク)をクリックします。

- STEP
「時刻と言語」をクリックします。

- STEP
「関連設定」の「別のタイムゾーンの時計を追加する」をクリックします。

- STEP
「日付と時刻」ダイアログの「インターネット時刻」をクリックし「設定の変更」をクリックします。

- STEP
サーバー欄にNTPサーバー名を入力し「OK」をクリックします。
デフォルトで「time.windows.com」が設定されています。

NTPサーバに「ntp.nict.jp」を使用する場合は次のように入力します。

「OK」をクリックすると設定完了です。
NTPまとめ
この記事では「NTPについて簡単に知りたい!」というネットワーク初心者の方のために、NTPとは何なのか、イメージでつかめるようわかりやすく説明しました。
要点は3つです。
- NTPはネットワーク越しに時刻を合わせるためのプロトコル
- サーバは Stratum という階層になっていて、上位ほど正確
- 日本で使うなら ntp.nict.jp(情報通信研究機構・日本標準時に直結)
ネットワーク上のコンピュータが時刻同期するためのプロトコル




