天天看點

網絡時間的那些事及 ntpq 詳解網絡時間的那些事及 ntpq 詳解

網絡時間協定(英語:network time protocol,ntp)一種協定和軟體實作,用于通過使用有網絡延遲的封包交換網絡同步計算機系統間的時鐘。最初由美國特拉華大學的 david l. mills 設計,現在仍然由他和志願者小組維護,它于 1985 年之前開始使用,是網際網路中最老的協定之一。
網絡時間的那些事及 ntpq 詳解網絡時間的那些事及 ntpq 詳解

指令 "ntpq -q" 輸出下面這樣的一個表:

remote refid st t when poll reach delay offset jitter

==============================================================================

local(0) .locl. 10 l 96h 64 0 0.000 0.000 0.000

*ns2.example.com 10.193.2.20 2 u 936 1024 377 31.234 3.353 3.096

<a target="_blank"></a>

remote – 用于同步的遠端節點或伺服器。“local”表示本機 (當沒有遠端伺服器可用時會出現)

refid – 遠端的伺服器進行同步的更高一級伺服器

when – 最後一次同步到現在的時間 (預設機關為秒, “h”表示小時,“d”表示天)

delay – 從本地到遠端節點或伺服器通信的往返時間(毫秒)

jitter – 與遠端節點同步的時間源的平均偏差(多個時間樣本中的 offset 的偏差,機關是毫秒),這個數值的絕對值越小,主機的時間就越精确

" " – 無狀态,表示:

沒有遠端通信的主機

"local" 即本機

(未被使用的)高層級伺服器

遠端主機使用的這台機器作為同步伺服器

“x” – 已不再使用

“-” – 已不再使用

“#” – 良好的遠端節點或伺服器但是未被使用 (不在按同步距離排序的前六個節點中,作為備用節點使用)

“+” – 良好的且優先使用的遠端節點或伺服器(包含在組合算法中)

“*” – 目前作為優先主同步對象的遠端節點或伺服器

“o” – pps 節點 (當優先節點是有效時)。實際的系統同步是源于秒脈沖信号(pulse-per-second,pps),可能通過pps 時鐘驅動或者通過核心接口。

refid 有下面這些狀态值

.locl. – 本機 (當沒有遠端節點或伺服器可用時)

.nist. –美國 nist 标準時間電話調制器

.acst. – 選播伺服器

.auth. – 認證錯誤

.auto. – autokey (ntp 的一種認證機制)順序錯誤

.bcst. – 廣播伺服器

.crypt. – autokey 協定錯誤

.deny. – 伺服器拒絕通路;

.init. – 關聯初始化

.mcst. – 多點傳播伺服器

.rate. – (輪詢) 速率超出限定

.time. – 關聯逾時

.step. – 間隔時長改變,偏移量比危險門檻值小(1000ms) 比間隔時間 (125ms)大

一個時間伺服器隻會報告時間資訊而不會從用戶端更新時間(單向更新),而一個節點可以更新其他同級節點的時間,結合出一個彼此同意的時間(雙向更新)。

除非使用 iburst 選項,用戶端通常需要花幾分鐘來和伺服器同步。如果用戶端在啟動時時間與 ntp 伺服器的時間差大于 1000 秒,守護程序會退出并在系統日志中記錄,讓操作者手動設定時間差小于 1000 秒後再重新啟動。如果時間差小于 1000 秒,但是大于 128 秒,會自動矯正間隔,并自動重新開機守護程序。

precision 為四舍五入值,且為 2 的幂數。是以精度為 2precision (秒)

rootdelay – 與同步網絡中主同步伺服器的總往返延時。注意這個值可以是正數或者負數,取決于時鐘的精度。

rootdisp – 相對于同步網絡中主同步伺服器的偏差(秒)

mintc – ntp 算法 pll/fll 最小時間常亮或“最快響應

offset – 由結合算法得出的系統時鐘偏移量(毫秒)

frequency – 系統時鐘頻率

sys_jitter – 由結合算法得出的系統時鐘平均偏差(毫秒)

clk_jitter – 硬體時鐘平均偏差(毫秒)

jitter (也叫 timing jitter) 表示短期變化大于10hz 的頻率, wander 表示長期變化大于10hz 的頻率 (stability 表示系統的頻率随時間的變化,和 aging, drift, trends 等是同義詞)

ntp 軟體維護一系列連續更新的頻率變化的校正值。對于設定正确的穩定系統,在非擁塞的網絡中,現代硬體的 ntp 時鐘同步通常與 utc 标準時間相差在毫秒内。(在千兆 lan 網絡中可以達到何種精度?)

那麼… 間隔門檻值(step threshold)的真實值是多少: 125ms 還是 128ms? pll/fll tc 的機關是什麼 (log2 s? ms?)?在非擁塞的千兆 lan 中時間節點間的精度能達到多少?

感謝 camilo m 和 chris b的評論。 歡迎校正錯誤和更多細節的探讨。

謝謝 martin

<a href="http://nlug.ml1.co.uk/2012/01/man-ntpq-gentoo-brief-version/853" target="_blank">man ntpq (gentoo 簡明版本)</a>

<a href="http://nlug.ml1.co.uk/2012/01/man-ntpq-long-version/855" target="_blank">man ntpq (長期維護版本)</a>

<a href="http://nlug.ml1.co.uk/2012/01/man-ntpq-gentoo-long-version/856" target="_blank">man ntpq (gentoo 長期維護版本)</a>

<a href="http://www.eecis.udel.edu/~mills/ntp/html/ntpq.html" target="_blank">ntpq – 标準 ntp 查詢程式</a>

<a href="http://www.eecis.udel.edu/~mills/ntp/html/index.html" target="_blank">the network time protocol (ntp) 分布</a>

<a href="http://www.rmg.co.uk/harrison" target="_blank">john harrison and the longitude problem</a>

<a href="http://en.wikipedia.org/wiki/orders_of_magnitude_%28time%29" target="_blank">orders of magnitude of time</a>

<a href="http://en.wikipedia.org/wiki/greenwich_time_signal" target="_blank">greenwich time signal</a>

原文釋出時間:2015-01-14

本文來自雲栖合作夥伴“linux中國”

繼續閱讀