ntp服務(wu)器(qi),對大多(duo)數人來說是(shi)一個(ge)陌生詞匯,但是(shi)要理(li)解ntp服務(wu)器(qi)必須先了解什(shen)么是(shi)ntp和什(shen)么是(shi)服務(wu)器(qi)?
NTP全名“Network TimeProtocol”,即(ji)網(wang)絡(luo)時間協議(yi),是由RFC 1305定義的時間同步(bu)協議(yi),用來在分(fen)布式(shi)時間服務(wu)器(qi)和客戶端(duan)之間進行(xing)時間同步(bu)。
NTP基(ji)于(yu)(yu)UDP報文(wen)進(jin)行(xing)(xing)傳輸,使(shi)用的(de)UDP端口(kou)號為123。使(shi)用NTP的(de)目的(de)是對網絡內所有具有時(shi)(shi)(shi)鐘(zhong)(zhong)(zhong)的(de)設(she)(she)備(bei)進(jin)行(xing)(xing)時(shi)(shi)(shi)鐘(zhong)(zhong)(zhong)同(tong)(tong)(tong)步(bu),使(shi)網絡內所有設(she)(she)備(bei)的(de)時(shi)(shi)(shi)鐘(zhong)(zhong)(zhong)保持一致,從而使(shi)設(she)(she)備(bei)能夠提供基(ji)于(yu)(yu)統(tong)一時(shi)(shi)(shi)間的(de)多種應用。對于(yu)(yu)運(yun)行(xing)(xing)NTP的(de)本地系統(tong),既可(ke)(ke)以(yi)(yi)接收來自其他時(shi)(shi)(shi)鐘(zhong)(zhong)(zhong)源的(de)同(tong)(tong)(tong)步(bu),又可(ke)(ke)以(yi)(yi)作(zuo)為時(shi)(shi)(shi)鐘(zhong)(zhong)(zhong)源同(tong)(tong)(tong)步(bu)其他的(de)時(shi)(shi)(shi)鐘(zhong)(zhong)(zhong),并且可(ke)(ke)以(yi)(yi)和其他設(she)(she)備(bei)互相同(tong)(tong)(tong)步(bu)。
服(fu)務(wu)(wu)(wu)器,英(ying)文(wen)名“server”也稱伺服(fu)器,是(shi)提供計算服(fu)務(wu)(wu)(wu)的設備(bei)。由于(yu)服(fu)務(wu)(wu)(wu)器需要(yao)響應服(fu)務(wu)(wu)(wu)請(qing)求(qiu),并(bing)進行處(chu)理,因此一(yi)般來說服(fu)務(wu)(wu)(wu)器應具備(bei)承擔(dan)服(fu)務(wu)(wu)(wu)并(bing)且保(bao)障服(fu)務(wu)(wu)(wu)的能力。
服務器(qi)的(de)構(gou)成包(bao)括(kuo)處理器(qi)、硬盤、內存、系(xi)統總線等(deng)(deng),和通(tong)用的(de)計算(suan)機架(jia)構(gou)類似,但是(shi)由于需要(yao)提供高可(ke)(ke)靠(kao)的(de)服務,因此在處理能(neng)力、穩定性、可(ke)(ke)靠(kao)性、安全性、可(ke)(ke)擴展性、可(ke)(ke)管理性等(deng)(deng)方(fang)面要(yao)求較高。
在網絡環境下,根據服務器(qi)提供的服務類型不同,分為文件服務器(qi),數據庫(ku)服務器(qi),應用(yong)程序服務器(qi),WEB服務器(qi)等(deng)。
前面(mian)我們分別了(le)解到了(le)NTP和(he)服務(wu)(wu)器,那到底是什么NTP服務(wu)(wu)器呢?根據表面(mian)意思理解NTP服務(wu)(wu)器,即基于NTP協(xie)議(yi)的服務(wu)(wu)器,用來在分布式時間(jian)服務(wu)(wu)器和(he)客戶端之間(jian)進行時間(jian)同步。
NTP服(fu)(fu)務器(qi)在(zai)應用(yong)于時間(jian)同步中分為(wei)客戶端NTP服(fu)(fu)務器(qi)和服(fu)(fu)務端NTP服(fu)(fu)務器(qi)兩種。客戶端主(zhu)要應用(yong)于現有NTP網(wang)絡(luo)(luo)環境中,獲(huo)取前端NTP服(fu)(fu)務器(qi),主(zhu)要是利(li)用(yong)已經存(cun)在(zai)的網(wang)絡(luo)(luo)環境,搭(da)建時間(jian)同步系(xi)統(tong),實現的是一個從(cong)時鐘的功(gong)(gong)能(neng)。服(fu)(fu)務端NTP服(fu)(fu)務器(qi)主(zhu)要是指用(yong)于后端網(wang)絡(luo)(luo)環境中設備的時間(jian)同步,為(wei)網(wang)絡(luo)(luo)中的服(fu)(fu)務器(qi),計(ji)算機等網(wang)絡(luo)(luo)設備提供(gong)一個時間(jian)統(tong)一的功(gong)(gong)能(neng),實現主(zhu)時鐘的同步功(gong)(gong)能(neng)。
前面,我們很自然的(de)(de)了(le)解(jie)到(dao)了(le)什么是ntp,也有了(le)一個(ge)大(da)概(gai)的(de)(de)認識,那(nei)么ntp服務器是做(zuo)什么的(de)(de),它到(dao)底能做(zuo)什么,這也是我們對于ntp服務器這個(ge)名稱屬性放在這里,我們最需要傳達的(de)(de)東西(xi)。
NTP服務器主要用來同(tong)步(bu)(bu)網(wang)絡中(zhong)各(ge)個(ge)計(ji)算(suan)(suan)機(ji)的(de)(de)時間(jian)的(de)(de)協(xie)議。它(ta)的(de)(de)用途是把計(ji)算(suan)(suan)機(ji)的(de)(de)時鐘(zhong)(zhong)同(tong)步(bu)(bu)到(dao)世界(jie)協(xie)調(diao)時UTC,其精度在局域(yu)網(wang)內可(ke)(ke)達0.1ms,在互(hu)聯(lian)網(wang)上絕(jue)大多(duo)數的(de)(de)地方(fang)(fang)其精度可(ke)(ke)以(yi)達到(dao)1-50ms。它(ta)可(ke)(ke)以(yi)使(shi)計(ji)算(suan)(suan)機(ji)對其服務器或時鐘(zhong)(zhong)源(如(ru)石英鐘(zhong)(zhong),GPS等等)進行時間(jian)同(tong)步(bu)(bu),它(ta)可(ke)(ke)以(yi)提供高精準(zhun)度的(de)(de)時間(jian)校正,而且可(ke)(ke)以(yi)使(shi)用加密確認的(de)(de)方(fang)(fang)式來防止病(bing)毒的(de)(de)協(xie)議攻擊。
很多人可能(neng)(neng)會說,我的(de)(de)計算機每天自己走時(shi)(shi)(shi),為何還需(xu)要用(yong)(yong)一(yi)(yi)個ntp服務器(qi)再同步(bu)時(shi)(shi)(shi)間呢?這(zhe)主要是(shi)因為在(zai)(zai)計算機中(zhong)芯片(pian)(pian)(pian)本身通常并(bing)不具備時(shi)(shi)(shi)鐘信(xin)(xin)號源,因此須(xu)由專(zhuan)門的(de)(de)時(shi)(shi)(shi)鐘電(dian)路(lu)提供(gong)時(shi)(shi)(shi)鐘信(xin)(xin)號,石英晶(jing)體(ti)振(zhen)蕩器(qi)(Quartz Crystal OSC)就是(shi)一(yi)(yi)種最(zui)常用(yong)(yong)的(de)(de)時(shi)(shi)(shi)鐘信(xin)(xin)號振(zhen)蕩源。石英晶(jing)片(pian)(pian)(pian)之所以能(neng)(neng)當為振(zhen)蕩器(qi)使用(yong)(yong),是(shi)基(ji)于(yu)它的(de)(de)壓(ya)電(dian)效應:在(zai)(zai)晶(jing)片(pian)(pian)(pian)的(de)(de)兩(liang)個極(ji)上加一(yi)(yi)電(dian)場,會使晶(jing)體(ti)產生(sheng)機械變(bian)形(xing);在(zai)(zai)石英晶(jing)片(pian)(pian)(pian)上加上交變(bian)電(dian)壓(ya),晶(jing)體(ti)就會產生(sheng)機械振(zhen)動(dong),同時(shi)(shi)(shi)機械變(bian)形(xing)振(zhen)動(dong)又會產生(sheng)交變(bian)電(dian)場。雖然這(zhe)種交變(bian)電(dian)場的(de)(de)電(dian)壓(ya)極(ji)其(qi)微(wei)弱,但其(qi)振(zhen)動(dong)頻率是(shi)十分穩(wen)定(ding)的(de)(de)。
從(cong)PC誕生至今,主板上一(yi)直都(dou)使用一(yi)顆(ke)14.318MHz的(de)(de)石英晶(jing)體(ti)振蕩器作為基準頻率(lv)源(yuan)。主板上除了這顆(ke)14.318MHz的(de)(de)晶(jing)振,還能找到一(yi)顆(ke)頻率(lv)為32.768MHz的(de)(de)晶(jing)振,它(ta)被(bei)用于(yu)實時時鐘(RTC)電(dian)(dian)路中,顯(xian)示(shi)(shi)精確(que)(que)的(de)(de)時間和日(ri)期(qi)。初始化后(hou)以每秒約18.2次發出脈沖(chong),這些脈沖(chong)經過操(cao)作系統計(ji)算形成BIOS日(ri)時鐘計(ji)數。通過由BIOS電(dian)(dian)池供(gong)電(dian)(dian),關機后(hou)它(ta)仍然(ran)正常運行。這也就(jiu)是為啥我們關了電(dian)(dian)源(yuan),第(di)二天開機依然(ran)會(hui)顯(xian)示(shi)(shi)正確(que)(que)時間的(de)(de)原因(yin)。
每個計(ji)(ji)算(suan)(suan)機各自有(you)了時(shi)(shi)鐘,但是(shi)(shi)一(yi)旦它們聯(lian)網后,又(you)出(chu)現(xian)一(yi)個問題:各自運行的(de)計(ji)(ji)算(suan)(suan)機時(shi)(shi)鐘,彼(bi)此之間(jian)日積月累(lei)的(de)累(lei)計(ji)(ji)誤差如何解決。這(zhe)就出(chu)現(xian)了網絡時(shi)(shi)間(jian)協(xie)議NTP,它是(shi)(shi)用(yong)于互聯(lian)網中(zhong)時(shi)(shi)間(jian)同步(bu)的(de)標準之一(yi),它的(de)用(yong)途是(shi)(shi)把計(ji)(ji)算(suan)(suan)機的(de)時(shi)(shi)鐘同步(bu)到世界協(xie)調時(shi)(shi)UTC,并滿足于用(yong)戶環境中(zhong)的(de)計(ji)(ji)算(suan)(suan)機(服務器同理)設備的(de)時(shi)(shi)間(jian)同步(bu)。
對大多數人來說(shuo)可能會很疑問(wen),我(wo)的計(ji)算機時間(jian)已經夠我(wo)用了(le)啊,我(wo)為何(he)需要(yao)單獨的ntp服務(wu)器(qi)(qi)。那(nei)么問(wen)題(ti)來了(le),一個系(xi)統里整體運行的所有計(ji)算機服務(wu)器(qi)(qi),如(ru)果都(dou)獨立運行那(nei)整個系(xi)統工作是(shi)否都(dou)亂(luan)套了(le)?
我們舉幾個(ge)簡(jian)單的例子:如果公共(gong)大樓遇到突發事(shi)情每個(ge)監(jian)(jian)控裝置(zhi)時間(jian)不一,后(hou)期事(shi)故調查取證監(jian)(jian)控時間(jian)參差(cha)不齊無(wu)(wu)法還(huan)原本質,責(ze)任誰來(lai)擔當?醫院系統各(ge)個(ge)科室職能(neng)兼受(shou),若時間(jian)相互差(cha)開,病人數(shu)據記錄與實際時間(jian)前后(hou)出(chu)入(ru),若出(chu)現分歧責(ze)任甩給設備原因,設備是否能(neng)夠出(chu)面(mian)來(lai)協調?電力電廠系統中有很(hen)多需要互相協調合(he)作(zuo)的設備,若出(chu)現各(ge)個(ge)系統設備之(zhi)間(jian)時間(jian)紊(wen)亂,就會導致運行(xing)機制(zhi)無(wu)(wu)法協調合(he)作(zuo),那整個(ge)電廠的運行(xing)失(shi)調,所(suo)造(zao)成(cheng)的損失(shi)無(wu)(wu)法估量。
所(suo)以,ntp服務(wu)器(qi)(qi)在(zai)各行(xing)各業(ye)系(xi)(xi)統(tong)發揮協調作用(yong)的(de)(de)同時(shi),已(yi)經成為(wei)了不可或缺的(de)(de)必(bi)備系(xi)(xi)統(tong),是各個系(xi)(xi)統(tong)穩(wen)定運行(xing)基(ji)于安全因素中必(bi)須(xu)存在(zai)的(de)(de)重(zhong)要設(she)備。ntp服務(wu)器(qi)(qi)服務(wu)器(qi)(qi)應用(yong)于不同行(xing)業(ye)系(xi)(xi)統(tong)中,為(wei)網絡(luo)內設(she)備提(ti)供標準的(de)(de)時(shi)間基(ji)準,使得各個獨(du)立又相互關聯的(de)(de)設(she)備有了可參考的(de)(de)維度標準。
NTP提(ti)供準(zhun)(zhun)確時(shi)間(jian)(jian),首先要有(you)準(zhun)(zhun)確的(de)時(shi)間(jian)(jian)來(lai)源(yuan)(yuan),這一時(shi)間(jian)(jian)應該(gai)是(shi)國際標(biao)準(zhun)(zhun)時(shi)間(jian)(jian)UTC。 NTP獲得UTC的(de)時(shi)間(jian)(jian)來(lai)源(yuan)(yuan)可以(yi)是(shi)原子鐘、天文臺、衛星(xing),也可以(yi)從Internet上獲取。這樣就有(you)了準(zhun)(zhun)確而可靠的(de)時(shi)間(jian)(jian)源(yuan)(yuan)。時(shi)間(jian)(jian)按NTP服(fu)務(wu)(wu)器(qi)的(de)等級傳播。按照(zhao)離外(wai)部UTC 源(yuan)(yuan)的(de)遠近將(jiang)所(suo)(suo)有(you)服(fu)務(wu)(wu)器(qi)歸入(ru)不同的(de)Stratum(層)中(zhong)。Stratum-1在頂層,有(you)外(wai)部UTC接入(ru),而Stratum-2則從Stratum-1獲取時(shi)間(jian)(jian),Stratum-3從Stratum-2獲取時(shi)間(jian)(jian),以(yi)此(ci)類推,但(dan)Stratum層的(de)總數限制在15以(yi)內(nei)。所(suo)(suo)有(you)這些(xie)服(fu)務(wu)(wu)器(qi)在邏輯上形成(cheng)階(jie)梯式(shi)的(de)架構相(xiang)互連接,而Stratum-1的(de)時(shi)間(jian)(jian)服(fu)務(wu)(wu)器(qi)是(shi)整個系統的(de)基礎。
計算機主機一般同多個時間服務器連接, 利用統計學的(de)(de)算法過濾來自不同服務(wu)(wu)器的(de)(de)時(shi)間(jian),以選擇最佳的(de)(de)路徑和(he)來源來校正主機時(shi)間(jian)。即(ji)使主機在長時(shi)間(jian)無(wu)法與某一(yi)時(shi)間(jian)服務(wu)(wu)器相聯系的(de)(de)情況下,NTP服務(wu)(wu)依然(ran)有(you)效運轉(zhuan)。
為防止對時間服務(wu)器的(de)惡(e)意破壞,NTP使用了(le)識別(Authentication)機制,檢查(cha)來對時的(de)信(xin)息是(shi)否是(shi)真正來自所宣稱的(de)服務(wu)器并(bing)檢查(cha)資(zi)料的(de)返回(hui)路徑(jing),以提供對抗干擾的(de)保(bao)護機制。