具有非对称延迟的网络中的时钟同步


38

假定计算机具有未初始化的精确时钟。也就是说,计算机时钟上的时间是实时时间加上一些恒定的偏移量。计算机有一个网络连接,并且我们要使用连接,以确定常数的偏移量。B

简单的方法是计算机将查询发送到时间服务器,记录本地时间。时间服务器在时间接收查询,并将包含的回复发送回客户端,客户端在时间接收它。然后是,即。B+C1TTB+C2B+C1TB+C2TC2BTC1

如果网络传输时间和服务器处理时间是对称的,则。据我所知,在野外使用的时间同步协议NTP在此假设下运行。B=TC1+C22

如果延迟不是对称的,如何提高精度?有没有一种方法可以测量典型的Internet基础结构中的这种不对称性?


2
有一项相关的专利,但是谁想要阅读这些专利 ...
拉斐尔


首先考虑:两个实体可能是不可能的。使用(n2)n实体,可能会实现更好的同步。然后,时钟可用于测量单程时间。
rgrig 2012年

您能否澄清申请/背景,还是主要是理论问题?
vzn 2012年

Answers:


10

无法测量不对称

不,您无法测量不对称性。考虑这两个通信图,第一个具有负时钟偏移和相等的延迟,第二个无时钟偏移和完全不对称的延迟(但往返时间相同)。

通讯图

需要注意的重要一点是,从PC和服务器的角度来看,两种交互作用是完全相同的。他们同时接收消息。他们同时发送消息。

您可以通过“抓住” PC时间轴并对其进行“滑动”,使消息的发送/接收点相对于它们各自的时间轴固定,来创建更多案例。您造成的不对称完全被时钟偏移所抵消。实际上,您甚至可以以一种方式使消息及时向后退(只要往返时间保持不变),而服务器/客户端仍然无法分辨!

因此,不可能测量等待时间的不对称性。在最坏的情况下,如果您没有其他信息,而是等待时间是正数并且是往返时间的总和,则时钟同步的精度将受限于往返时间。

中间基础设施可以提供帮助吗?

中间基础结构能否提供帮助,将在很大程度上取决于您所处情况的理论模型。

如果不对称性是恒定的,并且中间基础结构是您与服务器之间的通信路径上的路由器,则否。即使每个路由器将时钟与相邻路由器同步,错误也会以与您通过跨路由器的通信与服务器同步的方式相同的方式加重。

在现实世界中,由于架构原因,您可以依赖于延迟,延迟是对称的;重复的同步可以减少由于排队延迟等引起的不对称性;多条通信路径可以减少其他类型的不对称性。

如果您将模型的假设放在两者之间(当然,因为探索模型空间很有趣),那么我希望结果也应该介于两者之间。


这应该是您问题的答案。在这里,我要问的是更具体的设置,我们可能会从基础架构中获得帮助。
吉尔(Gilles)“所以,别再邪恶了”

我为您添加了更多内容。
Craig Gidney 2012年

在我看来这是错误的&可以注意到,虽然PC的发送和接收时间是相同的(两种情况下,上部时间轴事件重合),但是服务器时间却不同(两种情况下是底线),因此,在两种情况下,NTP客户端计算的公式是不同的。通过在每种情况下标记的NTP值(其中是服务器时间中记录并发送回客户端的值),可以更好地理解这一点。如我的回答所示,NTP时间协议确实可以测量和调整t1,t2,t3,t4t2,t3(t1t0)(t3t2)
vzn 2012年

@vzn关于t消息的服务器时间在两个示例中都是相同的。服务器的时间线向左移动表示开始的时钟偏移是不同的。初始时钟漂移和等待时间不对称的影响恰好是等效的,因此在相反的方向上对其进行调整可以使所得的行为等效。
Craig Gidney

