付録A. NTPデータ形式 - バージョン3
この付録は、IPおよびUDPヘッダーに続くNTPメッセージ形式について説明しています。形式は、以下に説明する参照識別子フィールドを除いて、RFC-1119で説明されている形式と同じです。実装者の利便性のため、形式を以下に示します。
NTPメッセージヘッダー
NTPメッセージは、以下のヘッダー形式を持つUDPデータグラムです:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|LI | VN |Mode | Stratum | Poll | Precision |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Root Delay |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Root Dispersion |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reference Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Reference Timestamp (64) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Originate Timestamp (64) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Receive Timestamp (64) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Transmit Timestamp (64) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Key Identifier (optional) (32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Message Digest (optional) (128) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
フィールドの説明
閏秒インジケータ(LI): これは、現在の日の最後の分に挿入/削除される差し迫った閏秒を警告する2ビットコードで、ビット0とビット1はそれぞれ次のようにコード化されています:
| 値 | 意味 |
|---|---|
| 00 | 警告なし |
| 01 | 最後の分は61秒 |
| 10 | 最後の分は59秒 |
| 11 | アラーム条件(クロック非同期) |
バージョン番号(VN): これは、NTPバージョン番号を示す3ビット整数です。バージョン3(IPv4のみ)のバージョン番号は3であり、バージョン4(IPv4、IPv6、およびOSI)のバージョン番号は4です。
モード: これは、モードを示す3ビット整数で、値は次のように定義されています:
| 値 | 意味 |
|---|---|
| 0 | 予約済み |
| 1 | 対称アクティブ |
| 2 | 対称パッシブ |
| 3 | クライアント |
| 4 | サーバー |
| 5 | ブロードキャスト |
| 6 | NTP制御メッセージ用に予約 |
| 7 | 私的使用のために予約 |
ストラタム: これは、ローカルクロックのストラタムレベルを示す8ビット符号なし整数で、値は次のように定義されています:
| 値 | 意味 |
|---|---|
| 0 | 未指定または利用不可 |
| 1 | プライマリ参照(例:無線時計) |
| 2-15 | セカンダリ参照(NTPまたはSNTP経由) |
| 16-255 | 予約済み |
ポーリング間隔: これは、連続したメッセージ間の最大間隔を示す8ビット符号付き整数で、最も近い2の累乗の秒単位です。このフィールドに現在表示できる値は、4(16秒)から14(16384秒)までの範囲ですが、ほとんどのアプリケーションは6(64秒)から10(1024秒)のサブレンジのみを使用します。
精度: これは、ローカルクロックの精度を示す8ビット符号付き整数で、最も近い2の累乗の秒単位です。このフィールドに通常表示される値は、主周波数クロックの-6からワークステーションで見られるマイクロ秒クロックの-20までの範囲です。
ルート遅延: これは、プライマリ参照ソースへの総往復遅延を示す32ビット符号付き固定小数点数で、秒単位で小数点はビット15と16の間にあります。この変数は、相対的な時刻と周波数のオフセットに応じて、正と負の両方の値を取ることができることに注意してください。このフィールドに通常表示される値は、数ミリ秒の負の値から数百ミリ秒の正の値までの範囲です。
ルート分散: これは、プライマリ参照ソースに対する公称エラーを示す32ビット符号なし固定小数点数で、秒単位で小数点はビット15と16の間にあります。このフィールドに通常表示される値は、0から数百ミリ秒までの範囲です。
参照識別子: これは、特定の参照ソースを識別する32ビットビット文字列です。NTPバージョン3の場合、これは4文字のASCII文字列で、左揃えで32ビットにゼロパディングされています。NTPバージョン3では、以下のASCII文字列が定義されています:
| 文字列 | ソース |
|---|---|
| DCN | DCNルーティングプロトコル |
| NIST | NIST公開モデム |
| TSP | TSPタイムプロトコル |
| DTS | デジタルタイムサービス |
| ATOM | 原子時計(校正済み) |
| VLF | VLF無線(OMEGAなど) |
| GPS | GPS衛星受信機 |
| GOES | GOES UHF環境衛星 |
| WWV | WWV HF無線 |
| WWVB | WWVB LF無線 |
| WWVH | WWVH HF無線 |
| CHU | CHU HF無線 |
| LORC | LORAN-C無線航法システム |
| OMEG | OMEGA無線航法システム |
| TDF | TDF HF無線(フランス) |
NTPバージョン4のプライマリサーバーでは、これは4オクテットのIPv4アドレスまたはIPv6アドレスのMD5ハッシュの最初の4オクテットです。NTPバージョン4のセカンダリサーバーでは、これはその同期ソースの参照識別子です。
参照、発信、受信、送信タイムスタンプ: これら4つのフィールドは、NTPタイムスタンプの形式であり、整数部分が最初の32ビットにあり、小数部分が最後の32ビットにある64ビット符号なし固定小数点数です。この形式により、便利な多倍長演算とタイムプロトコル表現(秒)への変換が可能になりますが、ICMPタイムスタンプメッセージ表現(ミリ秒)への変換は複雑になります。この表現の精度は約200ピコ秒であり、最もエキゾチックな要件にも十分対応できるはずです。
認証子(オプション): NTP認証スキームが実装されている場合、キー識別子とメッセージダイジェストフィールドには、付録Cで定義されているメッセージ認証コード(MAC)情報が含まれます。