Skip to the content.

最終更新日:2026年8月14日

まず結論

NTP(Network Time Protocol)は、ネットワークを通してコンピュータの時刻を基準となるサーバの時刻に合わせるためのプロトコルです。

基本情報技術者試験では、4つの時刻から、

  1. 往復にかかった時間
  2. サーバ内部の処理時間
  3. 片道の伝送遅延
  4. 同じ瞬間におけるPCとサーバの時刻差

を順に求める問題が出ます。

一番大切なのは、

時計の進み・遅れは、同じ瞬間の時刻同士を比べる

という考え方です。

直感的な説明

PCがNTPサーバへ問い合わせを送っても、情報は一瞬では届きません。

PC
↓ 問合せ
NTPサーバ
↓ 応答
PC

この間には、

  • PCからサーバまでの伝送時間
  • サーバ内部で応答を作る時間
  • サーバからPCまでの伝送時間

があります。

そのため、

サーバが送信した時刻

PCが受信した時刻

をそのまま引き算しても、時計のずれは分かりません。

サーバからPCへ届くまでの時間を考慮し、

PCが応答を受け取った瞬間

のサーバ時刻を推定してから比較する必要があります。

定義・仕組み

NTPによる時刻合わせでは、次の4つの時刻を使います。

T1:PCが問合せを送信した時刻
T2:NTPサーバが問合せを受信した時刻
T3:NTPサーバが応答を送信した時刻
T4:PCが応答を受信した時刻

図にすると、次のようになります。

PC                              NTPサーバ

T1  問合せ送信
 | ----------------------------> |
                                  T2 問合せ受信
                                  |
                                  | サーバ処理
                                  |
                                  T3 応答送信
 | <---------------------------- |
T4  応答受信

FEでは、往路と復路の伝送遅延が同じと仮定して計算する問題がよくあります。

科目Aでどう出る?

ここでは、例として次の時刻が与えられたとします。

PCの問合せ送信時刻        1000 μs
NTPサーバの問合せ受信時刻 1300 μs
NTPサーバの応答送信時刻   1500 μs
PCの応答受信時刻          2200 μs

なお、往路と復路の伝送遅延は同じものとします。

① PC側で見た往復時間を求める

PCでは、

送信 1000
↓
受信 2200

なので、

2200 - 1000
= 1200 μs

です。

ただし、この1200μsには、サーバが内部で処理していた時間も含まれています。

② サーバ内部の処理時間を求める

NTPサーバでは、

受信 1300
↓
送信 1500

なので、

1500 - 1300
= 200 μs

です。

③ 往復の純粋な伝送時間を求める

PC側で見た1200μsから、サーバ内部の処理時間200μsを除きます。

1200 - 200
= 1000 μs

これが、問合せと応答を合わせた往復の伝送時間です。

④ 片道の伝送遅延を求める

往路と復路の遅延が同じなら、

1000 ÷ 2
= 500 μs

です。

つまり、サーバからPCへ応答が届くまでに500μsかかります。

⑤ PC受信時点でのサーバ時刻を求める

ここが最も重要です。

サーバが応答を送った瞬間の時刻は、

1500 μs

です。

そこからPCへ届くまでに500μsかかるので、PCが受信した瞬間には、サーバの時計も500μs進んでいるはずです。

1500 + 500
= 2000 μs

つまり、

PCが受信した瞬間のサーバ時刻
= 2000 μs

と推定できます。

⑥ 同じ瞬間のPCとサーバの時刻を比較する

PCが応答を受信した瞬間、

PCの時計       2200 μs
サーバの時計   2000 μs

です。

したがって、

2200 - 2000
= 200 μs

となります。

PCの時計の方が大きな時刻を示しているため、

PCの時計はNTPサーバより200μs進んでいる

と判断します。

なぜ「進んでいる」と分かる?

ここは計算よりも意味の理解が大切です。

同じ瞬間に、

