GPS 的真正产品,不是位置,是时间

每个 GPS 卫星都背着一台原子钟。你以为它在告诉你在哪,其实它主要在告诉你几点了——精确到 30 纳秒的那种。定位只是「拿几个时间差解个方程」的副产品。

这个每次打开地图都被你在用的技术,主业是授时。

下面三件事,你可以亲手做:① 看时钟误差怎么毁掉定位;② 量你浏览器的时钟精度;③ 量你设备离真实时间差多远。

定位

定位的本质:三个圆,一个交点

忘掉公式。GPS 定位这件事,画三个圆就能看懂。分三步走,每一步都能动手拖。

拖拽你的接收机(金色点),圆会跟着重新找交点。

定位结果—
三个圆交上了吗—
你的表慢了多少—
用了几颗卫星4
换算

1 纳秒 = 30 厘米

光速是 299,792,458 米/秒。所以时钟误差每差 1 纳秒,你算出的距离就偏 30 厘米;每差 1 毫秒,位置就偏 300 公里。

造成的位置误差300 km
高频交易时序错乱
实测

你的浏览器时钟有多准(真测量)

为了防 Spectre 侧信道攻击,浏览器故意把你的高精度时钟削钝。打开这个开关,当场在你的设备上量出它被削到了什么粒度。

点「测量」,看看你的浏览器把 performance.now() 削到了多少。

实测

你这台设备离真实时间差了多少

真正网络校时(NTP)走 UDP/123,浏览器发不了。所以我们用 HTTP 近似一次伪 NTP:连打几个样本,套四时间戳公式,挑网络抖动最小的那次。

点「测量」,结果会诚实标注这是 HTTP 近似,不是真 NTP。

事故

多出来的那一秒,是如何把互联网绊倒的

2012 年 6 月 30 日,世界协调时间多了 1 秒(闰秒)。全球一大片机器的时钟被「往前跳了一秒」然后倒回去——结果很多程序直接卡死。

23:59:59 Reddit 无法访问
+1 秒 Mozilla、Cloudflare、LinkedIn 陆续瘫掉
事后 一堆公司改用「闰秒平滑」:把多出的一秒分散到整点里慢慢摊掉

模拟插一秒:为什么程序会被吓到

很多系统用「单调递增"时间差"」来判断超时。闰秒让墙上钟往回跳 1 秒,这些差值瞬间变成负数,超时判断直接错乱。