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 協議規定轉載,敬請在正文中標註並保留原文/譯文連接和做者/譯者等信息。