正しい側の時計  2000
PCの時計        2200

を指しているとします。

PCの方が未来の時刻を示しているので、

PCの時計が先に進んでいる

という意味になります。

逆に、

サーバ 2000
PC     1800

なら、PCは200μs遅れています。

PC > サーバ
→ PCが進んでいる

PC < サーバ
→ PCが遅れている

と判断できます。

どんな場面で使う?

NTPは、複数のコンピュータの時刻をそろえるために使われます。

例えば、

  • サーバのログ時刻をそろえる
  • 複数システムの処理順序を正しく記録する
  • 認証やセキュリティ処理で時刻のずれを防ぐ
  • 分散システムでイベント発生時刻をそろえる

などです。

複数の機器で時計がずれていると、

どの処理が先に起きたのか

が分からなくなることがあります。

そのため、時刻同期はシステム運用で重要です。

よくある誤解・混同

サーバの送信時刻とPCの受信時刻を直接比べればよい?

違います。

サーバ送信
↓ 伝送時間
PC受信

なので、この2つは同じ瞬間ではありません。

サーバ送信時刻に伝送遅延を加えて、

PC受信時点のサーバ時刻

を求めてから比較します。

伝送遅延を補正した結果、PCが進むの?

違います。

伝送遅延の補正は、

同じ瞬間の時計同士を比較するため

に行います。

補正した結果、

PCの表示時刻 > サーバの推定時刻

ならPCが進んでいると判断します。

往復時間をそのまま2で割ればよい?

必ずしもそうではありません。

往復時間には、NTPサーバ内部で処理していた時間が含まれています。

そのため、

PC側の往復時間
-
サーバ内部の処理時間

を先に求めます。

その後、往路と復路の遅延が等しいという条件なら2で割ります。

時刻差の符号をどう見る?

同じ瞬間にそろえたあと、

PC時刻 - サーバ時刻

を考えます。

正
→ PCが進んでいる

負
→ PCが遅れている

と判断できます。

確認問題(基本情報技術者試験対策)

NTPによる時刻合わせで、次の4時刻が得られた。

PCの問合せ送信時刻        500 μs
NTPサーバの問合せ受信時刻 800 μs
NTPサーバの応答送信時刻   1000 μs
PCの応答受信時刻          1700 μs

問合せと応答の伝送遅延は等しいものとする。

PCの時計はNTPサーバの時計と比べてどのような状態か。

  • ア. 100μs進んでいる
  • イ. 200μs進んでいる
  • ウ. 100μs遅れている
  • エ. 200μs遅れている
▶ クリックして答えと解説を見る(ここを開く)

正解:イ

まず、PC側の往復時間は、

1700 - 500
= 1200 μs

です。

サーバ内部の処理時間は、

1000 - 800
= 200 μs

なので、往復の伝送時間は、

1200 - 200
= 1000 μs

です。

片道の伝送遅延は、

1000 ÷ 2
= 500 μs

となります。

サーバが応答を送信した時刻は1000μsなので、PCがその応答を受け取る瞬間のサーバ時刻は、

1000 + 500
= 1500 μs

です。

同じ瞬間にPCは1700μsを示しているため、

1700 - 1500
= 200 μs

となります。

PCの方が先の時刻を示しているので、PCの時計は200μs進んでいます。

まとめ(試験直前用)

  • NTPはネットワーク経由で時刻を同期するプロトコル
  • まずPC側の往復時間を求める
  • サーバ内部の処理時間を差し引く
  • 往路と復路の遅延が同じなら2で割って片道遅延を求める
  • サーバ送信時刻に片道遅延を加えて、PC受信時点のサーバ時刻を求める
  • 時計の進み・遅れは、同じ瞬間の時刻同士を比較する
  • PC時刻の方が大きければPCが進んでいる
  • PC時刻の方が小さければPCが遅れている

© 2024-2026 stemtazoo. All rights reserved.