回答:
NTPはどのようにして上記の値を見つけますか?
NTPプロトコルにより、各コンピューターは、ネットワーク遅延(タイムスタンプされたパケットがコンピューター間を移動するのにかかる時間)の影響、およびクロック時間の差を計算できます。
これらの値を知っている場合、なぜそれ自体を修正しないのですか?
確かにそうはなりますが、スムーズに行おうとすると、ネットワークのジッターにより、時間差が変化していないように見える場合があります。
これらの値は正または負ですか?
通常ntpq -p
、負の場合は-記号で表示されます。
私は使ったことがないntpstat
(それは標準は、debian / Ubuntuでインストールされません)が、多くの年のために、NTPを使用し、一般の出力を見ているntpq -nc peer
か、ntpq -np
どのおそらく同様の情報を示しています。ntpq
出力は正と負の値を示しています。
基本的に、ntp(stat)が同期している(またはntpqの出力が '*'でサーバーにフラグを立てる)と言った場合、取得できる限り近くなりますが、改善を試み続けます。
NTPの動作の簡単な説明は、ローカルマシンが考えている時刻のタイムスタンプを含むパケットを定期的にタイムサーバーに送信することです。サーバーはそのタイムスタンプを追加し、パケットをローカルマシンに返します。到着するとすぐに、ローカルマシンには3番目のタイムスタンプ、つまり到着時刻があります。パケットがサーバーに到達して戻るのに同じ時間がかかったと仮定すると、NTPは、サーバーがタイムスタンプを追加したときのローカルマシンの時間を算出できるため、差を計算して調整できます。
通常、ネットワークパケットはサーバーに到達して戻るまでに数十ミリ秒かかります。ネットワークトラフィックの変動により、発信と着信の通過時間は同じではない場合がありますが、これを判断する方法がないため、NTPは同じであると想定する必要があります。その結果、NTPは正確な同期に数ミリ秒よりも近づくことができず、送受信タイムスタンプがサーバーのタイムスタンプを囲むときに同期を宣言します。
同期されている場合でも、NTPはパケットの交換を継続し、時間差を最小限に抑えるために時間を調整しようとします。これは、突然のジャンプがないようにし、ネットワークの異常による問題を回避するために、小さな調整(実際には1秒間にクロックの「チック」の数をわずかに増減すること)によって行います。
したがって、ntpstat
同期していると言われたとき、それは可能な限り近くなりますが、どれくらい離れている可能性があるかについての最良の推定値を提供します。