“四时间戳估计将物理钟比较的证据写成一个可行区间:扣除服务端处理后,非负去回延迟分别给偏移上、下界。中点只有在相应对称条件下才等于真实偏移;时间区间重叠也不自动表示因果并发,仍须回到本页的事件…”
形式陈述
四个读数来自四个不同事件
在消息传递系统理路消息传递系统Message-passing system进程仅通过发送和接收消息交互的分布式模型。里,一次请求经过发送、服务端接收、服务端回复、客户端接收四个事件。将它们的真实时刻记为t₁≤t₂≤t₃≤t₄;同一个请求的四个时钟读数为T₁=A(t₁)、T₂=B(t₂)、T₃=B(t₃)、T₄=A(t₄)。必须配对到同一次交换,不能将一条旧回复与另一条新请求的发送时间拼接。
本页先采用可精确推导的模型:在整个交换窗口内,两钟以相同单位、单位速率运行,A(t)=t+a、B(t)=t+b,偏移θ=b−a恒定。单向传播延迟d_f=t₂−t₁、d_b=t₄−t₃均非负;服务端处理时间p=t₃−t₂也非负。报文内容和打点诚实,暂不加入量化误差、时间回绕与系统钟跳变。
由事件次序直接得到
因此全部可行偏移恰为闭区间
区间长度是δ。通常使用的中点估计为
这就是NTP四戳计算所用的偏移与往返公式;本页明确区分其估计值和模型中的真实偏移。[1, §8, pp.28–30]
直觉
每一程只提供偏移的一侧限制
客户端发送时读到100,服务端收到时读到134。差34可能来自服务端钟快34而传播为零,也可能来自钟快30、传播4。只知道消息不能倒着走,能断定的只是θ≤34。
返回一程提供反向限制。服务端发送136,客户端收到112;差24意味着服务端至少快24,否则回复得在发送之前收到。两程合起来,把θ夹在24与34之间。把这条区间压成一个中点数字,方便显示和校正,却不会增加观测中的信息。
处理时间属于来回等待,不属于传播
客户端经过T₄−T₁=12个单位才收到回复;其中服务端从134处理到136用了2个单位。传播往返应是12−2=10,而不是12。只用客户端RTT再除二,会把服务端排队或处理也误算成链路延迟。
处理时间能够这样相减,依赖两端在此窗口内速率相同。若服务端读数跳了一次,或两端秒的长度不同,T₃−T₂便不再直接等于真实处理时长,必须换成带误差或速率界的模型。
例子与边界
一组读数,多个真实世界
取A(t)=t+100、B(t)=t+130,四个真实时刻依次0、4、6、12。观测是(100,134,136,112),算出p=2、δ=10、I=[24,34]、中点29;真偏移30,中点误差−1。
更关键的是,同一份观测也兼容下面三组参数。每行都满足两条观测方程,处理时间仍为2。
| 偏移θ | 去程d_f | 回程d_b | 中点误差 |
|---|---|---|---|
| 24 | 10 | 0 | +5 |
| 30 | 4 | 6 | −1 |
| 34 | 0 | 10 | −5 |
对任意θ∈I,都可以令d_f=T₂−T₁−θ、d_b=θ−(T₃−T₄),得到非负延迟并重现四戳。因此I不仅是保守包围,也是当前模型下无法进一步排除的完整集合。中点的最坏误差δ/2在两个端点达到;只有另知d_f=d_b时,才有中点等于真值。
多次测量先求交,再检查合同
如果若干次交换共用同一恒定θ,每条都给一条必须满足的区间,所以可以求交:
| 四戳T₁/T₂/T₃/T₄ | 本次可行区间 | 累计交集 |
|---|---|---|
| 100/134/136/112 | [24,34] | [24,34] |
| 200/232/233/205 | [28,32] | [28,32] |
| 300/331/332/304 | [28,31] | [28,31] |
第三次后仍不能从记录中唯一确定30。反复得到同样的非对称延迟,也不会仅靠样本增多把它变成对称延迟。
再加入(400,441,442,405),得到[37,41],与前面交集为空。这应返回“不相容”:可能恒偏移假设失效,也可能打点或配对有误。把四个中点平均成一个漂亮数字,不是修复矛盾的证明。附件拒绝T₄<T₁、T₃<T₂或δ<0;这是拒绝本页模型不允许的输入,不是在断言真实NTP实现不可能计算出负表观延迟。[1, p.30]
观测会变旧
恒偏移是假设,不是四戳自己测出来的永久事实。若另外有相对偏移变化界:从已知真实参考时刻t₀到t₀+Δ,变化量不超过γΔ,那么I=[L,U]只能传播为[L−γΔ,U+γΔ]。例如[28,32]、γ=1/10、Δ=10,得到[27,33]。
这里Δ是有保证的真实经过时长;若只拿另一个有漂移的本地持续时间来代替,还需用其速率界换算。每个交换窗口内已有漂移时,也不能先当作精确恒偏移区间,再仅在结束后补一点误差。
推论与应用
用区间判断,保留不确定出口
若要判断两个异机日志事件的真实先后,可以先把各自读数转成同一参考上的时间区间。两区间严格分离才能由这份时间证据确定顺序;重叠时应保留未知。未知不等于同时发生,也不等于因果并发,因果还要检查消息与进程内顺序。
偏移估计也不同于租约的速率保证理路有界漂移租约Bounded-drift lease · Lease duration safety在双方速率有界而报文可任意迟到的模型中,推导从请求发送计时的保守持有期限,验证拒绝迟到回复、暂停恢复与外部效果边界。:两个钟此刻显示相同读数,不能证明以后走得一样快;反过来,知道各自持续时间的速率界,即使绝对读数相差很远,也能推导保守期限。
算术成本与对时服务分开
处理一条四戳记录只需常数次加减、比较和除二;流式求m条区间的交集为O(1+m)时间、O(1)额外状态。保存所有测量证书则需O(m)输出。以上按定宽读数单位成本计,附件用Fraction精确表示有理数,大整数乘除及约分的位成本另计。
完整NTP还要处理源选择、滤波、频率校正、时间编码和报文验证。本任务没有实现这些部分,也不由一次探测证明对端忠实、网络对称或未来误差有确定上界。[1, §§9–11,15]
在时钟证书终结任务中,交付四戳、处理时间、区间、三份延迟见证和空交集出口;改变去程和回程而保持往返总和,观察中点如何移动。
参考资料
- D. Mills、J. Martin、J. Burbank、W. Kasch,RFC5905: Network Time Protocol Version 4,2010,§8,pp.28–30的四戳与延迟计算;§4、pp.8–9区分偏移、频率误差与随时间增长的不确定性。本页的非负延迟可行集合、端点不可识别证书和有理数例子为所声明模型下的直接推导。