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