問題タブ [clock-synchronization]
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.
java - Android sendMessageAtTime() は実際にどのように機能しますか?
そのため、プログラムで Handler に送信する、事前定義された時間依存のメッセージの大規模な (最大 5000) 配列があります。これらのメッセージの中には、わずか 40 ミリ秒間隔である必要があるものもあります。sendMessageAtTime() の束を呼び出してそれらをキューに入れるだけで、適切な時間にそれぞれのハンドラーが呼び出されると思いました。
残念ながら、少なくとも私の AVD では、ハンドラーを数回実行した後、最後のメッセージが送信されるまで何もしないようです。ハンドラーが追いついていませんか? (つまり、次に呼び出される前に終了できない?)
sendMessageAtTime() は、ハンドラーが現在のメッセージを処理し終わるまでメッセージの送信を待機しますか?
メッセージを送信する指定時刻が過去の場合はどうなりますか? メッセージを完全にドロップしますか、それともキュー内の他の「後の」メッセージを送信する前に送信しますか?
ハンドラーを「追いつく」ためのテクニックはありますか? たとえば、ハンドラーへのメッセージに要求された時間を含めて、ハンドラーが手遅れと判断した場合に何もできないようにすることができます。
ありがとう。
wifi - 同じ WLAN 上の Android デバイス間でクロックを同期する
1) 「ローカル TSF タイマー」と呼ばれる同期クロック (802.11 仕様の一部) が既にあるようです。アクセスする方法はありますか?
Android の ScanResult には、「この結果が最後に表示されたときのマイクロ秒単位の時刻同期関数 (tsf) タイムスタンプ」と記述されたタイムスタンプが含まれています。このタイムスタンプは同期に役立ちますか?
2) そうでない場合、同じ WLAN に接続された 2 つの Android デバイス間でクロックを正確に同期する簡単な方法はありますか?
3) iOS デバイスと Android デバイス間の同期についてはどうですか?
r
node.js - システム間の時刻同期アルゴリズムの実装をテストするにはどうすればよいですか?
マスターサーバーからのオフセットを計算することにより、単純な時刻同期アルゴリズムを実装しました。コード自体の処理に多少の遅延があり、タイムスタンプに加算されます。それで、アルゴリズムが実際にシステム間でタイムスタンプを同期しているかどうかをテストする方法を知りたいと思っていましたか?
以下は、nodejsでの時刻同期の私のロジックです
システムは socket.io を使用して通信します。サーバーでグローバル変数、つまりグローバルを使用しました。これは、リクエストを取得するたびに更新され、グローバル値が data.ord としてクライアント側に送信されます。
そのため、現在、タイムスタンプをプールし続ける単一のマスターサーバーと複数のスレーブサーバーがあります。以下は私が得る出力です:
マスター ノード:
スレーブ 1:
スレーブ 2:
ご覧のように
オフセット + タイムスタンプ (マスター) > タイムスタンプ (スレーブ)
しかし、これは一定期間にわたって減少し続けます。全体として、これが正しい方法であるかどうかはわかりません。1.より良いアルゴリズムを実装するにはどうすればよいですか? 2. どのようにテストしますか?
java - サーバーがほぼ同時に別の場所にある 2 つのクライアントにメッセージを送信する方法。(Javaで実装)
2人用ゲームを実装しようとしています。2 つのクライアントがサーバーと通信してゲームをプレイし、サーバーがどちらのプレイヤーがゲームに勝ったかを決定します。TCP接続を使用した分散アプローチを使用しています。
私の実装の一部として、1 つのクライアントがサーバーのすぐそばにあり、もう 1 つのクライアントが何マイルも離れた場所にある場合でも、両方のクライアントがサーバーからほぼ同時に応答を受け取る必要があることを確認する必要があります。私のゲームのある部分では、サーバーは両方のクライアントにプロンプト ボックスを表示し、ボックスをクリックしたクライアントが勝者になります。サーバーがこれを決定するために、クロック同期に cristains アルゴリズムを使用したいと考えています。
私の問題は、何をすべきかはわかっていますが、コードを書くのが難しいことです。
icmp - NTP と ICMP タイムスタンプ メッセージの目的
Network Time Protocol の目的は、主にOriginate、Receive、およびTransmitタイムスタンプを使用して時間の計算を行い、ネットワーク経由でクロックを同期することです。
ただし、ICMP プロトコルには、 「時刻同期に使用される」タイムスタンプ制御メッセージ (およびそれぞれのタイムスタンプ応答メッセージ)もあります。また、NTP と同じ名前の 3 つのタイムスタンプ フィールドも含まれており、同様の方法で使用される可能性があります。
それで、2つの違いは何ですか?NTP を使用している Cisco スイッチを知っているので、NTP がデスクトップ オペレーティング システム用であり、ICMP がレイヤ 3 デバイス用であるという違いではないと思います。
objective-c - objc の時刻変更通知 (時と分)
時刻が変更されたときに通知を受け取るベスト プラクティスはありますか?
NSTimer
時間が変更された場合 (秒とミリ秒ではなく、時間と分) を 0,002 秒ごとにチェックして、アプリのラベルと電話の時計との同期を毎分維持する を使用しています。
より良い解決策があることを願っています。
ありがとうございました
clock - ローカルネットワークでクロックを同期する方法は?
多数のシステムがローカル ネットワークに接続されていて、インターネットには接続されていないと仮定します。これらの各クロックが同期していることを確認するにはどうすればよいでしょうか? それらが UTC 時間と同期している必要はありませんが、相互に同期していれば十分です。
システムの 1 つに NTP サーバーをセットアップして、NTP を使用することを考えていました。しかし、それが要件に比べてはるかに面倒になるかどうかについてアドバイスが必要です。また、TCP ソケットを使用して往復時間とサーバー時間を手動で計算することをお勧めしますか?
distributed - 物理クロック: 正確性と精度
分散システムのクラスの勉強をしているときに、次の定義を理解していないことに出くわしました。
- C (t)を完全な時計とします。
- Ci(t) = C(t)の場合、クロックCi(t)は時間tで正しいと呼ばれます。
- dCi(t)/dt = dC(t)/dt ≡ 1の場合、クロックCi(t)は時間tで正確であると呼ばれます。
質問 1: 正確性の定義が何を意味するかはわかりますが、正確性とはどのように違うのでしょうか?
質問 2: dとは何ですか? それほど数学的な説明ではありませんが、非常に高く評価されます。
事前にどうもありがとうございました!
android - GPS を使用して時刻を同期する場合、Android の onNmeaReceived コールバックのタイムスタンプは何を表していますか?
Android 開発 (最新の SDK) ではGpsStatus.NmeaListener
、時間を同期するために を使用して NMEA メッセージを解析しています。
コールバックで、 onNmeaReceived(long timestamp, String nmea)
GPRMC メッセージの nmea 文字列を解析します。次に、システム クロックと GPRMC メッセージから解析された時間とのオフセットを計算します。
現在、Android フレーム作業で NMEA メッセージが受信された瞬間とコールバックの処理の間に遅延があります。これにより、計算している実際のオフセットが変動します。
私の推測ではtimestamp
、NMEA メッセージに沿って送信されるのは、NMEA メッセージが受信された瞬間のシステム クロック時刻です。これが正しい場合、このタイムスタンプを使用して、コールバック処理のレイテンシを補うことができます。
私の測定では、timestamp
時間はコールバックでキャプチャされたシステム クロック時間onNmeaReceived
と約 10 ~ 30 ミリ秒の差があります。
と解析された GPRMC メッセージから得られた時間との差/オフセットは、timestamp
7200092ms のオーダーです (GPS とシステム時間の差は 2 時間)。
したがって、これtimestamp
は GPS ベースの時刻ではなく、メッセージを受信したシステム クロックの時刻であると言えます。
Web をかなり検索しましたが、このタイムスタンプに関する情報を見つけることができないようです。このタイムスタンプについて詳しく教えてくれるリソースを持っている人はいますか? このタイムスタンプは正確には何を表していますか? それはどの瞬間に記録されますか?