關(guān)于NTP,你需要知道的一切

NTP 是什么

NTP堪唐,是 Net Time Protocol的縮寫巡语,意即網(wǎng)絡(luò)時(shí)間協(xié)議。
NTP是在分組交換淮菠、延遲時(shí)間可變的數(shù)據(jù)網(wǎng)絡(luò)上進(jìn)行時(shí)鐘同步的網(wǎng)絡(luò)協(xié)議男公。
NTP由特拉華大學(xué)(University of Delaware)的David L. Mills設(shè)計(jì)。
說起來它的歷史相當(dāng)長(zhǎng)了合陵,自1985年以來枢赔,NTP是目前仍在使用的最古老的互聯(lián)網(wǎng)協(xié)議之一澄阳。

NTP 只考慮 UTC 時(shí)間,不考慮時(shí)區(qū)踏拜,不考慮夏令時(shí)等碎赢。

NTP使用UDP,端口123速梗。

NTP 如何工作的

分層架構(gòu)

NTP使用一種樹狀的肮塞,半分層的時(shí)間源系統(tǒng)。每一層叫做 stratum(見下圖)姻锁。每個(gè) stratum 都有一個(gè)編號(hào)峦嗤,從0開始,最大到15屋摔,16被用來標(biāo)記設(shè)備未同步烁设。

一般情況下,第 n+1 層 stratum 從第 n 層同步時(shí)間钓试。

  • stratum 0:

    一般用硬件實(shí)現(xiàn)装黑,例如原子鐘(如銫、銣)弓熏、GPS時(shí)鐘或其他無線電時(shí)鐘恋谭。它們也被稱為參考(基準(zhǔn))時(shí)鐘(reference clocks)

    下圖:美國(guó)海軍天文臺(tái)的原子鐘挽鞠。圖來自 WikiPedia

    image.png

  • stratum 1:
    這一層是計(jì)算機(jī)疚颊,它們的系統(tǒng)時(shí)間和連接其上的 stratum 0 設(shè)備保持同步,誤差在幾個(gè)微秒信认。
    本層計(jì)算機(jī)可能與其他同層的計(jì)算機(jī)對(duì)等相連材义,以進(jìn)行完整性檢查和備份。它們也被稱為主要(primary)時(shí)間服務(wù)器嫁赏。

    這一層對(duì)互聯(lián)網(wǎng)是不可見的其掂,雖然它們是部署在互聯(lián)網(wǎng)上的。

    它們率屬于美國(guó)海軍天文臺(tái)潦蝇。 參看 https://tycho.usno.navy.mil/

  • stratum 2:
    它們從 stratum1 機(jī)器同步時(shí)間款熬。stratum2的計(jì)算機(jī)將查詢層1服務(wù)器。層2計(jì)算機(jī)也可能與其他層2計(jì)算機(jī)對(duì)等相連攘乒,為對(duì)等組中的所有設(shè)備提供更穩(wěn)定的時(shí)間贤牛。

  • stratum 3:
    這些計(jì)算機(jī)與層2的服務(wù)器同步。它們使用與層2相同的算法進(jìn)行對(duì)等和數(shù)據(jù)采樣则酝,并可以自己作為服務(wù)器擔(dān)任階層4計(jì)算機(jī)殉簸,以此類推。

圖來自 WikiPedia

image.png

時(shí)間延遲計(jì)算

時(shí)間計(jì)算方式參考下圖,

時(shí)間偏移“θ”定義為:


往返延遲“δ”為:

其中:

t0 是請(qǐng)求數(shù)據(jù)包傳輸?shù)目蛻舳藭r(shí)間戳喂链,
t1 是請(qǐng)求數(shù)據(jù)包回復(fù)的服務(wù)器時(shí)間戳,
t2 是響應(yīng)數(shù)據(jù)包傳輸?shù)姆?wù)器時(shí)間戳妥泉,
t3 是響應(yīng)數(shù)據(jù)包回復(fù)的客戶端時(shí)間戳椭微。

圖來自 WikiPedia

別著急,下面我們看看這個(gè)值是如何計(jì)算出來的盲链,小學(xué)數(shù)學(xué)知識(shí)就夠了蝇率。

t1,t2是屬于同一個(gè)時(shí)鐘的,因此它們的差值是有意義的刽沾,同理本慕,t3,t0的差值也是有意義的。
t3 - t0 是數(shù)據(jù)包傳輸?shù)娜繒r(shí)間侧漓,服務(wù)器處理的時(shí)間是 t2 - t1, 那么往返網(wǎng)絡(luò)傳輸時(shí)間就是

δ=(t3 - t0) - (t2 - t1),這個(gè)應(yīng)該沒問題吧锅尘?(有問題請(qǐng)面壁思考1分鐘 ??????)

現(xiàn)在假設(shè)網(wǎng)絡(luò)延遲是對(duì)稱的,那么單程網(wǎng)絡(luò)延時(shí)就是 δ/2,也就是 [(t3 - t0) - (t2 - t1)]/2布蔗。

</br>
我假設(shè)你都理解了藤违,那么現(xiàn)在計(jì)算兩個(gè)時(shí)鐘的差值。(有問題請(qǐng)面壁思考10分鐘 ??????)纵揍。

現(xiàn)在假設(shè)這個(gè)差值為 θ

考慮從 t2 => t3 的過程顿乒,從服務(wù)器t2時(shí)刻開始,經(jīng)過網(wǎng)絡(luò)延時(shí)(σ/2,單程延時(shí))泽谨,到達(dá)t3,但是t3是客戶端的時(shí)間璧榄,t3 + θ 對(duì)應(yīng)的就是服務(wù)器的時(shí)間,那么它們應(yīng)該是相等的吧雹。

