突发奇想,有没有基于 ntp 协议的手表呢?

2018-12-25 12:39:03 +08:00
 mrco

最近想买个表,机械表觉得不准还要一直佩戴,校时。。 石英表昵觉得不够逼格,佳明的运动手表好像又太大了。。。 于是在想有没有基于 ntp 的手表呢?

3240 次点击
所在节点    问与答
26 条回复
AstroProfundis
2018-12-25 16:59:37 +08:00
@julyclyde 来源请求?
crazycen
2018-12-25 17:05:55 +08:00
带 GPS 的运动手表都有 gps 对时,已经够准了!佳明 松拓都可以!
julyclyde
2018-12-25 19:02:52 +08:00
@AstroProfundis 对 roundtrip delay 有测量啊。你没用过 ntp 只读书么?
AstroProfundis
2018-12-25 21:36:23 +08:00
@julyclyde 那如果网络环境不稳定,rtt 抖动频繁,或者说 rtt 的值频繁改变的时候会怎么样呢?
AstroProfundis
2018-12-26 13:51:04 +08:00
看来 #23 楼没有看到我的后面提问,我说一下我的理解。
对于 #19 楼的观点“ NTP 就是针对不稳定网络的”我认为是不正确的,NTP 针对网络授时,协议 /算法中巧妙地排除了节点间的网络延迟,但它并不是针对 *不稳定* 网络的,或者说 NTP 在不稳定的网络下表现并不是足够好。

NTP 中客户端与服务器时钟偏差 offset 的计算方式是:

offset = ((服务器收包时间 - 客户端发包时间) + (客户端收包时间 - 服务器回包时间)) / 2

(具体可以看 [Wikipedia]( https://en.wikipedia.org/wiki/Network_Time_Protocol#Clock_synchronization_algorithm), 有很清晰的图解)

不难看出这里隐含了一个假定的前提条件:客户端发包和服务器回包,往返双向的网络延迟是相等的。

但事实上在公网传输的流量,双程的延迟并不一定相等,可能因为双向路由不同,也可能因为中间链路的抖动,总之 rt 这个东西是经常都在变化的,这种变化给获取到的 offset 值带来了持续的随机误差。NTP 中有一个专门的值用来衡量这种误差的影响程度叫 jitter, 其数学含义是客户端计算出的过去一段时间内和某个服务器所有 offset 值的均方差。

在理想情况下,jitter 应当是 0, 意味着客户端与服务器之间的网络一直稳定可靠,实际使用中,不难观察到距离越远(此处指 rtt 高)的服务器,其 jitter 也就越大,意味着客户端计算出来的自己同这台服务器之间的 offset 值越不精确。并且在网络繁忙的时段 rtt 可能频繁变化,jitter 也会升高。

这个就是我说 NTP 并不是针对 *不稳定* 网络中授时的原因,也是很多大公司会在自己内网架设 NTP 服务器来进行授时的原因(之一)。当然一般家用或 VPS 上面使用不需要考虑这种问题,误差并没有大到不能忍的地步。(个人经验是中美之间授时 jitter 可能在几十毫秒的量级)

回到楼主的问题,手表是一个需要随身移动并经常出入各种复杂物理环境的东西,首先显然不可能使用有线网络,能通过 wifi 联网的时间不一定稳定或者足够长( NTP 是需要一段时间来完成时间校正的,offset 越大需要的时间越长,和系统内核也有关系),通过移动数据网络的话稳定性应该也不难想象,所以这种情况明显精度高不到哪里去。

而且因为市场上早就有了比较成熟的无线电授时甚至是 GNSS 授时技术,这两者只需要设备在户外或者其他能接收到无线电或者卫星信号的地方,被动接收信号计算偏差,不需要在手表上额外加装信号发射装置,也不要求手表处在有网络覆盖的地区(所以野外也可以使用),显然是更好的选择。

不过话说回来,以上这些除非特别极端情况,一般误差都不会超过 1s, 日常使用多半是感受不到的。

@CEBBCAT 希望能解答你在 #14 楼的疑问。
mrco
2018-12-29 14:19:27 +08:00
@AstroProfundis 非常非常细致的回答,很精确的解答了我的疑惑。特别是“手表穿梭在不通复杂的物理环境”这个真的让我眼前一亮。。。

看得出来你对于思考是很严谨和客观的!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520777

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX