RFC1305 日本語訳

1305 Network Time Protocol (Version 3) Specification, Implementationand Analysis. D. Mills. March 1992. (Format: TXT=307085, PDF=442493 bytes) (Obsoletes RFC0958, RFC1059, RFC1119) (Status: DRAFT STANDARD)
プログラムでの自動翻訳です。
RFC一覧
英語原文

Network Working Group                           David L. Mills
Request for Comments: 1305                      University of Delaware
Obsoletes RFC-1119, RFC-1059, RFC-958           March 1992

工場がコメントのために要求するワーキンググループデヴィッドL.をネットワークでつないでください: 1305 デラウエア大学は1992年3月にRFC-1119、RFC-1059、RFC-958を時代遅れにします。

                   Network Time Protocol (Version 3)
               Specification, Implementation and Analysis

ネットワーク時間プロトコル(バージョン3)仕様、実装、および分析

Note: This document consists of an approximate rendering in ASCII of the
PostScript document of the same name. It is provided for convenience and
for use in searches, etc. However, most tables, figures, equations and
captions have not been rendered and the pagination and section headings
are not available.

以下に注意してください。 このドキュメントは同じ名前のポストスクリプトドキュメントのASCIIにおける大体のレンダリングから成ります。 便利と検索などにおける使用にそれを提供します。 しかしながら、ほとんどのテーブル、数字、方程式、および見出しは表されていません、そして、丁付けとセクション見出しは利用可能ではありません。

Abstract

要約

This document describes the Network Time Protocol (NTP), specifies its
formal structure and summarizes information useful for its
implementation. NTP provides the mechanisms to synchronize time and
coordinate time distribution in a large, diverse internet operating at
rates from mundane to lightwave. It uses a returnable-time design in
which a distributed subnet of time servers operating in a self-
organizing, hierarchical-master-slave configuration synchronizes local
clocks within the subnet and to national time standards via wire or
radio. The servers can also redistribute reference time via local
routing algorithms and time daemons.

このドキュメントは、Network Timeプロトコル(NTP)について説明して、ホルマール構造を指定して、実装の役に立つ情報をまとめます。 NTPは、速度で大きくて、さまざまのインターネット操作における時間とコーディネートしている時間分配を世俗的であるのから光波まで同時にさせるためにメカニズムを提供します。 それは結団している自己階層的なマスター奴隷構成で作動する時間サーバの分配されたサブネットがワイヤかラジオを通してサブネット以内と国家の時間規格に地方の時計を連動させる返却可能な時間デザインを使用します。 また、サーバはローカルのルーティング・アルゴリズムと時間デーモンを通して参照時間を再配付できます。

Status of this Memo

このMemoの状態

This RFC specifies an IAB standards track protocol for the Internet
community and requests discussion and suggestions for improvements.
Please refer to the current edition of the <169>IAB Official Protocol
Standards<170> for the standardization state and status of this
protocol. Distribution of this memo is unlimited.

このRFCは改良のためのインターネットコミュニティ、要求議論、および提案にIAB標準化過程プロトコルを指定します。 このプロトコルの標準化状態と状態への<169>IAB OfficialプロトコルStandards<170>の現行版を参照してください。 このメモの分配は無制限です。

Keywords: network clock synchronization, standard time distribution,
fault-tolerant architecture, maximum-likelihood estimation, disciplined
oscillator, internet protocol, high-speed networks, formal
specification.

キーワード: 時計同期、標準時の分配、フォールトトレラントアーキテクチャ、最尤推定、規律がある振動子、インターネットプロトコル、高速ネットワーク、形式仕様をネットワークでつないでください。

Preface

序文

This document describes Version 3 of the Network Time Protocol (NTP). It
supersedes Version 2 of the protocol described in RFC-1119 dated
September 1989. However, it neither changes the protocol in any
significant way nor obsoletes previous versions or existing
implementations. The main motivation for the new version is to refine
the analysis and implementation models for new applications at much
higher network speeds to the gigabit-per-second regime and to provide
for the enhanced stability, accuracy and precision required at such
speeds. In particular, the sources of time and frequency errors have
been rigorously examined and error bounds established in order to
improve performance, provide a model for correctness assertions and
indicate timekeeping quality to the user. The revision also incorporates
two new optional features, (1) an algorithm to combine the offsets of a
number of peer time servers in order to enhance accuracy and (2)
improved local-clock algorithms which allow the poll intervals on all
synchronization paths to be substantially increased in order to reduce
network overhead. An overview of the changes, which are described in
detail in Appendix D, follows:

このドキュメントはNetwork Timeプロトコル(NTP)のバージョン3について説明します。 それは1989年9月付けのRFC-1119で説明されたプロトコルのバージョン2に取って代わります。 しかしながら、それは、どんな重要な方法でもプロトコルを変えないで、また前のバージョンか既存の実装を時代遅れにしません。 新しいバージョンに関する主な動機は、新しいアプリケーションのためにはるかに高いネットワーク速度で1秒あたりのギガビット政権に分析と実装モデルを洗練して、高められた安定性に備えることです、精度と精度はそのような速度で必要としました。 特に正当性主張にモデルを提供して、時間保持品質をユーザに示すように時間と頻度誤りの源はきびしく調べさせて、誤り領域は、性能を向上させるために確証しました。 また、改正は、精度とネットワークオーバーヘッドを下げるためにすべての同期経路の投票間隔がかなり増強されるのを許容する(2)の改良された地方の時計アルゴリズムを高めるために多くの同輩時間サーバのオフセットを結合するために(1) 2つの新しいオプション機能、アルゴリズムを取り入れます。 Appendix Dで詳細に説明される変化の概要は続きます:

1.
In Version 3 The local-clock algorithm has been overhauled to improve
stability and accuracy. Appendix G presents a detailed mathematical
model and design example which has been refined with the aid of
feedback-control analysis and extensive simulation using data collected
over ordinary Internet paths. Section 5 of RFC-1119 on the NTP local
clock has been completely rewritten to describe the new algorithm. Since
the new algorithm can result in message rates far below the old ones, it
is highly recommended that they be used in new implementations. Note
that use of the new algorithm does not affect interoperability with
previous versions or existing implementations.

1. バージョン3では、安定性と精度を改良するために地方の時計アルゴリズムをオーバーホールしてあります。 付録Gは、普通のインターネット経路の上に集められたデータを使用することで詳細な数学的モデル、フィードバック制御分析の援助で洗練されたデザインの例、および大規模なシミュレーションを提示します。 NTPの地方の時計の上のRFC-1119のセクション5は、新しいアルゴリズムを説明するために完全に書き直されました。 新しいアルゴリズムが遠くに古い方でメッセージレートをもたらすことができるので、それらが新しい実装に使用されるのは、非常にお勧めです。 新しいアルゴリズムの使用が前のバージョンか既存の実装で相互運用性に影響しないことに注意してください。

2.

2.

In Version 3 a new algorithm to combine the offsets of a number of peer
time servers is presented in Appendix F. This algorithm is modelled on
those used by national standards laboratories to combine the weighted
offsets from a number of standard clocks to construct a synthetic
laboratory timescale more accurate than that of any clock separately. It
can be used in an NTP implementation to improve accuracy and stability
and reduce errors due to asymmetric paths in the Internet. The new
algorithm has been simulated using data collected over ordinary Internet
paths and, along with the new local-clock algorithm, implemented and
tested in the Fuzzball time servers now running in the Internet. Note
that use of the new algorithm does not affect interoperability with
previous versions or existing implementations.

バージョン3では、多くの同輩時間サーバのオフセットを結合する新しいアルゴリズムはAppendix F.に提示されます。別々にどんな時計のものよりも正確な合成の実験室スケールを構成するために多くの標準の時計から荷重しているオフセットを結合するのに国家規格実験室によって使用されたものはThisアルゴリズムに似せられます。 インターネットで精度と安定性を改良して、非対称の経路による誤りを抑えるのにNTP実装にそれを使用できます。 新しいアルゴリズムは、インターネットへ駆け込みながら、普通のインターネット経路の上に集められて、新しい地方の時計アルゴリズムと共に実装されて、今Fuzzball時間サーバでテストされたデータを使用することでシミュレートされました。 新しいアルゴリズムの使用が前のバージョンか既存の実装で相互運用性に影響しないことに注意してください。

3.

3.

Several inconsistencies and minor errors in previous versions have been
corrected in Version 3. The description of the procedures has been
rewritten in pseudo-code augmented by English commentary for clarity and
to avoid ambiguity. Appendix I has been added to illustrate C-language
implementations of the various filtering and selection algorithms
suggested for NTP. Additional information is included in Section 5 and
in Appendix E, which includes the tutorial material formerly included in
Section 2 of RFC-1119, as well as much new material clarifying the
interpretation of timescales and leap seconds.

バージョン3で旧バージョンではいくつかの矛盾と軽い過失を修正してあります。 手順の記述は明快、あいまいさを避けるためにイギリスの論評で増大する中間コードで書き直されました。 私が追加された付録はNTPのために示された様々なフィルタリングと選択アルゴリズムのC言語実装を例証します。 追加情報はセクション5とAppendix Eに含まれています、スケールと飛躍秒の解釈をはっきりさせる多量の新素材と同様に。(Appendixは以前RFC-1119のセクション2に含まれていた家庭教師の材料を含んでいます)。

4.

4.

Minor changes have been made in the Version-3 local-clock algorithms to
avoid problems observed when leap seconds are introduced in the UTC
timescale and also to support an auxiliary precision oscillator, such as
a cesium clock or timing receiver, as a precision timebase. In addition,
changes were made to some procedures described in Section 3 and in the
clock-filter and clock-selection procedures described in Section 4.
While these changes were made to correct minor bugs found as the result
of experience and are recommended for new implementations, they do not
affect interoperability with previous versions or existing
implementations in other than minor ways (at least until the next leap
second).

マイナーチェンジはUTCスケールで飛躍秒を導入すると観測していた状態で問題を避けて、また、補助の精度振動子を支えるのがバージョン-3つの地方の時計アルゴリズムで作られています、セシウム時計やタイミング受信機のように、精度timebaseとして。 さらに、変更をセクション3と時計フィルタで説明されたいくつかの手順とセクション4で説明された時計選択手順にしました。 これらの変更が経験の結果として見つけられた小さい方のバグを修正すると行われて、新しい実装のために推薦されている間、小さい方の道(少なくとも次の閏秒までの)以外に、中に前のバージョンか既存の実装がある状態で、それらは相互運用性に影響しません。

5.

5.

In Version 3 changes were made to the way delay, offset and dispersion
are defined, calculated and processed in order to reliably bound the
errors inherent in the time-transfer procedures. In particular, the
error accumulations were moved from the delay computation to the
dispersion computation and both included in the clock filter and
selection procedures. The clock-selection procedure was modified to
remove the first of the two sorting/discarding steps and replace with an
algorithm first proposed by Marzullo and later incorporated in the
Digital Time Service. These changes do not significantly affect the
ordinary operation of or compatibility with various versions of NTP, but
they do provide the basis for formal statements of correctness as
described in Appendix H.
Table of Contents

バージョン3変化では、時間転送手順に固有の誤りは、確かにバウンドするように遅れ、オフセット、および分散が定義されるように作られて、計算して、処理されていました。 エラー蓄積は、特に、遅れ計算から分散計算まで動かされて、時計フィルタと選択手順にともに含まれていました。 時計選択手順は、2ソーティング/捨てるステップの1番目を移して、Time Serviceを最初にDigitalで組み込んでいるMarzullo以降によって提案されるアルゴリズムに取り替えるように変更されました。 または、これらの変化が普通の操作にかなり影響しない、NTPの様々なバージョンとの互換性、それらだけがAppendix H.目次で説明されるように正当性の正式な声明の基礎を提供します。

1.       Introduction   1

1. 序論1

1.1.     Related Technology     2

1.1. 関連技術2

2.       System Architecture    4

2. システム構築4

2.1.     Implementation Model   6

2.1. 実装モデル6

2.2.     Network Configurations 7

2.2. ネットワーク・コンフィギュレーション7

3.       Network Time Protocol  8

3. ネットワーク時間プロトコル8

3.1.     Data Formats   8

3.1. データ形式8

3.2.     State Variables and Parameters 9

3.2. 州の変数とパラメタ9

3.2.1.   Common Variables       9

3.2.1. 一般的な変数9

3.2.2.   System Variables       12

3.2.2. システム変数12

3.2.3.   Peer Variables 12

3.2.3. 同輩変数12

3.2.4.   Packet Variables       14

3.2.4. パケット変数14

3.2.5.   Clock-Filter Variables 14

3.2.5. 時計フィルタ変数14

3.2.6.   Authentication Variables       15

3.2.6. 認証変数15

3.2.7.   Parameters     15

3.2.7. パラメタ15

3.3.     Modes of Operation     17

3.3. 運転モード17

3.4.     Event Processing       19

3.4. イベント処理19

3.4.1.   Notation Conventions   19

3.4.1. 記法コンベンション19

3.4.2.   Transmit Procedure     20

3.4.2. 手順20を伝えてください。

3.4.3.   Receive Procedure      22

3.4.3. 手順22を受けてください。

3.4.4.   Packet Procedure       24

3.4.4. パケット手順24

3.4.5.   Clock-Update Procedure 27

3.4.5. 時計アップデート手順27

3.4.6.   Primary-Clock Procedure        28

3.4.6. プライマリ時計手順28

3.4.7.   Initialization Procedures      28

3.4.7. 初期設定手順28

3.4.7.1.         Initialization Procedure       29

3.4.7.1. 初期設定手順29

3.4.7.2.         Initialization-Instantiation Procedure 29

3.4.7.2. 初期設定具体化手順29

3.4.7.3.         Receive-Instantiation Procedure        30

3.4.7.3. 具体化を受け取っている手順30

3.4.7.4.         Primary Clock-Instantiation Procedure  31

3.4.7.4. プライマリ時計具体化手順31

3.4.8.   Clear Procedure        31

3.4.8. 明確な手順31

3.4.9.   Poll-Update Procedure  32

3.4.9. 投票アップデート手順32

3.5.     Synchronization Distance Procedure     32

3.5. 同期距離手順32

3.6.     Access Control Issues  33

3.6. アクセス制御問題33

4.       Filtering and Selection Algorithms     34

4. フィルタリングと選択アルゴリズム34

4.1.     Clock-Filter Procedure 35

4.1. 時計フィルタ手順35

4.2.     Clock-Selection Procedure      36

4.2. 時計選択手順36

4.2.1.   Intersection Algorithm 36

4.2.1. 交差点アルゴリズム36

5.       Local Clocks   40

5. 地方の時計40

5.1.     Fuzzball Implementation        41

5.1. Fuzzball実装41

5.2.     Gradual Phase Adjustments      42

5.2. ゆるやかな相調整42

5.3.     Step Phase Adjustments 43

5.3. ステップ相調整43

5.4.     Implementation Issues  44

5.4. 導入問題44

6.       Acknowledgments        45

6. 承認45

7.       References     46

7. 参照46

A.       Appendix A. NTP Data Format - Version 3        50

A。 付録A.NTPデータの形式--バージョン3 50

B.       Appendix B. NTP Control Messages       53

B。 付録B.NTPコントロールメッセージ53

B.1.     NTP Control Message Format     54

B.1。 NTPコントロールメッセージ・フォーマット54

B.2.     Status Words   56

B.2。 状態語56

B.2.1.   System Status Word     56

B.2.1。 システム状態語56

B.2.2.   Peer Status Word       57

B.2.2。 同輩状態語57

B.2.3.   Clock Status Word      58

B.2.3。 時計状態語58

B.2.4.   Error Status Word      58

B.2.4。 エラーステイタス語58

B.3.     Commands       59

B.3。 コマンド59

C.       Appendix C. Authentication Issues      61

C。 付録C.認証問題61

C.1.     NTP Authentication Mechanism   62

C.1。 NTP認証機構62

C.2.     NTP Authentication Procedures  63

C.2。 NTP認証手順63

C.2.1.   Encrypt Procedure      63

C.2.1。 手順63を暗号化してください。

4.2.2.   Clustering Algorithm   38

4.2.2. クラスタ化アルゴリズム38

C.2.2.   Decrypt Procedure      64

C.2.2。 手順64を解読してください。

C.2.3.   Control-Message Procedures     65

C.2.3。 コントロールメッセージ手順65

D.       Appendix D. Differences from Previous Versions.        66

D。 旧バージョンからの付録D.差。 66

E.       Appendix E. The NTP Timescale and its Chronometry      70

E。 付録E.は、NTP TimescaleとそのChronometry70です。

E.1.     Introduction   70

E.1。 序論70

E.2.     Primary Frequency and Time Standards   70

E.2。 一次周波数と時間規格70

E.3.     Time and Frequency Dissemination       72

E.3。 時間と頻度普及72

E.4.     Calendar Systems       74

E.4。 カレンダーシステム74

E.5.     The Modified Julian Day System 75

E.5。 変更されたジュリアンデーシステム75

E.6.     Determination of Frequency     76

E.6。 頻度76の決断

E.7.     Determination of Time and Leap Seconds 76

E.7。 時間と飛躍秒76の決断

E.8.     The NTP Timescale and Reckoning with UTC       78

E.8。 UTC78とのNTPスケールと計算

F.       Appendix F. The NTP Clock-Combining Algorithm  80

F。 付録F.は時計を結合したNTPアルゴリズム80です。

F.1.     Introduction   80

F.1。 序論80

F.2.     Determining Time and Frequency 80

F.2。 時間と頻度80を測定します。

F.3.     Clock Modelling        81

F.3。 時計モデル化81

F.4.     Development of a Composite Timescale   81

F.4。 合成スケール81の開発

F.5.     Application to NTP     84

F.5。 NTP84へのアプリケーション

F.6.     Clock-Combining Procedure      84

F.6。 時計を結合した手順84

G.       Appendix G. Computer Clock Modelling and Analysis      86

G。 付録G.コンピュータ時計モデル化と分析86

G.1.     Computer Clock Models  86

G.1。 コンピュータ時計モデル86

G.1.1.   The Fuzzball Clock Model       88

G.1.1。 Fuzzball時計モデル88

G.1.2.   The Unix Clock Model   89

G.1.2。 unix時計モデル89

G.2.     Mathematical Model of the NTP Logical Clock    91

G.2。 NTPの論理的な時計91の数学的モデル

G.3.     Parameter Management   93

G.3。 パラメタ管理93

G.4.     Adjusting VCO Gain (<$Ebold alpha>)    94

G.4。 調整しているVCO Gain(<$Eboldアルファ>)94

G.5.     Adjusting PLL Bandwidth (<$Ebold tau>) 94

G.5。 調整しているPLL Bandwidth(<$Eboldタウ粒子>)94

G.6.     The NTP Clock Model    95

G.6。 NTP時計モデル95

H.       Appendix H. Analysis of Errors and Correctness Principles

H。 誤りと正当性原則の付録H.分析

98

98

H.1.     Introduction   98

H.1。 序論98

H.2.     Timestamp Errors       98

H.2。 タイムスタンプ誤り98

H.3.     Measurement Errors     100

H.3。 測定誤差100

H.4.     Network Errors 101

H.4。 ネットワーク誤り101

H.5.     Inherited Errors       102

H.5。 継承誤差102

H.6.     Correctness Principles 104

H.6。 正当性原則104

I.       Appendix I. Selected C-Language Program Listings       107

I. 付録I.はC言語プログラム・リスト107を選択しました。

I.1.     Common Definitions and Variables       107

I.1。 一般的な定義と変数107

I.2.     Clock<196>Filter Algorithm     108

I.2。 時計<196>フィルタアルゴリズム108

I.3.     Interval Intersection Algorithm        109

I.3。 間隔交差点アルゴリズム109

I.4.     Clock<196>Selection Algorithm  110

I.4。 時計<196>選択アルゴリズム110

I.5.     Clock<196>Combining Procedure  111

I.5。 手順111を結合する時計<196>。

I.6.     Subroutine to Compute Synchronization Distance 112

I.6。 同期距離112を計算するサブルーチン

List of Figures

数字のリスト

Figure 1. Implementation Model  6

図1。 実装モデル6

Figure 2. Calculating Delay and Offset  25

図2。 計算の遅れとオフセット25

Figure 3. Clock Registers       39

図3。 時計レジスタ39

Figure 4. NTP Message Header    50

図4。 NTPメッセージヘッダー50

Figure 5. NTP Control Message Header    54

図5。 NTPコントロールメッセージヘッダー54

Figure 6. Status Word Formats   55

図6。 状態語形式55

Figure 7. Authenticator Format  63

図7。 固有識別文字形式63

Figure 8. Comparison of UTC and NTP Timescales at Leap  79

エイト環。 飛躍79におけるUTCとNTPスケールの比較

Figure 9. Network Time Protocol 80

図9。 ネットワーク時間プロトコル80

Figure 10. Hardware Clock Models        86

図10。 ハードウェア時計モデル86

Figure 11. Clock Adjustment Process     90

図11。 クロック調整プロセス90

Figure 12. NTP Phase-Lock Loop (PLL) Model      91

図12。 NTPフェーズ・ロック輪の(PLL)モデル91

Figure 13. Timing Intervals     96

図13。 タイミング間隔96

Figure 14. Measuring Delay and Offset   100

図14。 測定遅れとオフセット100

Figure 15. Error Accumulations  103

図15。 エラー蓄積103

Figure 16. Confidence Intervals and Intersections       105

図16。 信頼区間と交差点105

List of Tables

テーブルのリスト

Table 1. System Variables       12

1を見送ってください。 システム変数12

Table 2. Peer Variables 13

2を見送ってください。 同輩変数13

Table 3. Packet Variables       14

3を見送ってください。 パケット変数14

Table 4. Parameters     16

4を見送ってください。 パラメタ16

Table 5. Modes and Actions      22

5を見送ってください。 モードと動作22

Table 6. Clock Parameters       40

6を見送ってください。 時計パラメタ40

Table 7. Characteristics of Standard Oscillators        71

7を見送ってください。 標準の振動子71の特性

Table 8. Table of Leap-Second Insertions        77

8を見送ってください。 閏秒入77のテーブル

Table 9. Notation Used in PLL Analysis  91

9を見送ってください。 PLL分析91に使用される記法

Table 10. PLL Parameters        91

10を見送ってください。 PLLパラメタ91

Table 11. Notation Used in PLL Analysis 95

11を見送ってください。 PLL分析95に使用される記法

Table 12. Notation Used in Error Analysis       98

12を見送ってください。 エラー解析98に使用される記法

Introduction
This document constitutes a formal specification of the Network Time
Protocol (NTP) Version 3, which is used to synchronize timekeeping among
a set of distributed time servers and clients. It defines the
architectures, algorithms, entities and protocols used by NTP and is
intended primarily for implementors. A companion document [MIL91a]
summarizes the requirements, analytical models, algorithmic analysis and
performance under typical Internet conditions. Another document [MIL91b]
describes the NTP timescale and its relationship to other standard
timescales now in use. NTP was first described in RFC-958 [MIL85c], but
has since evolved in significant ways, culminating in the most recent
NTP Version 2 described in RFC-1119 [MIL89]. It is built on the Internet
Protocol (IP) [DAR81a] and User Datagram Protocol (UDP) [POS80], which
provide a connectionless transport mechanism; however, it is readily
adaptable to other protocol suites. NTP is evolved from the Time
Protocol [POS83b] and the ICMP Timestamp message [DAR81b], but is
specifically designed to maintain accuracy and robustness, even when
used over typical Internet paths involving multiple gateways, highly
dispersive delays and unreliable nets.

序論ThisドキュメントはNetwork Timeプロトコル(NTP)バージョン3に関する形式仕様を成立させます。(バージョンは、1セットの分配された時間サーバとクライアントの中で時間保持を同時にさせるのに使用されます)。 それは、NTPによって使用されたアーキテクチャ、アルゴリズム、実体、およびプロトコルを定義して、主として作成者のために意図します。 仲間ドキュメント[MIL91a]は典型的なインターネット条件のもとで要件、分析モデル、アルゴリズム的解析、および性能をまとめます。 別のドキュメント[MIL91b]は現在使用中の他の標準のスケールとのNTPスケールとその関係について説明します。 NTPは最初にRFC-958[MIL85c]で説明されましたが、以来重要な方法で発展しています、RFC-1119[MIL89]で説明された最新のNTPバージョン2に終わって。 それはインターネットプロトコル(IP)[DAR81a]とユーザー・データグラム・プロトコル(UDP)[POS80]に建てられます。(ユーザー・データグラム・プロトコルは、コネクションレスな移送機構を提供します)。 しかしながら、それは容易に他のプロトコル群に適合できます。 NTPはTimeプロトコル[POS83b]とICMP Timestampメッセージ[DAR81b]から発展されますが、精度と丈夫さを維持するように明確に設計されています、複数のゲートウェイ、非常に分散的な遅れ、および頼り無いネットにかかわりながら典型的なインターネット経路の上で使用されると。

The service environment consists of the implementation model and service
model described in Section 2. The implementation model is based on a
multiple-process operating system architecture, although other
architectures could be used as well. The service model is based on a
returnable-time design which depends only on measured clock offsets, but
does not require reliable message delivery. The synchronization subnet
uses a self-organizing, hierarchical-master-slave configuration, with
synchronization paths determined by a minimum-weight spanning tree.
While multiple masters (primary servers) may exist, there is no
requirement for an election protocol.

サービス環境はセクション2で説明された実装モデルとサービスモデルから成ります。 また、他のアーキテクチャを使用できましたが、実装モデルは複数のプロセスオペレーティングシステムアーキテクチャに基づいています。 サービスモデルは測定時計オフセットだけによりますが、信頼できるメッセージ配送を必要としない返却可能な時間デザインに基づいています。 同期サブネットは最小の重さのスパニングツリーによって決定している同期経路と共に自己組織化、階層的なマスター奴隷構成を使用します。 複数のマスター(プライマリサーバ)が存在するかもしれませんが、選挙プロトコルのための要件が全くありません。

NTP itself is described in Section 3. It provides the protocol
mechanisms to synchronize time in principle to precisions in the order
of nanoseconds while preserving a non-ambiguous date well into the next
century. The protocol includes provisions to specify the characteristics
and estimate the error of the local clock and the time server to which
it may be synchronized. It also includes provisions for operation with a
number of mutually suspicious, hierarchically distributed primary
reference sources such as radio-synchronized clocks.

NTP自身はセクション3で説明されます。 それは、次の世紀まで非あいまいな期日をよく保持している間、原則として数ナノ秒の注文における確度への時間を同期させるようにプロトコルメカニズムを提供します。 プロトコルは、特性を指定して、それが連動するかもしれない地方の時計と時間サーバの誤りを見積もるために条項を含んでいます。 また、それはラジオで連動している時計などの多くの互いに疑わしげで、階層的で分配されたプライマリ照合線源と共に操作のための条項を含んでいます。

Section 4 describes algorithms useful for deglitching and smoothing
clock-offset samples collected on a continuous basis. These algorithms
evolved from those suggested in [MIL85a], were refined as the results of
experiments described in [MIL85b] and further evolved under typical
operating conditions over the last three years. In addition, as the
result of experience in operating multiple-server subnets including
radio clocks at several sites in the U.S. and with clients in the U.S.
and Europe, reliable algorithms for selecting good clocks from a
population possibly including broken ones have been developed [DEC89],
[MIL91a] and are described in Section 4.

セクション4は随時に集められた時計オフセットのサンプルをdeglitchingして、整えることの役に立つアルゴリズムを説明します。 これらのアルゴリズムは、[MIL85a]に示されたものから発展して、実験の結果が[MIL85b]で説明したように洗練されて、ここ3年間典型的な運転条件の下でさらに発展されました。 さらに、ラジオを含んでいるのは、操作複数のサーバサブネットにおける、経験の結果として、米国とクライアントと共にいくつかのサイトでことによると包含壊れているものが持っている人口からの良い時計を選択する[DEC89]開発された[MIL91a]のための米国とヨーロッパ、信頼できるアルゴリズムで時間を計って、セクション4で説明されます。

The accuracies achievable by NTP depend strongly on the precision of the
local-clock hardware and stringent control of device and process
latencies. Provisions must be included to adjust the software logical-
clock time and frequency in response to corrections produced by NTP.
Section 5 describes a local-clock design evolved from the Fuzzball
implementation described in [MIL83b] and [MIL88b]. This design includes
offset-slewing, frequency compensation and deglitching mechanisms
capable of accuracies in the order of a millisecond, even after extended
periods when synchronization to primary reference sources has been lost.

NTPが達成可能な精度は強くデバイスとプロセス潜在の地方の時計ハードウェアと緊縮調節の精度に依存します。 NTPによって起こされた修正に対応してソフトウェアの論理的なクロック・タイムと頻度を調整するために条項を含まなければなりません。 セクション5は[MIL83b]と[MIL88b]で説明されたFuzzball実装から発展された地方の時計デザインについて説明します。 このデザインは、1ミリセカンドの注文にオフセット旋回と、頻度補償と精度ができるメカニズムをdeglitchingするのを含んでいます、長期間にさえプライマリ照合線源との同期が失われた後。

Details specific to NTP packet formats used with the Internet Protocol
(IP) and User Datagram Protocol (UDP) are presented in Appendix A, while
details of a suggested auxiliary NTP Control Message, which may be used
when comprehensive network-monitoring facilities are not available, are
presented in Appendix B. Appendix C contains specification and
implementation details of an optional authentication mechanism which can
be used to control access and prevent unauthorized data modification,
while Appendix D contains a listing of differences between Version 3 of
NTP and previous versions. Appendix E expands on issues involved with
precision timescales and calendar dating peculiar to computer networks
and NTP. Appendix F describes an optional algorithm to improve accuracy
by combining the time offsets of a number of clocks. Appendix G presents
a detailed mathematical model and analysis of the NTP local-clock
algorithms. Appendix H analyzes the sources and propagation of errors
and presents correctness principles relating to the time-transfer
service. Appendix I illustrates C-language code segments for the clock-
filter, clock-selection and related algorithms described in Section 4.

インターネットプロトコル(IP)とユーザー・データグラム・プロトコル(UDP)と共に使用されるNTPパケット・フォーマットに特定の詳細はAppendix Aに提示されます; 提案された補助のNTP Control Messageの細部はAppendixに提示されますが、B.Appendix Cはアクセスを制御して、権限のないデータ変更を防ぐのに使用できる任意の認証機構の仕様と実装細部を含んでいます、Appendix DはNTPのバージョン3と旧バージョンの間に違いのリストを含んでいますが。包括的なネットワーク監視施設が利用可能でないときに、NTP Control Messageは使用されるかもしれません。 付録EはコンピュータネットワークとNTPに独特の精度スケールとカレンダーデートにかかわる問題について詳述します。 付録Fは、多くの時計の時間オフセットを結合することによって精度を改良するために任意のアルゴリズムを説明します。 付録GはNTP地方の時計アルゴリズムの詳細な数学的モデルと分析を提示します。付録Hは、誤りのソースと伝播を分析して、時間転送サービスに関連する正当性原則を提示します。 付録Iはセクション4で説明された時計フィルタ、時計選択、および関連するアルゴリズムのためにC言語コードセグメントを例証します。

Related Technology

関連技術

Other mechanisms have been specified in the Internet protocol suite to
record and transmit the time at which an event takes place, including
the Daytime protocol [POS83a], Time Protocol [POS83b], ICMP Timestamp
message [DAR81b] and IP Timestamp option [SU81]. Experimental results on
measured clock offsets and roundtrip delays in the Internet are
discussed in [MIL83a], [MIL85b], [COL88] and [MIL88a]. Other
synchronization algorithms are discussed in [LAM78], [GUS84], [HAL84],
[LUN84], [LAM85], [MAR85], [MIL85a], [MIL85b], [MIL85c], [GUS85b],
[SCH86], [TRI86], [RIC88], [MIL88a], [DEC89] and [MIL91a], while
protocols based on them are described in [MIL81a], [MIL81b], [MIL83b],
[GUS85a], [MIL85c], [TRI86], [MIL88a], [DEC89] and [MIL91a]. NTP uses
techniques evolved from them and both linear-systems and agreement
methodologies. Linear methods for digital telephone network
synchronization are summarized in [LIN80], while agreement methods for
clock synchronization are summarized in [LAM85].

他のメカニズムはイベントが行われる時を記録して、伝えるためにインターネット・プロトコル群で指定されました、Daytimeプロトコル[POS83a]、Timeプロトコル[POS83b]、ICMP Timestampメッセージ[DAR81b]、およびIP Timestampオプション[SU81]を含んでいて。 [MIL83a]、[MIL85b]、[COL88]、および[MIL88a]で測定時計オフセットの実験結果とインターネットの往復の遅れについて議論します。 [LAM78]、[GUS84]、[HAL84]、[LUN84]、[LAM85]、[MAR85]、[MIL85a]、[MIL85b]、[MIL85c]、[GUS85b]、[SCH86]、[TRI86]、[RIC88]、[MIL88a]、[DEC89]、および[MIL91a]で他の同期アルゴリズムについて議論します、それらに基づくプロトコルは[MIL81a]、[MIL81b]、[MIL83b]、[GUS85a]、[MIL85c]、[TRI86]、[MIL88a]、[DEC89]、および[MIL91a]で説明されますが。 NTPはそれらと線形系の両方から発展されたテクニックと協定方法論を使用します。 デジタル電話網同期のための直線的なメソッドは[LIN80]にまとめられます、時計同期のための協定メソッドは[LAM85]にまとめられますが。

The Digital Time Service (DTS) [DEC89] has many of the same service
objectives as NTP. The DTS design places heavy emphasis on configuration
management and correctness principles when operated in a managed LAN or
LAN-cluster environment, while NTP places heavy emphasis on the accuracy
and stability of the service operated in an unmanaged, global-internet
environment. In DTS a synchronization subnet consists of clerks,
servers, couriers and time providers. With respect to the NTP
nomenclature, a time provider is a primary reference source, a courier
is a secondary server intended to import time from one or more distant
primary servers for local redistribution and a server is intended to
provide time for possibly many end nodes or clerks. Unlike NTP, DTS does
not need or use mode or stratum information in clock selection and does
not include provisions to filter timing noise, select the most accurate
from a set of presumed correct clocks or compensate for inherent
frequency errors.

Digital Time Service(DTS)[DEC89]には、NTPと同じサービス目的の多くがあります。 管理されたLANかLANクラスター環境で操作されると、DTSデザインは構成管理への重い強調と正当性原則を置きます、NTPは非管理されて、グローバルなインターネットの環境で操作されたサービスの精度と安定性への重い強調を置きますが。 DTSでは、同期サブネットは事務員、サーバ、急使、および時間プロバイダーから成ります。 NTP用語体系に関して、時間プロバイダーはプライマリ照合線源です、そして、急使は地方の再分配のための遠方のプライマリサーバを1以上からの時間にインポートすることを意図するセカンダリサーバです、そして、サーバがことによると多くのエンドノードか事務員のための時間を提供することを意図します。 NTPと異なって、DTSは、時計選択にモードか層の情報を必要でない、または使用しないで、タイミング雑音をフィルターにかけるか、1セットの推定された正しい時計から最も正確であるのを選択するか、または固有の頻度誤りを補うために条項を含んでいません。

In fact, the latest revisions in NTP have adopted certain features of
DTS in order to support correctness principles. These include mechanisms
to bound the maximum errors inherent in the time-transfer procedures and
the use of a provably correct (subject to stated assumptions) mechanism
to reject inappropriate peers in the clock-selection procedures. These
features are described in Section 4 and Appendix H of this document.

事実上、NTPでの最新の改正は、正当性が原則であるとサポートするためにDTSのある特徴を採用しました。 バウンドへの時間転送手順とaの使用に固有の最大の誤りがメカニズムを証明可能に修正する(述べられた仮定にかけます)これらのインクルードメカニズムは時計選択手順で不適当な同輩を拒絶します。 これらの特徴はこのドキュメントのセクション4とAppendix Hで説明されます。

The Fuzzball routing protocol [MIL83b], sometimes called Hellospeak,
incorporates time synchronization directly into the routing-protocol
design. One or more processes synchronize to an external reference
source, such as a radio clock or NTP daemon, and the routing algorithm
constructs a minimum-weight spanning tree rooted on these processes. The
clock offsets are then distributed along the arcs of the spanning tree
to all processes in the system and the various process clocks corrected
using the procedure described in Section 5 of this document. While it
can be seen that the design of Hellospeak strongly influenced the design
of NTP, Hellospeak itself is not an Internet protocol and is unsuited
for use outside its local-net environment.

時々Hellospeakと呼ばれたFuzzballルーティング・プロトコル[MIL83b]は直接ルーティング・プロトコルデザインに時間同期化を組み入れます。 1つ以上のプロセスがラジオ時計かNTPデーモンなどの外部参照源に連動します、そして、ルーティング・アルゴリズムはこれらのプロセスに根づいている最小の重さのスパニングツリーを構成します。 そして、時計オフセットはスパニングツリーのアークに沿ってこのドキュメントのセクション5で説明された手順を用いることで修正されたシステムと様々なプロセス時計のすべてのプロセスに広げられます。 Hellospeakのデザインが強くNTPのデザインに影響を及ぼしたのを見ることができますが、Hellospeak自身はインターネットプロトコルでなく、使用に、地方にネットの環境の外で不適当です。

The Unix 4.3bsd time daemon timed [GUS85a] uses a single master-time
daemon to measure offsets of a number of slave hosts and send periodic
corrections to them. In this model the master is determined using an
election algorithm [GUS85b] designed to avoid situations where either no
master is elected or more than one master is elected. The election
process requires a broadcast capability, which is not a ubiquitous
feature of the Internet. While this model has been extended to support
hierarchical configurations in which a slave on one network serves as a
master on the other [TRI86], the model requires handcrafted
configuration tables in order to establish the hierarchy and avoid
loops. In addition to the burdensome, but presumably infrequent,
overheads of the election process, the offset measurement/correction
process requires twice as many messages as NTP per update.

調節されたUnix 4.3bsd時間デーモン[GUS85a]は、多くの奴隷のホストのオフセットを測定して、周期的な修正をそれらに送るのに単一のマスター時間デーモンを使用します。 このモデルでは、マスターは、マスターが全く選出されないか、または1つ以上のマスターが選出される状況を避けるように設計された選挙アルゴリズム[GUS85b]を使用することで断固としています。 選挙プロセスは放送能力を必要とします。(それは、インターネットの遍在している特徴ではありません)。 このモデルはもう片方[TRI86]で1つのネットワークの奴隷がマスターとして勤める階層的な構成をサポートするために広げられましたが、モデルは、階層構造を確立して、輪を避けるために手作りの構成テーブルを必要とします。 選挙プロセスの重荷になっていますが、おそらく珍しいオーバーヘッドに加えて、オフセット測定/修正プロセスは1アップデートあたりのNTPの2倍に関するメッセージを必要とします。

A scheme with features similar to NTP is described in [KOP87]. This
scheme is intended for multi-server LANs where each of a set of possibly
many time servers determines its local-time offset relative to each of
the other servers in the set using periodic timestamped messages, then
determines the local-clock correction using the Fault-Tolerant Average
(FTA) algorithm of [LUN84]. The FTA algorithm, which is useful where up
to k servers may be faulty, sorts the offsets, discards the k highest
and lowest ones and averages the rest. The scheme, as described in
[SCH86], is most suitable to LAN environments which support broadcast
and would result in unacceptable overhead in an internet environment. In
addition, for reasons given in Section 4 of this paper, the statistical
properties of the FTA algorithm are not likely to be optimal in an
internet environment with highly dispersive delays.

NTPと同様の特徴がある体系は[KOP87]で説明されます。 この体系は、それぞれのことによると多くの時間サーバの1セットが、セットにおける、それぞれの他のサーバに比例して現地時間が相殺されたことを決定するところでマルチサーバLANのために周期的なtimestampedメッセージを使用することで意図して、次に、[LUN84]のFault許容性があるAverage(FTA)アルゴリズムを使用することで地方の時計修正を決定します。 FTAアルゴリズム(kまで、サーバが不完全であるかもしれないところで役に立つ)は、オフセットを分類して、k最も高くて最も低い方を捨てて、残りを平均します。 [SCH86]で説明される体系は、サポートが放送したLAN環境に最も適して、インターネット環境で容認できないオーバーヘッドをもたらすでしょう。 さらに、この紙のセクション4であげられた理由でFTAアルゴリズムの統計的な特性は非常に分散的な遅れでインターネット環境で最適である傾向がありません。

A good deal of research has gone into the issue of maintaining accurate
time in a community where some clocks cannot be trusted. A truechimer is
a clock that maintains timekeeping accuracy to a previously published
(and trusted) standard, while a falseticker is a clock that does not.
Determining whether a particular clock is a truechimer or falseticker is
an interesting abstract problem which can be attacked using agreement
methods summarized in [LAM85] and [SRI87].

多くの研究がいくつかの時計を信じることができない共同体で正確な時間を維持する問題を調べました。 truechimerは以前に発行された(そして、信じられます)規格に時間保持精度を維持する時計です、falsetickerはそうしない時計ですが。 特定の時計がtruechimerかそれともfalsetickerであるかを決定するのは、[LAM85]と[SRI87]にまとめられた協定メソッドを使用することにおいて攻撃できるおもしろい抽象的な問題です。

A convergence function operates upon the offsets between the clocks in a
system to increase the accuracy by reducing or eliminating errors caused
by falsetickers. There are two classes of convergence functions, those
involving interactive-convergence algorithms and those involving
interactive-consistency algorithms. Interactive-convergence algorithms
use statistical clustering techniques such as the fault-tolerant average
algorithm of [HAL84], the CNV algorithm of [LUN84], the majority-subset
algorithm of [MIL85a], the non-Byzantine algorithm of [RIC88], the
egocentric algorithm of [SCH86], the intersection algorithm of [MAR85]
and [DEC89] and the algorithms in Section 4 of this document.

集合機能は、falsetickersによって引き起こされた誤りを抑えるか、または除去することによって精度を増強するためにシステムの時計の間のオフセットを作動させます。 2つのクラスの集合関数、対話的な集合アルゴリズムにかかわるもの、および対話的な一貫性アルゴリズムにかかわるものがあります; 対話的な集合アルゴリズムはHAL84のフォールトトレラントの平均したアルゴリズムや、LUN84のCNVアルゴリズムや、MIL85aの大部分部分集合アルゴリズムや、RIC88の非込み入ったアルゴリズムや、SCH86の利己的なアルゴリズムや、MAR85とDEC89の交差点アルゴリズムやこのドキュメントのセクション4のアルゴリズムなどの統計的なクラスタリングのテクニックを使用します。

Interactive-consistency algorithms are designed to detect faulty clock
processes which might indicate grossly inconsistent offsets in
successive readings or to different readers. These algorithms use an
agreement protocol involving successive rounds of readings, possibly
relayed and possibly augmented by digital signatures. Examples include
the fireworks algorithm of [HAL84] and the optimum algorithm of [SRI87].
However, these algorithms require large numbers of messages, especially
when large numbers of clocks are involved, and are designed to detect
faults that have rarely been found in the Internet experience. For these
reasons they are not considered further in this document.

対話的な一貫性アルゴリズムは、連続した読書、または、異なった読者にはなはだしく無節操なオフセットを示すかもしれない不完全な時計プロセスを検出するように設計されています。 これらのアルゴリズムはことによるとリレーされて、ことによるとデジタル署名で増大している読書の連続したラウンドにかかわる協定プロトコルを使用します。 例は[HAL84]の花火アルゴリズムと[SRI87]の最適なアルゴリズムを含んでいます。 しかしながら、これらのアルゴリズムは多くのメッセージを必要とします、特に、多くの時計がかかわって、インターネット経験でめったに見つけられていない欠点を検出するように設計されているとき。 これらの理由で、それらはさらに本書では考えられません。

In practice it is not possible to determine the truechimers from the
falsetickers on other than a statistical basis, especially with
hierarchical configurations and a statistically noisy Internet. While it
is possible to bound the maximum errors in the time-transfer procedures,
assuming sufficiently generous tolerances are adopted for the hardware
components, this generally results in rather poor accuracies and
stabilities. The approach taken in the NTP design and its predecessors
involves mutually coupled oscillators and maximum-likelihood estimation
and clock-selection procedures, together with a design that allows
provable assertions on error bounds to be made relative to stated
assumptions on the correctness of the primary reference sources. From
the analytical point of view, the system of distributed NTP peers
operates as a set of coupled phase-locked oscillators, with the update
algorithm functioning as a phase detector and the local clock as a
disciplined oscillator, but with deterministic error bounds calculated
at each step in the time-transfer process.

実際には、統計的基礎を除いて、falsetickersからのtruechimersについて決めるのは可能ではありません、特に階層的な構成と統計的に騒がしいインターネットで。 時間転送手順における最大の誤り、一般に、これがかなり低い精度と安定性をもたらして、十分豊富な寛容がハードウェアの部品のために採用されると仮定するのがバウンドに可能ですが。 NTPデザインとその前任者で取られたアプローチは互いに結合した振動子、最尤推定、および時計選択手順にかかわります、誤り領域における証明可能な主張がプライマリ照合線源の正当性における述べられた仮定に比例してするデザインと共に。 分析観点から、分配されたNTP同輩のシステムはアップデートアルゴリズムが位相検出器として機能する結合した位相同期発振器と規律がある振動子としての地方の時計の1セットとして作動しますが、決定論的な誤り領域が時間転送における各ステップで計算されている状態で、処理してください。

The particular choice of offset measurement and computation procedure
described in Section 3 is a variant of the returnable-time system used
in some digital telephone networks [LIN80]. The clock filter and
selection algorithms are designed so that the clock synchronization
subnet self-organizes into a hierarchical-master-slave configuration
[MIT80]. With respect to timekeeping accuracy and stability, the
similarity of NTP to digital telephone systems is not accidental, since
systems like this have been studied extensively [LIN80], [BRA80]. What
makes the NTP model unique is the adaptive configuration, polling,
filtering, selection and correctness mechanisms which tailor the
dynamics of the system to fit the ubiquitous Internet environment.

セクション3で説明されたオフセット測定と計算手順の特定の選択はいくつかのデジタル電話網[LIN80]に使用される返却可能な時間システムの異形です。 時計フィルタと選択アルゴリズムは、時計同期サブネットが自己に結団されるように、階層的なマスター奴隷構成[MIT80]に設計されています。 時間保持精度と安定性に関して、デジタル電話機システムへのNTPの類似性は偶然ではありません、このようなシステムが手広さに[LIN80]研究されたので、[BRA80。] NTPモデルをユニークにすることは、遍在しているインターネット環境に合うようにシステムの力学を合わせる適応型の構成と、世論調査と、フィルタリングと、選択と正当性メカニズムです。

System Architecture

システム構築

In the NTP model a number of primary reference sources, synchronized by
wire or radio to national standards, are connected to widely accessible
resources, such as backbone gateways, and operated as primary time
servers. The purpose of NTP is to convey timekeeping information from
these servers to other time servers via the Internet and also to cross-
check clocks and mitigate errors due to equipment or propagation
failures. Some number of local-net hosts or gateways, acting as
secondary time servers, run NTP with one or more of the primary servers.
In order to reduce the protocol overhead, the secondary servers
distribute time via NTP to the remaining local-net hosts. In the
interest of reliability, selected hosts can be equipped with less
accurate but less expensive radio clocks and used for backup in case of
failure of the primary and/or secondary servers or communication paths
between them.

NTPモデルでは、ワイヤかラジオによって国家規格と同期させられる多くのプライマリ照合線源が、バックボーンゲートウェイなどの広くアクセス可能なリソースに接続されて、プライマリ時間サーバとして手術されます。 NTPの目的は、また、インターネットを通してこれらのサーバから他の時間サーバまで時間保持情報を伝えて、チェック時計に交差して、設備による誤りか伝播失敗を緩和することです。 セカンダリ時間サーバとして機能して、何らかの数の地方にネットのホストかゲートウェイがプライマリサーバの1つ以上でNTPを実行します。 プロトコルオーバーヘッドを下げるために、セカンダリサーバは残っている地方にネットのホストへのNTPを通して時間を分配します。 信頼性のために、選択されたホストは、それほど正確でない、しかし、それほど高価でないラジオ時計を備えて、それらの間のプライマリの、そして/または、セカンダリのサーバか通信路の失敗の場合にバックアップに使用できます。

Throughout this document a standard nomenclature has been adopted: the
stability of a clock is how well it can maintain a constant frequency,
the accuracy is how well its frequency and time compare with national
standards and the precision is how precisely these quantities can be
maintained within a particular timekeeping system. Unless indicated
otherwise, the offset of two clocks is the time difference between them,
while the skew is the frequency difference (first derivative of offset
with time) between them. Real clocks exhibit some variation in skew
(second derivative of offset with time), which is called drift; however,
in this version of the specification the drift is assumed zero.

このドキュメント中では、正式名称は採用されました: 精度はその頻度と時間が国家規格とどれくらいよく比較するかということです、そして、時計の安定性は一定の頻度をどれくらいよく維持できるかということです、そして、精度は特定の時間保持システムの中でどう正確にこれらの量を維持できるかということです。 別の方法で示されない場合、2個の時計のオフセットはそれらの時差です、斜行がそれらの頻度差(時間があるオフセットの一次導関数)ですが。 実際の時計はドリフトと呼ばれる斜行(時間があるオフセットの二次導関数)の何らかの変化を示します。 しかしながら、仕様のこのバージョンでは、ドリフトはゼロであると思われます。

NTP is designed to produce three products: clock offset, roundtrip delay
and dispersion, all of which are relative to a selected reference clock.
Clock offset represents the amount to adjust the local clock to bring it
into correspondence with the reference clock. Roundtrip delay provides
the capability to launch a message to arrive at the reference clock at a
specified time. Dispersion represents the maximum error of the local
clock relative to the reference clock. Since most host time servers will
synchronize via another peer time server, there are two components in
each of these three products, those determined by the peer relative to
the primary reference source of standard time and those measured by the
host relative to the peer. Each of these components are maintained
separately in the protocol in order to facilitate error control and
management of the subnet itself. They provide not only precision
measurements of offset and delay, but also definitive maximum error
bounds, so that the user interface can determine not only the time, but
the quality of the time as well.

NTPは3個の製品を生産するように設計されています: オフセットの、そして、往復の遅れと分散の時間を計ってください。そのすべてが選択された基準クロックに比例しています。 時計オフセットは、基準クロックとの通信にそれを運び込むように地方の時計を調整するために量を表します。 往復の遅れは指定の時間に基準クロックに到着するメッセージを始める能力を提供します。 ディアスポラは基準クロックに比例して地方の時計の最大の誤りを表します。 ほとんどのホスト時間サーバが別の同輩時間サーバで同期するので、それぞれのこれらの3個の製品には2つのコンポーネントがあります、とものは同輩で標準時のプライマリ照合線源に比例して決定しました、そして、ものはホストのそばで同輩に比例して測定しました。 それぞれのこれらのコンポーネントは、サブネット自体の誤り制御と管理を容易にするために別々にプロトコルで維持されます。 彼らはオフセットと遅れの精密測定だけではなく、決定的な最大の誤り領域も提供します、ユーザーインタフェースが時間だけではなく、また、現代の品質も決定できるように。

There is no provision for peer discovery or virtual-circuit management
in NTP. Data integrity is provided by the IP and UDP checksums. No flow-
control or retransmission facilities are provided or necessary.
Duplicate detection is inherent in the processing algorithms. The
service can operate in a symmetric mode, in which servers and clients
are indistinguishable, yet maintain a small amount of state information,
or in client/server mode, in which servers need maintain no state other
than that contained in the client request. A lightweight association-
management capability, including dynamic reachability and variable poll-
rate mechanisms, is included only to manage the state information and
reduce resource requirements. Since only a single NTP message format is
used, the protocol is easily implemented and can be used in a variety of
solicited or unsolicited polling mechanisms.

同輩発見か仮想の回路管理への支給が全くNTPにありません。 IPとUDPチェックサムはデータの保全を提供します。流れコントロールかどんな「再-トランスミッション」施設も、提供していなくて、また必要ではありません。 写し検出は処理アルゴリズムに固有です。サービスは左右対称のモードかクライアント/サーバモードで運転できます。(サーバとクライアントは、それで区別がつかないのですが、少量の州の情報を保守します)。(クライアント要求に含まれている以外に、サーバはそれで状態を全く維持する必要はありません)。 ダイナミックな可到達性と可変投票レートメカニズムを含む軽量の協会管理能力は含まれていますが、州の情報を管理して、リソース要件を減らします。 ただ一つのNTPメッセージ・フォーマットだけが使用されているので、プロトコルを容易に実装して、さまざまな請求されたか求められていない世論調査メカニズムで使用できます。

It should be recognized that clock synchronization requires by its
nature long periods and multiple comparisons in order to maintain
accurate timekeeping. While only a few measurements are usually adequate
to reliably determine local time to within a second or so, periods of
many hours and dozens of measurements are required to resolve oscillator
skew and maintain local time to the order of a millisecond. Thus, the
accuracy achieved is directly dependent on the time taken to achieve it.
Fortunately, the frequency of measurements can be quite low and almost
always non-intrusive to normal net operations.

時計同期が正確な時間保持を維持するために本質的に長い期間と複数の比較を必要とすると認められるべきです。 通常、ほんのいくつかの測定値が現地時間からおよそ1秒を確かに決定するために適切である間、何時間も期間と何十もの測定が、1ミリセカンドの注文に振動子斜行を決議して、現地時間を維持するのに必要です。 したがって、達成された精度はわざわざそれが達成された直接依存しています。 幸い、測定値の頻度は、通常のネットの操作にかなり低くて、ほとんどいつも非押しつけがましい場合があります。

Implementation Model

実装モデル

In what may be the most common client/server model a client sends an NTP
message to one or more servers and processes the replies as received.
The server interchanges addresses and ports, overwrites certain fields
in the message, recalculates the checksum and returns the message
immediately. Information included in the NTP message allows the client
to determine the server time with respect to local time and adjust the
local clock accordingly. In addition, the message includes information
to calculate the expected timekeeping accuracy and reliability, as well
as select the best from possibly several servers.

クライアントは、受け取るように最も一般的なクライアント/サーバモデルであるかもしれないことで、1つ以上へのNTPメッセージにサーバを送って、回答をプロセスに送りますか? サーバは、アドレスとポートを交換して、メッセージのある一定の分野を上書きして、チェックサムについて再計算して、すぐに、メッセージを返します。 NTPメッセージに情報を含んでいるのに、クライアントは、現地時間に関してサーバ時間を決定して、それに従って、地方の時計を調整します。 さらに、メッセージは、予想された時間保持精度と信頼性について計算して、ことによるといくつかのサーバから最もよく選び抜くために情報を含んでいます。

While the client/server model may suffice for use on local nets
involving a public server and perhaps many workstation clients, the full
generality of NTP requires distributed participation of a number of
client/servers or peers arranged in a dynamically reconfigurable,
hierarchically distributed configuration. It also requires sophisticated
algorithms for association management, data manipulation and local-clock
control. Throughout the remainder of this document the term host refers
to an instantiation of the protocol on a local processor, while the term
peer refers to the instantiation of the protocol on a remote processor
connected by a network path.

クライアント/サーバモデルは公開サーバと恐らく多くのワークステーションクライアントにかかわりながら、ローカルのネットで使用に十分であるかもしれませんが、NTPの完全な一般性はダイナミックに再構成可能であって、階層的で分散している構成でアレンジされた多くのクライアント/サーバか同輩の分配された参加を必要とします。 また、それは協会管理、データ操作、および地方の時計制御装置のための高度なアルゴリズムを必要とします。 このドキュメントの残り中では、用語ホストは地方のプロセッサの上のプロトコルの具体化を示します、用語同輩がネットワーク経路によって接続されたリモートプロセッサの上のプロトコルの具体化を示しますが。

Figure 1<$&fig1> shows an implementation model for a host including
three processes sharing a partitioned data base, with a partition
dedicated to each peer, and interconnected by a message-passing system.
The transmit process, driven by independent timers for each peer,
collects information in the data base and sends NTP messages to the
peers. Each message contains the local timestamp when the message is
sent, together with previously received timestamps and other information
necessary to determine the hierarchy and manage the association. The
message transmission rate is determined by the accuracy required of the
local clock, as well as the accuracies of its peers.

図1<$とfig1>は仕切られたデータベースを共有する3つのプロセスを含むホストのために実装モデルを見せています、各同輩に捧げられて、メッセージ・パッシングシステムによってインタコネクトされたパーティションで。 プロセスを伝えて、各同輩のために独立しているタイマを動かして、データベースの中に情報を集めて、同輩へのメッセージをNTPに送ります。 メッセージを送るとき、各メッセージはローカルのタイムスタンプを含んでいます、階層構造を決定して、協会を経営するのに必要な以前に受信されたタイムスタンプと他の情報と共に。 メッセージ通信速度は地方の時計について必要である精度で決定します、同輩の精度と同様に。

The receive process receives NTP messages and perhaps messages in other
protocols, as well as information from directly connected radio clocks.
When an NTP message is received, the offset between the peer clock and
the local clock is computed and incorporated into the data base along
with other information useful for error determination and peer
selection. A filtering algorithm described in Section 4 improves the
accuracy by discarding inferior data.

受信してください。プロセスは他のプロトコルのNTPメッセージと恐らくメッセージを受け取ります、直接接続されたラジオ時計からの情報と同様に。 NTPメッセージが受信されているとき、同輩時計と地方の時計の間のオフセットは、計算されて、誤り決断と同輩選択の役に立つ他の情報に伴うデータベースに組み入れられます。 セクション4で説明されたフィルタリングアルゴリズムは、劣ったデータを捨てることによって、精度を改良します。

The update procedure is initiated upon receipt of a message and at other
times. It processes the offset data from each peer and selects the best
one using the algorithms of Section 4. This may involve many
observations of a few peers or a few observations of many peers,
depending on the accuracies required.

アップデート手順はメッセージを受け取り次第他の時に着手されます。 それは、各同輩からオフセットデータを処理して、セクション4のアルゴリズムを使用することで最も良い方を選択します。 これは多くの同輩の数人の同輩かいくつかの観測の多くの観測にかかわるかもしれなくて、精度に依存するのが必要です。

The local-clock process operates upon the offset data produced by the
update procedure and adjusts the phase and frequency of the local clock
using the mechanisms described in Section 5. This may result in either a
step-change or a gradual phase adjustment of the local clock to reduce
the offset to zero. The local clock provides a stable source of time
information to other users of the system and for subsequent reference by
NTP itself.

地方の時計プロセスは、アップデート手順で作り出されたオフセットデータを作動させて、セクション5で説明されたメカニズムを使用することで地方の時計のフェーズと頻度を調整します。 これは、オフセットをゼロまで抑えるために地方の時計の階段状変化かゆるやかな相調整のどちらかに結果として生じるかもしれません。 地方の時計はシステムの他のユーザとNTP自身によるその後の参照のために時間情報の安定した源を提供します。

Network Configurations

ネットワーク・コンフィギュレーション

The synchronization subnet is a connected network of primary and
secondary time servers, clients and interconnecting transmission paths.
A primary time server is directly synchronized to a primary reference
source, usually a radio clock. A secondary time server derives
synchronization, possibly via other secondary servers, from a primary
server over network paths possibly shared with other services. Under
normal circumstances it is intended that the synchronization subnet of
primary and secondary servers assumes a hierarchical-master-slave
configuration with the primary servers at the root and secondary servers
of decreasing accuracy at successive levels toward the leaves.

同期サブネットはプライマリの、そして、セカンダリの時間サーバ、クライアント、および内部連絡トランスミッション経路の接続ネットワークです。 プライマリ時間サーバは直接プライマリ照合線源、通常ラジオ時計と同期します。 セカンダリ時間サーバは同期を引き出します、ことによると他のセカンダリサーバで、ことによると他のサービスと共有されたネットワーク経路の上のプライマリサーバから。 平常な時の下では、プライマリの、そして、セカンダリのサーバの同期サブネットが、根とセカンダリサーバにおけるプライマリサーバがある階層的なマスター奴隷構成が連続したレベルで減少している精度であると葉に向かって仮定することを意図します。

Following conventions established by the telephone industry [BEL86], the
accuracy of each server is defined by a number called the stratum, with
the topmost level (primary servers) assigned as one and each level
downwards (secondary servers) in the hierarchy assigned as one greater
than the preceding level. With current technology and available radio
clocks, single-sample accuracies in the order of a millisecond can be
achieved at the network interface of a primary server. Accuracies of
this order require special care in the design and implementation of the
operating system and the local-clock mechanism, such as described in
Section 5.

電話業界[BEL86]によって設立されたコンベンションに続いて、それぞれのサーバの精度は層と呼ばれる数によって定義されます、ものとそれぞれが前のレベルよりすばらしい1つとして割り当てられた階層構造で下向きに(セカンダリサーバ)を平らにするので割り当てられた最上のレベル(プライマリサーバ)で。 現在の技術と利用可能なラジオ時計で、プライマリサーバのネットワーク・インターフェースで1ミリセカンドの注文におけるただ一つのサンプル精度を達成できます。このオーダーの精度はオペレーティングシステムの設計と実装と地方の時計メカニズムにおける特別な注意を必要とします、セクション5で説明されるように。

As the stratum increases from one, the single-sample accuracies
achievable will degrade depending on the network paths and local-clock
stabilities. In order to avoid the tedious calculations [BRA80]
necessary to estimate errors in each specific configuration, it is
useful to assume the mean measurement errors accumulate approximately in
proportion to the measured delay and dispersion relative to the root of
the synchronization subnet. Appendix H contains an analysis of errors,
including a derivation of maximum error as a function of delay and
dispersion, where the latter quantity depends on the precision of the
timekeeping system, frequency tolerance of the local clock and various
residuals. Assuming the primary servers are synchronized to standard
time within known accuracies, this provides a reliable, determistic
specification on timekeeping accuracies throughout the synchronization
subnet.

層が1から増えるのに従って、ネットワーク経路と地方の時計の安定性によって、達成可能なただ一つのサンプル精度は下がるでしょう。 それぞれの特定の構成で誤りを見積もるのに必要な退屈な計算[BRA80]を避けるために、意地悪な測定誤差が周囲に測定遅れと分散に比例して同期サブネットの根に比例して蓄積すると仮定するのは役に立ちます。 付録Hは誤りの分析を含んでいます、遅れと分散の関数(後者の量は時間保持システムの精度、地方の時計と様々な残差の周波数公差に応じた)として最大の誤りの派生を含んでいて。 プライマリサーバが知られている精度の中で標準時まで同期すると仮定して、これは同期サブネット中で時間保持精度に関する信頼できて、determisticな仕様を提供します。

Again drawing from the experience of the telephone industry, which
learned such lessons at considerable cost [ABA89], the synchronization
subnet topology should be organized to produce the highest accuracy, but
must never be allowed to form a loop. An additional factor is that each
increment in stratum involves a potentially unreliable time server which
introduces additional measurement errors. The selection algorithm used
in NTP uses a variant of the Bellman-Ford distributed routing algorithm
[37] to compute the minimum-weight spanning trees rooted on the primary
servers. The distance metric used by the algorithm consists of the
(scaled) stratum plus the synchronization distance, which itself
consists of the dispersion plus one-half the absolute delay. Thus, the
synchronization path will always take the minimum number of servers to
the root, with ties resolved on the basis of maximum error.

再び巨額の費用[ABA89]でそのようなレッスンを学んだ電話業界の経験から描いて、同期サブネットトポロジーに最も高い精度を生産するのが組織化されるべきですが、輪を決して形成させてはいけません。 追加要素は層の中の各増分が追加測定誤差を導入する潜在的に頼り無い時間サーバにかかわるということです。 NTPで使用される選択アルゴリズムは、プライマリサーバに根づいている最小の重さのスパニングツリーを計算するのにBellman-フォードの分配されたルーティング・アルゴリズム[37]の異形を使用します。 アルゴリズムで使用される距離メトリックは(スケーリングされる)の層と同期距離から成ります、そして、半分が絶対遅延を成らせます。(それ自体で、距離は分散から成ります)。 したがって、同期経路はいつもサーバの最小の数を根に取るでしょう、結びつきが最大の誤りに基づいた決議にされるので。

As a result of this design, the subnet reconfigures automatically in a
hierarchical-master-slave configuration to produce the most accurate and
reliable time, even when one or more primary or secondary servers or the
network paths between them fail. This includes the case where all normal
primary servers (e.g., highly accurate WWVB radio clock operating at the
lowest synchronization distances) on a possibly partitioned subnet fail,
but one or more backup primary servers (e.g., less accurate WWV radio
clock operating at higher synchronization distances) continue operation.
However, should all primary servers throughout the subnet fail, the
remaining secondary servers will synchronize among themselves while
distances ratchet upwards to a preselected maximum <169>infinity<170>
due to the well-known properties of the Bellman-Ford algorithm. Upon
reaching the maximum on all paths, a server will drop off the subnet and
free-run using its last determined time and frequency. Since these
computations are expected to be very precise, especially in frequency,
even extended outage periods can result in timekeeping errors not
greater than a few milliseconds per day with appropriately stabilized
oscillators (see Section 5).

このデザインの結果、サブネットは、発生させる階層的なマスター奴隷構成で1つ以上のプライマリの、または、セカンダリのサーバかそれらの間のネットワーク経路がいつ失敗さえするかを自動的に再構成します。 これはことによると仕切られたサブネットに関するすべての正常なプライマリサーバ(例えば、最も低い同期距離での高精度なWWVBラジオ時計操作)が失敗しますが、1つ以上のバックアップのプライマリサーバ(例えば、より高い同期距離でのそれほど正確でないWWVラジオ時計操作)が操作を続けているケースを含んでいます。 しかしながら、サブネット中のすべてのプライマリサーバが失敗すると、距離がBellman-フォードアルゴリズムのよく知られる特性のため上向きに前選択された最大の<169>無限に<170>をつめ車装置で動かしている間、残っているセカンダリサーバは自分たちの中で同期するでしょう。 すべての経路の最大に達すると、サーバは、その最後の決定している時間と頻度を費やすことでサブネットとフリーランを降ろすでしょう。 これらの計算が特に頻度で非常に正確であると予想されて、延ばされた供給停止の期間さえ適切に安定した振動子で数1日あたりのミリセカンドほど大きくない時間保持誤りをもたらすことができます(セクション5を見てください)。

In the case of multiple primary servers, the spanning-tree computation
will usually select the server at minimum synchronization distance.
However, when these servers are at approximately the same distance, the
computation may result in random selections among them as the result of
normal dispersive delays. Ordinarily, this does not degrade accuracy as
long as any discrepancy between the primary servers is small compared to
the synchronization distance. If not, the filter and selection
algorithms will select the best of the available servers and cast out
outlyers as intended.

複数のプライマリサーバの場合では、通常、スパニングツリー計算は最小の同期距離でサーバを選択するでしょう。 しかしながら、これらのサーバがほとんど同じ距離であるとき、計算は正常な分散的な遅れの結果としてそれらの中でランダム・セレクションをもたらすかもしれません。 通常、同期距離と比べて、プライマリサーバの間のどんな食い違いも小さい限り、これは精度を下げません。 そうでなければ、最善な利用可能なサーバを選択して、フィルタと選択アルゴリズムは、意図されるとしてoutlyersを捨てるでしょう。

Network Time Protocol

ネットワーク時間プロトコル

This section consists of a formal definition of the Network Time
Protocol, including its data formats, entities, state variables, events
and event-processing procedures. The specification is based on the
implementation model illustrated in Figure 1, but it is not intended
that this model is the only one upon which a specification can be based.
In particular, the specification is intended to illustrate and clarify
the intrinsic operations of NTP, as well as to serve as a foundation for
a more rigorous, comprehensive and verifiable specification.

このセクションはNetwork Timeプロトコルの公式の定義から成ります、データ形式、実体、州の変数、イベント、およびイベント現像処理を含んでいて。 仕様は図1で例証された実装モデルに基づいていますが、このモデルが仕様が基づくことができる唯一無二であることを意図しません。 特に、仕様は、NTPの本質的な操作を例証して、はっきりさせて、より厳しくて、包括的で証明可能な仕様の基礎として機能することを意図します。

Data Formats

データ形式

All mathematical operations expressed or implied herein are in two's-
complement, fixed-point arithmetic. Data are specified as integer or
fixed-point quantities, with bits numbered in big-endian fashion from
zero starting at the left, or high-order, position. Since various
implementations may scale externally derived quantities for internal
use, neither the precision nor decimal-point placement for fixed-point
quantities is specified. Unless specified otherwise, all quantities are
unsigned and may occupy the full field width with an implied zero
preceding bit zero. Hardware and software packages designed to work with
signed quantities will thus yield surprising results when the most
significant (sign) bit is set. It is suggested that externally derived,
unsigned fixed-point quantities such as timestamps be shifted right one
bit for internal use, since the precision represented by the full field
width is seldom justified.

2補数、固定小数点演算にはここに言い表されるか、または含意されたすべての数学の操作があります。 データは整数か定点量として指定されます、ゼロからの左の、または、高いオーダーの位置で始まるビッグエンディアンファッションでビットが付番されている状態で。 様々な実装が内部の使用のために外部的に派生している量をスケーリングするかもしれないので、定点量のための精度も小数点プレースメントも指定されません。 別の方法で指定されない場合、すべての量が、未署名であり、ビットゼロに先行する暗示しているゼロに全分野に及ぶ調査幅を占領するかもしれません。 最も重要な(サイン)ビットが設定されるとき、その結果、署名している量で働くように設計されたハードウェアとソフトウェアパッケージは驚異的な結果をもたらすでしょう。 外部的に派生して、未署名の定点量のタイムスタンプなどが内部の使用のために右の1ビット移行することが提案されます、全分野に及ぶ調査幅で表された精度がめったに正当化されないので。

Since NTP timestamps are cherished data and, in fact, represent the main
product of the protocol, a special timestamp format has been
established. NTP timestamps are represented as a 64-bit unsigned fixed-
point number, in seconds relative to 0h on 1 January 1900. The integer
part is in the first 32 bits and the fraction part in the last 32 bits.
This format allows convenient multiple-precision arithmetic and
conversion to Time Protocol representation (seconds), but does
complicate the conversion to ICMP Timestamp message representation
(milliseconds). The precision of this representation is about 200
picoseconds, which should be adequate for even the most exotic
requirements.

NTPタイムスタンプが大事にされたデータであり、事実上プロトコルの主産物を表すので、特別なタイムスタンプ形式は確立されました。 NTPタイムスタンプは秒に64ビットの未署名の固定ポイント番号として1900年1月1日の0hに比例して表されます。 最初の32ビットと最後の32ビットの小数部には整数部があります。 この形式は、Timeプロトコル表現(秒)に便利な複数の精度演算と変換を許しますが、ICMP Timestampメッセージ表現(ミリセカンド)に変換を複雑にします。 この表現の精度はおよそ200のピコセコンドです。(最もエキゾチックな要件にさえ、そのピコセコンドは適切であるべきです)。

Timestamps are determined by copying the current value of the local
clock to a timestamp when some significant event, such as the arrival of
a message, occurs. In order to maintain the highest accuracy, it is
important that this be done as close to the hardware or software driver
associated with the event as possible. In particular, departure
timestamps should be redetermined for each link-level retransmission. In
some cases a particular timestamp may not be available, such as when the
host is rebooted or the protocol first starts up. In these cases the 64-
bit field is set to zero, indicating the value is invalid or undefined.

メッセージの到着などのいくらかの重大な行事が起こるとき、タイムスタンプは、地方の時計の現行価値をタイムスタンプにコピーすることによって、決定します。 最も高い精度を維持するために、イベントが可能な状態で関連づけられたハードウェアかソフトウェアドライバーの近くようにこれをするのは重要です。 特に、出発タイムスタンプはそれぞれのリンク・レベル「再-トランスミッション」のために再決定するべきです。 いくつかの場合、特定のタイムスタンプは利用可能でないかもしれません、ホストがリブートされるか、またはプロトコルが最初に始動する時のように。 これらの場合では、値が無効であるか、または未定義であることを示して、64の噛み付いている分野はゼロに設定されます。

Note that since some time in 1968 the most significant bit (bit 0 of the
integer part) has been set and that the 64-bit field will overflow some
time in 2036. Should NTP be in use in 2036, some external means will be
necessary to qualify time relative to 1900 and time relative to 2036
(and other multiples of 136 years). Timestamped data requiring such
qualification will be so precious that appropriate means should be
readily available. There will exist an 200-picosecond interval,
henceforth ignored, every 136 years when the 64-bit field will be zero
and thus considered invalid.

1968のいつかの時間以来、最も重要なビット(整数部のビット0)が設定されていて、64ビットの分野が2036年にいつかあふれることに注意してください。 NTPが2036年に使用中であるなら、いくつかの外部の手段が、2036(そして、136年の他の倍数)に比例して1900に比例した時間と時間に資格を与えるために必要になるでしょう。 そのような資格を必要とするTimestampedデータが非常に貴重になるので、適切な手段は容易に利用可能であるべきです。 64ビットの分野がゼロになる136年あたり1回の200ピコセコンドの今後は無視された間隔とその結果、考えられた病人は存在するでしょう。

State Variables and Parameters

州の変数とパラメタ

Following is a summary of the various state variables and parameters
used by the protocol. They are separated into classes of system
variables, which relate to the operating system environment and local-
clock mechanism; peer variables, which represent the state of the
protocol machine specific to each peer; packet variables, which
represent the contents of the NTP message; and parameters, which
represent fixed configuration constants for all implementations of the
current version. For each class the description of the variable is
followed by its name and the procedure or value which controls it. Note
that variables are in lower case, while parameters are in upper case.
Additional details on formats and use are presented in later sections
and Appendices.

以下に、プロトコルによって使用される様々な州の変数とパラメタの概要があります。 それらはオペレーティングシステム環境とローカルの時計メカニズムに関連するシステム変数のクラスに切り離されます。 同輩変数(変数は各同輩にとって、特定のプロトコルマシンの状態を表します)。 パケット変数(変数はNTPメッセージのコンテンツを表します)。 そして、パラメタ。(そのパラメタは最新版のすべての実装のために固定構成定数を表します)。 各クラスにおいて、それを制御する名前と手順か値が変数の記述のあとに続いています。 大文字の中にパラメタがある間の低い場合には変数があることに注意してください。 形式と使用に関する追加詳細は後のセクションとAppendicesに提示されます。

Common Variables

一般的な変数

The following variables are common to two or more of the system, peer
and packet classes. Additional variables are specific to the optional
authentication mechanism as described in Appendix C. When necessary to
distinguish between common variables of the same name, the variable
identifier will be used.

以下の変数はシステム、同輩、および2人以上のパケットのクラスに共通です。 追加変数が同じ名前の一般的な変数を見分けるのに必要なAppendix C.Whenで説明されるように任意の認証機構に特定である、変数名は使用されるでしょう。

Peer Address (peer.peeraddr, pkt.peeraddr), Peer Port (peer.peerport,
pkt.peerport): These are the 32-bit Internet address and 16-bit port
number of the peer.

同輩Address(peer.peeraddr、pkt.peeraddr)、Peer Port(peer.peerport、pkt.peerport): これらは、同輩の32ビットのインターネット・アドレスと16ビットのポートナンバーです。

Host Address (peer.hostaddr, pkt.hostaddr), Host Port (peer.hostport,
pkt.hostport): These are the 32-bit Internet address and 16-bit port
number of the host. They are included among the state variables to
support multi-homing.

Address(peer.hostaddr、pkt.hostaddr)、Host Port(peer.hostport、pkt.hostport)を接待してください: これらは、ホストの32ビットのインターネット・アドレスと16ビットのポートナンバーです。 それらは、マルチホーミングをサポートするために州の変数の中に含まれています。

Leap Indicator (sys.leap, peer.leap, pkt.leap): This is a two-bit code
warning of an impending leap second to be inserted in the NTP timescale.
The bits are set before 23:59 on the day of insertion and reset after
00:00 on the following day. This causes the number of seconds (rollover
interval) in the day of insertion to be increased or decreased by one.
In the case of primary servers the bits are set by operator
intervention, while in the case of secondary servers the bits are set by
the protocol. The two bits, bit 0 and bit 1, respectively, are coded as
follows:
@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

Indicator(sys.leap、peer.leap、pkt.leap)を跳ねさせてください: これは差し迫っている閏秒がNTPスケールに挿入されるという安っぽいコード警告です。 ビットは、挿入の日23:59の前に設定されて、00:00の後にその翌日リセットされます。 これは、挿入の日の(ロールオーバー間隔)の間の秒数が1つ増強されるか、または減少することを引き起こします。 プライマリサーバの場合では、ビットはオペレータ介入で設定されます、セカンダリサーバの場合では、ビットがプロトコルによって設定されますが。 2ビット、ビット0、およびビット1は以下の通りそれぞれコード化されます: @Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

00, no warning

00 警告しないこと

01, last minute has 61 seconds

01 土壇場には、61秒があります。

10, last minute has 59 seconds

10 土壇場には、59秒があります。

11, alarm condition (clock not synchronized)

11 アラーム状態(連動しない時計)

@Z_TBL_END =

@Z_TBL_終わり=

In all except the alarm condition (112), NTP itself does nothing with
these bits, except pass them on to the time-conversion routines that are
not part of NTP. The alarm condition occurs when, for whatever reason,
the local clock is not synchronized, such as when first coming up or
after an extended period when no primary reference source is available.

中では、すべてが、(112) NTP自身がこれらのビットで何もしないというアラーム条件を除いて、NTPの一部でない時間変換ルーチンにそれらを通過します。 地方の時計がいかなる理由でも連動しないとき、アラーム状態は現れます、長期間の上か長期間の後の最初の来るのが利用可能であるプライマリ照合線源でない時のように。

Mode (peer.mode, pkt.mode): This is an integer indicating the
association mode, with values coded as follows:

モード(peer.mode、pkt.mode): これは値が以下の通りコード化されている状態で協会モードを示す整数です:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

0, unspecified

0、不特定

1, symmetric active

1 左右対称の能動態

2, symmetric passive

2 左右対称の受動態

3, client

3 クライアント

4, server

4 サーバ

5, broadcast

5 放送

6, reserved for NTP control messages

NTPコントロールメッセージのために予約された6

7, reserved for private use

私的使用目的で予約された7

@Z_TBL_END =

@Z_TBL_終わり=

Stratum (sys.stratum, peer.stratum, pkt.stratum): This is an integer
indicating the stratum of the local clock, with values defined as
follows:

層(sys.stratum、peer.stratum、pkt.stratum): これは値が以下の通り定義されている状態で地方の時計の層を示す整数です:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

0, unspecified

0、不特定

1, primary reference (e.g.,, calibrated atomic clock,, radio clock)

1 プライマリ参照(例えば、較正された原子時計、ラジオ時計)

2-255, secondary reference (via NTP)

2-255 セカンダリ参照(NTPを通した)

@Z_TBL_END =

@Z_TBL_終わり=

For comparison purposes a value of zero is considered greater than any
other value. Note that the maximum value of the integer encoded as a
packet variable is limited by the parameter NTP.MAXSTRATUM.

比較目的のために、ゼロの値はいかなる他の値よりもすばらしいと考えられます。 パケット変数としてコード化された整数の最大値がパラメタNTP.MAXSTRATUMによって制限されることに注意してください。

Poll Interval (sys.poll, peer.hostpoll, peer.peerpoll, pkt.poll): This
is a signed integer indicating the minimum interval between transmitted
messages, in seconds as a power of two. For instance, a value of six
indicates a minimum interval of 64 seconds.

Interval(sys.poll、peer.hostpoll、peer.peerpoll、pkt.poll)に投票してください: これは秒に2のパワーとして伝えられたメッセージの最小間隔を示す署名している整数です。 例えば、6の値は64秒の最小間隔を示します。

Precision (sys.precision, peer.precision, pkt.precision): This is a
signed integer indicating the precision of the various clocks, in
seconds to the nearest power of two. The value must be rounded to the
next larger power of two; for instance, a 50-Hz (20 ms) or 60-Hz (16.67
ms) power-frequency clock would be assigned the value -5 (31.25 ms),
while a 1000-Hz (1 ms) crystal-controlled clock would be assigned the
value -9 (1.95 ms).

精度(sys.precision、peer.precision、pkt.precision): これは秒の様々な時計の精度を2の最も近いパワーに示す署名している整数です。 2の次の、より大きいパワーに値を四捨五入しなければなりません。 例えば、値-5(31.25ms)は50Hz(20ms)の、または、60Hz(16.67ms)の電力周波数時計に割り当てられるでしょう、値-9(1.95ms)は1000Hz(1ms)の水晶で制御された時計に割り当てられるでしょうが。

Root Delay (sys.rootdelay, peer.rootdelay, pkt.rootdelay): This is a
signed fixed-point number indicating the total roundtrip delay to the
primary reference source at the root of the synchronization subnet, in
seconds. Note that this variable can take on both positive and negative
values, depending on clock precision and skew.

Delay(sys.rootdelay、peer.rootdelay、pkt.rootdelay)を根づかせてください: これは同期サブネットの根で総往復の遅れをプライマリ照合線源まで示す署名している固定小数点数です、秒に。 時計精度と斜行によって、この変数が積極的なものと同様に否定的な値を呈することができることに注意してください。

Root Dispersion (sys.rootdispersion, peer.rootdispersion,
pkt.rootdispersion): This is a signed fixed-point number indicating the
maximum error relative to the primary reference source at the root of
the synchronization subnet, in seconds. Only positive values greater
than zero are possible.

ディアスポラ(sys.rootdispersion、peer.rootdispersion、pkt.rootdispersion)を根づかせてください: これは同期サブネットの根のプライマリ照合線源に比例して最大の誤りを示す署名している固定小数点数です、秒に。 ゼロより大きい正の数だけが可能です。

Reference Clock Identifier (sys.refid, peer.refid, pkt.refid): This is a
32-bit code identifying the particular reference clock. In the case of
stratum 0 (unspecified) or stratum 1 (primary reference source), this is
a four-octet, left-justified, zero-padded ASCII string, for example (see
Appendix A for comprehensive list):

参照Clock Identifier(sys.refid、peer.refid、pkt.refid): これは特定の基準クロックを特定する32ビットのコードです。 層0(不特定の)か層1(プライマリ照合線源)の場合では、例えば、これは4八重奏の、そして、左で正当で、無そっと歩いているASCIIストリング(総覧に関してAppendix Aを見る)です:

@Z_TBL_BEG = COLUMNS(3), DIMENSION(IN), COLWIDTHS(E2,E2,E5),
WIDTH(4.1700), ABOVE(.1670), BELOW(.0830), HGUTTER(.3330),
BOX(Z_SINGLE), KEEP(ON), ALIGN(CT), L1(R1C0..R1C3)

@Z_L1、TBL_は=コラム(3)、寸法(IN)、COLWIDTHS(5Eに2ユーロの、そして、2ユーロの)、幅(4.1700)、上(.1670)、下(.0830)を請って、HGUTTER(.3330)(箱(Z_シングル)、生活費(ON))は(コネチカット)を並べます。(R1C0..R1C3)

@Z_TBL_BODY = TABLE CENTER, TABLE HEADER, TABLE HEADER

@Z_TBL_ボディー=テーブルセンター、テーブルヘッダーはヘッダーをテーブルの上に置きます。

Stratum, Code, Meaning

層、コード、意味

@Z_TBL_BODY = TABLE CENTER, TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルセンター、テーブルテキストはテキストを見送ります。

0, DCN, DCN routing protocol

0 DCN、DCNルーティング・プロトコル

0, TSP, TSP time protocol

0 TSP、TSP時間プロトコル

1, ATOM, Atomic clock (calibrated)

1 ATOM、Atomic時計(較正されます)

1, WWVB, WWVB LF (band 5) radio

1 WWVB、WWVB LF(バンド5)ラジオ

1, GOES, GOES UHF (band 9) satellite

1 ゴエス、ゴエスUHF(バンド9)衛星

@Z_TBL_BODY = TABLE CENTER, TABLE HEADER, TABLE HEADER

@Z_TBL_ボディー=テーブルセンター、テーブルヘッダーはヘッダーをテーブルの上に置きます。

1, WWV, WWV HF (band 7) radio

1 WWV、WWV HF(バンド7)ラジオ

@Z_TBL_END =

@Z_TBL_終わり=

In the case of stratum 2 and greater (secondary reference) this is the
four-octet Internet address of the peer selected for synchronization.

層2に関するケース、 よりすばらしい、(セカンダリ参照) これは同輩のインターネット・アドレスが同期のために選択した4八重奏です。

Reference Timestamp (sys.reftime, peer.reftime, pkt.reftime): This is
the local time, in timestamp format, when the local clock was last
updated. If the local clock has never been synchronized, the value is
zero.

参照Timestamp(sys.reftime、peer.reftime、pkt.reftime): これはタイムスタンプ形式において現地時間です。(その時、地方の時計はアップデートされました)。 地方の時計が一度も連動したことがないなら、値はゼロです。

Originate Timestamp (peer.org, pkt.org): This is the local time, in
timestamp format, at the peer when its latest NTP message was sent. If
the peer becomes unreachable the value is set to zero.

Timestamp(peer.org、pkt.org)を溯源してください: 最新のNTPメッセージを送ったとき、これは同輩におけるタイムスタンプ形式において現地時間です。 同輩が手が届かなくなるなら、値はゼロに設定されます。

Receive Timestamp (peer.rec, pkt.rec): This is the local time, in
timestamp format, when the latest NTP message from the peer arrived. If
the peer becomes unreachable the value is set to zero.

Timestamp(peer.rec、pkt.rec)を受けてください: これはタイムスタンプ形式において現地時間です。(その時、同輩からの最新のNTPメッセージは到着しました)。 同輩が手が届かなくなるなら、値はゼロに設定されます。

Transmit Timestamp (peer.xmt, pkt.xmt): This is the local time, in
timestamp format, at which the NTP message departed the sender.

Timestamp(peer.xmt、pkt.xmt)を伝えてください: これはタイムスタンプ形式において現地時間です。(NTPメッセージはそれで送付者を去りました)。

System Variables

システム変数

Table 1<$&tab1> shows the complete set of system variables. In addition
to the common variables described previously, the following variables
are used by the operating system in order to synchronize the local
clock.

テーブル1<$とtab1>は完全なセットのシステム変数を示しています。 以前に説明された一般的な変数に加えて、以下の変数は、地方の時計を連動させるのにオペレーティングシステムで使用されます。

Local Clock (sys.clock): This is the current local time, in timestamp
format. Local time is derived from the hardware clock of the particular
machine and increments at intervals depending on the design used. An
appropriate design, including slewing and skew-Compensation mechanisms,
is described in Section 5.

地方の時計(sys.clock): これはタイムスタンプ形式における現地時間の電流です。 使用されるデザインによる間隔を置いて、特定のマシンと増分のハードウェア時計から現地時間を得ます。 旋回と斜行補償メカニズムを含む適切なデザインはセクション5で説明されます。

Clock Source (sys.peer): This is a selector identifying the current
synchronization source. Usually this will be a pointer to a structure
containing the peer variables. The special value NULL indicates there is
no currently valid synchronization source.

ソース(sys.peer)の時間を計ってください: これは現在の同期ソースを特定するセレクタです。 通常、これは同輩変数を含む構造への指針になるでしょう。 特別な値のNULLは、どんな現在有効な同期ソースもないのを示します。

Peer Variables

同輩変数

Table 2 shows the complete set of peer variables. In addition to the
common variables described previously, the following variables are used
by the peer management and measurement functions.

テーブル2は完全なセットの同輩変数を示しています。 以前に説明された一般的な変数に加えて、以下の変数は同輩管理と測定機能によって使用されます。

Configured Bit (peer.config): This is a bit indicating that the
association was created from configuration information and should not be
demobilized if the peer becomes unreachable.

構成されたビット(peer.config): これは、協会が設定情報から創設されて、同輩が手が届かなくなるなら解隊されるべきでないのを少し示しています。

Update Timestamp (peer.update): This is the local time, in timestamp
format, when the most recent NTP message was received. It is used in
calculating the skew dispersion.

タイムスタンプ(peer.update)をアップデートしてください: これはタイムスタンプ形式において現地時間です。(その時、最新のNTPメッセージは受け取られました)。 それは斜行分散について計算する際に使用されます。

Reachability Register (peer.reach): This is a shift register of
NTP.WINDOW bits used to determine the reachability status of the peer,
with bits entering from the least significant (rightmost) end. A peer is
considered reachable if at least one bit in this register is set to one.

可到達性レジスタ(peer.reach): これは同輩の可到達性状態を決定するのに使用されるNTP.WINDOWビットのシフトレジスタです、ビットに最も重要でない(一番右の)終わりから入っていて。 このレジスタの少なくとも1ビットが1つに設定されるなら、同輩は届くと考えられます。

Peer Timer (peer.timer): This is an integer counter used to control the
interval between transmitted NTP messages. Once set to a nonzero value,
the counter decrements at one-second intervals until reaching zero, at
which time the transmit procedure is called. Note that the operation of
this timer is independent of local-clock updates, which implies that the
timekeeping system and interval-timer system architecture must be
independent of each other.<$&tab2>

同輩タイマ(peer.timer): これは伝えられたNTPメッセージの間隔を制御するのに使用される整数カウンタです。 手順を伝えてください。一度非ゼロ値、2分の1のどの時にゼロに達するかまでの間隔で、カウンタ減少するのにセットする、呼ばれます。 このタイマの操作が地方の時計アップデートから独立しているというメモ。(そのメモは時間保持システムとインタバルタイマシステム構築が互いの如何にかかわらず. <$とtab2>であるに違いないことを含意します)。

Packet Variables

パケット変数

Table 3<$&tab3> shows the complete set of packet variables. In addition
to the common variables described previously, the following variables
are defined.

テーブル3<$とtab3>は完全なセットのパケット変数を示しています。 以前に説明された一般的な変数に加えて、以下の変数は定義されます。

Version Number (pkt.version): This is an integer indicating the version
number of the sender. NTP messages will always be sent with the current
version number NTP.VERSION and will always be accepted if the version
number matches NTP.VERSION. Exceptions may be advised on a case-by-case
basis at times when the version number is changed. Specific guidelines
for interoperation between this version and previous versions of NTP are
summarized in Appendix D.

バージョン番号(pkt.version): これは送付者のバージョン番号を示す整数です。 NTPメッセージを最新版番号NTP.VERSIONと共にいつも送って、バージョン番号がNTP.VERSIONに合っていると、いつも受け入れるでしょう。 例外はケースバイケースで時には、バージョン番号がいつ変えられるよう教えられるかもしれません。 このバージョンとNTPの前のバージョンの間のinteroperationのための特別な基準はAppendix Dにまとめられます。

Clock-Filter Variables

時計フィルタ変数

When the filter and selection algorithms suggested in Section 4 are
used, the following state variables are defined in addition to the
variables described previously.

セクション4に示されたフィルタと選択アルゴリズムが使用されているとき、以下の州の変数は以前に説明された変数に加えて定義されます。

Filter Register (peer.filter): This is a shift register of NTP.SHIFT
stages, where each stage stores a 3-tuple consisting of the measured
delay, measured offset and calculated dispersion associated with a
single observation. These 3-tuples enter from the most significant
(leftmost) right and are shifted towards the least significant
(rightmost) end and eventually discarded as new observations arrive.

レジスタ(peer.filter)をフィルターにかけてください: これは各ステージが測定遅れから成る3-tupleを保存するところで測定されたオフセットの、そして、計算された分散がただ一つの観測に関連づけたNTP.SHIFTステージのシフトレジスタです。 新しい観測が到着するとき、これらの3-tuplesは最も重要な(一番左)権利から入って、最も重要でない(一番右の)終わりに向かって変更して、結局、捨てられます。

Valid Data Counter (peer.valid): This is an integer counter indicating
the valid samples remaining in the filter register. It is used to
determine the reachability state and when the poll interval should be
increased or decreased.

有効データは(peer.valid)を打ち返します: これはフィルタに残っている有効なサンプルが登録されるのを示す整数カウンタです。 それは、投票間隔がいつ可到達性状態、増強されるべきであるか、または減少するべきであるかを決定するのに使用されます。

Offset (peer.offset): This is a signed, fixed-point number indicating
the offset of the peer clock relative to the local clock, in seconds.

相殺してください(peer.offset): これは同輩のオフセットが秒に地方の時計に比例して時間を計る署名している固定小数点数表示です。

Delay (peer.delay): This is a signed fixed-point number indicating the
roundtrip delay of the peer clock relative to the local clock over the
network path between them, in seconds. Note that this variable can take
on both positive and negative values, depending on clock precision and
skew-error accumulation.

延着してください(peer.delay): これはそれらの間のネットワーク経路の上の地方の時計に比例して同輩時計の往復の遅れを示す署名している固定小数点数です、秒に。 時計精度と斜行エラー蓄積によって、この変数が積極的なものと同様に否定的な値を呈することができることに注意してください。

Dispersion (peer.dispersion): This is a signed fixed-point number
indicating the maximum error of the peer clock relative to the local
clock over the network path between them, in seconds. Only positive
values greater than zero are possible.

ディアスポラ(peer.dispersion): これはそれらの間のネットワーク経路の上の地方の時計に比例して同輩時計の最大の誤りを示す署名している固定小数点数です、秒に。 ゼロより大きい正の数だけが可能です。

Authentication Variables

認証変数

When the authentication mechanism suggested in Appendix C is used, the
following state variables are defined in addition to the variables
described previously. These variables are used only if the optional
authentication mechanism described in Appendix C is implemented.

Appendix Cに示された認証機構が使用されているとき、以下の州の変数は以前に説明された変数に加えて定義されます。 Appendix Cで説明された任意の認証機構が実装される場合にだけ、これらの変数は使用されています。

Authentication Enabled Bit (peer.authenable): This is a bit indicating
that the association is to operate in the authenticated mode.

認証はビット(peer.authenable)を可能にしました: これは、協会が認証されたモードで作動することになっているのを少し示しています。

Authenticated Bit (peer.authentic): This is a bit indicating that the
last message received from the peer has been correctly authenticated.

認証されたビット(peer.authentic): これは、同輩から受け取られた最後のメッセージが正しく認証されたのを少し示しています。

Key Identifier (peer.hostkeyid, peer.peerkeyid, pkt.keyid): This is an
integer identifying the cryptographic key used to generate the message-
authentication code.

主要なIdentifier(peer.hostkeyid、peer.peerkeyid、pkt.keyid): これはメッセージ認証がコードであると生成するのにおいて中古の暗号化キーを特定する整数です。

Cryptographic Keys (sys.key): This is a set of 64-bit DES keys. Each key
is constructed as in the Berkeley Unix distributions, which consists of
eight octets, where the seven low-order bits of each octet correspond to
the DES bits 1-7 and the high-order bit corresponds to the DES odd-
parity bit 8.

暗号化キー(sys.key): これは1セットの64ビットのDESキーです。 各キーはバークレーのUnix配のように組み立てられます(8つの八重奏から成ります)、それぞれの八重奏の7下位のビットがDESビット1-7に対応している、高位のビットがDESの変なパリティビット8に対応しているところで。

Crypto-Checksum (pkt.check): This is a crypto-checksum computed by the
encryption procedure.

暗号チェックサム(pkt.check): これは暗号化手順によって計算された暗号チェックサムです。

Parameters

パラメタ

Table 4<$&tab4> shows the parameters assumed for all implementations
operating in the Internet system. It is necessary to agree on the values
for these parameters in order to avoid unnecessary network overheads and
stable peer associations. The following parameters are assumed fixed and
applicable to all associations.

テーブル4<$とtab4>は、すべての実装のために想定されたパラメタがインターネット・システムで作動するのを示します。 これらのパラメタのために値に同意するのが、不要なネットワークオーバーヘッドと安定した同輩協会を避けるのに必要です。 以下のパラメタはすべての協会に修理されていて適切であると思われます。

Version Number (NTP.VERSION): This is the current NTP version number
(3).

バージョン番号(NTP.VERSION): これは現在のNTPバージョン番号(3)です。

NTP Port (NTP.PORT): This is the port number (123) assigned by the
Internet Assigned Numbers Authority to NTP.

NTPは(NTP.PORT)を移植します: これはインターネットAssigned民数記AuthorityによってNTPに割り当てられたポートナンバー(123)です。

Maximum Stratum (NTP.MAXSTRATUM): This is the maximum stratum value that
can be encoded as a packet variable, also interpreted as
<169>infinity<170> or unreachable by the subnet routing algorithm.

最大の層(NTP.MAXSTRATUM): これはサブネットルーティング・アルゴリズムによって可変であるか、<169>無限<170>として解釈されたか手の届かないもパケットとしてコード化できる最大の層の値です。

Maximum Clock Age (NTP.MAXAGE): This is the maximum interval a reference
clock will be considered valid after its last update, in seconds.

最大の時計時代(NTP.MAXAGE): これは秒の基準クロックがアップデートの後に有効であると考えられる最大の間隔です。

Maximum Skew (NTP.MAXSKEW): This is the maximum offset error due to skew
of the local clock over the interval determined by NTP.MAXAGE, in
seconds. The ratio <$Ephi~=~roman {NTP.MAXSKEW over NTP.MAXAGE}> is
interpreted as the maximum possible skew rate due to all causes.

最大の斜行(NTP.MAXSKEW): NTP.MAXAGEで断固とした間隔の間の地方の時計の斜行のためにこれは最大の相殺誤謬です、秒に。 比率<$Ephi~が~、とローマン体であることで等しい、NTP.MAXAGEの上のNTP.MAXSKEW、>は可能な最大としてすべての原因に斜行率の当然の状態で解釈されます。

Maximum Distance (NTP.MAXDISTANCE): When the selection algorithm
suggested in Section 4 is used, this is the maximum synchronization
distance for peers acceptable for synchronization.

最大距離(NTP.MAXDISTANCE): セクション4に示された選択アルゴリズムが使用されているとき、これは同期において、許容できる同輩にとって、最大の同期距離です。

Minimum Poll Interval (NTP.MINPOLL): This is the minimum poll interval
allowed by any peer of the Internet system, in seconds to a power of
two.

最小の投票間隔(NTP.MINPOLL): これはインターネット・システムのどんな同輩によっても許された、最小の投票間隔です、2のパワーへの秒に。

Maximum Poll Interval (NTP.MAXPOLL): This is the maximum poll interval
allowed by any peer of the Internet system, in seconds to a power of
two.

最大の投票間隔(NTP.MAXPOLL): これはインターネット・システムのどんな同輩によっても許された、最大の投票間隔です、2のパワーへの秒に。

Minimum Select Clocks (NTP.MINCLOCK): When the selection algorithm
suggested in Section 4 is used, this is the minimum number of peers
acceptable for synchronization.

最小の選んだ時計(NTP.MINCLOCK): セクション4に示された選択アルゴリズムが使用されているとき、これは同期において、許容できる同輩の最小の数です。

Maximum Select Clocks (NTP.MAXCLOCK): When the selection algorithm
suggested in Section 4 is used, this is the maximum number of peers
considered for selection.

最大の選んだ時計(NTP.MAXCLOCK): セクション4に示された選択アルゴリズムが使用されているとき、これは選択のために考えられた同輩の最大数です。

Minimum Dispersion (NTP.MINDISPERSE): When the filter algorithm
suggested in Section 4 is used, this is the minimum dispersion increment
for each stratum level, in seconds.

最小のディアスポラ(NTP.MINDISPERSE): セクション4に示されたフィルタアルゴリズムが使用されているとき、これはそれぞれの層のレベルのための最小の分散増分です、秒に。

Maximum Dispersion (NTP.MAXDISPERSE): When the filter algorithm
suggested in Section 4 is used, this is the maximum peer dispersion and
the dispersion assumed for missing data, in seconds.

最大のディアスポラ(NTP.MAXDISPERSE): セクション4に示されたフィルタアルゴリズムが使用されているとき、これは、最大の同輩分散と欠測値のために帯びられた分散です、秒に。

Reachability Register Size (NTP.WINDOW): This is the size of the
reachability register (peer.reach), in bits.

可到達性レジスタサイズ(NTP.WINDOW): これはビットの可到達性レジスタ(peer.reach)のサイズです。

Filter Size (NTP.SHIFT): When the filter algorithm suggested in Section
4 is used, this is the size of the clock filter (peer.filter) shift
register, in stages.
Filter Weight (NTP.FILTER): When the filter algorithm suggested in
Section 4 is used, this is the weight used to compute the filter
dispersion.

サイズ(NTP.SHIFT)をフィルターにかけてください: セクション4に示されたフィルタアルゴリズムが使用されているとき、これは時計フィルタ(peer.filter)シフトレジスタのサイズです、段階で。 重さ(NTP.FILTER)をフィルターにかけてください: セクション4に示されたフィルタアルゴリズムが使用されているとき、これはフィルタ分散を計算するのに使用される重りです。

Select Weight (NTP.SELECT): When the selection algorithm suggested in
Section 4 is used, this is the weight used to compute the select
dispersion.

重さ(NTP.SELECT)を選択してください: セクション4に示された選択アルゴリズムが使用されているとき、これは選んだ分散を計算するのに使用される重りです。

Modes of Operation

運転モード

Except in broadcast mode, an NTP association is formed when two peers
exchange messages and one or both of them create and maintain an
instantiation of the protocol machine, called an association. The
association can operate in one of five modes as indicated by the host-
mode variable (peer.mode): symmetric active, symmetric passive, client,
server and broadcast, which are defined as follows:

協会は、2人の同輩がメッセージを交換すると放送モードを除いて、NTP協会が形成されて、それらのものか両方がプロトコルマシンの具体化を作成して、維持すると呼びました。 協会はホストモード変数(peer.mode)によって示されるように5つのモードの1つで作動できます: 左右対称のアクティブで、左右対称の受動態、クライアント、サーバ、および放送:(それは、以下の通り定義されます)。

Symmetric Active (1): A host operating in this mode sends periodic
messages regardless of the reachability state or stratum of its peer. By
operating in this mode the host announces its willingness to synchronize
and be synchronized by the peer.

左右対称のアクティブな(1): このモードで働いているホストは同輩の可到達性状態か層にかかわらず周期的なメッセージを送ります。 このモードで作動することによって、ホストは連動している、同輩によって連動させられるべき意欲を発表します。

Symmetric Passive (2): This type of association is ordinarily created
upon arrival of a message from a peer operating in the symmetric active
mode and persists only as long as the peer is reachable and operating at
a stratum level less than or equal to the host; otherwise, the
association is dissolved. However, the association will always persist
until at least one message has been sent in reply. By operating in this
mode the host announces its willingness to synchronize and be
synchronized by the peer.

左右対称の受動態(2): このタイプの協会は、通常、左右対称のアクティブなモードで働いている同輩からのメッセージの到着のときに創設されて、単に同輩が届いて、層のレベルで、よりホストを手術している限り、持続します。 さもなければ、協会は解散します。 しかしながら、協会は回答で少なくとも1つのメッセージを送るまでいつも持続するでしょう。 このモードで作動することによって、ホストは連動している、同輩によって連動させられるべき意欲を発表します。

Client (3): A host operating in this mode sends periodic messages
regardless of the reachability state or stratum of its peer. By
operating in this mode the host, usually a LAN workstation, announces
its willingness to be synchronized by, but not to synchronize the peer.

クライアント(3): このモードで働いているホストは同輩の可到達性状態か層にかかわらず周期的なメッセージを送ります。 このモードで作動することによって、ホスト(通常LANワークステーション)は同輩を連動させるのではなく、連動される意欲を発表します。

Server (4): This type of association is ordinarily created upon arrival
of a client request message and exists only in order to reply to that
request, after which the association is dissolved. By operating in this
mode the host, usually a LAN time server, announces its willingness to
synchronize, but not to be synchronized by the peer.

サーバ(4): このタイプの協会が通常、クライアント要求メッセージの到着のときに創設されて、存在する、唯一、その要求に答えてください。(その時、協会は解散しました後)。 このモードで作動することによって、ホスト(通常LAN時間サーバ)は同輩は連動するのではなく、連動する意欲を発表します。

Broadcast (5): A host operating in this mode sends periodic messages
regardless of the reachability state or stratum of the peers. By
operating in this mode the host, usually a LAN time server operating on
a high-speed broadcast medium, announces its willingness to synchronize
all of the peers, but not to be synchronized by any of them.

放送(5): このモードで働いているホストは同輩の可到達性状態か層にかかわらず周期的なメッセージを送ります。 このモードで作動することによって、ホスト(通常高速放送媒体を手術するLAN時間サーバ)は彼らのどれかによって連動されるのではなく、同輩を皆、連動させる意欲を発表します。

A host operating in client mode occasionally sends an NTP message to a
host operating in server mode, perhaps right after rebooting and at
periodic intervals thereafter. The server responds by simply
interchanging addresses and ports, filling in the required information
and returning the message to the client. Servers need retain no state
information between client requests, while clients are free to manage
the intervals between sending NTP messages to suit local conditions. In
these modes the protocol machine described in this document can be
considerably simplified to a simple remote-procedure-call mechanism
without significant loss of accuracy or robustness, especially when
operating over high-speed LANs.

A host operating in client mode occasionally sends an NTP message to a host operating in server mode, perhaps right after rebooting and at periodic intervals thereafter. The server responds by simply interchanging addresses and ports, filling in the required information and returning the message to the client. Servers need retain no state information between client requests, while clients are free to manage the intervals between sending NTP messages to suit local conditions. In these modes the protocol machine described in this document can be considerably simplified to a simple remote-procedure-call mechanism without significant loss of accuracy or robustness, especially when operating over high-speed LANs.

In the symmetric modes the client/server distinction (almost)
disappears. Symmetric passive mode is intended for use by time servers
operating near the root nodes (lowest stratum) of the synchronization
subnet and with a relatively large number of peers on an intermittent
basis. In this mode the identity of the peer need not be known in
advance, since the association with its state variables is created only
when an NTP message arrives. Furthermore, the state storage can be
reused when the peer becomes unreachable or is operating at a higher
stratum level and thus ineligible as a synchronization source.

In the symmetric modes the client/server distinction (almost) disappears. Symmetric passive mode is intended for use by time servers operating near the root nodes (lowest stratum) of the synchronization subnet and with a relatively large number of peers on an intermittent basis. In this mode the identity of the peer need not be known in advance, since the association with its state variables is created only when an NTP message arrives. Furthermore, the state storage can be reused when the peer becomes unreachable or is operating at a higher stratum level and thus ineligible as a synchronization source.

Symmetric active mode is intended for use by time servers operating near
the end nodes (highest stratum) of the synchronization subnet. Reliable
time service can usually be maintained with two peers at the next lower
stratum level and one peer at the same stratum level, so the rate of
ongoing polls is usually not significant, even when connectivity is lost
and error messages are being returned for every poll.

Symmetric active mode is intended for use by time servers operating near the end nodes (highest stratum) of the synchronization subnet. Reliable time service can usually be maintained with two peers at the next lower stratum level and one peer at the same stratum level, so the rate of ongoing polls is usually not significant, even when connectivity is lost and error messages are being returned for every poll.

Normally, one peer operates in an active mode (symmetric active, client
or broadcast modes) as configured by a startup file, while the other
operates in a passive mode (symmetric passive or server modes), often
without prior configuration. However, both peers can be configured to
operate in the symmetric active mode. An error condition results when
both peers operate in the same mode, but not symmetric active mode. In
such cases each peer will ignore messages from the other, so that prior
associations, if any, will be demobilized due to reachability failure.

Normally, one peer operates in an active mode (symmetric active, client or broadcast modes) as configured by a startup file, while the other operates in a passive mode (symmetric passive or server modes), often without prior configuration. However, both peers can be configured to operate in the symmetric active mode. An error condition results when both peers operate in the same mode, but not symmetric active mode. In such cases each peer will ignore messages from the other, so that prior associations, if any, will be demobilized due to reachability failure.

Broadcast mode is intended for operation on high-speed LANs with
numerous workstations and where the highest accuracies are not required.
In the typical scenario one or more time servers on the LAN send
periodic broadcasts to the workstations, which then determine the time
on the basis of a preconfigured latency in the order of a few
milliseconds. As in the client/server modes the protocol machine can be
considerably simplified in this mode; however, a modified form of the
clock selection algorithm may prove useful in cases where multiple time
servers are used for enhanced reliability.

Broadcast mode is intended for operation on high-speed LANs with numerous workstations and where the highest accuracies are not required. In the typical scenario one or more time servers on the LAN send periodic broadcasts to the workstations, which then determine the time on the basis of a preconfigured latency in the order of a few milliseconds. As in the client/server modes the protocol machine can be considerably simplified in this mode; however, a modified form of the clock selection algorithm may prove useful in cases where multiple time servers are used for enhanced reliability.

Event Processing

Event Processing

The significant events of interest in NTP occur upon expiration of a
peer timer (peer.timer), one of which is dedicated to each peer with an
active association, and upon arrival of an NTP message from the various
peers. An event can also occur as the result of an operator command or
detected system fault, such as a primary reference source failure. This
section describes the procedures invoked when these events occur.

The significant events of interest in NTP occur upon expiration of a peer timer (peer.timer), one of which is dedicated to each peer with an active association, and upon arrival of an NTP message from the various peers. An event can also occur as the result of an operator command or detected system fault, such as a primary reference source failure. This section describes the procedures invoked when these events occur.

Notation Conventions

Notation Conventions

The NTP filtering and selection algorithms act upon a set of variables
for clock offset (<$Etheta ,~THETA>), roundtrip delay (<$Edelta
,~DELTA>) and dispersion (<$Eepsilon ,~EPSILON>). When necessary to
distinguish between them, lower-case Greek letters are used for
variables relative to a peer, while upper-case Greek letters are used
for variables relative to the primary reference source(s), i.e., via the
peer to the root of the synchronization subnet. Subscripts will be used
to identify the particular peer when this is not clear from context. The
algorithms are based on a quantity called the synchronization distance
(<$Elambda ,~LAMBDA>), which is computed from the roundtrip delay and
dispersion as described below.

The NTP filtering and selection algorithms act upon a set of variables for clock offset (<$Etheta ,~THETA>), roundtrip delay (<$Edelta ,~DELTA>) and dispersion (<$Eepsilon ,~EPSILON>). When necessary to distinguish between them, lower-case Greek letters are used for variables relative to a peer, while upper-case Greek letters are used for variables relative to the primary reference source(s), i.e., via the peer to the root of the synchronization subnet. Subscripts will be used to identify the particular peer when this is not clear from context. The algorithms are based on a quantity called the synchronization distance (<$Elambda ,~LAMBDA>), which is computed from the roundtrip delay and dispersion as described below.

As described in Appendix H, the peer dispersion <$Eepsilon> includes
contributions due to measurement error <$Erho~=~1~<< <<~roman
sys.precision>, skew-error accumulation <$Ephi tau>, where
<$Ephi~=~roman {NTP.MAXSKEW over NTP.MAXAGE}> is the maximum skew rate
and <$Etau~=~roman {sys.clock~-~peer.update}> is the interval since the
last update, and filter (sample) dispersion <$Eepsilon sub sigma>
computed by the clock-filter algorithm. The root dispersion <$EEPSILON>
includes contributions due to the selected peer dispersion <$Eepsilon>
and skew-error accumulation <$Ephi tau>, together with the root
dispersion for the peer itself. The system dispersion includes the
select (sample) dispersion <$Eepsilon sub xi> computed by the clock-
select algorithm and the absolute initial clock offset <$E| THETA |>
provided to the local-clock algorithm. Both <$Eepsilon> and <$EEPSILON>
are dynamic quantities, since they depend on the elapsed time <$Etau>
since the last update, as well as the sample dispersions calculated by
the algorithms.

As described in Appendix H, the peer dispersion <$Eepsilon> includes contributions due to measurement error <$Erho~=~1~<< <<~roman sys.precision>, skew-error accumulation <$Ephi tau>, where <$Ephi~=~roman {NTP.MAXSKEW over NTP.MAXAGE}> is the maximum skew rate and <$Etau~=~roman {sys.clock~-~peer.update}> is the interval since the last update, and filter (sample) dispersion <$Eepsilon sub sigma> computed by the clock-filter algorithm. The root dispersion <$EEPSILON> includes contributions due to the selected peer dispersion <$Eepsilon> and skew-error accumulation <$Ephi tau>, together with the root dispersion for the peer itself. The system dispersion includes the select (sample) dispersion <$Eepsilon sub xi> computed by the clock- select algorithm and the absolute initial clock offset <$E| THETA |> provided to the local-clock algorithm. Both <$Eepsilon> and <$EEPSILON> are dynamic quantities, since they depend on the elapsed time <$Etau> since the last update, as well as the sample dispersions calculated by the algorithms.

Each time the relevant peer variables are updated, all dispersions
associated with that peer are updated to reflect the skew-error
accumulation. The computations can be summarized as follows:

Each time the relevant peer variables are updated, all dispersions associated with that peer are updated to reflect the skew-error accumulation. The computations can be summarized as follows:

<$Etheta~==~roman peer.offset> ,
<$Edelta~==~roman peer.delay> ,
<$Eepsilon~==~roman peer.dispersion~=~rho~+~phi tau~+~epsilon sub sigma>
,
<$Elambda~==~epsilon~+~{| delta |} over 2> ,

<$Etheta~==~roman peer.offset> , <$Edelta~==~roman peer.delay> , <$Eepsilon~==~roman peer.dispersion~=~rho~+~phi tau~+~epsilon sub sigma> , <$Elambda~==~epsilon~+~{| delta |} over 2> ,

where <$Etau> is the interval since the original timestamp (from which
<$Etheta> and <$Edelta> were determined) was transmitted to the present
time and <$Eepsilon sub sigma> is the filter dispersion (see clock-
filter procedure below). The variables relative to the root of the
synchronization subnet via peer i are determined as follows:

where <$Etau> is the interval since the original timestamp (from which <$Etheta> and <$Edelta> were determined) was transmitted to the present time and <$Eepsilon sub sigma> is the filter dispersion (see clock- filter procedure below). The variables relative to the root of the synchronization subnet via peer i are determined as follows:

<$ETHETA sub i~==~theta sub i> ,
<$EDELTA sub i~==~roman peer.rootdelay~+~delta sub i> ,
<$EEPSILON sub i~==~roman peer.rootdispersion~+~epsilon sub i~+~phi tau
sub i> ,
<$ELAMBDA sub i~==~EPSILON sub i~+~{| DELTA sub i |} over 2> ,

<$ETHETA sub i~==~theta sub i> , <$EDELTA sub i~==~roman peer.rootdelay~+~delta sub i> , <$EEPSILON sub i~==~roman peer.rootdispersion~+~epsilon sub i~+~phi tau sub i> , <$ELAMBDA sub i~==~EPSILON sub i~+~{| DELTA sub i |} over 2> ,

where all variables are understood to pertain to the ith peer. Finally,
assuming the ith peer is selected for synchronization, the system
variables are determined as follows:

where all variables are understood to pertain to the ith peer. Finally, assuming the ith peer is selected for synchronization, the system variables are determined as follows:

<$ETHETA~=~>combined final offset ,
<$EDELTA~=~DELTA sub i> ,
<$EEPSILON~=~EPSILON sub i~+~epsilon sub xi~+~| THETA |> ,
<$ELAMBDA~=~LAMBDA sub i> ,

<$ETHETA~=~>combined final offset , <$EDELTA~=~DELTA sub i> , <$EEPSILON~=~EPSILON sub i~+~epsilon sub xi~+~| THETA |> , <$ELAMBDA~=~LAMBDA sub i> ,

where <$Eepsilon sub xi> is the select dispersion (see clock-selection
procedure below).

where <$Eepsilon sub xi> is the select dispersion (see clock-selection procedure below).

Informal pseudo-code which accomplishes these computations is presented
below. Note that the pseudo-code is represented in no particular
language, although it has many similarities to the C language. Specific
details on the important algorithms are further illustrated in the C-
language routines in Appendix I.

Informal pseudo-code which accomplishes these computations is presented below. Note that the pseudo-code is represented in no particular language, although it has many similarities to the C language. Specific details on the important algorithms are further illustrated in the C- language routines in Appendix I.

Transmit Procedure

Transmit Procedure

The transmit procedure is executed when the peer timer decrements to
zero for all modes except client mode with a broadcast server and server
mode in all cases. In client mode with a broadcast server messages are
never sent. In server mode messages are sent only in response to
received messages. This procedure is also called by the receive
procedure when an NTP message arrives that does not result in a
persistent association.

The transmit procedure is executed when the peer timer decrements to zero for all modes except client mode with a broadcast server and server mode in all cases. In client mode with a broadcast server messages are never sent. In server mode messages are sent only in response to received messages. This procedure is also called by the receive procedure when an NTP message arrives that does not result in a persistent association.

begin transmit procedure

begin transmit procedure

The following initializes the packet buffer and copies the packet
variables. The value skew is necessary to account for the skew-error
accumulated over the interval since the local clock was last set.

The following initializes the packet buffer and copies the packet variables. The value skew is necessary to account for the skew-error accumulated over the interval since the local clock was last set.

        <$Eroman pkt.peeraddr~<<-~roman peer.hostaddr>;         /* copy
system and peer variables */
        <$Eroman pkt.peerport~<<-~roman peer.hostport>;
        <$Eroman pkt.hostaddr~<<-~roman peer.peeraddr>;
        <$Eroman pkt.hostport~<<-~roman peer.peerport>;
        <$Eroman pkt.leap~<<-~roman sys.leap>;
        <$Eroman pkt.version~<<-~roman NTP.VERSION>;
        <$Eroman pkt.mode~<<-~roman peer.mode>;
        <$Eroman pkt.stratum~<<-~roman sys.stratum>;
        <$Eroman pkt.poll~<<-~roman peer.hostpoll>;
        <$Eroman pkt.precision~<<-~roman sys.precision>;
        <$Eroman pkt.rootdelay~<<-~roman sys.rootdelay>;
        if (sys.leap = 112 or (sys.clock <196> sys.reftime) >>
NTP.MAXAGE)
                <$Eskew~<<-~roman NTP.MAXSKEW>;
        else
                <$Eskew~<<-~phi roman {(sys.clock~-~sys.reftime)}>;
        <$Eroman {pkt.rootdispersion~<<-~roman
sys.rootdispersion~+~(1~<< <<~sys.precision)}~+~skew>;
        <$Eroman pkt.refid~<<-~roman sys.refid>;
        <$Eroman pkt.reftime~<<-~roman sys.reftime>;

<$Eroman pkt.peeraddr~<<-~roman peer.hostaddr>; /* copy system and peer variables */ <$Eroman pkt.peerport~<<-~roman peer.hostport>; <$Eroman pkt.hostaddr~<<-~roman peer.peeraddr>; <$Eroman pkt.hostport~<<-~roman peer.peerport>; <$Eroman pkt.leap~<<-~roman sys.leap>; <$Eroman pkt.version~<<-~roman NTP.VERSION>; <$Eroman pkt.mode~<<-~roman peer.mode>; <$Eroman pkt.stratum~<<-~roman sys.stratum>; <$Eroman pkt.poll~<<-~roman peer.hostpoll>; <$Eroman pkt.precision~<<-~roman sys.precision>; <$Eroman pkt.rootdelay~<<-~roman sys.rootdelay>; if (sys.leap = 112 or (sys.clock <196> sys.reftime) >> NTP.MAXAGE) <$Eskew~<<-~roman NTP.MAXSKEW>; else <$Eskew~<<-~phi roman {(sys.clock~-~sys.reftime)}>; <$Eroman {pkt.rootdispersion~<<-~roman sys.rootdispersion~+~(1~<< <<~sys.precision)}~+~skew>; <$Eroman pkt.refid~<<-~roman sys.refid>; <$Eroman pkt.reftime~<<-~roman sys.reftime>;

The transmit timestamp pkt.xmt will be used later in order to validate
the reply; thus, implementations must save the exact value transmitted.
In addition, the order of copying the timestamps should be designed so
that the time to format and copy the data does not degrade accuracy.

The transmit timestamp pkt.xmt will be used later in order to validate the reply; thus, implementations must save the exact value transmitted. In addition, the order of copying the timestamps should be designed so that the time to format and copy the data does not degrade accuracy.

        <$Eroman pkt.org~<<-~roman peer.org>;                           
/* copy timestamps */
        <$Eroman pkt.rec~<<-~roman peer.rec>;
        <$Eroman pkt.xmt~<<-~roman sys.clock>;
        <$Eroman peer.xmt~<<-~roman pkt.xmt>;

<$Eroman pkt.org~<<-~roman peer.org>; /* copy timestamps */ <$Eroman pkt.rec~<<-~roman peer.rec>; <$Eroman pkt.xmt~<<-~roman sys.clock>; <$Eroman peer.xmt~<<-~roman pkt.xmt>;

The call to encrypt is implemented only if authentication is
implemented. If authentication is enabled, the delay to encrypt the
authenticator may degrade accuracy. Therefore, implementations should
include a system state variable (not mentioned elsewhere in this
specification) which contains an offset calculated to match the expected
encryption delay and correct the transmit timestamp as obtained from the
local clock.

The call to encrypt is implemented only if authentication is implemented. If authentication is enabled, the delay to encrypt the authenticator may degrade accuracy. Therefore, implementations should include a system state variable (not mentioned elsewhere in this specification) which contains an offset calculated to match the expected encryption delay and correct the transmit timestamp as obtained from the local clock.

        #ifdef (authentication implemented)     /* see Appendix C */
                call encrypt;
                #endef
        send packet;

#ifdef (authentication implemented) /* see Appendix C */ call encrypt; #endef send packet;

The reachability register is shifted one position to the left, with zero
replacing the vacated bit. If all bits of this register are zero, the
clear procedure is called to purge the clock filter and reselect the
synchronization source, if necessary. If the association was not
configured by the initialization procedure, the association is
demobilized.

The reachability register is shifted one position to the left, with zero replacing the vacated bit. If all bits of this register are zero, the clear procedure is called to purge the clock filter and reselect the synchronization source, if necessary. If the association was not configured by the initialization procedure, the association is demobilized.

        <$Eroman peer.reach~<<-~roman peer.reach~<< <<~1>;              
/* update reachability */
        if (<$Eroman peer.reach~=~0> and <$Eroman peer.config~=~0>)
begin
                demobilize association;
                exit;
                endif

<$Eroman peer.reach~<<-~roman peer.reach~<< <<~1>; /* update reachability */ if (<$Eroman peer.reach~=~0> and <$Eroman peer.config~=~0>) begin demobilize association; exit; endif

If valid data have been shifted into the filter register at least once
during the preceding two poll intervals (low-order bit of peer.reach set
to one), the valid data counter is incremented. After eight such valid
intervals the poll interval is incremented. Otherwise, the valid data
counter and poll interval are both decremented and the clock-filter
procedure called with zero values for offset and delay and
NTP.MAXDISPERSE for dispersion. The clock-select procedure is called to
reselect the synchronization source, if necessary.

If valid data have been shifted into the filter register at least once during the preceding two poll intervals (low-order bit of peer.reach set to one), the valid data counter is incremented. After eight such valid intervals the poll interval is incremented. Otherwise, the valid data counter and poll interval are both decremented and the clock-filter procedure called with zero values for offset and delay and NTP.MAXDISPERSE for dispersion. The clock-select procedure is called to reselect the synchronization source, if necessary.

        if (<$Eroman peer.reach~&~6~!=~0>)                      /* test
two low-order bits (shifted) */ 
                if (<$Eroman peer.valid~<<~roman NTP.SHIFT>)    /* valid
data received */
                        <$Eroman peer.valid~<<-~roman peer.valid~+~1>;
                        else <$Eroman peer.hostpoll~<<-~roman
peer.hostpoll~+~1>;
        else begin
                <$Eroman peer.valid~<<-~roman peer.valid~-~1>;  /*
nothing heard */
                <$Eroman peer.hostpoll~<<-~roman peer.hostpoll~-~1>);
                call clock-filter(0, 0, NTP.MAXDISPERSE);
                call clock-select;                      /* select clock
source */
                endif
        call poll-update;
        end transmit procedure;

if (<$Eroman peer.reach~&~6~!=~0>) /* test two low-order bits (shifted) */ if (<$Eroman peer.valid~<<~roman NTP.SHIFT>) /* valid data received */ <$Eroman peer.valid~<<-~roman peer.valid~+~1>; else <$Eroman peer.hostpoll~<<-~roman peer.hostpoll~+~1>; else begin <$Eroman peer.valid~<<-~roman peer.valid~-~1>; /* nothing heard */ <$Eroman peer.hostpoll~<<-~roman peer.hostpoll~-~1>); call clock-filter(0, 0, NTP.MAXDISPERSE); call clock-select; /* select clock source */ endif call poll-update; end transmit procedure;

Receive Procedure

Receive Procedure

The receive procedure is executed upon arrival of an NTP message. It
validates the message, interprets the various modes and calls other
procedures to filter the data and select the synchronization source. If
the version number in the packet does not match the current version, the
message may be discarded; however, exceptions may be advised on a case-
by-case basis at times when the version is changed. If the NTP control
messages described in Appendix B are implemented and the packet mode is
6 (control), the control-message procedure is called. The source and
destination Internet addresses and ports in the IP and UDP headers are
matched to the correct peer. If there is no match a new instantiation of
the protocol machine is created and the association mobilized.

The receive procedure is executed upon arrival of an NTP message. It validates the message, interprets the various modes and calls other procedures to filter the data and select the synchronization source. If the version number in the packet does not match the current version, the message may be discarded; however, exceptions may be advised on a case- by-case basis at times when the version is changed. If the NTP control messages described in Appendix B are implemented and the packet mode is 6 (control), the control-message procedure is called. The source and destination Internet addresses and ports in the IP and UDP headers are matched to the correct peer. If there is no match a new instantiation of the protocol machine is created and the association mobilized.

begin receive procedure
        if (<$Eroman pkt.version~!=~roman NTP.VERSION>) exit;
        #ifdef (control messages implemented)
                if (<$Eroman pkt.mode~=~6>) call control-message;
                #endef
        for (all associations)                  /* access control goes
here */
                match addresses and ports to associations;
        if (no matching association)
                call receive-instantiation procedure;   /* create
association */

begin receive procedure if (<$Eroman pkt.version~!=~roman NTP.VERSION>) exit; #ifdef (control messages implemented) if (<$Eroman pkt.mode~=~6>) call control-message; #endef for (all associations) /* access control goes here */ match addresses and ports to associations; if (no matching association) call receive-instantiation procedure; /* create association */

The call to decrypt is implemented only if authentication is
implemented.

The call to decrypt is implemented only if authentication is implemented.

        #ifdef (authentication implemented)     /* see Appendix C */
                call decrypt;
                #endef

#ifdef (authentication implemented) /* see Appendix C */ call decrypt; #endef

If the packet mode is nonzero, this becomes the value of mode used in
the following step; otherwise, the peer is an old NTP version and mode
is determined from the port numbers as described in Section 3.3.

If the packet mode is nonzero, this becomes the value of mode used in the following step; otherwise, the peer is an old NTP version and mode is determined from the port numbers as described in Section 3.3.

        if (pkt.mode = 0)                               /* for
compatibility with old versions */
                <$Emode~<<-~>(see Section 3.3);
        else
                <$Emode~<<-~roman pkt.mode>;

if (pkt.mode = 0) /* for compatibility with old versions */ <$Emode~<<-~>(see Section 3.3); else <$Emode~<<-~roman pkt.mode>;

Table 5<$&tab5> shows for each combination of peer.mode and mode the
resulting case labels.

Table 5<$&tab5> shows for each combination of peer.mode and mode the resulting case labels.

        case (mode, peer.hostmode)              /* see Table 5 */

case (mode, peer.hostmode) /* see Table 5 */

If error the packet is simply ignored and the association demobilized,
if not previously configured.
error:          if (<$Eroman peer.config~=~0>) demobilize association;  
/* see no evil */
                break;

If error the packet is simply ignored and the association demobilized, if not previously configured. error: if (<$Eroman peer.config~=~0>) demobilize association; /* see no evil */ break;

If recv the packet is processed and the association marked reachable if
tests five through eight (valid header) enumerated in the packet
procedure succeed. If, in addition, tests one through four succeed
(valid data), the clock-update procedure is called to update the local
clock. Otherwise, if the association was not previously configured, it
is demobilized.

If recv the packet is processed and the association marked reachable if tests five through eight (valid header) enumerated in the packet procedure succeed. If, in addition, tests one through four succeed (valid data), the clock-update procedure is called to update the local clock. Otherwise, if the association was not previously configured, it is demobilized.

recv:           call packet;                            /* process
packet */
                if (valid header) begin         /* if valid header,
update local clock */
                        <$Eroman peer.reach~<<-~roman peer.reach~|~1>;
                        if (valid data) call clock-update;
                        endif
                else
                        if (<$Eroman peer.config~=~0>) demobilize
association;
                break;

recv: パケットに電話をしてください。 /*過程パケット*/は(有効なヘッダー)であるなら*有効なヘッダー、アップデート地方の時計*/<$のEroman peer.reach~<<-~ローマン体のpeer.reach~であるなら/を始めます。|~1>。 (有効データ)であるなら、時計アップデートに電話をしてください。 ほかのendifは(<のEroman peer.config~=~0ドルの>)であるなら協会を解隊します。 壊れてください。

If xmit the packet is processed and an immediate reply is sent. The
association is then demobilized if not previously configured.

xmitであるなら、パケットを処理します、そして、即座の回答を送ります。 協会は、次に、解隊されるか、または以前に、構成されます。

xmit:           call packet;                            /* process
packet */
                <$Eroman peer.hostpoll~<<-~roman peer.peerpoll>;        
/* send immediate reply */
                call poll-update;
                call transmit;
                if (<$Eroman peer.config~=~0>) demobilize association;
                break;

xmit: パケットに電話をしてください。 /*過程パケット*/<$のEroman peer.hostpoll~<<-~ローマン体のpeer.peerpoll>。 /*は即座の回答呼び出し投票*/アップデートを送ります。 呼び出しは伝わります。 (<のEroman peer.config~=~0ドルの>)であるなら、協会を解隊してください。 壊れてください。

If pkt the packet is processed and the association marked reachable if
tests five through eight (valid header) enumerated in the packet
procedure succeed. If, in addition, tests one through four succeed
(valid data), the clock-update procedure is called to update the local
clock. Otherwise, if the association was not previously configured, an
immediate reply is sent and the association demobilized.

pktであるなら、パケットは、処理されていて5〜8(有効なヘッダー)がパケット手順で列挙したテストが成功するなら届くとマークされた協会です。 テスト1〜fourがさらに、(有効データ)を引き継ぐなら、時計アップデート手順は、地方の時計をアップデートするために呼ばれます。 さもなければ、以前に協会を構成しなかったなら、即座の回答を送りました、そして、協会は解隊されました。

pkt:            call packet;                            /* process
packet */
                if (valid header) begin         /* if valid header,
update local clock */
                        <$Eroman peer.reach~<<-~roman peer.reach~|~1>;
                        if (valid data) call clock-update;
                        endif
                else if (<$Eroman peer.config~=~0>) begin
                        <$Eroman peer.hostpoll~<<-~roman
peer.peerpoll>; /* send immediate reply */
                        call poll-update;
                        call transmit;
                        demobilize association;
                        endif
                endcase
        end receive procedure;

pkt: パケットに電話をしてください。 /*過程パケット*/は(有効なヘッダー)であるなら*有効なヘッダー、アップデート地方の時計*/<$のEroman peer.reach~<<-~ローマン体のpeer.reach~であるなら/を始めます。|~1>。 (有効データ)であるなら、時計アップデートに電話をしてください。 ほかのendifは(<のEroman peer.config~=~0ドルの>)であるなら<$のEroman peer.hostpoll~<<-~ローマン体のpeer.peerpoll>を始めます。 /*は即座の回答呼び出し投票*/アップデートを送ります。 呼び出しは伝わります。 協会を解隊してください。 endif endcaseエンドは手順を受けます。

Packet Procedure

パケット手順

The packet procedure checks the message validity, computes delay/offset
samples and calls other procedures to filter the data and select the
synchronization source. Test 1 requires the transmit timestamp not match
the last one received from the same peer; otherwise, the message might
be an old duplicate. Test 2 requires the originate timestamp match the
last one sent to the same peer; otherwise, the message might be out of
order, bogus or worse. In case of broadcast mode (5) the apparent
roundtrip delay will be zero and the full accuracy of the time-transfer
operation may not be achievable. However, the accuracy achieved may be
adequate for most purposes. The poll-update procedure is called with
argument peer.hostpoll (peer.peerpoll may have changed).

パケット手順は、データをフィルターにかけて、同期ソースを選ぶためにメッセージの正当性をチェックして、遅れ/オフセットのサンプルを計算して、他の手順と呼びます。 テスト1が必要である、最後のあるものが同じ同輩から受けたマッチではなく、タイムスタンプを伝えてください。 さもなければ、メッセージは古い写しであるかもしれません。 テスト2が必要である、最後のものが同じ同輩に送ったタイムスタンプマッチを溯源してください。 さもなければ、メッセージは、不適切であるか、にせであるかまたは、より悪いかもしれません。 放送モード(5)の場合には、見かけの往復の遅れはゼロになるでしょう、そして、時間転送操作の完全な精度は達成可能でないかもしれません。 しかしながら、達成された精度はほとんどの目的のために適切であるかもしれません。 投票アップデート手順は議論peer.hostpollで呼ばれます(peer.peerpollは変化したかもしれません)。

begin packet procedure
        <$Eroman peer.rec~<<-~roman sys.clock>;                 /*
capture receive timestamp */
        if (<$Eroman pkt.mode ~!=~5>) begin
                <$Etest1~<<-~( roman {pkt.xmt~!=~peer.org})>;   /* test
1 */
                <$Etest2~<<-~( roman {pkt.org~=~peer.xmt})>;    /* test
2 */
                endif
        else begin
                <$Eroman pkt.org~<<-~roman peer.rec>;                   
/* fudge missing timestamps */
                <$Eroman pkt.rec~<<-~roman pkt.xmt>;
                <$Etest1~<<-~bold roman true>;                          
/* fake tests */
                <$Etest2~<<-~bold roman true>;
                endif
        <$Eroman peer.org~<<-~roman pkt.xmt>;                           
/* update originate timestamp */
        <$Eroman peer.peerpoll~<<-~roman pkt.poll>;                     
/* adjust poll interval */
        call poll-update(peer.hostpoll);

パケット手順<$のEroman peer.rec~<<-~ローマン体のsys.clock>を始めてください。 (<$Eroman pkt.mode~!=~5>)が<$Etest1~<<-~、を始めるなら/*捕獲がタイムスタンプ*/を受ける、(ローマン体、pkt.xmt~!=~peer.org、)、>。 /*テスト1*/<ドルのEtest2~<<-~ローマン体の~(pkt.org~=peer.xmt)>。 ほかの/*テスト2*/endifは<$のEroman pkt.org~<<-~ローマン体のpeer.rec>を始めます。 /*ファッジなくなったタイムスタンプ*/<$のEroman pkt.rec~<<-~ローマン体のpkt.xmt>。 <$のEtest1~<<-~大胆なローマン体の本当の>。 /*偽物は*/<$のEtest2~<<-~大胆なローマン体の本当の>をテストします。 endif<$のEroman peer.org~<<-~ローマン体のpkt.xmt>。 /*アップデートはタイムスタンプ*/<$のEroman peer.peerpoll~<<-~ローマン体のpkt.poll>を溯源します。 /*は投票間隔呼び出し投票*/アップデート(peer.hostpoll)を調整します。

Test 3 requires that both the originate and receive timestamps are
nonzero. If either of the timestamps are zero, the association has not
synchronized or has lost reachability in one or both directions.

由来してください、そして、受信してください。テスト3がそれを必要とする、両方、タイムスタンプは非零です。 タイムスタンプのどちらかがゼロであるなら、協会は、連動していないか、または1か方向の両方に可到達性を失いました。

        <$Etest3~<<-~( roman pkt.org~!=~0> and <$Eroman pkt.rec~!=~0)>; 
/* test 3 */

<$Etest3~<<-~~=0>で<ドルのEroman pkt.rec~!(ローマン体のpkt.org~!=~0)>。 /*テスト3*/

The roundtrip delay and clock offset relative to the peer are calculated
as follows. Number the times of sending and receiving NTP messages as
shown in Figure 2<$&fig2> and let i be an even integer. Then Ti-3, Ti-2,
Ti-1 and Ti are the contents of the pkt.org, pkt.rec, pkt.xmt and
peer.rec variables, respectively. The clock offset <$Etheta>, roundtrip
delay <$Edelta> and dispersion <$Eepsilon> of the host relative to the
peer is:

同輩に比例して相殺された往復の遅れと時計は以下の通り計算されます。 図2<$とfig2>に示されるように送受信NTPメッセージの倍に付番してください、そして、iが同等の整数であることをさせてください。 そして、Ti-3、Ti-2、Ti-1、およびTiはそれぞれpkt.org、pkt.rec、pkt.xmt、およびpeer.rec変数のコンテンツです。 同輩に比例したホストの時計オフセット<$Etheta>、往復の遅れ<$Edelta>、および分散<$Eepsilon>は以下の通りです。

<$Edelta~=~(T sub i~-~T sub {i - 3} )~-~(T sub {i - 1}~-~T sub {i - 2}
)> ,
<$Etheta~=~{(T sub {i - 2}~-~T sub {i-3})~+~(T sub {i-1}~-~T sub i ) }
over 2> ,
<$Eepsilon~=~roman {(1~<< <<~sys.precision})~+~phi (T sub i ~-~T sub {i-
3} )> ,

<$Edelta~=~(T sub i~-~T sub {i - 3} )~-~(T sub {i - 1}~-~T sub {i - 2} )> , <$Etheta~=~{(T sub {i - 2}~-~T sub {i-3})~+~(T sub {i-1}~-~T sub i ) } over 2> , <$Eepsilon~=~roman {(1~<< <<~sys.precision})~+~phi (T sub i ~-~T sub {i- 3} )> ,

where, as before, <$Ephi~=~roman{ NTP.MAXSKEW over NTP.MAXAGE}>. The
quantity <$Eepsilon> represents the maximum error or dispersion due to
measurement error at the host and local-clock skew accumulation over the
interval since the last message was transmitted to the peer.
Subsequently, the dispersion will be updated by the clock-filter
procedure.

従来と同様、<$Ephi~が~、とローマン体であることで等しい、NTP.MAXAGEの上のNTP.MAXSKEW、>。 測定誤差のため、最後のメッセージが同輩に送られたとき、量の<$Eepsilon>は間隔の間のホストと地元の時計斜行蓄積のときに最大の誤りか分散を表します。 次に、時計フィルタ手順で分散をアップデートするでしょう。

The above method amounts to a continuously sampled, returnable-time
system, which is used in some digital telephone networks [BEL86]. Among
the advantages are that the order and timing of the messages are
unimportant and that reliable delivery is not required. Obviously, the
accuracies achievable depend upon the statistical properties of the
outbound and inbound data paths. Further analysis and experimental
results bearing on this issue can be found in [MIL90] and in Appendix H.
Test 4 requires that the calculated delay be within <169>reasonable<170>
bounds:

上の方法は絶え間なく抽出されて、返却可能な時のシステムに達します。(それは、いくつかのデジタル電話網[BEL86]に使用されます)。 有利な立場の中に、それはいます。メッセージの注文とタイミングは重要ではありません、そして、その信頼できる配信は必要ではありません。 明らかに、達成可能な精度は外国行きとインバウンドデータ経路の統計的な特性に依存します。 [MIL90]でこの問題を圧迫するさらなる分析と実験結果は見つけることができます、そして、Appendixでは、H.Test4は<の169の>の妥当な<170>領域の中に計算された遅れがあるのを必要とします:

        <$Etest4~<<-~(| delta |~<<~roman NTP.MAXDISPERSE~bold
and~epsilon~<<~roman NTP.MAXDISPERSE)>;  /* test 4 */

<$Etest4~<<-~デルタ(| | ~<の<の~ローマン体のNTP.MAXDISPERSE~大胆さと~ε~<<~ローマン体のNTP.MAXDISPERSE)>。 /*テスト4*/

Test 5 is implemented only if the authentication mechanism described in
Appendix C is implemented. It requires either that authentication be
explicitly disabled or that the authenticator be present and correct as
determined by the decrypt procedure.

Appendix Cで説明された認証機構が実行される場合にだけ、テスト5は実行されます。 固有識別文字が自決するように認証が明らかに無効にされるか、現在であってまたは正しいのが必要である、手順を解読してください。

        #ifdef (authentication implemented)     /* test 5 */
                <$Etest5~<<-~( roman {(peer.config~=~1~bold
and~peer.authenable~=~0)~bold or~ peer.authentic~=~1})>;
                #endef

#ifdef(実行された認証)/*テスト5*/<ドルのEtest5~<<-~peer.config~=~1~大胆さと~peer.authenable~は~0、と(等しいです)ローマン体の~peer.authentic(大胆さか~~~=1)>。 #endef

Test 6 requires the peer clock be synchronized and the interval since
the peer clock was last updated be positive and less than NTP.MAXAGE.
Test 7 insures that the host will not synchronize on a peer with greater
stratum. Test 8 requires that the header contains <169>reasonable<170>
values for the pkt.rootdelay and pkt.rootdispersion fields.

同輩時計をアップデートして以来の連動していて間隔になってください。テスト6が同輩時計を必要とする、NTP.MAXAGEよりそれほど積極的であってください。 テスト7は、ホストが同輩の上で、よりすばらしい層に連動しないのを保障します。 テスト8は、ヘッダーがpkt.rootdelayとpkt.rootdispersion分野への<の169の>の妥当な<170>値を含むのを必要とします。

        <$Etest6~<<-~( roman pkt.leap~!=~11 sub 2> and          /* test
6 */
                <$Eroman
{pkt.reftime~<<=~pkt.xmt~<<~pkt.reftime~+~NTP.MAXAGE}>)
        <$Etest7~<<-~roman {pkt.stratum ~<<=~sys.stratum}> and  /* test
7 */
                 <$Eroman {pkt.stratum ~<<~NTP.MAXSTRATUM}>;
        <$Etest8~<<-~( roman {| pkt.rootdelay |~<<~NTP.MAXDISPERSE}>
and     /* test 8 */
                <$Eroman {pkt.rootdispersion~<<~NTP.MAXDISPERSE})>;

<$Etest6~<<-~、(ローマン体のpkt.leap~!=~11潜水艦2>と/*が>) <$のEtest7~<<-~ローマン体のpkt.stratum~<<=~sys.stratum>と/*が7*/<ドルテストする6*/<ドルのEroman pkt.reftime~<<=~pkt.xmt~<<~pkt.reftime~+~NTP.MAXAGEをテストする、Eroman pkt.stratum~<<~NTP.MAXSTRATUM、>。 <$Etest8~<<-~、(ローマン体、| pkt.rootdelay| ~<<~NTP.MAXDISPERSE、>と/*は8*/<ドルのEroman pkt.rootdispersion~<<~NTP.MAXDISPERSE) >をテストします。

With respect to further processing, the packet includes valid
(synchronized) data if tests one through four succeed
<$E(test1~&~test2~&~test3~&~test4~=~1)>, regardless of the remaining
tests. Only packets with valid data can be used to calculate offset,
delay and dispersion values. The packet includes a valid header if tests
five through eight succeed <$E(test5~&~test6~&~test7~&~test8~=~1)>,
regardless of the remaining tests. Only packets with valid headers can
be used to determine whether a peer can be selected for synchronization.
Note that <$Etest1> and <$Etest2> are not used in broadcast mode (forced
to true), since the originate and receive timestamps are undefined.

さらなる処理に関して、テスト1〜fourが<$E(test1~、~test2~、~test3~、および~test4~は~1、と等しいです)>を引き継ぐなら、パケットは有効な(連動する)データを含んでいます、残っているテストにかかわらず。 オフセット、遅れ、および分散値について計算するのに有効データがあるパケットしか使用できません。 テスト5〜eightが残っているテストにかかわらず<$E(test5~、~test6~、~test7~、および~test8~は~1、と等しいです)>を引き継ぐなら、パケットは有効なヘッダーを含んでいます。 同期のために同輩を選ぶことができるかどうか決定するのに有効なヘッダーがあるパケットしか使用できません。 由来してください、そして、受信してください。放送モード(本当に強制される)で<$Etest1>と<$Etest2>が使用されないことに注意してください、以来タイムスタンプは未定義です。

The clock-filter procedure is called to produce the delay (peer.delay),
offset (peer.offset) and dispersion (peer.dispersion) for the peer.
Specification of the clock-filter algorithm is not an integral part of
the NTP specification, since there may be other algorithms that work
well in practice. However, one found to work well in the Internet
environment is described in Section 4 and its use is recommended.

時計フィルタ手順は、同輩のために、遅れ(peer.delay)、オフセット(peer.offset)、および分散(peer.dispersion)を起こすために呼ばれます。 時計フィルタアルゴリズムの仕様はNTP仕様の不可欠の部分ではありません、実際にはうまくいく他のアルゴリズムがあるかもしれないので。 しかしながら、インターネット環境でうまくいくために見つけられたのはセクション4で説明されます、そして、使用はお勧めです。

        if (not valid header) exit;
        <$Eroman peer.leap~<<-~roman pkt.leap>;                 /* copy
packet variables */
        <$Eroman peer.stratum~<<-~roman pkt.stratum>;
        <$Eroman peer.precision~<<-~roman pkt.precision>;
        <$Eroman peer.rootdelay~<<-~roman pkt.rootdelay>;
        <$Eroman peer.rootdispersion~<<-~roman pkt.rootdispersion>;
        <$Eroman peer.refid~<<-~roman pkt.refid>;
        <$Eroman peer.reftime~<<-~roman pkt.reftime>;
        if (valid data) call clock-filter(<$Etheta ,~delta ,~epsilon>); 
/* process sample */
        end packet procedure;

(有効なヘッダーでない)であるなら、出てください。 <$のEroman peer.leap~<<-~ローマン体のpkt.leap>。 /*コピーパケット変数*/<$のEroman peer.stratum~<<-~ローマン体のpkt.stratum>。 <$のEroman peer.precision~<<-~ローマン体のpkt.precision>。 <$のEroman peer.rootdelay~<<-~ローマン体のpkt.rootdelay>。 <$のEroman peer.rootdispersion~<<-~ローマン体のpkt.rootdispersion>。 <$のEroman peer.refid~<<-~ローマン体のpkt.refid>。 <$のEroman peer.reftime~<<-~ローマン体のpkt.reftime>。 (有効データ)であるなら、時計フィルタ(<$Etheta、~デルタ、~ε>)に電話をしてください。 /*過程サンプル*/エンドパケット手順。

Clock-Update Procedure
The clock-update procedure is called from the receive procedure when
valid clock offset, delay and dispersion data have been determined by
the clock-filter procedure for the current peer. The result of the
clock-selection and clock-combining procedures is the final clock
correction <$ETHETA>, which is used by the local-clock procedure to
update the local clock. If no candidates survive these procedures, the
clock-update procedure exits without doing anything further.

時計アップデート手順が呼ばれる時計アップデートProcedure、有効な時計オフセット、遅れ、および分散データが現在の同輩のために時計フィルタ手順で決定したときには手順を受けてください。 時計選択と時計を結合した手順の結果は最終的な時計修正<$ETHETA>です。(その>は、地方の時計をアップデートするのに地方の時計手順で使用されます)。 どんな候補もこれらの手順を乗り切らないなら、さらに何もしないで、時計アップデート手順は出ます。

begin clock-update procedure
        call clock-select;                              /* select clock
source */
        if (<$Eroman sys.peer~!=~peer>) exit;

時計選んだ状態で時計アップデート手順呼び出しを始めてください。 /*選んだ時計ソース*/は(Eroman sys.peer~!<$=~同輩>)であるなら出ます。

It may happen that the local clock may be reset, rather than slewed to
its final value. In this case the clear procedure is called for every
peer to purge the clock filter, reset the poll interval and reselect the
synchronization source, if necessary. Note that the local-clock
procedure sets the leap bits sys.leap to <169>unsynchronized<170> 112 in
this case, so that no other peer will attempt to synchronize to the host
until the host once again selects a peer for synchronization.

地方の時計が検査値に酔っているよりむしろリセットであるかもしれないことは起こるかもしれません。 必要なら、この場合、すべての同輩が時計フィルタを掃除するように、明確な手順は呼ばれて、投票間隔と同期ソースのreselectをリセットしてください。 地方の時計手順が<169>に飛躍ビットsys.leapを設定するというメモはこの場合<170>112を非連動させました、他のどんな同輩も、ホストが同期のためにもう一度同輩を選ぶまでホストに連動するのを試みないように。

The distance procedure calculates the root delay <$EDELTA>, root
dispersion <$EEPSILON> and root synchronization distance <$ELAMBDA> via
the peer to the root of the synchronization subnet. The host will not
synchronize to the selected peer if the distance is greater than
NTP.MAXDISTANCE. The reason for the minimum clamp at NTP.MINDISPERSE is
to discourage subnet route flaps that can happen with Bellman-Ford
algorithms and small roundtrip delays.

距離手順は同期サブネットの根への同輩を通して根の遅れ<$EDELTA>、根の分散<$EEPSILON>、および根の同期距離<$ELAMBDA>について計算します。 距離がNTP.MAXDISTANCEより大きいなら、ホストは選択された同輩に連動しないでしょう。 NTP.MINDISPERSEの最小の留め金の理由はBellman-フォードアルゴリズムと小さい往復の遅れで起こることができるサブネットルートフラップに水をさしていることです。

        <$ELAMBDA~<M=O>
<~>an distance (peer)>;                         /* update system
variables */
 <B>    if (<$ELAMBDA~>>=~roman NTP.MAXDISTANCE>) exit;
        <$Eroman sys.leap~<<-~roman peer.leap>;
        <$Eroman sys.stratum~<<-~roman peer.stratum~+~1>;
        <$Eroman sys.refid~<<-~roman peer.peeraddr>;
        call local-clock;
        if (local clock reset) begin                    /* if reset,
clear state variables */
                <$Eroman sys.leap~<<-~11 sub 2>;
                for (all peers) call clear;
                endif
        else begin
                <$Eroman sys.peer~<<-~peer>;                    /* if
not, adjust local clock */
                <$Eroman sys.rootdelay~<<-~DELTA>;
                <$Eroman sys.rootdispersion~<<-~EPSILON~+~max ( epsilon
sub xi~+~| THETA |,~roman NTP.MINDISPERSE)>;
                endif
        <$Eroman sys.reftime~<<-~roman sys.clock>;
        end clock-update procedure;

<$ELAMBDA~<Mが○ ><~>と等しい、距離(同輩)>。 /*アップデートシステム変数*/<B>は(<$ELAMBDA~>>=~ローマン体のNTP.MAXDISTANCE>)であるなら出ます。 <$のEroman sys.leap~<<-~ローマン体のpeer.leap>。 <$Eroman sys.stratum~<<-~ローマン体のpeer.stratum~+~1>。 <$のEroman sys.refid~<<-~ローマン体のpeer.peeraddr>。 地方の時計に電話をしてください。 (地方の時計リセット)であるなら*リセットされるなら/を始めてくださいといって、州の変数*/<$Eroman sys.leap~<<-~、をクリアしてください、11が代理をする、2>。 (すべての同輩)に関しては、はっきりと電話をしてください。 ほかのendifは<$Eroman sys.peer~<<-~同輩>を始めます。 /、*そうでなければ、地方の時計*/<$Eroman sys.rootdelay~<<-~デルタ>を調整してください。 <$Eroman sys.rootdispersion~<<-~EPSILON~+~が最大限にする、(ε潜水艦ξ~+~| THETA|、ローマン体のNTP.MINDISPERSE) ~>。 endif<$のEroman sys.reftime~<<-~ローマン体のsys.clock>。 時計アップデート手順を終わらせてください。

In some system configurations a precise source of timing information is
available in the form of a train of timing pulses spaced at one-second
intervals. Usually, this is in addition to a source of timecode
information, such as a radio clock or even NTP itself, to number the
seconds, minutes, hours and days. In these configurations the system
variables are set to refer to the source from which the pulses are
derived. For those configurations which support a primary reference
source, such as a radio clock or calibrated atomic clock, the stratum is
set at one as long as this is the actual synchronization source and
whether or not the primary-clock procedure is used.

いくつかのシステム構成では、タイミング情報の正確な源は2分の1の間隔を置いて区切られたタイミング・パルスの列車の形で利用可能です。 通常、これはラジオ時計かNTP自身さえのtimecode情報、数への秒、数分、何時間、および何日もの源に加えています。 これらの構成では、システム変数がパルスが引き出されるソースを参照するように設定されます。 ラジオ時計か較正された原子時計などの第一の照合線源をサポートするそれらの構成において、第一の時計手順がこれが実際の同期ソースである限り、使用されているか否かに関係なく、層は1時に設定されます。

Specification of the clock-selection and local-clock algorithms is not
an integral part of the NTP specification, since there may be other
algorithms which provide equivalent performance. However, a clock-
selection algorithm found to work well in the Internet environment is
described in Section 4, while a local-clock algorithm is described in
Section 5 and their use is recommended. The clock-selection algorithm
described in Section 4 usually picks the peer at the lowest stratum and
minimum synchronization distance among all those available, unless that
peer appears to be a falseticker. The result is that the algorithms all
work to build a minimum-weight spanning tree relative to the primary
reference time servers and thus a hierarchical-master-slave
synchronization subnet.

時計選択と地方の時計アルゴリズムの仕様はNTP仕様の不可欠の部分ではありません、生産等量を提供する他のアルゴリズムがあるかもしれないので。 しかしながら、インターネット環境でうまくいくために見つけられた時計選択アルゴリズムはセクション4で説明されます、地方の時計アルゴリズムがセクション5で説明されます、そして、彼らの使用はお勧めですが。 通常、セクション4で説明された時計選択アルゴリズムはすべての利用可能なそれらの中で最も低い層と最小の同期距離で同輩を選びます、その同輩が、falsetickerであるように見えない場合。 結果はアルゴリズムが第一の参照時間サーバとその結果、階層的なマスター奴隷同期サブネットに比例して最小の重さのスパニングツリーを築き上げるためにすべて利くということです。

Primary-Clock Procedure

第一の時計手順

When a primary reference source such as a radio clock is connected to
the host, it is convenient to incorporate its information into the data
base as if the clock were represented as an ordinary peer. In the
primary-clock procedure the clock is polled once a minute or so and the
returned timecode used to produce a new update for the local clock. When
peer.timer decrements to zero for a primary clock peer, the transmit
procedure is not called; rather, the radio clock is polled, usually
using an ASCII string specified for this purpose. When a valid timecode
is received from the radio clock, it is converted to NTP timestamp
format and the peer variables updated. The value of peer.leap is set
depending on the status of the leap-warning bit in the timecode, if
available, or manually by the operator. The value for peer.peeraddr,
which will become the value of sys.refid when the clock-update procedure
is called, is set to an ASCII string describing the clock type (see
Appendix A).

ラジオ時計などの第一の照合線源がホストに接されるとき、まるで時計が普通の同輩として表されるかのように情報をデータベースに組み入れるのは便利です。 第一の時計手順で、時計はおよそ1分に一度投票されます、そして、返されたtimecodeは以前はよく地方の時計のための新しいアップデートを起こしていました。 伝わってください。予備選挙のためのゼロへのpeer.timer減少が時間を計るときにはじっと見てください、手順は呼ばれません。 通常、このために指定されたASCIIストリングを使用して、むしろ、ラジオ時計は投票されます。 ラジオ時計から有効なtimecodeを受け取るとき、NTPタイムスタンプ形式と変数がアップデートした同輩にそれを変換します。 peer.leapの値は利用可能であるならtimecodeでオペレータによって手動で噛み付かれた飛躍警告の状態に依存するように設定されます。 peer.peeraddrのための値は時計タイプについて説明するASCIIストリングに設定されます(Appendix Aを見てください)。(時計アップデート手順が呼ばれるとき、peer.peeraddrはsys.refidの値になるでしょう)。

begin primary-clock-update procedure
        <$Eroman peer.leap~<<-~"from"~radio~or~operator>;       /* copy
variables */
        <$Eroman peer.peeraddr~<<-~ASCII~identifier>;
        <$Eroman peer.rec~<<-~radio~timestamp>;
        <$Eroman peer.reach~<<-~1>;
        call clock-filter(<$Eroman {sys.clock~-~peer.rec,~0,~1~<<
<<~peer.precision}>);   /* process sample */
        call clock-update;                              /* update local
clock */
        end primary-clock-update procedure;

第一の時計アップデート手順<$Eroman peer.leap~<<-~"from"~ラジオ~か~オペレータ>を始めてください。 /*コピー変数*/<$Eroman peer.peeraddr~<<-~ASCII~識別子>。 <$Eroman peer.rec~<<-~ラジオ~タイムスタンプ>。 <$、Eroman peer.reach~<<~1>。 呼び出し時計フィルタ、(<$Eroman、sys.clock~~peer.rec、~0、~1~<<<<~peer.precision、>)、。 /*過程サンプル呼び出し時計*/最新版。 /*アップデート地方の時計*/エンド第一の時計アップデート手順。

Initialization Procedures

初期設定手順

The initialization procedures are used to set up and initialize the
system, its peers and associations.

初期化手順は、そのシステム、同輩、および協会をセットアップして、初期化するのに用いられます。

 Initialization Procedure

初期設定手順

The initialization procedure is called upon reboot or restart of the NTP
daemon. The local clock is presumably undefined at reboot; however, in
some equipment an estimate is available from the reboot environment,
such as a battery-backed clock/calendar. The precision variable is
determined by the intrinsic architecture of the local hardware clock.
The authentication variables are used only if the authentication
mechanism described in Appendix C is implemented. The values of these
variables are determined using procedures beyond the scope of NTP
itself.

初期化手順はNTPデーモンのリブートか再開のときに呼ばれます。 おそらく、地方の時計はリブートで未定義です。 しかしながら、何らかの設備では、見積りはバッテリーで支持された時計/カレンダーなどのリブート環境から有効です。 精度変数は地方のハードウェア時計の本質的な構造で決定します。 Appendix Cで説明された認証機構が実行される場合にだけ、認証変数は使用されています。 これらの変数の値は、NTP自身の範囲を超えて手順を用いることで決定しています。

begin initialization procedure
        #ifdef (authentication implemented)     / * see Appendix C */
                <$Eroman sys.keys~<<-~as~required>;
                #endef;
        <$Eroman sys.leap~<<-~11 sub 2>;                                
/* copy variables */
        <$Eroman sys.stratum~<<-~0~(undefined)>;
        <$Eroman sys.precision~<<-~host~precision>;
        <$Eroman sys.rootdelay~<<-~0~(undefined)>;
        <$Eroman sys.rootdispersion~<<-~0~(undefined)>;
        <$Eroman sys.refid~<<-~0~(undefined)>;
        <$Eroman sys.reftime~<<-~0~(undefined)>;
        <$Eroman sys.clock~<<-~external~reference>;
        <$Eroman sys.peer~<<-~roman NULL>;
        <$Eroman sys.poll~<<-~roman NTP.MINPOLL>;
        for (all configured peers)                      /* create
configured associations */
                call initialization-instantiation procedure;
        end initialization procedure;

/*が見る初期化手順#ifdef(実行された認証)を始めてください。~としてのAppendix C*/<$Eroman sys.keys~<<-~、は>を必要としました。 #endef。 <$、Eroman sys.leap~<<~11潜水艦2>。 /*コピー変数*/<$Eroman sys.stratum~<<~0~未定義の()>。 <$Eroman sys.precision~<<-~ホスト~精度>。 <$Eroman sys.rootdelay~<<~0~未定義の()>。 <$Eroman sys.rootdispersion~<<~0~未定義の()>。 <$Eroman sys.refid~<<~0~未定義の()>。 <$Eroman sys.reftime~<<~0~未定義の()>。 <$Eroman sys.clock~<<-~外部の~参照>。 <$のEroman sys.peer~<<-~ローマン体のNULL>。 <$のEroman sys.poll~<<-~ローマン体のNTP.MINPOLL>。 (すべての構成された同輩)/*に関しては、構成された協会呼び出し初期化*/具体化手順を作成してください。 初期化手順を終わらせてください。

 Initialization-Instantiation Procedure

初期設定具体化手順

This implementation-specific procedure is called from the initialization
procedure to define an association. The addresses and modes of the peers
are determined using information read during the reboot procedure or as
the result of operator commands. The authentication variables are used
only if the authentication mechanism described in Appendix C is
implemented. The values of these variables are determined using
procedures beyond the scope of NTP itself. With the authentication bits
set as suggested, only properly authenticated peers can become the
synchronization source.

この実現特有の手順は、協会を定義するために初期化手順から呼ばれます。 同輩のアドレスとモードは、リブート手順かオペレータコマンドの結果と読まれた情報を使用することで決定しています。 Appendix Cで説明された認証機構が実行される場合にだけ、認証変数は使用されています。 これらの変数の値は、NTP自身の範囲を超えて手順を用いることで決定しています。 ビットが示されるように設定する認証によると、適切に認証された同輩だけが同期ソースになることができます。

begin initialization-instantiation procedure
        <$Eroman peer.config~<<-~1>;
        #ifdef (authentication implemented)     /* see Appendix C */
                <$Eroman peer.authenable~<<-~1~(suggested)>;
                <$Eroman peer.authentic~<<-~0>;
                <$Eroman peer.hostkeyid~<<-~as~required>;
                <$Eroman peer.peerkeyid~<<-~0>;
                #endef;
        <$Eroman peer.peeraddr~<<-~peer~IP~address>;    /* copy
variables */
        <$Eroman peer.peerport~<<-~roman NTP.PORT>;
        <$Eroman peer.hostaddr~<<-~host~IP~address>;
        <$Eroman peer.hostport~<<-~roman NTP.PORT>;
        <$Eroman peer.mode~<<-~host~mode>;
        <$Eroman peer.peerpoll~<<-~0~(undefined)>;
        <$Eroman peer.timer~<<-~0>;
        <$Eroman peer.delay~<<-~0~(undefined)>;
        <$Eroman peer.offset~<<-~0~(undefined)>;
        call clear;                                     /* initialize
association */
        end initialization-instantiation procedure;

初期化具体化手順<$Eroman peer.config~<<-~、を始めてください、1>。 #ifdef(実行された認証)/*はAppendix C*/<$Eroman peer.authenable~<<~1~示される()>を見ます。 <$、Eroman peer.authentic~<<~0>。 ~としての<$Eroman peer.hostkeyid~<<-~、は>を必要としました。 <$、Eroman peer.peerkeyid~<<~0>。 #endef。 <$Eroman peer.peeraddr~<<-~同輩~IP~アドレス>。 /*コピー変数*/<$のEroman peer.peerport~<<-~ローマン体のNTP.PORT>。 <$Eroman peer.hostaddr~<<-~ホスト~IP~アドレス>。 <$のEroman peer.hostport~<<-~ローマン体のNTP.PORT>。 <$Eroman peer.mode~<<-~ホスト~モード>。 <$Eroman peer.peerpoll~<<~0~未定義の()>。 <$、Eroman peer.timer~<<~0>。 <$Eroman peer.delay~<<~0~未定義の()>。 <$Eroman peer.offset~<<~0~未定義の()>。 はっきりと電話をしてください。 /*は協会終わりの初期化*/具体化手順を初期化します。

 Receive-Instantiation Procedure

具体化を受け取っている手順

The receive-instantiation procedure is called from the receive procedure
when a new peer is discovered. It initializes the peer variables and
mobilizes the association. If the message is from a peer operating in
client mode (3), the host mode is set to server mode (4); otherwise, it
is set to symmetric passive mode (2). The authentication variables are
used only if the authentication mechanism described in Appendix C is
implemented. If implemented, only properly authenticated non-configured
peers can become the synchronization source.

具体化を受け取っている手順が呼ばれる、新しい同輩が発見されたら手順を受けてください。 それは、同輩変数を初期化して、協会を動員します。 メッセージがクライアントモード(3)で働いている同輩から来ているなら、ホストモードはサーバモード(4)に設定されます。 さもなければ、それは左右対称の受け身の形態(2)に設定されます。 Appendix Cで説明された認証機構が実行される場合にだけ、認証変数は使用されています。 実行されるなら、適切に認証された非構成された同輩だけが同期ソースになることができます。

begin receive-instantiation procedure
        #ifdef (authentication implemented)     /* see Appendix C */
                <$Eroman peer.authenable~<<-~0>;
                <$Eroman peer.authentic~<<-~0>;
                <$Eroman peer.hostkeyid~<<-~as~required>;
                <$Eroman peer.peerkeyid~<<-~0>;
                #endef
        <$Eroman peer.config~<<-~0>;                            /* copy
variables */
        <$Eroman peer.peeraddr~<<-~roman pkt.peeraddr>;
        <$Eroman peer.peerport~<<-~roman pkt.peerport>;
        <$Eroman peer.hostaddr~<<-~roman pkt.hostaddr>;
        <$Eroman peer.hostport~<<-~roman pkt.hostport>;
        if (pkt.mode = 3)                               /* determine
mode */
                <$Eroman peer.mode~<<-~4>;
                else
                <$Eroman peer.mode~<<-~2>;
        <$Eroman peer.peerpoll~<<-~0~(undefined)>;
        <$Eroman peer.timer~<<-~0>;
        <$Eroman peer.delay~<<-~0~(undefined)>;
        <$Eroman peer.offset~<<-~0~(undefined)>;
        call clear;                                     /* initialize
association */
        end receive-instantiation procedure;

始まり、具体化を受け取っている手順#ifdefな(実行された認証)/*がAppendix C*/<$Eroman peer.authenable~<<-~、を見る、0>。 <$、Eroman peer.authentic~<<~0>。 ~としての<$Eroman peer.hostkeyid~<<-~、は>を必要としました。 <$、Eroman peer.peerkeyid~<<~0>。 #endef<$、Eroman peer.config~<<~0>。 /*コピー変数*/<$のEroman peer.peeraddr~<<-~ローマン体のpkt.peeraddr>。 <$のEroman peer.peerport~<<-~ローマン体のpkt.peerport>。 <$のEroman peer.hostaddr~<<-~ローマン体のpkt.hostaddr>。 <$のEroman peer.hostport~<<-~ローマン体のpkt.hostport>。 *(pkt.mode=3)/であるならモード*/<$Eroman peer.mode~<<-~、を決定してください、4>。 ほかの<$、Eroman peer.mode~<<~2>。 <$Eroman peer.peerpoll~<<~0~未定義の()>。 <$、Eroman peer.timer~<<~0>。 <$Eroman peer.delay~<<~0~未定義の()>。 <$Eroman peer.offset~<<~0~未定義の()>。 はっきりと電話をしてください。 /*は具体化を受け取っている協会*/終わりの手順を初期化します。

 Primary Clock-Instantiation Procedure

第一の時計具体化手順

This procedure is called from the initialization procedure in order to
set up the state variables for the primary clock. The value for
peer.precision is determined from the radio clock specification and
hardware interface. The value for peer.rootdispersion is nominally ten
times the inherent maximum error of the radio clock; for instance,
<$E10~mu s> for a calibrated atomic clock, 10 ms for a WWVB or GOES
radio clock and 100 ms for a less accurate WWV radio clock.

この手順は、第一の時計のために州の変数をセットアップするために初期化手順から呼ばれます。 peer.precisionのための値はラジオ時計仕様とハードウェア・インタフェースから決定しています。 peer.rootdispersionのための値は名目上は、ラジオ固有の最大の誤りの10倍が時間を計るということです。 例えば、較正された原子時計のための<$E10~μs>、WWVBかゴエスラジオ時計のための10ms、およびそれほど正確でないWWVラジオのための100msが時間を計ります。

begin clock-instantiation procedure
        <$Eroman peer.config~<<-~1>;                            /* copy
variables */
        <$Eroman peer.peeraddr~<<-~0~undefined>;
        <$Eroman peer.peerport~<<-~0~(not~used)>;
        <$Eroman peer.hostaddr~<<-~0~(not~used)>;
        <$Eroman peer.hostport~<<-~0~(not~used)>;
        <$Eroman peer.leap~<<-~11 sub 2>;
        <$Eroman peer.mode~<<-~0~(not~used)>;
        <$Eroman peer.stratum~<<-~0>;
        <$Eroman peer.peerpoll~<<-~0~(undefined)>;
        <$Eroman peer.precision~<<-~clock~precision>;
        <$Eroman peer.rootdelay~<<-~0>;
        <$Eroman peer.rootdispersion~<<-~clock~dispersion>;
        <$Eroman peer.refid~<<-~0~(not~used)>;
        <$Eroman peer.reftime~<<-~0~(undefined)>;
        <$Eroman peer.timer~<<-~0>;
        <$Eroman peer.delay~<<-~0~(undefined)>;
        <$Eroman peer.offset~<<-~0~(undefined)>;
        call clear;                                     /* initialize
association */
        end clock-instantiation procedure;

時計具体化手順<$Eroman peer.config~<<-~、を始めてください、1>。 /*コピー変数*/<$Eroman peer.peeraddr~<<-~0~未定義の>。 <$Eroman peer.peerport~<<~0~使用される(~ない)>。 <$Eroman peer.hostaddr~<<~0~使用される(~ない)>。 <$Eroman peer.hostport~<<~0~使用される(~ない)>。 <$、Eroman peer.leap~<<~11潜水艦2>。 <$Eroman peer.mode~<<~0~使用される(~ない)>。 <$、Eroman peer.stratum~<<~0>。 <$Eroman peer.peerpoll~<<~0~未定義の()>。 <$Eroman peer.precision~<<-~時計~精度>。 <$、Eroman peer.rootdelay~<<~0>。 <$Eroman peer.rootdispersion~<<-~時計~分散>。 <$Eroman peer.refid~<<~0~使用される(~ない)>。 <$Eroman peer.reftime~<<~0~未定義の()>。 <$、Eroman peer.timer~<<~0>。 <$Eroman peer.delay~<<~0~未定義の()>。 <$Eroman peer.offset~<<~0~未定義の()>。 はっきりと電話をしてください。 /*は協会終わりの時計*/具体化手順を初期化します。

In some configurations involving a calibrated atomic clock or LORAN-C
receiver, the primary reference source may provide only a seconds pulse,
but lack a complete timecode from which the numbering of the seconds,
etc., can be derived. In these configurations seconds numbering can be
derived from other sources, such as a radio clock or even other NTP
peers. In these configurations the primary clock variables should
reflect the primary reference source, not the seconds-numbering source;
however, if the seconds-numbering source fails or is known to be
operating incorrectly, updates from the primary reference source should
be suppressed as if it had failed.

較正された原子時計かLORAN-C受信機にかかわるいくつかの構成に、第一の照合線源は秒パルスだけを供給するかもしれませんが、秒の付番などを引き出すことができる完全なtimecodeを欠いてください。 これらの構成秒に、他のソースから付番を得ることができます、ラジオ時計や他のNTP同輩のようにさえ。 これらの構成に、第一の時計変数は秒に付番するソースではなく、第一の照合線源を反映するべきです。 しかしながら、秒に付番するソースが失敗するか、または不当に作動しているのが知られているなら、第一の照合線源からのアップデートはまるで失敗したかのように抑圧されるべきです。

Clear Procedure

明確な手順

The clear procedure is called when some event occurs that results in a
significant change in reachability state or potential disruption of the
local clock.
begin clear procedure
        <$Eroman peer.org~<<-~0~(undefined)>;                   /* mark
timestamps undefined */
        <$Eroman peer.rec~<<-~0~(undefined)>;
        <$Eroman peer.xmt~<<-~0~(undefined)>;
        <$Eroman peer.reach~<<-~0>;                             /* reset
state variables */
        <$Eroman peer.filter~<<-~[0,~,0,~roman NTP.MAXDISPERSE]>;   /*
all stages */
        <$Eroman peer.valid~<<-~0>;
        <$Eroman peer.dispersion~<<-~roman NTP.MAXDISPERSE>;
        <$Eroman {peer.hostpoll~<<-~NTP.MINPOLL}>;              /* reset
poll interval */
        call poll-update;
        call clock-select;                              /* select clock
source */
        end clear procedure;

地方の時計の可到達性状態か潜在的分裂における著しい変化をもたらすいくつかの出来事が起こるとき、明確な手順は呼ばれます。明確な手順<$Eroman peer.org~<<~0~未定義の()>を始めてください。 /*マークタイムスタンプ未定義の*/<$Eroman peer.rec~<<~0~未定義の()>。 <$Eroman peer.xmt~<<~0~未定義の()>。 <$、Eroman peer.reach~<<~0>。 /*は州の変数*/<$Eroman peer.filter~<<-~[0、~、0、~ローマン体のNTP.MAXDISPERSE]>をリセットしました。 /*が*/<$Eroman peer.valid~<<-~、をすべて上演する、0>。 <$のEroman peer.dispersion~<<-~ローマン体のNTP.MAXDISPERSE>。 <$がpeer.hostpoll~<<-~NTP.MINPOLLをEromanする、>。 /*は投票間隔呼び出し投票*/アップデートをリセットしました。 時計選んだ状態で、電話をしてください。 /*選んだ時計ソース*/エンドの明確な手順。

Poll-Update Procedure

投票アップデート手順

The poll-update procedure is called when a significant event occurs that
may result in a change of the poll interval or peer timer. It checks the
values of the host poll interval (peer.hostpoll) and peer poll interval
(peer.peerpoll) and clamps each within the valid range. If the peer is
selected for synchronization, the value is further clamped as a function
of the computed compliance (see Section 5).

投票間隔か同輩タイマの変化をもたらすかもしれない重大な行事が起こるとき、投票アップデート手順は呼ばれます。 それは有効枠の中でそれぞれホスト投票間隔(peer.hostpoll)、同輩投票間隔(peer.peerpoll)、および留め金の値をチェックします。 同輩が同期のために選ばれるなら、値は計算されたコンプライアンスの機能としてさらに固定されます(セクション5を見てください)。

begin poll-update procedure
        <$Etemp~<<-~roman peer.hostpoll>;                       /*
determine host poll interval */
        if (<$Epeer~=~roman sys.peer>)
                <$Etemp~<<-~min (temp,~roman {sys.poll,~NTP.MAXPOLL)}>;
        else
                <$Etemp~<<-~min (temp,~roman NTP.MAXPOLL)>;
        <$Eroman peer.hostpoll~<<-~max (temp,~roman NTP.MINPOLL)>;
        <$Etemp~<<-~1~<< << ~min ( roman {peer.hostpoll,~max
(peer.peerpoll,~NTP.MINPOLL)})>;

投票アップデート手順<$のEtemp~<<-~ローマン体のpeer.hostpoll>を始めてください。 /*が(<$Epeer~=の~ローマン体のsys.peer>)<$Etemp~<<-~であるならホスト投票間隔*/を決定する、分、(臨時と、~ローマン体、sys.poll、~NTP.MAXPOLL)、>。 ほかの<$Etemp~<<-~分(臨時、~ローマン体のNTP.MAXPOLL)>。 <$Eroman peer.hostpoll~<<-~最大(臨時、~ローマン体のNTP.MINPOLL)>。 -~1~<<<<~分の<$Etemp~<<、(ローマン体、peer.hostpoll、~最大(peer.peerpoll、~NTP.MINPOLL))、>。

If the poll interval is unchanged and the peer timer is zero, the timer
is simply reset. If the poll interval is changed and the new timer value
is greater than the present value, no additional action is necessary;
otherwise, the peer timer must be reduced. When the peer timer must be
reduced it is important to discourage tendencies to synchronize
transmissions between the peers. A prudent precaution is to randomize
the first transmission after the timer is reduced, for instance by the
sneaky technique illustrated.

投票間隔が変わりがなく、同輩タイマがゼロであるなら、タイマは単にリセットされます。 投票間隔を変えて、新しいタイマ値が現在価値より大きいなら、どんな追加措置も必要ではありません。 さもなければ、同輩タイマは減少しなければなりません。 同輩タイマが減少しなければならないとき、同輩の間のトランスミッションを同時にさせる傾向に水をさしているのは重要です。 慎重な注意は例えば、タイマが減少して、卑劣なテクニックで例証された後に最初のトランスミッションをランダマイズすることです。

        if (peer.timer = 0)                             /* reset peer
timer */
                <$Eroman peer.timer~<<-~temp>;
        else if (<$Eroman peer.timer~>>~temp>)
                <$Eroman peer.timer~<<-~( roman sys.clock~&~(temp~-
~1))~+~1>;
        end poll-update procedure;

(peer.timer=0)/*が同輩タイマ*/<$Eroman peer.timer~<<-~臨時>をリセットしたなら。 ほかにもかかわらず、Eroman peer.timer~<<-~ローマン体の(sys.clock~、と~臨時~(~1))~+~1(<$Eroman peer.timer~>>~臨時>)<ドルの>。 投票アップデート手順を終わらせてください。

Synchronization Distance Procedure

同期距離手順

The distance procedure calculates the synchronization distance from the
peer variables for the peer peer.

距離手順は同輩同輩のために同輩変数から同期距離について計算します。

begin distance(peer) procedure;
        <$EDELTA~<<-~roman {peer.rootdelay~+~|peer.delay|}>;
        <$EEPSILON~<<-~roman
{peer.rootdispersion~+~peer.dispersion~+~phi (sys.clock~-~peer.update)
}>;
        <$ELAMBDA~<<-~EPSILON~+~{| DELTA |} over 2> ;
        end distance procedure;

距離(同輩)手順を始めてください。 <$EDELTA~<<-~ローマン体、peer.rootdelay~+~| peer.delay|、>。 <$EEPSILON~<<-~ローマン体のpeer.rootdispersion~+~peer.dispersion~+~φ(sys.clock~~peer.update)>。 <$ELAMBDA~<<~イプシロン~+、~、| デルタ|、2以上>。 距離手順を終わらせてください。

Note that, while <$EDELTA> may be negative in some cases, both
<$EEPSILON> and <$ELAMBDA> are always positive.

<$EDELTA>がいくつかの場合否定的であるかもしれませんが、<$EEPSILON>と<$ELAMBDA>の両方がいつも積極的であることに注意してください。

Access Control Issues

アクセス管理問題

The NTP design is such that accidental or malicious data modification
(tampering) or destruction (jamming) at a time server should not in
general result in timekeeping errors elsewhere in the synchronization
subnet. However, the success of this approach depends on redundant time
servers and diverse network paths, together with the assumption that
tampering or jamming will not occur at many time servers throughout the
synchronization subnet at the same time. In principle, the subnet
vulnerability can be engineered through the selection of time servers
known to be trusted and allowing only those time servers to become the
synchronization source. The authentication procedures described in
Appendix C represent one mechanism to enforce this; however, the
encryption algorithms can be quite CPU-intensive and can seriously
degrade accuracy, unless precautions such as mentioned in the
description of the transmit procedure are taken.

NTPデザインがそのようなものであるので、一般に、時間サーバにおける偶然の、または、悪意があるデータ変更(いじる)か破壊(ジャム)が同期サブネットにおけるほかの場所で時間保持誤りをもたらすべきではありません。 しかしながら、このアプローチの成功は余分な時間サーバとさまざまのネットワーク経路によります、いじるかジャムが同時に同期サブネット中に多くの時間サーバで起こらないという仮定と共に。 原則として、サブネット脆弱性は、信じられるのが知られている時間サーバの品揃えで設計されて、それらの時間サーバだけが同期ソースになるのを許容できます。 Appendix Cで説明された認証手順はこれを実施するために1つのメカニズムを表します。 手順を伝えてください。しかしながら、暗号化アルゴリズムがCPUかなり徹底的である場合があり、真剣に精度を下げることができる、記述で言及されるような注意、取ります。

While not a required feature of NTP itself, some implementations may
include an access-control feature that prevents unauthorized access and
controls which peers are allowed to update the local clock. For this
purpose it is useful to distinguish between three categories of access:
those that are preauthorized as trusted, preauthorized as friendly and
all other (non-preauthorized) accesses. Presumably, preauthorization is
accomplished by entries in the configuration file or some kind of
ticket-management system such as Kerberos [STE88]. In this model only
trusted accesses can result in the peer becoming the synchronization
source. While friendly accesses cannot result in the peer becoming the
synchronization source, NTP messages and timestamps are returned as
specified.

NTP自身の必要な特徴でない間、いくつかの実現が不正アクセスを防ぐアクセス管理機能と同輩が地方の時計をアップデートできるコントロールを含むかもしれません。 このためにそれはアクセスの3つのカテゴリを見分けるために役に立ちます: 信じられて、好意的であるのと他として前認可された(非前認可された)アクセスとして前認可されるもの。 おそらく、前認可はケルベロス[STE88]などの構成ファイルにおけるエントリーかある種のチケットマネージメントシステムによって達成されます。 信じられただけであるこのモデルでは、アクセスは同期ソースになる同輩をもたらすことができます。 好意的なアクセスが同期ソースになる同輩をもたらすことができない間、指定されるとしてNTPメッセージとタイムスタンプを返します。

It does not seem useful to maintain a secret clock, as would result from
restricting non-preauthorized accesses, unless the intent is to hide the
existence of the time server itself. Well-behaved Internet hosts are
expected to return an ICMP service-unavailable error message if a
service is not implemented or resources are not available; however, in
the case of NTP the resources required are minimal, so there is little
need to restrict requests intended only to read the clock. A simple but
effective access-control mechanism is then to consider all associations
preconfigured in a symmetric mode or client mode (modes 1, 2 and 3) as
trusted and all other associations, preconfigured or not, as friendly.

秘密の時計を維持するのは役に立つように思えません、非前認可されたアクセスを制限するのからの結果であるだろうことのように、意図が時間サーバ自体の存在を隠さないことであるなら。 サービスが実行されないなら品行方正のインターネット・ホストがICMPのサービス入手できないエラーメッセージを返すと予想されるか、またはリソースは利用可能ではありません。 しかしながら、NTPの場合では、必要であるリソースが最小限ので、単に時計の時間を読むことを意図する要求を制限する必要がほとんどありません。 簡単な、しかし、有効なアクセス管理機構は、左右対称のモードかクライアントモード(モード1、2、および3)で信じられるようにあらかじめ設定されたすべての協会と他のすべての協会を考えるために当時であって、あらかじめ設定されています、好意的であるとして。

If a more comprehensive trust model is required, the design can be based
on an access-control list with each entry consisting of a 32-bit
Internet address, 32-bit mask and three-bit mode. If the logical AND of
the source address (pkt.peeraddr) and the mask in an entry matches the
corresponding address in the entry and the mode (pkt.mode) matches the
mode in the entry, the access is allowed; otherwise an ICMP error
message is returned to the requestor. Through appropriate choice of
mask, it is possible to restrict requests by mode to individual
addresses, a particular subnet or net addresses, or have no restriction
at all. The access-control list would then serve as a filter controlling
which peers could create associations.

より包括的な信用モデルが必要であるなら、デザインは各エントリーが32ビットのインターネット・アドレス、32ビットのマスク、および3ビットのモードから成っているアクセスコントロールリストに基づくことができます。 ソースアドレス(pkt.peeraddr)とエントリーにおけるマスクの論理的なANDがエントリーで対応するアドレスに合っていて、モード(pkt.mode)がエントリーでモードに合っているなら、アクセスは許されています。 さもなければ、ICMPエラーメッセージを要請者に返します。 マスクの適当な選択で、モードで要求を個々のアドレス、特定のサブネットまたはネットのアドレスに制限するか、または制限を全く持っていないのが可能です。 そして、どの同輩を監督するフィルタが協会を創設するかもしれないようにアクセスコントロールリストは役立つでしょう。

Filtering and Selection Algorithms

フィルタリングと選択アルゴリズム

A most important factor affecting the accuracy and reliability of time
distribution is the complex of algorithms used to reduce the effect of
statistical errors and falsetickers due to failure of various subnet
components, reference sources or propagation media. The algorithms
suggested in this section were developed and refined over several years
of operation in the Internet under widely varying topologies, speeds and
traffic regimes. While these algorithms are believed the best available
at the present time, they are not an integral part of the NTP
specification, since other algorithms with similar or superior
performance may be devised in future.

時間分配の精度と信頼性に影響する最も重要な要素は様々なサブネットコンポーネント、照合線源または伝播メディアの失敗のため統計誤差とfalsetickersの効果を減少させるのに使用されるアルゴリズムの複合体です。 このセクションで示されたアルゴリズムは、広くtopologies、速度、および交通政権を変える下のインターネットでの数年の操作の上で開発されて、洗練されました。 現時点に利用可能であるとこれらのアルゴリズムを信じていますが、最も良いそれらはNTP仕様の不可欠の部分ではありません、同様の、または、優れた性能がある他のアルゴリズムがこれから工夫されるかもしれないので。

However, it is important to observe that not all time servers or clients
in an NTP synchronization subnet must implement these algorithms. For
instance, simple workstations may dispense with one or both of them in
the interests of simplicity if accuracy and reliability requirements
justify. Nevertheless, it would be expected that an NTP server providing
synchronization to a sizable community, such as a university campus or
research laboratory, would be expected to implement these algorithms or
others proved to have equivalent functionality. A comprehensive
discussion of the design principles and performance is given in
[MIL91a].

しかしながら、NTP同期サブネットにおけるどんなすべての時間サーバもクライアントも. 例えば、簡単なワークステーションが精度であるなら簡単さのためにそれらの1か両方で分配するかもしれなくて、信頼度要求事項が正当化するこれらのアルゴリズムを実行してはいけないのを観測するのは重要です。 それにもかかわらず、大学構内か研究所などのかなり大きい共同体に同期を提供するNTPサーバが同等な機能性を持っていると立証されたこれらのアルゴリズムか他のものを実行すると予想されると予想されるでしょう。 [MIL91a]で設計原理と性能の網羅的な議論を与えます。

In order for the NTP filter and selection algorithms to operate
effectively, it is useful to have a measure of recent sample variance
recorded for each peer. The measure adopted is based on first-order
differences, which are easy to compute and effective for the purposes
intended. There are two measures, one called the filter dispersion
<$Eepsilon sub sigma> and the other the select dispersion <$Eepsilon sub
xi>. Both are computed as the weighted sum of the clock offsets in a
temporary list sorted by synchronization distance. If <$Etheta sub i
~(0~<<=~i~<<~n)> is the offset of the ith entry, then the sample
difference <$Eepsilon sub ij> of the ith entry relative to the jth entry
is defined <$Eepsilon sub ij~<~>=~| theta sub i~-~theta sub j |> . The
dispersion relative to the jth entry is defined <$Eepsilon sub j> and
computed as the weighted sum

有効に操作するNTPフィルタと選択アルゴリズムにおいて整然とします、各同輩のために最近の標本分散の基準を記録させるのは役に立ちます。 採用された測定は一次違いに基づいています。(違いは、計算しやすくて意図する目的に有効です)。 2つの測定があって、あるものは、フィルタ分散<$Eepsilon潜水艦σ>ともう片方を選んだ分散<$Eepsilon潜水艦ξ>と呼びました。 時計の荷重している合計が同期距離によって分類された一時的なリストで相殺されるとき、両方が計算されます。 <$Etheta潜水艦i~(0~<<は~i~<<の行くのと等しいです)>がithエントリーのオフセットであるなら、jthエントリーに比例したithエントリーのサンプル違いの<$Eepsilon潜水艦ij>は定義された<$Eepsilon潜水艦ij~<~>=~です。| θ潜水艦i~~θ、が代理をする、j|>jthエントリーに比例した分散はEepsilon潜水艦j>であって荷重している合計として計算された定義された<$です。

<$Eepsilon sub j~=~sum from {i~=~0} to {n~-~1}~epsilon sub ij~w~sup
{i+1}> ,

i~=~0、からn~~1~ε潜水艦ij~w~一口i+1>までの<$Eepsilon潜水艦j~=~合計

where w is a weighting factor chosen to control the influence of
synchronization distance in the dispersion budget. In the NTP algorithms
w is chosen less than <$E1 / 2>: <$Ew~=~roman NTP.FILTER> for filter
dispersion and <$Ew~=~roman NTP.SELECT> for select dispersion. The
(absolute) dispersion <$Eepsilon sub sigma> and <$Eepsilon sub xi> as
used in the NTP algorithms are defined relative to the 0th entry
<$Eepsilon sub 0>.

分散予算における、同期距離の影響を制御するために選ばれて、wが重み係数であるところで。 NTPアルゴリズムで、wは選ばれた<$Eより少ない1 / 2>です: フィルタ分散と<$Ew~の<$Ew~=の~ローマン体のNTP.FILTER>は選んだ分散のために~ローマン体のNTP.SELECT>と等しいです。 NTPアルゴリズムで使用される(絶対)の分散<$Eepsilon潜水艦σ>と<$Eepsilon潜水艦ξ>は0番目のエントリー<$Eepsilon潜水艦に比例して定義されます。0>。

There are two procedures described in the following, the clock-filter
procedure, which is used to select the best offset samples from a given
clock, and the clock-selection procedure, which is used to select the
best clock among a hierarchical set of clocks.

以下で説明された2つの手順と時計フィルタ手順と時計選択手順があります。(それは、与えられた時計からの最も良いオフセットサンプルを選択するのに用いられます)。(それは、階層的なセットの時計の中で最も良い時計を選択するのに用いられます)。

Clock-Filter Procedure

時計フィルタ手順

The clock-filter procedure is executed upon arrival of an NTP message or
other event that results in new data samples. It takes arguments of the
form (<$Etheta ,~delta ,~epsilon>), where <$Etheta> is a sample clock
offset measurement and <$Edelta> and <$Eepsilon> are the associated
roundtrip delay and dispersion. It determines the filtered clock offset
(peer.offset), roundtrip delay (peer.delay) and dispersion
(peer.dispersion). It also updates the dispersion of samples already
recorded and saves the current time (peer.update).

時計フィルタ手順は新しいデータのサンプルをもたらすNTPメッセージか他の出来事の到着のときに実行されます。 時計オフセット測定と<$Edelta>と<$Eepsilon>は<$Etheta>がサンプルであることのそれが形式(<$Etheta、~デルタ、~ε>)の議論を取って、関連往復の遅れと分散です。 それは、フィルターにかけることの時計が(peer.offset)、往復の遅れ(peer.delay)、および分散(peer.dispersion)を相殺したことを決定します。 それは、また、既に記録されたサンプルの分散をアップデートして、現在の時間(peer.update)を節約します。

The basis of the clock-filter procedure is the filter shift register
(peer.filter), which consists of NTP.SHIFT stages, each stage containing
a 3-tuple <$E[ theta sub i ,~delta sub i ,~epsilon sub i ]>, with
indices numbered from zero on the left. The filter is initialized with
the value <$E[0,~0,~roman NTP.MAXDISPERSE]> in all stages by the clear
procedure. New data samples are shifted into the filter at the left end,
causing first NULLs then old samples to fall off the right end. The
packet procedure provides samples of the form (<$Etheta ,~delta
,~epsilon>) as new updates arrive, while the transmit procedure provides
samples of the form <$E[0,~0,~roman NTP.MAXDISPERSE]> when two poll
intervals elapse without a fresh update. While the same symbols
(<$Etheta ,~delta ,~epsilon>) are used here for the arguments, clock-
filter contents and peer variables, the meaning will be clear from
context. The following pseudo-code describes this procedure.

時計フィルタ手順の基礎はフィルタシフトレジスタ(peer.filter)です、インデックスリストが左でゼロから付番されている状態で。(それは、NTP.SHIFTステージ、3-tuple<$E[θ潜水艦i、~デルタ潜水艦i、~ε潜水艦i]>を含む各ステージから成ります)。 フィルタはすべての段階で値の<$E[0、~0、~ローマン体のNTP.MAXDISPERSE]>で明確な手順で初期化されます。 新しいデータのサンプルは左の終わりのフィルタに移動します、最初に、NULLsの当時の古いサンプルが正しい終わりから落ちることを引き起こして。 手順を伝えてください。新しいアップデートが到着するときパケット手順が形式(<$Etheta、~デルタ、~ε>)のサンプルを提供する、2回の投票間隔が新鮮なアップデートなしで経過するフォーム<$E[0、~0、~ローマン体のNTP.MAXDISPERSE]>のサンプルを提供します。 同じシンボル(<$Etheta、~デルタ、~ε>)が議論、時計フィルタコンテンツ、および同輩変数にここで使用される間、意味は文脈から明確になるでしょう。 以下の中間コードはこの手順について説明します。

begin clock-filter procedure (<$Etheta ,~delta ,~epsilon>)

時計フィルタ手順を始めてください。(<$Etheta、~デルタ、~ε>)

The dispersion <$Eepsilon sub i> for all valid samples in the filter
register must be updated to account for the skew-error accumulation
since the last update. These samples are also inserted on a temporary
list with entry format <$E[distance,index]>. The samples in the register
are shifted right one stage, with the overflow sample discarded and the
new sample inserted at the leftmost stage. The temporary list is then
sorted by increasing distance. If no samples remain in the list, the
procedure exits without updating the peer variables.

アップデート以来斜行エラー蓄積を説明するためにフィルタレジスタのすべての有効なサンプルの分散<$Eepsilon潜水艦i>をアップデートしなければなりません。 また、これらのサンプルは一時的なリストで入力フォーマット<$E[距離、インデックス]>で挿入されます。 レジスタのサンプルは正しい1つのステージに移動します、オーバーフローのサンプルが捨てられて、新規見本が一番左段階で挿入されている状態で。 そして、一時的なリストは、距離を増加させることによって、分類されます。 サンプルが全くリストに残っていないなら、同輩変数をアップデートしないで、手順は出ます。

        for (i from NTP.SIZE <196> 1 to 1) begin        /* update
dispersion */
                <$E[ theta sub i ,~delta sub i ,~epsilon sub i ]~<<-~[
theta sub {i-1} ,~delta sub {i-1} ,~epsilon sub {i-1} ]>;               
/* shift stage right */
                <$Eepsilon sub i~=~epsilon sub i~+~phi tau>;
                add <$E[ lambda sub i~==~epsilon sub i~+~{| delta  sub i
|} over 2 ,~i]> to temporary list;
                endfor;
        <$E[ theta sub 0 ,~delta sub 0 ,~epsilon sub 0 ]~<<-~[ theta
,~delta ,~epsilon ]>;                   /* insert new sample */
        add <$E[ lambda~==~epsilon~+~{| delta |} over 2 ,~0]> to
temporary list;
        <$Eroman peer.update~<<-~roman sys.clock>;                      
/* reset base time */
        sort temporary list by increasing <$E[distance~||index]>;

(NTP.SIZE<196>1〜1からのi)に関しては、/*アップデート分散*/<$E[θ潜水艦i、~デルタ潜水艦i、~ε潜水艦i]~<<-~[θ潜水艦i-1、~デルタ潜水艦i-1、~ε潜水艦i-1]>を始めてください。 /*シフト下手*/<$Eepsilon潜水艦i~=~ε潜水艦i~+~φタウ粒子>。 <$Eを加えてください、[λ潜水艦i~=~ε潜水艦i~+~、| デルタ潜水艦i|、2以上、一時的なリストへの~]i>。 endfor。 <$E[θ潜水艦0、~デルタ潜水艦0、~ε潜水艦0]~<<-~[θ、~デルタ、~ε]>。 /*差し込み新規見本*/が<$Eを加える、[λ~=~ε~+~、| デルタ|、~0] 2以上、一時的なリストへの>。 <$のEroman peer.update~<<-~ローマン体のsys.clock>。 /*は増加する<$E[距離~| | インデックス]>でベース時間*/種類一時的なリストをリセットしました。

where <$E[distance~||index]> represents the concatenation of the
distance and index fields and distance is the high-order field. The
filter dispersion <$Eepsilon sub sigma> is computed and included in the
peer dispersion. Note that for this purpose the temporary list is
already sorted.

<$E[距離~| | インデックス]>がどこに距離、インデックス部、および距離の連結を表すかは、高位分野です。 フィルタ分散<$Eepsilon潜水艦σ>は同輩分散で計算されて、含まれています。 このために一時的なリストが既に分類されることに注意してください。

        <$Eepsilon sub sigma~<<-~0>;
        for (i from NTP.SHIFT<196>1 to 0)               /* compute
filter dispersion */
                if (<$Eroman peer.dispersion sub index[i]~>>=~roman
NTP.MAXDISPERSE> or
                        <$E| theta sub i~-~theta sub 0 |~>>~roman
NTP.MAXDISPERSE>)
                        <$Eepsilon sub sigma~<~><<-~( epsilon sub
sigma~+~roman NTP.MAXDISPERSE)~times~roman NTP.FILTER>;
                else
                        <$Eepsilon sub sigma~<~><<-~( epsilon sub
sigma~+~| theta sub i~-~theta sub 0 |)~times~roman NTP.FILTER>;

<$Eepsilonな潜水艦σ~<<~0>。 (NTP.SHIFT<196>1〜0からのi)/*に関しては、(<$Eroman peer.dispersion潜水艦インデックス[i]~>>は~ローマン体のNTP.MAXDISPERSE>か<$E| θの潜水艦i~~θ潜水艦0| ~>>~ローマン体のNTP.MAXDISPERSE>と等しいです)<$Eepsilon潜水艦σ~<~><<-~(ε潜水艦σ~+~ローマン体のNTP.MAXDISPERSE)~回数~のローマン体のNTP.FILTER>であるならフィルタ分散*/を計算してください。 ほかの<の潜水艦σ~<~><$Eepsilon<-~、(イプシロン潜水艦σ~+~| θ潜水艦i~~θ、が代理をする、0|、)、~回の~ローマン体のNTP.FILTER>。

The peer offset <$Etheta sub 0>, delay <$Edelta sub 0> and dispersion
<$Eepsilon sub 0> are chosen as the values corresponding to the minimum-
distance sample; in other words, the sample corresponding to the first
entry on the temporary list, here represented as the 0th subscript.

同輩オフセット<$のEtheta潜水艦の遅れ<$の0>、Edelta潜水艦0>、および分散<$Eepsilonは代理をします。0>は最小の距離のサンプルに対応する値として選ばれています。 言い換えれば、一時的の初記入に対応するサンプルはここに0番目の添字として表された状態でリストアップされています。

        <$Eroman peer.offset~<<-~theta sub 0>;                          
/* update peer variables */
        <$Eroman peer.delay~<<-~delta sub 0>;
        <$Eroman peer.dispersion~<<-~min ( epsilon sub 0~+~epsilon sub
sigma ,~roman NTP.MAXDISPERSE)>;
        end clock-filter procedure

<$Eroman peer.offset~<<~θ、が代理をする、0>。 /*アップデート同輩変数*/<$Eroman peer.delay~<<-~、デルタ潜水艦0>。 <$Eroman peer.dispersion~<<-~分(ε潜水艦0~+~ε潜水艦σ、~ローマン体のNTP.MAXDISPERSE)>。 終わりの時計フィルタ手順

The peer.offset and peer.delay variables represent the clock offset and
roundtrip delay of the local clock relative to the peer clock. Both of
these are precision quantities and can usually be averaged over long
intervals in order to improve accuracy and stability without bias
accumulation (see Appendix H). The peer.dispersion variable represents
the maximum error due to measurement error, skew-error accumulation and
sample variance. All three variables are used in the clock-selection and
clock-combining procedures to select the peer clock(s) used for
synchronization and to maximize the accuracy and stability of the
indications.

peer.offsetとpeer.delay変数は同輩時計に比例して地方の時計の時計オフセットと往復の遅れを表します。 これらの両方は、精度量であり、通常、バイアス蓄積なしで精度と安定性を改良するために長い間隔にわたって平均できます(Appendix Hを見てください)。 peer.dispersion変数は測定誤差、斜行エラー蓄積、および標本分散による最大の誤りを表します。 すべての3つの変数が、同期に使用される同輩時計を選択して、指摘の精度と安定性を最大にするのに時計選択と時計を結合した手順で使用されます。

Clock-Selection Procedure

時計選択手順

The clock-selection procedure uses the peer variables <$ETHETA>,
<$EDELTA>, <$EEPSILON> and <$Etau> and is called when these variables
change or when the reachability status changes. It consists of two
algorithms, the intersection algorithm and the clustering algorithm. The
intersection algorithm constructs a list of candidate peers eligible to
become the synchronization source, computes a confidence interval for
each and casts out falsetickers using a technique adapted from Marzullo
and Owicki [MAR85]. The clustering algorithm sorts the list of surviving
candidates in order of stratum and synchronization distance and
repeatedly casts out outlyers on the basis of select dispersion until
only the most accurate, precise and stable survivors are left. A bit is
set for each survivor to indicate the outcome of the selection process.
The system variable sys.peer is set as a pointer to the most likely
survivor, if there is one, or to the NULL value if not.

時計選択手順は、同輩変数<$のETHETA>、<$EDELTA>、<$EEPSILON>、および<$Etau>を使用して、これらの変数が変化するか、または可到達性状態が変化するとき、呼ばれます。 それは2つのアルゴリズム、交差点アルゴリズム、およびクラスタ化アルゴリズムから成ります。 交差点アルゴリズムは、MarzulloとOwicki[MAR85]から適合させられたテクニックを使用することで同期ソースになるのが適任の候補同輩のリストを構成して、それぞれのために信頼区間を計算して、falsetickersを捨てます。 クラスタ化アルゴリズムは、層と同期距離の順に生き残っている候補のリストを分類して、最も正確で、正確で安定した生存者しか左にいないまで、選んだ分散に基づいて繰り返してoutlyersを捨てます。 各生存者が選択の過程の結果を示すように少し設定されます。 システムの可変sys.peerはポインタとして最もありそうな生存者に用意ができています、そうでなければ1つがあるか、またはNULL値に。

Intersection Algorithm

交差点アルゴリズム

        begin clock-selection procedure

時計選択手順を始めてください。

Each peer is examined in turn and added to an endpoint list only if it
passes several sanity checks designed to avoid loops and use of
exceptionally noisy data. If no peers survive the sanity checks, the
procedure exits without finding a synchronization source. For each of m
survivors three entries of the form <$E[endpoint,~type]> are added to
the endpoint list: <$E[ THETA~-~LAMBDA ,~-~1]>, <$E[ THETA ,~0]> and
<$E[ THETA~+~LAMBDA ,~1]>. There will be <$E3 m> entries on the list,
which is then sorted by increasing endpoint.

例外的に騒がしいデータの輪と使用を避けるように設計されたいくつかの健全度チェックを通過する場合にだけ、各同輩は、終点リストに順番に調べられて、追加されます。 どんな同輩も健全度チェックを乗り切らないなら、同期ソースを見つけないで、手順は出ます。 m生存者各人に関しては、フォーム<$E[終点、~、はタイプされます]>の3つのエントリーが終点リストに追加されます: <$E、[θ~~のλ、~~1] >、<$E[θ、~0]>、および<$E[θ~+~λ、~1]>。 3mの<$E>エントリーがリストにあるでしょう。(次に、それは、増加する終点によって分類されます)。

        <$Em~<<-~0>;
        for (each peer)                         /* calling all peers */
                if (<$Eroman {peer.reach~!=~0~bold
and~peer.dispersion~<<~NTP.MAXDISPERSE}> and
                        not (peer.stratum >> 1 and peer.refid =
peer.hostaddr)) begin
                        <$ELAMBDA~<MO>
<~>an distance (peer)>;                 /* make list entry */
                        add <$E[ THETA~-~LAMBDA ,~-1]> to endpoint list;
                        add <$E[ THETA ,~0]> to endpoint list;
                        add <$E[ THETA~+~LAMBDA ,~1]> to endpoint list;
                        <$Em~<<-~m~+~1>;
                        <B>endif
                endfor
        if (<$Em~=~0>) begin                            /* skedaddle if
no candidates */
                <$Eroman sys.peer~<<-~roman NULL>;
                <$Eroman sys.stratum~<<-~0~(undefined)>;
                exit;
                endif
        sort endpoint list by increasing endpoint||type;

<$、イエム~<<~0>。 すべての同輩*/を呼ぶ(各同輩)/*、(<$Eroman、(peer.stratum>>1とpeer.refid=peer.hostaddr)ではなく>が始めるpeer.reach~!=~0~ボールドと~peer.dispersion~<<~NTP.MAXDISPERSE、<$ELAMBDA~<MO><~>、距離(同輩)>。 /*で、リストエントリー*/は<$E[THETA~~LAMBDA、~-1]>を終点リストに追加します。 <$E[THETA、~0]>を終点リストに追加してください。 <$E[THETA~+~LAMBDA、~1]>を終点リストに追加してください。 <$イエム~<<~m~+、~1>。 (<のイエム~=~0ドルの>)が/*を始めるなら、<B>endif endforは候補*/<$がないことのEroman sys.peer~<<-~ローマン体のNULL>であるなら逃げます。 <$Eroman sys.stratum~<<~0~未定義の()>。 出てください。 増加する終点のそばのendif種類の終点リスト||タイプしてください。

The following algorithm is adapted from DTS [DEC89] and is designed to
produce the largest single intersection containing only truechimers. The
algorithm begins by initializing a value f and counters i and c to zero.
Then, starting from the lowest endpoint of the sorted endpoint list, for
each entry <$E[endpoint,~type]> the value of type is subtracted from the
counter i, which is the number of intersections. If type is zero,
increment the value of c, which is the number of falsetickers (see
Appendix H). If <$Ei~>>=~m~-~f> for some entry, endpoint of that entry
becomes the lower endpoint of the intersection; otherwise, f is
increased by one and the above procedure is repeated. Without resetting
f or c, a similar procedure is used to find the upper endpoint, except
that the value of type is added to the counter.. If after both endpoints
have been determined <$Ec~<<=~f>, the procedure continues having found
<$Em~-~f> truechimers; otherwise, f is increased by one and the entire
procedure is repeated.

以下のアルゴリズムは、DTS[DEC89]から適合させられて、truechimersだけを含む最も大きい単一の交差点を生産するように設計されています。 アルゴリズムは、値fとカウンタiとcをゼロに初期化することによって、始まります。 そして、始まって、タイプの値がそれぞれのエントリー<$E[終点、~、はタイプされます]>単位でカウンタから引き算されるので、分類された終点の最も低い終点から、i(交差点の数である)は記載しています。 タイプがゼロであるなら、cの値を増加してください(Appendix Hを見てください)。(cはfalsetickersの数です)。 <$穎娃~>>がいくらかのエントリーのために~m~~f>と等しいなら、そのエントリーの終点は交差点の下側の終点になります。 さもなければ、fは1つ増加します、そして、上の手順は繰り返されます。 fかcをリセットしないで、同様の手順は上側の終点を見つけるのに用いられます、タイプの価値がカウンタに高められるのを除いて。 ~両方の終点が断固とした<$Ecになった後に<<が~f>と等しいなら、手順は、<$がイエム~~f>truechimersであることがわかり続けています。 さもなければ、fは1つ増加します、そして、全体の手順は繰り返されます。

        for (f from 0 to <$Ef~>>=~m over 2>) begin              /*
calling all truechimers */
                <$Ec~<<-~0>;
                <$Ei~<<-~0>;
                for (each [endpoint, type] from lowest) begin   /* find
low endpoint */
                        <$Ei~<<-~i~-~type>;
                        <$Elow~<<-~endpoint>;
                        if (<$Ei~>>=~m~-~f>) break;
                        if (<$Etype~=~0>) <$Ec~<<-~c~+~1>;
                        endfor;
                <$Ei~<<-~0>;

(~mより多くの2 0〜<$Ef~>>までのf=>)に関しては、*Ec~<<-~、をすべてのtruechimers*/<$0>と呼びながら、/を始めてください。 <$、穎娃~<<~0>。 (最も低いのからのそれぞれ[終点、タイプ])に関しては、/*掘り出し物の低い終点*/<$穎娃~<<-~i~~タイプ>を始めてください。 <$Elow~<<-~終点>。 (<$穎娃~>>=~m~~f>)であるなら、壊れてください。 (<のEtype~=~0ドルの>)<$Ec~<<~~c+である、~1>。 endfor。 <$、穎娃~<<~0>。

                for (each [endpoint, type] from highest) begin  /* find
high endpoint */
                        <$Ei~<<-~i~+~type>;
                        <$Ehigh~<<-~endpoint>;
                        if (<$Ei~>>=~m~-~f>) break;
                        if (<$Etype~=~0>) <$Ec~<<-~c~+~1>;
                        endfor;
                if (<$Ec~<<=~f>) break;                 /* continue
until all falsetickers found */
                endfor;
        if (<$Elow~>>~high>) begin                              /* quit
if no intersection found */
                <$Eroman sys.peer~<<-~roman NULL>;
                exit;
                endif;

(最も高いのからのそれぞれ[終点、タイプ])に関しては、/*掘り出し物の高い終点*/<$穎娃~<<-~i~+~タイプ>を始めてください。 <$Ehigh~<<-~終点>。 (<$穎娃~>>=~m~~f>)であるなら、壊れてください。 (<のEtype~=~0ドルの>)<$Ec~<<~~c+である、~1>。 endfor。 (<$Ec~<<=~f>)であるなら、壊れてください。 すべてのfalsetickersが*/endforを見つけるまで、/*は続きます。 (<$のElow~>>~高い>)であるなら、*どんな交差点も、*/<$がEroman sys.peer~<<-~ローマン体のNULL>であることがわからなかったならやめられて、/を始めてください。 出てください。 endif。

Note that processing continues past this point only if there are more
than <$Em over 2> intersections. However, it is possible, but not highly
likely, that there may be fewer than <$Em over 2> truechimers remaining
in the intersection.

<$イエム2以上>交差点以上がある場合にだけ処理がこのポイントの先で続くことに注意してください。 しかしながら、それが可能ですが、非常にありそうでない、それはそこでそうするかもしれません。2>truechimersの上では、交差点に残りながら、<$イエムより少なくいてください。

Clustering Algorithm

クラスタ化アルゴリズム

In the original DTS algorithm the clock-selection procedure exits at
this point with the presumed correct time set midway in the computed
intersection <$E[low,~high]>. However, this can lead to a considerable
loss in accuracy and stability, since the individual peer statistics are
lost. Therefore, in NTP the candidates that survived the preceding steps
are processed further. The candidate list is rebuilt with entries of the
form <$E[distance,~index]>, where distance is computed from the (scaled)
peer stratum and synchronization distance <$ELAMBDA>. The scaling factor
provides a mechanism to weight the combination of stratum and distance.
Ordinarily, the stratum will dominate, unless one or more of the
survivors has an exceptionally high distance. The list is then sorted by
increasing distance.

オリジナルのDTSアルゴリズムで、時計選択手順はここに推定された正しい計算された交差点<$E[~下であるのと、高い]>が中途ではめ込まれた時間と共に出ます。 しかしながら、個々の同輩統計が無くなるので、これは精度と安定性におけるかなりの損失を出すことができます。 したがって、NTPでは、前のステップを乗り切った候補はさらに処理されます。 候補リストはフォーム<$E[距離、~、は索引をつけます]>のエントリーで再建されます、距離が(スケーリングされる)の同輩層と同期距離<$ELAMBDA>から計算されるところで。 けた移動子は、層と距離の組み合わせに重みを加えるためにメカニズムを提供します。 通常、生存者のより多くのひとりに例外的に高い距離がないと、層は見下ろされるでしょう。 そして、リストは、距離を増加させることによって、分類されます。

        <$Em~<<-~0>;
        for (each peer) begin                   /* calling all peers */
                if (<$Elow~<<=~theta~<<=~high>) begin
                        <$ELAMBDA~<<-~roman distance (peer)>;           
/* make list entry */
                        <$Edist~<<-~roman
{peer.stratum~times~NTP.MAXDISPERSE~+~LAMBDA }>
                        add <$E[ dist ,~peer]> to candidate list;
                        <$Em~<<-~m~+~1>;
                        endif;
                endfor;
        sort candidate list by increasing dist;

<$、イエム~<<~0>。 (各同輩)に関しては、*(~θ~<<<$Elow~<<==~高い>)が<$のELAMBDA~<<-~ローマン体の距離(同輩)>を始めるならすべての同輩*/を呼びながら、/を始めてください。 /*は>が加えるリストエントリー*/<$のEdist~<<-~ローマン体のpeer.stratum~回~NTP.MAXDISPERSE~+~LAMBDAを候補リストへの<$E[dist、~、はじっと見ます]>にします。 <$イエム~<<~m~+、~1>。 endif。 endfor。 distを増加させることによって、候補リストを分類してください。

The next steps are designed to cast out outlyers which exhibit
significant dispersions relative to the other members of the candidate
list while minimizing wander, especially on high-speed LANs with many
time servers. Wander causes needless network overhead, since the poll
interval is clamped at sys.poll as each new peer is selected for
synchronization and only slowly increases when the peer is no longer
selected. It has been the practical experience that the number of
candidates surviving to this point can become quite large and can result
in significant processor cycles without materially enhancing stability
and accuracy. Accordingly, the candidate list is truncated at
NTP.MAXCLOCK entries.

次のステップは展示会に出品されるoutlyersを捨てるように設計されていて、候補リストの他のメンバーに比例した重要な分散が最小にしている間、歩き回るということです、特に多くの時間サーバがある高速LANで。 歩き回ってください。投票間隔がそれぞれの新しい同輩が同期のために選ばれるときsys.pollに固定されて、同輩がもう選ばれないときだけゆっくり増加するので、不必要なネットワークオーバーヘッドを引き起こします。 それはかなり大きくこの位までなることができて、物質的に安定性と精度を高めないで重要なプロセッササイクルで結果として生じる、候補の数が生き残ることができる実用的な経験です。 それに従って、候補リストはNTP.MAXCLOCKエントリーで先端を切られます。

Note <$Eepsilon sub {xi i}> is the select (sample) dispersion relative
to the ith peer represented on the candidate list, which can be
calculated in a manner similar to the filter dispersion described
previously. The <$EEPSILON sub j> is the dispersion of the jth peer
represented on the list and includes components due to measurement
error, skew-error accumulation and filter dispersion. If the maximum
<$Eepsilon sub {xi i}> is greater than the minimum <$EEPSILON sub j> and
the number of survivors is greater than NTP.MINCLOCK, the ith peer is
discarded from the list and the procedure is repeated. If the current
synchronization source is one of the survivors and there is no other
survivor of lower stratum, then the procedure exits without doing
anything further. Otherwise, the synchronization source is set to the
first survivor on the candidate list. In the following i, j, k, l are
peer indices, with k the index of the current synchronization source
(NULL if none) and l the index of the first survivor on the candidate
list.

注意<$Eepsilon潜水艦ξi>は以前に説明されたフィルタ分散と同様の方法で計算できる候補リストで代理をされたith同輩に比例した選んだ(サンプル)分散です。 <$EEPSILON潜水艦j>はリストに表されたjth同輩の分散であり、測定誤差、斜行エラー蓄積、およびフィルタ分散のためコンポーネントを含んでいます。 最大の<$Eepsilon潜水艦ξi>が極めて大きいなら、ith同輩はリストから捨てられます、そして、手順は繰り返されます。 現在の同期ソースが生存者のひとりであり、下側の層の他の生存者が全くいなければ、さらに何もしないで、手順は出ます。 さもなければ、同期ソースは候補リストの上の最初の生存者に用意ができています。 k、lは以下のi、jでは、同輩インデックスリストです、kによる現在の同期ソースのインデックス、(NULL、なにも) そして、候補の上の最初の生存者のインデックスが記載するl。

        while begin
                for (each survivor <$E[distance,~index]>) begin /*
compute dispersions */
                        find index i for max <$Eepsilon sub {xi i}>;
                        find index j for min <$EEPSILON sub j>;
                        endfor
                if (<$Eepsilon sub {xi i}~<<=~EPSILON sub j> or
<$Em~<<=~roman NTP.MINCLOCK>) break;
                <$Eroman peer.survivor [i]~<<-~0> ;             /*
discard ith peer */
                if (<$Ei~=~k>) <$Eroman sys.peer~<<-~roman NULL>;
                delete the ith peer from the candidate list;
                <$Em~<<-~m~-~1>;
                endwhile
        if (<$Eroman peer.survivor [k]~=~0> or <$Eroman peer.stratum
[k]~>>~roman peer.stratum [l]>) begin
                <$Eroman sys.peer~<<-~l>;                               
/* new clock source */
                call poll-update;
                endif
        end clock-select procedure;

(それぞれの生存者<$E[距離、~、は索引をつけます]>)が*が計算する/を始めるので、始まってください。分散*/は最大<$Eepsilon潜水艦ξi>でインデックスiを見つけます。 分<$EEPSILON潜水艦j>のためのインデックスjを見つけてください。 endforは(<$Eepsilon潜水艦ξi~<<=~EPSILON潜水艦j>か<$イエム~<<=~ローマン体のNTP.MINCLOCK>)であるなら壊れます。 <$、Eroman peer.survivor[i]~<<~0>。 /*は(<$穎娃~=~k>)<$Eroman sys.peer~<<-~ローマン体のNULL>であるならith同輩*/を捨てます。 候補リストからith同輩を削除してください。 <$イエム~<<、-、~m~~1>。 endwhileは(<$Eroman peer.survivor[k]~の=~0>か<ドルEroman peer.stratum[k]~の>>~ローマン体のpeer.stratum[l]>)であるなら<$Eroman sys.peer~<<-~l>を始めます。 /新しい時計ソース呼び出し投票**/最新版。 endifは時計選んだ手順を終わらせます。

The algorithm is designed to favor those peers near the head of the
candidate list, which are at the lowest stratum and distance and
presumably can provide the most accurate and stable time. With proper
selection of weight factor v (also called NTP.SELECT), entries will be
trimmed from the tail of the list, unless a few outlyers disagree
significantly with respect to the remaining entries, in which case the
outlyers are discarded first. The termination condition is designed to
avoid needless switching between synchronization sources when not
statistically justified, yet maintain a bias toward the low-stratum,
low-distance peers.

アルゴリズムは、それらの同輩の候補リスト、どれが最も低い層にあるか、そして、および距離のヘッドを支持するように設計されていて、おそらく、最も多くの正確で安定した時間、提供されることができます。 いくつかのoutlyersが残っているエントリーに関してかなり意見を異にしないと、エントリーはリストのテールから整えられて、その場合、重さの要素v(また、NTP.SELECTと呼ばれます)の適切な選択で、outlyersは最初に、捨てられます。 終了状態は、統計的に正当化されないと同期ソースの間の不必要な切り換えを避けますが、低い層(低距離同輩)に向かって偏見を維持するように設計されています。

Local Clocks

地方の時計

In order to implement a precise and accurate local clock, the host must
be equipped with a hardware clock consisting of an oscillator and
interface and capable of the required precision and stability. A logical
clock is then constructed using these components plus software
components that adjust the apparent time and frequency in response to
periodic updates computed by NTP or some other time-synchronization
protocol such as Hellospeak [MIL83b] or the Unix 4.3bsd TSP [GUS85a].
This section describes the Fuzzball local-clock model and
implementation, which includes provisions for precise time and frequency
adjustment and can maintain time to within 15 ns and frequency to within
0.3 ms per day. The model is suitable for use with both compensated and
uncompensated quartz oscillators and can be adapted to power-frequency
oscillators. A summary of the characteristics of these and other types
of oscillators can be found in Appendix E, while a comprehensive
mathematical analysis of the NTP local-clock model can be found in
Appendix G.

正確で正確な地方の時計を実行するために、ホストは、振動子とインタフェースから成るハードウェア時計を備えていて必要な精度と安定性ができなければなりません。 そして、論理的な時計は、NTPかHellospeak[MIL83b]かUnix 4.3bsd TSPなどのある他の時間同期化プロトコル[GUS85a]によって計算された周期的なアップデートに対応して見かけの時間と頻度を調整するこれらのコンポーネントとソフトウェアコンポーネントを使用することで組み立てられます。 このセクションは、Fuzzball地方の時計モデルと実現について説明して、1日あたりの0.3msに時間から15ナノ秒と頻度を維持できます。(実現は正確な時間と頻度調整のための条項を含んでいます)。 モデルは、使用に両方を代償していて適して、水晶振動子を非代償して、電力周波数振動子に適合させることができます。 Appendix Eでこれらの特性と他のタイプの振動子の概要を見つけることができます、Appendix GでNTP地方の時計モデルの包括的な解析学を見つけることができますが。

It is important to note that the particular implementation described is
only one of possibly many implementations that provide equivalent
functionality. However, it is equally important to note that the clock
model described in Appendix G and which is the basis of the
implementation involves a particular kind of control-feedback loop that
is potentially unstable if the design rules are broken. The model and
parameter described in Appendix G are designed to provide accurate and
stable time under typical operating conditions using conventional
hardware and in the face of disruptions in hardware or network
connectivity. The parameters have been engineered for reliable operation
in a multi-level hierarchical subnet where unstable operation at one
level can disrupt possibly many other levels.

説明された特定の実現が1であるだけであることに同等な機能性を提供することによると多くの実現に注意するのは重要です。 しかしながら、時計モデルがAppendixでGについて説明したことに注意するのが等しく重要であり、どれが実現の基礎であるかは特定の種類のデザイン規則が壊れているなら潜在的に不安定なコントロールフィードバックループにかかわります。 Appendix Gで説明されたモデルとパラメタは、従来のハードウェアを使用する典型的な運転条件とハードウェアにおける分裂かネットワークの接続性に直面して正確で安定した時間を提供するように設計されています。 1つのレベルにおける動作不安定が他のことによると多くのレベルを混乱させることができるところでマルチレベルの階層的なサブネットにおける信頼できる操作のためにパラメタを設計してあります。

Fuzzball Implementation

Fuzzball実現

The Fuzzball local clock consists of a collection of hardware and
software registers, together with a set of algorithms, which implement a
logical clock that functions as a disciplined oscillator and
synchronizes to an external source. Following is a description of its
components and manner of operation. Note that all arithmetic is two's
complement integer and all shifts <169><<<<<170> and <169>>>>><170> are
arithmetic (sign-fill for right shifts and zero-fill for left shifts).
Also note that <$Ex~<< <<~n> is equivalent to <$Ex~>> >>~-~n>.

Fuzzballの地方の時計はハードウェアとソフトウェアレジスタの収集から成ります、1セットのアルゴリズムと共に。(アルゴリズムは規律がある振動子として機能して、外部電源に連動する論理的な時計を実行します)。 以下に、コンポーネントの記述と操作の方法があります。 すべての演算が2の補数整数であり、<169><<<<<170>をすべて移動させて、<169>>>>><170>が算数であることに(正しいシフトのためのサイン中詰めと左のシフトのための無中詰め)注意してください。 また、<$Ex~<<<<行く>がEx~>>>>~を行かせている<$>に同等であることに注意してください。

The principal components of the local clock are shown in Figure
3,<$&fig3> in which the fraction points shown are relative to whole
milliseconds. The 48-bit Clock register and 32-bit Prescaler function as
a disciplined oscillator which increments in milliseconds relative to
midnight at the fraction point. The 32-bit Clock-Adjust register is used
to adjust the oscillator phase in gradual steps to avoid discontinuities
in the indicated timescale. Its contents are designated x in the
following. The 32-bit Skew-Compensation register is used to trim the
oscillator frequency by adding small phase increments at periodic
adjustment intervals and can compensate for frequency errors as much as
.01% or <F128M><F255D>100 ppm. Its contents are designated y in the
following. The 16-bit Watchdog counter and 32-bit Compliance register
are used to determine validity, as well as establish the PLL bandwidth
and poll interval (see Appendix G). The contents of the Compliance
register are designated z in the following. The 32-bit PPS-Adjust
register is used to hold a precision time adjustment when a source of 1-
pps pulses is available, while the 8-bit PPS counter is used to verify
presence of these pulses. The two-bit Flags register contains the two
leap bits described elsewhere (leap).

地方の時計の主成分は図3、<$、および断片が指す>が全体のミリセカンドに比例しているのを示すfig3で見せられます。 48ビットのClockレジスタと32ビットのPrescalerは断片での真夜中に比例したミリセカンドで表現される増分が向ける規律がある振動子として機能します。 32ビットのClock適応しているレジスタは、示されたスケールにおける不連続を避けるようにゆるやかなステップで振動子フェーズを調整するのに使用されます。 内容は以下でxに指定されます。 32ビットのSkew-補償レジスタは、周期的な調整間隔で、わずかなフェーズ増分を加えることによって振動子頻度を削減するのに使用されて、頻度誤りの最大.01%か<F128M>--lt; F255D>100ppmを補うことができます。 内容は以下でyに指定されます。 16ビットのWatchdogカウンタと32ビットのComplianceレジスタは、正当性を決定して、PLL帯域幅と投票間隔を証明するのに使用されます(Appendix Gを見てください)。 Complianceレジスタの内容は以下でzに指定されます。 32ビットのPPS適応しているレジスタは1ppsのパルスの源が利用可能であるときに、精度時間調整を保持するのに使用されます、8ビットのPPSカウンタがこれらのパルスの存在について確かめるのに使用されますが。 安っぽいFlagsレジスタはほかの場所で説明された2飛躍ビットを含んでいます(跳ねてください)。

All registers except the Prescaler register are ordinarily implemented
in memory. In typical clock interface designs such as the DEC KWV11-C,
the Prescaler register is implemented as a 16-bit buffered counter
driven by a quartz-controlled oscillator at some multiple of 1000 Hz. A
counter overflow is signalled by an interrupt, which results in an
increment of the Clock register at the bit corresponding to the
overflow. The time of day is determined by reading the Prescaler
register, which does not disturb the counting process, and adding its
value to that of the Clock register with fraction points aligned as
shown and with unimplemented low-order bits set to zero. In other
interface designs, such as the LSI-11 event-line mechanism, each tick of
the clock is signalled by an interrupt at intervals of 16-2/3 ms or 20
ms, depending on interface and mains frequency. When this occurs the
appropriate increment in fractional milliseconds is added to the Clock
register.

通常、Prescalerレジスタ以外のすべてのレジスタがメモリで実行されます。 DEC KWV11-Cなどの典型的な時計インタフェースデザインでは、Prescalerレジスタは1000Hzの何らかの倍数でクォーツで制御された振動子によって運転された16ビットのバッファリングされたカウンタとして実行されます。 中断でカウンタオーバーフローは合図されます。(Clockの増分における結果はオーバーフローに対応するビットでそれを登録します)。 時刻は示されるように断片ポイントが並べられているClockレジスタのものへの値をPrescalerレジスタと付加に読み込んで、ビットがゼロに設定する非実行された下位に断固としています。レジスタは計数過程を擾乱しません。 LSI-11イベント線メカニズムなどの他のインタフェースデザインでは、16-2/3msか20msごとに中断で時計の各カチカチする音に合図します、インタフェースとメイン頻度によって。 これが起こるとき、断片的なミリセカンドによる適切な増分はClockレジスタに追加されます。

The various parameters used are summarized in Table 6, in which certain
parameters have been rescaled from those given in Appendix G due to the
units here being in milliseconds.<$&tab6> When the system is
initialized, all registers and counters are cleared and the leap bits
set to 112 (unsynchronized). At adjustment intervals of CLOCK.ADJ
seconds CLOCK.ADJ is subtracted from the PPS counter, but only if the
previous contents of the PPS counter are greater than zero. Also,
CLOCK.ADJ is added to the Watchdog counter, but the latter is clamped
not to exceed NTP.MAXAGE divided by CLOCK.ADJ (one full day). In
addition, if the Watchdog counter reaches this value, the leap bits are
set to 112 (unsynchronized).

使用される様々なパラメタはTable6にまとめられました、そして、どのあるパラメタがユニットのためミリセカンド<$にありながらAppendix Gでここに与えられたものから再スケーリングされるか、そして、tab6>Whenでは、システムは初期化されました、そして、すべてのレジスタとカウンタはきれいにされました、そして、飛躍ビットは112(非連動した)にセットしました。 CLOCK.ADJ秒の調整間隔を置いて、CLOCK.ADJはPPSカウンタの前の内容がゼロ以上である場合にだけPPSカウンタから引き算されます。 また、CLOCK.ADJはWatchdogカウンタに加えられますが、後者は、CLOCK.ADJ(ある丸一日)が割られたNTP.MAXAGEを超えないように固定されます。 さらに、Watchdogカウンタがこの値に達するなら、飛躍ビットは112に設定されます(非連動しました)。

In some system configurations a precise source of timing information is
available in the form of a train of timing pulses spaced at one-second
intervals. Usually, this is in addition to a source of timecode
information, such as a radio clock or even NTP itself, to number the
seconds, minutes, hours and days. In typical clock interface designs
such as the DEC KWV11-C, a special input is provided which can trigger
an interrupt as each pulse is received. When this happens the PPS
counter is set to CLOCK.PPS and the current time offset is determined in
the usual way. Then, the PPS-Adjust register is set to the time offset
scaled to milliseconds. Finally, if the PPS-Adjust register is greater
than or equal to 500, 1000 is subtracted from its contents. As described
below, the PPS-Adjust register and PPS counters can be used in
conjunction with an ordinary timecode to produce an extremely accurate
local clock.

いくつかのシステム構成では、タイミング情報の正確な源は2分の1の間隔を置いて区切られたタイミング・パルスの列車の形で利用可能です。 通常、これはラジオ時計かNTP自身さえのtimecode情報、数への秒、数分、何時間、および何日もの源に加えています。 DEC KWV11-Cなどの典型的な時計インタフェースデザインでは、特別な入力はどれが各パルスとして中断の引き金となることができるかが、受け取られているかどうかということです。 これが起こるとき、PPSカウンタはCLOCK.PPSに設定されます、そして、現在の時間オフセットは不断のとおり決定しています。 そして、PPS適応しているレジスタはミリセカンドに合わせて調整された時間オフセットに設定されます。 最終的に、500、1000はPPS適応しているレジスタがそう以上ならコンテンツから引き算されます。 以下で説明されるように、非常に正確な地方の時計を生産するのに普通のtimecodeに関連してPPS適応しているレジスタとPPSカウンタを使用できます。

Gradual Phase Adjustments

ゆるやかな相調整

Left uncorrected, the local clock runs at the offset and frequency
resulting from its last update. An update is produced by an event that
results in a valid clock selection. It consists of a signed 48-bit
integer in whole milliseconds and fraction, with fraction point to the
left of bit 32. If the magnitude is greater than the maximum aperture
CLOCK.MAX, a step adjustment is required, in which case proceed as
described later. Otherwise, a gradual phase adjustment is performed.
Normally, the update is computed by the NTP algorithms described
previously; however, if the PPS counter is greater than zero, the value
of the PPS-Adjust register is used instead. Let u be a 32-bit quantity
with bits 0-31 set as bits 16-47 of the update. If some of the low-order
bits of the update are unimplemented, they are set as the value of the
sign bit. These operations move the fraction point of u to the left of
bit 16 and minimize the effects of truncation and roundoff errors. Let b
be the number of leading zeros of the absolute value of the Compliance
register and let c be the number of leading zeros of the Watchdog
counter, both of which are easily computed by compact loops. Then, set b
to
<$Eb~=~b~-~16~+~roman CLOCK.COMP>

非修正のままにされて、地方の時計はアップデートから生じるオフセットと頻度で動きます。 アップデートは有効な時計選択をもたらす出来事によって起こされます。 それは全体の48ビットのサインされた整数から成ります。ビット32の左への断片ポイントがあるミリセカンドと断片。 大きさが最大口径CLOCK.MAXより大きいなら、どのケースが後述のように続くかでステップ調整が必要です。 さもなければ、ゆるやかな相調整は実行されます。 通常、アップデートは以前に説明されたNTPアルゴリズムによって計算されます。 しかしながら、PPSカウンタがゼロ以上であるなら、PPS適応しているレジスタの値は代わりに使用されます。 uがアップデートのビット16-47として設定されたビット0-31がある32ビットの量であることをさせてください。 アップデートのいくつかの下位のビットが非実行されるなら、それらは符号ビットの値として設定されます。 これらの操作は、uの断片ポイントをビット16の左に動かして、トランケーションとロンダード誤りの影響を最小にします。 bにComplianceレジスタの絶対値の先行ゼロの数であり、cがWatchdogカウンタの先行ゼロの数であることをさせてください。その両方がコンパクトな輪によって容易に計算されます。 そして、~b~~16~+~ローマン体のCLOCK.COMP<$Eb~=>にbを設定してください。

and clamp it to be not less than zero. This represents the logarithm of
the loop time constant. Then, set c to

そして、少なくともゼロになるようにそれを固定してください。 これは輪の時定数の対数を表します。 そして、cを設定してください。

<$Ec~=~10~-~c>

<$Ec~=~10~~c>。

and clamp it to be not greater than NTP.MAXPOLL <196> NTP.MINPOLL. This
represents the logarithm of the integration interval since the last
update. The clamps insure stable operation under typical conditions
encountered in the Internet. Then, compute new values for the Clock-
Adjust and Skew-Compensation registers

そして、NTP.MAXPOLL<196>NTP.MINPOLLよりすばらしくならないようにそれを固定してください。 これはアップデート以来の統合間隔の対数を表します。 留め金はインターネットで遭遇する典型的な条件のもとで安定稼働を保障します。 そして、Clockが適応して、Skew-補償が登録されるので、新しい値を計算してください。

<$Ex~=~u~>> >>~b> ,
<$Ey~=~y~+~(u~>> >>~(b~+~b~-~c))> .

<$元の連れ合い~=~u~>>>>~b>、<$エー~、は~y~+~~u>>>(>~(b~+~b~~c))>と等しいです。

Finally, compute the exponential average

最終的に、指数の平均を計算してください。

<$Ez~=~z~+~(u~<< <<~(b~+~ roman CLOCK.MULT)~-~z)~>> >>~ roman
CLOCK.WEIGHT> ,

<$Ez~は~z~+~~u<<<<~(b~+~ローマン体のCLOCK.MULT)~(~z)~>>>>~ローマン体のCLOCK.WEIGHT>と等しいです。

where the left shift realigns the fraction point for greater precision
and ease of computation.

左のシフトが断片を再編成するところでは、より大きい精度と計算の容易さのために指してください。

At each adjustment interval the final clock correction consisting of two
components is determined. The first (phase) component consists of the
quantity

それぞれの調整間隔で、2つのコンポーネントから成る最終的な時計修正は決定しています。 最初(フェーズ)のコンポーネントは量から成ります。

<$Ex~>> >>~ roman CLOCK.PHASE> ,

<$の元の~>>>>~ローマン体のCLOCK.PHASE>。

which is then subtracted from the previous contents of the Clock-Adjust
register to form the new contents of that register. The second
(frequency) component consists of the quantity

次に、Clock適応しているレジスタの前のコンテンツから、そのレジスタの新しいコンテンツを形成するために引き算されます。 2番目の(頻度)コンポーネントは量から成ります。

<$Ey~>> >>~ roman CLOCK.FREQ> .

<$のエー~>>>>~ローマン体のCLOCK.FREQ>。

The sum of the phase and frequency components is the final clock
correction, which is then added to the Clock register. FInally, the
Watchdog counter is set to zero. Operation continues in this way until a
new correction is introduced.

フェーズと頻度成分の合計は最終的な時計修正です。(次に、その修正はClockレジスタに追加されます)。 FInally、Watchdogカウンタはゼロに設定されます。 操作は新しい修正を導入するまでこのように続きます。

The value of b computed above can be used to update the poll interval
system variable (sys.poll). This functions as an adaptive parameter that
provides a very valuable feature which reduces the polling overhead,
especially if the clock-combining algorithm described in Appendix F is
used:

投票間隔システム変数(sys.poll)をアップデートするのに上で計算されたbの値を使用できます。 時計を結合したアルゴリズムがAppendixでFについて説明したなら頭上と、特に世論調査を抑える非常に貴重な特徴を提供する適応型のパラメタが使用されているとき、これは機能します:

<$Eroman sys.poll~<<-~b~+~roman NTP.MINPOLL> .

<$のEroman sys.poll~<<-~b~+~ローマン体のNTP.MINPOLL>。

Under conditions when update noise is high or the hardware oscillator
frequency is changing relatively rapidly due to environmental
conditions, the magnitude of the compliance increases. With the
parameters specified, this causes the loop bandwidth (reciprocal of time
constant) to increase and the poll interval to decrease, eventually to
NTP.MINPOLL seconds. When noise is low and the hardware oscillator very
stable, the compliance decreases, which causes the loop bandwidth to
decrease and the poll interval to increase, eventually to NTP.MAXPOLL
seconds.

アップデート雑音が高いか、またはハードウェア振動子頻度が環境条件のため比較的急速に変化するとき、条件のもとでは、コンプライアンスの大きさは増加します。 パラメタが指定されている状態で、増加させる輪の帯域幅(時定数の逆数)と投票間隔は結局、これでNTP.MINPOLL秒まで減少します。 雑音が低く、ハードウェア振動子が非常に安定しているとき、コンプライアンス(結局、静まらせる輪の帯域幅と投票間隔をNTP.MAXPOLL秒まで増加させる)は減少します。

The parameters in Table 6 have been selected so that, under good
conditions with updates in the order of a few milliseconds, a precision
of a millisecond per day (about .01 ppm or 10-8), can be achieved. Care
is required in the implementation to insure monotonicity of the Clock
register and to preserve the highest precision while minimizing the
propagation of roundoff errors. Since all of the multiply/divide
operations (except those involved with the 1-pps pulses) computed in
real time can be approximated by bitwise-shift operations, it is not
necessary to implement a full multiply/divide capability in hardware or
software.

Table6のパラメタは、数ミリセカンドの注文におけるアップデートがある良い状態のそれ(日(およそ.01のppmか10-8)あたり1ミリセカンドの精度)を達成できるように選択されました。 注意が、Clockレジスタの単調を保障して、ロンダード誤りの伝播を最小にしている間、最も高い精度を保存するのに実現で必要です。 リアルタイムで計算された操作(1-ppsパルスに伴う関係者を除いた)を、掛けるか、または割ってください。すべて、満がハードウェアかソフトウェアの能力を掛けるか、または割るのがシフトをbitwiseしている操作で道具に近似できる必要はありません。

In the various implementations of NTP for many Unix-based systems it has
been the common experience that the single most important factor
affecting local-clock stability is the matching of the phase and
frequency coefficients to the particular kernel implementation. It is
vital that these coefficients be engineered according to the model
values, for otherwise the PLL can fail to track normal oscillator
variations and can even become unstable.

多くのUnixベースのシステムのためのNTPの様々な実現において、それは最も重要な要素が地方の時計の安定性に影響して、特定のカーネル実現へのフェーズと頻度係数のマッチングである一般的な経験です。 モデル値に従ってこれらの係数が設計されるのは、重大です、さもなければ、PLLが正常な振動子変化を追跡できないで、不安定になることさえできるので。

Step Phase Adjustments

ステップ相調整

When the magnitude of a correction exceeds the maximum aperture
CLOCK.MAX, the possibility exists that the clock is so far out of
synchronization with the reference source that the best action is an
immediate and wholesale replacement of Clock register contents, rather
than in gradual adjustments as described above. However, in cases where
the sample variance is extremely high, it is prudent to disbelieve a
step change, unless a significant interval has elapsed since the last
gradual adjustment. Therefore, if a step change is indicated and the
Watchdog counter is less than the preconfigured value CLOCK.MINSTEP, the
update is ignored and the local-clock procedure exits. These safeguards
are especially useful in those system configurations using a calibrated
atomic clock or LORAN-C receiver in conjunction with a separate source
of seconds-numbering information, such as a radio clock or NTP peer.

修正の大きさが最大口径CLOCK.MAXを超えているとき、時計が照合線源との同期からとても遠いので最も良い動作が上で説明されるようにゆるやかな調整でというよりむしろClockレジスタコンテンツの即座の、そして、大量の交換である可能性は存在しています。 しかしながら、標本分散が非常に高い場合では、階段状変化を信じていないのは慎重です、最後のゆるやかな調整以来重要な間隔が経過していない場合。 したがって、アップデートは階段状変化が示されて、Watchdogカウンタがあらかじめ設定された値のCLOCK.MINSTEP以下であるなら、無視されます、そして、地方の時計手順は出ます。 これらの安全装置はそれらのシステム構成で秒に付番する情報の別々の源に関連して較正された原子時計かLORAN-C受信機を使用することで特に役に立ちます、ラジオ時計やNTP同輩のように。

If a step change is indicated the update is added directly to the Clock
register and the Clock-Adjust register and Watchdog counter both set to
zero, but the other registers are left undisturbed. Since a step change
invalidates data currently in the clock filters, the leap bits are set
to 112 (unsynchronized) and, as described elsewhere, the clear procedure
is called to purge the clock filters and state variables for all peers.
In practice, the necessity to perform a step change is rare and usually
occurs when the local host or reference source is rebooted, for example.
This is fortunate, since step changes can result in the local clock
apparently running backward, as well as incorrect delay and offset
measurements of the synchronization mechanism itself.

階段状変化が示されるなら、アップデートは直接両方がゼロに設定するClockレジスタ、Clock適応しているレジスタ、およびWatchdogカウンタに追加されますが、他のレジスタは乱されていないままにされます。 階段状変化が現在、時計フィルタでデータを無効にするので、飛躍ビットは112に設定されます、そして、(非連動しました)ほかの場所で説明されるように、明確な手順はすべての同輩のために時計フィルタと州の変数を掃除するために電話をされます。 実際には、例えば、ローカル・ホストか照合線源がリブートされるとき、階段状変化を実行する必要性は、まれであり、通常、起こります。 これは幸いです、階段状変化が不正確な遅れと同様に明らかに背走する地方の時計をもたらして、同期メカニズム自体の測定値を相殺できるので。

Considerable experience with the Internet environment suggests the
values of CLOCK.MAX tabulated in Table 6 as appropriate. In practice,
these values are exceeded with a single time-server source only under
conditions of the most extreme congestion or when multiple failures of
nodes or links have occurred. The most common case when the maximum is
exceeded is when the time-server source is changed and the time
indicated by the new and old sources exceeds the maximum due to
systematic errors in the primary reference source or large differences
in path delays. It is recommended that implementations include
provisions to tailor CLOCK.MAX for specific situations. The amount that
CLOCK.MAX can be increased without violating the monotonicity
requirement depends on the Clock register increment. For an increment of
10 ms, as used in many workstations, the value shown in Table 6 can be
increased by a factor of five.

インターネット環境の豊富な経験はTable6に適宜表にされたCLOCK.MAXの値を示します。 実際には、これらの値は最も極端な混雑かそれともノードかリンクの複数の失敗がいつ起こったかに関する状態だけの下の単独の日和見主義者ソースと共に超えられています。 最大が超えられているとき、最も一般的なケースは日和見主義者ソースが変えられる時です、そして、新しくて年取った情報筋によって示された時間は第一の照合線源の系統誤差か経路遅れにおける大きな違いのため最大を超えています。 実現が特定の状況のためのCLOCK.MAXを仕立てるために条項を含んでいるのは、お勧めです。 量はCLOCK.MAXが単調要件に違反しながら増加できるClockレジスタ増分に依存します。 10msの増分において、多くのワークステーションで使用されるように、5の要素でTable6に示された値は増加させられることができます。

Implementation Issues

導入問題

The basic NTP robustness model is that a host has no other means to
verify time other than NTP itself. In some equipment a battery-backed
clock/calendar is available for a sanity check. If such a device is
available, it should be used only to confirm sanity of the timekeeping
system, not as the source of system time. In the common assumption (not
always justified) that the clock/calendar is more reliable, but less
accurate, than the NTP synchronization subnet, the recommended approach
at initialization is to set the Clock register as determined from the
clock/calendar and the other registers, counters and flags as described
above. On subsequent updates if the time offset is greater than a
configuration parameter (e.g., 1000 seconds), then the update should be
discarded and an error condition reported. Some implementations
periodically record the contents of the Skew-Compensation register in
stable storage such as a system file or NVRAM and retrieve this value at
initialization. This can significantly reduce the time to converge to
the nominal stability and accuracy regime.

基本的なNTP丈夫さモデルはホストにはNTP自身以外の時間について確かめる他の手段が全くないということです。 何らかの設備では、バッテリーで支持された時計/カレンダーは健全度チェックに利用可能です。 そのような装置が利用可能であるなら、それは使用されるべきですが、システム時間の源ではなく、時間保持システムの正気を確認します。 時計/カレンダーがNTP同期サブネットより信頼できますが、より正確でないという一般的な想定(いつも正当化されるというわけではない)では、初期化におけるお勧めのアプローチは上で説明される時計/カレンダー、他のレジスタ、カウンタ、および旗から決定するようにClockレジスタを設定することです。 その後のアップデートのときに、時間オフセットが設定パラメータ(例えば、1000秒)より大きいなら、アップデートは捨てられるべきでした、そして、エラー条件は報告しました。 いくつかの実現が、定期的にSkew-補償レジスタのコンテンツをシステムファイルかNVRAMなどの安定貯蔵に記録して、初期化でこの値を検索します。 これは名目上の安定性と精度政権に一点に集まる時間をかなり短縮できます。

Conversion from NTP format to the common date and time formats used by
application programs is simplified if the internal local-clock format
uses separate date and time variables. The time variable is designed to
roll over at 24 hours, give or take a leap second as determined by the
leap-indicator bits, with its overflows (underflows) incrementing
(decrementing) the date variable. The date and time variables then
indicate the number of days and seconds since some previous reference
time, but uncorrected for intervening leap seconds.

内部の地方の時計形式が別々の日時の変数を使用するなら、NTP形式から一般的なアプリケーション・プログラムによって使用される日時の形式までの変換は簡易型です。 時間変数は24時間にひっくり返るように設計されています、およそ飛躍インディケータビットで決定する閏秒、オーバーフロー(アンダーフロー)が日付の変数を増加していて(減少します)。 そして、日時の変数は時間の、しかし、介入している飛躍秒の間の非修正の前の何らかの参照以来の何日もの秒の数を示します。

On the day prior to the insertion of a leap second the leap bits
(sys.leap) are set at the primary servers, presumably by manual means.
Subsequently, these bits show up at the local host and are passed to the
local-clock procedure. This causes the modulus of the time variable,
which is the length of the current day, to be increased or decreased by
one second as appropriate. Immediately following insertion the leap bits
are reset. Additional discussion on this issue can be found in Appendix
E.

閏秒の挿入の前の日に、飛躍ビット(sys.leap)は第一のサーバで設定されます、おそらく手動の手段で。 次に、これらのビットは、ローカル・ホストに現れて、地方の時計手順に渡されます。 これは時間変数の係数を引き起こします。(変数は、適宜1秒増加するか、または減少するためには現在の日の長さです)。 すぐに挿入に続いて、飛躍ビットはリセットされます。 Appendix Eでこの問題についての追加議論を見つけることができます。

Lack of a comprehensive mechanism to administer the leap bits in the
primary servers is presently an awkward problem better suited to a
comprehensive network-management mechanism yet to be developed. As a
practical matter and unless specific provisions have been made
otherwise, currently manufactured radio clocks have no provisions for
leap seconds, either automatic or manual. Thus, when a leap actually
occurs, the radio must resynchronize to the broadcast timecode, which
may take from a few minutes to some hours. Unless special provisions are
made, a primary server might leap to the new timescale, only to be
yanked back to the previous timescale when it next synchronizes to the
radio. Subsequently, the server will be yanked forward again when the
radio itself resynchronizes to the broadcast timecode.

現在、第一のサーバで飛躍ビットを管理する包括的メカニズムの不足はまだ開発されているために包括的なネットワークマネージメントメカニズムに合うほうがよかった厄介な問題です。 自動であるか手動の飛躍秒の間、実際問題として、特定の条項が別の方法で作られていないなら、現在製造されているラジオ時計には、条項が全くありません。 したがって、飛躍が実際に起こると、ラジオは放送timecodeに再連動しなければなりません。(timecodeは数分から数時間まで取るかもしれません)。 特別条項が作られない場合、第一のサーバは新しいスケールに跳ねるかもしれなくて、次にそれであることの前のスケールへの引っ張られた後部だけであることがラジオに連動します。 ラジオ自体が放送timecodeに再連動するとき、次に、サーバは再び前方に引っ張られるでしょう。

This problem can not be reliably avoided using any selection algorithm,
since there will always exist an interval of at least a couple of
minutes and possibly as much as some hours when some or all radios will
be out of synchronization with the broadcast timecode and only after the
majority of them have resynchronized will the subnet settle down. The
CLOCK.MINSTEP delay is designed to cope with this problem by forcing a
minimum interval since the last gradual adjustment was made before
allowing a step change to occur. Therefore, until the radio
resynchronizes, it will continue on the old timescale, which is one
second off the local clock after the leap and outside the maximum
aperture CLOCK.MAX permitted for gradual phase adjustments. When the
radio eventually resynchronizes, it will almost certainly come up within
the aperture and again become the reference source. Thus, even in the
unlikely case when the local clock incorrectly leaps, the server will go
no longer than CLOCK.MINSTEP seconds before resynchronizing.

どんな選択アルゴリズムも使用することでこの問題を確かに避けることができません、そして、いくつかかすべてのラジオが放送timecodeとの同期から脱している数時間としての少なくとも2、3同じくらい分とことによると同じくらい多くの間隔は以来いつも存在するでしょう、そして、それらの大部分が再連動した後にだけサブネットは落ち着くでしょう。 CLOCK.MINSTEP遅れは、階段状変化が起こるのを許容する前に最後のゆるやかな調整をしたので最小間隔を強制することによってこの問題に対処するように設計されています。 したがって、それは、古いスケールでラジオが再連動するまでどれが飛躍の後の地方の時計と最大口径CLOCK.MAXの外の1秒であるかがゆるやかな相調整のために可能にし続けるでしょう。 ラジオが結局再連動するとき、それは、すきまの中でほぼ確実に上って来て、再び照合線源になるでしょう。 地方の時計が不当に跳ねるときのありそうもない場合ではさえ、サーバはもう再連動するCLOCK.MINSTEP秒前より動かないでしょう。

Acknowledgments

承認

Many people contributed to the contents of this document, which was
thoroughly debated by electronic mail and debugged using two different
prototype implementations for the Unix 4.3bsd operating system, one
written by Louis Mamakos and Michael Petry of the University of Maryland
and the other by Dennis Ferguson of the University of Toronto. Another
implementation for the Fuzzball operating system [MIL88b] was written by
the author. Many individuals to numerous to mention meticulously tested
the several beta-test prototype versions and ruthlessly smoked out the
bugs, both in the code and the specification. Especially useful were
comments from Dennis Ferguson and Bill Sommerfeld, as well as
discussions with Joe Comuzzi and others at Digital Equipment
Corporation.

多くの人々がUnix 4.3bsdオペレーティングシステムに2つの異なった原型実現を使用することで電子メールによって徹底的に討論されて、デバッグされたこのドキュメントのコンテンツに貢献しました、トロント大学のデニスファーガソンによってメリーランド大学ともう片方のルイスMamakosとマイケルPetryによって書かれたもの。 Fuzzballオペレーティングシステム[MIL88b]のための別の実現は作者によって書かれました。 言及するために多数への多くの個人が、いくつかのベータテスト原型バージョンをきちょうめんにテストして、無慈悲にバグをいぶし出しました、コードと仕様で。 特に役に立つのは、デニスファーガソンからのコメントとビル・ゾンマーフェルトでした、ジョーComuzziとの議論とDECの他のものと同様に。

References

参照

[ABA89]

[ABA89]

Abate, et al. AT&T's new approach to the synchronization of
telecommunication networks. IEEE Communications Magazine (April 1989),
35-45.

減少、他 電気通信網の同期へのAT&Tの新しいアプローチ。 35-45にIEEEコミュニケーション雑誌(1989年4月)。

[ALL74a]

[ALL74a]

Allan, D.W., J.H. Shoaf and D. Halford. Statistics of time and frequency
data analysis. In: Blair, B.E. (Ed.). Time and Frequency Theory and
Fundamentals. National Bureau of Standards Monograph 140, U.S.
Department of Commerce, 1974, 151-204.

アラン、D.W.、J.H.Shoaf、およびD.ハルフォード。 時間と頻度データ分析の統計。 中: ブレア、B.E.編。 時間、頻度説、および原理。 規格基準局専攻論文140、米国商務省、1974、151-204。

[ALL74b]

[ALL74b]

Allan, D.W., J.E. Gray and H.E. Machlan. The National Bureau of
Standards atomic time scale: generation, stability, accuracy and
accessibility. In: Blair, B.E. (Ed.). Time and Frequency Theory and
Fundamentals. National Bureau of Standards Monograph 140, U.S.
Department of Commerce, 1974, 205-231.

アラン、D.W.、J.E.グレー、およびH.E.Machlan。 規格基準局の原子タイムスケール: 世代、安定性、精度、およびアクセシビリティ。 中: ブレア、B.E.編。 時間、頻度説、および原理。 規格基準局専攻論文140、米国商務省、1974、205-231。

[BEL86]

[BEL86]

Bell Communications Research. Digital Synchronization Network Plan.
Technical Advisory TA-NPL-000436, 1 November 1986.

ベルコミュニケーションズ・リサーチ。 デジタル同期ネットワークプラン。 技術的な状況報告、バイバイ、-、NPL-000436、1986年11月1日。

[BER87]

[BER87]

Bertsekas, D., and R. Gallager. Data Networks. Prentice-Hall, Englewood
Cliffs, NJ, 1987.

Bertsekas、D.、およびR.Gallager。 データ網。 新米のホール、イングルウッドがけ、ニュージャージー、1987。

[BLA74]

[BLA74]

Blair, B.E. Time and frequency dissemination: an overview of principles
and techniques. In: Blair, B.E. (Ed.). Time and Frequency Theory and
Fundamentals. National Bureau of Standards Monograph 140, U.S.
Department of Commerce, 1974, 233-314.

ブレア、B.E.Time、および頻度普及: 原則とテクニックの概観。 中: ブレア、B.E.編。 時間、頻度説、および原理。 規格基準局専攻論文140、米国商務省、1974、233-314。

[BRA80]

[BRA80]

Braun, W.B. Short term frequency effects in networks of coupled
oscillators. IEEE Trans. Communications COM-28, 8 (August 1980), 1269-
1275.

ブラウン、結合した振動子のネットワークのW.B.Short用語頻度効果。 IEEE、移- コミュニケーションCOM-28、8(1980年8月)、1269- 1275。

[COL88]

[COL88]

Cole, R., and C. Foxcroft. An experiment in clock synchronisation. The
Computer Journal 31, 6 (1988), 496-502.

コール、R.、およびC.Foxcroft。 時計連動における実験。 496-502にコンピュータジャーナル31、6(1988)。

[DAR81a]

[DAR81a]

Defense Advanced Research Projects Agency. Internet Protocol. DARPA
Network Working Group Report RFC-791, USC Information Sciences
Institute, September 1981.

ディフェンス先端研究は政府機関を映し出します。 インターネットプロトコル。 DARPAはワーキンググループレポートRFC-791、科学が1981年9月に設けるUSC情報をネットワークでつなぎます。

[DAR81b]

[DAR81b]

Defense Advanced Research Projects Agency. Internet Control Message
Protocol. DARPA Network Working Group Report RFC-792, USC Information
Sciences Institute, September 1981.

ディフェンス先端研究は政府機関を映し出します。 インターネット・コントロール・メッセージ・プロトコル。 DARPAはワーキンググループレポートRFC-792、科学が1981年9月に設けるUSC情報をネットワークでつなぎます。

[DEC89]

[DEC89]

Digital Time Service Functional Specification Version T.1.0.5. Digital
Equipment Corporation, 1989.

デジタル時間指定サービス機能的な仕様バージョンT.1.0.5。 DEC、1989。

[DER90]

[DER90]

Dershowitz, N., and E.M. Reingold. Calendrical Calculations. Software
Practice and Experience 20, 9 (September 1990), 899-928.

ダーショウィッツ、N.、およびE.M.レインゴールド。 Calendrical計算。 ソフトウェア習慣と経験20、9(1990年9月)、899-928。

[FRA82]

[FRA82]

Frank, R.L. History of LORAN-C. Navigation 29, 1 (Spring 1982).

フランク、ロランCのR.L.歴史。 ナビゲーション29、1(1982年春)。

[GUS84]

[GUS84]

Gusella, R., and S. Zatti. TEMPO - A network time controller for a
distributed Berkeley UNIX system. IEEE Distributed Processing Technical
Committee Newsletter 6, NoSI-2 (June 1984), 7-15. Also in: Proc. Summer
USENIX Conference (June 1984, Salt Lake City).

グゼルラ、R.、およびS.Zatti。 TEMPO--分配されたバークレーUNIXシステムのためのネットワーク時間コントローラ。 IEEE分散処理専門委員会ニュースレター6、NoSI-2(1984年6月)、7-15。 以下でも Proc。 夏のUSENIXコンファレンス(1984年6月、ソルトレイクシティー)。

[GUS85a]

[GUS85a]

Gusella, R., and S. Zatti. The Berkeley UNIX 4.3BSD time synchronization
protocol: protocol specification. Technical Report UCB/CSD 85/250,
University of California, Berkeley, June 1985.

グゼルラ、R.、およびS.Zatti。 バークレーUNIX4.3BSD時間同期化プロトコル: 仕様を議定書の中で述べてください。 カリフォルニア大学バークレイ校1985年6月の技術報告書UCB/CSD85/250。

[GUS85b]

[GUS85b]

Gusella, R., and S. Zatti. An election algorithm for a distributed clock
synchronization program. Technical Report UCB/CSD 86/275, University of
California, Berkeley, December 1985.

グゼルラ、R.、およびS.Zatti。 分配された時計同期プログラムのための選挙アルゴリズム。 カリフォルニア大学バークレイ校1985年12月の技術報告書UCB/CSD86/275。

[HAL84]

[HAL84]

Halpern, J.Y., B. Simons, R. Strong and D. Dolly. Fault-tolerant clock
synchronization. Proc. Third Annual ACM Symposium on Principles of
Distributed Computing (August 1984), 89-102.

R. アルペルン、J.Y.、B.サイモンズ、強い、そして、D.ドリー。 フォールトトレラント時計同期。 Proc。 89-102に分散コンピューティング(1984年8月)のプリンシプルズに関する第3例年のACMシンポジウム。

[JOR85]

[JOR85]

Jordan, E.C. (Ed). Reference Data for Engineers, Seventh Edition. H.W.
Sams & Co., New York, 1985.

ジョーダン、E.C.(エド。) 技術者への参考資料、第7版。 H.W.サムズ社、ニューヨーク、1985。

[KOP87]

[KOP87]

Kopetz, H., and W. Ochsenreiter. Clock synchronization in distributed
real-time systems. IEEE Trans. Computers C-36, 8 (August 1987), 933-939.

Kopetz、H.、およびW.Ochsenreiter。 分配されたリアルタイムのシステムIEEE Transで同期の時間を計ってください。 コンピュータC-36、8(1987年8月)、933-939。

[LAM78]

[LAM78]

Lamport, L., Time, clocks and the ordering of events in a distributed
system. Comm. ACM 21, 7 (July 1978), 558-565.

分散システムにおける出来事のランポート、L.、Time、時計、および注文。 Comm。 ACM21、7(1978年7月)、558-565。

[LAM85]

[LAM85]

Lamport, L., and P.M. Melliar-Smith. Synchronizing clocks in the
presence of faults. J. ACM 32, 1 (January 1985), 52-78.

ランポート、L.、午後、Melliar-スミス。 連動は欠点があるとき時間を計ります。 J。 ACM32、1(1985年1月)、52-78。

[LIN80]

[LIN80]

Lindsay, W.C., and A.V. Kantak. Network synchronization of random
signals. IEEE Trans. Communications COM-28, 8 (August 1980), 1260-1266.

リンゼー、W.C.、およびA.V.Kantak。 不規則信号の同期をネットワークでつないでください。 IEEE、移- コミュニケーションCOM-28、8(1980年8月)、1260-1266。

[LUN84]

[LUN84]

Lundelius, J., and N.A. Lynch. A new fault-tolerant algorithm for clock
synchronization. Proc. Third Annual ACM Symposium on Principles of
Distributed Computing (August 1984), 75-88.

ランデリウス、J.、およびN.A.リンチ。 時計同期のための新しいフォールトトレラントアルゴリズム。 Proc。 75-88に分散コンピューティング(1984年8月)のプリンシプルズに関する第3例年のACMシンポジウム。

[MAR85]

[MAR85]

Marzullo, K., and S. Owicki. Maintaining the time in a distributed
system. ACM Operating Systems Review 19, 3 (July 1985), 44-54.

Marzullo、K.、およびS.Owicki。 分散システムで時間を維持します。 ACMオペレーティングシステムレビュー19、3(1985年7月)、44-54。

[MIL81a]

[MIL81a]

Mills, D.L. Time Synchronization in DCNET Hosts. DARPA Internet Project
Report IEN-173, COMSAT Laboratories, February 1981.

工場、DCNETホストのD.L.時間同期化。 1981年2月のDARPAインターネットプロジェクト報告IEN-173、コムサット研究所。

[MIL81b]

[MIL81b]

Mills, D.L. DCNET Internet Clock Service. DARPA Network Working Group
Report RFC-778, COMSAT Laboratories, April 1981.

工場、D.L.DCNETインターネットクロック・サービス。 DARPAはワーキンググループレポートRFC-778、コムサット研究所、1981年4月をネットワークでつなぎます。

[MIL83a]

[MIL83a]

Mills, D.L. Internet Delay Experiments. DARPA Network Working Group
Report RFC-889, M/A-COM Linkabit, December 1983.

工場、D.L.インターネット遅れ実験。 DARPAは1983年12月に1COM Linkabitである状態でワーキンググループレポートRFC-889、M/をネットワークでつなぎます。

[MIL83b]

[MIL83b]

Mills, D.L. DCN local-network protocols. DARPA Network Working Group
Report RFC-891, M/A-COM Linkabit, December 1983.

工場、D. L. DCN企業内情報通信網プロトコル。 DARPAは1983年12月に1COM Linkabitである状態でワーキンググループレポートRFC-891、M/をネットワークでつなぎます。

[MIL85a]

[MIL85a]

Mills, D.L. Algorithms for synchronizing network clocks. DARPA Network
Working Group Report RFC-956, M/A-COM Linkabit, September 1985.

工場、連動するためのD.L.Algorithmsは時計をネットワークでつなぎます。 DARPAは1985年9月に1COM Linkabitである状態でワーキンググループレポートRFC-956、M/をネットワークでつなぎます。

[MIL85b]

[MIL85b]

Mills, D.L. Experiments in network clock synchronization. DARPA Network
Working Group Report RFC-957, M/A-COM Linkabit, September 1985.

工場、ネットワークにおけるD.L.Experimentsは同期の時間を計ります。 DARPAは1985年9月に1COM Linkabitである状態でワーキンググループレポートRFC-957、M/をネットワークでつなぎます。

[MIL85c]

[MIL85c]

Mills, D.L. Network Time Protocol (NTP). DARPA Network Working Group
Report RFC-958, M/A-COM Linkabit, September 1985.

工場、D.L.は時間プロトコル(NTP)をネットワークでつなぎます。 DARPAは1985年9月に1COM Linkabitである状態でワーキンググループレポートRFC-958、M/をネットワークでつなぎます。

[MIL88a]

[MIL88a]

Mills, D.L. Network Time Protocol (version 1) - specification and
implementation. DARPA Network Working Group Report RFC-1059, University
of Delaware, July 1988.

工場、D.L.Network Timeプロトコル(バージョン1)--仕様と実現。 DARPAは1988年7月に作業部会レポートRFC-1059、デラウエア大学をネットワークでつなぎます。

[MIL88b]

[MIL88b]

Mills, D.L. The Fuzzball. Proc. ACM SIGCOMM 88 Symposium (Palo Alto, CA,
August 1988), 115-122.

D. L. 工場、Fuzzball。 Proc。 115-122にACM SIGCOMM88シンポジウム(パロアルト(カリフォルニア)1988年8月)。

[MIL89]

[MIL89]

Mills, D.L. Network Time Protocol (version 2) - specification and
implementation. DARPA Network Working Group Report RFC-1119, University
of Delaware, September 1989.

工場、D.L.Network Timeプロトコル(バージョン2)--仕様と実現。 DARPAは1989年9月に作業部会レポートRFC-1119、デラウエア大学をネットワークでつなぎます。

[MIL90]

[MIL90]

Mills, D.L. Measured performance of the Network Time Protocol in the
Internet system. ACM Computer Communication Review 20, 1 (January 1990),
65-75.

工場、インターネット・システムにおける、Network TimeプロトコルのD.L.Measured性能。 65-75にACMコンピュータコミュニケーションレビュー20、1(1990年1月)。

[MIL91a]

[MIL91a]

Mills, D.L. Internet time synchronization: the Network Time Protocol.
IEEE Trans. Communications 39, 10 (October 1991), 1482-1493.

工場、D.L.インターネット時間同期化: ネットワーク時間プロトコル。 IEEE、移- 1482-1493にコミュニケーション39、10(1991年10月)。

[MIL91b]

[MIL91b]

Mills, D.L. On the chronology and metrology of computer network
timescales and their application to the Network Time Protocol. ACM
Computer Communications Review 21, 5 (October 1991), 8-17.

工場、D.L.On、コンピュータネットワークスケールの年表と測定法とNetwork Timeプロトコルへの彼らのアプリケーション。 ACMコンピュータコミュニケーションレビュー21、5(1991年10月)、8-17。

[MIT80]

[MIT80]

Mitra, D. Network synchronization: analysis of a hybrid of master-slave
and mutual synchronization. IEEE Trans. Communications COM-28, 8 (August
1980), 1245-1259.

ミトラ、D.Network同期: マスター奴隷と互いの同期のハイブリッドの分析。 IEEE、移- コミュニケーションCOM-28、8(1980年8月)、1245-1259。

[NBS77]

[NBS77]

Data Encryption Standard. Federal Information Processing Standards
Publication 46. National Bureau of Standards, U.S. Department of
Commerce, 1977.

データ暗号化規格。 連邦政府の情報処理規格公表46 規格基準局、米国商務省、1977。

[NBS79]

[NBS79]

Time and Frequency Dissemination Services. NBS Special Publication 432,
U.S. Department of Commerce, 1979.

時間と頻度普及のサービス。 NBSの特別な公表432、米国商務省、1979。

[NBS80]

[NBS80]

DES Modes of Operation. Federal Information Processing Standards
Publication 81. National Bureau of Standards, U.S. Department of
Commerce, December 1980.

DES運転モード。 連邦政府の情報処理規格公表81 規格基準局、米国商務省、1980年12月。

[POS80]

[POS80]

Postel, J. User Datagram Protocol. DARPA Network Working Group Report
RFC-768, USC Information Sciences Institute, August 1980.

ポステル、J.ユーザー・データグラム・プロトコル。 DARPAはワーキンググループレポートRFC-768、科学が1980年8月に設けるUSC情報をネットワークでつなぎます。

[POS83a]

[POS83a]

Postel, J. Daytime protocol. DARPA Network Working Group Report RFC-867,
USC Information Sciences Institute, May 1983.

ポステル、J.Daytimeは議定書を作ります。 DARPAネットワークワーキンググループレポートRFC-867(科学が設けるUSC情報)は1983がそうするかもしれません。

[POS83b]

[POS83b]

Postel, J. Time protocol. DARPA Network Working Group Report RFC-868,
USC Information Sciences Institute, May 1983.

ポステル、J.Timeは議定書を作ります。 DARPAネットワークワーキンググループレポートRFC-868(科学が設けるUSC情報)は1983がそうするかもしれません。

[RIC88]

[RIC88]

Rickert, N.W. Non Byzantine clock synchronization - a programming
experiment. ACM Operating Systems Review 22, 1 (January 1988), 73-78.

リカート、北西のNonの込み入った時計同期--プログラミング実験。 ACMオペレーティングシステムレビュー22、1(1988年1月)、73-78。

[SCH86]

[SCH86]

Schneider, F.B. A paradigm for reliable clock synchronization.
Department of Computer Science Technical Report TR 86-735, Cornell
University, February 1986.

シュナイダー、信頼できる時計同期のためのF.B.Aパラダイム。 コンピュータサイエンス学部技術報告書TR86-735、コーネル大学、1986年2月。

[SMI86]

[SMI86]

Smith, J. Modern Communications Circuits. McGraw-Hill, New York, NY,
1986.

スミス、J.の近代的なコミュニケーション回路。 マグロウヒル、ニューヨーク(ニューヨーク)1986。

[SRI87]

[SRI87]

Srikanth, T.K., and S. Toueg. Optimal clock synchronization. J. ACM 34,
3 (July 1987), 626-645.

Srikanth、T.K.、およびS.Toueg最適の時計同期。 J。 ACM34、3(1987年7月)、626-645。

[STE88]

[STE88]

Steiner, J.G., C. Neuman, and J.I. Schiller. Kerberos: an authentication
service for open network systems. Proc. Winter USENIX Conference
(February 1988).

スタイナー、J.G.、C.ヌーマン、およびJ.I.シラー。 ケルベロス: オープンネットワークシステムProcのための認証サービス。 冬のUSENIXコンファレンス(1988年2月)。

[SU81]

[SU81]

Su, Z. A specification of the Internet protocol (IP) timestamp option.
DARPA Network Working Group Report RFC-781. SRI International, May 1981.

Su、インターネットプロトコル(IP)タイムスタンプオプションのZ.A仕様。 DARPAはワーキンググループレポートRFC-781をネットワークでつなぎます。 1981年5月のSRIインターナショナル。

[TRI86]

[TRI86]

Tripathi, S.K., and S.H. Chang. ETempo: a clock synchronization
algorithm for hierarchical LANs - implementation and measurements.
Systems Research Center Technical Report TR-86-48, University of
Maryland, 1986.

Tripathi、S.K.、およびS.H.チャン。 ETempo: 階層的なLANのための時計同期アルゴリズム--実装と測定値。 システムリサーチセンター技術報告書TR-86-48、メリーランド大学、1986。

[VAN84]

[VAN84]

Van Dierendonck, A.J., and W.C. Melton. Applications of time transfer
using NAVSTAR GPS. In: Global Positioning System, Papers Published in
Navigation, Vol. II, Institute of Navigation, Washington, DC, 1984.

Dierendonck、A.J.、およびW.C.メルトンをバンに積んでください。 時間のアプリケーションはNAVSTAR GPSコネを使用することで移されます: グローバルな測位システム、ナビゲーションで発行された論文、Vol.II、航法研究所、ワシントン(DC)1984。

[VAS78]

[VAS78]

Vass, E.R. OMEGA navigation system: present status and plans 1977-1980.
Navigation 25, 1 (Spring 1978).

管、E.R.オメガナビゲーションシステム: 状態とプラン1977-1980を提示してください。 ナビゲーション25、1(1978年春)。

Appendix A. NTP Data Format - Version 3

付録A.NTPデータの形式--バージョン3

The format of the NTP Message data area, which immediately follows the
UDP header, is shown in Figure 4<$&fig4>. Following is a description of
its fields.

NTP Messageデータ領域の書式は図4<$とfig4>に示されます。(データ領域はすぐに、UDPヘッダーに続きます)。 以下に、分野の記述があります。

Leap Indicator (LI): This is a two-bit code warning of an impending leap
second to be inserted/deleted in the last minute of the current day,
with bit 0 and bit 1, respectively, coded as follows:

インディケータ(LI)を跳ねさせてください: これは差し迫っている閏秒が現在の日の土壇場で挿入されるか、または削除されるという安っぽいコード警告です、以下の通りそれぞれコード化されたビット0とビット1で:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

00, no warning

00 警告しないこと

01, last minute has 61 seconds

01 土壇場には、61秒があります。

10, last minute has 59 seconds)

10、土壇場には59秒がある、)

11, alarm condition (clock not synchronized)

11 アラーム状態(連動しない時計)

@Z_TBL_END =

@Z_TBL_終わり=

Version Number (VN): This is a three-bit integer indicating the NTP
version number, currently three (3).

バージョン数の(vn): これはNTPバージョン番号、現在の3(3)を示す3ビットの整数です。

Mode: This is a three-bit integer indicating the mode, with values
defined as follows:

モード: これは値が以下の通り定義されている状態でモードを示す3ビットの整数です:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)
@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1E、E8(以下の(.0830)(HGUTTER(.0560))が(.0830)より上で(OFF)であることを保つ幅(5.0000))が)(コネチカット)@Z_TBL_ボディー=テーブルテキストを並べる、テキストを見送ってください。

0, reserved

0予約されて、

1, symmetric active

1 左右対称の能動態

2, symmetric passive

2 左右対称の受動態

3, client

3 クライアント

4, server

4 サーバ

5, broadcast

5 放送

6, reserved for NTP control message (see Appendix B)

NTPコントロールメッセージのために予約された6(付録Bを見ます)

7, reserved for private use

私的使用目的で予約された7

@Z_TBL_END =

@Z_TBL_終わり=

Stratum: This is a eight-bit integer indicating the stratum level of the
local clock, with values defined as follows:

層: これは値が以下の通り定義されている状態で地方の時計の層のレベルを示す8ビットの整数です:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

0, unspecified

0、不特定

1, primary reference (e.g.,, radio clock)

1 プライマリ参照(例えば、ラジオ時計)

2-255, secondary reference (via NTP)

2-255 セカンダリ参照(NTPを通した)

@Z_TBL_END =

@Z_TBL_終わり=

The values that can appear in this field range from zero to NTP.INFIN
inclusive.

この分野に現れることができる値はゼロ〜NTP.INFINまで包括的に及びます。

Poll Interval: This is an eight-bit signed integer indicating the
maximum interval between successive messages, in seconds to the nearest
power of two. The values that can appear in this field range from
NTP.MINPOLL to NTP.MAXPOLL inclusive.

間隔に投票してください: これは秒の連続したメッセージの最大の間隔の間の2の最も近いパワーへの整数表示に署名する8ビットです。 この分野に現れることができる値はNTP.MINPOLLからNTP.MAXPOLLまで包括的に及びます。

Precision: This is an eight-bit signed integer indicating the precision
of the local clock, in seconds to the nearest power of two.

精度: これは地方の時計の精度を示す8ビットの署名している整数です、2の最も近いパワーへの秒に。

Root Delay: This is a 32-bit signed fixed-point number indicating the
total roundtrip delay to the primary reference source, in seconds with
fraction point between bits 15 and 16. Note that this variable can take
on both positive and negative values, depending on clock precision and
skew.

遅れを根づかせてください: これは総往復の遅れをプライマリ照合線源まで示す32ビットの署名している固定小数点数です、ビット15と16の間には、断片ポイントがある秒に。 時計精度と斜行によって、この変数が積極的なものと同様に否定的な値を呈することができることに注意してください。

Root Dispersion: This is a 32-bit signed fixed-point number indicating
the maximum error relative to the primary reference source, in seconds
with fraction point between bits 15 and 16. Only positive values greater
than zero are possible.

ディアスポラを根づかせてください: これはプライマリ照合線源に比例して最大の誤りを示す32ビットの署名している固定小数点数です、ビット15と16の間には、断片ポイントがある秒に。 ゼロより大きい正の数だけが可能です。

Reference Clock Identifier: This is a 32-bit code identifying the
particular reference clock. In the case of stratum 0 (unspecified) or
stratum 1 (primary reference), this is a four-octet, left-justified,
zero-padded ASCII string. While not enumerated as part of the NTP
specification, the following are suggested ASCII identifiers:
@Z_TBL_BEG = COLUMNS(3), DIMENSION(IN), COLWIDTHS(E2,E2,E5),
WIDTH(4.6700), ABOVE(.1670), BELOW(.0830), HGUTTER(.3330),
BOX(Z_SINGLE), KEEP(ON), ALIGN(CT), L1(R1C0..R1C3)

基準クロック識別子: これは特定の基準クロックを特定する32ビットのコードです。 層0(不特定の)か層1(プライマリ参照)の場合では、これは4八重奏の、そして、左で正当で、無そっと歩いているASCIIストリングです。 NTP仕様の一部として列挙されない間、↓これは提案されたASCII識別子です: @Z_L1、TBL_は=コラム(3)、寸法(IN)、COLWIDTHS(5Eに2ユーロの、そして、2ユーロの)、幅(4.6700)、上(.1670)、下(.0830)を請って、HGUTTER(.3330)(箱(Z_シングル)、生活費(ON))は(コネチカット)を並べます。(R1C0..R1C3)

@Z_TBL_BODY = TABLE HEADER, TABLE HEADER, TABLE HEADER

@Z_TBL_ボディー=テーブルヘッダー、テーブルヘッダーはヘッダーをテーブルの上に置きます。

Stratum, Code, Meaning

層、コード、意味

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキストはテキストを見送ります。

0, DCN, DCN routing protocol

0 DCN、DCNルーティング・プロトコル

0, NIST, NIST public modem

0 NIST、NISTの公共のモデム

0, TSP, TSP time protocol

0 TSP、TSP時間プロトコル

0, DTS, Digital Time Service

0、DTS、デジタル時間指定サービス

1, ATOM, Atomic clock (calibrated)

1 ATOM、Atomic時計(較正されます)

1, VLF, VLF radio (OMEGA,, etc.)

1 VLF、VLFラジオ(オメガ、など)

1, callsign, Generic radio

1 callsign、Genericラジオ

1, LORC, LORAN-C radionavigation

1 LORC、LORAN-C無線航法

1, GOES, GOES UHF environment satellite

1 ゴエス、ゴエスUHF環境衛星

@Z_TBL_BODY = TABLE HEADER, TABLE HEADER, TABLE HEADER

@Z_TBL_ボディー=テーブルヘッダー、テーブルヘッダーはヘッダーをテーブルの上に置きます。

1, GPS, GPS UHF satellite positioning

1、GPS、GPS UHF衛星位置決め

@Z_TBL_END =

@Z_TBL_終わり=

In the case of stratum 2 and greater (secondary reference) this is the
four-octet Internet address of the primary reference host.

層2に関するケース、 よりすばらしい、(セカンダリ参照) これはプライマリ参照ホストの4八重奏のインターネット・アドレスです。

Reference Timestamp: This is the local time at which the local clock was
last set or corrected, in 64-bit timestamp format.

参照タイムスタンプ: これは地方の時計が64ビットのタイムスタンプ形式で最後に設定されたか、または修正された現地時間です。

Originate Timestamp: This is the local time at which the request
departed the client host for the service host, in 64-bit timestamp
format.

タイムスタンプを溯源してください: これは要求がサービス・ホストのためにクライアントホストを去った現地時間です、64ビットのタイムスタンプ形式で。

Receive Timestamp: This is the local time at which the request arrived
at the service host, in 64-bit timestamp format.

タイムスタンプを受け取ってください: これは要求が64ビットのタイムスタンプ形式でサービス・ホストに到着した現地時間です。

Transmit Timestamp: This is the local time at which the reply departed
the service host for the client host, in 64-bit timestamp format.

タイムスタンプを伝えてください: これは回答がクライアントホストのためにサービス・ホストを去った現地時間です、64ビットのタイムスタンプ形式で。

Authenticator (optional): When the NTP authentication mechanism is
implemented, this contains the authenticator information defined in
Appendix C.

固有識別文字(任意の): NTP認証機構が実装されるとき、これはAppendix Cで定義された固有識別文字情報を含んでいます。

Appendix B. NTP Control Messages

付録B.NTPコントロールメッセージ

In a comprehensive network-management environment, facilities are
presumed available to perform routine NTP control and monitoring
functions, such as setting the leap-indicator bits at the primary
servers, adjusting the various system parameters and monitoring regular
operations. Ordinarily, these functions can be implemented using a
network-management protocol such as SNMP and suitable extensions to the
MIB database. However, in those cases where such facilities are not
available, these functions can be implemented using special NTP control
messages described herein. These messages are intended for use only in
systems where no other management facilities are available or
appropriate, such as in dedicated-function bus peripherals. Support for
these messages is not required in order to conform to this
specification.

包括的なネットワークマネージメント環境で、施設は通常のNTPコントロールと監視機能を実行するために利用可能であると推定されます、プライマリサーバにおける飛躍インディケータビットを設定するのなどように、様々なシステム・パラメータとモニターしている正常な操業を調整して。 通常、SNMPや適当な拡大などのネットワーク管理プロトコルをMIBデータベースに使用することでこれらの機能を実装することができます。 しかしながら、そのような施設が利用可能でないそれらの場合では、ここに説明された特別なNTPコントロールメッセージを使用することでこれらの機能を実装することができます。 これらのメッセージは他の管理施設が利用可能でないか、または適切でないシステムだけにおける使用のために意図します、ひたむきな機能バス周辺機器などのように。 これらのメッセージのサポートは、この仕様に従うのに必要ではありません。

The NTP Control Message has the value 6 specified in the mode field of
the first octet of the NTP header and is formatted as shown below. The
format of the data field is specific to each command or response;
however, in most cases the format is designed to be constructed and
viewed by humans and so is coded in free-form ASCII. This facilitates
the specification and implementation of simple management tools in the
absence of fully evolved network-management facilities. As in ordinary
NTP messages, the authenticator field follows the data field. If the
authenticator is used the data field is zero-padded to a 32-bit
boundary, but the padding bits are not considered part of the data field
and are not included in the field count.

NTP Control MessageはNTPヘッダーの最初の八重奏のモード分野で値6を指定させて、以下に示すようにフォーマットされます。 データ・フィールドの形式は各コマンドか応答に特定です。 しかしながら、多くの場合、形式は、人間によって組み立てられて、見られるように設計されているので、自由形式ASCIIでコード化されます。 これは完全に発展されたネットワークマネージメント施設がないとき簡単な管理ツールの仕様と実装を容易にします。 普通のNTPメッセージのように、固有識別文字分野はデータ・フィールドに続きます。 固有識別文字が使用されているならデータ・フィールドが32ビットの境界に無そっと歩いていますが、詰め物ビットは、データ・フィールドの一部であることは考えられないで、また分野カウントに含まれていません。

IP hosts are not required to reassemble datagrams larger than 576
octets; however, some commands or responses may involve more data than
will fit into a single datagram. Accordingly, a simple reassembly
feature is included in which each octet of the message data is numbered
starting with zero. As each fragment is transmitted the number of its
first octet is inserted in the offset field and the number of octets is
inserted in the count field. The more-data (M) bit is set in all
fragments except the last.

IPホストは576の八重奏より大きいデータグラムを組み立て直す必要はありません。 しかしながら、いくつかのコマンドか応答が単一のデータグラムに合われて、かかわるよりさらに多くのデータにかかわるかもしれません。 それに従って、簡単な再アセンブリの特徴はメッセージデータの各八重奏がどれであるかにゼロをきっかけに番号付で含まれています。 各断片が伝えられるのに従って、最初の八重奏の数はオフセット分野に挿入されます、そして、八重奏の数はカウント分野に挿入されます。 より多くのデータ(M)ビットは最終以外のすべての断片に設定されます。

Most control functions involve sending a command and receiving a
response, perhaps involving several fragments. The sender chooses a
distinct, nonzero sequence number and sets the status field and R and E
bits to zero. The responder interprets the opcode and additional
information in the data field, updates the status field, sets the R bit
to one and returns the three 32-bit words of the header along with
additional information in the data field. In case of invalid message
format or contents the responder inserts a code in the status field,
sets the R and E bits to one and, optionally, inserts a diagnostic
message in the data field.

ほとんどのコントロール機能が、恐らく数個の断片にかかわって、コマンドを送って、応答を受けることを伴います。 送付者は、異なった非零一連番号を選んで、状態分野とRとEビットをゼロに設定します。 応答者は、追加情報と共にデータ・フィールドでデータ・フィールドでopcodeと追加情報を解釈して、状態分野をアップデートして、Rビットを1つに設定して、ヘッダーの3つの32ビットの単語を返します。 無効のメッセージ・フォーマットかコンテンツの場合には、応答者は、状態分野にコードを挿入して、RとEビットを1つに設定して、任意に診断メッセージをデータ・フィールドに挿入します。

Some commands read or write system variables and peer variables for an
association identified in the command. Others read or write variables
associated with a radio clock or other device directly connected to a
source of primary synchronization information. To identify which type of
variable and association a 16-bit association identifier is used. System
variables are indicated by the identifier zero. As each association is
mobilized a unique, nonzero identifier is created for it. These
identifiers are used in a cyclic fashion, so that the chance of using an
old identifier which matches a newly created association is remote. A
management entity can request a list of current identifiers and
subsequently use them to read and write variables for each association.
An attempt to use an expired identifier results in an exception
response, following which the list can be requested again.

いくつかのコマンドが、コマンドで特定された協会のために、システム変数と同輩変数を読むか、または書きます。 他のものは、直接プライマリ同期情報の源に接続されるラジオ時計か対向機器に関連している変数を読むか、または書きます。 変数と協会のどのタイプを特定するかために、16ビットの協会識別子は使用されています。 システム変数は識別子ゼロによって示されます。 各協会が動員されるとき、ユニークな非零識別子はそれのために作成されます。 これらの識別子は周期的なファッションで使用されます、新たに作成された協会に合っている古い識別子を使用するという機会がリモートであるように。 経営体は、現在の識別子のリストを要求して、次に、各協会のために変数を読み書きするのにそれらを使用できます。 満期の識別子を使用する試みは例外応答をもたらして、どれに続いて、再びリストは要求できます。

Some exception events, such as when a peer becomes reachable or
unreachable, occur spontaneously and are not necessarily associated with
a command. An implementation may elect to save the event information for
later retrieval or to send an asynchronous response (called a trap) or
both. In case of a trap the IP address and port number is determined by
a previous command and the sequence field is set as described below.
Current status and summary information for the latest exception event is
returned in all normal responses. Bits in the status field indicate
whether an exception has occurred since the last response and whether
more than one exception has occurred.

同輩が届くか手が届かなくなる時などのいくつかの例外イベントが、自然に起こって、必ずコマンドに関連づけられるというわけではありません。 実装は、後の検索のためのイベント情報を保存するか、または非同期な応答(罠と呼ばれる)か両方を送るのを選ぶかもしれません。 罠の場合には、IPアドレスとポートナンバーは前のコマンドで測定されます、そして、系列分野は以下で説明されるように設定されます。 最新の例外イベントのための現在の状態と概要情報はすべての通常の応答で返されます。 状態分野のビットは最後の応答以来例外が起こっているかどうかと、1つ以上の例外が起こったかどうかを示します。

Commands need not necessarily be sent by an NTP peer, so ordinary
access-control procedures may not apply; however, the optional
mask/match mechanism suggested elsewhere in this document provides the
capability to control access by mode number, so this could be used to
limit access for control messages (mode 6) to selected address ranges.

コマンドが必ずNTP同輩によって送られなければならないというわけではないので、普通のアクセス制御手順は適用されないかもしれません。 しかしながら、任意のマスク/マッチメカニズムが、モード番号に従ってアクセスを制御する能力がほかの場所で本書では提供されるのを示したので、コントロールメッセージ(モード6)のためのアクセスを選択されたアドレスの範囲に制限するのにこれを使用できました。

NTP Control Message Format

NTPコントロールメッセージ・フォーマット

The format of the NTP Control Message header, which immediately follows
the UDP header, is shown in Figure 5<$&fig5>. Following is a description
of its fields. Bit positions marked as zero are reserved and should
always be transmitted as zero.

NTP Control Messageヘッダーの書式は図5<$とfig5>に示されます。(ヘッダーはすぐに、UDPヘッダーについて来ます)。 以下に、分野の記述があります。 ビット位置は、ゼロが予約されているのでマークされて、ゼロとしていつも伝えられるべきです。

Version Number (VN): This is a three-bit integer indicating the NTP
version number, currently three (3).

バージョン数の(vn): これはNTPバージョン番号、現在の3(3)を示す3ビットの整数です。

Mode: This is a three-bit integer indicating the mode. It must have the
value 6, indicating an NTP control message.

モード: これはモードを示す3ビットの整数です。 それには、NTPコントロールメッセージを示して、値6がなければなりません。

Response Bit (R): Set to zero for commands, one for responses.

応答は(R)に噛み付きました: コマンドのためのゼロ、応答のための1つにセットしてください。

Error Bit (E): Set to zero for normal response, one for error response.

誤りは(E)に噛み付きました: 通常の応答のためのゼロ、誤り応答のための1つにセットしてください。

More Bit (M): Set to zero for last fragment, one for all others.

以上は(M)に噛み付きました: 最後の断片のためのゼロ、すべての他のもののための1つにセットしてください。

Operation Code (Op): This is a five-bit integer specifying the command
function. Values currently defined include the following:

命令コード(オプアート): これは指揮の機能を指定する5ビットの整数です。 現在定義されている値は以下を含んでいます:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

0, reserved

0予約されて、

1, read status command/response

1状態コマンド/応答が読まれて、

2, read variables command/response

2変数コマンド/応答が読まれて、

3, write variables command/response

3 変数コマンド/応答を書いてください。

4, read clock variables command/response

4時計変数コマンド/応答が読まれて、

5, write clock variables command/response

5 時計変数コマンド/応答を書いてください。

6, set trap address/port command/response

6 セットトラップ・アドレス/ポートコマンド/応答

7, trap response

7 罠応答

8-31, reserved

8-31で、予約されています。

@Z_TBL_END =

@Z_TBL_終わり=

Sequence: This is a 16-bit integer indicating the sequence number of the
command or response.

系列: これはコマンドか応答の一連番号を示す16ビットの整数です。

Status: This is a 16-bit code indicating the current status of the
system, peer or clock, with values coded as described in following
sections.

状態: これはシステム、同輩または時計の現在の状態を示す16ビットのコードです、以下の章で説明されるようにコード化された値で。

Association ID: This is a 16-bit integer identifying a valid
association.

協会ID: これは有効な協会を特定する16ビットの整数です。

Offset: This is a 16-bit integer indicating the offset, in octets, of
the first octet in the data area.

以下を相殺してください。 これはデータ領域における最初の八重奏の八重奏におけるオフセットを示す16ビットの整数です。

Count: This is a 16-bit integer indicating the length of the data field,
in octets.
Data: This contains the message data for the command or response. The
maximum number of data octets is 468.

以下を数えてください。 これは八重奏における、データ・フィールドの長さを示す16ビットの整数です。 データ: これはコマンドか応答のためのメッセージデータを含んでいます。 データ八重奏の最大数は468です。

Authenticator (optional): When the NTP authentication mechanism is
implemented, this contains the authenticator information defined in
Appendix C.

固有識別文字(任意の): NTP認証機構が実装されるとき、これはAppendix Cで定義された固有識別文字情報を含んでいます。

Status Words

状態語

Status words indicate the present status of the system, associations and
clock. They are designed to be interpreted by network-monitoring
programs and are in one of four 16-bit formats shown in Figure 6<$&fig6>
and described in this section. System and peer status words are
associated with responses for all commands except the read clock
variables, write clock variables and set trap address/port commands. The
association identifier zero specifies the system status word, while a
nonzero identifier specifies a particular peer association. The status
word returned in response to read clock variables and write clock
variables commands indicates the state of the clock hardware and
decoding software. A special error status word is used to report
malformed command fields or invalid values.

状態語はシステム、協会、および時計の現況を示します。 彼らは、ネットワーク監視プログラムで解釈されるように設計されていて、図6<$とfig6>に示されて、このセクションで説明された4つの16ビットの書式の1つにはいます。 システムと関連づけられた同輩状態語は、読みを除いたすべてのコマンドのための応答で変数の時間を計って、時計変数を書いて、トラップ・アドレス/ポートコマンドを設定します。 協会識別子ゼロはシステム状態語を指定しますが、非零識別子は特定の同輩協会を指定します。 時計変数を読み込んで、コマンドが示す時計変数に時計ハードウェアの状態を書いて、ソフトウェアを解読することに対応して状態語は戻りました。 特別なエラーステイタス語は、奇形のコマンド欄か無効の値を報告するのに使用されます。

System Status Word

システム状態Word

The system status word appears in the status field of the response to a
read status or read variables command with a zero association
identifier. The format of the system status word is as follows:

システム状態語はaゼロ協会識別子と共に読書状態か読書変数命令への応答の状態分野に現れます。 システム状態語の形式は以下の通りです:

Leap Indicator (LI): This is a two-bit code warning of an impending leap
second to be inserted/deleted in the last minute of the current day,
with bit 0 and bit 1, respectively, coded as follows:

インディケータ(LI)を跳ねさせてください: これは差し迫っている閏秒が現在の日の土壇場で挿入されるか、または削除されるという安っぽいコード警告です、以下の通りそれぞれコード化されたビット0とビット1で:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

00, no warning

00 警告しないこと

01, last minute has 61 seconds

01 土壇場には、61秒があります。

10, last minute has 59 seconds)

10、土壇場には59秒がある、)

11, alarm condition (clock not synchronized)

11 アラーム状態(連動しない時計)

@Z_TBL_END =

@Z_TBL_終わり=

Clock Source: This is a six-bit integer indicating the current
synchronization source, with values coded as follows:

ソースの時間を計ってください: これは値が以下の通りコード化されている状態で現在の同期ソースを示す6ビットの整数です:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

0, unspecified or unknown

0、不特定であるか未知

1, Calibrated atomic clock (e.g.,, HP 5061)

1 Calibrated原子時計(例えば、hp5061)

2, VLF (band 4) or LF (band 5) radio (e.g.,, OMEGA,, WWVB)

2、VLF(バンド4)またはLF(バンド5)ラジオ(例えば、オメガ、WWVB)

3, HF (band 7) radio (e.g.,, CHU,, MSF,, WWV/H)

3 HF(バンド7)ラジオ(例えば、CHU、MSF、WWV/H)

4, UHF (band 9) satellite (e.g.,, GOES,, GPS)

4 UHF(バンド9)衛星(例えば、ゴエス、GPS)

5, local net (e.g.,, DCN,, TSP,, DTS)
6, UDP/NTP

5、ローカルのネット、(例えば、DCN、TSP、DTS) 6、UDP/NTP

7, UDP/TIME

7UDP/時間

8, eyeball-and-wristwatch

8、眼球、および腕時計

9, telephone modem (e.g.,, NIST)

9 電話モデム(例えば、NIST)

10-63, reserved

10-63で、予約されています。

@Z_TBL_END =

@Z_TBL_終わり=

System Event Counter: This is a four-bit integer indicating the number
of system exception events occurring since the last time the system
status word was returned in a response or included in a trap message.
The counter is cleared when returned in the status field of a response
and freezes when it reaches the value 15.

システムイベントカウンタ: これは最後の時間システム状態語を応答で返したか、またはトラップメッセージに含んでいたので起こるシステム例外イベントの数を示す4ビットの整数です。 値15に達するとき、応答と凍結の状態分野で返すと、カウンタをきれいにします。

System Event Code: This is a four-bit integer identifying the latest
system exception event, with new values overwriting previous values, and
coded as follows:

システムイベントコード: これは最新のシステム例外イベントを特定する4ビットの整数です、以下の通り前の値を上書きして、コード化された新しい値で:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

0, unspecified

0、不特定

1, system restart

1 システムリスタート

2, system or hardware fault

2、システムまたはハードウェアの故障

3, system new status word (leap bits or synchronization change)

3 システムの新しい状態語(飛躍ビットか同期変化)

4, system new synchronization source or stratum (sys.peer or sys.stratum
change)

4、システムの新しい同期ソースまたは層(sys.peerかsys.stratum変化)

5, system clock reset (offset correction exceeds CLOCK.MAX)

5 システムクロックリセット(オフセット修正はCLOCK.MAXを超えています)

6, system invalid time or date (see NTP specification)

6、システムの無効の時間または期日(NTP仕様を見ます)

7, system clock exception (see system clock status word)

7 システムクロック例外(システムクロック状態語を見ます)

8-15, reserved

8-15で、予約されています。

@Z_TBL_END =

@Z_TBL_終わり=

Peer Status Word

同輩状態Word

A peer status word is returned in the status field of a response to a
read status, read variables or write variables command and appears also
in the list of association identifiers and status words returned by a
read status command with a zero association identifier. The format of a
peer status word is as follows:

同輩状態語は、aゼロ協会識別子と共に読書状態命令で返された協会識別子と状態語のリストに読書状態への応答の状態分野で返されて、変数を読むか、または変数コマンドを書いて、また、現れます。 同輩状態語の形式は以下の通りです:

Peer Status: This is a five-bit code indicating the status of the peer
determined by the packet procedure, with bits assigned as follows:

同輩状態: これはパケット手順によって断固とした同輩の状態を示す5ビットのコードです、ビットが以下の通り割り当てられている状態で:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

0, configured (peer.config)
1, authentication enabled (peer.authenable)

0、認証が可能にした構成された(peer.config)1(peer.authenable)

2, authentication okay (peer.authentic)

2 認証承認(peer.authentic)

3, reachability okay (peer.reach <F128M>ヨ<F255D> 0)

3 可到達性承認(peer.reach<F128M>ヨ<F255D>0)

4, reserved

4予約されて、

@Z_TBL_END =

@Z_TBL_終わり=

Peer Selection (Sel): This is a three-bit integer indicating the status
of the peer determined by the clock-selection procedure, with values
coded as follows:

同輩選択(Sel): これは時計選択手順によって断固とした同輩の状態を示す3ビットの整数です、値が以下の通りコード化されている状態で:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

0, rejected

0拒絶されて、

1, passed sanity checks (tests 1 through 8 in Section 3.4.3)

1 通っている健全度チェック(セクション3.4.3におけるテスト1〜8)

2, passed correctness checks (intersection algorithm in Section 4.2.1)

2 通っている正当性はチェックします。(セクション4.2.1における交差点アルゴリズム)

3, passed candidate checks (if limit check implemented)

3 通っている候補チェック(限界であるなら、実装された状態でチェックしてください)

4, passed outlyer checks (clustering algorithm in Section 4.2.2)

4 通っているoutlyerはチェックします。(セクション4.2.2におけるクラスタ化アルゴリズム)

5, current synchronization source; max distance exceeded (if limit check
implemented)

5 現在の同期ソース。 距離が超えていた最大(限界であるなら、実装された状態でチェックしてください)

6, current synchronization source; max distance okay

6 現在の同期ソース。 最大距離承認

7, reserved

7予約されて、

@Z_TBL_END =

@Z_TBL_終わり=

Peer Event Counter: This is a four-bit integer indicating the number of
peer exception events that occurred since the last time the peer status
word was returned in a response or included in a trap message. The
counter is cleared when returned in the status field of a response and
freezes when it reaches the value 15.

同輩イベントカウンタ: これは前回同輩状態語を応答で返したか、またはトラップメッセージに含んでいたとき以来起こった同輩例外イベントの数を示す4ビットの整数です。 値15に達するとき、応答と凍結の状態分野で返すと、カウンタをきれいにします。

Peer Event Code: This is a four-bit integer identifying the latest peer
exception event, with new values overwriting previous values, and coded
as follows:

同輩イベントコード: これは最新の同輩例外イベントを特定する4ビットの整数です、以下の通り前の値を上書きして、コード化された新しい値で:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

0, unspecified

0、不特定

1, peer IP error

1 同輩IP誤り

2, peer authentication failure (peer.authentic bit was one now zero)

2 同輩認証失敗(peer.authenticビットは現在が合っているゼロ1でした)

3, peer unreachable (peer.reach was nonzero now zero)

3、同輩手の届かない(peer.reachは現在が合っているゼロ非零でした)

4, peer reachable (peer.reach was zero now nonzero)

4、同輩届く。(peer.reachは現在非零のゼロを合わせることでした)

5, peer clock exception (see peer clock status word)

5 同輩時計例外(同輩時計状態語を見ます)

6-15, reserved
@Z_TBL_END =

6-15 予約された@Z_TBL_END=

Clock Status Word

時計状態Word

There are two ways a reference clock can be attached to a NTP service
host, as an dedicated device managed by the operating system and as a
synthetic peer managed by NTP. As in the read status command, the
association identifier is used to identify which one, zero for the
system clock and nonzero for a peer clock. Only one system clock is
supported by the protocol, although many peer clocks can be supported. A
system or peer clock status word appears in the status field of the
response to a read clock variables or write clock variables command.
This word can be considered an extension of the system status word or
the peer status word as appropriate. The format of the clock status word
is as follows:

基準クロックがNTPサービス・ホストに愛着できる2つの方法があります、専用デバイスがオペレーティングシステムで管理されて、合成の同輩がNTPで管理したので。 状態コマンド、読みの協会識別子がどれを特定するかに使用されるので、システムクロックのためのゼロと同輩時計のために非零です。 多くの同輩時計を支えることができますが、1個のシステムクロックだけがプロトコルによって支えられます。 システムか同輩時計状態語が変数の時間を計るか、または書くaが時計変数コマンドを読んだ応答の状態分野に現れます。 システム状態語か適宜という同輩状態単語の拡大であるとこの単語を考えることができます。 時計状態語の形式は以下の通りです:

Clock Status: This is an eight-bit integer indicating the current clock
status, with values coded as follows:

状態の時間を計ってください: これは値が以下の通りコード化されている状態で現在の時計状態を示す8ビットの整数です:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

0, clock operating within nominals

0 名詞語句の中で作動する時計

1, reply timeout

1 回答タイムアウト

2, bad reply format

2 悪い回答形式

3, hardware or software fault

3、ハードウェアまたはソフトウェア欠点

4, propagation failure

4 伝播失敗

5, bad date format or value

5、悪い日付の形式または値

6, bad time format or value

6、悪い時間形式または値

7-255, reserved

7-255で、予約されています。

@Z_TBL_END =

@Z_TBL_終わり=

Clock Event Code: This is an eight-bit integer identifying the latest
clock exception event, with new values overwriting previous values. When
a change to any nonzero value occurs in the radio status field, the
radio status field is copied to the clock event code field and a system
or peer clock exception event is declared as appropriate.

イベントコードの時間を計ってください: これは新しい値が前の値を上書きする状態で最新の時計例外イベントを特定する8ビットの整数です。 どんな非ゼロ値への変化もラジオ状態分野に起こるとき、ラジオ状態分野は時計イベントコード分野にコピーされます、そして、システムか同輩時計例外イベントが適宜申告されます。

Error Status Word

エラーステイタス語

An error status word is returned in the status field of an error
response as the result of invalid message format or contents. Its
presence is indicated when the E (error) bit is set along with the
response (R) bit in the response. It consists of an eight-bit integer
coded as follows:

無効のメッセージ・フォーマットかコンテンツの結果として誤り応答の状態分野でエラーステイタス語を返します。 E(誤り)ビットが応答(R)ビットと共に設定されるとき、存在は応答で示されます。 それは以下の通りコード化された8ビットの整数から成ります:

@Z_TBL_BEG = COLUMNS(2), DIMENSION(IN), COLWIDTHS(E1,E8), WIDTH(5.0000),
ABOVE(.0830), BELOW(.0830), HGUTTER(.0560), KEEP(OFF), ALIGN(CT)

@Z_COLWIDTHS、TBL_は=コラム(2)、寸法(IN)を請います。(1ユーロと、8)ユーロ、(.0830)を超えた(.0830)の下における幅(5.0000)(HGUTTER(.0560))が(OFF)を保つ、並べる。(コネチカット)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキスト

0, unspecified

0、不特定

1, authentication failure

1 認証失敗

2, invalid message length or format
3, invalid opcode

2か無効のメッセージ長か形式3、無効のopcode

4, unknown association identifier

4 未知の協会識別子

5, unknown variable name

5 未知の変数名

6, invalid variable value

6 無効の可変値

7, administratively prohibited

行政上禁止された7

8-255, reserved

8-255で、予約されています。

@Z_TBL_END =

@Z_TBL_終わり=

Commands

コマンド

Commands consist of the header and optional data field shown in Figure
6. When present, the data field contains a list of identifiers or
assignments in the form

コマンドは図6で見せられたヘッダーと任意のデータ・フィールドから成ります。 存在しているとき、データ・フィールドはフォームに識別子か課題のリストを含んでいます。

<<identifier>>[=<<value>>],<<identifier>>[=<<value>>],...

<<識別子>>[<<値の>>と等しい]、<<識別子>>[<<値の>>と等しいです]…

where <<identifier>> is the ASCII name of a system or peer variable
specified in Table 2 or Table 3 and <<value>> is expressed as a decimal,
hexadecimal or string constant in the syntax of the C programming
language. Where no ambiguity exists, the <169>sys.<170> or
<169>peer.<170> prefixes shown in Table 2 or Table 4 can be suppressed.
Whitespace (ASCII nonprinting format effectors) can be added to improve
readability for simple monitoring programs that do not reformat the data
field. Internet addresses are represented as four octets in the form
[n.n.n.n], where n is in decimal notation and the brackets are optional.
Timestamps, including reference, originate, receive and transmit values,
as well as the logical clock, are represented in units of seconds and
fractions, preferably in hexadecimal notation, while delay, offset,
dispersion and distance values are represented in units of milliseconds
and fractions, preferably in decimal notation. All other values are
represented as-is, preferably in decimal notation.

<<識別子>>がどこのTable2かTable3と<<値の>>で指定されたシステムか同輩変数のASCII名であるかはCプログラミング言語の構文による小数、16進またはストリング定数として表されます。 あいまいさが全く存在していないところでは、sys<170>か<169>同輩<170>が前に置くTable2かTable4で見せられた<169>は抑圧できます。 再フォーマットでないのにデータ・フィールドをする簡単な監視プログラムのために読み易さを改良するために、空白(書式制御文字を非印刷するASCII)を加えることができます。 フォーム[n.n.n.n]、nがどこに10進法であるか、そして、および括弧における4つの八重奏が任意であるので、インターネット・アドレスは表されます。 指示するものを含むタイムスタンプが、値、および論理的な時計を溯源して、受けて、伝えて、ユニットの秒と断片に表されます、望ましくは、16進法で、遅れ、オフセット、分散、および距離値はユニットのミリセカンドと断片に表されますが、望ましくは10進法で。 他のすべての値が望ましくは10進法でそのままで表されます。

Implementations may define variables other than those listed in Table 2
or Table 3. Called extramural variables, these are distinguished by the
inclusion of some character type other than alphanumeric or <169>.<170>
in the name. For those commands that return a list of assignments in the
response data field, if the command data field is empty, it is expected
that all available variables defined in Table 3 or Table 4 of the NTP
specification will be included in the response. For the read commands,
if the command data field is nonempty, an implementation may choose to
process this field to individually select which variables are to be
returned.

実装はTable2かTable3に記載されたもの以外の変数を定義するかもしれません。 呼ばれた区域外の変数、これらは英数字か<169>名前の<170>以外の何らかの字種の包含で区別されます。 コマンドデータ・フィールドが人影がないなら応答データ・フィールドで課題のリストを返すそれらのコマンドにおいて、NTP仕様のTable3かTable4で定義されたすべての利用可能な変数が応答に含まれると予想されます。 読みコマンドのために、実装は、コマンドデータ・フィールドがnonemptyであるなら、返すために変数がどれであるかを個別に選択するためにこの分野を処理するのを選ぶかもしれません。

Commands are interpreted as follows:

コマンドは以下の通り解釈されます:

Read Status (1): The command data field is empty or contains a list of
identifiers separated by commas. The command operates in two ways
depending on the value of the association identifier. If this identifier
is nonzero, the response includes the peer identifier and status word.
Optionally, the response data field may contain other information, such
as described in the Read Variables command. If the association
identifier is zero, the response includes the system identifier (0) and
status word, while the data field contains a list of binary-coded pairs

状態(1)を読んでください: コマンドデータ・フィールドは、空であるか、またはコンマによって切り離された識別子のリストを含んでいます。 コマンドは協会識別子の値に依存する2つの方法で作動します。 この識別子が非零であるなら、応答は同輩識別子と状態語を含んでいます。 任意に、応答データ・フィールドはRead Variablesコマンドで説明されるように他の情報を含むかもしれません。 協会識別子がゼロであるなら、応答はシステム識別子(0)と状態語を含んでいます、データ・フィールドはバイナリーでコード化された組のリストを含んでいますが

<<association identifier>> <<status word>>,

<<協会識別子>><<状態単語>>。

one for each currently defined association.
Read Variables (2): The command data field is empty or contains a list
of identifiers separated by commas. If the association identifier is
nonzero, the response includes the requested peer identifier and status
word, while the data field contains a list of peer variables and values
as described above. If the association identifier is zero, the data
field contains a list of system variables and values. If a peer has been
selected as the synchronization source, the response includes the peer
identifier and status word; otherwise, the response includes the system
identifier (0) and status word.

それぞれのための1つは現在、協会を定義しました。 変数(2)を読んでください: コマンドデータ・フィールドは、空であるか、またはコンマによって切り離された識別子のリストを含んでいます。 協会識別子が非零であるなら、応答は要求された同輩識別子と状態語を含んでいます、データ・フィールドは上で説明されるように同輩変数と値のリストを含んでいますが。 協会識別子がゼロであるなら、データ・フィールドはシステム変数と値のリストを含んでいます。 同輩が同期ソースとして選定されたなら、応答は同輩識別子と状態語を含んでいます。 さもなければ、応答はシステム識別子(0)と状態語を含んでいます。

Write Variables (3): The command data field contains a list of
assignments as described above. The variables are updated as indicated.
The response is as described for the Read Variables command.

変数(3)を書いてください: コマンドデータ・フィールドは上で説明されるように課題のリストを含んでいます。 示されるように変数をアップデートします。 応答がRead Variablesコマンドのために説明されるようにあります。

Read Clock Variables (4): The command data field is empty or contains a
list of identifiers separated by commas. The association identifier
selects the system clock variables or peer clock variables in the same
way as in the Read Variables command. The response includes the
requested clock identifier and status word and the data field contains a
list of clock variables and values, including the last timecode message
received from the clock.

時計変数(4)を読んでください: コマンドデータ・フィールドは、空であるか、またはコンマによって切り離された識別子のリストを含んでいます。 同様に、協会識別子はRead Variablesコマンドのようにシステムクロック変数か同輩時計変数を選択します。 応答は要求された時計識別子と状態語を含んでいます、そして、データ・フィールドは時計変数と値のリストを含んでいます、時計から受け取られた最後のtimecodeメッセージを含んでいて。

Write Clock Variables (5): The command data field contains a list of
assignments as described above. The clock variables are updated as
indicated. The response is as described for the Read Clock Variables
command.

時計変数(5)を書いてください: コマンドデータ・フィールドは上で説明されるように課題のリストを含んでいます。 示されるように時計変数をアップデートします。 応答がRead Clock Variablesコマンドのために説明されるようにあります。

Set Trap Address/Port (6): The command association identifier, status
and data fields are ignored. The address and port number for subsequent
trap messages are taken from the source address and port of the control
message itself. The initial trap counter for trap response messages is
taken from the sequence field of the command. The response association
identifier, status and data fields are not significant. Implementations
should include sanity timeouts which prevent trap transmissions if the
monitoring program does not renew this information after a lengthy
interval.

トラップ・アドレス/ポート(6)を設定してください: コマンド協会識別子、状態、およびデータ・フィールドは無視されます。 コントロールメッセージ自体のソースアドレスとポートからその後のトラップメッセージのためのアドレスとポートナンバーを取ります。 コマンドの系列分野から罠応答メッセージのための初期の罠カウンタを取ります。 応答協会識別子、状態、およびデータ・フィールドは重要ではありません。 実装は監視プログラムが長い間隔の後にこの情報を更新しないなら罠送信を防ぐ正気タイムアウトを含むべきです。

Trap Response (7): This message is sent when a system, peer or clock
exception event occurs. The opcode field is 7 and the R bit is set. The
trap counter is incremented by one for each trap sent and the sequence
field set to that value. The trap message is sent using the IP address
and port fields established by the set trap address/port command. If a
system trap the association identifier field is set to zero and the
status field contains the system status word. If a peer trap the
association identifier field is set to that peer and the status field
contains the peer status word. Optional ASCII-coded information can be
included in the data field.

罠応答(7): システム、同輩または時計例外イベントが現れるとき、このメッセージを送ります。 opcode分野は7です、そして、Rビットは設定されます。 罠カウンタは送られた各罠あたり1つ増加されました、そして、系列分野はその値にセットしました。 トラップメッセージにセットトラップ・アドレス/ポートコマンドで確立されたIPアドレスとポート分野を使用させます。 システム罠であるなら、協会識別子分野はゼロに設定されます、そして、状態分野はシステム状態語を含んでいます。 同輩罠であるなら、協会識別子分野はその同輩に設定されます、そして、状態分野は同輩状態語を含んでいます。 データ・フィールドに任意のASCII-コード化された情報を含むことができます。

Appendix C. Authentication Issues

付録C.認証問題

NTP robustness requirements are similar to those of other multiple-peer
distributed protocols used for network routing, management and file
access. These include protection from faulty implementations, improper
operation and possibly malicious replay attacks with or without data
modification. These requirements are especially stringent with
distributed protocols, since damage due to failures can propagate
quickly throughout the network, devastating archives, routes and
monitoring systems and even bring down major portions of the network in
the fashion of the classic Internet Worm.

NTP丈夫さ要件はネットワークルーティング、管理、およびファイルアクセスに使用される他の複数の同輩の分配されたプロトコルのものと同様です。 これらはデータ変更のあるなしにかかわらず不完全な実装、不適当な操作、およびことによると悪意がある反射攻撃からの保護を含んでいます。 これらの要件は分配されたプロトコルで特に厳しいです、失敗による損害がアーカイブ、ルート、および監視システムを荒らして、ネットワーク中ですばやく伝播して、古典的なインターネットWormのファッションでネットワークの主要部を降ろすことさえできるので。

The access-control mechanism suggested in the NTP specification responds
to these requirements by limiting access to trusted peers. The various
sanity checks resist most replay and spoofing attacks by discarding old
duplicates and using the originate timestamp as a one-time pad, since it
is unlikely that even a synchronized peer can predict future timestamps
with the precision required on the basis of past observations alone. In
addition, the protocol environment resists jamming attacks by employing
redundant time servers and diverse network paths. Resistance to
stochastic disruptions, actual or manufactured, are minimized by careful
design of the filtering and selection algorithms.

NTP仕様に示されたアクセス管理機構は、アクセスを信じられた同輩に制限することによって、これらの要件に応じます。 古い写しと使用を捨てることによって様々な健全度チェックがほとんどの再生とスプーフィング攻撃に抵抗する、1回のパッドとしてタイムスタンプを溯源してください、連動している同輩さえ精度が過去の観測に基づいて単独で必要な状態で将来のタイムスタンプを予測できるのが、ありそうもないので。 さらに、プロトコル環境は、余分な時間サーバとさまざまのネットワーク経路を使うことによって攻撃を詰め込むのに抵抗します。 推計的な分裂への実際の、または、製造されている抵抗は、フィルタリングと選択アルゴリズムの慎重なデザインによって最小にされます。

However, it is possible that a determined intruder can disrupt
timekeeping operations between peers by subtle modifications of NTP
message data, such as falsifying header fields or certain timestamps. In
cases where protection from even these types of attacks is required, a
specifically engineered message-authentication mechanism based on
cryptographic techniques is necessary. Typical mechanisms involve the
use of cryptographic certificates, algorithms and key media, together
with secure media databases and key-management protocols. Ongoing
research efforts in this area are directed toward developing a standard
methodology that can be used with many protocols, including NTP.
However, while it may eventually be the case that ubiquitous, widely
applicable authentication methodology may be adopted by the Internet
community and effectively overtake the mechanism described here, it does
not appear that specific standards and implementations will happen
within the lifetime of this particular version of NTP.

しかしながら、断固とした侵入者がNTPメッセージデータの微妙な変更で同輩の間の時間保持操作を中断できるのは、可能です、ヘッダーフィールドかあるタイムスタンプを改竄するのなどように。 これらのタイプの攻撃からのさえ保護が必要である場合では、暗号のテクニックに基づく明確に設計された通報認証メカニズムが必要です。 典型的なメカニズムは安全なメディアデータベースとかぎ管理プロトコルと共に暗号の証明書、アルゴリズム、および主要なメディアの使用にかかわります。 この領域の継続中の研究取り組みは多くのプロトコルと共に使用できる標準の方法論を開発するのに向けられます、NTPを含んでいて。 しかしながら、結局、遍在していて、広く適切な認証方法論がインターネットコミュニティによって採用されて、事実上、ここで説明されたメカニズムに追いつくかもしれないのが、事実であるかもしれませんが、特定の規格と実装がNTPのこの特定のバージョンの生涯中に起こるように見えません。

The NTP authentication mechanism described here is intended for interim
use until specific standards and implementations operating at the
network level or transport level are available. Support for this
mechanism is not required in order to conform to the NTP specification
itself. The mechanism, which operates at the application level, is
designed to protect against unauthorized message-stream modification and
misrepresentation of source by insuring that unbroken, authenticated
paths exist between a trusted, stratum-one server in a particular
synchronization subnet and all other servers in that subnet. It employs
a crypto-checksum, computed by the sender and checked by the receiver,
together with a set of predistributed algorithms, certificates and
cryptographic keys indexed by a key identifier included in the message.
However, there are no provisions in NTP itself to distribute or maintain
the certificates, algorithms or keys. These quantities may occasionally
be changed, which may result in inconsistent key information while
rekeying is in progress. The nature of NTP itself is quite tolerant to
such disruptions, so no particular provisions are included to deal with
them.

ネットワークレベルか輸送レベルで作動する特定の規格と実装が利用可能になるまで、ここで説明されたNTP認証機構は当座の使用のために意図します。 このメカニズムのサポートは、NTP仕様自体に従うのに必要ではありません。 メカニズム(アプリケーションレベルで動作する)は、壊れていなくて、認証された経路が特定の同期サブネットにおける層-1つの信じられたサーバと他のすべてのサーバの間にそのサブネットで存在するのを保障することによってソースの権限のないメッセージストリーム変更と誤伝から守るように設計されています。 それはメッセージに主要な識別子を含んでいることによって索引をつけられた1セットの前分配されたアルゴリズム、証明書、および暗号化キーと共に送付者によって計算されて、受信機によってチェックされた暗号チェックサムを使います。 しかしながら、証明書、アルゴリズムまたはキーを配布するか、または維持するために、条項は全くNTP自身にありません。 時折これらの量(「再-合わせ」ることが進行している間、矛盾した主要な情報をもたらすかもしれない)を変えるかもしれません。 NTP自身の自然はそのような分裂にかなり許容性があるので、どんな特定の条項もそれらに対処するために含まれていません。

The intent of the authentication mechanism is to provide a framework
that can be used in conjunction with selected mode combinations to build
specific plans to manage clockworking communities and implement policy
as necessary. It can be selectively enabled or disabled on a per-peer
basis. There is no specific plan proposed to manage the use of such
schemes; although several possibilities are immediately obvious. In one
scenario a group of time servers peers among themselves using symmetric
modes and shares one secret key, say key 1, while another group of
servers peers among themselves using symmetric modes and shares another
secret key, say key 2. Now, assume by policy it is decided that selected
servers in group 1 can provide synchronization to group 2, but not the
other way around. The selected servers in group 1 are given key 2, but
operated only in server mode, so cannot accept synchronization from
group 2; however, group 2 has authenticated access to group-1 servers.
Many other scenarios are possible with suitable combinations of modes
and keys.

認証機構の意図は共同体をclockworkingしながら管理して、必要に応じて政策を実施する特定の計画を建てるのに選択されたモード組み合わせに関連して使用できるフレームワークに提供することです。 1同輩あたり1個のベースでそれを選択的に可能にするか、または無効にすることができます。 そのような体系の使用を管理するために提案されて、どんな特定のプランもありません。 いくつかの可能性がすぐに、明白ですが。 1つのシナリオでは、自分たちの中の時間サーバ同輩のグループが左右対称のモードとシェア1秘密鍵を使用して、主要な1を言ってください、サーバの別のグループは自分たちの中を左右対称のモードを使用することでじっと見て、別の秘密鍵を共有します、と主要な2は言います。 今度は、グループ1における選択されたサーバが2を分類するために同期を提供できると決められると方針で仮定しますが、逆に仮定するというわけではなくなってください。 グループ1における選択されたサーバは主要な2を与えますが、単にサーバモードで作動するのでグループ2から同期を受け入れることができないということです。 しかしながら、グループ2はグループ-1サーバへのアクセスを認証しました。 他の多くのシナリオがモードとキーの適当な組み合わせで可能です。

A packet format and crypto-checksum procedure appropriate for NTP is
specified in the following sections. The cryptographic information is
carried in an authenticator which follows the (unmodified) NTP header
fields. The crypto-checksum procedure uses the Data Encryption Standard
(DES) [NBS77]; however, only the DES encryption algorithm is used and
the decryption algorithm is not necessary. This feature is specifically
targeted toward governmental sensitivities on the export of
cryptographic technology, since the DES decryption algorithm need not be
included in NTP software distributions and thus cannot be extracted and
used in other applications to avoid message data disclosure.

形式と暗号チェックサム手順がNTPのために当てるパケットは以下のセクションで指定されます。 どれが(変更されない)のNTPヘッダーフィールドに続くかという暗号の情報は固有識別文字で運ばれます。 暗号チェックサム手順はデータ暗号化規格(DES)[NBS77]を使用します。 しかしながら、DES暗号化アルゴリズムだけが使用されています、そして、復号化アルゴリズムは必要ではありません。 この特徴は暗号の技術の輸出のときに明確に政府の敏感さに向かって狙います、その結果、メッセージデータ公開を避けるのに他のアプリケーションでDES復号化アルゴリズムをNTPソフトウェア配に含む必要はなくて、抜粋されて、使用できません。

NTP Authentication Mechanism

NTP認証機構

When it is created and possibly at other times, each association is
allocated variables identifying the certificate authority, encryption
algorithm, cryptographic key and possibly other data. The specific
procedures to allocate and initialize these variables are beyond the
scope of this specification, as are the association of the identifiers
and keys and the management and distribution of the keys themselves. For
example and consistency with the conventions of the NTP specification, a
set of appropriate peer and packet variables might include the
following:

それがことによると他の時に作成されるとき、各協会は、認証局を特定する割り当てられた変数と、暗号化アルゴリズムと、暗号化キーとことによると他のデータです。 これらの変数を割り当てて、初期化する特定の手順はこの仕様の範囲を超えています、キー自体の識別子とキーの協会、管理、および分配のように。 そして、例えば、1セットのNTP仕様のコンベンション、適切な同輩、およびパケット変数がある一貫性は以下を含むかもしれません:

Authentication Enabled Bit (peer.authenable): This is a bit indicating
that the association is to operate in the authenticated mode. For
configured peers this bit is determined from the startup environment.
For non-configured peers, this bit is set to one if an arriving message
includes the authenticator and set to zero otherwise.

認証はビット(peer.authenable)を可能にしました: これは、協会が認証されたモードで作動することになっているのを少し示しています。 構成された同輩にとって、このビットは始動環境から決定しています。 非構成された同輩にとって、そうでなければ、到着メッセージが固有識別文字とセットをゼロに含んでいるなら、このビットは1つに設定されます。

Authenticated Bit (peer.authentic): This is a bit indicating that the
last message received from the peer has been correctly authenticated.

認証されたビット(peer.authentic): これは、同輩から受け取られた最後のメッセージが正しく認証されたのを少し示しています。

Key Identifier (peer.hostkeyid, peer.peerkeyid, pkt.keyid): This is an
integer identifying the cryptographic key used to generate the message-
authentication code. The system variable peer.hostkeyid is used for
active associations. The peer.peerkeyid variable is initialized at zero
(unspecified) when the association is mobilized. For purposes of
authentication an unassigned value is interpreted as zero (unspecified).

主要なIdentifier(peer.hostkeyid、peer.peerkeyid、pkt.keyid): これはメッセージ認証がコードであると生成するのにおいて中古の暗号化キーを特定する整数です。 システムの可変peer.hostkeyidは活動的な協会に使用されます。 協会が動員されるとき、peer.peerkeyid変数はゼロで(不特定)で初期化されます。 認証の目的のために、割り当てられなかった値はゼロとして(不特定)で解釈されます。

Cryptographic Keys (sys.key): This is a set of 64-bit DES keys. Each key
is constructed as in the Berkeley Unix distributions, which consists of
eight octets, where the seven low-order bits of each octet correspond to
the DES bits 1-7 and the high-order bit corresponds to the DES odd-
parity bit 8. By convention, the unspecified key 0 (zero), consisting of
eight odd-parity zero octets, is used for testing and presumed known
throughout the NTP community. The remaining keys are distributed using
methods outside the scope of NTP.

暗号化キー(sys.key): これは1セットの64ビットのDESキーです。 各キーはバークレーのUnix配のように組み立てられます(8つの八重奏から成ります)、それぞれの八重奏の7下位のビットがDESビット1-7に対応している、高位のビットがDESの変なパリティビット8に対応しているところで。 不特定の主要な0(ゼロ)、8奇数パリティゼロ八重奏の成ることは、コンベンションによって、テストするのに使用されて、NTP共同体中で知られていると推定されます。 残っているキーは、NTPの範囲の外でメソッドを使用することで分配されています。

Crypto-Checksum (pkt.check): This is a crypto-checksum computed by the
encryption procedure.

暗号チェックサム(pkt.check): これは暗号化手順によって計算された暗号チェックサムです。

The authenticator field consists of two subfields, one consisting of the
pkt.keyid variable and the other the pkt.check variable computed by the
encrypt procedure, which is called by the transmit procedure described
in the NTP specification, and by the decrypt procedure, which is called
by the receive procedure described in the NTP specification. Its
presence is revealed by the fact the total datagram length according to
the UDP header is longer than the NTP message length, which includes the
header plus the data field, if present. For authentication purposes, the
NTP message is zero-padded if necessary to a 64-bit boundary, although
the padding bits are not considered part of the NTP message itself. The
authenticator format shown in Figure 7<$&fig7> has 96 bits, including a
32-bit key identifier and 64-bit crypto-checksum, and is aligned on a
32-bit boundary for efficient computation. Additional information
required in some implementations, such as certificate authority and
encryption algorithm, can be inserted between the (padded) NTP message
and the key identifier, as long as the alignment conditions are met.
Like the authenticator itself, this information is not included in the
crypto-checksum. Use of these data are beyond the scope of this
specification. These conventions may be changed in future as the result
of other standardization activities.

それは、呼ばれます。(それは、呼ばれます)。固有識別文字分野が2つの部分体、pkt.check変数が計算したpkt.keyid変数ともう片方のある成るのから成る、手順を暗号化してください、説明された手順を伝えてください、手順を解読してください、NTP仕様で説明された手順を受けてください。 存在は、UDPヘッダーに従った総データグラムの長さがヘッダーを含んでいるNTPメッセージ長より長いという事実とデータ・フィールドによって明らかにされて、存在しています。 認証目的のために、NTPメッセージは必要なら64ビットの境界に無そっと歩いています、詰め物ビットはNTPメッセージ自体の一部であると考えられませんが。 固有識別文字書式は、図7に>には32ビットの主要な識別子と64ビットの暗号チェックサムを含む96ビットがあるのを<$とfig7に示して、効率的な計算のために32ビットの境界で並べられます。 (そっと歩く)のNTPメッセージと主要な識別子の間に認証局や暗号化アルゴリズムなどのいくつかの実装で必要である追加情報は挿入できます、整列条件が満たされる限り。 固有識別文字自体のように、この情報は暗号チェックサムに含まれていません。 これらのデータの使用はこの仕様の範囲を超えています。 これから、他の標準化活動の結果としてこれらのコンベンションを変えるかもしれません。

NTP Authentication Procedures
When authentication is implemented there are two additional procedures
added to those described in the NTP specification. One of these
(encrypt) constructs the crypto-checksum in transmitted messages, while
the other (decrypt) checks this quantity in received messages. The
procedures use a variant of the cipher-block chaining method described
in [NBS80] as applied to DES. In principal, the procedure is independent
of DES and requires only that the encryption algorithm operate on 64-bit
blocks. While the NTP authentication mechanism specifies the use of DES,
other algorithms could be used by prior arrangement.

認証がそこで実装されるNTP Authentication Procedures WhenはNTP仕様で説明されたものに加えられた2つの追加手順です。 これら(暗号化する)の1つは伝えられたメッセージの暗号チェックサムを構成しますが、もう片方(解読する)が受信されたメッセージでこの量をチェックします。 手順はDESへの適用されるとしての[NBS80]で説明された暗号ブロック連鎖メソッドの異形を使用します。 主体では、手順は、DESから独立していて、暗号化アルゴリズムが64ビットのブロックを作動させるだけであるのを必要とします。 NTP認証機構がDESの使用を指定している間、先のアレンジメントで他のアルゴリズムを使用できるでしょう。

Encrypt Procedure

手順を暗号化してください。

For ordinary NTP messages the encryption procedure operates as follows.
If authentication is not enabled, the procedure simply exits. If the
association is active (modes 1, 3, 5), the key is determined from the
system key identifier. If the association is passive (modes 2, 4) the
key is determined from the peer key identifier, if the authentic bit is
set, or as the default key (zero) otherwise. These conventions allow
further protection against replay attacks and keying errors, as well as
facilitate testing and migration to new versions. The crypto-checksum is
calculated using the 64-bit NTP header and data words, but not the
authenticator or padding bits.

普通のNTPメッセージに関しては、暗号化手順は以下の通り作動します。 認証が可能にされないなら、手順は単に出ます。 協会が活動的であるなら(モード1、3、5)、キーはシステムの主要な識別子から断固としています。 協会が受け身であるなら(モード2、4)、キーは同輩重要識別子から断固としています、正統のビットが別の方法で設定されるか、またはデフォルトキー(ゼロ)としてそうするなら。 これらのコンベンションは、反射攻撃と誤りを合わせないようにさらなる保護を許して、テストと移行を新しいバージョンに容易にします。 暗号チェックサムは、固有識別文字かビットを水増しするのではなく、64ビットのNTPヘッダーとデータ・ワードを使用することで計算されます。

begin encrypt procedure
        if (<$Eroman peer.authenable~=~0>) exit;                /* do
nothing if not enabled */
        if (<$Eroman {peer.hostmode~=~1~bold or~peer.hostmode~=~3~bold
or~peer.hostmode ~=~5}>)
                <$Ekeyid~<<-~roman peer.hostkeyid>;             /*
active modes use system key */
        else
                if (<$Eroman peer.authentic~=~1>)               /*
passive modes use peer key */
                         <$Ekeyid~<<-~roman peer.peerkeyid>;
                else
                         <$Ekeyid~<<-~0>;                       /*
unauthenticated use key 0 */
        <$Etemp~<<-~0>;                                 /* calculate
crypto-checksum */
        for (each 64-bit header and data word) begin
                <$Etemp~<<-~temp~roman bold xor~word>;
                <$Etemp~<<-~roman DES (temp,~keyid)>;
                endfor;
        <$Eroman pkt.keyid~<<-~keyid>;                          /*
insert packet variables */
        <$Eroman pkt.check~<<-~temp>;
        end encrypt procedure;

始まってください。(<のEroman peer.authenable~=~0ドルの>)出口であるなら手順を暗号化してください。 /*は(<Eroman peer.hostmode~=~1~大胆さか~peer.hostmode~=~3~大胆さか~peer.hostmode~=~5ドル>)<$Ekeyid~<<-~ローマン体のpeer.hostkeyid>であるなら無か可能にされた*/をします。 (<のEroman peer.authentic~=~1ドルの>)/*受け身の形態が同輩の主要な*/<$のEkeyid~<<-~ローマン体のpeer.peerkeyid>を使用するなら、/*アクティブなモードは*/ほかのシステムキーを使用します。 ほかの<$、Ekeyid~<<~0>。 *が非認証した/は主要な0*/<ドルのEtemp~<<~0>を使用します。 /*は、(各64ビットのヘッダーとデータ・ワード)のための暗号チェックサム*/が<$のEtemp~<<-~臨時~ローマン体の大胆なxor~単語>を始めると見込みます。 <$Etemp~<<-~ローマン体のDES(臨時、~keyid)>。 endfor。 <$Eroman pkt.keyid~<<-~keyid>。 /*差し込みパケット変数*/<$Eroman pkt.check~<<-~臨時>。 終わりは手順を暗号化します。

Decrypt Procedure

手順を解読してください。

For ordinary messages the decryption procedure operates as follows. If
the peer is not configured, the data portion of the message is inspected
to determine if the authenticator fields are present. If so,
authentication is enabled; otherwise, it is disabled. If authentication
is enabled and the authenticator fields are present and the crypto-
checksum succeeds, the authentication bit is set to one; otherwise, it
is set to zero.

普通のメッセージに関しては、復号化手順は以下の通り作動します。 同輩が構成されないなら、メッセージのデータ部は、固有識別文字分野が存在しているかどうか決定するために点検されます。 そうだとすれば、認証は可能にされます。 さもなければ、それは障害があります。 認証が可能にされて、固有識別文字分野が存在していて、暗号チェックサムが成功するなら、認証ビットは1つに設定されます。 さもなければ、それはゼロに設定されます。

begin decrypt procedure
        <$Eroman peer.authentic~<<-~0>;
        if (<$Eroman peer.config~=~0>)                          /* if
not configured, enable per packet */
                if (authenticator present)
                        <$Eroman peer.authenable~<<-~1>;
                else
                        <$Eroman peer.authenable~<<-~0>;
        if (<$Eroman peer.authenable~=~0> or authenticator not present))
exit;
        <$Eroman {peer.peerkeyid~<<-~pkt.keyid}>;               /* use
peer key */
        <$Etemp~<<-~0>;                                 /* calculate
crypto-checksum */
        for (each 64-bit header and data word) begin
                <$Etemp~<<-~temp~roman bold xor~word>;
                <$Etemp~<<-~roman DES (temp,~roman peer.peerkeyid)>;
                endfor;
        if (temp == pkt.check) <$Eroman peer.authentic~<<-~1>;  /*
declare result */
        end decrypt procedure;

始まってください。手順<$がEroman peer.authentic~<<~0>であると解読してください。 *(<のEroman peer.config~=~0ドルの>)/であり、(固有識別文字プレゼント)<$Eroman peer.authenable~<<~1>であり、構成されないなら、パケット*単位で/を可能にしてください。 ほかの<$、Eroman peer.authenable~<<~0>。 (現在でない~0の>か<$Eroman peer.authenable~=固有識別文字)であるなら、出てください。 <$がpeer.peerkeyid~<<-~pkt.keyidをEromanする、>。 /*が同輩の主要な*/<$Etemp~<<-~、を使用する、0>。 /*は、(各64ビットのヘッダーとデータ・ワード)のための暗号チェックサム*/が<$のEtemp~<<-~臨時~ローマン体の大胆なxor~単語>を始めると見込みます。 <$Etemp~<<-~ローマン体のDES(臨時、~ローマン体のpeer.peerkeyid)>。 endfor。 (臨時=pkt.check)です。 <$、Eroman peer.authentic~<<~1>。 /*は、結果*/終わりが手順を解読すると宣言します。

Control-Message Procedures

コントロールメッセージ手順

In anticipation that the functions provided by the NTP control messages
will eventually be subsumed by a comprehensive network-managment
function, the peer variables are not used for control message
authentication. If an NTP command message is received with an
authenticator field, the crypto-checksum is computed as in the decrypt
procedure and the response message includes the authenticator field as
computed by the encrypt procedure. If the received authenticator is
correct, the key for the response is the same as in the command;
otherwise, the default key (zero) is used. Commands causing a change to
the peer data base, such as the write variables and set trap
address/port commands, must be correctly authenticated; however, the
remaining commands are normally not authenticated in order to minimize
the encryption overhead.

機能がNTPで提供した予期では、コントロールメッセージは結局包括的なネットワーク-managment機能によって包括されて、同輩変数はコントロール通報認証に使用されません。 固有識別文字分野でNTPコマンドメッセージを受け取るなら、同じくらい中で暗号チェックサムを計算する、手順を解読してください。そうすれば、応答メッセージが計算されるように固有識別文字分野を含んでいる、手順を暗号化してください。 容認された固有識別文字が正しいなら、応答のためのキーはコマンドと同じです。 さもなければ、デフォルトキー(ゼロ)は使用されています。 aを引き起こすコマンドが同輩データベースに変化します、あれほど、変数と設定トラップ・アドレス/ポートコマンドを書いて、正しく認証しなければなりません。 しかしながら、通常、残っているコマンドは、暗号化オーバーヘッドを最小にするために認証されません。

Appendix D. Differences from Previous Versions.

旧バージョンからの付録D.差。

The original NTP, later called NTP Version 0, was described in RFC-958
[MIL85c]. Subsequently, Version 0 was superseded by Version 1 (RFC-1059
[MIL88a]), and Version 2 (RFC-1119 [MIL89]. The Version-2 description
was split into two documents, RFC-1119 defining the architecture and
specifying the protocol and algorithms, and another [MIL90b] describing
the service model, algorithmic analysis and operating experience. In
previous versions these two objectives were combined in one document.
While the architecture assumed in Version 3 is identical to Version 2,
the protocols and algorithms differ in minor ways. Differences between
NTP Version 3 and previous versions are described in this Appendix. Due
to known bugs in very old implementations, continued support for
Version-0 implementations is not recommended. It is recommended that new
implementations follow the guidelines below when interoperating with
older implementations.

オリジナルの後でNTPバージョン0と呼ばれたNTPはRFC-958[MIL85c]で説明されました。 バージョン-2記述は2通のドキュメント、アーキテクチャを定義して、プロトコルとアルゴリズムを指定するRFC-1119、およびサービスモデル、アルゴリズム的解析、および運転経験について説明する別のMIL90bに分けられました。次にバージョン0がバージョン1によって取って代わられた、(RFC-1059 MIL88a)、およびバージョン2、(RFC-1119 MIL89旧バージョンではこれらの2つの目的が1通のドキュメントで結合されました; バージョン3で想定されたアーキテクチャがバージョン2と同じである間、プロトコルとアルゴリズムは小さい方の道において異なります。NTPバージョン3と旧バージョンの違いはこのAppendixで説明されます。非常に古い実装における知られているバグのため、バージョン-0つの実装の継続的なサポートは推薦されません。より古い実装で共同利用するとき、新しい実装が以下のガイドラインに従うのは、お勧めです。

Version 3 neither changes the protocol in any significant way nor
obsoletes previous versions or existing implementations. The main
motivation for the new version is to refine the analysis and
implementation models for new applications at much higher network speeds
to the gigabit-per-second regime and to provide for the enhanced
stability, accuracy and precision required at such speeds. In
particular, the sources of time and frequency errors have been
rigorously examined and error bounds established in order to improve
performance, provide a model for correctness assertions and indicate
timekeeping quality to the user. Version 3 also incorporates two new
optional features, (1) an algorithm to combine the offsets of a number
of peer time servers in order to enhance accuracy and (2) improved
local-clock algorithms which allow the poll intervals on all
synchronization paths to be substantially increased in order to reduce
network overhead. Following is a summary of previous versions of the
protocol together with details of the Version 3 changes.

バージョン3は、どんな重要な方法でもプロトコルを変えないで、また前のバージョンか既存の実装を時代遅れにしません。 新しいバージョンに関する主な動機は、新しいアプリケーションのためにはるかに高いネットワーク速度で1秒あたりのギガビット政権に分析と実装モデルを洗練して、高められた安定性に備えることです、精度と精度はそのような速度で必要としました。 特に正当性主張にモデルを提供して、時間保持品質をユーザに示すように時間と頻度誤りの源はきびしく調べさせて、誤り領域は、性能を向上させるために確証しました。 また、バージョン3は、精度とネットワークオーバーヘッドを下げるためにすべての同期経路の投票間隔がかなり増強されるのを許容する(2)の改良された地方の時計アルゴリズムを高めるために多くの同輩時間サーバのオフセットを結合するために(1) 2つの新しいオプション機能、アルゴリズムを取り入れます。 以下に、プロトコルの旧バージョンの概要がバージョン3変化の細部と共にあります。

1.
Version 1 supports no modes other than symmetric-active and symmetric-
passive, which are determined by inspecting the port-number fields of
the UDP packet header. The peer mode can be determined explicitly from
the packet-mode variable (pkt.mode) if it is nonzero and implicitly from
the source port (pkt.peerport) and destination port (pkt.hostport)
variables if it is zero. For the case where pkt.mode is zero the mode is
determined as follows:

1. バージョン1は左右対称にアクティブで左右対称の受動態以外のモードを全くサポートしません。受動態は、UDPパケットのヘッダーのポートナンバー分野を点検することによって、決定します。 同輩モードはそれがゼロであるならそれとなくソースポート(pkt.peerport)と仕向港(pkt.hostport)変数からの非零であるならパケット形態変数(pkt.mode)から明らかに決定できます。 pkt.modeがゼロであるケースにおいて、モードは以下の通り決定しています:

@Z_TBL_BEG = COLUMNS(3), DIMENSION(IN), WIDTH(5.0000), ABOVE(.1670),
BELOW(.0830), HGUTTER(.3330), BOX(Z_SINGLE), KEEP(ON), ALIGN(CT),
L1(R1C0..R1C3)

@Z_L1、TBL_は=コラム(3)、寸法(IN)、幅(5.0000)、上(.1670)、下(.0830)を請って、HGUTTER(.3330)(箱(Z_シングル)、生活費(ON))は(コネチカット)を並べます。(R1C0..R1C3)

@Z_TBL_BODY = TABLE HEADER, TABLE HEADER, TABLE HEADER

@Z_TBL_ボディー=テーブルヘッダー、テーブルヘッダーはヘッダーをテーブルの上に置きます。

pkt.peerport, pkt.hostport, Mode

pkt.peerport、pkt.hostport、Mode

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルテキスト、テーブルテキストはテキストを見送ります。

NTP.PORT, NTP.PORT, symmetric active

NTP.PORT、NTP.PORT、左右対称の能動態

NTP.PORT, not NTP.PORT, server

NTP.PORT、サーバではなく、NTP.PORT

not NTP.PORT, NTP.PORT, client

NTP.PORT、NTP.PORT、クライアントでない

@Z_TBL_BODY = TABLE HEADER, TABLE HEADER, TABLE HEADER

@Z_TBL_ボディー=テーブルヘッダー、テーブルヘッダーはヘッダーをテーブルの上に置きます。

not NTP.PORT, not NTP.PORT, not possible

NTP.PORTではなく、可能でないNTP.PORTでない

@Z_TBL_END =

@Z_TBL_終わり=

Note that it is not possible in this case to distinguish between
symmetric active and symmetric passive modes. Use of the pkt.mode and
NTP.PORT variables in this way is not recommended and may not be
supported in future versions of the protocol. The low-order three bits
of the first octet, specified as zero in Version 1, are used for the
mode field in Version 2. Version-2 and Version-3 implementations
interoperating with Version-1 implementations should operate in a
passive mode only and use the value one in the version number
(pkt.version) field and zero in the mode (pkt.mode) field in transmitted
messages.

左右対称のアクティブで左右対称の受け身の形態を見分けるのがこの場合可能でないことに注意してください。 このようにおけるpkt.modeとNTP.PORT変数の使用は、推薦されないで、またプロトコルの将来のバージョンでサポートされないかもしれません。 最初の八重奏の下位のゼロとしてバージョン1で指定された3ビットはバージョン2におけるモード分野に使用されます。 バージョン-1実装で共同利用するバージョン-2とバージョン-3つの実装が、受け身の形態だけで作動して、伝えられたメッセージでモード(pkt.mode)分野でバージョン番号(pkt.version)分野とゼロにおける値1を使用するべきです。

2.

2.

Version 1 does not support the NTP control message described in Appendix
B. Certain old versions of the Unix NTP daemon ntpd use the high-order
bits of the stratum field (pkt.stratum) for control and monitoring
purposes. While these bits are never set during normal Version-1,
Version-2 or Version-3 operations, new implementations may use the NTP
reserved mode 6 described in Appendix B and/or private reserved mode 7
for special purposes, such as remote control and monitoring, and in such
cases the format of the packet following the first octet can be
arbitrary. While there is no guarantee that different implementations
can interoperate using private reserved mode 7, it is recommended that
vanilla ASCII format be used whenever possible.

バージョン1はコントロールとモニターしている目的のために層の高位のビットがさばくUnix NTPデーモンntpd使用(pkt.stratum)のAppendixのB.のCertainの古いバージョンで説明されたNTPコントロールメッセージをサポートしません。 これらのビットが正常なバージョン-1、バージョン-2またはバージョン-3つの操作の間、設定されている間、新しい実装はAppendix Bで説明されたNTPの予約されたモード6を決して使用しないかもしれません、そして、特別な目的のための遠隔操作やモニターなどの個人的な予約されたモード7、およびそのような場合最初の八重奏に続くパケットの形式は任意である場合があります。 異なった実装が個人的な予約されたモード7を使用することで共同利用できるという保証が全くありませんが、可能であるときはいつも、バニラASCII形式が使用されるのは、お勧めです。

3.

3.

Version 1 does not support authentication. The key identifiers,
cryptographic keys and procedures described in Appendix C are new to
Version 2 and continued in Version 3, along with the corresponding
variables, procedures and authenticator fields. In the NTP message
described in Appendix A and NTP control message described in Appendix B
the format and contents of the header fields are independent of the
authentication mechanism and the authenticator itself follows the header
fields, so that previous versions will ignore the authenticator.

バージョン1は認証を支持しません。 Appendix Cで説明された主要な識別子、暗号化キー、および手順は、バージョン2に新しくバージョン3で継続的です、対応する変数、手順、および固有識別文字分野と共に。 Appendix Aで説明されたNTPメッセージとAppendix Bで説明されたNTPコントロールメッセージでは、ヘッダーフィールドの形式とコンテンツは認証機構から独立しています、そして、固有識別文字自体はヘッダーフィールドに続きます、旧バージョンが固有識別文字を無視するように。

4.

4.

In Version 1 the total dispersion (pkt.rootdispersion) field of the NTP
header was called the estimated drift rate, but not used in the protocol
or timekeeping procedures. Implementations of the Version-1 protocol
typically set this field to the current value of the skew-compensation
register, which is a signed quantity. In a Version 2 implementation
apparent large values in this field may affect the order considered in
the clock-selection procedure. Version-2 and Version-3 implementations
interoperating with older implementations should assume this field is
zero, regardless of its actual contents.

バージョン1では、NTPヘッダーの総分散(pkt.rootdispersion)分野は、およそドリフト項と呼ばれましたが、プロトコルか時間保持手順で使用されませんでした。 バージョン-1プロトコルの実現は斜行補償レジスタの現行価値にこの分野を通常設定します。(レジスタはサインされた量です)。 バージョン2では、この分野の実現の見かけの大きい値は時計選択手順で考えられたオーダーに影響するかもしれません。 より古い実現で共同利用するバージョン-2とバージョン-3つの実現が、実際のコンテンツにかかわらずこの分野がゼロであると仮定するべきです。

5.

5.

Version 2 and Version 3 incorporate several sanity checks designed to
avoid disruptions due to unsynchronized, duplicate or bogus timestamp
information. The checks in Version 3 are specifically designed to detect
lost or duplicate packets and resist invalid timestamps. The leap-
indicator bits are set to show the unsynchronized state if updates are
not received from a reference source for a considerable time or if the
reference source has not received updates for a considerable time. Some
Version-1 implementations could claim valid synchronization indefinitely
following loss of the reference source.

バージョン2とバージョン3は非連動したか、写しの、または、にせのタイムスタンプ情報による分裂を避けるように設計されたいくつかの健全度チェックを取り入れます。 バージョン3におけるチェックは、無くなるか写しパケットを検出して、無効のタイムスタンプに抵抗するように明確に設計されています。 飛躍インディケータビットが、かなり長い間か照合線源がかなり長い間アップデートを受けていないならアップデートが照合線源から受けられないかどうかを非連動している状態に案内するように設定されます。 いくつかのバージョン-1実現が、有効な同期が照合線源の無期限に次の損失であると主張するかもしれません。

6.

6.

The clock-selection procedure of Version 2 was considerably refined as
the result of accumulated experience with the Version-1 implementation.
Additional sanity checks are included for authentication, range bounds
and to avoid use of very old data. The candidate list is sorted twice,
once to select a relatively few robust candidates from a potentially
large population of unruly peers and again to order the resulting list
by measurement quality. As in Version 1, The final selection procedure
repeatedly casts out outlyers on the basis of weighted dispersion.

バージョン2の時計選択手順はバージョン-1実現の蓄積した経験の結果としてかなり洗練されました。 追加健全度チェックは、認証、範囲領域、非常に古いデータの使用を避けるために含まれています。 候補リストは、一度測定品質で結果として起こるリストを注文するために再び手に負えない同輩の潜在的に大きい人口から比較的わずかな強健な候補しか選ばないように二度分類されます。 バージョン1のように、最終的な選択手順は荷重している分散に基づいて繰り返してoutlyersを捨てます。

7.

7.

The local-clock procedure of Version 2 were considerably improved over
Version 1 as the result of analysis, simulation and experience. Checks
have been added to warn that the oscillator has gone too long without
update from a reference source. The compliance register has been added
to improve frequency stability to the order of a millisecond per day.
The various parameters were retuned for optimum loop stability using
measured data over typical Internet paths and with typical local-clock
hardware. In version 3 the phase-lock loop model was further refined to
provide an adaptive-bandwidth feature that automatically adjusts for the
inherent stabilities of the reference clock and local clock while
providing optimum loop stability in each case.

バージョン2の地方の時計手順は分析、シミュレーション、および経験の結果としてバージョン1の上でかなり改良されています。 チェックは、また、振動子が照合線源からアップデートなしで強気に出たと警告するために加えられます。 承諾レジスタは、1日あたり1ミリセカンドの注文に頻度の安定性を改良するために加えられます。 様々なパラメタは、最適な輪の安定性のために典型的なインターネット経路と典型的な地方の時計ハードウェアがある測定データを使用することで再調整されました。 バージョン3では、フェーズ・ロックループ・モデルは、基準クロックと地方の時計の固有の安定性のためにその都度最適な輪の安定性を提供している間に自動的に適応する適応型の帯域幅の特徴を提供するためにさらに洗練されました。

8.

8.

Problems in the timekeeping calculations of Version 1 with high-speed
LANs were found and corrected in Version 2. These were caused by jitter
due to small differences in clock rates and different precisions between
the peers. Subtle bugs in the Version-1 reachability and polling-rate
control were found and corrected. The peer.valid and sys.hold variables
were added to avoid instabilities when the reference source changes
rapidly due to large dispersive delays under conditions of severe
network congestion. The peer.config, peer.authenable and peer.authentic
bits were added to control special features and simplify configuration.

高速LANとのバージョン1の時間保持計算における問題は、バージョン2で見つけられて、修正されました。 これらはクロックレートの小さい違いと同輩の間の異なった確度によるジターによって引き起こされました。 バージョン-1の可到達性と世論調査速度制御における微妙なバグは、見つけられて、修正されました。 peer.validとsys.hold変数は、照合線源が大きい分散的な遅れのため厳しいネットワークの混雑に関する条件のもとで急速に変化するとき、不安定性を避けるために加えられました。 peer.config、peer.authenable、およびpeer.authenticビットは、特徴を制御して、構成を簡素化するために加えられました。

9.

9.

In Version 3 The local-clock algorithm has been overhauled to improve
stability and accuracy. Appendix G presents a detailed mathematical
model and design example which has been refined with the aid of
feedback-control analysis and extensive simulation using data collected
over ordinary Internet paths. Section 5 of RFC-1119 on the NTP local
clock has been completely rewritten to describe the new algorithm. Since
the new algorithm can result in message rates far below the old ones, it
is highly recommended that they be used in new implementations. Note
that this algorithm is not integral to the NTP protocol specification
itself and its use does not affect interoperability with previous
versions or existing implementations; however, in order to insure
overall NTP subnet stability in the Internet, it is essential that the
local-clock characteristics of all NTP time servers conform to the
analytical models presented previously and in this document.

バージョン3では、安定性と精度を改良するために地方の時計アルゴリズムをオーバーホールしてあります。 付録Gは、普通のインターネット経路の上に集められたデータを使用することで詳細な数学的モデル、フィードバック制御分析の援助で洗練されたデザインの例、および大規模なシミュレーションを提示します。 NTPの地方の時計の上のRFC-1119のセクション5は、新しいアルゴリズムを説明するために完全に書き直されました。 新しいアルゴリズムが遠くに古い方でメッセージレートをもたらすことができるので、それらが新しい実現に使用されるのは、非常にお勧めです。 このアルゴリズムがNTPプロトコル仕様自体に不可欠でなく、また使用が前のバージョンか既存の実現で相互運用性に影響しないことに注意してください。 しかしながら、インターネットで総合的なNTPサブネットの安定性を保障するために、すべてのNTP時間サーバの地方の時計の特性が以前に、本書では提示された分析モデルに従うのは、不可欠です。

10.

10.

In Version 3 a new algorithm to combine the offsets of a number of peer
time servers is presented in Appendix F. This algorithm is modelled on
those used by national standards laboratories to combine the weighted
offsets from a number of standard clocks to construct a synthetic
laboratory timescale more accurate than that of any clock separately. It
can be used in an NTP implementation to improve accuracy and stability
and reduce errors due to asymmetric paths in the Internet. The new
algorithm has been simulated using data collected over ordinary Internet
paths and, along with the new local-clock algorithm, implemented and
tested in the Fuzzball time servers now running in the Internet. Note
that this algorithm is not integral to the NTP protocol specification
itself and its use does not affect interoperability with previous
versions or existing implementations.

バージョン3では、多くの同輩時間サーバのオフセットを結合する新しいアルゴリズムはAppendix F.に提示されます。別々にどんな時計のものよりも正確な合成の実験室スケールを構成するために多くの標準の時計から荷重しているオフセットを結合するのに国家規格実験室によって使用されたものはThisアルゴリズムに似せられます。 インターネットで精度と安定性を改良して、非対称の経路による誤りを抑えるのにNTP実現にそれを使用できます。 新しいアルゴリズムは、インターネットへ駆け込みながら、普通のインターネット経路の上に集められて、新しい地方の時計アルゴリズムと共に実行されて、今Fuzzball時間サーバでテストされたデータを使用することでシミュレートされました。 このアルゴリズムがNTPプロトコル仕様自体に不可欠でなく、また使用が前のバージョンか既存の実現で相互運用性に影響しないことに注意してください。

11.

11.

Several inconsistencies and minor errors in previous versions have been
corrected in Version 3. The description of the procedures has been
rewritten in pseudo-code augmented by English commentary for clarity and
to avoid ambiguity. Appendix I has been added to illustrate C-language
implementations of the various filtering and selection algorithms
suggested for NTP. Additional information is included in Section 5 and
in Appendix E, which includes the tutorial material formerly included in
Section 2 of RFC-1119, as well as much new material clarifying the
interpretation of timescales and leap seconds.

バージョン3で旧バージョンではいくつかの矛盾と軽い過失を修正してあります。 手順の記述は明快、あいまいさを避けるためにイギリスの論評で増大する中間コードで書き直されました。 私が追加された付録はNTPのために示された様々なフィルタリングと選択アルゴリズムのC言語実現を例証します。 追加情報はセクション5とAppendix Eに含まれています、スケールと飛躍秒の解釈をはっきりさせる多量の新素材と同様に。(Appendixは以前RFC-1119のセクション2に含まれていた家庭教師の材料を含んでいます)。

12.

12.

Minor changes have been made in the Version-3 local-clock algorithms to
avoid problems observed when leap seconds are introduced in the UTC
timescale and also to support an auxiliary precision oscillator, such as
a cesium clock or timing receiver, as a precision timebase. In addition,
changes were made to some procedures described in Section 3 and in the
clock-filter and clock-selection procedures described in Section 4.
While these changes were made to correct minor bugs found as the result
of experience and are recommended for new implementations, they do not
affect interoperability with previous versions or existing
implementations in other than minor ways (at least until the next leap
second).

マイナーチェンジはUTCスケールで飛躍秒を導入すると観測していた状態で問題を避けて、また、補助の精度振動子を支えるのがバージョン-3つの地方の時計アルゴリズムで作られています、セシウム時計やタイミング受信機のように、精度timebaseとして。 さらに、変更をセクション3と時計フィルタで説明されたいくつかの手順とセクション4で説明された時計選択手順にしました。 これらの変更が経験の結果として見つけられた小さい方のバグを修正すると行われて、新しい実現のために推薦されている間、小さい方の道(少なくとも次の閏秒までの)以外に、中に前のバージョンか既存の実現がある状態で、それらは相互運用性に影響しません。

13.

13.

In Version 3 changes were made to the way delay, offset and dispersion
are defined, calculated and processed in order to reliably bound the
errors inherent in the time-transfer procedures. In particular, the
error accumulations were moved from the delay computation to the
dispersion computation and both included in the clock filter and
selection procedures. The clock-selection procedure was modified to
remove the first of the two sorting/discarding steps and replace with an
algorithm first proposed by Marzullo and later incorporated in the
Digital Time Service. These changes do not significantly affect the
ordinary operation of or compatibility with various versions of NTP, but
they do provide the basis for formal statements of correctness as
described in Appendix H.

バージョン3変化では、時間転送手順に固有の誤りは、確かにバウンドするように遅れ、オフセット、および分散が定義されるように作られて、計算して、処理されていました。 エラー蓄積は、特に、遅れ計算から分散計算まで動かされて、時計フィルタと選択手順にともに含まれていました。 時計選択手順は、2ソーティング/捨てるステップの1番目を移して、Time Serviceを最初にDigitalで組み込んでいるMarzullo以降によって提案されるアルゴリズムに取り替えるように変更されました。 または、これらの変化が普通の操作にかなり影響しない、NTPの様々なバージョンとの互換性、それらだけがAppendix Hで説明されるように正当性の正式な声明の基礎を提供します。

Appendix E. The NTP Timescale and its Chronometry

付録E.は、NTP TimescaleとそのChronometryです。

Introduction

序論

Following is an extended discussion on computer network chronometry,
which is the precise determination of computer time and frequency
relative to international standards and the determination of
conventional civil time and date according to the modern calendar. It
describes the methods conventionally used to establish civil time and
date and the various timescales now in use. In particular, it
characterizes the Network Time Protocol (NTP) timescale relative to the
Coordinated Universal Time (UTC) timescale, and establishes the precise
interpretation of UTC leap seconds in NTP.

以下に、コンピュータネットワーク時刻測定の長い討論があります。(時刻測定は、世界規格に比例したコンピュータ時間と頻度の正確な決断と現代のカレンダーに従った従来の民間日時の決断です)。 それは民間日時を証明するのに慣習上使用される方法と現在使用中の様々なスケールについて説明します。 それは、特に、協定世界時(UTC)のスケールに比例してNetwork Timeプロトコル(NTP)スケールを特徴付けて、UTC飛躍秒の正確な解釈をNTPに確立します。

In the following discussion the terms time, oscillator, clock, epoch,
calendar, date and timescale are used in a technical sense. Strictly
speaking, the time of an event is an abstraction which determines the
ordering of events in some given frame of reference. An oscillator is a
generator capable of precise frequency (relative to the given frame of
reference) to a specified tolerance. A clock is an oscillator together
with a counter which records the (fractional) number of cycles since
being initialized with a given value at a given time. The value of the
counter at any given time is called its epoch at that time. In general,
epoches are not continuous and depend on the precision of the counter.

以下の議論では、用語時間、振動子、時計、時代、カレンダー、日付、およびスケールは技術的な意味で使用されます。 厳密に言うと、出来事の時間は何らかの与えられた基準系における出来事の注文を決定する抽象化です。 振動子は正確な頻度(与えられた基準系に比例した)が指定された寛容にできるジェネレータです。 一時に与えられた値で初期化されるので(断片的)の繰返し数を記録するカウンタと共に時計は振動子です。 時代はその時、その時々でカウンタの値に呼ばれます。 一般に、epochesは連続していなくて、カウンタの精度に依存します。

A calendar is a mapping from epoch in some frame of reference to the
times and dates used in everyday life. Since multiple calendars are in
use today and sometimes disagree on the dating of the same events in the
past, the chronometry of past and present events is an art practiced by
historians. One of the goals of this discussion is to provide a standard
chronometry for precision dating of present and future events in a
global networking community. To synchronize frequency means to adjust
the oscillators in the network to run at the same frequency, to
synchronize time means to set the clocks so that all agree at a
particular epoch with respect to UTC, as provided by international
standards, and to synchronize clocks means to synchronize them in both
frequency and time.

日常生活に使用される何らかの基準系の新紀元から回と日付までカレンダーはマッピングです。 複数のカレンダーが今日、使用中であり、過去に時々同じ出来事のデートについて意見が異なるので、過去の、そして、現在の出来事の時刻測定は歴史家によって実施された芸術です。 この議論の目標の1つはグローバルなネットワーク共同体の現在の、そして、将来の出来事の精度デートのための標準の時刻測定を提供することです。 頻度を同期させるのは、同じ頻度で経営しているネットワークで振動子を調整することを意味します、そして、連動するように、時間が、時計を設定することを意味するので、すべてが特定の時代に国際的な基準からすると提供するようにUTCに関して同意します、そして、時計を連動させるのは頻度と時間の両方でそれらを連動させることを意味します。

In order to synchronize clocks, there must be some way to directly or
indirectly compare them in time and frequency. The ultimate frame of
reference for our world consists of the cosmic oscillators: the Sun,
Moon and other galactic orbiters. Since the frequencies of these
oscillators are relatively unstable and not known exactly, the ultimate
reference standard oscillator has been chosen by international agreement
as a synthesis of many observations of an atomic transition of exquisite
stability. The epoches of each heavenly and Earthbound oscillator
defines a distinctive timescale, not necessarily always continuous,
relative to the standard oscillator. Another goal of this presentation
is to describe a standard chronometry to rationalize conventional
computer time and UTC; in particular, how to handle leap seconds.

時計を連動させるように、時間内に直接か間接的にそれらを比較する何らかの方法と頻度があるに違いありません。 私たちの世界への究極の基準系は宇宙振動子から成ります: 太陽、月、および他の巨大な周回機。 これらの振動子の頻度が比較的不安定でまさに知られないので、究極の基準ゲージ振動子は絶妙の安定性の原子変遷の多くの観測の統合として国際協定で選ばれました。 それぞれの天とEarthbound振動子のepochesは特有のスケールを定義します、必ずいつも連続しているというわけではありません、標準の振動子に比例して。 このプレゼンテーションの別の目標は従来のコンピュータ時間とUTCを合理化するために標準の時刻測定を説明することです。 特に飛躍秒を扱う方法。

Primary Frequency and Time Standards

一次周波数と時間規格

A primary frequency standard is an oscillator that can maintain
extremely precise frequency relative to a physical phenomenon, such as a
transition in the orbital states of an electron. Presently available
atomic oscillators are based on the transitions of the hydrogen, cesium
and rubidium atoms. Table 7<$&tab7> shows the characteristics for
typical oscillators of these types compared with those for various types
of quartz-crystal oscillators found in electronic equipment. For reasons
of cost and robustness cesium oscillators are used worldwide for
national primary frequency standards. On the other hand, local clocks
used in computing equipment almost always are designed with
uncompensated crystal oscillators.

一次周波数標準は物理的な現象に比例して非常に正確な頻度を維持できる振動子です、電子の軌道の州の変遷のように。 現在利用可能な原子力振動子は水素、セシウム、およびルビジウム原子の変遷に基づいています。>がタイプするのをこれらの典型的な振動子のための特性に示すテーブル7<$とtab7は電子装置で見つけられた様々なタイプの水晶発振器のためのそれらと比較されました。 費用と丈夫さの理由で、セシウム振動子は国家の一次周波数標準に世界中で使用されます。 他方では、計算装置で使用される地方の時計はほとんどいつも非代償された水晶発振器で設計されています。

For the three atomic oscillators listed in Table 7 the drift/aging
column shows the maximum offset per day from nominal standard frequency
due to systematic mechanical and electrical characteristics. In the case
of crystal oscillators this offset is not constant, which results in a
gradual change in frequency with time, called aging. Even if a crystal
oscillator is temperature compensated by some means, it must be
periodically compared to a primary standard in order to maintain the
highest accuracy. For all types of oscillators the stability column
shows the maximum variation in frequency per day due to circuit noise
and environmental factors.

Table7に記載された3個の原子力振動子に関しては、ドリフト/古いコラムは系統的な機械的で電気の特性のため名目上の標準の頻度から1日あたりの最大のオフセットを示しています。 水晶発振器の場合では、このオフセットは定数(時間でゆるやかな周波数の変化をもたらす)が、年をとると呼んだということではありません。 水晶発振器がどうでも代償された温度であっても、最も高い精度を維持するために定期的にそれを原器と比較しなければなりません。 すべてのタイプの振動子に関しては、安定性コラムはサーキット雑音と環境要因のため1日あたりの頻度の最大の変化を示しています。

As the telephone networks of the world are evolving rapidly to digital
technology, consideration should be given to the methods used for
frequency synchronization in digital networks. A network of clocks in
which each oscillator is phase-locked to a single frequency standard is
called isochronous, while a network in which some oscillators are phase-
locked to different master oscillators, but with the master oscillators
closely synchronized in frequency (not necessarily phase locked), to a
single frequency standard is called plesiochronous. In plesiochronous
systems the phase of some oscillators can slip relative to others and
cause occasional data errors in synchronous transmission systems.

世界の電話網がデジタル技術に急速に発達しているとき、ディジタル通信網における頻度同期に使用される方法に対して考慮を払うべきです。 それぞれの振動子がフェーズによってただ一つの頻度規格に固定されている時計のネットワークは同一時間であると呼ばれます、いくつかの振動子がフェーズであるネットワークは、異なったマスター振動子にロックしますが、頻度(必ずどんなフェーズもロックされなかった)で密接にただ一つの頻度規格に連動するマスター振動子でplesiochronousと呼ばれますが。 plesiochronousシステムでは、いくつかの振動子のフェーズは他のものと原因に比例して同期転送システムにおける時々のデータ誤りを滑らせることができます。

The industry has agreed on a classification of clock oscillators as a
function of minimum accuracy, minimum stability and other factors
[ALL74a]. There are three factors which determine the classification:
stability, jitter and wander. Stability refers to the systematic
variation of frequency with time and is synonymous with aging, drift,
trends, etc. Jitter (also called timing jitter) refers to short-term
variations in frequency with components greater than 10 Hz, while wander
refers to long-term variations in frequency with components less than 10
Hz. The classification determines the oscillator stratum (not to be
confused with the NTP stratum), with the more accurate oscillators
assigned the lower strata and less accurate oscillators the higher
strata:

産業は最小の精度、最小の安定性、および他の要素[ALL74a]の関数としてクロック発振器の分類に同意しました。 分類を決定する3つの要素があります: そして、安定性、ジター、歩き回ってください。 安定性は、時間で頻度の体系的変化について言及して、年をとるドリフト、傾向などと同義です。 歩き回ってください。ジター(また、タイミングジターと呼ばれる)が10Hz以上のコンポーネントで頻度の短期的な変化について言及する、10Hz未満のコンポーネントで頻度の長期の変化について言及します。 分類は振動子層(NTP層に混乱しない)を決定します、下側の層とそれほど正確でない振動子が割り当てられるより正確な振動子での、より高い層:

@Z_TBL_BEG = COLUMNS(3), DIMENSION(IN), COLWIDTHS(E1,E2,E2),
WIDTH(5.0000), ABOVE(.1670), BELOW(.0830), HGUTTER(.3330),
BOX(Z_SINGLE), KEEP(ON), ALIGN(CT), L1(R1C0..R1C3)

@Z_L1、TBL_は=コラム(3)、寸法(IN)、COLWIDTHS(2Eに1ユーロの、そして、2ユーロの)、幅(5.0000)、上(.1670)、下(.0830)を請って、HGUTTER(.3330)(箱(Z_シングル)、生活費(ON))は(コネチカット)を並べます。(R1C0..R1C3)

@Z_TBL_BODY = TABLE CENTER, TABLE HEADER, TABLE HEADER

@Z_TBL_ボディー=テーブルセンター、テーブルヘッダーはヘッダーをテーブルの上に置きます。

Stratum, Min Accuracy (per day), Min Stability (per day)

層、Min Accuracy(1日あたりの)、Min Stability(1日あたりの)

@Z_TBL_BODY = TABLE CENTER, TABLE TEXT, TABLE TEXT

@Z_TBL_ボディー=テーブルセンター、テーブルテキストはテキストを見送ります。

1, 1 x 10-11, not specified

1(1x10-11)は指定しませんでした。

2, 1.6 x 10-8, 1 x 10-10

2 1.6x10-8、1x10-10

3, 4.6 x 10-6, 3.7 x 10-7

3 4.6x10-6、3.7x10-7

@Z_TBL_BODY = TABLE CENTER, TABLE HEADER, TABLE HEADER

@Z_TBL_ボディー=テーブルセンター、テーブルヘッダーはヘッダーをテーブルの上に置きます。

4, 3.2 x 10-5, not specified

4(3.2x10-5)は指定しませんでした。

@Z_TBL_END =

@Z_TBL_終わり=

The construction, operation and maintenance of stratum-one oscillators
is assumed to be consistent with national standards and often includes
cesium oscillators or precision crystal oscillators synchronized via
LORAN-C to national standards. Stratum-two oscillators represent the
stability required for interexchange toll switches such as the AT&T 4ESS
and interexchange digital cross-connect systems, while stratum-three
oscillators represent the stability required for exchange switches such
as the AT&T 5ESS and local cross-connect systems. Stratum-four
oscillators represent the stability required for digital channel-banks
and PBX systems.

工事、層-1個の振動子の維持管理は国家規格と一致していると思われて、しばしば国家規格へのLORAN-Cを通して連動するセシウム振動子か精度水晶発振器を含んでいます。 層-2個の振動子がAT&Tなどのinterexchange料金スイッチ4ESSとinterexchangeのデジタル十字接続システムに必要である安定性を表します、層-3個の振動子がAT&Tなどの交換機開閉器5ESSとローカルの十字接続システムに必要である安定性を表しますが。層-4個の振動子がデジタルチャンネル・バンクとPBXシステムに必要である安定性を表します。

Time and Frequency Dissemination

時間と頻度普及

In order that atomic and civil time can be coordinated throughout the
world, national administrations operate primary time and frequency
standards and coordinate them cooperatively by observing various radio
broadcasts and through occasional use of portable atomic clocks. Most
seafaring nations of the world operate some sort of broadcast time
service for the purpose of calibrating chronographs, which are used in
conjunction with ephemeris data to determine navigational position. In
many countries the service is primitive and limited to seconds-pips
broadcast by marine communication stations at certain hours. For
instance, a chronograph error of one second represents a longitudinal
position error of about 0.23 nautical mile at the Equator.

世界中で原子の、そして、民間である時間を調整できるように、国家の政権は、様々な無線放送を観測して、携帯用の原子時計の時々の使用を通して第一の時間と頻度規格を運用して、協力してそれらを調整します。 ほとんどの航海の世界の諸国家がナビゲーション上の位置を決定するのに位置推算歴データに関連して使用されるクロノグラフを較正する目的のためにある種の放送時間指定サービスを運用します。 多くの国では、サービスは、原始で、ある時間に海洋の通信施設によって放送された秒種に限られます。 例えば、1秒のクロノグラフ誤りはEquatorにおよそ0.23海里の縦の位置の誤りを表します。

The U.S. National Institute of Standards and Technology (NIST - formerly
National Bureau of Standards) operates three radio services for the
dissemination of primary time and frequency information. One of these
uses high-frequency (HF or CCIR band 7) transmissions on frequencies of
2.5, 5, 10, 15 and 20 MHz from Fort Collins, CO (WWV), and Kauai, HI
(WWVH). Signal propagation is usually by reflection from the upper
ionospheric layers, which vary in height and composition throughout the
day and season and result in unpredictable delay variations at the
receiver. The timecode is transmitted over a 60-second interval at a
data rate of 1 bps using a 100-Hz subcarrier on the broadcast signal.
The timecode information includes UTC time-day information, but does not
currently include year or leap-second warning. While these transmissions
and those of Canada from Ottawa, Ontario (CHU), and other countries can
be received over large areas in the western hemisphere, reliable
frequency comparisons can be made only to the order of 10-7 and time
accuracies are limited to the order of a millisecond [BLA74]. Radio
clocks which operate with these transmissions include the Traconex 1020,
which provides accuracies to about ten milliseconds and is priced in the
$1,500 range.

米国米国商務省標準技術局(NIST--以前規格基準局)は第一の時間と頻度情報の普及のために3つのラジオサービスを運用します。 これらの1つは2.5、5、10、15の頻度における高周波(HFかCCIRバンド7)送信とフォートコリンズ(CO)(WWV)から20MHzとカウアイHI(WWVH)を使用します。 信号伝播が受信機に通常上側の電離層からの反射と予測できない遅れ変化における結果であります。電離層は日、季節の間中高さと構成において異なります。60秒の間隔の間、timecodeは、1つのビーピーエスのデータ信号速度で放送信号の上で100Hzの副搬送波を使用することで伝えられます。 timecode情報は、UTC時間-日の情報を含んでいますが、現在、年か閏秒警告は含んでいません。 オタワ、オンタリオ(CHU)からのカナダと他国のこれらのトランスミッションとものを西半球の広い地域の上に受けることができる間、信頼できる頻度比較を10-7の注文だけにすることができます、そして、時間精度を1ミリセカンド[BLA74]の注文に制限します。 これらのトランスミッションで作動するラジオ時計はTraconex1020を含んでいます。(Traconexはおよそ10ミリセカンドに精度を提供して、1,500ドルの範囲で値を付けられます)。

A second service operated by NIST uses low-frequency (LF or CCIR band 5)
transmissions on 60 kHz from Boulder, CO (WWVB), and can be received
over the continental U.S. and adjacent coastal areas. Signal propagation
is via the lower ionospheric layers, which are relatively stable and
have predictable diurnal variations in height. The timecode is
transmitted over a 60-second interval at a rate of 1 pps using periodic
reductions in carrier power. With appropriate receiving and averaging
techniques and corrections for diurnal and seasonal propagation effects,
frequency comparisons to within 10-11 are possible and time accuracies
of from a few to 50 microseconds can be obtained [BLA74]. Some countries
in western Europe operate similar services which use transmissions on 60
kHz from Rugby, U.K. (MSF), and on 77.5 kHz from Mainflingen, West
Germany (DCF77). The timecode information includes UTC time-day-year
information and leap-second warning. Radio clocks which operate with
these transmissions include the Spectracom 8170 and Kinemetrics/TrueTime
60-DC and LF-DC, which provide accuracies to a millisecond or less and
are priced in the $2,500 range. However, these receivers do not extract
the year information and leap-second warning.

NISTによって操作されたセカンドサービスは、ボウルダーから60kHzにおける長波(LFかCCIRバンド5)送信、CO(WWVB)を使用して、大陸の米国と隣接している沿岸地域の上に受けることができます。 信号伝播が低級電離層であります。(電離層は、比較的安定していて、予測できる昼間の変化を高くします)。 timecodeは、60秒の間隔の間、1ppsのレートでキャリヤーパワーに周期的な減少を使用することで伝えられます。 テクニックと昼間の、そして、季節の伝播効果のための修正、10-11との頻度比較がいくつかから50に可能であり、精度を調節する適切な受信と平均で、マイクロセカンドを得ることができます[BLA74]。 西ヨーロッパの国の中にはRugby、イギリス(MSF)から60kHzの上と、そして、Mainflingen西ドイツ(DCF77)から77.5kHzの上でトランスミッションを使用する同様のサービスを運用するものもあります。 timecode情報はUTC時間日の年の情報と閏秒警告を含んでいます。 これらのトランスミッションで作動するラジオ時計は、Spectracom8170とKinemetrics/TrueTime提供される60DCとLF-DC精度を1ミリセカンド以下に含めて、2,500ドルの範囲で値を付けられます。 しかしながら、これらの受信機は年の情報と閏秒警告を抜粋しません。

The third service operated by NIST uses ultra-high frequency (UHF or
CCIR band 9) transmissions on about 468 MHz from the Geosynchronous
Orbit Environmental Satellites (GOES), three of which cover the western
hemisphere. The timecode is interleaved with messages used to
interrogate remote sensors and consists of 60 4-bit binary-coded decimal
words transmitted over an interval of 30 seconds. The timecode
information includes UTC time-day-year information and leap-second
warning. Radio clocks which operate with these transmissions include the
Kinemetrics/TrueTime 468-DC, which provides accuracies to 0.5 ms and is
priced in the $6,000 range. However, this receiver does not extract the
year information and leap-second warning.

NISTによって操作された3番目のサービスはGeosynchronous Orbit Environmental Satellites(ゴエス)からおよそ468MHz離れたところで極超短波(UHFかCCIRバンド9)送信を使用します。(3つのそれがGeosynchronous Orbit Environmental Satellitesのために西半球を覆います)。 timecodeはメッセージが使用されている状態でリモートセンサについて査問するためにはさみ込まれて、30秒の間隔にわたって伝えられた60の4ビットの二進化十進言葉から成ります。 timecode情報はUTC時間日の年の情報と閏秒警告を含んでいます。 これらのトランスミッションでインクルードを操作する時計を無線連絡してください、Kinemetrics/TrueTime、468DC、0.5msに精度を供給して、6,000ドルの範囲で値を付けられる。 しかしながら、この受信機は年の情報と閏秒警告を抜粋しません。

The U.S. Department of Defense is developing the Global Positioning
System (GPS) for worldwide precision navigation. This system will
eventually provide 24-hour worldwide coverage using a constellation of
24 satellites in 12-hour orbits. For time-transfer applications GPS has
a potential accuracy in the order of a few nanoseconds; however, various
considerations of defense policy may limit accuracy to hundreds of
nanoseconds [VAN84]. The timecode information includes GPS time and UTC
correction; however, there appears to be no leap-second warning. Radio
clocks which operate with these transmissions include the
Kinemetrics/TrueTime GPS-DC, which provides accuracies to 200 <$Emu>s
and is priced in the $12,000 range. However, since only about half the
satellites have been launched, expensive rubidium or quartz oscillators
are necessary to preserve accuracy during outages. Also, since this is a
single-channel receiver, it must be supplied with geographic coordinates
within a degree from an external source before operation begins.

米国国防総省は世界的な精度ナビゲーションのために、全地球測位システム(GPS)を開発しています。 このシステムは、結局、12時間の軌道の24の衛星の星座を使用することで世界中の24時間の適用範囲を提供するでしょう。 時間転送のために、アプリケーションGPSには、数ナノ秒の注文における潜在的精度があります。 しかしながら、防衛政策の様々な問題は何百ナノ秒[VAN84]までも精度を制限するかもしれません。 timecode情報はGPS時間とUTC修正を含んでいます。 しかしながら、閏秒がない警告は現れるでしょう。 これらのトランスミッションで作動するラジオ時計は200<ドルのEmu>sに精度を供給して、$で値を付けられるKinemetrics/TrueTime GPS-DC 1万2000範囲を含んでいます。 しかしながら、衛星のおよそ半分だけが始められたので、高価なルビジウムか水晶振動子が供給停止の間、精度を保存するのに必要です。 また、これが単独のチャンネル受信機であるので、操作が始まる前に外部電源から1度以内で地理座標をそれに供給しなければなりません。

The U.S. Coast Guard, along with agencies of other countries, has
operated the LORAN-C [FRA82] radionavigation system for many years. It
currently provides time-transfer accuracies of less than a microsecond
and eventually may achieve 100 ns within the ground-wave coverage area
of a few hundred kilometers from the transmitter. Beyond the ground wave
area signal propagation is via the lower ionospheric layers, which
decreases accuracies to the order of 50 us. With the recent addition of
the Mid-Continent Chain, the deployment of LORAN-C transmitters now
provides complete coverage of the U.S. LORAN-C timing receivers, such as
the Austron 2000, are specialized and extremely expensive (up to
$20,000). They are used primarily to monitor local cesium clocks and are
not suited for unattended, automatic operation. While the LORAN-C system
provides a highly accurate frequency and time reference within the
ground wave area, there is no timecode modulation, so the receiver must
be supplied with UTC time to within a few tens of seconds from an
external source before operation begins.

米国沿岸警備隊は他国の政府機関と共に何年もLORAN-C[FRA82]無線航法システムを運用しました。 それは、現在、1マイクロセカンド未満の時間転送精度を提供して、結局、送信機から数100キロメートルの地上波適用範囲区域の中で100ナノ秒を達成するかもしれません。 領域が低級電離層であるのを伝播に示す地上波を超えて、どれが50の注文と精度を減少させるか。私たち。 LORAN-C送信機の展開は、現在、Mid-大陸の最近の添加によって、Chainが専門化していて非常に高価であることを(最大2万ドル)Austron2000などのU.S. LORAN-Cタイミング受信機の徹底した報道を前提とします。 それらは、主として地方のセシウム時計をモニターするのに使用されて、無人の自動に合っていません。 LORAN-Cシステムが地上波区域の中で高精度な頻度と時間参照を提供しますが、timecode変調が全くないので、操作が始まる前に、外部電源から何十秒のもいくつかへの時にUTCを受信機に供給しなければなりません。

The OMEGA [VAS78] radionavigation system operated by the U.S. Navy and
other countries consists of eight very-low-frequency (VLF or CCIR band
4) transmitters operating on frequencies from 10.2 to 13.1 kHz and
providing 24-hour worldwide coverage. With appropriate receiving and
averaging techniques and corrections for propagation effects, frequency
comparisons and time accuracies are comparable to the LF systems, but
with worldwide coverage [BLA74]. Radio clocks which operate with these
transmissions include the Kinemetrics/TrueTime OM-DC, which provides
accuracies to 1 ms and is priced in the $3,500 range. While the OMEGA
system provides a highly accurate frequency reference, there is no
timecode modulation, so the receiver must be supplied with geographic
coordinates within a degree and UTC time within five seconds from an
external source before operation begins. There are several other VLF
services intended primarily for worldwide data communications with
characteristics similar to OMEGA. These services can be used in a manner
similar to OMEGA, but this requires specialized techniques not suited
for unattended, automatic operation.

合衆国海軍と他国によって運用されたオメガ[VAS78]無線航法システムは頻度で10.2〜13.1kHzを操作して、世界中の24時間の適用範囲を提供する8超長波(VLFかCCIRバンド4)送信機から成ります。 伝播効果、頻度比較、および時の適切な受信、テクニックを平均して、および修正で、精度は、LFシステムに匹敵していますが、世界的な適用範囲[BLA74]と共に匹敵します。 これらのトランスミッションで作動するラジオ時計はKinemetrics/TrueTime OM-DCを含んでいます。(それは、1msに精度を供給して、3,500ドルの範囲で値を付けられます)。 オメガシステムが高精度な頻度参照を提供しますが、timecode変調が全くないので、操作が始まる前に、外部電源から5秒以内に1度とUTC回の中に地理座標を受信機に供給しなければなりません。 主として世界的なデータ通信のために意図する他のいくつかのVLFサービスがオメガと同様の特性と共にあります。 オメガと同様の方法でこれらのサービスを利用できますが、これは無人の自動に合わない特殊な技術を必要とします。

Note that not all transmission formats used by NIST radio broadcast
services [NBS79] and no currently available radio clocks include
provisions for year information and leap-second warning. This
information must be determined from other sources. NTP includes
provisions to distribute advance warnings of leap seconds using the
leap-indicator bits described in the NTP specification. The protocol is
designed so that these bits can be set manually or by the radio timecode
at the primary time servers and then automatically distributed
throughout the synchronization subnet to all other time servers.
Calendar Systems

NISTラジオ放送[NBS79]で使用されるというわけではないすべてのトランスミッション形式が含んでいますが、どんな現在利用可能なラジオ時計も年の情報のための条項と閏秒警告を含んでいないことに注意してください。 この情報は他のソースから決定しているに違いありません。 NTPは、NTP仕様で説明された飛躍インディケータビットを使用することで飛躍秒の事前の警告を分配するために条項を含んでいます。 プロトコルは、これらのビットを手動か第一の時間サーバにおけるラジオtimecodeが設定して、次に、同期サブネット中で自動的に他のすべての時間サーバに分配できるように設計されています。 カレンダーシステム

The calendar systems used in the ancient world reflect the agricultural,
political and ritual needs characteristic of the societies in which they
flourished. Astronomical observations to establish the winter and summer
solstices were in use three to four millennia ago. By the 14th century
BC the Shang Chinese had established the solar year as 365.25 days and
the lunar month as 29.5 days. The lunisolar calendar, in which the
ritual month is based on the Moon and the agricultural year on the Sun,
was used throughout the ancient Near East (except Egypt) and Greece from
the third millennium BC. Early calendars used either thirteen lunar
months of 28 days or twelve alternating lunar months of 29 and 30 days
and haphazard means to reconcile the 354/364-day lunar year with the
365-day vague solar year.

古代世界で使用されるカレンダーシステムは農業を反映します、政治上であり、儀式はそれらが栄えた社会の特性を必要とします。 冬、夏至を確立する天体観測は3〜4つのミレニアム前に使用中でした。 紀元前14世紀までには、商中国人は、29.5日間としての365.25日間と太陰月と太陽年を書き立てました。 太陰太陽暦(儀式月は太陽の月と農業年に基づいている)が古代の近東(エジプトを除いた)とギリシア中で使用された、3番目のミレニアム、紀元前 早めのカレンダーは28日間の13回の太陰月か29と30日間と365日のあいまいな太陽年と354/364日の太陰年を仲直りさせる行き当たりばったりの手段の12回の交互の太陰月のどちらかを使用しました。

The ancient Egyptian lunisolar calendar had twelve 30-day lunar months,
but was guided by the seasonal appearance of the star Sirius (Sothis).
In order to reconcile this calendar with the solar year, a civil
calendar was invented by adding five intercalary days for a total of 365
days. However, in time it was observed that the civil year was about
one-fourth day shorter than the actual solar year and thus would precess
relative to it over a 1460-year cycle called the Sothic cycle. Along
with the Shang Chinese, the ancient Egyptians had thus established the
solar year at 365.25 days, or within about 11 minutes of the present
measured value. In 432 BC, about a century after the Chinese had done
so, the Greek astronomer Meton calculated there were 110 lunar months of
29 days and 125 lunar months of 30 days for a total of 235 lunar months
in 6940 solar days, or just over 19 years. The 19-year cycle, called the
Metonic cycle, established the lunar month at 29.532 solar days, or
within about two minutes of the present measured value.

古代のエジプトの太陰太陽暦は、12回の30日の太陰月を持っていましたが、Sirius(Sothis)星の季観で誘導されました。 このカレンダーを太陽年と仲直りさせるために、民間カレンダーは合計365日間うるうの5日間を加えることによって、発明されました。 しかしながら、時間内に、民間年は実際の太陽年よりおよそ1/4日少なく、その結果、それに比例した狼星周期と呼ばれる1460年の年のサイクルの間の「前-課税」が少なかったつもりであると認められました。 その結果、商中国人と共に、古代エジプト人は365.25日間か、現在の測定値のおよそ11分以内に太陽年を設置しました。 中国人がそうしたおよそ1世紀後に紀元前432年に、ギリシア人の天文学者Metonは、合計235回の太陰月のための29日間の110回の太陰月と30日間の125回の太陰月が太陽の6940日間、またはちょうど19年以上間あったと見込みました。 メトン周期と呼ばれる19年のサイクルは太陽の29.532日間か、現在の測定値のおよそ2分以内に太陰月を確立しました。

The Roman republican calendar was based on a lunar year and by 50 BC was
eight weeks out of step with the solar year. Julius Caesar invited the
Alexandrian astronomer Sosigenes to redesign the calendar, which led to
the adoption in 46 BC of the Julian calendar. This calendar is based on
a year of 365 days with an intercalary day inserted every four years.
However, for the first 36 years an intercalary day was mistakenly
inserted every three years instead of every four. The result was 12
intercalary days instead of nine, and a series of corrections that was
not complete until 8 AD.

ローマ共和国のカレンダーは、太陰年に基づいて、紀元前50年までに太陽年と調子外れの8週間でした。 ジューリアス・シーザーは、アレクサンドリア人の天文学者Sosigenesがカレンダーを再設計するよう誘いました。(カレンダーはユリウス暦の紀元前46年に採用につながりました)。 このカレンダーはうるうの日が4年毎に挿入されている365日間の1年に基づいています。 しかしながら、最初の36年間、うるうの日はあらゆる4の代わりに3年毎に誤って挿入されました。 結果は、9の代わりにうるうの12日間と、一連の西暦8年まで完全でなかった修正でした。

The seven-day Sumerian week was introduced only in the fourth century AD
by Emperor Constantine I. During the Roman era a 15-year census cycle,
called the Indiction cycle, was instituted for taxation purposes. The
sequence of day-names for consecutive occurrences of a particular day of
the year does not recur for 28 years, called the solar cycle. Thus, the
least common multiple of the 28-year solar cycle, 19-year Metonic cycle
and 15-year Indiction cycle results in a grand 7980-year supercycle
called the Julian Era, which began in 4713 BC. A particular combination
of the day of the week, day of the year, phase of the Moon and round of
the census will recur beginning in 3268 AD.

7日間のSumerian週による単に4世紀にコンスタンティーヌI.During皇帝ローマで導入して、15年の国勢調査サイクルの間のIndictionサイクルと呼ばれる時代が課税目的のために設けられたということでした。 1年の特定の日の連続した発生のための日名の系列は28年間再発しません、太陽活動周期と呼ばれて。 したがって、壮大な7980年の年の「スーパー-サイクル」の28年の太陽活動周期、19年のメトン周期、および15年のIndictionサイクル結果の最小公倍数は、ジュリアンをEraと呼びました。(Eraは紀元前4713年に始まりました)。 曜日の特定の組み合わせ、1年の日、月のフェーズ、および国勢調査のラウンドは西暦3268年から再発するでしょう。

By 1545 the discrepancy in the Julian year relative to the solar year
had accumulated to ten days. In 1582, following suggestions by the
astronomers Christopher Clavius and Luigi Lilio, Pope Gregory XIII
issued a papal bull which decreed, among other things, that the solar
year would consist of 365.2422 days. In order to more closely
approximate the new value, only those centennial years divisible by 400
would be leap years, while the remaining centennial years would not,
making the actual value 365.2425, or within about 26 seconds of the
current measured value. Since the beginning of the Common Era and prior
to 1990 there were 474 intercalary days inserted in the Julian calendar,
but 14 of these were removed in the Gregorian calendar. While the
Gregorian calendar is in use throughout most of the world today, some
countries did not adopt it until early in the twentieth century.
While it remains a fascinating field for time historians, the above
narrative provides conclusive evidence that conjugating calendar dates
of significant events and assigning NTP timestamps to them is
approximate at best. In principle, reliable dating of such events
requires only an accurate count of the days relative to some globally
alarming event, such as a comet passage or supernova explosion; however,
only historically persistent and politically stable societies, such as
the ancient Chinese and Egyptian, and especially the classic Maya,
possessed the means and will to do so.

1545年までには、太陽年に比例したユリウス年の間の食い違いは10日間まで蓄積しました。 1582年に、天文学者のクリストファー・クラビウスとルーイジLilioによる勧めに続いて、法王グレゴリーXIIIは太陽年が365.2422日間から成ると特に命じたローマ教皇の大勅書を発行しました。 より密接に新しい値に近似するために、ほんの400で分割可能なそれらの百周年の年はうるう年でしょう、残っている百周年が年間そうしないでしょうが、365.2425か、現在の測定値のおよそ26秒以内に実価を作って。 西暦紀元の始まりと1990年前に、うるうの日がユリウス暦に挿入した474がありますが、グレゴリオ暦でこれらの14を取り除きました。 グレゴリオ暦が今日世界の大部分中で使用中である間、20世紀に早々までそれを採用しなかった国もありました。 時間歴史家のための魅惑的な分野のままで残っていますが、上の物語は重大な行事のそんなに活用しているカレンダ日付を確証に提供します、そして、それらへのタイムスタンプをNTPに割り当てるのはせいぜい大体です。 原則として、そのような出来事の信頼できるデートはいくつかのグローバルに驚くべきな出来事に比例して数日の正確な計算だけを必要とします、彗星通路や超新星の爆発のように。 しかしながら、古代の中国人やエジプト人などの歴史的にしつこくて政治的に安定した交際だけ、および特に古典的なマヤ族には、手段とそうする意志がありました。

The Modified Julian Day System

変更されたジュリアン日のシステム

In order to measure the span of the universe or the decay of the proton,
it is necessary to have a standard day-numbering plan. Accordingly, the
International Astronomical Union has adopted the use of the standard
second and Julian Day Number (JDN) to date cosmological events and
related phenomena. The standard day consists of 86,400 standard seconds,
where time is expressed as a fraction of the whole day, and the standard
year consists of 365.25 standard days.

宇宙の長さか陽子の腐敗を測定するために、標準の日に付番するプランを持つのが必要です。 それに従って、国際天文学連合は、宇宙論の出来事の日付を入れるために標準の2番目とジュリアンデーNumber(JDN)の使用を採用して、現象を関係づけました。 標準の日は標準の8万6400秒から成ります、時間が全体の日の何分の一として言い表されて、標準の年が標準の365.25日間から成るところで。

In the scheme devised in 1583 by the French scholar Joseph Julius
Scaliger and named after his father, Julius Caesar Scaliger, JDN 0.0
corresponds to 12h (noon) on the first day of the Julian Era, 1 January
4713 BC. The years prior to the Common Era (BC) are reckoned according
to the Julian calendar, while the years of the Common Era (AD) are
reckoned according to the Gregorian calendar. Since 1 January 1 AD in
the Gregorian calendar corresponds to 3 January 1 in the Julian calendar
[DER90], JDN 1,721,426.0 corresponds to 12h on the first day of the
Common Era, 1 January 1 AD. The Modified Julian Date (MJD), which is
sometimes used to represent dates near our own era in conventional time
and with fewer digits, is defined as MJD = JD <196> 2,400,000.5.
Following the convention that our century began at 0h on 1 January 1900,
at which time the tropical year was already 12h old, that eclectic
instant corresponds to MJD 15,020.0. Thus, the Julian timescale ticks in
standard (atomic) 365.25-day centuries and was set to a given value at
the approximate epoch of a cosmic event which apparently synchronized
the entire human community, the origin of the Common Era.

1583年にジューリアス・スカリゲルであって彼の父親にちなんで命名されたフランス人の学者のジョゼフ、ジューリアス・シーザー・スカリゲルによって工夫された計画では、JDN0.0はEra、1月紀元前4713年1日にジュリアン初日で12h(正午)に対応します。 ユリウス暦によると、西暦紀元(紀元前)の前の数年は数えられます、グレゴリオ暦によると、西暦紀元(AD)の数年が数えられますが。 グレゴリオ暦における201年1月1日ADがユリウス暦[DER90]における201年1月3日に対応しているので、JDN1,721,426.0は西暦紀元(201年1月1日AD)の初日で12hに対応しています。 Modifiedジュリアン日(MJD)はJD<196MJD=>2,400,000.5と定義されます。(それは、私たち自身の時代頃に従来の時間と、より少ないケタで日付を表すのにおいて時々使用されています)。 古い状態で私たちの世紀が回帰年が既に12hであった1900年1月1日に0hで始めたコンベンションに続いて、その折衷主義者の瞬間はMJD15,020.0に対応しています。 したがって、ジュリアンスケールは、標準(原子)の365.25日間の世紀にカチカチして、全体の人間の地域集団(西暦紀元の起源)を明らかに、連動させた宇宙出来事の大体の時代に与えられた値に設定されました。

Determination of Frequency

頻度の決断

For many years the most important use of time and frequency information
was for worldwide navigation and space science, which depend on
astronomical observations of the Sun, Moon and stars [JOR85]. Sidereal
time is based on the transit of stars across the celestial meridian of
an observer. The mean sidereal day is 23 hours, 56 minutes and 4.09
seconds, but varies about <F128M><F255D>30 ms throughout the year due
to polar wandering and orbit variations. Ephemeris time is based on
tables with which a standard time interval such as the tropical year -
one complete revolution of the Earth around the Sun - can be determined
through observations of the Sun, Moon and planets. In 1958 the standard
second was defined as 1/31,556,925.9747 of the tropical year that began
this century. On this scale the tropical year is 365.2421987 days and
the lunar month - one complete revolution of the Moon around the Earth -
is 29.53059 days; however, the actual tropical year can be determined
only to an accuracy of about 50 ms and has been increasing by about 5.3
ms per year.

何年間も、時間と頻度情報の最も重要な使用は世界的なナビゲーションと宇宙科学のためのものでした。(それは、[JOR85]の太陽、月、および星の天体観測によります)。 星の時間は観察者の天の子午線の向こう側に星のトランジットに基づいています。意地悪な星の日は、極歩き回るのと軌道変化のため年間23時間と、56分と4.09秒ですが、<F128M>--lt; F255D>30msに関して異なります。 暦表時は回帰年などの標準時の間隔(太陽の周りの地球の1回の完全な公転)が太陽、月、および惑星の観測で決定できるテーブルに基づいています。 1958年に、標準の2番目は今世紀を始めた1/31,556,925.9747回帰年と定義されました。 このスケールでは、回帰年は365.2421987日間です、そして、太陰月(地球の周りの月の1回の完全な公転)は29.53059日間です。 しかしながら、実際の回帰年は、およそ50msの精度だけに決定できて、1年あたりのおよそ5.3msで増加したことです。

Of the three heavenly oscillators readily apparent to ancient mariners
and astronomers - the Earth rotation about its axis, the Earth
revolution around the Sun and the Moon revolution around the Earth -
none of the three have the intrinsic stability, relative to modern
technology, to serve as a standard reference oscillator. In 1967 the
standard second was redefined as <169>9,192,631,770 periods of the
radiation corresponding to the transition between the two hyperfine
levels of the ground state of the cesium-133 atom.<170> Since 1972 the
time and frequency standards of the world have been based on
International Atomic Time (TAI), which is defined and maintained using
multiple cesium-beam oscillators to an accuracy of a few parts in 1013,
or better than a microsecond per day. Note that, while this provides an
extraordinarily precise timescale, it does not necessarily agree with
conventional solar time and may not in fact even be absolutely uniform,
unless subtle atomic conspiracies can be ruled out.

古代の船員と天文学者(軸の周りの地球回転、太陽の周りの地球革命、および地球の周りの月の革命)には、容易に明らかな3個の天の振動子では、現代の技術に比例して3のいずれも、標準の参照振動子として機能するように本質的な安定性を持っていません。 1967年に、標準の2番目はセシウム-133原子の基底状態の2つの「超-罰金」レベルの間の変遷に対応する放射の<169>91億9263万1770一区切りと再定義されました。世界の時間と頻度規格が持っている<170>Since1972は国際Atomic Timeに基づいたこと(TAI)です(複数のセシウムビーム振動子をいくつかの部品の精度に1日あたり1マイクロセカンドより1013、またはよく使用することで定義されて、維持されます)。 これが異常に正確なスケールを提供する間、それが必ず従来の太陽時に同意するというわけではなくて、事実上、絶対にも一定でないかもしれないことに注意してください、微妙な原子共謀を除外できないなら。

Determination of Time and Leap Seconds

時間と飛躍秒の決断

The International Bureau of Weights and Measures (IBWM) uses
astronomical observations provided by the U.S. Naval Observatory and
other observatories to determine UTC. Starting from apparent mean solar
time as observed, the UT0 timescale is determined using corrections for
Earth orbit and inclination (the Equation of Time, as used by sundials),
the UT1 (navigator's) timescale by adding corrections for polar
migration and the UT2 timescale by adding corrections for known
periodicity variations. While standard frequencies are based on TAI,
conventional civil time is based on UT1, which is presently slowing
relative to TAI by a fraction of a second per year. When the magnitude
of correction approaches 0.7 second, a leap second is inserted or
deleted in the TAI timescale on the last day of June or December.

WeightsとMeasures(IBWM)の国際事務局は米国Naval Observatoryと他の天文台によって提供された、UTCを決定した天体観測を使用します。 観測されるように見かけの意地悪な太陽時から始めて、UT0スケールが地球の軌道と傾向に修正を使用することで決定している、(日時計によって使用されるようなTimeのEquation、極移動のための修正を加えるのによるUT1(ナビゲータのもの)スケールと知られている周期性変化のための修正を加えるのによるUT2スケール。 標準の頻度はTAIに基づいていますが、従来の民間時間はUT1に基づいています。(UT1は現在、1年あたり1秒の何分の一のTAIに比例して遅くなっています)。 修正の大きさが2番目に、0.7にアプローチするとき、閏秒は、6月か12月の最後の日のTAIスケールで挿入されるか、または削除されます。

For the most precise coordination and timestamping of events since 1972,
it is necessary to know when leap seconds are implemented in UTC and how
the seconds are numbered. As specified in CCIR Report 517, which is
reproduced in [BLA74], a leap second is inserted following second
23:59:59 on the last day of June or December and becomes second 23:59:60
of that day. A leap second would be deleted by omitting second 23:59:59
on one of these days, although this has never happened. Leap seconds
were inserted prior to 1 January 1991 on the occasions listed in Table
8<$&tab8> (courtesy U.S. Naval Observatory). Published IBWM corrections
consist not only of leap seconds, which result in step discontinuities
relative to TAI, but 100-ms UT1 adjustments called DUT1, which provide
increased accuracy for navigation and space science.

最も正確なコーディネートと1972年以来出来事をtimestampingするのに、飛躍秒がいつUTCで実行されるか、そして、秒がどのように番号付であるかを知るのが必要です。 CCIR Report517([BLA74]で再生します)で指定されるように、閏秒は、6月か12月の最後の日に2番目の23:59:59に続いて、挿入されて、2番目の60の23:59:当日になります。 閏秒は、これが一度も起こったことがありませんが、近いうちに2番目の23:59:59を省略することによって、削除されるでしょう。 飛躍秒はTable8<$とtab8>(礼儀米国Naval Observatory)に記載された時1991年1月1日以前、挿入されました。 発行されたIBWM修正は飛躍秒から成るだけではなく、DUT1と呼ばれる100-ms UT1調整からも成ります。(秒はTAIに比例してステップ不連続をもたらします)。(調整は増加する精度をナビゲーションと宇宙科学に提供します)。

Note that the NTP time column actually shows the epoch following the
last second of the day given in the UTC date and MJD columns (except for
the first line), which is the precise epoch of insertion. The offset
column shows the cumulative seconds offset between the uncoordinated
(Julian) timescale and the UTC timescale; that is, the number of seconds
to add to the Julian clock in order to maintain nominal agreement with
the UTC clock. Finally, note that the epoch of insertion is relative to
the timescale immediately prior to that epoch; e.g., the epoch of the 31
December 90 insertion is determined on the timescale in effect following
the 31 December 1990 insertion, which means the actual insertion
relative to the Julian clock is fourteen seconds later than the apparent
time on the UTC timescale.

NTP時間コラムが、時代がUTC日付とMJDコラム(最初の線を除いた)で与えられた挿入の正確な時代である1日の最後の2番目に続くのを実際に示すことに注意してください。 オフセットコラムは、累積している秒が非調整された(ジュリアン)スケールとUTCスケールの間で相殺されるのを示します。 すなわち、ジュリアンに加える秒数は、UTC時計との名目上の協定を維持するために時間を計ります。 最終的に、挿入の時代がすぐその時代以前スケールに比例していることに注意してください。 事実上、1990年12月31日の挿入(ジュリアン時計に比例した実際の挿入が見かけの時間より14秒遅くUTCスケールにあることを意味する)に続いて、例えば、1990年12月31日の挿入の時代はスケールで断固としています。

The UTC timescale thus ticks in standard (atomic) seconds and was set to
the value 0h MJD 41,317.0 at the epoch determined by astronomical
observation to be 0h on 1 January 1972 according to the Gregorian
calendar; that is, the inaugural tick of the UTC Era. In fact, the
inaugural tick which synchronized the cosmic oscillators, Julian clock,
UTC clock and Gregorian calendar forevermore was displaced about ten
seconds from the civil clock then in use, while the GPS clock is ahead
of the UTC clock by six seconds in late 1990. Subsequently, the UTC
clock has marched backward relative to the Julian timescale exactly one
second on scheduled occasions at monumental epoches embedded in the
institutional memory of our civilization. Note in passing that leap-
second adjustments affect the number of seconds per day and thus the
number of seconds per year. Apparently, should we choose to worry about
it, the UTC clock, Julian clock and various cosmic clocks will
inexorably drift apart with time until rationalized by some future papal
bull.

その結果、UTCスケールは標準(原子)の秒にカチカチします、そして、グレゴリオ暦に従った1972年1月1日に時代の0h MJD41,317.0が天体観測で決定した値であることへのセットは0hでした。 すなわち、UTC Eraの就任のカチカチする音。 事実上、宇宙振動子を連動させた就任のダニ、ジュリアンは時間を計ります、そして、UTCは時間を計ります、そして、グレゴリオ暦forevermoreはその時使用中に民間時計からおよそ10秒置き換えられました、GPS時計が遅い1990の6秒までにUTC時計の前にありますが。 次に、UTC時計はまさにとてつもないepochesの予定されている時1秒が私たちの文明の制度上のメモリに埋め込んだジュリアンスケールに比例して後方に行進しました。 通過で飛躍2番目の調整は1日あたりの秒数に影響して、その結果、1年単位で秒数に影響することに注意してください。 明らかに、私たちが、それを心配するのを選ぶと、何らかの将来のローマ教皇の大勅書によって合理化されるまで、UTC時計、ジュリアン時計、および様々な宇宙時計は時間と共に冷酷に別れるでしょう。

The NTP Timescale and Reckoning with UTC
The NTP timescale is based on the UTC timescale, but not necessarily
always coincident with it. At 0h on 1 January 1972 (MJD 41,317.0), the
first tick of the UTC Era, the NTP clock was set to 2,272,060,800,
representing the number of standard seconds since 0h on 1 January 1900
(MJD 15,020.0). The insertion of leap seconds in UTC and subsequently
into NTP does not affect the UTC or NTP oscillator, only the conversion
to conventional civil UTC time. However, since the only institutional
memory available to NTP are the UTC timecode broadcast services, the NTP
timescale is in effect reset to UTC as each timecode is received. Thus,
when a leap second is inserted in UTC and subsequently in NTP, knowledge
of all previous leap seconds is lost.

UTCと必ずいつもコインシデンスではなく、UTCスケールに基づいてNTPスケールといるNTP TimescaleとReckoning、それ。 1972年1月1日(MJD41,317.0)の0h、UTC Eraの最初のカチカチする音では、NTP時計は22億7206万800に設定されました、1900年1月1日(MJD15,020.0)の0h以来の標準の秒の数を表して。 UTCと次にNTPの中への飛躍秒の挿入はUTCかNTP振動子(従来の民間UTC時間までの変換だけ)に影響しません。 しかしながら、NTPに利用可能な唯一の制度上のメモリがUTC timecode放送サービスであるので、それぞれのtimecodeが受け取られているとき、事実上、NTPスケールはUTCにリセットされます。 閏秒がUTCと次にNTPに挿入されるとき、したがって、前のすべての飛躍秒に関する知識は無くなっています。

Another way to describe this is to say there are as many NTP timescales
as historic leap seconds. In effect, a new timescale is established
after each new leap second. Thus, all previous leap seconds, not to
mention the apparent origin of the timescale itself, lurch backward one
second as each new timescale is established. If a clock synchronized to
NTP in 1990 was used to establish the UTC epoch of an event that
occurred in early 1972 without correction, the event would appear
fifteen seconds late relative to UTC. However, NTP primary time servers
resolve the epoch using the broadcast timecode, so that the NTP clock is
set to the broadcast value on the current timescale. As a result, for
the most precise determination of epoch relative to the historic UTC
clock, the user must subtract from the apparent NTP epoch the offsets
shown in Table 8 at the relative epoches shown. This is a feature of
almost all present day time-distribution mechanisms.

これについて説明する別の方法は歴史的な飛躍秒と同じくらい多くのNTPスケールがあると言うことです。 事実上、新しいスケールはそれぞれの新しい閏秒の後に確立されます。 したがって、前のすべての飛躍秒、スケール自体の見かけの起源は言うまでもなく、それぞれの新しいスケールとしての窮地後方のもの2番目は確立されます。 1990年にNTPに連動した時計が1972年前半に修正なしで起こった出来事のUTC時代を証明するのに使用されるなら、出来事は15秒遅く、UTCに比例して現れるでしょうに。 しかしながら、NTPの第一の時間サーバは放送timecodeを使用することで時代を決議します、NTP時計が現在のスケールの放送値に設定されるように。 その結果、歴史的なUTC時計に比例した時代の最も正確な決断のために、ユーザは見せられた相対的なepochesで見かけのNTP時代からTable8に示されたオフセットを引き算しなければなりません。 これはほとんどすべての近代の時間分配メカニズムの特徴です。

The chronometry involved can be illustrated with the help of Figure 8,
which shows the details of seconds numbering just before, during and
after the last scheduled leap insertion at 23:59:59 on 31 December 1989.
Notice the NTP leap bits are set on the day prior to insertion, as
indicated by the <169>+<170> symbols on the figure. Since this makes the
day one second longer than usual, the NTP day rollover will not occur
until the end of the first occurrence of second 800. The UTC time
conversion routines must notice the apparent time and the leap bits and
handle the timescale conversions accordingly. Immediately after the leap
insertion both timescales resume ticking the seconds as if the leap had
never happened. The chronometric correspondence between the UTC and NTP
timescales continues, but NTP has forgotten about all past leap
insertions. In NTP chronometric determination of UTC time intervals
spanning leap seconds will thus be in error, unless the exact times of
insertion are known.

図8の助けでかかわった時刻測定を例証できます。(図は、秒の詳細が1989年12月31日23:59:59にすぐ飛躍の前、および飛躍と最後に予定されている飛躍の後に挿入に付番するのを示します)。 NTP飛躍ビットが挿入の前の日に設定されるのに注意してください、図の上に170の<169>+<>シンボルによって示されるように。 1日がこれで1秒いつもより長くなるので、NTP日のロールオーバーは2番目の800人の最初の発生の終わりまで起こらないでしょう。 UTC時間変換ルーチンは、見かけの時間と飛躍ビットに気付いて、それに従って、スケール変換を扱わなければなりません。 飛躍挿入直後、両方のスケールは、まるで飛躍が一度も起こったことがなかったかのように秒のカチカチと音を立てるのを再開します。 UTCとNTPスケールとのクロノメーターの通信は続きますが、NTPは過去のすべての飛躍入を忘れました。 UTC時間間隔のNTPのクロノメーターの決断では、その結果、飛躍秒を測るのは間違うでしょう、挿入の正確な倍が知られていない場合。

It is possible that individual systems may use internal data formats
other than the NTP timestamp format, which is represented in seconds to
a precision of about 200 picoseconds; however, a persuasive argument
exists to use a two-part representation, one part for whole days (MJD or
some fixed offset from it) and the other for the seconds (or some scaled
value, such as milliseconds). This not only facilitates conversion
between NTP and conventional civil time, but makes the insertion of leap
seconds much easier. All that is required is to change the modulus of
the seconds counter, which on overflow increments the day counter. This
design insures that continuity of the timescale is assured, even if
outside synchronization is lost before, during or after leap-second
insertion. Since timestamp data are unaffected, synchronization is
assured, even if timestamp data are in flight at the instant and
originated before or at that instant.

個人能率給制が秒におよそ200のピコセコンドの精度に表されるNTPタイムスタンプ書式以外の内部のデータ形式を使用するのは、可能です。 しかしながら、説得力のある議論は、全体の日(MJDかそれからの何らかの固定オフセット)ともう片方に数秒(または、ミリセカンドなどのスケーリングされた何らかの値)間、2部分の表現、一部を使用するために存在しています。 これで、飛躍秒の挿入はNTPと従来の民間時間の間で変換を容易にするだけではなく、はるかに簡単になります。 必要であるすべては秒カウンタの係数を変えることです。(オーバーフローのときに、カウンタは日のカウンタを増加します)。 このデザインは、スケールの連続が保証されるのを保障します、外の同期が挿入の前、または挿入か閏秒挿入の後に失われても。 タイムスタンプデータが影響を受けないので、同期は、タイムスタンプデータが瞬間に飛行であっても保証されて、瞬間の前かその瞬間に溯源されます。

Appendix F. The NTP Clock-Combining Algorithm

付録F.は時計を結合したNTPアルゴリズムです。

Introduction

序論

A common problem in synchronization subnets is systematic time-offset
errors resulting from asymmetric transmission paths, where the networks
or transmission media in one direction are substantially different from
the other. The errors can range from microseconds on high-speed ring
networks to large fractions of a second on satellite/landline paths. It
has been found experimentally that these errors can be considerably
reduced by combining the apparent offsets of a number of time servers to
produce a more accurate working offset. Following is a description of
the combining method used in the NTP implementation for the Fuzzball
[MIL88b]. The method is similar to that used by national standards
laboratories to determine a synthetic laboratory timescale from an
ensemble of cesium clocks [ALL74b]. These procedures are optional and
not required in a conforming NTP implementation.

同期サブネットにおける共有する問題は一方向へのネットワークかトランスミッションメディアがもう片方と実質的に異なっている非対称伝送経路から生じる系統的な時間相殺誤謬です。 誤りは高速リングネットワークのマイクロセカンドから大きい衛星/地上通信線経路の秒の何分の一まで及ぶことができます。 より正確な働くオフセットを起こすために多くの時間サーバの見かけのオフセットを結合することによってこれらの誤りをかなり抑えることができるのが実験的に見つけられました。 以下に、Fuzzball[MIL88b]にNTP実現に使用される結合方法の記述があります。 方法はセシウム時計[ALL74b]のアンサンブルから合成の実験室スケールを決定するのに国家規格実験室によって使用されたそれと同様です。 これらの手順は、従っているNTP実現で任意であって、必要ではありません。

In the following description the stability of a clock is how well it can
maintain a constant frequency, the accuracy is how well its frequency
and time compare with national standards and the precision is how
precisely these quantities can be maintained within a particular
timekeeping system. Unless indicated otherwise, The offset of two clocks
is the time difference between them, while the skew is the frequency
difference (first derivative of offset with time) between them. Real
clocks exhibit some variation in skew (second derivative of offset with
time), which is called drift.

精度はその頻度と時間が国家規格とどれくらいよく比較するかということです、そして、以下の記述では、時計の安定性は一定の頻度をどれくらいよく維持できるかということです、そして、精度は特定の時間保持システムの中でどう正確にこれらの量を維持できるかということです。 別の方法で示されない場合、2個の時計のオフセットはそれらの時差です、斜行がそれらの頻度差(時間があるオフセットの一次導関数)ですが。 実際の時計は斜行(時間があるオフセットの二次導関数)の何らかの変化を示します。(斜行はドリフトと呼ばれます)。

Determining Time and Frequency

時間と頻度を測定します。

Figure 9<$&fig9> shows the overall organization of the NTP time-server
model. Timestamps exchanged with possibly many other subnet peers are
used to determine individual roundtrip delays and clock offsets relative
to each peer as described in the NTP specification. As shown in the
figure, the computed delays and offsets are processed by the clock
filter to reduce incidental timing noise and the most accurate and
reliable subset determined by the clock-selection algorithm. The
resulting offsets of this subset are first combined as described below
and then processed by the phase-locked loop (PLL). In the PLL the
combined effects of the filtering, selection and combining operations is
to produce a phase-correction term. This is processed by the loop filter
to control the local clock, which functions as a voltage-controlled
oscillator (VCO). The VCO furnishes the timing (phase) reference to
produce the timestamps used in all calculations.

図9<$とfig9>はNTP日和見主義者モデルの総合的な組織を見せています。 ことによると多くの他のサブネット同輩と共に交換されたタイムスタンプは、NTP仕様で説明されるように各同輩に比例して個々の往復の遅れと時計オフセットを決定するのに使用されます。 計算された遅れとオフセットは図に示されるように時計フィルタによって処理されて、時計選択アルゴリズムによって決定している付帯的なタイミング雑音と最も正確で信頼できる部分集合を減少させます。 この部分集合の結果として起こるオフセットは最初に、フェーズロックドループ(PLL)によって以下で説明されて、次に、処理されるように結合されます。 結合が作用するフィルタリング、選択、および結合操作のPLLに、生産物にはフェーズ修正項があります。 これはループ・フィルタによって処理されます。(それは、地方の時計を制御して、電圧制御発振器(VCO)として機能します)。 VCOは、すべての計算に使用されるタイムスタンプを作り出すためにタイミング(フェーズ)参照を提供します。

Clock Modelling

時計モデル化

The International Standard (SI) definition of time interval is in terms
of the standard second: <169>the duration of 9,192,631,770 periods of
the radiation corresponding to the transition between the two hyperfine
levels of the ground state of the cesium-133 atom.<170> Let u represent
the standard unit of time interval so defined and <$Ev~=~1 over u> be
the standard unit of frequency. The epoch, denoted by t, is defined as
the reading of a counter that runs at frequency v and began counting at
some agreed initial epoch t0, which defines the standard or absolute
timescale. For the purposes of the following analysis, the epoch of the
standard timescale, as well as the time indicated by a clock will be
considered continuous. In practice, time is determined relative to a
clock constructed from an atomic oscillator and system of
counter/dividers, which defines a timescale associated with that
particular oscillator. Standard time and frequency are then determined
from an ensemble of such timescales and algorithms designed to combine
them to produce a composite timescale approximating the standard
timescale.

標準の2番目に関して時間間隔の国際規格(SI)定義があります: 2「超-罰金」の間の変遷に対応する放射の91億9263万1770の一区切りの持続時間が平らにするセシウム-133原子<170>Let uの基底状態の<169>はu>の上にそのように定義された時間間隔と<の標準のユニットをEv~=~1ドル表します。標準のユニットの頻度になってください。 tによって指示された時代は頻度vで走って、いつかの同意された初期元期t0のときに数え始めたカウンタの読書と定義されます。(それは、標準の、または、絶対のスケールを定義します)。 以下の分析の目的、標準のスケールの時代、および時計によって示された時に、連続していた状態で、考えられてくださいだろう。 実際には、時間はに比例して決定しています。時計はその特定の振動子に関連しているスケールを定義します。 標準時、頻度はその時、標準のスケールに近似する合成スケールを生産するためにそれらを結合するように設計されたそのようなスケールとアルゴリズムのアンサンブルから決定しています。

Let <$ET(t)> be the time displayed by a clock at epoch t relative to the
standard timescale:

<$ET(t)>が時代tに時計によって標準のスケールに比例して表示された時間であることをさせてください:

<$ET(t)~=~1/2 D(t sub 0 )[t~-~t sub 0 ] sup 2~+~R(t sub 0 )[t~-~t sub 0
]~ +~T(t sub 0 )~+~x(t)> ,

<$ET(t)~が~1/2D(t潜水艦0)と等しい、[t、~-~t潜水艦0]が2~+~R(t潜水艦0)をすする、[潜水艦0] t~~t~+~T(t潜水艦0)~+~x(t)>。

where <$ED(t sub 0 )> is the fractional frequency drift per unit time,
<$ER(t sub 0 )> the frequency and <$ET(t sub 0 )> the time at some
previous epoch t0. In the usual stationary model these quantities can be
assumed constant or changing slowly with epoch. The random nature of the
clock is characterized by <$Ex(t)>, which represents the random noise
(jitter) relative to the standard timescale. In the usual analysis the
second-order term <$ED(t sub 0 )> is ignored and the noise term <$Ex(t)>
modelled as a normal distribution with predictable spectral density or
autocorrelation function.

<$ED(t潜水艦0)>が断片的な頻度であるところでは、ユニット時間(時間いつかの前の時代t0の<$頻度と<$ET(t潜水艦0)のER(t潜水艦0)>>)単位で漂流してください。 普通の静止したモデルでは、これらの量は、一定であると思われるか、またはゆっくり時代を交換できます。 時計のランダム性は<$Ex(t)>によって特徴付けられます。(>は標準のスケールに比例してランダムノイズ(ジター)を表します)。 普通の分析では、2番目のオーダー用語<$ED(t潜水艦0)>は無視されました、そして、雑音用語<$Ex(t)>は正規分布として予測できるスペクトル密度か自己相関関数でモデル化されました。

The probability density function of time offset <$Eroman p (t~-~T(t))>
usually appears as a bell-shaped curve centered somewhere near zero. The
width and general shape of the curve are determined by <$Ex(t)>, which
depends on the oscillator precision and jitter characteristics, as well
as the measurement system and its transmission paths. Beginning at epoch
t0 the offset is set to zero, following which the bell creeps either to
the left or right, depending on the value of <$ER(t sub 0 )> and
accelerates depending on the value of <$ED(t sub 0 )>.

時間の確率密度関数は<$Eroman pを相殺しました。(通常、t~~T(t))>はベル形をしているカーブとしてゼロの近くのどこかで中心に置かれるように見えます。 カーブの幅と一般的な形は<$Ex(t)>決定しています、測定システムとそのトランスミッション経路と同様に。(>は振動子精度とジターの特性に依存します)。 どれに続いて、合わせてくださいオフセットが設定されるゼロ時代t0から、ベルは、<$ER(t潜水艦0)>の値によって、左か右に這って、<$ED(t潜水艦0)>の値によって、加速します。

Development of a Composite Timescale

合成スケールの開発

Now consider the time offsets of a number of real clocks connected by
real networks. A display of the offsets of all clocks relative to the
standard timescale will appear as a system of bell-shaped curves slowly
precessing relative to each other, but with some further away from
nominal zero than others. The bells will normally be scattered over the
offset space, more or less close to each other, with some overlapping
and some not. The problem is to estimate the true offset relative to the
standard timescale from a system of offsets collected routinely between
the clocks.

今度は、本当のネットワークによって接続された多くの実際の時計の時間オフセットを考えてください。 標準のスケールに比例したすべての時計のオフセットの表示は他のものよりベル形をしているカーブがゆっくり互いに比例してprecessingされるのにもかかわらずの、いくつかがあるシステムとして名目上のゼロからさらに離れているように見えるでしょう。 通常、ベルはオフセットスペースの上に点在するでしょう、多少互いの近くで、いくつかの重なるのといくつかで 問題は時計の間にきまりきって集められたオフセットのシステムからの標準のスケールに比例して本当のオフセットを見積もることです。

A composite timescale can be determined from a sequence of offsets
measured between the n clocks of an ensemble at nominal intervals
<$Etau>. Let <$ER sub i (t sub 0 )> be the frequency and <$ET sub i (t
sub 0 )> the time of the ith clock at epoch t0 relative to the standard
timescale and let <169>^<170> designate the associated estimates. Then,
an estimator for Ti computed at t0 for epoch <$Et sub 0~+~tau> is

合成スケールはアンサンブルのn時計の間で名目上の間隔<$Etau>で測定されたオフセットの系列から決定できます。 <$ER潜水艦i(t潜水艦0)>は標準のスケールに比例した時代t0のith時計の時の頻度と<$ET潜水艦i(t潜水艦0)>であり、<169>^<170>に関連見積りを指定させてください。 そして、Tiのための見積り人は潜水艦0~+~タウ粒子>がある時代<$Etのためのt0で計算しました。

<$ET hat sub i ( t sub 0~+~ tau )~=~R hat sub i (t sub 0 ) tau ~+~T sub
i (t sub 0 )> ,

<$ET帽子潜水艦i(t潜水艦0~+~タウ粒子)~=~R帽子潜水艦i(t潜水艦0)タウ粒子~+~T潜水艦i(t潜水艦0)>。

neglecting second-order terms. Consider a set of n independent time-
offset measurements made between the clocks at epoch <$Et sub 0 ~+~ tau>
and let the offset between clock i and clock j at that epoch be <$ET sub
ij (t sub 0~+~ tau )>, defined as

無視して、2番目に、用語を注文してください。nオフセット測定値が時代に時計の間で作った時間独立している<ドルのEt潜水艦0~+~タウ粒子>の1セットを考えてください、そして、その時代の時計iと時計jの間のオフセットが<$ET潜水艦ij(t潜水艦0~+~タウ粒子)>であることをさせてください、定義されて

<$ET sub ij (t sub 0~+~ tau )~==~T sub i (t sub 0~+~ tau )~-~T sub j (t
sub 0~+~ tau )> .

<$ET潜水艦ij(t潜水艦0~+~タウ粒子)~=~T潜水艦i(t潜水艦0~+~タウ粒子)~~T潜水艦j(t潜水艦0~+~タウ粒子)>。

Note that <$ET sub ij~=~- T sub ji> and <$ET sub ii~=~0>. Let <$Ew sub i
( tau )> be a previously determined weight factor associated with the
ith clock for the nominal interval <$Etau>. The basis for new estimates
at epoch <$Et sub 0~+~ tau > is

その<$~ET潜水艦ij~=T潜水艦ji>と~0<$ET潜水艦ii~=>に注意してください。 名目上の間隔<$Etau>で<$Ew潜水艦i(タウ粒子)>がith時計に関連している以前に決定している重さの要素であることをさせてください。 潜水艦0~+~タウ粒子>がある時代<$Etの新しい見積りの基礎

<$ET sub j (t sub 0~+~tau )~=~sum from {i=1} to n w sub i ( tau )[ T hat
sub i (t sub 0~+~tau )~+~T sub ji (t sub 0~+~tau )].>

n w潜水艦i(タウ粒子)[T帽子潜水艦i(t潜水艦0~+~タウ粒子)~+~T潜水艦ji(t潜水艦0~+~タウ粒子)] i=1から>までの<$ET潜水艦j(t潜水艦0~+~タウ粒子)~=~合計

That is, the apparent time indicated by the jth clock is a weighted
average of the estimated time of each clock at epoch <$Et sub 0 ~+~ tau>
plus the time offset measured between the jth clock and that clock at
epoch <$Et sub 0 ~+~ tau>.

すなわち、jth時計によって示された見かけの時間はEt潜水艦0~+~タウ粒子>と時間オフセットが時代<$Et潜水艦0~+ ~タウ粒子>でjth時計とその時計の間で測定した時代<$のそれぞれの時計のおよそ現代の加重平均です。

An intuitive grasp of the behavior of this algorithm can be gained with
the aid of a few examples. For instance, if <$Ew sub i ( tau )> is unity
for the ith clock and zero for all others, the apparent time for each of
the other clocks is simply the estimated time <$ET hat sub i (t sub
0~+~tau )>. If <$Ew sub i ( tau )> is zero for the ith clock, that clock
can never affect any other clock and its apparent time is determined
entirely from the other clocks. If <$Ew sub i ( tau )~=~1 / n> for all
i, the apparent time of the ith clock is equal to the average of the
time estimates computed at t0 plus the average of the time offsets
measured to all other clocks. Finally, in a system with two clocks and
<$Ew sub i ( tau )~=~1 / 2> for each, and if the estimated time at epoch
<$Et sub 0~+~tau> is fast by 1 s for one clock and slow by 1 s for the
other, the apparent time for both clocks will coincide with the standard
timescale.

いくつかの例の援助はこのアルゴリズムの振舞いの直感的な把握を獲得できます。 例えば、<$Ew潜水艦i(タウ粒子)>がith時計のための統一とすべての他のもののためのゼロであるなら、それぞれの他の時計のための見かけの時間は単におよそ時間<$ET帽子潜水艦i(t潜水艦0~+~タウ粒子)>です。 <$Ew潜水艦i(タウ粒子)>がith時計のためのゼロであるなら、その時計はいかなる他の時計にも決して影響できません、そして、見かけの時間は完全に他の時計から決定しています。 すべてのiの<$Ew潜水艦i(タウ粒子)~=~1/n>であるなら、ith時計の見かけの時間はt0で計算された時間見積りの平均と他のすべての時計に測定された時間オフセットの平均と等しいです。 最終的に、2時計と<ドルがあるシステムでは、それぞれと潜水艦0~+~タウ粒子>が1個の時計には何1秒間も速くて、もう片方には、何1秒間も遅いおよそ時間時代<$Etのときに両方の時計のための見かけの時間が標準のスケールと同時に起こるかどうかのためにEw潜水艦i(タウ粒子)~は~1/2>と等しいです。

In order to establish a basis for the next interval <$Etau>, it is
necessary to update the frequency estimate <$ER hat sub i (t sub 0~+~tau
)> and weight factor <$Ew sub i ( tau )>. The average frequency assumed
for the ith clock during the previous interval <$Etau> is simply the
difference between the times at the beginning and end of the interval
divided by <$Etau>. A good estimator for <$ER sub i (t sub 0~+~tau )>
has been found to be the exponential average of these differences, which
is given by

次の間隔<$Etau>の基礎を確立するために、<$ER帽子潜水艦i(t潜水艦0~+~タウ粒子)>と重さが<$Ew潜水艦i(タウ粒子)>を因数分解するという頻度見積りをアップデートするのが必要です。 ith時計のために前の間隔<$Etau>の間に想定された平均した頻度は単に<$Etau>が割られた間隔の首尾における回の違いです。 与えられているこれらの違いの指数の平均が(t潜水艦0~+~タウ粒子)>に当たられた<$ER潜水艦iのための良い見積り人

<$ER hat sub i (t sub 0~+~tau )~=~R hat sub i (t sub 0 )~+~alpha sub i [
R hat sub i (t sub 0 )~-~{T sub i (t sub 0~+~tau )~-~T sub i (t sub 0 )}
over tau ]> ,

<$ER帽子潜水艦i(t潜水艦0~+~タウ粒子)~=~R帽子潜水艦i(t潜水艦0)~+~アルファ潜水艦i、[R帽子潜水艦i(t潜水艦0)~~、タウ粒子の上のT潜水艦i(t潜水艦0~+~タウ粒子)~~T潜水艦i(t潜水艦0)] >。

where <$Ealpha sub i> is an experimentally determined weight factor
which depends on the estimated frequency error of the ith clock. In
order to calculate the weight factor <$Ew sub i ( tau )>, it is
necessary to determine the expected error <$Eepsilon sub i ( tau )> for
each clock. In the following, braces <169>|<170> indicate absolute value
and brackets <169><<>><170> indicate the infinite time average. In
practice, the infinite averages are computed as exponential time
averages. An estimate of the magnitude of the unbiased error of the ith
clock accumulated over the nominal interval <$Etau> is

<$Ealpha潜水艦i>がith時計のおよそ頻度誤りに依存する実験的に決定している重さの要素であるところ。 重さの要素<$Ew潜水艦i(タウ粒子)>について計算するために、期待誤差<$Eepsilonがi(タウ粒子)>を各時計の代わりに用いることを決定するのが必要です。 以下、<169を強化します。>|<170>は、絶対値と括弧<169><<>><170>が無限の時間平均を示すのを示します。 実際には、無限の平均は指数時間平均として計算されます。 名目上の間隔<$Etau>の上に蓄積されたith時計の不遍の誤りの大きさの見積りはそうです。

<$Eepsilon sub i ( tau )~=~| T hat sub i ( t sub 0~+~tau )~-~T sub i ( t
sub 0~+~tau ) |~+~{0.8~<<~epsilon sub e sup 2 ( tau )~>> } over sqrt {
<<~epsilon sub i sup 2 ( tau )~>> }> ,

<$Eepsilon潜水艦i(タウ粒子)~は~、と等しいです。| T帽子潜水艦i(t潜水艦0~+~タウ粒子)~~T潜水艦i(t潜水艦0~+~タウ粒子)|~+ ~、sqrt<<~ε潜水艦i一口2(タウ粒子)~>>の上の0.8~<<~ε潜水艦e一口2(タウ粒子)~>>、>。

where <$Eepsilon sub i ( tau )> and <$Eepsilon sub e ( tau )> are the
accumulated error of the ith clock and entire clock ensemble,
respectively. The accumulated error of the entire ensemble is

<$Eepsilon潜水艦i(タウ粒子)>と<$Eepsilonが代理をするところでは、e(タウ粒子)>はそれぞれith時計と全体の時計アンサンブルの蓄積された誤りです。 全体のアンサンブルの蓄積された誤りはそうです。

<$E<<~epsilon sub e sup 2 ( tau )~>>~=~left [ sum from i=1 to n~1 over {
<<~epsilon sub i sup 2 ( tau )~>> } right ] sup {~-1}>.

<<~ε潜水艦e一口2(タウ粒子)~>>~=~、が[<<~ε潜水艦i一口2(タウ粒子)~>>の上へ~1、をまさしくi=1からnまでまとめます]一口~-1>を残した<$E。

Finally, the weight factor for the ith clock is calculated as

最終的に、ith時計のための重さの要素として計算されます。

<$Ew sub i ( tau )~=~ { <<~epsilon sub e sup 2 ( tau )~>> } over {
<<~epsilon sub i sup 2 ( tau )~>> }> .

<$Ew潜水艦i(タウ粒子)~は<<~ε潜水艦i一口2(タウ粒子)~>>の上で~<<~ε潜水艦e一口2(タウ粒子)~>>と等しいです。>。

When all estimators and weight factors have been updated, the origin of
the estimation interval is shifted and the new value of t0 becomes the
old value of <$Et sub 0 ~+~ tau>.

すべての見積り人と重さの要素をアップデートしたとき、見積り間隔の起源を移行させます、そして、t0の新しい値は<$Et潜水艦0~+ ~タウ粒子>の古い値になります。

While not entering into the above calculations, it is useful to estimate
the frequency error, since the ensemble clocks can be located some
distance from each other and become isolated for some time due to
network failures. The frequency-offset error in Ri is equivalent to the
fractional frequency yi,

上の計算に入っていない間、頻度誤りを見積もっているのは役に立ちます、アンサンブル時計が互いから何らかの距離に見つけられていて、ネットワーク失敗のためしばらく孤立するようになることができるので。 Riの頻度相殺誤謬は断片的な頻度yiに同等です。

<$Ey sub i~=~{ nu sub i~-~nu sub I } over nu sub I>

<$エー潜水艦i~、が~、と等しい、ν潜水艦i~~ν、が代理をする、私、ν潜水艦I>。

measured between the ith timescale and the standard timescale I.
Temporarily dropping the subscript i for clarity, consider a sequence of
N independent frequency-offset samples <$Ey(j)~ (j~=~1,~2,~... ,~N)>
where the interval between samples is uniform and equal to T. Let
<$Etau> be the nominal interval over which these samples are averaged.
The Allan variance <$Esigma sub y sup 2 ( N,~T,~tau )> [ALL74a] is
defined as
<$E<< sigma sub y sup 2 ( N,~T,~tau )~>>~=~<< ~ 1 over { N~-~1 }~ left [
sum from j=1 to N~y (j) sup 2~-~1 over N~left ( sum from j=1 to N~y(j)
right ) sup 2 right ]~>>> ,

添字を落とすithスケールと標準のスケールI.Temporarilyの間で測定された私、明快には、サンプルの間隔がT.Let<$Etau>と一定であって、等しいN独立している頻度オフセットサンプル<ドルのエー(j)~~1、とj~と等しいです、~2、~…、(~N)>の系列がこれらのサンプルが平均されている名目上の間隔であると考えてください。 アラン変化の<$Esigma潜水艦y一口2(N、~、T~タウ粒子)>[ALL74a]はN~~1~の上の<<σ潜水艦y一口2(N、~、T~タウ粒子)~>>~=~<<~1が[j=1からN~y(j)一口2~~まで1つのより多くのN~左(y(j)をまさしくj=1からN~までまとめる)の一口2権利をまとめます]~>>>を残した<$Eと定義されます。

A particularly useful formulation is <$EN~=~2> and <$ET~=~tau>:

特に役に立つ定式化は<$EN~=2~>で<ドルET~=の~タウ粒子>です:

<$E<< sigma sub y sup 2 (N~=~2,~T~=~tau ,~tau )>>~==~sigma sub y sup 2 (
tau )~=~<< {[y(j~+~1)~-~y(j)] sup 2 } over 2 >>> ,

<$E<<σ潜水艦yが2(N~は~2、と等しいです、~T~=~タウ粒子、~タウ粒子)>>~=~σ潜水艦y一口2(タウ粒子)~=~<<をすする、[y(j~+~1)~~y(j)]一口2、2以上>>>。

so that

so that

<$Esigma sub y sup 2 ( tau )~=~1 over {2(N~-~1)}sum from { j = 1 } to
{n-1 }~[y(j~+~1)~-~y(j)] sup 2> .

2(N~~1)はj=1からn-1まで~、をまとめます。Esigma潜水艦y一口2(タウ粒子)~が~1、と等しい<$、[y(j~+~1)~~y(j)]は2>をすすります。

While the Allan variance has found application when estimating errors in
ensembles of cesium clocks, its application to NTP is limited due to the
computation and storage burden. As described in the next section, it is
possible to estimate errors with some degree of confidence using normal
byproducts of NTP processing algorithms.

セシウム時計のアンサンブルにおける誤りを見積もっているとき、アラン変化は法則を見つけましたが、NTPへのアプリケーションは計算と格納負担のため制限されます。 次のセクションで説明されるように、いくらかの自信がNTP処理アルゴリズムの通常の副産物を使用している誤りを見積もっているのは可能です。

Application to NTP

NTPへのアプリケーション

The NTP clock model is somewhat less complex than the general model
described above. For instance, at the present level of development it is
not necessary to separately estimate the time and frequency of all peer
clocks, only the time and frequency of the local clock. If the
timekeeping reference is the local clock itself, then the offsets
available in the peer.offset peer variables can be used directly for the
<$ET sub ij> quantities above. In addition, the NTP local-clock model
incorporates a type-II phase-locked loop, which itself reliably
estimates frequency errors and corrects accordingly. Thus, the
requirement for estimating frequency is entirely eliminated.

NTP時計モデルは上で説明された一般的なモデルよりいくらか複雑ではありません。 例えば、開発の現在の水準では、別々に地方の時計のすべての同輩時計、時間、および頻度だけの時間と頻度を見積もるのは必要ではありません。 時間保持参照が地方の時計自体であるなら、直接上の<の$ET潜水艦ij>量にpeer.offset同輩変数で利用可能なオフセットを使用できます。 そして、さらに、NTP地方の時計モデルが頻度が誤りであると確かに見積もっているIIをタイプしているフェーズで固定された輪自体を組み込む、それに従って、修正します。 したがって、頻度を見積もるための要件は完全に排除されます。

There remains the problem of how to determine a robust and easily
computable error estimate <$Eepsilon sub i>. The method described above,
although analytically justified, is most difficult to implement.
Happily, as a byproduct of the NTP clock-filter algorithm, a useful
error estimate is available in the form of the dispersion. As described
in the NTP specification, the dispersion includes the absolute value of
the weighted average of the offsets between the chosen offset sample and
the <$En~-~1> other samples retained for selection. The effectiveness of
this estimator was compared with the above estimator by simulation using
observed timekeeping data and found to give quite acceptable results.

どう強健で容易に計算できる誤り見積りに<$Eepsilon潜水艦i>を決定するかに関する問題は残っています。 分析的に正当化されましたが、上で説明された方法は実行するのが最も難しいです。 幸いにも、NTP時計フィルタアルゴリズムの副産物として、役に立つ誤り見積りは分散の形で有効です。 NTP仕様で説明されるように、分散は選ばれたオフセットサンプルと他のサンプルが選択のために保有した<$En~~1>の間のオフセットの加重平均の絶対値を含んでいます。 この見積り人の有効性は、観測された時間保持データを使用しながらシミュレーションで上の見積り人と比較されて、かなり許容できる結果を与えるのがわかりました。

The NTP clock-combining algorithm can be implemented with only minor
modifications to the algorithms as described in the NTP specification.
Although elsewhere in the NTP specification the use of general-purpose
multiply/divide routines has been successfully avoided, there seems to
be no way to avoid them in the clock-combining algorithm. However, for
best performance the local-clock algorithm described elsewhere in this
document should be implemented as well, since the combining algorithms
result in a modest increase in phase noise which the revised local-clock
algorithm is designed to suppress.

NTP仕様で説明されるようにアルゴリズムへの小さい方の変更だけで時計を結合したNTPアルゴリズムは実行できます。 ルーチンは汎用の使用が掛けるか、または割るNTP仕様のほかの場所で首尾よく避けられましたが、時計を結合したアルゴリズムでそれらを避ける方法は全くあるように思えません。 しかしながら、最も良い性能において、ほかの場所で説明された地方の時計アルゴリズムは本書ではまた、実行されるべきです、結合アルゴリズムが改訂された地方の時計アルゴリズムが抑圧するように設計されているフェーズ雑音の穏やかな増加をもたらすので。

Clock-Combining Procedure

時計を結合した手順

The result of the NTP clock-selection procedure is a set of survivors
(there must be at least one) that represent truechimers, or correct
clocks. When clock combining is not implemented, one of these peers,
chosen as the most likely candidate, becomes the synchronization source
and its computed offset becomes the final clock correction.
Subsequently, the system variables are adjusted as described in the NTP
clock-update procedure. When clock combining is implemented, these
actions are unchanged, except that the final clock correction is
computed by the clock-combining procedure.

NTP時計選択手順の結果はtruechimers、または正しい時計を表す1セットの生存者(少なくとも1つがあるに違いありません)です。 時計結合が実行されないで、最もありそうな候補として選ばれたこれらの同輩のひとりが同期ソースになって、計算されたオフセットが最終的な時計修正になると。 次に、システム変数はNTP時計アップデート手順で説明されるように調整されます。 時計であるときに、結合は実行されて、これらの動きは変わりがありません、最終的な時計修正が時計を結合した手順によって計算されるのを除いて。

The clock-combining procedure is called from the clock-select procedure.
It constructs from the variables of all surviving peers the final clock
correction <$ETHETA>. The estimated error required by the algorithms
previously described is based on the synchronization distance <$ELAMBDA>
computed by the distance procedure, as defined in the NTP specification.
The reciprocal of <$ELAMBDA> is the weight of each clock-offset
contribution to the final clock correction. The following pseudo-code
describes the procedure.

時計を結合した手順は時計選んだ手順から呼ばれます。 それはすべての生き残っている同輩の変数から最終的な時計修正<$ETHETA>を組み立てます。 以前に説明されたアルゴリズムによって必要とされたおよそ誤りは距離手順によって計算された同期距離<$ELAMBDA>に基づいています、NTP仕様に基づき定義されるように。 <$ELAMBDA>の逆数は最終的な時計修正へのそれぞれの時計オフセット貢献の重さです。 以下の中間コードは手順について説明します。

begin clock-combining procedure
        <$Etemp1~<<-~0>;
        <$Etemp2~<<-~0>;
        for (each peer remaining on the candidate list)         /* scan
all survivors */
                <$ELAMBDA~<<-~roman distance (peer)>;
                <$Etemp~<<-~1 over roman
{peer.stratum~times~NTP.MAXDISPERSE~+~LAMBDA }>;
                <$Etemp1~<<-~temp1~+~temp>;             /* update weight
and offset */
                <$Etemp2~<<-~temp2~+~temp~times~roman peer.offset>;
                endif;
        <$ETHETA~<<-~temp2 over temp1>;                                 
/* compute final correction */
        end clock-combining procedure;

時計を結合した手順<$Etemp1~<<-~、を始めてください、0>。 <$、Etemp2~<<~0>。 (候補リストに留まる各同輩)/*に関しては、すべての生存者*/<$のELAMBDA~<<-~ローマン体の距離(同輩)>をスキャンしてください。 ローマン体のpeer.stratum~回~NTP.MAXDISPERSE~+~LAMBDAの上の<$Etempな~<<~1、>。 <$Etemp1~<<-~temp1~+~臨時>。 /*アップデート重さとオフセット*/<$Etemp2~<<-~temp2~+~臨時~回の~ローマン体のpeer.offset>。 endif。 temp1>の上の<$ETHETA~<<-~temp2。 /*は時計を結合した最後の修正*/終わりの手順を計算します。

The value <$ETHETA> is the final clock correction used by the local-
clock procedure to adjust the clock.

値の<$ETHETA>は時計を調整するのにローカルの時計手順で使用される最終的な時計修正です。

Appendix G. Computer Clock Modelling and Analysis

付録G.コンピュータ時計モデル化と分析

A computer clock includes some kind of reference oscillator, which is
stabilized by a quartz crystal or some other means, such as the power
grid. Usually, the clock includes a prescaler, which divides the
oscillator frequency to a standard value, such as 1 MHz or 100 Hz, and a
counter, implemented in hardware, software or some combination of the
two, which can be read by the processor. For systems intended to be
synchronized to an external source of standard time, there must be some
means to correct the phase and frequency by occasional vernier
adjustments produced by the timekeeping protocol. Special care is
necessary in all timekeeping system designs to insure that the clock
indications are always monotonically increasing; that is, system time
never <169>runs backwards.<170>

コンピュータ時計はある種の参照振動子を含んでいます、送電網などのように。(振動子は水晶振動子かある他の手段で安定しています)。 通常、時計は「前-スケーラ」を含んでいます、ハードウェア、ソフトウェアまたはプロセッサで読むことができる2つのものの何らかの組み合わせで実行された1MHzや100Hzや、カウンタなどのように。(「前-スケーラ」は振動子頻度を基準値に分割します)。 標準時の外部電源に連動することを意図するシステムのために、時間保持プロトコルで起こされた時々のバーニヤ調整でフェーズと頻度を修正するいくつかの手段があるに違いありません。 特別な注意が時計指摘が単調にいつも増加するのが保障するすべての時間保持システム設計で必要です。 すなわち、<169>が. <170>を後方にへ決して走らせないシステム時

Computer Clock Models

コンピュータ時計モデル

The simplest computer clock consists of a hardware latch which is set by
overflow of a hardware counter or prescaler, and causes a processor
interrupt or tick. The latch is reset when acknowledged by the
processor, which then increments the value of a software clock counter.
The phase of the clock is adjusted by adding periodic corrections to the
counter as necessary. The frequency of the clock can be adjusted by
changing the value of the increment itself, in order to make the clock
run faster or slower. The precision of this simple clock model is
limited to the tick interval, usually in the order of 10 ms; although in
some systems the tick interval can be changed using a kernel variable.

最も簡単なコンピュータ時計はハードウェアカウンタか「前-スケーラ」のオーバーフローで設定されて、プロセッサ割込みかカチカチする音を引き起こすハードウェア掛け金から成ります。 プロセッサ(次に、ソフトウェア時計カウンタの値を増加する)によって承認されると、掛け金はリセットされます。 時計のフェーズは、必要に応じて周期的な修正をカウンタに加えることによって、調整されます。 増分自体の値を変えることによって、時計の頻度を調整できます、時計をより速いか、または、より遅い状態で動かせるように。 この簡単な時計モデルの精度は通常10msの注文でカチカチする音間隔まで制限されます。 いくつかのシステムで変えますが、カーネル変数を使用することでカチカチする音間隔を変えることができます。

This software clock model requires a processor interrupt on every tick,
which can cause significant overhead if the tick interval is small, say
in the order less 1 ms with the newer RISC processors. Thus, in order to
achieve timekeeping precisions less than 1 ms, some kind of hardware
assist is required. A straightforward design consists of a voltage-
controlled oscillator (VCO), in which the frequency is controlled by a
buffered, digital/analog converter (DAC). Under the assumption that the
VCO tolerance is 10-4 or 100 parts-per-million (ppm) (a reasonable value
for inexpensive crystals) and the precision required is 100 <$Emu roman
s> (a reasonable goal for a RISC processor), the DAC must include at
least ten bits.

このソフトウェア時計モデルはあらゆるダニの上でプロセッサ割込みを必要として、オーダーで、より新しいRISCプロセッサで、より少ない1msを言ってください。カチカチする音間隔が小さいなら、そのダニは、重要なオーバーヘッドをもたらすことができます。 したがって、時間保持確度を獲得するために、1ms、ある種のハードウェアアシストが必要です。 簡単なデザインは電圧の制御振動子(VCO)から成ります。そこでは、バッファリングされたディジタル/アナログ変換器(DAC)によって頻度が制御されます。 VCO寛容が10-4であるか(安価な結晶のための適正価値)と精度が必要とした100万あたり100の部品(ppm)が100<ドルのEmuのローマン体のs>(RISCプロセッサの妥当な目標)であるという仮定で、DACは少なくとも10ビットを含まなければなりません。

A design sketch of a computer clock constructed entirely of hardware
logic components is shown in Figure 10a<$&fig10>. The clock is read by
first pulsing the read signal, which latches the current value of the
clock counter, then adding the contents of the clock-counter latch and a
64-bit clock-offset variable, which is maintained in processor memory.
The clock phase is adjusted by adding a correction to the clock-offset
variable, while the clock frequency is adjusted by loading a correction
to the DAC latch. In principle, this clock model can be adapted to any
precision by changing the number of bits of the prescaler or clock
counter or changing the VCO frequency. However, it does not seem useful
to reduce precision much below the minimum interrupt latency, which is
in the low microseconds for a modern RISC processor.

完全なハードウェア論理の部品について組み立てられたコンピュータ時計のデザインスケッチは図10a<$とfig10>に示されます。 最初に読みを律動的に送るのによる次に時計カウンタ掛け金のコンテンツを加える信号と64ビットの時計オフセット変数は時計に読み込まれます。(信号は時計カウンタの現行価値に掛け金をおろします)。(それは、プロセッサメモリで維持されます)。 時計フェーズは時計オフセット変数に修正を追加することによって、調整されます、クロック周波数がDAC掛け金に修正をロードすることによって、調整されますが。 原則として、「前-スケーラ」か時計カウンタのビットの数を変えるか、またはVCO頻度を変えることによって、この時計モデルをどんな精度にも適合させることができます。 しかしながら、最小の中断潜在の下で精度を非常に減少させるのは役に立つように思えません。近代的なRISCプロセッサのための低いマイクロセカンドのときに、潜在があります。

If it is not possible to vary the oscillator frequency, which might be
the case if the oscillator is an external frequency standard, a design
such as shown in Figure 10b may be used. It includes a fixed-frequency
oscillator and prescaler which includes a dual-modulus swallow counter
that can be operated in either divide-by-10 or divide-by-11 modes as
controlled by a pulse produced by a programmable divider (PD). The PD is
loaded with a value representing the frequency offset. Each time the
divider overflows a pulse is produced which switches the swallow counter
from the divide-by-10 mode to the divide-by-11 mode and then back again,
which in effect <169>swallows<170> or deletes a single pulse of the
prescaler pulse train.

振動子が外部の頻度規格であるならケースであるかもしれない振動子頻度を変えるのが可能でないなら、図10bに示されるようなデザインは使用されるかもしれません。 それは固定頻度振動子と制御されるとしてのプログラマブルデバイダー(PD)で発生した1パルスの10分水嶺の、または、11分水嶺のモードで操作できる二元的な係数ツバメカウンタを含んでいる「前-スケーラ」を含んでいます。 頻度オフセットを表す値にPDを積みます。 デバイダーがあふれるたびに10分水嶺のモードからモードとその時が再び支持する事実上、<169>が飲み込む11の分水嶺<170>にツバメカウンタを切り換えるか、または「前-スケーラ」パルストレインの1単一パルスを削除する1パルスが、発生します。

The pulse train produced by the prescaler is controlled precisely over a
small range by the contents of the PD. If programmed to emit pulses at a
low rate, relatively few pulses are swallowed per second and the
frequency counted is near the upper limit of its range; while, if
programmed to emit pulses at a high rate, relatively many pulses are
swallowed and the frequency counted is near the lower limit. Assuming
some degree of freedom in the choice of oscillator frequency and
prescaler ratios, this design can compensate for a wide range of
oscillator frequency tolerances.

「前-スケーラ」によって生産されたパルストレインはPDのコンテンツによってまさに小さい範囲で制御されます。 低率でパルスを放つようにプログラムされるなら、比較的数パルスしか1秒単位で飲み込まれません、そして、ほぼ範囲の上限には数えられた頻度があります。 高価でパルスを放つようにプログラムされるなら、比較的多くのパルスが飲み込まれます、そして、ほぼ下限には数えられた頻度がありますが。 振動子頻度と「前-スケーラ」比の選択における何らかの自由度を仮定する場合、このデザインはさまざまな振動子周波数公差を補うことができます。

In all of the above designs it is necessary to limit the amount of
adjustment incorporated in any step to insure that the system clock
indications are always monotonically increasing. With the software clock
model this is assured as long as the increment is never negative. When
the magnitude of a phase adjustment exceeds the tick interval (as
corrected for the frequency adjustment), it is necessary to spread the
adjustments over mulitple tick intervals. This strategy amounts to a
deliberate frequency offset sustained for an interval equal to the total
number of ticks required and, in fact, is a feature of the Unix clock
model discussed below.

上のデザインでは、システムクロック指摘が単調にいつも増加しているのを保障するためにどんなステップにも組み込んでいる調整の量を制限するのが全部で、必要です。 増分が決して負でない限り、ソフトウェア時計モデルと共に、これは保証されます。 相調整の大きさがカチカチする音間隔を超えているとき(頻度調整のために修正されるように)、mulitpleカチカチする音間隔の上に調整を広げるのが必要です。 この戦略は、必要であるカチカチする音の総数と等しい間隔の間に支えられた慎重な頻度オフセットに達して、事実上、以下で議論したUnix時計モデルの特徴です。

In the hardware clock models the same considerations apply; however, in
these designs the tick interval amounts to a single pulse at the
prescaler output, which may be in the order of 1 ms. In order to avoid
decreasing the indicated time when a negative phase correction occurs,
it is necessary to avoid modifying the clock-offset variable in
processor memory and to confine all adjustments to the VCO or prescaler.
Thus, all phase adjustments must be performed by means of programmed
frequency adjustments in much the same way as with the software clock
model described previously.

ハードウェア時計モデルでは、同じ問題は適用されます。 しかしながら、カチカチする音間隔が陰性期修正が起こる示された時を減少させるのを避ける1つの原稿In命令の注文にあるかもしれない「前-スケーラ」出力のときに1単一パルス達するこれらのデザインでは、プロセッサメモリの時計オフセット変数を変更するのを避けて、すべての調整をVCOか「前-スケーラ」に制限するのが必要です。 したがって、大体同じようなやり方でソフトウェア時計モデルが以前に説明されている場合、プログラムされた頻度調整によってすべての相調整を実行しなければなりません。

It is interesting to conjecture on the design of a processor assist that
could provide all of the above functions in a compact, general-purpose
hardware interface. The interface might consist of a multifunction timer
chip such as the AMD 9513A, which includes five 16-bit counters, each
with programmable load and hold registers, plus an onboard crystal
oscillator, prescaler and control circuitry. A 48-bit hardware clock
counter would utilize three of the 16-bit counters, while the fourth
would be used as the swallow counter and the fifth as the programmable
divider. With the addition of a programmable-array logic device and
architecture-specific host interface, this compact design could provide
all the functions necessary for a comprehensive timekeeping system.

上の機能のすべてをコンパクトで、汎用のハードウェア・インタフェースに提供できたプロセッサアシストのデザインで推測するのはおもしろいです。 インタフェースは、プログラマブル負荷でそれぞれ5台の16ビットのカウンタを含んでいるAMD 9513Aなどの多機能タイマチップから成って、レジスタ、オンボードな水晶発振器、「前-スケーラ」、および制御回路を保持するかもしれません。 48ビットのハードウェア時計カウンタは3台の16ビットのカウンタを利用するでしょう、4番目がツバメカウンタとプログラマブルデバイダーとしての5番目として使用されるでしょうが。 プログラム可能アレイ論理装置と構造特有のホスト・インターフェースの添加に、このコンパクトなデザインは包括的な時間保持システムに必要なすべての機能を提供するかもしれません。

The Fuzzball Clock Model

Fuzzball時計モデル

The Fuzzball clock model uses a combination of hardware and software to
provide precision timing with a minimum of software and processor
overhead. The model includes an oscillator, prescaler and hardware
counter; however, the oscillator frequency remains constant and the
hardware counter produces only a fraction of the total number of bits
required by the clock counter. A typical design uses a 64-bit software
clock counter and a 16-bit hardware counter which counts the prescaler
output. A hardware-counter overflow causes the processor to increment
the software counter at the bit corresponding to the frequency <$E2 sup
N f sub p>, where N is the number of bits of the hardware counter and fp
is the counted frequency at the prescaler output. The processor reads
the clock counter by first generating a read pulse, which latches the
hardware counter, and then adding its contents, suitably aligned, to the
software counter.

Fuzzball時計モデルは、最小ソフトウェアとプロセッサ・オーバヘッドを精密なタイミングに提供するのにハードウェアとソフトウェアの組み合わせを使用します。 モデルは振動子、「前-スケーラ」、およびハードウェアカウンタを入れます。 しかしながら、振動子頻度は一定のままで残っています、そして、ハードウェアカウンタは時計カウンタによって必要とされたビットの総数の部分だけを生産します。 典型的なデザインは64ビットのソフトウェア時計カウンタと「前-スケーラ」出力を数える16ビットのハードウェアカウンタを使用します。 プロセッサは「前-スケーラ」出力のときに2Eの頻度<$一口N f潜水艦p>に対応するビットでハードウェアカウンタオーバーフローでソフトウェアカウンタを増加します。そこでは、Nがハードウェアカウンタのビットの数であり、fpは数えられた頻度です。 プロセッサは、ハードウェアカウンタに掛け金をおろす読書パルスを発生させて、次に、適当に並べられたコンテンツをソフトウェアカウンタに加えながら、最初にで時計カウンタを読みます。

The Fuzzball clock can be corrected in phase by adding a (signed)
adjustment to the software clock counter. In practice, this is done only
when the local time is substantially different from the time indicated
by the clock and may violate the monotonicity requirement. Vernier phase
adjustments determined in normal system operation must be limited to no
more than the period of the counted frequency, which is 1 kHz for LSI-11
Fuzzballs. In the Fuzzball model these adjustments are performed at
intervals of 4 s, called the adjustment interval, which provides a
maximum frequency adjustment range of 250 ppm. The adjustment
opportunities are created using the interval-timer facility, which is a
feature of most operating systems and independent of the time-of-day
clock. However,  if the counted frequency is increased from 1 kHz to 1
MHz for enhanced precision, the adjustment frequency must be increased
to 250 Hz, which substantially increases processor overhead. A modified
design suitable for high precision clocks is presented in the next
section.

フェーズで(サインされます)調整をソフトウェア時計カウンタに加えることによって、Fuzzball時計を修正できます。 実際には、現地時間が時計によって示された時間と実質的に異なって、単調要件に違反するかもしれない場合にだけ、これをします。 数えられた頻度の期間だけまで通常のシステム・オペレーションで決定しているバーニヤ相調整を制限しなければなりません。(頻度はLSI-11Fuzzballsのための1kHzです)。 Fuzzballモデルでは、最大250ppmの頻度調整範囲を提供する調整間隔と呼ばれる4秒間の間隔を置いて、これらの調整は実行されます。 調整の機会は、インタバルタイマ施設(ほとんどのオペレーティングシステムの特徴と時刻時計の独立者である)を使用することで作成されます。 しかしながら、数えられた頻度が高められた精度のために1kHzから1MHzまで増加するなら、調整頻度は250Hzまで増加しなければなりません。(かなり、それは、プロセッサ・オーバヘッドを上げます)。 高い精度時計に適当な変更されたデザインは次のセクションに提示されます。

In some applications involving the Fuzzball model, an external pulse-
per-second (pps) signal is available from a reference source such as a
cesium clock or GPS receiver. Such a signal generally provides much
higher accuracy than the serial character string produced by a radio
timecode receiver, typically in the low nanoseconds. In the Fuzzball
model this signal is processed by an interface which produces a hardware
interrupt coincident with the arrival of the pps pulse. The processor
then reads the clock counter and computes the residual modulo 1 s of the
clock counter. This represents the local-clock error relative to the pps
signal.

使用目的によってはFuzzballモデルにかかわって、パルス2(pps)番目の外部の信号はセシウム時計かGPS受信機などの照合線源から利用可能です。一般に、そのような信号はラジオtimecode受信機によって生産された連続の文字列よりはるかに高い精度を提供します、通常低いナノ秒に。 Fuzzballモデルでは、この信号はppsパルスの到着でハードウェア中断コインシデンスを生産するインタフェースによって処理されます。 プロセッサは、次に、時計カウンタを読んで、時計の1秒間が打ち返す残りの法を計算します。 これはpps信号に比例して地方の時計誤りを表します。

Assuming the seconds numbering of the clock counter has been determined
by a reliable source, such as a timecode receiver, the offset within the
second is determined by the residual computed above. In the NTP local-
clock model the timecode receiver or NTP establishes the time to within
<F128M><F255D>128 ms, called the aperture, which guarantees the seconds
numbering to within the second. Then, the pps residual can be used
directly to correct the oscillator, since the offset must be less than
the aperture for a correctly operating timecode receiver and pps signal.

秒を仮定して、時計カウンタの付番は信頼すべき筋で決定しました、timecode受信機のように2番目の中のオフセットは上で計算された残差で決定します。 NTPの地方の時計では、timecode受信機をモデル化してください。さもないと、NTPは<F128M>--lt; 秒付番を2番目に保証するすきまと呼ばれるF255D>128msに時間を確立します。 次に、振動子を修正するのに直接pps残差を使用できます、オフセットが正しく稼働しているtimecode受信機とpps信号のためのすきまより少ないに違いないので。

The above technique has an inherent error equal to the latency of the
interrupt system, which in modern RISC processors is in the low tens of
microseconds. It is possible to improve accuracy by latching the
hardware time-of-day counter directly by the pps pulse and then reading
the counter in the same way as usual. This requires additional circuitry
to prioritize the pps signal relative to the pulse generated by the
program to latch the counter.
The Unix Clock Model

上のテクニックには、低い10マイクロセカンドのときに、近代的なRISCプロセッサにある割り込みシステムの潜在と等しい固有誤差があります。 直接ppsパルスに従ってハードウェア時刻カウンタに掛け金をおろして、次に、通常通りの同じようにカウンタを読むことによって精度を改良するのは可能です。 これは、カウンタに掛け金をおろすためにプログラムで発生するパルスに比例してpps信号を最優先させるために追加回路を必要とします。 unix時計モデル

The Unix 4.3bsd clock model is based on two system calls, settimeofday
and adjtime, together with two kernel variables tick and tickadj. The
settimeofday call unceremoniously resets the kernel clock to the value
given, while the adjtime call slews the kernel clock to a new value
numerically equal to the sum of the present time of day and the (signed)
argument given in the adjtime call. In order to understand the behavior
of the Unix clock as controlled by the Fuzzball clock model described
above, it is helpful to explore the operations of adjtime in more
detail.

Unix 4.3bsd時計モデルは2つのシステムコール、settimeofday、およびadjtimeに基づいています、2のカーネル変数カチカチする音とtickadjと共に。 settimeofday呼び出しは形式ばらずに与えられた値にカーネル時計をリセットします、adjtimeは、数の上で現在の時刻の合計と等しい新しい値とadjtime呼び出しで与えられた(サインされます)議論にどっさりをカーネル時計と呼びますが。 制御されるとしての上で説明されたFuzzball時計モデルによるUnix時計の働きを理解するために、さらに詳細にadjtimeの操作について調査するのは役立っています。

The Unix clock model assumes an interrupt produced by an onboard
frequency source, such as the clock counter and prescaler described
previously, to deliver a pulse train in the 100-Hz range. In priniciple,
the power grid frequency can be used, although it is much less stable
than a crystal oscillator. Each interrupt causes an increment called
tick to be added to the clock counter. The value of the increment is
chosen so that the clock counter, plus an initial offset established by
the settimeofday call, is equal to the time of day in microseconds.

Unix時計モデルは100Hzの範囲でパルストレインを配送するために時計カウンタや以前に説明された「前-スケーラ」などのオンボードな頻度源によって起こされた中断を仮定します。 prinicipleでは、それは水晶発振器よりあまり安定していませんが、送電網頻度を使用できます。 各中断で、カチカチする音と呼ばれる増分を時計カウンタに加えます。 増分の値が選ばれているので、時計カウンタ、およびsettimeofday呼び出しで確立された初期のオフセットはマイクロセカンドの時刻と等しいです。

The Unix clock can actually run at three different rates, one
corresponding to tick, which is related to the intrinsic frequency of
the particular oscillator used as the clock source, one to
<$Etick~+~tickadj> and the third to <$Etick~-~tickadj>. Normally the
rate corresponding to tick is used; but, if adjtime is called, the
argument <$Edelta> given is used to calculate an interval <$EDELTA
t~=~delta~tick over tickadj> during which one or the other of the two
rates are used, depending on the sign of <$Edelta>. The effect is to
slew the clock to a new value at a small, constant rate, rather than
incorporate the adjustment all at once, which could cause the clock to
be set backward. With common values of <$Etick~=~10> ms and
<$Etickadj~=~5~mu roman s>, the maximum frequency adjustment range is
<$E+- tickadj over tick~=~+- {5~roman x~10 sup -6} over {10 sup -2}> or
<F128M><F255D>500 ppm. Even larger ranges may be required in the case
of some workstations (e.g., SPARCstations) with extremely poor component
tolerances.

実際に3つの異なったレートで走って、1つが対応している場合、Unix時計はカチカチする音、どれが時計ソースとして使用される特定の振動子の本質的な頻度に関連するか、そして、<$Etick~+~tickadj>への1日、および<$Etick~~tickadj>への3日にそうすることができます。 通常、カチカチと音を立てるために対応するレートは使用されています。 しかし、adjtimeが呼ばれるなら、与えられている議論<$Edelta>は間隔<$EDELTA t~、が2つのレートの1かもう片方がどれであるか間に使用されるtickadj>の上の~デルタ~カチカチする音と等しいと見込むのに使用されます、<$Edelta>のサインによって。 どっさりaに新しい時計が小さくて、一定のレートで評価する効果が調整を一気に取り入れるよりむしろあります(時計を後方に設定させることができました)。 <$Etick~=の10~>msで<ドルのEtickadj~=~5~μのローマン体のs>の共通の価値観で、最大の頻度調整範囲は10一口-2>の上でカチカチする音~=~の+上で<$E+5の~ローマン体のx~10一口-6をtickadjするか、<F128M>--lt; F255D>は500ppmです。 さらに大きい範囲が非常に貧しいコンポーネント寛容でいくつかのワークステーション(例えば、SPARCstations)の場合で必要であるかもしれません。

When precisions not less than about 1 ms are required, the Fuzzball
clock model can be adapted to the Unix model by software simulation, as
described in Section 5 of the NTP specification, and calling adjtime at
each adjustment interval. When precisions substantially better than this
are required, the hardware microsecond clock provided in some
workstations can be used together with certain refinements of the
Fuzzball and Unix clock models. The particular design described below is
appropriate for a maximum oscillator frequency tolerance of 100 ppm
(.01%), which can be obtained using a relatively inexpensive quartz
crystal oscillator, but is readily scalable for other assumed
tolerances.

少なくとも確度およそ1msが必要であるときに、ソフトウェアシミュレーションでFuzzball時計モデルをUnixモデルに適合させることができます、NTP仕様のセクション5で説明されて、それぞれの調整間隔を置いてadjtimeと呼ぶとして。 これより実質的に良い確度が必要であるときに、FuzzballとUnix時計モデルのある気品と共にいくつかのワークステーションに提供されたハードウェアマイクロセカンド時計は使用できます。 以下で説明された特定のデザインは、最大比較的安価な水晶発振器を使用することで得ることができる100ppm(.01%)の振動子周波数公差に適切ですが、他の想定された寛容には、容易にスケーラブルです。

The clock model requires the capability to slew the clock frequency over
the range <F128M><F255D>100 ppm with an intrinsic oscillator frequency
error as great as <F128M><F255D>100 ppm. Figure 11<$&fig11> shows the
timing relationships at the extremes of the requirements envelope.
Starting from an assumed offset of nominal zero and an assumed error of
+100 ppm at time 0 s, the line AC shows how the uncorrected offset grows
with time. Let <$Esigma> represent the adjustment interval and a the
interval AB, in seconds, and let r be the slew, or rate at which
corrections are introduced, in ppm. For an accuracy specification of 100
<$Emu roman s>, then

モデルが能力を必要とする時計は<F128M>--lt; F255D>100ppmと同じくらい重大な本質的な振動子頻度誤りで<F128M>--lt; 100ppmの範囲F255D>でクロック周波数を殺しました。 図11<$とfig11>は要件封筒の極端にタイミング関係を示しています。 0秒間の時に名目上のゼロの想定されたオフセットと+100ppmの想定された誤りから始めて、線西暦は時間に応じて非修正のオフセットがどう成長するかを示しています。 <$Esigma>に秒の間隔ABに調整間隔とaを表させてください、そして、rがどっさりであることをさせるか、またはppmでどの修正を導入するかで評価してください。 100<ドルのEmuのローマン体のs>の精度仕様、その時

<$Esigma~<<=~{100~mu roman s} over {100~roman ppm}~+~{100~mu roman s}
over {(r~-~100)~roman ppm}~=~r over {r~-~100}> .
The line AE represents the extreme case where the clock is to be steered
<F128M>-<F255D>100 ppm. Since the slew must be complete at the end of
the adjustment interval,

ローマン体の100~ppmの上r~~100>線AEでの(r~~100)~ローマン体のppm~~=rの上の~+~~100μのローマン体のsが導かれた<F128M>-<がF255D>100ppmであったなら時計がそうである極端なケースを表す~~100μのローマン体の<$Esigma~<<=s。 以来、どっさりは調整間隔の終わりに完全であるに違いありません。

<$Ea~<<=~{(r~-~200)~sigma} over r>.

<$Ea~<<はr>の上で~(r~~200)~σ、と等しいです。

These relationships are satisfied only if <$Er~>>~200~roman ppm> and
<$Esigma~<<~2~roman s>. Using <$Er~=~300~roman ppm> for convenience,
<$Esigma~=~1.5~roman s> and <$Ea~<<=~0.5~roman s>. For the Unix clock
model with <$Etick~=~10~roman ms>, this results in the value of
<$Etickadj~=~3~mu roman s>.

これらの関係はEr~>>~200ドルの<~ローマン体のppm>と<Esigma~<<~2ドル~のローマン体のs>である場合にだけ満たされています。 ~便宜に<をEr~=~300ドルの~ローマン体のppm>使用して、<<は~0.5~ローマン体のs>と1.5~~ローマン体のs>で<ドルの<$Esigma~=Ea、等しいです。 <Etick~=~10ドル~ローマン体のms>があるUnix時計モデルのために、これは<$Etickadj~=の~3~μのローマン体のs>の値をもたらします。

One of the assumptions made in the Unix clock model is that the period
of adjustment computed in the adjtime call must be completed before the
next call is made. If not, this results in an error message to the
system log. However, in order to correct for the intrinsic frequency
offset of the clock oscillator, the NTP clock model requires adjtime to
be called at regular adjustment intervals of <$Esigma> s. Using the
algorithms described here and the architecture constants in the NTP
specification, these adjustments will always complete.

Unix時計モデルでされた仮定の1つは次の電話をかける前にadjtime呼び出しで計算された調整の一区切りを完成しなければならないということです。 そうでなければ、これはシステムログへのエラーメッセージをもたらします。 しかしながら、本質的な頻度のためにクロック発振器のオフセットを修正するために、NTP時計モデルは、adjtimeが<$Esigma>sの一定の調整間隔で、呼ばれるのを必要とします。 NTP仕様でここで説明されたアルゴリズムと構造定数を使用して、これらの調整はいつも使用に完全な状態でなるでしょう。

Mathematical Model of the NTP Logical Clock

NTPの論理的な時計の数学的モデル

The NTP logical clock can be represented by the feedback-control model
shown in Figure 12<$&fig12>. The model consists of an adaptive-
parameter, phase-lock loop (PLL), which continuously adjusts the phase
and frequency of an oscillator to compensate for its intrinsic jitter,
wander and drift. A mathematical analysis of this model developed along
the lines of [SMI86] is presented in following sections, along with a
design example useful for implementation guidance in operating-systems
environments such as Unix and Fuzzball. Table 9<$&tab9> summarizes the
quantities ordinarily treated as variables in the model. By convention,
<$Ev> is used for internal loop variables, <$Etheta> for phase,
<$Eomega> for frequency and <$Etau> for time. Table 10<$&tab10>
summarizes those quantities ordinarily fixed as constants in the model.
Note that these are all expressed as a power of two in order to simplify
the implementation.

図12<$とfig12>で見せられたフィードバック制御モデルはNTPの論理的な時計を表すことができます。 モデルは適応型のパラメタ、絶え間なく本質的なジターを補って、歩き回って、漂流する振動子のフェーズと頻度を調整するフェーズ・ロック輪(PLL)から成ります。 [SMI86]の線に沿って開発されたこのモデルの解析学は以下の章で提示されます、UnixやFuzzballなどのオペレーティングシステム環境における実施要項の役に立つデザインの例と共に。 テーブル9<$とtab9>は通常、モデルで変数として扱われた量をまとめます。 コンベンションによって、<$Ev>が内部のループ変数に使用されて、<はフェーズの$Etheta>と、頻度の<$Eomega>と時間の<$Etau>です。 テーブル10<$とtab10>は通常、定数としてモデルに固定されたそれらの量をまとめます。 これらが実現を簡素化するために2のパワーとしてすべて言い表されることに注意してください。

In Figure 12 the variable <$Etheta sub r> represents the phase of the
reference signal and <$Etheta sub o> the phase of the voltage-controlled
oscillator (VCO). The phase detector (PD) produces a voltage <$Ev sub d>
representing the phase difference <$Etheta sub r~-~theta sub o> . The
clock filter functions as a tapped delay line, with the output <$Ev sub
s> taken at the tap selected by the clock-filter algorithm described in
the NTP specification. The loop filter, represented by the equations
given below, produces a VCO correction voltage <$Ev sub c>, which
controls the oscillator frequency and thus the phase <$Etheta sub o>.

図12では、可変<$Etheta潜水艦r>は参照信号のフェーズを表します、そして、<$Etheta潜水艦o>は電圧制御発振器(VCO)のフェーズを表します。 位相検出器(PD)はフェーズ違いの<$Etheta潜水艦r~~θ潜水艦o>を表すEv潜水艦d>を電圧<ドル生産します。叩かれた遅れとしての時計フィルタ関数は立ち並んでいます、NTP仕様で説明された時計フィルタアルゴリズムによって選択された蛇口で出力<$Ev潜水艦s>を取っていて。 以下に与えられた方程式で表されたループ・フィルタはEv潜水艦c>をVCO補正電圧<ドル生産します。(>は振動子頻度とその結果、フェーズ<$Etheta潜水艦o>を制御します)。

The PLL behavior is completely determined by its open-loop, Laplace
transfer function <$EG(s)> in the s domain. Since both frequency and
phase corrections are required, an appropriate design consists of a
type-II PLL, which is defined by the function

PLLの振舞いは完全に転々流通、sドメインのラプラス伝達関数<$EG(s)>決定しています。 頻度とフェーズ修正の両方が必要であるので、適切なデザインはIIをタイプしているPLLから成ります。(それは、機能によって定義されます)。

<$EG(s)~=~{omega sub c sup 2} over {tau sup 2 s sup 2}~( 1 ~+~{tau s}
over omega sub z )> ,

<$EG(s)~は2秒間のタウ粒子一口一口2~オメガ潜水艦zの上の1つの~+~(タウ粒子s)>の上で~オメガ潜水艦c一口2と等しいです。

where <$Eomega sub c> is the crossover frequency (also called loop
gain), <$Eomega sub z> is the corner frequency (required for loop
stability) and <$Etau> determines the PLL time constant and thus the
bandwidth. While this is a first-order function and some improvement in
phase noise might be gained from a higher-order function, in practice
the improvement is lost due to the effects of the clock-filter delay, as
described below.

<$Eomega潜水艦c>がクロスオーバー周波数(また、ループゲインと呼ばれる)であるところでは、<$Eomega潜水艦z>はコーナ周波数(輪の安定性のために、必要である)です、そして、<$Etau>はPLL時定数とその結果帯域幅を測定します。 これは一次機能です、そして、高階関数からフェーズ雑音における何らかの改良を獲得するかもしれませんが、実際には、時計フィルタ遅れの効果のため改良を失います、以下で説明されるように。

The open-loop transfer function <$EG(s)> is constructed by breaking the
loop at point a on Figure 12 and computing the ratio of the output phase
<$Etheta sub o (s)> to the reference phase <$Etheta sub r (s)>. This
function is the product of the individual transfer functions for the
phase detector, clock filter, loop filter and VCO. The phase detector
delivers a voltage <$Ev sub d (t)~=~ theta sub r (t)>, so its transfer
function is simply <$EF sub d (s)~=~1>, expressed in V/rad. The VCO
delivers a frequency change <$EDELTA omega ~=~{roman d~theta sub o (t)}
over {roman dt}~=~alpha {v sub c (t)}>, where <$Ealpha> is the VCO gain
in rad/V-sec and <$Etheta sub o (t)~=~alpha~int v sub c (t)~dt>. Its
transfer function is the Laplace transform of the integral, <$EF sub o
(s)~=~alpha over s>, expressed in rad/V. The clock filter contributes a
stochastic delay due to the clock-filter algorithm; but, for present
purposes, this delay will be assumed a constant T, so its transfer
function is the Laplace transform of the delay, <$EF sub s (s)~=~e sup
{- Ts}>. Let <$EF(s)> be the transfer function of the loop filter, which
has yet to be determined. The open-loop transfer function <$EG(s)> is
the product of these four individual transfer functions:

The open-loop transfer function <$EG(s)> is constructed by breaking the loop at point a on Figure 12 and computing the ratio of the output phase <$Etheta sub o (s)> to the reference phase <$Etheta sub r (s)>. This function is the product of the individual transfer functions for the phase detector, clock filter, loop filter and VCO. The phase detector delivers a voltage <$Ev sub d (t)~=~ theta sub r (t)>, so its transfer function is simply <$EF sub d (s)~=~1>, expressed in V/rad. The VCO delivers a frequency change <$EDELTA omega ~=~{roman d~theta sub o (t)} over {roman dt}~=~alpha {v sub c (t)}>, where <$Ealpha> is the VCO gain in rad/V-sec and <$Etheta sub o (t)~=~alpha~int v sub c (t)~dt>. Its transfer function is the Laplace transform of the integral, <$EF sub o (s)~=~alpha over s>, expressed in rad/V. The clock filter contributes a stochastic delay due to the clock-filter algorithm; but, for present purposes, this delay will be assumed a constant T, so its transfer function is the Laplace transform of the delay, <$EF sub s (s)~=~e sup {- Ts}>. Let <$EF(s)> be the transfer function of the loop filter, which has yet to be determined. The open-loop transfer function <$EG(s)> is the product of these four individual transfer functions:

<$EG(s)~=~{omega sub c sup 2} over {tau sup 2 s sup 2}~( 1 ~+~{tau s}
over omega sub z )~=~F sub d (s) F sub s (s) F(s) F sub o (s)~=~1e sup
{-Ts}~F(s)~alpha over s> .

<$EG(s)~=~{omega sub c sup 2} over {tau sup 2 s sup 2}~( 1 ~+~{tau s} over omega sub z )~=~F sub d (s) F sub s (s) F(s) F sub o (s)~=~1e sup {-Ts}~F(s)~alpha over s> .

For the moment, assume that the product <$ETs> is small, so that <$Ee
sup {-Ts}~approx ~1>. Making the following substitutions,

For the moment, assume that the product <$ETs> is small, so that <$Ee sup {-Ts}~approx ~1>. Making the following substitutions,

<$Eomega sub c sup 2~=~alpha over { K sub f}~~~~> and <$E~~~~omega sub
z~=~K sub g over {K sub f}>

<$Eomega sub c sup 2~=~alpha over { K sub f}~~~~> and <$E~~~~omega sub z~=~K sub g over {K sub f}>

and rearranging yields

and rearranging yields

<$EF(s)~=~1 over {K sub g~tau}~+~1 over {K sub f~tau sup 2 s }> ,

<$EF(s)~=~1 over {K sub g~tau}~+~1 over {K sub f~tau sup 2 s }> ,

which corresponds to a constant term plus an integrating term scaled by
the PLL time constant <$Etau>. This form is convenient for
implementation as a sampled-data system, as described later.

which corresponds to a constant term plus an integrating term scaled by the PLL time constant <$Etau>. This form is convenient for implementation as a sampled-data system, as described later.

With the parameter values given in Table 10, the Bode plot of the open-
loop transfer function <$EG(s)> consists of a <196>12 dB/octave line
which intersects the 0-dB baseline at <$Eomega sub c~=~2 sup -12> rad/s,
together with a +6 dB/octave line at the corner frequency <$Eomega sub
z~=~2 sup -14> rad/s. The damping factor <$Ezeta~=~omega sub c over {2
omega sub z}~=~2> suggests the PLL will be stable and have a large phase
margin together with a low overshoot. However, if the clock-filter delay
T is not small compared to the loop delay, which is approximately equal
to <$E1 over omega sub c>, the above analysis becomes unreliable and the
loop can become unstable. With the values determined as above, T is
ordinarily small enough to be neglected.

With the parameter values given in Table 10, the Bode plot of the open- loop transfer function <$EG(s)> consists of a <196>12 dB/octave line which intersects the 0-dB baseline at <$Eomega sub c~=~2 sup -12> rad/s, together with a +6 dB/octave line at the corner frequency <$Eomega sub z~=~2 sup -14> rad/s. The damping factor <$Ezeta~=~omega sub c over {2 omega sub z}~=~2> suggests the PLL will be stable and have a large phase margin together with a low overshoot. However, if the clock-filter delay T is not small compared to the loop delay, which is approximately equal to <$E1 over omega sub c>, the above analysis becomes unreliable and the loop can become unstable. With the values determined as above, T is ordinarily small enough to be neglected.

Assuming the output is taken at <$Ev sub s>, the closed-loop transfer
function <$EH(s)> is

Assuming the output is taken at <$Ev sub s>, the closed-loop transfer function <$EH(s)> is

<$EH(s)~==~{v sub s (s)} over {theta sub r (s)}~=~{F sub d (s) e sup {-
Ts}} over {1~+~G(s)}> .

<$EH(s)~==~{v sub s (s)} over {theta sub r (s)}~=~{F sub d (s) e sup {- Ts}} over {1~+~G(s)}> .

If only the relative response is needed and the clock-filter delay can
be neglected, <$EH(s)> can be written

If only the relative response is needed and the clock-filter delay can be neglected, <$EH(s)> can be written

<$EH(s)~=~1 over {1~+~G(s)}~=~s sup 2 over {s sup 2~+~omega sub c sup 2
over {omega sub z~tau} s~+~omega sub c sup 2 over tau sup 2}> .

<$EH(s)~=~1 over {1~+~G(s)}~=~s sup 2 over {s sup 2~+~omega sub c sup 2 over {omega sub z~tau} s~+~omega sub c sup 2 over tau sup 2}> .

For some input function <$EI(s)> the output function <$EI(s)H(s)> can be
inverted to find the time response. Using a unit-step input <$EI(s)~=~1
over s> and the values determined as above, This yields a PLL risetime
of about 52 minutes, a maximum overshoot of about 4.8 percent in about
1.7 hours and a settling time to within one percent of the initial
offset in about 8.7 hours.
Parameter Management

For some input function <$EI(s)> the output function <$EI(s)H(s)> can be inverted to find the time response. Using a unit-step input <$EI(s)~=~1 over s> and the values determined as above, This yields a PLL risetime of about 52 minutes, a maximum overshoot of about 4.8 percent in about 1.7 hours and a settling time to within one percent of the initial offset in about 8.7 hours. Parameter Management

A very important feature of the NTP PLL design is the ability to adapt
its behavior to match the prevailing stability of the local oscillator
and transmission conditions in the network. This is done using the
<$Ealpha> and <$Etau> parameters shown in Table 10. Mechanisms for doing
this are described in following sections.

A very important feature of the NTP PLL design is the ability to adapt its behavior to match the prevailing stability of the local oscillator and transmission conditions in the network. This is done using the <$Ealpha> and <$Etau> parameters shown in Table 10. Mechanisms for doing this are described in following sections.

Adjusting VCO Gain (<$Ebold alpha>)

Adjusting VCO Gain (<$Ebold alpha>)

The <$Ealpha> parameter is determined by the maximum frequency tolerance
of the local oscillator and the maximum jitter requirements of the
timekeeping system. This parameter is usually an architecture constant
and fixed during system operation. In the implementation model described
below, the reciprocal of <$Ealpha>, called the adjustment interval
<$Esigma>, determines the time between corrections of the local clock,
and thus the value of <$Ealpha>. The value of <$Esigma> can be
determined by the following procedure.

The <$Ealpha> parameter is determined by the maximum frequency tolerance of the local oscillator and the maximum jitter requirements of the timekeeping system. This parameter is usually an architecture constant and fixed during system operation. In the implementation model described below, the reciprocal of <$Ealpha>, called the adjustment interval <$Esigma>, determines the time between corrections of the local clock, and thus the value of <$Ealpha>. The value of <$Esigma> can be determined by the following procedure.

The maximum frequency tolerance for board-mounted, uncompensated quartz-
crystal oscillators is probably in the range of 10-4 (100 ppm). Many if
not most Internet timekeeping systems can tolerate jitter to at least
the order of the intrinsic local-clock resolution, called precision in
the NTP specification, which is commonly in the range from one to 20 ms.
Assuming 10-3 s peak-to-peak as the most demanding case, the interval
between clock corrections must be no more than <$Esigma~=~10 sup -3 over
{2 roman~x~10 sup -4}~=~5> sec. For the NTP reference model
<$Esigma~=~4> sec in order to allow for known features of the Unix
operating-system kernel. However, in order to support future anticipated
improvements in accuracy possible with faster workstations, it may be
useful to decrease <$Esigma> to as little as one-tenth the present
value.

The maximum frequency tolerance for board-mounted, uncompensated quartz- crystal oscillators is probably in the range of 10-4 (100 ppm). Many if not most Internet timekeeping systems can tolerate jitter to at least the order of the intrinsic local-clock resolution, called precision in the NTP specification, which is commonly in the range from one to 20 ms. Assuming 10-3 s peak-to-peak as the most demanding case, the interval between clock corrections must be no more than <$Esigma~=~10 sup -3 over {2 roman~x~10 sup -4}~=~5> sec. For the NTP reference model <$Esigma~=~4> sec in order to allow for known features of the Unix operating-system kernel. However, in order to support future anticipated improvements in accuracy possible with faster workstations, it may be useful to decrease <$Esigma> to as little as one-tenth the present value.

Note that if <$Esigma> is changed, it is necessary to adjust the
parameters <$EK sub f> and <$EK sub g> in order to retain the same loop
bandwidth; in particular, the same <$Eomega sub c> and <$Eomega sub z>.
Since <$Ealpha> varies as the reciprocal of <$Esigma>, if <$Esigma> is
changed to something other than 22, as in Table 10, it is necessary to
divide both <$EK sub f> and <$EK sub g> by <$Esigma over 4> to obtain
the new values.

Note that if <$Esigma> is changed, it is necessary to adjust the parameters <$EK sub f> and <$EK sub g> in order to retain the same loop bandwidth; in particular, the same <$Eomega sub c> and <$Eomega sub z>. Since <$Ealpha> varies as the reciprocal of <$Esigma>, if <$Esigma> is changed to something other than 22, as in Table 10, it is necessary to divide both <$EK sub f> and <$EK sub g> by <$Esigma over 4> to obtain the new values.

Adjusting PLL Bandwidth (<$Ebold tau>)

Adjusting PLL Bandwidth (<$Ebold tau>)

A key feature of the type-II PLL design is its capability to compensate
for the intrinsic frequency errors of the local oscillator. This
requires a initial period of adaptation in order to refine the frequency
estimate (see later sections of this appendix). The <$Etau> parameter
determines the PLL time constant and thus the loop bandwidth, which is
approximately equal to <$E{omega sub c} over tau>. When operated with a
relatively large bandwidth (small <$Etau>), as in the analysis above,
the PLL adapts quickly to changes in the input reference signal, but has
poor long term stability. Thus, it is possible to accumulate substantial
errors if the system is deprived of the reference signal for an extended
period. When operated with a relatively small bandwidth (large <$Etau>),
the PLL adapts slowly to changes in the input reference signal, and may
even fail to lock onto it. Assuming the frequency estimate has
stabilized, it is possible for the PLL to coast for an extended period
without external corrections and without accumulating significant error.

A key feature of the type-II PLL design is its capability to compensate for the intrinsic frequency errors of the local oscillator. This requires a initial period of adaptation in order to refine the frequency estimate (see later sections of this appendix). The <$Etau> parameter determines the PLL time constant and thus the loop bandwidth, which is approximately equal to <$E{omega sub c} over tau>. When operated with a relatively large bandwidth (small <$Etau>), as in the analysis above, the PLL adapts quickly to changes in the input reference signal, but has poor long term stability. Thus, it is possible to accumulate substantial errors if the system is deprived of the reference signal for an extended period. When operated with a relatively small bandwidth (large <$Etau>), the PLL adapts slowly to changes in the input reference signal, and may even fail to lock onto it. Assuming the frequency estimate has stabilized, it is possible for the PLL to coast for an extended period without external corrections and without accumulating significant error.

In order to achieve the best performance without requiring individual
tailoring of the loop bandwidth, it is necessary to compute each value
of <$Etau> based on the measured values of offset, delay and dispersion,
as produced by the NTP protocol itself. The traditional way of doing
this in precision timekeeping systems based on cesium clocks, is to
relate <$Etau> to the Allan variance, which is defined as the mean of
the first-order differences of sequential samples measured during a
specified interval <$Etau>,

In order to achieve the best performance without requiring individual tailoring of the loop bandwidth, it is necessary to compute each value of <$Etau> based on the measured values of offset, delay and dispersion, as produced by the NTP protocol itself. The traditional way of doing this in precision timekeeping systems based on cesium clocks, is to relate <$Etau> to the Allan variance, which is defined as the mean of the first-order differences of sequential samples measured during a specified interval <$Etau>,

<$Esigma sub y sup 2 ( tau )~=~1 over {2(N~-~1)}sum from { i = 1 } to
{N-1 }~[y(i~+~1)~-~y(i)] sup 2> ,

<$Esigma sub y sup 2 ( tau )~=~1 over {2(N~-~1)}sum from { i = 1 } to {N-1 }~[y(i~+~1)~-~y(i)] sup 2> ,

where y is the fractional frequency measured with respect to the local
timescale and N is the number of samples.

where y is the fractional frequency measured with respect to the local timescale and N is the number of samples.

In the NTP local-clock model the Allan variance (called the compliance,
h in Table 11) is approximated on a continuous basis by exponentially
averaging the first-order differences of the offset samples using an
empirically determined averaging constant. Using somewhat ad-hoc mapping
functions determined from simulation and experience, the compliance is
manipulated to produce the loop time constant and update interval.

In the NTP local-clock model the Allan variance (called the compliance, h in Table 11) is approximated on a continuous basis by exponentially averaging the first-order differences of the offset samples using an empirically determined averaging constant. Using somewhat ad-hoc mapping functions determined from simulation and experience, the compliance is manipulated to produce the loop time constant and update interval.

The NTP Clock Model

The NTP Clock Model

The PLL behavior can also be described by a set of recurrence equations,
which depend upon several variables and constants. The variables and
parameters used in these equations are shown in Tables 9, 10 and
11<$&tab11>. Note the use of powers of two, which facilitates
implementation using arithmetic shifts and avoids the requirement for a
multiply/divide capability.

The PLL behavior can also be described by a set of recurrence equations, which depend upon several variables and constants. The variables and parameters used in these equations are shown in Tables 9, 10 and 11<$&tab11>. Note the use of powers of two, which facilitates implementation using arithmetic shifts and avoids the requirement for a multiply/divide capability.

A capsule overview of the design may be helpful in understanding how it
operates. The logical clock is continuously adjusted in small increments
at fixed intervals of <$Esigma>. The increments are determined while
updating the variables shown in Tables 9 and 11, which are computed from
received NTP messages as described in the NTP specification. Updates
computed from these messages occur at discrete times as each is
received. The intervals <$Emu> between updates are variable and can
range up to about 17 minutes. As part of update processing the
compliance h is computed and used to adjust the PLL time constant
<$Etau>. Finally, the update interval <$Erho> for transmitted NTP
messages is determined as a fixed multiple of <$Etau>.

A capsule overview of the design may be helpful in understanding how it operates. The logical clock is continuously adjusted in small increments at fixed intervals of <$Esigma>. The increments are determined while updating the variables shown in Tables 9 and 11, which are computed from received NTP messages as described in the NTP specification. Updates computed from these messages occur at discrete times as each is received. The intervals <$Emu> between updates are variable and can range up to about 17 minutes. As part of update processing the compliance h is computed and used to adjust the PLL time constant <$Etau>. Finally, the update interval <$Erho> for transmitted NTP messages is determined as a fixed multiple of <$Etau>.

Updates are numbered from zero, with those in the neighborhood of the
ith update shown in Figure 13<$&fig13>. All variables are initialized at
<$Ei~=~0> to zero, except the time constant <$Etau (0)~=~tau>, poll
interval <$Emu (0)~=~tau> (from Table 10) and compliance <$Eh (0)~=~K
sub s>. After an interval <$Emu (i)> (<$Ei~>>~0>) from the previous
update the ith update arrives at time <$Et(i)> including the time
offset <$Ev sub s (i)>. Then, after an interval <$Emu (i~+~1)> the
<$Ei+1 roman th> update arrives at time <$Et(i~+~1)> including the time
offset <$Ev sub s (i~+~1)>. When the update <$Ev sub s (i)> is received,
the frequency error <$Ef(i~+~1)> and phase error <$Eg(i~+~1)> are
computed:

Updates are numbered from zero, with those in the neighborhood of the ith update shown in Figure 13<$&fig13>. All variables are initialized at <$Ei~=~0> to zero, except the time constant <$Etau (0)~=~tau>, poll interval <$Emu (0)~=~tau> (from Table 10) and compliance <$Eh (0)~=~K sub s>. After an interval <$Emu (i)> (<$Ei~>>~0>) from the previous update the ith update arrives at time <$Et(i)> including the time offset <$Ev sub s (i)>. Then, after an interval <$Emu (i~+~1)> the <$Ei+1 roman th> update arrives at time <$Et(i~+~1)> including the time offset <$Ev sub s (i~+~1)>. When the update <$Ev sub s (i)> is received, the frequency error <$Ef(i~+~1)> and phase error <$Eg(i~+~1)> are computed:

<$Ef(i~+~1)~=~f(i)~+~{mu (i) v sub s (i)} over {tau (i) sup 2 }>
,<$E~~~~~g(i~+~1)~=~{v sub s (i)} over {tau (i)}> .

<$Ef(i~+~1)~=~f(i)~+~{mu (i) v sub s (i)} over {tau (i) sup 2 }> ,<$E~~~~~g(i~+~1)~=~{v sub s (i)} over {tau (i)}> .

Note that these computations depend on the value of the time constant
<$Etau (i)> and poll interval <$Emu (i)> previously computed from the
<$Ei-1 roman th> update. Then, the time constant for the next interval
is computed from the current value of the compliance <$Eh(i)>

Note that these computations depend on the value of the time constant <$Etau (i)> and poll interval <$Emu (i)> previously computed from the <$Ei-1 roman th> update. Then, the time constant for the next interval is computed from the current value of the compliance <$Eh(i)>

<$Etau (i~+~1)~=~roman max [K sub s~-~|~h(i)|,~1]> .

<$Etau (i~+~1)~=~roman max [K sub s~-~|~h(i)|,~1]> .

Next, using the new value of <$Etau>, called <$Etau prime> to avoid
confusion, the poll interval is computed

Next, using the new value of <$Etau>, called <$Etau prime> to avoid confusion, the poll interval is computed

<$Erho (i~+~1)~=~K sub u~tau prime> .

<$Erho (i~+~1)~=~K sub u~tau prime> .

Finally, the compliance <$Eh(i~+~1)> is recomputed for use in the <$Ei+1
roman th> update:
<$Eh(i~+~1)~=~h(i)~+~{K sub t~tau prime v sub s (i)~-~h(i) }over K sub
h> .

Finally, the compliance <$Eh(i~+~1)> is recomputed for use in the <$Ei+1 roman th> update: <$Eh(i~+~1)~=~h(i)~+~{K sub t~tau prime v sub s (i)~-~h(i) }over K sub h> .

The factor <$Etau prime> in the above has the effect of adjusting the
bandwidth of the PLL as a function of compliance. When the compliance
has been low over some relatively long period, <$Etau prime> is
increased and the bandwidth is decreased. In this mode small timing
fluctuations due to jitter in the network are suppressed and the PLL
attains the most accurate frequency estimate. On the other hand, if the
compliance becomes high due to greatly increased jitter or a systematic
frequency offset, <$Etau prime> is decreased and the bandwidth is
increased. In this mode the PLL is most adaptive to transients which can
occur due to reboot of the system or a major timing error. In order to
maintain optimum stability, the poll interval <$Erho> is varied directly
with <$Etau>.

The factor <$Etau prime> in the above has the effect of adjusting the bandwidth of the PLL as a function of compliance. When the compliance has been low over some relatively long period, <$Etau prime> is increased and the bandwidth is decreased. In this mode small timing fluctuations due to jitter in the network are suppressed and the PLL attains the most accurate frequency estimate. On the other hand, if the compliance becomes high due to greatly increased jitter or a systematic frequency offset, <$Etau prime> is decreased and the bandwidth is increased. In this mode the PLL is most adaptive to transients which can occur due to reboot of the system or a major timing error. In order to maintain optimum stability, the poll interval <$Erho> is varied directly with <$Etau>.

A model suitable for simulation and parameter refinement can be
constructed from the above recurrence relations. It is convenient to set
the temporary variable <$Ea~=~g(i~+~1)>. At each adjustment interval
<$Esigma> the quantity <$Ea over K sub g~+~{f(i~+~1)} over K sub f> is
added to the local-clock phase and the quantity <$Ea over K sub g> is
subtracted from a. For convenience, let n be the greatest integer in
<$E{mu (i)} over sigma>; that is, the number of adjustments that occur
in the ith interval. Thus, at the end of the ith interval just before
the <$Ei+1 roman th> update, the VCO control voltage is:

A model suitable for simulation and parameter refinement can be constructed from the above recurrence relations. It is convenient to set the temporary variable <$Ea~=~g(i~+~1)>. At each adjustment interval <$Esigma> the quantity <$Ea over K sub g~+~{f(i~+~1)} over K sub f> is added to the local-clock phase and the quantity <$Ea over K sub g> is subtracted from a. For convenience, let n be the greatest integer in <$E{mu (i)} over sigma>; that is, the number of adjustments that occur in the ith interval. Thus, at the end of the ith interval just before the <$Ei+1 roman th> update, the VCO control voltage is:

<$Ev sub c (i~+~1)~=~v sub c (i)~+~{[1~-~(1~-~1 over K sub g ) sup n
]}~{g(i~+~1)} ~+~n over {K sub f }~{ f(i~+~1)}~.>

<$Ev sub c (i~+~1)~=~v sub c (i)~+~{[1~-~(1~-~1 over K sub g ) sup n ]}~{g(i~+~1)} ~+~n over {K sub f }~{ f(i~+~1)}~.>

Detailed simulation of the NTP PLL with the values specified in Tables
9, 10 and 11 and the clock filter described in the NTP specification
results in the following characteristics: For a 100-ms phase change the
loop reaches zero error in 39 minutes, overshoots 7 ms at 54 minutes and
settles to less than 1 ms in about six hours. For a 50-ppm frequency
change the loop reaches 1 ppm in about 16 hours and 0.1 ppm in about 26
hours. When the magnitude of correction exceeds a few milliseconds or a
few ppm for more than a few updates, the compliance begins to increase,
which causes the loop time constant and update interval to decrease.
When the magnitude of correction falls below about 0.1 ppm for a few
hours, the compliance begins to decrease, which causes the loop time
constant and update interval to increase. The effect is to provide a
broad capture range exceeding 4 s per day, yet the capability to resolve
oscillator skew well below 1 ms per day. These characteristics are
appropriate for typical crystal-controlled oscillators with or without
temperature compensation or oven control.

Detailed simulation of the NTP PLL with the values specified in Tables 9, 10 and 11 and the clock filter described in the NTP specification results in the following characteristics: For a 100-ms phase change the loop reaches zero error in 39 minutes, overshoots 7 ms at 54 minutes and settles to less than 1 ms in about six hours. For a 50-ppm frequency change the loop reaches 1 ppm in about 16 hours and 0.1 ppm in about 26 hours. When the magnitude of correction exceeds a few milliseconds or a few ppm for more than a few updates, the compliance begins to increase, which causes the loop time constant and update interval to decrease. When the magnitude of correction falls below about 0.1 ppm for a few hours, the compliance begins to decrease, which causes the loop time constant and update interval to increase. The effect is to provide a broad capture range exceeding 4 s per day, yet the capability to resolve oscillator skew well below 1 ms per day. These characteristics are appropriate for typical crystal-controlled oscillators with or without temperature compensation or oven control.

Appendix H. Analysis of Errors and Correctness Principles

Appendix H. Analysis of Errors and Correctness Principles

Introduction

Introduction

This appendix contains an analysis of errors arising in the generation
and processing of NTP timestamps and the determination of delays and
offsets. It establishes error bounds as a function of measured roundtrip
delay and dispersion to the root (primary reference source) of the
synchronization subnet. It also discusses correctness assertions about
these error bounds and the time-transfer, filtering and selection
algorithms used in NTP.

This appendix contains an analysis of errors arising in the generation and processing of NTP timestamps and the determination of delays and offsets. It establishes error bounds as a function of measured roundtrip delay and dispersion to the root (primary reference source) of the synchronization subnet. It also discusses correctness assertions about these error bounds and the time-transfer, filtering and selection algorithms used in NTP.

The notation <$Ew~=~[u,~v]> in the following describes the interval in
which u is the lower limit and v the upper limit, inclusive. Thus,
<$Eu~=~min (w)~<<=~v~=~max (w)>, and for scalar a,
<$Ew~+~a~=~[u~+~a,~v~+~a]>. Table 12<$&tab12> shows a summary of other
notation used in the analysis. The notation <$E<<~x~>>> designates the
(infinite) average of x, which is usually approximated by an exponential
average, while the notation <$Ex hat> designates an estimator for x. The
lower-case Greek letters <$Etheta>, <$Edelta> and <$Eepsilon> are used
to designate measurement data for the local clock to a peer clock, while
the upper-case Greek letters <$ETHETA>, <$EDELTA> and <$EEPSILON> are
used to designate measurement data for the local clock relative to the
primary reference source at the root of the synchronization subnet.
Exceptions will be noted as they arise.

以下の記法<$Ew~=~[u、~v]>はどのuが下限であるか、そして、上限に対して間隔について説明します、包括的です。 したがって、<$ユー~=~分(w)~<<は~=~最大(w)>、およびスカラのa、<$Ew~+~a~=~[u~+~a、~+~aに対する~]>の~、と等しいです。 テーブル12<$とtab12>は分析に使用される他の記法の概要を示しています。 記法<$E<<~x~>>>は指数の平均で通常、近似されているxの(無限)の平均を指定します、記法<$Ex帽子>はxのために見積り人を任命しますが。 小文字のギリシアの手紙<$のEtheta>、<$Edelta>、および<$Eepsilon>は地方の時計のための測定データを同輩時計に指定するのに使用されます、大文字ギリシアの手紙<$のETHETA>、<$EDELTA>、および<$EEPSILON>は同期サブネットの根の第一の照合線源に比例して地方の時計のための測定データを指定するのに使用されますが。 起こるとき、例外は注意されるでしょう。

Timestamp Errors

タイムスタンプ誤り

The standard second (1 s) is defined as <169>9,192,631,770 periods of
the radiation corresponding to the transition between the two hyperfine
levels of the ground state of the cesium-133 atom<170> [ALL74b], which
implies a granularity of about 1.1x10-10 s. Other intervals can be
determined as rational multiples of 1 s. While NTP time has an inherent
resolution of about 2.3x10-10 s, local clocks ordinarily have
resolutions much worse than this, so the inherent error in resolving NTP
time relative to the 1 s can be neglected.

標準の秒(1秒間)は2つの間の変遷に対応する放射の91億9263万1770の一区切りが-10秒間の1.1×10に関して粒状を含意するセシウム-133原子<170>[ALL74b]の基底状態のレベルに「超-罰金を課」す<169>と定義されます。 他の間隔は1秒間の合理的な倍数として決定できます。 NTP時間には固有の解決がある、地方の時計で-10秒間の2.3×10に関して、解決多くが通常これより悪くなるので、1秒間に比例してNTP時間を決議することにおける固有誤差を無視できます。

In this analysis the local clock is represented by a counter/divider
which increments at intervals of s seconds and is driven by an
oscillator which operates at frequency <$Ef sub c~=~n over s> for some
integer n. A timestamp <$ET(t)> is determined by reading the clock at an
arbitrary time t (the argument t will be usually omitted for
conciseness). Strictly speaking, s is not known exactly, but can be
assumed bounded from above by the maximum reading error <$Erho>. The
reading error itself is represented by the random variable r bounded by
the interval <$E[-~rho ,~0]>, where <$Erho> depends on the particular
clock implementation. Since the intervals between reading the same clock
are almost always independent of and much larger than s, successive
readings can be considered independent and identically distributed. The
frequency error of the clock oscillator is represented by the random
variable f bounded by the interval <$E[-~phi ,~phi ]>, where <$Ephi>
represents the maximum frequency tolerance of the oscillator throughout
its service life. While f for a particular clock is a random variable
with respect to the population of all clocks, for any one clock it
ordinarily changes only slowly with time and can usually be assumed a
constant for that clock. Thus, an NTP timestamp can be represented by
the random variable T:

この分析では、地方の時計は、sごとに秒を増加するカウンタ/デバイダーによって表されて、~= 何らかの整数nにs>の上に行きながら、頻度<$Ef潜水艦cで作動する振動子によって動かされます。 任意の時t(通常、議論tは簡潔ために省略されるでしょう)に読み込むのによる<$ET(t)>が時計を断固とさせているタイムスタンプ。 厳密に言うと、sをまさに知られていませんが、最大の読書誤り<$Erho>は、境界があると上から思うことができます。 読書誤り自体が間隔<$Eで境界がある確率変数rによって表される、[-~ρ、~0] >、どこ<$Erho>は特定の時計実現によるか。 同じ時計を読むところの間隔がsよりほとんどいつも独立していてはるかに大きいので、連続した読書を独立していると考えて、同様に広げることができます。 クロック発振器の頻度誤りが間隔<$Eで境界がある確率変数fによって表される、[-~~φ、φ]>、どこ<$Ephi>は耐用年数の間中振動子の最大の周波数公差を表すか。 特定の時計のためのfがすべての時計の人口に関する確率変数である間、どんな時計に関しても、それを、通常、ゆっくりだけ時間を交換して、通常、その時計のための定数であると思うことができます。 したがって、確率変数TはNTPタイムスタンプを表すことができます:

<$ET~=~t~+~r~+~f tau> ,

<$ET~は~t~+~r~+~fタウ粒子>と等しいです。

where t represents a clock reading, <$Etau> represents the time interval
since this reading and minor approximations inherent in the measurement
of <$Etau> are neglected.

tが時計の読みを表すところでは、<$Etau>の測定に固有のこの読書と小さい方の近似が無視されるので、<$Etau>は時間間隔を表します。

In order to assess the nature and expected magnitude of timestamp errors
and the calculations based on them, it is useful to examine the
characteristics of the probability density functions (pdf) <$Ep sub r
(x)> and <$Ep sub f (x)> for r and f respectively. Assuming the clock
reading and counting processes are independent, the pdf for r is uniform
over the interval <$E[-~rho ,~0]>. With conventional manufacturing
processes and temperature variations the pdf for f can be approximated
by a truncated, zero-mean Gaussian distribution with standard deviation
<$Esigma>. In conventional manufacturing processes <$Esigma> is
maneuvered so that the fraction of samples rejected outside the interval
<$E[-~phi ,~phi ]> is acceptable. The pdf for the total timestamp error
<$Eepsilon (x)> is thus the sum of the r and f contributions, computed
as

それらに基づくタイムスタンプ誤りと計算の自然と予想された大きさを算定するために、それぞれrとfの確率密度関数(pdf)<$Ep潜水艦r(x)>と<$Ep潜水艦f(x)>の特性を調べるのは役に立ちます。 時計読書と計数過程が独立していると仮定して、rのためのpdfが間隔<$Eの上で一定である、[-、~ρ、~0] >。 従来の製造プロセスと温度差で、標準偏差<$Esigma>との端が欠けていて、無平均であるガウス分布はfのためのpdfに近似できます。 従来の製造プロセス<$では、Esigma>が操縦されるのでサンプルの部分が間隔<$の外でEを拒絶した、[-~~φ、φ]>は許容できます。 その結果、rとf貢献の合計であり、計算された総タイムスタンプ誤り<$Eepsilon(x)>のpdf

<$Eepsilon (x)~ =~ int~from {- inf } to inf p sub r (t) p sub f (x~-~t)
d t> ,

Eepsilon(x)~、がp潜水艦r(t)p潜水艦f(x~~t)d t>をinfするように~int~、と-infに等しい<$

which appears as a bell-shaped curve, symmetric about <$E-~rho over 2>
and bounded by the interval

どれがベル形をしているカーブとして間隔のそばで2>の上で<$E~ρ、に関して左右対称で境界があるように見えますか。

<$E[ min (r)~+~min (f tau ),~max (r)~+~max (f tau )]~=~[-~rho ~-~phi tau
,~phi tau ]> .
Since f changes only slowly over time for any single clock,

<$E[分(r)~+~分(fタウ粒子)、~最大(r)~+~、は(fタウ粒子)に最大限にします]~、が~、と等しい、[-、~ρ~~φタウ粒子、~φタウ粒子] >以来、fは時間がたつにつれてどんな単一の時計のためにもゆっくりだけ変化します。

<$Eepsilon~==~[ min (r)~+~f tau ,~max (r)~+~f tau ]~=~ [-~ rho ,~0]~+~f
tau> ,

~[分(r)~+~fタウ粒子、~最大(r)~+~fタウ粒子]<$Eepsilon~=~、は~[-~ρ、~0]~+~fタウ粒子>と等しいです。

where <$Eepsilon> without argument designates the interval and
<$Eepsilon (x)> designates the pdf. In the following development
subscripts will be used on various quantities to indicate to which
entity or timestamp the quantity applies. Occasionally, <$Eepsilon> will
be used to designate an absolute maximum error, rather than the
interval, but the distinction will be clear from context.

(x) <$Eepsilon>が異議なしに間隔と<$をEepsilonに指定するところでは、>はpdfを指定します。 以下の開発では、添字は、量がどの実体かタイムスタンプに適用されるかを示すのに様々な量で使用されるでしょう。 時折、<$Eepsilon>は間隔よりむしろ絶対最大値誤りを指定するのに使用されるでしょうが、区別は文脈から明確になるでしょう。

Measurement Errors

測定誤差

In NTP the roundtrip delay and clock offset between two peers A and B
are determined by a procedure in which timestamps are exchanged via the
network paths between them. The procedure involves the four most recent
timestamps numbered as shown in Figure 14<$&fig14>, where the <$Etheta
sub 0> represents the true clock offset of peer B relative to peer A.
The <$ET sub 1> and <$ET sub 4> timestamps are determined relative to
the A clock, while the <$ET sub 2> and <$ET sub 3> timestamps are
determined relative to the B clock. The measured roundtrip delay
<$Edelta> and clock offset <$Etheta> of B relative to A are given by

NTPでは、2人の同輩AとBの間で相殺された往復の遅れと時計はタイムスタンプがそれらの間のネットワーク経路を通って交換される手順で決定します。 手順は<$Ethetaが代理をする図14<$とfig14>に0>が同輩A.に比例して同輩Bの本当の時計オフセットを表すのが示されるように付番された4つの最新のタイムスタンプを伴います。2>で<ドルのET潜水艦3>タイムスタンプは<$ET潜水艦である間、B時計に比例して<$のET潜水艦1>と<がAに比例して時間を計ることを$ET潜水艦4>タイムスタンプが決定している決定しています。 Aに比例したBのEdelta>と時計オフセット<$Etheta>が与えられる測定往復の遅れ<$

<$Edelta~=~(T sub 4~-~T sub 1 )~-~(T sub 3~-~T sub 2
)~~~~and~~~~theta~=~{(T sub 2~-~T sub 1 )~+~(T sub 3~-~T sub 4 )} over
2> .

<$Edelta~は~潜水艦4T~~T(潜水艦1)~~潜水艦3T~~T(潜水艦2)と等しいです。~~~~そして~~~~~(T潜水艦2~~T潜水艦1)~+~潜水艦3T~~T(潜水艦4)2以上θ~=>。

The errors inherent in determining the timestamps T1, T2, T3 and T4 are,
respectively,

それぞれタイムスタンプのT1、T2、T3、およびT4がそうであることを決定するのに固有の誤り

<$Eepsilon sub 1~=~[-~rho sub A ,~0]>, <$E~epsilon sub 2~=~[-~rho sub B
,~0]>, <$E~epsilon sub 3~=~[-~rho sub B ,~0]~+~f sub B (T sub 3 ~-~T sub
2 )>, <$E~epsilon sub 4~=~[-~rho sub A ,~0]~+~f sub A (T sub 4 ~-~T sub
1 )> .

-~ρは代理をします。

For specific peers A and B, where <$Ef sub A> and <$Ef sub B> can be
considered constants, the interval containing the maximum error inherent
in determining <$Edelta> is given by

特定の同輩AとBに関しては、<$Ef潜水艦A>と<$Efが代理をするところで定数であるとB>を考えることができます、<$Edelta>を決定するのに固有の最大の誤りを含むのが与えられている間隔

<$E[ min ( epsilon sub 4 )~-~max ( epsilon sub 1 )~-~max ( epsilon sub 3
)~+~min ( epsilon sub 2 ),~ max ( epsilon sub 4 )~-~min ( epsilon sub 1
)~-~min ( epsilon sub 3 )~+~max ( epsilon sub 2 )]>
<$E=~[-~rho sub A~-~rho sub B ,~rho sub A ~+~rho sub B ]~+~f sub A (T
sub 4~-~T sub 1 )~-~f sub B (T sub 3~-~T sub 2 )> .

<$E[ min ( epsilon sub 4 )~-~max ( epsilon sub 1 )~-~max ( epsilon sub 3 )~+~min ( epsilon sub 2 ),~ max ( epsilon sub 4 )~-~min ( epsilon sub 1 )~-~min ( epsilon sub 3 )~+~max ( epsilon sub 2 )]> <$E=~[-~rho sub A~-~rho sub B ,~rho sub A ~+~rho sub B ]~+~f sub A (T sub 4~-~T sub 1 )~-~f sub B (T sub 3~-~T sub 2 )> .

In the NTP local clock model the residual frequency errors <$Ef sub A>
and <$Ef sub B> are minimized through the use of a type-II phase-lock
loop (PLL). Under most conditions these errors will be small and can be
ignored. The pdf for the remaining errors is symmetric, so that <$Edelta
hat~=~<< delta >>> is an unbiased maximum-likelihood estimator for the
true roundtrip delay, independent of the particular values of <$Erho sub
A> and <$Erho sub B>.

NTPのローカルの時計モデルでは、残りの頻度誤り<$Ef潜水艦A>と<$Ef潜水艦B>はIIをタイプしているフェーズ・ロック輪(PLL)の使用で最小にされます。 ほとんどの条件のもとでは、これらの誤りは、小さく、無視できます。 残っている誤りのためのpdfが左右対称であるので、その<$Edelta帽子~=~<<デルタ>>>は本当の往復の遅れのための不遍の最尤推定量です、<$Erho潜水艦A>と<$Erho潜水艦B>の特定の値の如何にかかわらず。

However, in order to reliably bound the errors under all conditions of
component variation and operational regimes, the design of the PLL and
the tolerance of its intrinsic oscillator must be controlled so that it
is not possible under any circumstances for <$Ef sub A> or <$Ef sub B>
to exceed the bounds <$E[-~phi sub A ,~phi sub A ]> or <$E[-~phi sub B
,~phi sub B ]>, respectively. Setting <$Erho~=~max ( rho sub A ,~rho sub
B )> for convenience, the absolute maximum error <$Eepsilon sub delta>
inherent in determining roundtrip delay <$Edelta> is given by

-~~φ潜水艦B、φは代理をします。<$Ef潜水艦A>か<$Ef潜水艦B>が領域<$Eを超えているのが、しかしながら、確かにバウンドするようにコンポーネント変化と操作上の政権のすべての状態、PLLの設計、および本質的な振動子の寛容の下での誤りを制御しなければならないのでどうあっても可能でない、[-、~φ潜水艦A、~φ潜水艦A]>または<$E、[B] それぞれ>。 便利の<$Erho~=~最大(ρ潜水艦A、~ρ潜水艦B)>、往復の遅れ<$Edelta>が与えられていることを決定するのに固有の絶対最大値誤り<$Eepsilon潜水艦デルタ>を設定します。

<$Eepsilon sub delta~==~rho~+~phi sub A (T sub 4~-~T sub 1 )~+~phi sub B
(T sub 3~-~T sub 2 )> ,
neglecting residuals.

残差を無視する<$Eepsilon潜水艦デルタ~=~ρ~+~φ潜水艦A(T潜水艦4~~T潜水艦1)~+~φ潜水艦B(T潜水艦3~~T潜水艦2)>。

As in the case for <$Edelta>, where <$Ef sub A> and <$Ef sub B> can be
considered constants, the interval containing the maximum error inherent
in determining <$Etheta> is given by

<$Edelta>、どこ<$Ef潜水艦A>、および<$のケースのように、Ef潜水艦B>は考えられた定数であるかもしれないか、<$Etheta>を決定するのに固有の最大の誤りを含むのが与えられている間隔

<$E{[ min ( epsilon sub 2 )~-~max ( epsilon sub 1 )~+~min ( epsilon sub
3 )~-~max ( epsilon sub 4 ),~ max ( epsilon sub 2 )~-~min ( epsilon sub
1 )~+~max ( epsilon sub 3 )~-~min ( epsilon sub 4 )]} over 2>
<$E=~[ -~rho sub B ,~rho sub A ]~+~{f sub B (T sub 3~-~T sub 2 )~-~f sub
A (T sub 4 ~-~T sub 1 )} over 2> .

-~ρは代理をします。

Under most conditions the errors due to <$Ef sub A> and <$Ef sub B> will
be small and can be ignored. If <$Erho sub A~=~rho sub B~=~rho>; that
is, if both the A and B clocks have the same resolution, the pdf for the
remaining errors is symmetric, so that <$Etheta hat~=~<< theta >>> is an
unbiased maximum-likelihood estimator for the true clock offset <$Etheta
sub 0>, independent of the particular value of <$Erho>. If <$Erho sub
A~!=~rho sub B>, <$E<< theta >>> is not an unbiased estimator; however,
the bias error is in the order of

ほとんどの条件のもとでは、<$Ef潜水艦A>と<$Ef潜水艦B>による誤りは、小さく、無視できます。 <$Erhoが代理をするなら、A~=~ρ潜水艦B~、は~ρ>と等しいです。 すなわち、AとB時計の両方に同じ解決があるなら、残っている誤りのためのpdfは左右対称であり、本当の時計オフセットのための不遍の最尤推定量<$Etheta潜水艦は、<$Erho>の特定の値の如何にかかわらず<$Etheta帽子~が~<<θ>>>と等しいための0>ですか? Erho潜水艦A~!<$=~ρ潜水艦B>であるなら、<$E<<θ>>>は不偏推定量ではありません。 しかしながら、偏り誤差がオーダーにあります。

<$E{rho sub A~-~rho sub B } over 2> .

<$E、ρ潜水艦A~~ρ、が代理をする、B、2以上>。

and can usually be neglected.

そして、通常、無視できます。

Again setting <$Erho~=~max ( rho sub A ,~rho sub B )> for convenience,
the absolute maximum error <$Eepsilon sub theta> inherent in determining
clock offset <$Etheta> is given by

再びセットしている<$Erho~は便宜のために~最大(ρ潜水艦A、~ρ潜水艦B)>と等しいです、時計オフセット<$Etheta>が与えられていることを決定するのに固有の絶対最大値誤り<$Eepsilon潜水艦θ>。

<$Eepsilon sub theta~==~{rho~+~phi sub A (T sub 4~-~T sub 1 )~+~phi sub
B (T sub 3~-~T sub 2 )} over 2 > .

~ρ~+~φ潜水艦A(T潜水艦4~~T潜水艦1)~+~φ潜水艦B(T潜水艦3~~T潜水艦2)2以上<$Eepsilon潜水艦θ~=>。

Network Errors

ネットワーク誤り

In practice, errors due to stochastic network delays usually dominate.
In general, it is not possible to characterize network delays as a
stationary random process, since network queues can grow and shrink in
chaotic fashion and arriving customer traffic is frequently bursty.
However, it is a simple exercise to calculate bounds on clock offset
errors as a function of measured delay. Let <$ET sub 2~-~T sub 1~=~a>
and <$ET sub 3~-~T sub 4~=~b>. Then,

実際には、通常、確率ネットワーク遅れによる誤りは支配されます。 一般に、頻繁にネットワーク待ち行列が成長できるので静止した無作為の過程としてネットワーク遅延を特徴付けて、混沌のファッションと到着顧客交通で縮まるのが、burstyであることは可能ではありません。 しかしながら、時計の上の領域が測定遅れの機能として誤りを相殺すると見込むのは、簡単な運動です。 <$ET潜水艦2~~T潜水艦1~=~>と<$ET潜水艦3~~T潜水艦4~=~b>をさせてください。 そして

<$Edelta~=~a~-~b~~~~ and ~~~~theta~=~{a~+~b} over 2> .

<$Edelta~=~、は~~ですb。~~~~ そして~~~~2>の上の~a~+~θ~=b。

The true offset of B relative to A is called <$Etheta sub 0> in Figure
14. Let x denote the actual delay between the departure of a message
from A and its arrival at B. Therefore, <$Ex~+~theta sub 0~=~T sub 2~-~T
sub 1~==~a>. Since x must be positive in our universe, <$Ex~=~a~-~theta
sub 0~>>=~0>, which requires <$Etheta sub 0~<<=~a>. A similar argument
requires that <$Eb~<<=~theta sub 0>, so surely <$Eb~<<=~theta sub
0~<<=~a>. This inequality can also be expressed

BについてAに比例して相殺された正しさは<$Etheta潜水艦と呼ばれます。図14の0>。 xにAからのメッセージの出発の間の実際の遅れを指示させてください。そうすれば、到着はB.Therefore、<$Ex~+~θ潜水艦0~=~T潜水艦2~~T潜水艦1~=~の>をさせます。 xが私たちの宇宙の中で積極的であるに違いないので、<$Ex~=~a~~θ潜水艦0~>>は~0>と等しいです。(>は<$Etheta潜水艦0~<<=~a>を必要とします)。 同様の議論は、<$Eb~<<が~θ潜水艦と等しいのを必要とします。0>、それほど確実に<$Eb~<<は~θ潜水艦0~<<=~a>と等しいです。 また、この不平等を表すことができます。

<$Eb~=~{a~+~b} over 2~-~{a~-~b} over 2~<<=~theta sub 0~<<=~{a~+~b} over
2~+~{a~-~b} over 2~=~a> ,

<$Eb~=~a~+~b2以上~~a~~b2以上~<<=~θ潜水艦0~<<は~a~+~b2以上~+~a~~b2以上~=~a>と等しいです。

which is equivalent to

どれに同等物がありますか?

<$Etheta~-~delta over 2~<<=~theta sub 0~<<=~theta~+~delta over 2> .

<$Etheta~~デルタ2以上~<<=~θ潜水艦0~<<は~θ~+~デルタより多くの2>と等しいです。

In the previous section bounds on delay and offset errors were
determined. Thus, the inequality can be written

前項では、遅れの領域と相殺誤謬は決定していました。 したがって、不平等を書くことができます。

<$Etheta~-~epsilon sub theta~-~{delta~+~epsilon sub delta} over
2~<<=~theta sub 0~<<=~theta~+~epsilon sub theta~+~{delta~+~ epsilon sub
delta } over 2> ,
where <$Eepsilon sub theta> is the maximum offset error and <$Eepsilon
sub delta> is the maximum delay error derived previously. The quantity

<$は~~εの潜水艦θ~~の2>の上の2~<<=~θ潜水艦0~<<=~θ~+~ε潜水艦θ~+~デルタ~+~ε潜水艦デルタの上のデルタ~+~ε潜水艦デルタと<をEthetaします。そこでは、<$Eepsilon潜水艦θ>が最大の相殺誤謬です。$Eepsilon潜水艦デルタ>は以前に引き出された最大の遅れ誤りです。 量

<$Eepsilon~=~epsilon sub theta~+~epsilon sub delta over 2~=~rho~+~phi
sub A (T sub 4~-~T sub 1 )~+~phi sub B (T sub 3~-~T sub 2 )> ,

<$Eepsilon~は~ε潜水艦θ~+~ε潜水艦デルタ2以上~=~ρ~+~φ潜水艦A(T潜水艦4~~T潜水艦1)~+~φ潜水艦B(T潜水艦3~~T潜水艦2)>と等しいです。

called the peer dispersion, defines the maximum error in the inequality.
Thus, the correctness interval I can be defined as the interval

同輩分散を呼んで、不平等で最大の誤りを定義します。 その結果、私を間隔と定義できる正当性間隔

<$EI~=~[ theta~-~delta over 2~-~epsilon ,~theta~+~delta over 2~+~epsilon
]> ,

<$EI~が~、と等しい、[θ~、-、~デルタより多くの2~~ε、~θ~+~デルタより多くの2~+~ε]>。

in which the clock offset <$EC~=~theta> is the midpoint. By
construction, the true offset <$Etheta sub 0> must lie somewhere in this
interval.

時計オフセット<$EC~=~θ>は中点です。 工事、Etheta潜水艦0>がこの間隔にどこかにいなければならない本当のオフセット<$で。

Inherited Errors

継承誤差

As described in the NTP specification, the NTP time server maintains the
local clock <$ETHETA>, together with the root roundtrip delay <$EDELTA>
and root dispersion <$EEPSILON> relative to the primary reference source
at the root of the synchronization subnet. The values of these variables
are either included in each update message or can be derived as
described in the NTP specification. In addition, the protocol exchange
and clock-filter algorithm provide the clock offset <$Etheta> and
roundtrip delay <$Edelta> of the local clock relative to the peer clock,
as well as various error accumulations as described below. The following
discussion establishes how errors inherent in the time-transfer process
accumulate within the subnet and contribute to the overall error budget
at each server.

NTP仕様で説明されるように、NTP時間サーバは地方の時計<$ETHETA>を維持します、同期サブネットの根の第一の照合線源に比例した根の往復の遅れ<$EDELTA>と根の分散<$EEPSILON>と共に。 これらの変数の値をそれぞれのアップデートメッセージに含んでいるか、またはNTP仕様で説明されるように引き出すことができます。 さらに、プロトコル交換と時計フィルタアルゴリズムは同輩時計に比例した地方の時計のオフセット<$Etheta>と往復の遅れ<$Edelta>、および以下で説明される様々なエラー蓄積を時計に供給します。 以下の議論は時間転送の過程に固有の誤りが各サーバでどうサブネットの中に蓄積して、総合誤差予算に貢献するかを設立します。

An NTP measurement update includes three parts: clock offset <$Etheta>,
roundtrip delay <$Edelta> and maximum error or dispersion <$Eepsilon> of
the local clock relative to a peer clock. In case of a primary clock
update, these values are usually all zero, although <$Eepsilon> can be
tailored to reflect the specified maximum error of the primary reference
source itself. In other cases <$Etheta> and <$Edelta> are calculated
directly from the four most recent timestamps, as described in the NTP
specification. The dispersion <$Eepsilon> includes the following
contributions:

NTP測定アップデートは3つの部品を含んでいます: 同輩時計に比例して地方の時計のオフセット<$Etheta>、往復の遅れ<$Edelta>、および最大誤りか分散<$Eepsilon>の時間を計ってください。 第一の時計アップデートの場合には、通常、これらの値はすべて、ゼロです、第一の照合線源自身の指定された最大の誤りを反映するために<$Eepsilon>を仕立てることができますが。 他のケース<$では、Etheta>と<$Edelta>は直接4つの最新のタイムスタンプから計算されます、NTP仕様で説明されるように。 分散<$Eepsilon>は以下の貢献を含んでいます:

1.

1.

Each time the local clock is read a reading error is incurred due to the
finite granularity or precision of the implementation. This is called
the measurement dispersion <$Erho>.

読み込み誤りが地方の時計に読み込まれる各回は実現の有限粒状か精度のため被られます。 これは測定分散<$Erho>と呼ばれます。

2.

2.

Once an offset is determined, an error due to frequency offset or skew
accumulates with time. This is called the skew dispersion <$Ephi tau>,
where <$Ephi> represents the skew-rate constant (<$Eroman NTP.MAXSKEW
over NTP.MAXAGE> in the NTP specification) and <$Etau> is the interval
since the dispersion was last updated.

オフセットがいったん決定するようになると、頻度オフセットか斜行による誤りは時間で蓄積します。 これは斜行分散<$Ephiタウ粒子>と呼ばれます、そして、分散をアップデートして以来、<$Etau>は間隔です。(そこでは、<$Ephi>が斜行速度定数(NTP仕様によるNTP.MAXAGE>の上の<$Eroman NTP.MAXSKEW)を表します)。

3

3

When a series of offsets are determined at regular intervals and
accumulated in a window of samples, as in the NTP clock-filter
algorithm, the (estimated) additional error due to offset sample
variance is called the filter dispersion <$Eepsilon sub sigma>.

一連のオフセットが一定の間隔を置いて決定して、サンプルの窓に蓄積されるとき、NTP時計フィルタアルゴリズムのように、標本分散を相殺するのにおいて当然の(概算)の追加誤りはフィルタ分散<$Eepsilon潜水艦σ>と呼ばれます。

4.

4.

When a number of peers are considered for synchronization and two or
more are determined to be correctly synchronized to a primary reference
source, as in the NTP clock-selection algorithm, the (estimated)
additional error due to offset sample variance is called the selection
dispersion <$Eepsilon sub xi>.

多くの同輩が同期のために考えられて、2以上が正しく第一の照合線源に連動することを決定しているとき、NTP時計選択アルゴリズムのように、標本分散を相殺するのにおいて当然の(概算)の追加誤りは選択分散<$Eepsilon潜水艦ξ>と呼ばれます。

Figure 15<$&fig15> shows how these errors accumulate in the ordinary
course of NTP processing. Received messages from a single peer are
represented by the packet variables. From the four most recent
timestamps T1, T2, T3 and T4 the clock offset and roundtrip delay sample
for the local clock relative to the peer clock are calculated directly.
Included in the message are the root roundtrip delay <$EDELTA prime> and
root dispersion <$EEPSILON prime> of the peer itself; however, before
sending, the peer adds the measurement dispersion <$Erho> and skew
dispersion <$Ephi tau>, where these quantities are determined by the
peer and <$Etau> is the interval according to the peer clock since its
clock was last updated.

図15<$とfig15>はこれらの誤りがNTP処理の普通のコースにどう蓄積するかを示しています。 独身の同輩からの受信されたメッセージはパケット変数によって表されます。 4から、時計オフセットと往復の遅れが地方の時計のために同輩時計に比例して抽出する最新のタイムスタンプのT1、T2、T3、およびT4は直接計算されます。 メッセージに含まれているのは、同輩自身の根の往復の遅れ<$のEDELTA第1>と根の分散<$のEEPSILONの主要な>です。 しかしながら、発信する前に同輩は測定分散<$Erho>を加えます、そして、同輩時計に従って、時計をアップデートして以来、斜行分散<$Ephiタウ粒子>(これらの量は同輩と<$Etau>決定している)は間隔です。

一覧

 RFC 1〜100  RFC 1401〜1500  RFC 2801〜2900  RFC 4201〜4300 
 RFC 101〜200  RFC 1501〜1600  RFC 2901〜3000  RFC 4301〜4400 
 RFC 201〜300  RFC 1601〜1700  RFC 3001〜3100  RFC 4401〜4500 
 RFC 301〜400  RFC 1701〜1800  RFC 3101〜3200  RFC 4501〜4600 
 RFC 401〜500  RFC 1801〜1900  RFC 3201〜3300  RFC 4601〜4700 
 RFC 501〜600  RFC 1901〜2000  RFC 3301〜3400  RFC 4701〜4800 
 RFC 601〜700  RFC 2001〜2100  RFC 3401〜3500  RFC 4801〜4900 
 RFC 701〜800  RFC 2101〜2200  RFC 3501〜3600  RFC 4901〜5000 
 RFC 801〜900  RFC 2201〜2300  RFC 3601〜3700  RFC 5001〜5100 
 RFC 901〜1000  RFC 2301〜2400  RFC 3701〜3800  RFC 5101〜5200 
 RFC 1001〜1100  RFC 2401〜2500  RFC 3801〜3900  RFC 5201〜5300 
 RFC 1101〜1200  RFC 2501〜2600  RFC 3901〜4000  RFC 5301〜5400 
 RFC 1201〜1300  RFC 2601〜2700  RFC 4001〜4100  RFC 5401〜5500 
 RFC 1301〜1400  RFC 2701〜2800  RFC 4101〜4200 

スポンサーリンク

concat 文字列を結合する

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る