t2 + σ/2 = t3 + θ骨杂,計(jì)算θ,得到

這個(gè)計(jì)算就完成了。

例如上面圖中的 θ=(135 - 231 + 137 - 298)/2=-(257/2),客戶端比服務(wù)器快雄卷,時(shí)間是負(fù)值腊脱。

客戶端會(huì)同時(shí)請(qǐng)求好幾個(gè)服務(wù)器,進(jìn)行統(tǒng)計(jì)分析龙亲,過濾不合理的值陕凹,并從最好的三個(gè)剩余候選中導(dǎo)出估算的時(shí)間偏移,然后調(diào)整時(shí)鐘頻率以逐漸減小偏移鳄炉。

Linux上的NTP

NTP在 CentOS上用的是 ntpd服務(wù)杜耙,

  • 以下情況表示 NTP 服務(wù)未正常同步:

    $ ntpstat
    unsynchronised
    
  • 以下情況表示 NTP 服務(wù)已經(jīng)正常同步:

    $ ntpstat
    synchronised to NTP server (85.199.214.101) at stratum 2
       time correct to within 91 ms
       polling server every 1024 s
    
  • 或者查看服務(wù)狀態(tài)

    $ sudo systemctl status ntpd.service
    ● ntpd.service - Network Time Service
       Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
       Active: active (running) since 一 2017-12-18 13:13:19 CST; 3s ago
    
  • 如何讓NTP 盡快同步

    $ sudo systemctl stop ntpd.service
    $ sudo ntpdate pool.ntp.org
    $ sudo systemctl start ntpd.service
    

ntpdate使用的時(shí)候一定要先停止 ntpd.service 服務(wù),它們不兼容拂盯,可以多次執(zhí)行ntpdate佑女,以盡快同步

  • 每個(gè)NTP Client同時(shí)也可以作為 NTP Server,這樣的話,就可以在一個(gè)局域網(wǎng)內(nèi)团驱,用2到3臺(tái)機(jī)器同步外網(wǎng)摸吠,其他的機(jī)器就從這些機(jī)器上同步。

  • 其他常用命令

    ntpq -p,其中加星號(hào)的是現(xiàn)在正在使用的嚎花。

    st 指的就是 stratum

    ntpq -p
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
     202.120.2.101.d .XFAC.          16 u    -   64    0    0.000    0.000   0.000
    +biisoni.miuku.n 207.224.49.219   2 u  454 1024  357  173.259   -1.247   0.103
     61-216-153-104. 118.163.81.63    3 u  30d 1024    0   78.465   34.438   0.000
    *85.199.214.100  .GPS.            1 u    7   64  377  166.829    0.220   0.123
     correo.poashost 128.227.205.3    2 u  58d 1024    0  350.541   34.771   0.000
    

FAQ

  1. 假如我的時(shí)間比服務(wù)器快寸痢,NTP 會(huì)導(dǎo)致我的時(shí)鐘往后調(diào)整嗎?

    不會(huì)的紊选,NTP使用一種相對(duì)平滑的方式來調(diào)整啼止,它會(huì)讓時(shí)鐘的頻率變慢,并最終和服務(wù)器保持同步兵罢。

  2. NTP什么時(shí)候會(huì)失效献烦?

    如果你的時(shí)間和服務(wù)器相差太多,超過17分鐘卖词,那么NTP認(rèn)為你的時(shí)鐘有問題巩那,可能會(huì)拒絕同步。因此開啟NTP之前此蜈,請(qǐng)手工調(diào)整下時(shí)鐘(或者用 ntpdate手工同步一次拢操,記得要關(guān)閉ntpd服務(wù)),保證相差不會(huì)太多舶替。

參考

請(qǐng)聯(lián)系我

微信: sunfriend
如果你覺得文章有用令境,請(qǐng)打賞,多少不限顾瞪。家里還有兒子需要我養(yǎng)活……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末舔庶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子陈醒,更是在濱河造成了極大的恐慌惕橙,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钉跷,死亡現(xiàn)場(chǎng)離奇詭異弥鹦,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)爷辙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門彬坏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人膝晾,你說我怎么就攤上這事栓始。” “怎么了血当?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵幻赚,是天一觀的道長(zhǎng)禀忆。 經(jīng)常有香客問我,道長(zhǎng)落恼,這世上最難降的妖魔是什么箩退? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮佳谦,結(jié)果婚禮上魂毁,老公的妹妹穿的比我還像新娘串结。我一直安慰自己涉波,他們只是感情好饺律,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布胧瓜。 她就那樣靜靜地躺著矢棚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪府喳。 梳的紋絲不亂的頭發(fā)上蒲肋,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天,我揣著相機(jī)與錄音钝满,去河邊找鬼兜粘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛弯蚜,可吹牛的內(nèi)容都是我干的孔轴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼碎捺,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼路鹰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起收厨,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤晋柱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后诵叁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雁竞,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年拧额,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碑诉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡侥锦,死狀恐怖联贩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捎拯,我是刑警寧澤泪幌,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布盲厌,位于F島的核電站,受9級(jí)特大地震影響祸泪,放射性物質(zhì)發(fā)生泄漏吗浩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一没隘、第九天 我趴在偏房一處隱蔽的房頂上張望懂扼。 院中可真熱鬧,春花似錦右蒲、人聲如沸阀湿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽陷嘴。三九已至,卻和暖如春间坐,著一層夾襖步出監(jiān)牢的瞬間灾挨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工竹宋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留劳澄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓蜈七,卻偏偏與公主長(zhǎng)得像秒拔,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子飒硅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容