工业以太网
NTP时间服务器技术文档详解
2013-03-25 16:37  浏览:31
NTP时间服务器技术文档详解 NTP时间服务器技术文档详解 NTP(NetworkTimeProtocol)是由美國德拉瓦大學的D.L.Mills教授於1985年提出,除了可以估算封包在網路上的往返延遲外,還可獨立地估算電腦時鐘偏差,達到在網路上實現高精準度電腦校時的目的。NTP伺服器以階層式架構形成時間同步體系。位於階層最頂層(第一階)的伺服器直接同步到國家標準時間,第二階伺服器則透過第一階伺服器間接同步到國家標準時間。每台伺服器均以本身的時鐘來維持某精準度的時間,並自行於適當校時週期主動向上一階層伺服器發出校時請求。為了時間同步的穩健性,最好有三條以上的同步路徑。每條路徑的時鐘過濾器會從最近幾次的時鐘偏差值中挑選出最佳者作為輸出。時鐘選擇器會估算各同步路徑的同步成本,封包往返時間延遲是主要參數,延遲愈大者成本就愈高,成本較低的時鐘偏差值才會被選取。時鐘合成器則將各時鐘偏差值加權合成後送往鎖相迴路以調整NTP伺服器本身的時鐘。 1. 時鐘過濾器模組
時鐘偏差就是本地電腦時鐘所需調整的數量估計值。客戶端校時程式(SNTP;SimpleNetworkTimeProtocol)就是直接使用這個估計值來調整本地電腦時鐘;而伺服器程式(NTP;NetworkTimeProtocol)則是由時鐘過濾器模組從最近8個時鐘偏差估計值中選出最佳者,以作為時鐘選擇器模組的輸入。 2. 時鐘選擇器模組
同步成本(SynchronizationDistance,Λ)是總誤差項(E)和總網路延遲項(Δ)之函數,關係式為Λ=Ε+Δ/2,Ε和Δ均為自第一階伺服器開起,逐階累加直到本地電腦為止。時鐘選擇器模組的評比依據為取W=STRATUM_NO*MAXDISP+Λ較小者。STRATUM_NO是循同步路徑,位於本地電腦上面一階伺服器的階層數,MAXDISP的值一般為16。在此可指出的特性如下:(1)當各同步路徑的同步成本相當時,則階層數較小(例如第一階)的伺服器會被選取。(2)當各同步路徑上的伺服器階數相同時(例如都是第一階),因為本地網路上的同步成本很可能比遠處網路者低甚多,所以遠處網路上的伺服器可能被捨棄。一般而言,在台灣地區,同時指定位於本實驗室以及位於美國或歐洲的第一階NTP伺服器,評比的結果會非常傾向於選擇本實驗室的伺服器。另一方面,由於NTP封包採用UDP/IP協議(時間封包是即時資料,不得重送),若指定的伺服器遠在美洲或歐洲,NTP封包常常在網路往返途中就逾齡死亡,無法達成NTP時間同步目的。
時鐘選擇器模組的評比功能,使得能選取性能較好且距離較近的伺服器。因為不是採用多數決方式,即使性能差的時鐘數量較多,也不會誤選。 3.時鐘合成器模組
時鐘選擇器模組可能產生一個以上的輸出。如果有多個輸出值,時鐘合成器模組就以1/W為權值,將Θ予以加權平均。即W愈大者,其Θ之貢獻愈小。最後的合成時鐘偏差值Θ即可用來調整本地電腦的時鐘。 4.NTP伺服器電腦時鐘調整
以時鐘偏差值調整本地電腦時鐘可有兩種方式,即一次式調整(StepPhaseAdjustment)和逐漸式調整(GradualPhaseAdjustment)。一次式調整法是直接將時鐘偏差值加到本地電腦時鐘上,雖然能快速達到時間同步目的,但會引起Jitter副作用。逐漸式調整法用鎖相迴路原理間接而緩慢地調整本地電腦時鐘,以避免引起Jitter。雖達到時間同步較耗時,卻是較好的時鐘調整方式。NTP伺服器採用那種時鐘調整法需視作業系統而定。在WindowsNT環境下,因不提供adjusttime功能,只能採用一次式調整法。就安裝WindowsNT的IBM相容個人電腦而言,於NTP伺服器啟動後十分鐘內可達到時間同步。UnixOS環境下有adjusttime功能,採用逐漸式調整法,達到時間同步的經歷時間視機器不同而不同,約十幾分鐘到幾十分鐘。
詳細資料可參考
RFC1305:NetworkTimeProtocol
RFC2030:SimpleNetworkTimeProtocol
发表评论
0评