进一步研究,客户端/服务器可以告知他们的时钟何时至少在往返时间之外与时钟不同步。在polycos等人中的更多信息,请参见下面的内容,其中它们测量的不同“单向延迟”大于NTP不确定性(这似乎比NTP服务器的往返时间短,即
〜10ms

2

考虑已知是同步的时间服务器,网络,和客户机。θ={A,B,C}P

假设是从机器到机器单程飞行时间,可能是。TXYXYTXYTYX

令是和机器之间不对称性的度量。ΔXY=|TXYTYX|XY

现在,考虑到可以通过让同步机同意同时向彼此发送单向消息来测量两个同步机之间的不对称性。这些机器之间到达时间的差异是,即:Δ

ΔAB=|TABTBA|

ΔBC=|TBCTCB|

ΔCA=|TCATAC|

可以测量。

现在考虑电路飞行的时间:

PABP,用,CAB

PBAP,用。CBA

CAB=TPA+TAB+TBP

CBA=TPB+TBA+TAP

考虑客户端机器同时启动这两个电路,并测量到达时间:Px

x=CABCBA=ΔPA+ΔAB+ΔBP

两个和是通过前面提到的测量已知的,所以移动未知数左侧:xΔAB

xΔAB=ΔPA+ΔBP

同样,对于和,可以显示:{CAC,CCA}{CBC,CCB}

yΔBC=ΔPB+ΔCP

zΔCA=ΔPC+ΔAP

仔细检查,我们注意到。左侧包含根据测量已知的值,右侧包含3个方程式中的3个未知数。ΔXYΔYX

同时解决

ΔAP=r+st2

ΔBP=rs+t2

ΔCP=tr+s2

哪里,

r=xΔAB

s=yΔBC

t=zΔCA


如何解决我的答案和其他人遇到的问题?
拉斐尔

好吧,一上午使用3个计时服务,而不是一个。而且它需要发送大约12条消息-6条消息找到时间服务器之间的不对称性,6条消息找到客户端与服务器之间的不对称性。它不是一维解决方案空间,因为组件位于3台服务器之间,而不是一台。并且它不假设时间可以倒退。
宾果游戏

它确实严重依赖于3个完全同步的时间服务器,它们的同步留给读者练习。^^
Bingo

@Raphael我想我现在明白您的评论。时移不起作用,因为它受到更多限制。例如。时移 WRT并不只是影响之间的时间和也是circuts,差异其被测量并计入计算。也许我还是错了?不确定:PAPAPPACP,PABP,PBAP,PCAP
Bingo

0

如果仅控制端点。你不能 请参阅克雷格的答案。

即使像Bingo的答案中那样添加更多的计算机和更复杂的计算机集,也可以减少到仅使同步的计算机具有对其他计算机的瞬时访问权限的计算机(延迟 = 0)。TXY

请注意,如果您执行,则会得到。TAB=TBC=TCA=0ΔAP=ΔBP=ΔCP=0

那怎么了 x=CABCBA=ΔPA+ΔAB+ΔBP

ΔPA=|TPATAP|,而不是ΔPA=TPATAP

如果使用第二个,则不能使用的假设(如果不使用该假设,则最终等式会相互抵消)。ΔXYΔYX

所以,你可以做什么?通过邮件发送一个非常好的时钟。;)

或者,如果您可以控制它们之间的所有节点,则可以检查处理每个数据包的时间并计算每个连续对之间的延迟,如果两个方向都使用相同的物理介质,则该延迟应该是对称的。

您可能需要考虑广义相对论,并记住同时性并不存在。


“您可能需要考虑广义相对论”不,我不是。我的解决方案很好,它仅在所有涉及的时钟都在固定帧中时才有效。分布式系统中存在相对性,但它来自网络延迟,而不是物理原因。它的数学是完全不同的。
吉尔斯(Gillles)“所以-别再作恶了”

-1

NTP实际上使用4个时间测量值来计算“偏移”。它们是数据包从客户端到服务器再到客户端的往返过程中的“时间点”,但可以视为时间偏移。它假设客户端和服务器之间的时间偏移可以关闭,但是两者都可以准确计算本地经过的时间偏移。t0,t1,t2,t3

客户端在收到返回数据包后将具有所有4个值,并计算实际偏移量。一旦在客户端和服务器之间计算了相对偏移,就可以同步“绝对时间”偏移,即客户端可以准确地估计服务器通过其本地时间偏移测得的确切偏移,即“增量”。

t0 =在客户端发送的时间[offset] =在服务器上记录的时间[offset] =在服务器发送的时间[offset] =在客户端记录的时间[offset]
t1
t2
t3

