NTPについて、資料を読みつつざっくりまとめた
NTPとは
- NTP(Network Time Protocol)
- ネットワークを通じて正しい現在時刻を取得するためのプロトコル
- NTPを使って時刻同期を行うことで、出力するログの時間を正確に記録したり、サービスを正しく動作させることができる
時刻同期処理の流れ
- 基本的な流れはNTPクライアントがNTPサーバに対して問い合わせ、結果を取得する
- 時刻同期処理の流れ
-
- クライアントが問い合わせ
- [NTP Client] ---> [NTP Server]
-
- サーバが応答
- [NTP Client] <--- [NTP Server]
-
- クライアントが時刻同期
- [NTP Client]
-
NTPの階層構造
- NTPサーバは階層構造を形成しており、この階層構造をstratumと呼ぶ
- stratum1が最上位で、階層を下るごとに数字が増える
- 最上位のNTPサーバは原子時計やGPSを使って、自らの時刻を正確に調整できる特殊な構成になっている
- 下位のNTPサーバは上位のNTPサーバを参照して時刻同期を行う、という構造になっている。最下層はstratum15で、それ以下は存在しないらしい
NTPサーバ提供元について
- NTPサーバを提供しているのはどんなとこだろうと思い少しだけ調べた
- 独立行政法人情報通信研究機構(NICT)
- 福岡大学
- JPNAP
- ...など。どういう背景があって提供しているのかはわからない。
通信遅延を考慮した時刻同期
- NTPはネットワークを介して時刻情報を取得して同期する仕組みになっているので、ネットワーク遅延が発生する
- そのため、取得した時刻をそのまま自身の時刻として同期するのではなく、遅延を計算して時刻同期を行う
その他
- NTPは時刻を取得するクライアント機能と、提供するクライアント機能の2つの機能を持っている。ほとんどのサーバは取得する機能のみを使うことになる。
- NTPは123番ポートを使う(ウェルノウンポートの1つ)