GMT (Greenwich Mean Time)格林威治时间 UTC (Coordinated Universal Time) 协调世界时 IAT (International Atomic Time),TAI 国际原子时 CST (Chinese Standard Time), 北京时间
Gentoo(也许其余发行版也是?)中 "ntpq -p" 的 man page 只有简短的描述:“打印出该服务器已知的节点列表和它们的状态概要信息。”html
我还没见到关于这个命令的说明文档,所以这里对此做一个总结,能够补充进 "man ntpq" man page 中。更多的细节见这里 “ntpq – 标准 NTP 请求程序”(原做者),和 其余关于 man ntpq 的例子.node
NTP 是一个设计用于经过 udp 网络 (WAN 或者 LAN) 来同步计算机时钟的协议。引用 Wikipedia – NTP:linux
网络时间协议(英语:Network Time Protocol,NTP)一种协议和软件实现,用于经过使用有网络延迟的报文交换网络同步计算机系统间的时钟。最初由美国特拉华大学的 David L. Mills 设计,如今仍然由他和志愿者小组维护,它于 1985 年以前开始使用,是因特网中最老的协议之一。git
想了解更多有关时间和 NTP 协议的知识,能够参考 “The NTP FAQ, Time, what Time?”和 RFCs for NTP。早期的“Network Time Protocol (Version 3) RFC” (txt, or pdf, Appendix E, The NTP Timescale and its Chronometry, p70) 包含了对过去 5000 年咱们的计时系统的变化和关系的有趣解释。维基百科的文章 Time 和 Calendar 提供了更宏观的视角。github
命令 "ntpq -q" 输出下面这样的一个表:redis
表中第一个字符(统计代码)是状态标识(参见 Peer Status Word),包含 " ","x","-","#","+","*","o":算法
参考 Clock Select Algorithm.服务器
refid 有下面这些状态值网络
一个时间服务器只会报告时间信息而不会从客户端更新时间(单向更新),而一个节点能够更新其余同级节点的时间,结合出一个彼此赞成的时间(双向更新)。ide
初次启动时:
除非使用 iburst 选项,客户端一般须要花几分钟来和服务器同步。若是客户端在启动时时间与 NTP 服务器的时间差大于 1000 秒,守护进程会退出并在系统日志中记录,让操做者手动设置时间差小于 1000 秒后再从新启动。若是时间差小于 1000 秒,可是大于 128 秒,会自动矫正间隔,并自动重启守护进程。
当第一次启动时,时间频率文件(一般是 ntp.drift 文件,记录时间偏移)不存在,守护进程进入一个特殊模式来矫正频率。当时钟不符合规范时这会须要 900 秒。当校订完成后,守护进程建立时间频率文件进入普通模式,并分步校订剩余的误差。
NTP 0 层(Stratum 0 )的设备如原子钟(铯,铷),GPS 时钟或者其余标准时间的无线电时钟为 1 层(Stratum 1)的时间服务器提供时间信号。NTP 只报告UTC 时间(统一协调时,Coordinated Universal Time)。客户端程序使用时区从 UTC 导出本地时间。
NTP 协议是高精度的,使用的精度小于纳秒(2的 -32 次方)。主机的时间精度和其余参数(受硬件和操做系统限制)使用命令 “ntpq -c rl” 查看(参见 rfc1305 通用变量和 rfc5905)。
Jitter (也叫 timing jitter) 表示短时间变化大于10HZ 的频率, wander 表示长期变化大于10HZ 的频率 (Stability 表示系统的频率随时间的变化,和 aging, drift, trends 等是同义词)
NTP 软件维护一系列连续更新的频率变化的校订值。对于设置正确的稳定系统,在非拥塞的网络中,现代硬件的 NTP 时钟同步一般与 UTC 标准时间相差在毫秒内。(在千兆 LAN 网络中能够达到何种精度?)
对于 UTC 时间,闰秒 leap second 能够每两年插入一次用于同步地球自传的变化。注意本地时间为夏令时时时间会有一小时的变化。在重同步以前客户端设备会使用独立的 UTC 时间,除非客户端使用了偏移校准。
闰秒发生时,会对当天时间增长或减小一秒。闰秒的调整在 UTC 时间当天的最后一秒。若是增长一秒,UTC 时间会出现 23:59:60。即 23:59:59 到 0:00:00 之间实际上须要 2 秒钟。若是减小一秒,时间会从 23:59:58 跳至 0:00:00 。另见 The Kernel Discipline.
那么… 间隔阈值(step threshold)的真实值是多少: 125ms 仍是 128ms? PLL/FLL tc 的单位是什么 (log2 s? ms?)?在非拥塞的千兆 LAN 中时间节点间的精度能达到多少?
感谢 Camilo M 和 Chris B的评论。 欢迎校订错误和更多细节的探讨。
谢谢 Martin
SNTP (Simple Network Time Protocol, RFC 4330,简单网络协议)基本上也是NTP,可是少了一些基于 RFC 1305 实现的 NTP 的一些再也不须要的内部算法。
Win32 时间 Windows Time Service 是 SNTP 的非标准实现,没有精度的保证,并假设精度几乎有 1-2 秒的范围。(由于没有系统时间变化校订)
还有一个PTP (IEEE 1588) Precision Time Protocol(精准时间协议)。见维基百科:Precision Time Protocol。软件程序为 PTPd。虫咬的功能是这是一个 LAN 高精度主从同步系统,精度在毫秒级,使用 International Atomic Time (TAI, monotonic,无闰秒)。数据报时间戳须要在网卡中启用。支持 PTP 的网络会对数据报记录时间戳以减小交换机路由器的影响。也能够在不记录时间戳的网络中使用 PTP 但可能应为时间误差太大而没法同步。所以使用这个须要对网络进行设置。
via: http://nlug.ml1.co.uk/2012/01/ntpq-p-output/831
编译自:http://nlug.ml1.co.uk/2012/01/ntpq-p-output/831 做者: Martin L
原创:LCTT https://linux.cn/article-4664-1.html 译者: liaosishere
本文由 LCTT 原创翻译,Linux中国首发。也想加入译者行列,为开源作一些本身的贡献么?欢迎加入 LCTT!
翻译工做和译文发表仅用于学习和交流目的,翻译工做遵守 CC-BY-NC-SA 协议规定,若是咱们的工做有侵犯到您的权益,请及时联系咱们。
欢迎遵守 CC-BY-NC-SA 协议规定转载,敬请在正文中标注并保留原文/译文连接和做者/译者等信息。