游戏新闻

联机时钟偏差为什么不能只用一半延迟判断:八次往返记录的偏差范围(实例24)

2026-11-06

客户端与服务器的时钟可能相差一个固定量,上行与下行网络耗时也可能不同。一次往返可以给出偏差的范围,却不能在没有额外假设时确定唯一精确值。

固定规则与输入

每次记录客户端发出a、服务器收到b、服务器发出c、客户端收到d。设服务器时钟等于客户端时钟加偏差,服务器处理耗时为c减b,两个传输耗时只要求不为负。

时刻都使用同一假定时间单位,先后次序在各自时钟中解释。

逐步观察结果

记录1四个时刻[100, 101, 103, 118],处理耗时2,去除处理后的往返16;偏差区间[-15,1],中点估计-7。

记录2四个时刻[130, 135, 135, 145],处理耗时0,去除处理后的往返15;偏差区间[-10,5],中点估计-5/2。

记录3四个时刻[160, 156, 159, 174],处理耗时3,去除处理后的往返11;偏差区间[-15,-4],中点估计-19/2。

记录4四个时刻[190, 189, 194, 202],处理耗时5,去除处理后的往返7;偏差区间[-8,-1],中点估计-9/2。

记录5四个时刻[220, 215, 216, 237],处理耗时1,去除处理后的往返16;偏差区间[-21,-5],中点估计-13。

记录6四个时刻[250, 255, 255, 270],处理耗时0,去除处理后的往返20;偏差区间[-15,5],中点估计-5。

记录7四个时刻[280, 280, 283, 294],处理耗时3,去除处理后的往返11;偏差区间[-11,0],中点估计-11/2。

记录8四个时刻[310, 318, 322, 333],处理耗时4,去除处理后的往返19;偏差区间[-11,8],中点估计-3/2。

八个区间交集[-8,-5],生成本题时使用的真实偏差-7确实在其中。它用于事后核对;仅凭这些记录,应报告可行范围,而不能把中点称为唯一真实偏差。

独立复核

由非负传输耗时可得偏差至少为c减d,至多为b减a。区间宽度等于去除处理耗时后的往返传输时间。取区间中点是一种估计,不能自动消除路径不对称。

复核时先保留本例输入,再自己写出中间状态。若结果不同,应从最早出现差异的位置检查,尤其留意边界是否包含、索引从哪里开始、取整何时发生,以及是否使用了尚未更新的旧状态。计算得到的结论仅适用于已经说明的规则,修改规则后需要重新验证。

适用范围

本例假定时钟走速相同且偏差不变,时间戳没有额外测量误差。多个区间可以取交集;若交集为空,应检查这些前提,不能强行把不相容的记录平均成一个确定答案。

准备好开始吧,它既快速又简单。