NTP伺服器

使計算機時間同步化的協議

NTP伺服器【Network Time Protocol(NTP)】是用來使計算機時間同步化的一種協議,它可以使計算機對其伺服器或時鐘源(如石英鐘GPS等等)做同步化,它可以提供高精準度的時間校正(LAN上與標準間差小於1毫秒,WAN上幾十毫秒),且可介由加密確認的方式來防止惡毒的協議攻擊。時間按NTP伺服器的等級傳播。按照離外部UTC源的遠近把所有伺服器歸入不同的Stratum(層)中。

特徵介紹


NTP提供準確時間,首先要有準確的時間來源,這一時間應該是國際標準時間UTC。NTP獲得UTC的時間來源可以是原子鐘天文台、衛星,也可以從Internet上獲取。這樣就有了準確而可靠的時間源。時間按NTP伺服器的等級傳播。按照離外部UTC源的遠近將所有伺服器歸入不同的Stratum(層)中。Stratum-1在頂層,有外部UTC接入,而Stratum-2則從Stratum-1獲取時間,Stratum-3從Stratum-2獲取時間,以此類推,但Stratum層的總數限制在15以內。所有這些伺服器在邏輯上形成階梯式的架構相互連接,而Stratum-1的時間伺服器是整個系統的基礎。
計算機主機一般同多個時間伺服器連接,利用統計學的演演算法過濾來自不同伺服器的時間,以選擇最佳的路徑和來源來校正主機時間。即使主機在長時間無法與某一時間伺服器相聯繫的情況下,NTP服務依然有效運轉。
為防止對時間伺服器的惡意破壞,NTP使用了識別(Authentication)機制,檢查來對時的信息是否是真正來自所宣稱的伺服器並檢查資料的返迴路徑,以提供對抗干擾的保護機制。

網路校時


時間伺服器可以利用以下三種方式與其他伺服器對時:
broadcast/multicast
client/server
symmetric
broadcast/multicast方式主要適用於區域網的環境,時間伺服器周期性的以廣播的方式,將時間信息傳送給其他網路中的時間伺服器,其時間僅會有少許的延遲,而且配置非常的簡單。但是此方式的精確度並不高,對時間精確度要求不是很高的情況下可以採用。
symmetric的方式得一台伺服器可以從遠端時間伺服器獲取時鐘,如果需要也可提供時間信息給遠端的時間伺服器。此一方式適用於配置冗餘的時間伺服器,可以提供更高的精確度給主機。
client/server方式與symmetric方式比較相似,只是不提供給其他時間伺服器時間信息,此方式適用於一台時間伺服器接收上層時間伺服器的時間信息,並提供時間信息給下層的用戶。
上述三種方式,時間信息的傳輸都使用UDP協議。時間伺服器利用一個過濾演演演算法,及先前八個校時資料計算出時間參考值,判斷後續校時包的精確性,一個相對較高的離散程度,表示一個對時資料的可信度比較低。僅從一個時間伺服器獲得校時信息,不能校正通訊過程所造成的時間偏差,而同時與許多時間伺服器通信校時,就可利用過濾演演算法找出相對較可靠的時間來源,然後採用它的時間來校時

歷史發展


網路時間協議(NTP)的首次實現記載在InternetEngineeringNote之中,其精確度為數百毫秒。稍後出現了首個時間協議的規範,即RFC-778,它被命名為DCNET網際網路時間服務,而它提供這種服務還是藉助於Internetcontrol MessageProtocol(ICMP),即網際網路控制消息協議中的時間戳和時間戳應答消息。作為NTP
名稱的首次出現是在RFC-958之中,該版本也被稱為NTPv0,其目的是為ARPA網提供時間同步。它己完全脫離ICMP,是作為獨立的協議以完成更高要求的時間同步。它對於如本地時鐘的誤差估算和精密度等基本運算、參考時鐘的特性、網路上的分組數據包及其消息格式進行了描述。但是不對任何頻率誤差進行補償,也沒有規定濾波和同步的演演算法。
美國特拉華大學(University of Delaware)的DavidL.Mills主持了由美國國防部高級研究計劃局DARPA、美國國家科學基金NSF和美國海軍水面武器中心NSWC資助的網路時間同步項目,成功的開發出了NTP協議的第1,2,3版。

出現時間


NTPversion1出現於1988年6月,在RFC-1059中描述了首個完整的NTP的規範和相關演演算法。這個版本已經採用了client/server模式以及對稱操作,但是它不支持授權鑒別和NTP的控制消息。
1989年9月推出了取代RFC-958和RFC-1059的NTPv2版本即RFC-1119。
幾乎同時,DEC公司也推出了一個時間同步協議,數字時間同步服務DTSS(Digital Time Synchronization Service).在992年3月,NTPv3版本RFC-1305問世,該版本總結和綜合了NTP先前版本和DTSS,正式引入了校正原則,並改進了時鐘選擇和時鐘濾波的演演算法,而且還引入了時間消息發送的廣播模式,這個版本取代了NTP的先前版本。NTPv3發布后,一直在不斷地進行改進,NTP實現的一個重要功能是對計算機操作系統的時鐘調整。在NTPv3研究和推出的同時,有關在操作系統核心中改進時間保持功能的研究也在并行地進行。1994年推出了RFC-1559,名為A KernelModel for Precision Time keening,即精密時01保持的核心模式,這個實現可以把計算機操作系統的時間精確度保持在微秒數量級。幾乎同時,改進建議。對本地時鐘調整演演算法,通信模式,新的時鐘驅動器,又提出了NTPv4適配規則等方面的改進描述了具體方向。

發展方向


NTP的第4版正在研究和測試中,網路時間同步技術也將向更高精度、更強的兼容性和多平台的適應性方向發展。網路時間協議NTP是用於網際網路中時間同步的標準之一,它的用途是把計算機的時鐘同步到世界協調時UTC,其精度在區域網內可達0.1ms,在Internet上絕大多數的地方其精度可以達到1-50ms.

最新協議


NTPversion4是一個很重要的NTP協議,可是還沒有一個正式的RFC文本協議的描述。
值得提一下的是,簡單的NTP(SNTP)version4已經在RFC2030描述了