我有一个星形结构的应用程序网络拓扑客户端服务器。我正在尝试计算从 1 个客户端发送到其余客户端的消息的毫秒数。
所有计算机同步到 Windows 时间服务器。我认为这是问题所在 - 也许它们都是准确的 +/- X 毫秒,这让我很困惑。
无论如何,我发送一条消息并在消息中存储.NET DateTime.UtcNow.Ticks
在每个客户端中,我将本地机器 DateTime.UtcNow.Ticks 与数据包中存储的值进行比较。我通过将差异除以 10,000 得到 ms。我通常会是 70 毫秒或 100 毫秒,具体取决于我使用的客户端计算机。偶尔我会得到一些荒谬的东西,比如-300ms。这意味着接收客户端计算机时间比发送者早 350 毫秒以上。
是时间同步的问题吗?有没有办法轻松获取我想要的信息?
我需要客户实时知道信息在一百毫秒的分辨率下有多陈旧。我能想象的唯一方法是发送测试数据包来测量标准,取平均值并让我的客户确定相对陈旧度(因为他们会处理 -350ms 之类的东西)
谢谢,