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?

那是我现在使用的部分 ruby​​ 代码,理论上realDifference应该总是相等的,但是由于延迟,它每次都不同......

另外,如果我进行几次测试并取平均值,它会更精确吗?任何建议,欢迎提出建议:)

4

0 回答 0