1

NTPを使用してできるだけ正確に時刻を同期したいのですが、大きな問題があります。タイムサーバーとのネットワーク遅延は非常に変動します(80ミリ秒から900ミリ秒の範囲)。

レイテンシーを説明するための最良の方法は何でしょうか?

sock = UDPSocket.new
sock.connect("pool.ntp.org", "ntp")

timeStart = Time.new.to_f

sock.print ntp_msg
sock.flush
#maybe I should put here timeStart?
sock.recvfrom

timeEnd = Time.new.to_f

latency=timeEnd-timeStart
timeDifference = ntp_recv_time-timeStart
realDifference = timeDifference-latency # maybe should divide latency or what?

これは私が現在使用している部分的なルビーコードです。理論的にrealDifferenceは常に等しいはずですが、レイテンシーのために毎回異なります...

また、私がいくつかのテストを行い、平均を取る場合、それはより正確でしょうか?任意の提案、推奨事項を歓迎します:)

4

0 に答える 0