实际公式为θ=(t1t0)+(t2t3)2

请注意,此公式可以处理从客户端到服务器的时间与从服务器到客户端(更短或更长)不同的情况。t1t0t3t2

在网络上,延迟时间归因于两个主要因素,主要是延迟和带宽。

  • 延迟是路由器在发送新的[小]数据包时的短暂延迟,并且每个路由器的常数大致不同。可以使用traceroute实用程序对其进行测量。
  • 带宽是可以发送大量数据的速率,例如“上载与下载时间”,也可以通过远程“带宽测量”网站进行测量。

在许多现代家庭/企业互联网连接中,上传速率远小于下载速率,这可能会影响与差异,而客户端到服务器和服务器到服务器之间的延迟可能很小或有些相似客户。t1t0t3t2

提高NTP中使用的偏移的计算准确性(并且可以校正一定程度的随机网络延迟)的基本算法是重复此过程多次并使用“楔形散点图的顶点”。这可以在David Mills 在NTP上PPT幻灯片10的“时钟过滤器算法”中看到。另请参见Mills的时钟滤波器算法。(请注意,尽管编写了通用代码以允许多台服务器,但仍可以在单个服务器和客户端之间使用它。)这是NTP体系结构和算法中描述的“缓解算法”的一部分。


1
问题特别是关于等待时间不对称的情况。采取多种措施不会告诉您有关不对称常数的任何信息。
吉尔(Gilles)'所以

该问题实际上不包含“等待时间”一词。如果您想用数学形式而不是用单词(尤其是真正的NTP公式)来勾勒出实际想到的情况,那肯定会有所帮助。公式和算法确实可以度量/处理/发现“等待时间”和“不对称”的各种情况。
vzn 2012年

C1和是等待时间值(我称它们为“延迟”,这两个词在此上下文中是同义词)。C2
吉尔斯(Gillles)“所以-别再邪恶了”

C1和的影响被延迟,但并不真正等于给它。在一定意义上散布实际上地块等待时间....C2
VZN

注意(在上面的acct中可能并不完全明显),服务器值在返回数据包中从服务器发送到客户端。t1,t2
vzn 2012年

-3

如果我们能及时发回数据包

在此处输入图片说明

B=Tf+TbTf2C1+C22

假设:

(B+C2)Tb=Tf(B+C1)

Tf(B+C2)=(B+C1)Tb


1
通过“典型的Internet基础结构”的假设排除了这种聪明的解决方案。
吉尔(Gilles)“所以,别再邪恶了”

1
@吉尔斯我知道。:D
Pratik Deoghare 2012年

-4

这是一个听起来绝对使我信服的想法,因此可能以愚蠢的方式绝对是错误的。

请考虑以下情形。我们有两个分别具有时钟和节点和。为了简单起见,让我们假设时钟以相同的速度运行。我们用表示它们之间的差异,这对于我们而言是恒定的。我们进一步假设传输延迟和是恒定的。N1N2C1C2δ=C1C2d12d21

有无发送具有时间戳的消息到,让上的当前时间在接收到它(做对于其它方向上的相同)。另外,通过来回发送消息来测量往返时间(在任一节点上)。现在建立这个方程系统:N1T1mN2T2rC2D

T2rT1m=d12+δT1rT2m=d21δD=d12+d21

由于该系统由三个方程式组成,具有三个未知数,因此我们知道有一个解可以解决。当然,节点必须交换其测量值,以便它们都可以计算的相同值(如有必要)。δ

1]我认为这些假设是自然而必要的。可以证明它们是合理的,希望在我们进行同步尝试期间各个量不会有太大变化。


(d12+δ)+(d21δ)(d12+d21)=0。存在三个方程式和三个未知数,但是解的族是一维的。这与Ran现在删除的答案所遇到的问题相同,并在聊天中进行了简短讨论:时间是相对的;我们无法区分传输延迟和时钟偏斜。
吉尔(Gilles)'“ SO-不要邪恶”

@吉尔斯太糟糕了。我们应该留给所有人一个谬论吗?
拉斐尔

1
我可以恢复我写的错误答案。由于Gilles的评论,它可能很有用。
Ran G.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.