32

私が理解していることから、PCの水晶はクロックスキューで有名です。クロックが常に歪んでいる場合、ミリ秒の精度と精度でマシン間でクロックを同期するための最良の方法は何ですか?私が見つけたものから、NTPとPTPは可能な解決策ですが、stackoverflow.comで誰かが経験を持っているかどうか疑問に思いました!

NTPが一般的な選択肢であることは理解していますが、PTP(IEEE1588)の経験がある人はいないかと思います。

4

9 に答える 9

17

標準の NTP デーモンを実行するだけです。

ネットワークサーバーと通信するだけでなく、複数のGPSデバイスから入力を取得するオプションもあります.

編集: Windows に付属するものではなく、http://www.ntp.org/を参照していました。

どの NTP クライアントが Windows に最適かについての提案はありませんが、Unix マシンの場合、NTP を実行しない本当の理由はありません。

于 2008-09-18T23:08:43.973 に答える
9

データ交換自体が発生するのに少なくともミリ秒かかるため、データ交換によってマシンをミリ秒レベルで同期することはできず、結果が台無しになります! 最初にデータ転送にかかる時間を測定し、次に時間情報を送信しようとするプロトコルでさえ (測定された遅延を考慮に入れて) 平均よりわずかに優れていますが、すべてのデータ転送にかかる時間が等しいわけではないため、それでもまだ良いとは言えません (インターネット上のサーバーに常に ping を実行し、すべての ping の遅延がどのように異なるかを確認してください)。

ミリ秒の範囲で 2 台のコンピューターを実際に同期させる唯一の方法は、両方のコンピューターが同じソースから、未知の、または絶えず変化する遅延のない転送方法を介して時刻を取得することです。たとえば、両方が衛星信号を受信すると、時刻がブロードキャストされます。信号には常に一定の遅延 (衛星から地球まで) があり、どちらもほぼ同じナノ秒以内に受信しています。

たとえば、ドイツには無線制御の時刻があります。国のどこかに原子時計 (何百年もの間、ナノ秒まで正確な時間を持っている) があり、一部の送信者は、現在の時刻を特定の周波数で全国に永久に放送しています。この時刻を受信して​​永久に同期できる目覚まし時計や腕時計さえあります (まあ、完全に永久というわけではありませんが、ほとんどのモデルはバッテリーの稼働時間を節約するために 24 時間ごとに 1 回しか同期しません)。このような受信デバイスはコンピューター用にも存在し、コンピューターの時計をその時報と永続的に同期できるソフトウェアが付属しています。

私が知る限り、GPS は時間情報も送信します (または、時間は GPS 情報から何らかの方法で計算できますが、私は GPS プロトコルにあまり詳しくありません)。そのため、両方のコンピューターに GPS 受信機を接続すると、おそらくミリ秒単位で同期させることもできます。ただし、同期がインターネット経由で行われる場合は、1 台のコンピューターが最大で 20 ミリ秒ずれている場合よりも優れた同期を期待しないでください。

コメンターを更新するには、
人々がここで主張するのが好きなように、NTP はそれほど正確ではありません。

NTP は通常、公共のインターネット上で数十ミリ秒以内の時間を維持でき、理想的な条件下のローカル エリア ネットワークでは 1 ミリ秒を超える精度を達成できます。

出典:ウィキペディア

ネットワークを介さずにすべての同期を維持し、公式の GMT 時間との同期をさらに維持したいのですが、ここではおそらく GPS がすべてのマシンで本当に正確な結果を得る唯一の方法です (それはミリ秒単位だけでなく、実際には、マイクロ秒まで)。

于 2008-09-18T23:17:35.840 に答える
3

会社のネットワーク全体で NTP を使用していますが、かなりうまく機能しています。重要なのは、ローカル ネットワーク上に権限のあるサーバーを 1 つ配置し、ネットワーク上のすべてのマシンをそのサーバーと同期させることです。最善の方法は、そのサーバーに電波時計をインストールすることです。NTP は、時々クロックを修正するだけでなく、実際にクロック周波数を計算して修正し、より正確にするため、優れています。

ネットワーク上で NTP をセットアップしたら、別のサーバーに対して 5 つの VNC セッションを開き、そこに座って時計を見ていました。すべてのサーバーのクロックはミリ秒単位で同期しており、これはセットアップ直後です。実行するほど正確になります。

于 2008-09-18T23:13:58.420 に答える
2

NTP または SNTP に基づくソリューションは非常にうまく機能しますが、クライアントがどれだけうまく実装されているかに大きく依存します。

確かに、この質問に対する答えは、1 秒未満の精度が必要な場合は、既定の Windows タイム サービスを使用しないことです。マシン上で安定したタイムベースを維持するのが苦手なことで知られており、通常は修正をオーバーシュートし、特にマシンが最初からかなり不正確なタイムベースを持っている場合でもほとんど不安定です-これは一般的です. Windows に組み込まれている標準のツールが、すべてのマシン間で通常数秒の精度を確実に保持できると仮定すると、レジストリ設定を微調整しても、マシン間で通常 30 秒程度の変動が見られます。

フリーウェア ツールのAchronは、プラス/マイナス 500 ミリ秒の範囲に入る非常に優れたソリューションです。それ以上のことを行うには、 Greywareのような、より工業的な強度のソリューションが必要になります。

于 2008-09-18T23:15:59.510 に答える
1

NTPは間違いなく進むべき道です。基本的に、ローカル マスター (通常はファイアウォールまたはルーター マシン) のファイアウォールを通過する限り、ファイア アンド フォーゲットです。

于 2008-09-18T23:08:02.430 に答える
1

すでに示唆されているように、NTP はこの問題に対する業界標準のソリューションですが、インターネット接続または Stratum 0 ソース (コンピューター インターフェイスを備えた GPS 受信機などの正確なハードウェア クロック) のいずれかが必要です。

インターネット接続を使用している場合は、NTP プールの使用を検討してください。

于 2008-09-18T23:08:04.723 に答える
1

また、ハードウェア システム クロック (つまり、不正確なクロック) は、マシンの起動時にのみ読み取られることに注意してください。サーバー マシンについて話している場合、それらのために時間を失うことはありません。

于 2008-09-19T00:58:36.017 に答える