「Simple Network Time Protocol」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Claw of Slime (会話 | 投稿記録)
記述の劣化が見られるため差し戻し
Claw of Slime (会話 | 投稿記録)
Network Time Protocolより記述をコピー
19行目: 19行目:
上記より使用できる時計精度は200ピコ秒まで処理可能。
上記より使用できる時計精度は200ピコ秒まで処理可能。


=== 将来の問題 ===
=== 2036年問題 ===
このパケットは[[協定世界時]](UTC)の[[1970年]][[1月1日]]0時からの経過秒数で送られている。データサイズは符号無し4バイト整数であるため最大経過秒数は4294967295秒までとなり、協定世界時の2036年2月6日午前6時28分16秒(日本時間では同日午後3時28分16秒)までとなる。そのため、[[オーバーフロー]]が発生するより前に継続を行うための何らかの対処が必要となる。
このパケットは[[協定世界時]](UTC)の[[1970年]][[1月1日]]0時からの経過秒数で送られている。データサイズは符号無し4バイト整数であるため最大経過秒数は4294967295秒までとなり、協定世界時の2036年2月6日午前6時28分16秒(日本時間では同日午後3時28分16秒)までとなる。そのため、[[オーバーフロー]]が発生するより前に継続を行うための何らかの対処が必要となる。

RFC 4330には、最上位ビットが0の場合は時刻が2036年から[[2104年]]の間であるとみなして、2036年2月7日6時28分16秒(UTC)を起点として計算することで2036年問題を回避する方法が書かれている<ref name="rfc4330">RFC 4330</ref>。


== 時計サーバとの伝送モードと同期について ==
== 時計サーバとの伝送モードと同期について ==

2018年2月28日 (水) 15:15時点における版

Simple Network Time Protocol(シンプルネットワークタイムプロトコル、SNTPと略記)とは、NTPパケットを利用した、簡単な時計補正プロトコルである。

処理概要

SNTPのパケットは、RFC-2030(Simple Network Time Protocol Version 4)にて定義される。このパケットを使用し、上位時計サーバとの通信にて、オフセットを演算する。なお、時計反映処理はNTPも同様で定義されていないためプログラマーに依存する。その理由は、時計構成にはそのまま反映してよいものと、徐々に時計を近づける方法があり、運用されるシステムによって選択する必要があるためである。

時計精度と上限

時計精度

SNTPおよびNTPも同じパケット使用しているため、処理上はNTPタイムスタンプ形式の精度が内部精度となる。

例:NTPタイムスタンプ形式
オフセット データサイズ 項目
0 符号無し4バイト整数 Seconds
+4 符号無し4バイト整数 Seconds Fraction (0-padded)

上記より使用できる時計精度は200ピコ秒まで処理可能。

2036年問題

このパケットは協定世界時(UTC)の1970年1月1日0時からの経過秒数で送られている。データサイズは符号無し4バイト整数であるため最大経過秒数は4294967295秒までとなり、協定世界時の2036年2月6日午前6時28分16秒(日本時間では同日午後3時28分16秒)までとなる。そのため、オーバーフローが発生するより前に継続を行うための何らかの対処が必要となる。

RFC 4330には、最上位ビットが0の場合は時刻が2036年から2104年の間であるとみなして、2036年2月7日6時28分16秒(UTC)を起点として計算することで2036年問題を回避する方法が書かれている[1]

時計サーバとの伝送モードと同期について

伝送モード

SNTPおよびNTPを使用するには伝送モードの種類がある。NTPパケットには「Mode」と言われる3ビットのフィールドがある。多くのSNTPソフトは、サーバ・クライアントモードを使用して同期処理を行う。

mode値 内容
1,2 本来は時計サーバ同士の同期に使用。UNIX系OSのNTPサーバではpeer設定にて動作するモードである。
3,4 時計サーバと時計クライアントの組合せで同期に使用。

UNIX系OSのNTPサーバではServer設定にて動作するモードである。 SNTPに使用するNTPDATEコマンドで使用される。 多くのSNTPクライアントではこの仕様が採用されている。

5 放送モードでブロードキャストまたはマルチキャストによる同期方式である。

このモードは時計サーバより一方的にNTPパケット送信する。SNTPクライアント、NTPクライアントはこれを受信し、かつ推定遅延値を加算して時計を反映する。マルチキャストで使用可能なようにIPv4はRFC-1700、IPv6はRFC-2375にマルチキャストアドレスが割り当てられている。

IPv4=224.0.1.1
IPv6=FF0X:0:0:0:0:0:0:101
6,7 NTPの状態の参照、設定等に使用する伝送モードである。ntpq、ntpdcコマンドで使用する。RFC-1305のオプション機能として記述されるが、SNTPはこの機能を実装する必要はない。

NTPは基本的にすべてのモードをサポートする必要があるが、SNTPはどれを利用してもよく、どれか1つサポートすれば基本的にSNTPといえる。SNTPには規定がないのである。

同期

SNTPは1回の通信で時計反映処理に移行できる。一般的ソフトはstratum値が正常であること、閏秒指示子(Leap Indicator値)が正常であれば時計信用する。


関連項目

  1. ^ RFC 4330