問題タブ [ntp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - ネットワーク タイム プロトコル (NTP) のハッキングは比較的簡単ですか?
NTPはUDPに基づいており、NTP通信で構築されたセキュリティがないため、NTP応答を簡単に偽装できることをどこかで読みました。本当ですか?ほとんどのサーバーは NTP に依存してクロックを同期しているため、これは重大なセキュリティ上の問題ではないでしょうか?
ntp - NTPクライアントはSNTPサーバーに対して機能しますか?
SNTPは、完全なNTP仕様を単純化したものです。
WindowsXPに組み込まれている内部SNTPサーバーに対して完全なNTPクライアントを使用したいと思います。それは機能しますか、それともNTPクライアントが機能するために完全なNTPサーバーが必要ですか?
c# - 現在の GMT 時刻の取得
UTC (GMT) タイムゾーンを返す C# のメソッドはありますか? システムの時間に基づいていません。
基本的に、システム時刻が正しくなくても、正しい UTC 時刻を取得したいと考えています。
client-server - クライアント/サーバーのタイムギャップをどのように計算しますか?
私はクライアント/サーバーソフトウェアを開発しており、クライアントの時計をサーバーの時計と同期させるための最良の方法を探しています。
もちろん、システム時計に触れたくないので、NTPは使えません。サーバーから受信したすべての日時にタイムギャップを追加して「現地時間」に変換できるように、タイムギャップを計算しようとしています。
私が知っていることはそれです:
GMT時間を使用してTimeZoneの問題を処理します
サーバーは接続時に現在の時刻をクライアントに送信し、クライアントは時刻からサーバー時間を差し引いてタイムギャップを計算します。
これは、ネットワークラグが一定の場合にうまく機能します(「myLAN」を読んでください...)
残念ながら、私は自分のソフトウェアをインターネット上で、さらにはモバイルクライアント上でも動作させたいと思っています。モバイルクライアントでは、最大1分のラグの変動が見られます。
私が取り組んでいるソフトウェアの場合、このような遅れは許容できません。
クライアント/サーバーのタイムギャップを計算するための良い戦略は何でしょうか?
最後に:私は両方の方法でメッセージを送信できます(クライアントからサーバーおよびサーバーからクライアント)
おそらく無関係ですが、この背後にあるテクノロジは、ポーリングを伴うhttpbindingを使用する.netWCFクライアントです。
tcp - インターネット経由で時計を同期する
独自のプロトコルを使用して、2 台の専用コンピューター間でインターネット経由でリアルタイムに重要なデータを送信しています。
もちろん、遅延が関係しています。
デバッグと最適化のために、両方のコンピューターで同じタイムベースを使用するのが好きです。つまり、遅延をより適切に判断できるように、時計の時差を知る必要があります。
もちろん、相対主義などで完全に同期することはできませんが、できるだけ近づけたいと思っています。
NTP だけに頼るだけでは十分ではないようです。私の経験では、クロックが 0.5 秒ずれることがあります (明確化: これまでのところ、Apple が提供するデフォルトのものに頼っていました)。
少なくとも 1/10 の範囲の精度が必要です。2 台のコンピューターが離れすぎていることはありません。通常、ICMP の ping 時間は 100 ミリ秒未満です。
これを行う方法について何か提案はありますか?
(現在、関連するマシンは OS X を実行しているため、それらのマシンだけの解決策を知っていれば、それが出発点になります)
java - Java NTP クライアント
ローカル クロック オフセットを決定するために NTP サーバーと通信するソフトウェアが必要です。org.apache.commons.net.ntp パッケージを使用してみましたが、NTP パケット交換の前後の時間を決定するために System.currentTimeMillis() を使用するため、Windows で実行する場合の実装はかなり貧弱です。ご存じないかもしれませんが、この値は、最新の Win2k3 サーバーでは 64Hz または 15.625ms ごとにシステム クロックが刻々と変化するときにのみ更新されます。これにより、クロック オフセット計算の精度が大幅に制限されます。
Ntpd は、CPU 高頻度タイマーを使用してシステム クロック ティック間を補間し、はるかに高い分解能時間を達成します。この手法または類似の手法を使用する Java 実装を知っていますか? または、Apache 以外の NTP 実装を知っていますか?
c# - C#を使用してNTPサーバーをクエリする方法は?
必要なのは、C#を使用してNTPサーバーにクエリを実行し、NTPサーバーの日時をastring
またはとして返す方法だけDateTime
です。
これは、最も単純な形でどのように可能ですか?
java - NTP サーバーへの接続が失敗し続ける (Java)
Java でネットワーキングを行う方法を学んでいるところですが、NTP サーバーから時刻を取得する最初の簡単な例では、ConnectException をスローし続けています。コードをコピーして貼り付けますが、このコードは本から出てきたものなので、コードに関係のないものに違いないと感じています。
これを実行するために使用しているコマンドは次のとおりです。
java AskTime us.pool.ntp.org
更新: msaeed のアドバイスを読んだ後、ポートを 123 に変更したところ、接続がタイムアウトしたのではなく、接続が拒否されたと言われています。だから私はmsaedが正しいと思います.誰かが私が時間を受け取るために他に何を伝える必要があるか知っていますか?
time - ネットワーク タイム プロトコルはどのように機能しますか?
ウィキペディアのエントリには詳細が記載されておらず、RFCは密度が高すぎます。このあたりで、NTP がどのように機能するかを非常に一般的な方法で知っている人はいますか?
サーバー上のタイムスタンプをクライアント上のタイムスタンプに変換するためにMarzullo のアルゴリズム(またはその修正) がどのように使用されるかを説明する概要を探しています。具体的には、その通信が非常に変動する遅延を持つネットワークを介して行われる場合に、平均で 10 ミリ秒以内の精度を生成するために使用されるメカニズムは何ですか。
ntp - Y2.036K & Y2.038K バグの処理
私は現在、ソフトウェアが少なくとも 2050 年まで動作しなければならないという要件を持つプロジェクトに取り組んでいます。最近、NTP プロトコルの Y2.036K "バグ" と Y2.038K バグを処理する問題に遭遇しました。基本的に、当社のソフトウェアは、正しいタイム スタンプを使用して記録されたすべてのデータを使用して、これらの日付を過ぎても実行し続ける必要があります。現在、これらのバグのいずれにも解決策がないため、回避策を採用する必要があります。
これら 2 つのイベントの後もソフトウェアを実行し続け、日付を正しく記録することが重要です。OS のシステム時刻が正確であることは重要ではありません。Java を使用していることを考えると、ロールオーバー後の 1900 年のプライム エポックに関連する日付を処理できるはずです。ただし、システム時間が 1970 年の Unix エポックよりも前に設定されている場合、Java JVM は実行されません。クラッシュするだけです。
火に油を注ぐために、NTP サーバーは別のベンダーから提供されており、それを制御することはできません。したがって、別のプロトコルを使用したり、サーバーを変更してこれを処理することはできません。
クリエイティブなソリューションが必要です。言うまでもなく、いくつかの深いブードゥー教が行われなければなりません. 次のことを検討しました。
ntpd クライアント ソフトウェアを変更して、何らかの方法で ntp サーバーと連携し、1900 年ではなく 1970 年の Unix エポックより後の日付から現地時間をオフセットします。したがって、初期化時にクラッシュすることなく JVM を実行できます。すべてのタイム スタンプは、選択したロールオーバー日に対して相対的に処理されます。(つまり、基本的に、Unix エポックより後の日付にロールオーバーするようにしてください)。
ntp 修正時間が 1900 エポックにロールオーバーするのを待ち、JVM がクラッシュしないように修正を見つけます。
他の誰かがこの問題に取り組みましたか? また、私が予見できなかった他の問題が発生する可能性があり、これらの解決策のいずれかまたは両方がまったく実現不可能になる可能性はありますか?