網絡時間協議Network Time Protocol(NTP)

網絡時間協議(NTP)簡介


NTP概念簡介

Network Time ProtocolNTP)是用來使計算機時間同步化的一種協議,它可以使計算機對其服務器或時鐘源(如石英鐘,GPS等等)做同步化,它可以提供高精準度的時間校正(LAN上與標準間差小於1毫秒,WAN上幾十毫秒),且可介由加密確認的方式來防止惡毒的協議***。


NTP如何工作

NTP提供準確時間,首先要有準確的時間來源,這一時間應該是國際標準時間UTC NTP獲得UTC的時間來源可以是原子鐘、天文臺、衛星,也可以從Internet上獲取。這樣就有了準確而可靠的時間源。時間按NTP服務器的等級傳播。按照離外部UTC 源的遠近將所有服務器歸入不同的Stratun(層)中。Stratum-1在頂層,有外部UTC接入,而Stratum-2則從Stratum-1獲取時間,Stratum-3Stratum-2獲取時間,以此類推,但Stratum層的總數限制在15以內。所有這些服務器在邏輯上形成階梯式的架構相互連接,而Stratum-1的時間服務器是整個系統的基礎。

計算機主機一般同多個時間服務器連接, 利用統計學的算法過濾來自不同服務器的時間,以選擇最佳的路徑和來源來校正主機時間。即使主機在長時間無法與某一時間服務器相聯繫的情況下,NTP服務依然有效運轉。

爲防止對時間服務器的惡意破壞,NTP使用了識別(Authentication)機制,檢查來對時的信息是否是真正來自所宣稱的服務器並檢查資料的返回路徑,以提供對抗干擾的保護機制。

 

網絡校時協議(NTP)的實現


時間服務器可以利用以下三種方式與其他服務器對時:

broadcast/multicast
client/server
symmetric

broadcast/multicast
方式主要適用於局域網的環境,時間服務器週期性的以廣播的方式,將時間信息傳送給其他網路中的時間服務器,其時間僅會有少許的延遲,而且配置非常的簡單。但是此方式的精確度並不高,對時間精確度要求不是很高的情況下可以採用。

symmetric
的方式得一臺服務器可以從遠端時間服務器獲取時鐘,如果需要也可提供時間信息給遠端的時間服務器。此一方式適用於配置冗餘的時間服務器,可以提供更高的精確度給主機。

client/server
方式與symmetric方式比較相似,只是不提供給其他時間服務器時間信息,此方式適用於一臺時間服務器接收上層時間服務器的時間信息,並提供時間信息給下層的用戶。

上述三種方式,時間信息的傳輸都使用UDP協議。每一個時間包內包含最近一次的事件的時間信息、包括上次事件的發送與接收時間、傳遞現在事件的當地時間、及此包的接收時間。在收到上述包後即可計算出時間的偏差量與傳遞資料的時間延遲。時間服務器利用一個過濾演算法,及先前八個校時資料計算出時間參考值,判斷後續校時包的精確性,一個相對較高的離散程度,表示一個對時資料的可信度比較低。僅從一個時間服務器獲得校時信息,不能校正通訊過程所造成的時間偏差,而同時與許多時間服務器通信校時,就可利用過濾算法找出相對較可靠的時間來源,然後採用它的時間來校時。

 

網絡時間協議(NTP)的特點


UTC獲取標準時間

網路校時協議,提供在互連的網路上提供校時服務和發送供給標準時間給計算機。目前已成爲Internet上時間同步的標準協議。

NTP
提供準確時間,首先要有準確的時間來源,這一時間應是國際標準時間UTCNTP獲得UTC的時間來源可以是原子鐘,天文臺,衛星,也可以從Internet上獲取。這樣就有了準確而可靠的時間源。


NTP服務器分層提供服務

時間按NTP服務器的等級傳播。按照離外部UTC源的遠近將所有服務器歸入不同的Stratum(層)中。Stratum-1在頂層,有外部UTC接入,而Stratum-2則從Stratum-1獲取時間,Stratum-3Stratum-2獲取時間,以此類推,但Stratum層的總數限制在15以內。所有這些服務器在邏輯上形階梯式的架構相互連接,而Stratum-1的時間服務器是整個系統的基礎。


過濾算法選擇時間的最佳路徑和來源

計算機主機一般同多個時間服務器連接,利用統計學的算法過濾來自不同服務器的時間包,以選擇最佳的路徑和來源來校正主機時間。即使主機在長時間無法與某一時間服務器相聯繫的情況下,NTP服務依然有效運轉。


識別機制抗干擾和惡意破壞

爲防止對時間服務器的惡意破壞,NTP使用了識別(Authentication)機制,檢查來對時的信息是否是真正來自所宣稱的服務器並檢查資料的返回路徑,以提供對抗干擾的保護機制。

 

NTP協議格式


NTP packet = NTP header + Four TimeStamps = 48byte

NTP header : 16byte
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

|LI | VN |Mode | Stratum | Poll | Precision |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
LeapYearIndicator : 2bit
VersionNumber : 3bit
Stratum : 8bit
Mode : 3 bit
PollInterval : 8 bit
Percision : 8bit

| Root Delay |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Root delay : 32bit

| Root Dispersion |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Root Dispersion : 32bit

| Reference Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Reference Identifier : 32bit

Four TimeStamps : 32byte
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

| Reference Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Reference Timestamp : 64bit

| Originate Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Originate Timestamp : 64bit

| Receive Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Receive Timestamp : 64bit

| Transmit Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Transmit Timestamp : 64bit

| Authenticator (optional) (96) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章