広告
広告
https://www.7key.jp/nw/technology/protocol/ntp.html#what
ネットワークタイムプロトコルの略で、分散した多数の端末間でネットワークを使用して時刻を同期させるために使うプロトコルです。通常UDP/IP(ポート123番)を使いますが、同じ番号のTCPポートも確保されています。
NTPサーバはネットワークを使い階層的に構築することができ、階層の最上位にあたるNTPサーバをStratum 1のNTPサーバと呼びます。Stratum 1のNTPサーバは参照リソース、つまり原子時計やGPS、無線電波などの精確なクロック発信源(Stratum 0)と直接同期を取り、常に精確な時刻を把握しなければなりません。そして、Stratum 1のNTPサーバが持つ精確な時刻を基にして他のNTPクライアントが自身の内蔵時計を同期させることによって、ネットワーク上のすべての端末が同じ時刻を刻むことができます。また、Stratum 1のNTPサーバからNTPで時刻情報を取得し動作するNTPサーバをStratum 2のNTPサーバと呼び、さらにそれを基準にして動作するNTPサーバをStratum 3のNTPサーバ、以下同様にして最大15階層までNTPサーバを構築することができます。もちろん、階層が下へいけばいくほど精度は低くなるのですが、実際には複数のNTPサーバからの情報を参照してネットワークが一時的に利用できない場合にもサービスが無効とならないよう考えられています。
NTPクライアントではNTPサーバとネットワークを介して通信をする際の遅延時間(時刻情報を要求してからその応答が返ってくるまでの時間)やそのばらつきを継続的に計測し、受け取った時刻情報を補正して自動的にミリ秒単位の制度で設定を行うことにより、非常に高い精度で時刻の同期を取ることができます。また、その精確さが低いと判断された場合は時刻同期の頻度を上げるなどの方法によって精度の改善をします。NTP3の中で主要な時間値は、参照クロックからの相対値である次の3つです。
https://www.7key.jp/nw/technology/protocol/ntp.html#work
NTPクライアントはNTPメッセージを上位サーバ(同じ階層のサーバと同期を取る場合もある)に送信します。NTPサーバはアドレスとポートを交換してメッセージ内の対象フィールドを書き換え、チェックサムを再計算した上で送信元となるNTPクライアントに返送します。時間精度はナノ秒単位となっています。
NTPのメッセージフォーマットはSNTPメッセージフォーマットを参照のこと。
https://www.7key.jp/nw/technology/protocol/ntp.html#supplement
RFC1305にあるNTP仕様の大部分は精度(ローカルクロックのハードウェアの精確さ、そのシステム上で動作している他の様々なプロセスがもたらす遅延、及びネットワーク自体が持ち込むラウンドトリップ遅延)と同期の領域を取り扱うものとなっています。
NTP3のタイムスタンプは1900年1月1日0時からの相対秒数による64bitの符号無し整数で、前の32bitが整数部、後ろの32bitが指数部となります。従って2036年にはこの64bitがオーバーフローすることとなります。
広告