在非常可变的延迟上与NTP同步时间

时间:2012-07-07 23:40:50

标签: ruby time synchronization ntp

我想尽可能准确地使用NTP同步时间,但我遇到了一个大问题:时间服务器的网络延迟变化很大(范围从80ms到900ms)。

考虑延迟的最佳方法是什么?

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应该始终相同,但是由于延迟,它每次都不同......

如果我做了几次测试并取平均值会更准确吗? 任何建议,建议欢迎:)

0 个答案:

没有答案