【问题标题】:good precision for sync time with NTP over JavaScript通过 JavaScript 与 NTP 同步时间的良好精度
【发布时间】:2015-06-12 23:45:56
【问题描述】:

我想通过 JavaScript 与 NTP 同步时间。 客户端可以是普通电脑或智能手机或平板电脑。连接可以是 WLAN 或 3G 等。

我已经找到了这些问题和网站

第一个和第二个链接使用来自该服务器的时间戳:http://json-time.appspot.com/time.json 但是日期对象只有第二个精度。我想要一个更好的精度,如果可能的话~ 10 ms。 (我知道精度取决于连接和往返时间)
编辑: 10 毫秒几乎是不可能的。我想要最精确的偏移量。

第三个链接显示了一个 JavaScript 库,但它不使用与 ntp 服务器的直接连接。第四个链接的解决方案最接近我想要的。但它用于通过“自己的”服务器同步两个客户端。有没有办法直接同步到像pool.ntp.org这样的ntp池?

【问题讨论】:

  • Pinging 8.8.8.8 with 32 bytes of data: Reply from 8.8.8.8: bytes=32 time=68ms TTL=44 Ping statistics for 8.8.8.8: Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 68ms, Maximum = 68ms, Average = 68ms 你要如何获得低于 10 毫秒的时间?
  • 您可能对Sync JS time between multiple devices 感兴趣,它提供了许多解决方案。
  • @Bergi 这是关于同步,但不是 NTP
  • @starbolin 错误是最坏的情况只是往返时间的一半。好吧 10ms 是不可能的。我只想要最精确的值。
  • 不,不确定性,没有时钟纪律,是最好情况下的单向时间和最坏情况下的单向时间之间的差异。有时,这可能超过平均往返时间。在尽力而为的网络 (TCP/IP) 中无法保证最坏情况的时间。

标签: javascript synchronization ntp


【解决方案1】:

NTP 客户端为计算机自己的内部时钟提供服务以进行解析。客户端必须估计 UDP 往返时间并缓慢更改内部时钟 rate 以最小化平均误差。

【讨论】:

  • 好吧,我发现JavaScript不能处理UDP请求,所以没有直接的解决方案?!
  • 不。至少不使用 NTP。绝对不是在 JavaScript 中,因为它不能改变系统时钟。
  • @duskwuff 我不想更改系统时间,我将使用 NTP 偏移量。
  • Rfc5905 - NTP 是服务器到服务器同步协议,不是时间服务。
  • 服务器-服务器你确定?因为使用 android 你可以使用 NTP。安卓设备充当服务器?我不明白为什么它应该是一个服务器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
  • 2013-01-01
  • 2012-08-04
相关资源
最近更新 更多