情報処理安全確保支援士 2022年 春期 午前2 問19
問題文
インターネットに接続されたPCの時刻合わせに使用されるプロトコルはどれか。
選択肢
ア:NNTP
イ:RTCP
ウ:SNTP(正解)
エ:TFTP
🔒 解説は解答すると表示されます
時刻同期プロトコル【午前2解説】
正解の理由
インターネットに接続されたPCの時刻合わせに用いられるのは、簡易なNTP実装であるSNTPです。選択肢のうちウはSNTP(Simple Network Time Protocol)で、UDPのポート123を使って時刻情報を配布し、PCや組込み機器のシステム時計を同期する目的に設計されています。SNTPはクライアント側で時刻取得と単純な補正を行うため、一般的なPCの時刻合わせに十分であり、実務上の正解はウになります。
RTCP(選択肢イ)については、RTCPのSender ReportにはNTPタイムスタンプが含まれており、RTPストリーム間のメディア同期やRTP時刻と実時計(wall-clock)の対応付けに使われます。しかしRTCPはメディア同期や品質管理を主目的とするプロトコルであり、PCのシステム時計をネットワーク上で一般的に合わせるためのプロトコルではありません。したがって時刻合わせ用途としては不適切です。
解法ステップ
- 問題文の目的語を確認:「PCの時刻合わせ」→ 時刻同期プロトコルを探す。
- 各選択肢の用途を思い出す
- NNTP:ニュース配信(Usenet)
- RTCP:RTP関連の制御/統計(メディア同期にNTPタイムスタンプ含むがシステム時刻設定用途ではない)
- SNTP:時刻同期(簡易NTP)
- TFTP:単純なファイル転送(ブートやファーム更新)
- 時刻合わせに直接使われるのはSNTP系であると判定 → ウ を選択。
選択肢別の誤答解説
-
ア: NNTP
NNTPはNetwork News Transfer Protocolで、ニュース記事の配布・取得に使われます。時刻同期には関係ありません。 -
イ: RTCP
RTCPはRTPの制御プロトコルで、Sender ReportにNTPタイムスタンプを含みます。これにより音声と映像などのメディアストリーム間での同期(メディア同期)や、RTP時刻と実時計との対応付けが可能です。しかしRTCPはメディア同期や品質情報の交換が主目的であり、PCのシステムクロックをネットワーク的に合わせるための汎用時刻同期プロトコルではありません。システム時刻合わせの用途で正解となるのはSNTPです。 -
ウ: SNTP
SNTPはSimple Network Time Protocolで、NTPの簡易実装です。クライアントがNTPサーバから時刻を取得してシステムクロックを合わせる典型的な方法であり、PCの時刻合わせ用途に適しています(UDP ポート123を使用)。 -
エ: TFTP
TFTPはTrivial File Transfer Protocolで、軽量なファイル転送に使われます。ネットワークブートやファームウェア転送でよく使われますが、時刻同期には使いません。
よくある誤解
-
「RTCPにもNTPが含まれるからPCの時計合わせに使える」
RTCPのSender ReportはNTPタイムスタンプを含み、メディア同期に利用できますが、システム全体の時計を合わせるためのプロトコル設計ではありません。用途が異なります。 -
「SNTPとNTPは同じだから区別不要」
機能面で重なる点はありますが、NTPは高度な時刻補正アルゴリズム(フィルタリング、選択、ルーティングなど)を備え、長期的・高精度同期向けです。SNTPはリソース制約のあるクライアントでの簡易同期向けで、両者の使い分けを理解しておく必要があります。 -
「TFTP(Trivial)が『時刻』に関係ありそう」
"Trivial"は「簡素な」の意味で、時刻とは無関係です。混同しないようにしてください。
補足コラム
- ポート番号と実装例:NTP/SNTPはUDP 123を使用します。一般的なOSでは、Linuxではntpdやchrony、WindowsではWindows Timeサービス(w32time)などが時刻同期機能を提供します。多くのクライアントは軽量なSNTP互換の実装で十分な精度を得られますが、金融業など高精度が必要な場面ではフルNTPやGPS等の外部参照が使われます。
- 精度の目安:インターネット上の標準的なNTPサーバ利用時は、遅延や経路変動にもよりますがミリ秒〜数十ミリ秒の精度が得られることが多いです。SNTPは実装やネットワーク環境によりばらつきがあります。
- 実用例(PythonでNTPサーバから時刻を問い合わせる):
import ntplib
from time import ctime
c = ntplib.NTPClient()
resp = c.request('pool.ntp.org', version=4)
print('NTP time:', ctime(resp.tx_time))
FAQ
Q. SNTPとNTP、どちらを学べばよいですか?
A. 基本概念は共通なのでSNTPで用途を押さえ、より高精度・堅牢性が必要な場面ではNTPの詳細(選択アルゴリズムや階層構造)を学ぶと良いです。
A. 基本概念は共通なのでSNTPで用途を押さえ、より高精度・堅牢性が必要な場面ではNTPの詳細(選択アルゴリズムや階層構造)を学ぶと良いです。
Q. Windowsの時刻同期はSNTPですか?
A. Windows Timeサービスは歴史的にSNTP互換の簡易実装でしたが、現行の設定ではNTP互換モードで動作させることも可能です。実装差には注意してください。
A. Windows Timeサービスは歴史的にSNTP互換の簡易実装でしたが、現行の設定ではNTP互換モードで動作させることも可能です。実装差には注意してください。
Q. RTCPのNTPタイムスタンプは何に使うのですか?
A. 音声と映像など異なるRTPストリームを同期するため、RTPタイムスタンプと実時間(NTP)を対応付ける目的で使います。システム時計の全体同期には用いません。
A. 音声と映像など異なるRTPストリームを同期するため、RTPタイムスタンプと実時間(NTP)を対応付ける目的で使います。システム時計の全体同期には用いません。
関連キーワード: SNTP、NTP、時刻同期、UDP 123、RTCP、RTP、TFTP、NNTP、時刻精度、ntpd

\ せっかくなら /
情報処理安全確保支援士を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

