命令 "ntpq -q" 輸出下面這樣的一個(gè)表:
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
更多細(xì)節(jié)
表頭
- remote – 用于同步的遠(yuǎn)程節(jié)點(diǎn)或服務(wù)器。“LOCAL”表示本機(jī) (當(dāng)沒有遠(yuǎn)程服務(wù)器可用時(shí)會(huì)出現(xiàn))
refid – 遠(yuǎn)程的服務(wù)器進(jìn)行同步的更高一級(jí)服務(wù)器
st – 遠(yuǎn)程節(jié)點(diǎn)或服務(wù)器的 Stratum(級(jí)別,NTP 時(shí)間同步是分層的)
t – 類型 (u: unicast(單播) 或 manycast(選播) 客戶端, b: broadcast(廣播) 或 multicast(多播) 客戶端, l: 本地時(shí)鐘, s: 對(duì)稱節(jié)點(diǎn)(用于備份), A: 選播服務(wù)器, B: 廣播服務(wù)器, M: 多播服務(wù)器, 參見“Automatic Server Discovery“)
when – 最后一次同步到現(xiàn)在的時(shí)間 (默認(rèn)單位為秒, “h”表示小時(shí),“d”表示天)
poll – 同步的頻率:rfc5905建議在 NTPv4 中這個(gè)值的范圍在 4 (16秒) 至 17 (36小時(shí)) 之間(即2的指數(shù)次秒),然而觀察發(fā)現(xiàn)這個(gè)值的實(shí)際大小在一個(gè)小的多的范圍內(nèi) :64 (26 )秒 至 1024 (210 )秒
reach – 一個(gè)8位的左移移位寄存器值,用來測(cè)試能否和服務(wù)器連接,每成功連接一次它的值就會(huì)增加,以 8 進(jìn)制顯示
delay – 從本地到遠(yuǎn)程節(jié)點(diǎn)或服務(wù)器通信的往返時(shí)間(毫秒)
offset – 主機(jī)與遠(yuǎn)程節(jié)點(diǎn)或服務(wù)器時(shí)間源的時(shí)間偏移量,offset 越接近于0,主機(jī)和 NTP 服務(wù)器的時(shí)間越接近(以方均根表示,單位為毫秒)
jitter – 與遠(yuǎn)程節(jié)點(diǎn)同步的時(shí)間源的平均偏差(多個(gè)時(shí)間樣本中的 offset 的偏差,單位是毫秒),這個(gè)數(shù)值的絕對(duì)值越小,主機(jī)的時(shí)間就越精確
字段的統(tǒng)計(jì)代碼
表中第一個(gè)字符(統(tǒng)計(jì)代碼)是狀態(tài)標(biāo)識(shí)(參見 Peer Status Word),包含 " ","x","-","#","+","*","o":
- " " – 無狀態(tài),表示:
沒有遠(yuǎn)程通信的主機(jī)
"LOCAL" 即本機(jī)
(未被使用的)高層級(jí)服務(wù)器
遠(yuǎn)程主機(jī)使用的這臺(tái)機(jī)器作為同步服務(wù)器
“x” – 已不再使用
“-” – 已不再使用
“#” – 良好的遠(yuǎn)程節(jié)點(diǎn)或服務(wù)器但是未被使用 (不在按同步距離排序的前六個(gè)節(jié)點(diǎn)中,作為備用節(jié)點(diǎn)使用)
“+” – 良好的且優(yōu)先使用的遠(yuǎn)程節(jié)點(diǎn)或服務(wù)器(包含在組合算法中)
“*” – 當(dāng)前作為優(yōu)先主同步對(duì)象的遠(yuǎn)程節(jié)點(diǎn)或服務(wù)器
“o” – PPS 節(jié)點(diǎn) (當(dāng)優(yōu)先節(jié)點(diǎn)是有效時(shí))。實(shí)際的系統(tǒng)同步是源于秒脈沖信號(hào)(pulse-per-second,PPS),可能通過PPS 時(shí)鐘驅(qū)動(dòng)或者通過內(nèi)核接口。
參考 Clock Select Algorithm.
refid
refid 有下面這些狀態(tài)值
- 一個(gè)IP地址 – 遠(yuǎn)程節(jié)點(diǎn)或服務(wù)器的 IP 地址
.LOCL. – 本機(jī) (當(dāng)沒有遠(yuǎn)程節(jié)點(diǎn)或服務(wù)器可用時(shí))
.PPS. – 時(shí)間標(biāo)準(zhǔn)中的“Pulse Per Second”(秒脈沖)
.IRIG. – Inter-Range Instrumentation Group 時(shí)間碼
.ACTS. – 美國(guó) NIST 標(biāo)準(zhǔn)時(shí)間 電話調(diào)制器
.NIST. –美國(guó) NIST 標(biāo)準(zhǔn)時(shí)間電話調(diào)制器
.PTB. – 德國(guó) PTB 時(shí)間標(biāo)準(zhǔn)電話調(diào)制器
.USNO. – 美國(guó) USNO 標(biāo)準(zhǔn)時(shí)間 電話調(diào)制器
.CHU. – CHU (HF, Ottawa, ON, Canada) 標(biāo)準(zhǔn)時(shí)間無線電接收器
.DCFa. – DCF77 (LF, Mainflingen, Germany) 標(biāo)準(zhǔn)時(shí)間無線電接收器
.HBG. – HBG (LF Prangins, Switzerland) 標(biāo)準(zhǔn)時(shí)間無線電接收器
.JJY. – JJY (LF Fukushima, Japan) 標(biāo)準(zhǔn)時(shí)間無線電接收器
.LORC. – LORAN-C station (MF) 標(biāo)準(zhǔn)時(shí)間無線電接收器,注: 不再可用 (被 eLORAN 廢棄)
.MSF. – MSF (LF, Anthorn, Great Britain) 標(biāo)準(zhǔn)時(shí)間無線電接收器
.TDF. – TDF (MF, Allouis, France)標(biāo)準(zhǔn)時(shí)間無線電接收器
.WWV. – WWV (HF, Ft. Collins, CO, America) 標(biāo)準(zhǔn)時(shí)間無線電接收器
.WWVB. – WWVB (LF, Ft. Collins, CO, America) 標(biāo)準(zhǔn)時(shí)間無線電接收器
.WWVH. – WWVH (HF, Kauai, HI, America) 標(biāo)準(zhǔn)時(shí)間無線電接收器
.GOES. – 美國(guó)靜止環(huán)境觀測(cè)衛(wèi)星;
.GPS. – 美國(guó) GPS;
.GAL. – 伽利略定位系統(tǒng)歐洲 GNSS;
.ACST. – 選播服務(wù)器
.AUTH. – 認(rèn)證錯(cuò)誤
.AUTO. – Autokey (NTP 的一種認(rèn)證機(jī)制)順序錯(cuò)誤
.BCST. – 廣播服務(wù)器
.CRYPT. – Autokey 協(xié)議錯(cuò)誤
.DENY. – 服務(wù)器拒絕訪問;
.INIT. – 關(guān)聯(lián)初始化
.MCST. – 多播服務(wù)器
.RATE. – (輪詢) 速率超出限定
.TIME. – 關(guān)聯(lián)超時(shí)
.STEP. – 間隔時(shí)長(zhǎng)改變,偏移量比危險(xiǎn)閾值小(1000ms) 比間隔時(shí)間 (125ms)大
操作要點(diǎn)
一個(gè)時(shí)間服務(wù)器只會(huì)報(bào)告時(shí)間信息而不會(huì)從客戶端更新時(shí)間(單向更新),而一個(gè)節(jié)點(diǎn)可以更新其他同級(jí)節(jié)點(diǎn)的時(shí)間,結(jié)合出一個(gè)彼此同意的時(shí)間(雙向更新)。
初次啟動(dòng)時(shí):
除非使用 iburst 選項(xiàng),客戶端通常需要花幾分鐘來和服務(wù)器同步。如果客戶端在啟動(dòng)時(shí)時(shí)間與 NTP 服務(wù)器的時(shí)間差大于 1000 秒,守護(hù)進(jìn)程會(huì)退出并在系統(tǒng)日志中記錄,讓操作者手動(dòng)設(shè)置時(shí)間差小于 1000 秒后再重新啟動(dòng)。如果時(shí)間差小于 1000 秒,但是大于 128 秒,會(huì)自動(dòng)矯正間隔,并自動(dòng)重啟守護(hù)進(jìn)程。
當(dāng)?shù)谝淮螁?dòng)時(shí),時(shí)間頻率文件(通常是 ntp.drift 文件,記錄時(shí)間偏移)不存在,守護(hù)進(jìn)程進(jìn)入一個(gè)特殊模式來矯正頻率。當(dāng)時(shí)鐘不符合規(guī)范時(shí)這會(huì)需要 900 秒。當(dāng)校正完成后,守護(hù)進(jìn)程創(chuàng)建時(shí)間頻率文件進(jìn)入普通模式,并分步校正剩余的偏差。
NTP 0 層(Stratum 0 )的設(shè)備如原子鐘(銫,銣),GPS 時(shí)鐘或者其他標(biāo)準(zhǔn)時(shí)間的無線電時(shí)鐘為 1 層(Stratum 1)的時(shí)間服務(wù)器提供時(shí)間信號(hào)。NTP 只報(bào)告UTC 時(shí)間(統(tǒng)一協(xié)調(diào)時(shí),Coordinated Universal Time)??蛻舳顺绦蚴褂脮r(shí)區(qū)從 UTC 導(dǎo)出本地時(shí)間。
NTP 協(xié)議是高精度的,使用的精度小于納秒(2的 -32 次方)。主機(jī)的時(shí)間精度和其他參數(shù)(受硬件和操作系統(tǒng)限制)使用命令 “ntpq -c rl” 查看(參見 rfc1305 通用變量和 rfc5905)。
“ntpq -c rl”輸出參數(shù)
- precision 為四舍五入值,且為 2 的冪數(shù)。因此精度為 2precision (秒)
rootdelay – 與同步網(wǎng)絡(luò)中主同步服務(wù)器的總往返延時(shí)。注意這個(gè)值可以是正數(shù)或者負(fù)數(shù),取決于時(shí)鐘的精度。
rootdisp – 相對(duì)于同步網(wǎng)絡(luò)中主同步服務(wù)器的偏差(秒)
tc – NTP 算法 PLL (phase locked loop,鎖相環(huán)路) 或 FLL (frequency locked loop,鎖頻回路) 時(shí)間常量
mintc – NTP 算法 PLL/FLL 最小時(shí)間常亮或“最快響應(yīng)
offset – 由結(jié)合算法得出的系統(tǒng)時(shí)鐘偏移量(毫秒)
frequency – 系統(tǒng)時(shí)鐘頻率
sys_jitter – 由結(jié)合算法得出的系統(tǒng)時(shí)鐘平均偏差(毫秒)
clk_jitter – 硬件時(shí)鐘平均偏差(毫秒)
clk_wander – 硬件時(shí)鐘偏移(PPM – 百分之一)
Jitter (也叫 timing jitter) 表示短期變化大于10HZ 的頻率, wander 表示長(zhǎng)期變化大于10HZ 的頻率 (Stability 表示系統(tǒng)的頻率隨時(shí)間的變化,和 aging, drift, trends 等是同義詞)
操作要點(diǎn)(續(xù))
NTP 軟件維護(hù)一系列連續(xù)更新的頻率變化的校正值。對(duì)于設(shè)置正確的穩(wěn)定系統(tǒng),在非擁塞的網(wǎng)絡(luò)中,現(xiàn)代硬件的 NTP 時(shí)鐘同步通常與 UTC 標(biāo)準(zhǔn)時(shí)間相差在毫秒內(nèi)。(在千兆 LAN 網(wǎng)絡(luò)中可以達(dá)到何種精度?)
對(duì)于 UTC 時(shí)間,閏秒 leap second 可以每?jī)赡瓴迦胍淮斡糜谕降厍蜃詡鞯淖兓W⒁獗镜貢r(shí)間為夏令時(shí)時(shí)時(shí)間會(huì)有一小時(shí)的變化。在重同步之前客戶端設(shè)備會(huì)使用獨(dú)立的 UTC 時(shí)間,除非客戶端使用了偏移校準(zhǔn)。
閏秒發(fā)生時(shí)會(huì)怎樣
閏秒發(fā)生時(shí),會(huì)對(duì)當(dāng)天時(shí)間增加或減少一秒。閏秒的調(diào)整在 UTC 時(shí)間當(dāng)天的最后一秒。如果增加一秒,UTC 時(shí)間會(huì)出現(xiàn) 23:59:60。即 23:59:59 到 0:00:00 之間實(shí)際上需要 2 秒鐘。如果減少一秒,時(shí)間會(huì)從 23:59:58 跳至 0:00:00 。另見 The Kernel Discipline.