ntp服務(wù)器,對大多數(shù)人來說是一個陌生詞匯,但是要理解ntp服務(wù)器必須先了解什么是ntp和什么是服務(wù)器?
NTP全名“Network TimeProtocol”,即網(wǎng)絡(luò)時間協(xié)議,是由RFC 1305定義的時間同步協(xié)議,用來在分布式時間服務(wù)器和客戶端之間進(jìn)行時間同步。
NTP基于UDP報文進(jìn)行傳輸,使用的UDP端口號為123。使用NTP的目的是對網(wǎng)絡(luò)內(nèi)所有具有時鐘的設(shè)備進(jìn)行時鐘同步,使網(wǎng)絡(luò)內(nèi)所有設(shè)備的時鐘保持一致,從而使設(shè)備能夠提供基于統(tǒng)一時間的多種應(yīng)用。對于運行NTP的本地系統(tǒng),既可以接收來自其他時鐘源的同步,又可以作為時鐘源同步其他的時鐘,并且可以和其他設(shè)備互相同步。

服務(wù)器,英文名“server”也稱伺服器,是提供計算服務(wù)的設(shè)備。由于服務(wù)器需要響應(yīng)服務(wù)請求,并進(jìn)行處理,因此一般來說服務(wù)器應(yīng)具備承擔(dān)服務(wù)并且保障服務(wù)的能力。
服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,和通用的計算機(jī)架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴(kuò)展性、可管理性等方面要求較高。
在網(wǎng)絡(luò)環(huán)境下,根據(jù)服務(wù)器提供的服務(wù)類型不同,分為文件服務(wù)器,數(shù)據(jù)庫服務(wù)器,應(yīng)用程序服務(wù)器,WEB服務(wù)器等。
前面我們分別了解到了NTP和服務(wù)器,那到底是什么NTP服務(wù)器呢?根據(jù)表面意思理解NTP服務(wù)器,即基于NTP協(xié)議的服務(wù)器,用來在分布式時間服務(wù)器和客戶端之間進(jìn)行時間同步。
NTP服務(wù)器在應(yīng)用于時間同步中分為客戶端NTP服務(wù)器和服務(wù)端NTP服務(wù)器兩種??蛻舳酥饕獞?yīng)用于現(xiàn)有NTP網(wǎng)絡(luò)環(huán)境中,獲取前端NTP服務(wù)器,主要是利用已經(jīng)存在的網(wǎng)絡(luò)環(huán)境,搭建時間同步系統(tǒng),實現(xiàn)的是一個從時鐘的功能。服務(wù)端NTP服務(wù)器主要是指用于后端網(wǎng)絡(luò)環(huán)境中設(shè)備的時間同步,為網(wǎng)絡(luò)中的服務(wù)器,計算機(jī)等網(wǎng)絡(luò)設(shè)備提供一個時間統(tǒng)一的功能,實現(xiàn)主時鐘的同步功能。
前面,我們很自然的了解到了什么是ntp,也有了一個大概的認(rèn)識,那么ntp服務(wù)器是做什么的,它到底能做什么,這也是我們對于ntp服務(wù)器這個名稱屬性放在這里,我們最需要傳達(dá)的東西。
NTP服務(wù)器主要用來同步網(wǎng)絡(luò)中各個計算機(jī)的時間的協(xié)議。它的用途是把計算機(jī)的時鐘同步到世界協(xié)調(diào)時UTC,其精度在局域網(wǎng)內(nèi)可達(dá)0.1ms,在互聯(lián)網(wǎng)上絕大多數(shù)的地方其精度可以達(dá)到1-50ms。它可以使計算機(jī)對其服務(wù)器或時鐘源(如石英鐘,GPS等等)進(jìn)行時間同步,它可以提供高精準(zhǔn)度的時間校正,而且可以使用加密確認(rèn)的方式來防止病毒的協(xié)議攻擊。
很多人可能會說,我的計算機(jī)每天自己走時,為何還需要用一個ntp服務(wù)器再同步時間呢?這主要是因為在計算機(jī)中芯片本身通常并不具備時鐘信號源,因此須由專門的時鐘電路提供時鐘信號,石英晶體振蕩器(Quartz Crystal OSC)就是一種最常用的時鐘信號振蕩源。石英晶片之所以能當(dāng)為振蕩器使用,是基于它的壓電效應(yīng):在晶片的兩個極上加一電場,會使晶體產(chǎn)生機(jī)械變形;在石英晶片上加上交變電壓,晶體就會產(chǎn)生機(jī)械振動,同時機(jī)械變形振動又會產(chǎn)生交變電場。雖然這種交變電場的電壓極其微弱,但其振動頻率是十分穩(wěn)定的。
從PC誕生至今,主板上一直都使用一顆14.318MHz的石英晶體振蕩器作為基準(zhǔn)頻率源。主板上除了這顆14.318MHz的晶振,還能找到一顆頻率為32.768MHz的晶振,它被用于實時時鐘(RTC)電路中,顯示精確的時間和日期。初始化后以每秒約18.2次發(fā)出脈沖,這些脈沖經(jīng)過操作系統(tǒng)計算形成BIOS日時鐘計數(shù)。通過由BIOS電池供電,關(guān)機(jī)后它仍然正常運行。這也就是為啥我們關(guān)了電源,第二天開機(jī)依然會顯示正確時間的原因。
每個計算機(jī)各自有了時鐘,但是一旦它們聯(lián)網(wǎng)后,又出現(xiàn)一個問題:各自運行的計算機(jī)時鐘,彼此之間日積月累的累計誤差如何解決。這就出現(xiàn)了網(wǎng)絡(luò)時間協(xié)議NTP,它是用于互聯(lián)網(wǎng)中時間同步的標(biāo)準(zhǔn)之一,它的用途是把計算機(jī)的時鐘同步到世界協(xié)調(diào)時UTC,并滿足于用戶環(huán)境中的計算機(jī)(服務(wù)器同理)設(shè)備的時間同步。
對大多數(shù)人來說可能會很疑問,我的計算機(jī)時間已經(jīng)夠我用了啊,我為何需要單獨的ntp服務(wù)器。那么問題來了,一個系統(tǒng)里整體運行的所有計算機(jī)服務(wù)器,如果都獨立運行那整個系統(tǒng)工作是否都亂套了?
我們舉幾個簡單的例子:如果公共大樓遇到突發(fā)事情每個監(jiān)控裝置時間不一,后期事故調(diào)查取證監(jiān)控時間參差不齊無法還原本質(zhì),責(zé)任誰來擔(dān)當(dāng)?醫(yī)院系統(tǒng)各個科室職能兼受,若時間相互差開,病人數(shù)據(jù)記錄與實際時間前后出入,若出現(xiàn)分歧責(zé)任甩給設(shè)備原因,設(shè)備是否能夠出面來協(xié)調(diào)?電力電廠系統(tǒng)中有很多需要互相協(xié)調(diào)合作的設(shè)備,若出現(xiàn)各個系統(tǒng)設(shè)備之間時間紊亂,就會導(dǎo)致運行機(jī)制無法協(xié)調(diào)合作,那整個電廠的運行失調(diào),所造成的損失無法估量。
所以,ntp服務(wù)器在各行各業(yè)系統(tǒng)發(fā)揮協(xié)調(diào)作用的同時,已經(jīng)成為了不可或缺的必備系統(tǒng),是各個系統(tǒng)穩(wěn)定運行基于安全因素中必須存在的重要設(shè)備。ntp服務(wù)器服務(wù)器應(yīng)用于不同行業(yè)系統(tǒng)中,為網(wǎng)絡(luò)內(nèi)設(shè)備提供標(biāo)準(zhǔn)的時間基準(zhǔn),使得各個獨立又相互關(guān)聯(lián)的設(shè)備有了可參考的維度標(biāo)準(zhǔn)。
NTP提供準(zhǔn)確時間,首先要有準(zhǔn)確的時間來源,這一時間應(yīng)該是國際標(biāo)準(zhǔn)時間UTC。 NTP獲得UTC的時間來源可以是原子鐘、天文臺、衛(wèi)星,也可以從Internet上獲取。這樣就有了準(zhǔn)確而可靠的時間源。時間按NTP服務(wù)器的等級傳播。按照離外部UTC 源的遠(yuǎn)近將所有服務(wù)器歸入不同的Stratum(層)中。Stratum-1在頂層,有外部UTC接入,而Stratum-2則從Stratum-1獲取時間,Stratum-3從Stratum-2獲取時間,以此類推,但Stratum層的總數(shù)限制在15以內(nèi)。所有這些服務(wù)器在邏輯上形成階梯式的架構(gòu)相互連接,而Stratum-1的時間服務(wù)器是整個系統(tǒng)的基礎(chǔ)。
計算機(jī)主機(jī)一般同多個時間服務(wù)器連接, 利用統(tǒng)計學(xué)的算法過濾來自不同服務(wù)器的時間,以選擇最佳的路徑和來源來校正主機(jī)時間。即使主機(jī)在長時間無法與某一時間服務(wù)器相聯(lián)系的情況下,NTP服務(wù)依然有效運轉(zhuǎn)。
為防止對時間服務(wù)器的惡意破壞,NTP使用了識別(Authentication)機(jī)制,檢查來對時的信息是否是真正來自所宣稱的服務(wù)器并檢查資料的返回路徑,以提供對抗干擾的保護(hù)機(jī)制。