【问题标题】:time difference 1 second between AWS (amazaon web service) and Microsoft serverAWS(亚马逊网络服务)和微软服务器之间的时间差 1 秒
【发布时间】:2019-03-28 09:48:38
【问题描述】:

服务器(windows 2016 与 time.windows.com 同步)和第三方 Web 服务(部署在 AWS - amazon Web 服务上)之间存在 1 秒的差异。

问题是:我向 TPS(第三方服务)发送了一个带有日期参数 Date = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ") 的请求,并得到一个日期小于发送日期的响应(相差最多 1 秒)。请求中的日期是请求的创建日期,响应中的日期是响应的创建日期。

请求"时间戳":"2018-10-24T01:33:12Z"

回复"时间戳":"2018-10-24T01:33:11.0000138Z"

有人能解释一下时差吗?以及如何正确解决此问题

【问题讨论】:

  • 为什么会出现这个问题?有时服务器不准确。这只是生活中的事实
  • 这对我来说是个问题,我认为所有地方的时间都是一样的
  • 你能从你发送的日期中减去一两秒吗?除非你是 NASA 或其他人,否则你真的不会神奇地让两台服务器彼此相距几毫秒
  • 服务器精度分开(这是这里的实际问题):“我认为所有地方的时间都是一样的” -> 这应该在地球表面上是真的,但不幸的是,这通常甚至不是真的(在物理学意义上)。 (例如:您的计算机系统嵌入到火星的太空船中,而不是在休斯顿的地面上)

标签: c# amazon-web-services time windows-server ntp


【解决方案1】:

网络延迟和 2 个平台之间的不同 NTP 服务器可以解释 1 秒的差异。您可能在上述设置中使用了 2 个不同的时间参考。仅此一项就可以解释漂移。

当然,不同的应用程序或用例需要或多或少的精度。对于某些设置,1 到 2 秒可能是不可接受的。以我的经验,100ms 的同步精度/抖动可以通过使用相同参考时钟的普通 NTP 来实现。

https://serverfault.com/questions/724409/how-accurate-can-we-get-computer-clocks-synchronized-in-a-local-network-of-any-n 对影响 NTP 时间同步精度的问题进行了很好的讨论。

另请参阅 https://aws.amazon.com/blogs/aws/keeping-time-with-amazon-time-sync-service/,了解 AWS 如何管理其参考 NTP 时钟。

有关 NTP 网络时间协议的概述,请参阅https://en.m.wikipedia.org/wiki/Network_Time_Protocol

【讨论】:

  • 回复的日期是由第三方设置的,我不能用时间戳做任何事情
  • 如果可能的话,我会询问他们的 NTP 设置,并使用与他们相同的时钟。
  • 1 秒的差异,尤其是向后的差异,显然是错误的,这意味着 某人 的时钟实际上是错误的。简单的问题是“谁?” NTP 可以做得比这更好,甚至是几个层次,并且接受这种归因于不同来源的偏差是不合理的。 Windows 历来在时间同步方面非常草率,可能会将时钟保持在几秒钟内。 Server 2016 更好,虽然我现在不确定默认情况下要好得多。可能有用:docs.microsoft.com/en-us/windows-server/networking/…
【解决方案2】:

补充另一个有趣的答案:

如果你想得到响应和请求的排序,那么你应该使用同一台机器(请求的发送者)产生的时间戳,而不是信任和比较不同机器产生的时间戳。

只有这样才能保证时间戳的逻辑顺序与请求/响应的顺序一致。

另外,不要忘记写在标头中的时间戳基本上是可以伪造的数据,如果它来自第三方来源。

【讨论】:

  • 当第三方服务收到我的请求时,请求的时间戳会与第三方服务器时间进行比较
  • 你的意思是:第三方服务器比较请求时间戳和第三方服务器时间?那么也许您应该进行一些同步以使用公共时间服务器。但是使用互联网存在固有的延迟,因此您将无法避免时间差异。您可以通过首先从时间服务器请求时间戳,然后将此时间戳用作请求中的值来避免错误的时间顺序。但它涉及的利益很低。为什么这实际上是一个问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 2015-05-15
  • 1970-01-01
  • 2015-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多