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