1

与单个时间服务器同步的机器会记录时间戳和往返时间。您如何从时间戳和往返时间知道您应该使用哪个时间来设置时钟?机器应该将时钟设置为几点?您如何估计设置的准确性?

4

1 回答 1

0

我将使用一个示例来说明如何做到这一点。

让您的机器 M 比服务器 S 提前 x=50 毫秒。M 的工作是计算出这 50 毫秒。进一步假设网络延迟为 d=10ms。

  • 在时间 1000 M 认为时间是 1050。它将 1050 发送到 S。
  • 在时间 1010,S 接收到消息,并发送回其当前时间 1010。
  • 在时间 1020 S 认为时间是 1070,它收到了包含 1010 的消息。

现在 M 建立两个方程:

  • (1050-x)+d = 1010 // M 在 (1050-x) 发送消息;延迟 d 到达 S。
  • 1070-x = 1010+d // M 在 1070-x 收到消息,即 1010 加上延迟 d。

通过解方程,M 知道它的时钟提前了 x=50ms。

于 2016-10-28T15:24:20.913 回答