问题标签 [ntp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4987 浏览

security - 破解网络时间协议(NTP)相对容易吗?

我在某处读到 NTP 基于 UDP,并且没有使用 NTP 通信构建的安全性,因此很容易欺骗 NTP 响应。这是真的吗?这不是一个主要的安全问题,因为那里的大多数服务器都依赖 NTP 来同步它们的时钟吗?

0 投票
1 回答
6903 浏览

ntp - NTP 客户端会针对 SNTP 服务器工作吗?

SNTP 是完整 NTP 规范的简化版。

我想针对 Windows XP 中包含的内部 SNTP 服务器使用完整的 NTP 客户端。这会起作用还是 NTP 客户端需要完整的 NTP 服务器才能工作?

0 投票
6 回答
89946 浏览

c# - 获取当前 GMT 时间

C# 中是否有返回 UTC (GMT) 时区的方法?不是基于系统的时间。

基本上,即使我的系统时间不正确,我也想获得正确的 UTC 时间。

0 投票
2 回答
336 浏览

client-server - 您如何计算客户端/服务器时间间隔?

我正在开发客户端/服务器软件,并且正在寻找使客户端时钟与服务器时钟保持同步的最佳方法。

当然,我不能使用NTP,因为我不想碰系统时钟。我只是想计算一个时间间隔,以便我可以将它添加到从服务器接收到的每个日期时间中,以将其转换为“本地时间”

我知道的是:

  • 我使用 GMT 时间处理 TimeZone 问题

  • 服务器在连接时将其当前时间发送给客户端,客户端从其时间中减去服务器时间以计算时间间隔。

当网络延迟恒定时,这很有效(阅读“我的局域网”......)

不幸的是,我希望我的软件可以在 Internet 上运行,甚至可以在移动客户端上运行,我已经见证了长达1 分钟的延迟变化。

对于我正在开发的软件,这样的滞后是不可接受的。

计算客户端/服务器时间间隔的好策略是什么?


最后一件事:我可以以两种方式发送消息(客户端到服务器和服务器到客户端)

这可能无关紧要,但这背后的技术是一个.net WCF客户端,它使用带有一些轮询的httpbinding

0 投票
4 回答
985 浏览

tcp - 通过互联网同步时钟

我正在使用我自己的协议通过互联网在两台专用计算机之间发送实时关键数据。

当然,存在延迟。

对于调试和优化,我喜欢让两台计算机使用相同的时基。即,我需要知道他们时钟的时差,以便更好地判断延迟。

当然,相对论之类的东西并不能真正让我完美地同步它们,但我喜欢尽可能接近。

仅依靠 NTP 似​​乎还不够好 - 根据我的经验,时钟可能会延迟半秒(澄清:到目前为止,我依赖于 Apple 提供的默认时钟)。

我需要至少 1/10 秒范围内的精度。两台计算机不会相距太远,ICMP ping 时间通常小于 100 毫秒。

任何建议如何做到这一点?

(目前,所涉及的机器运行 OS X,所以如果您知道专门为它们提供的解决方案,那将是一个开始)

0 投票
5 回答
31563 浏览

java - Java NTP 客户端

我需要我的软件与 NTP 服务器通信以确定本地时钟偏移。我曾尝试使用 org.apache.commons.net.ntp 包,但在 Windows 上运行时它的实现相当差,因为使用 System.currentTimeMillis() 来确定 NTP 数据包交换前后的时间。你可能知道也可能不知道,这个值只在系统时钟滴答声时更新,在大多数现代 Win2k3 服务器上是 64Hz 或每 15.625ms。这极大地限制了时钟偏移计算的准确性。

Ntpd 使用 CPU 高频定时器在系统时钟节拍之间进行插值,并获得更高的分辨率时间。您知道使用这种技术或类似技术的 Java 实现吗?或者您知道除 Apache 之外的任何其他 NTP 实现吗?

0 投票
6 回答
112154 浏览

c# - 如何使用 C# 查询 NTP 服务器?

我所需要的只是一种使用 C# 查询 NTP 服务器的方法,以获取 NTP 服务器的日期时间,以 astringDateTime.

这怎么可能以最简单的形式出现?

0 投票
2 回答
3773 浏览

java - 连接到 NTP 服务器一直失败 (Java)

我只是在学习如何在 Java 中进行网络连接,而第一个从 NTP 服务器获取时间的简单示例不断抛出 ConnectException。我将复制并粘贴代码,但我觉得它一定与代码无关,因为这段代码来自一本书。

我用来执行这个的命令是:

java AskTime us.pool.ntp.org

更新:阅读 msaeed 的建议后,我将端口更改为 123,现在被告知连接被拒绝而不是连接超时。所以我认为 msaeed 是对的,有人知道我还需要沟通什么来接收时间吗?

0 投票
4 回答
21327 浏览

time - 网络时间协议如何工作?

维基百科条目没有提供详细信息,而且RFC太密集了。这里有没有人以非常笼统的方式知道 NTP 的工作原理?

我正在寻找一个概述,解释如何使用Marzullo 的算法(或其修改)将服务器上的时间戳转换为客户端上的时间戳。具体来说,当通信发生在具有高度可变延迟的网络上(通常是该延迟的几倍)时,使用什么机制来产生平均在 10 毫秒内的准确性。

0 投票
1 回答
378 浏览

ntp - 处理 Y2.036K 和 Y2.038K 错误

我目前正在开展一个项目,要求我们的软件必须至少运行到 2050 年。最近我们遇到了处理 NTP 协议中的 Y2.036K“错误”以及 Y2.038K 错误的问题。基本上,我们的软件必须在这些日期之后继续运行,所有数据都使用正确的时间戳记录。鉴于目前还没有解决这些错误的方法,因此必须采用变通方法。

至关重要的是,我们的软件在这两个事件之后继续运行并正确记录日期。操作系统系统时间是否正确并不重要。鉴于我们使用的是 Java,我们应该能够处理相对于 1900 年黄金时代的日期。但是,如果系统时间设置在 1970 年的 Unix 纪元之前,java JVM 甚至都不会运行!它只是崩溃。

火上浇油,NTP 服务器由另一家供应商提供,我们无法控制它。因此,使用其他协议或修改服务器来处理这些都是不可能的。

需要创造性的解决方案。不用说,必须发生一些深奥的巫术。我们考虑了以下几点:

  1. 修改 ntpd 客户端软件以某种方式与 ntp 服务器协作,并从大于 1970 年而非 1900 年的 Unix 纪元的日期偏移本地时间。从而允许 JVM 运行而不会在初始化时崩溃。然后将相对于我们选择的翻转日期处理所有时间戳。(所以基本上,确保我们翻转到一个比 Unix 纪元大的日期)。

  2. 让 ntp 更正时间翻转到 1900 纪元并找到修复程序,以便 JVM 不会崩溃。

有没有其他人解决过这个问题?另外,是否还有其他我没有预见到的问题,使这些解决方案中的一个或两个根本不可行?