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