ntp原理及用戶端實現

來源:互聯網
上載者:User

ntp原理及用戶端實現

 

NTP簡介

NTP(Network Time Protocol)是由美國德拉瓦大學的David L. Mills教授於1985年提出,除了可以估算封包在網路上的往返延遲外,還可獨立地估算電腦時鐘偏差,從而實現在網路上的高精準度電腦校時,它是設計用來在Internet上使不同的機器能維持相同時間的一種通訊協定。時間伺服器(time server)是利用NTP的一種伺服器,通過它可以使網路中的機器維持時間同步。在大多數的地方,NTP可以提供1-50ms的可信賴性的同步時間源和網路工作路徑。
 
網路時間協議(NTP)的詳細說明在RFC-1305[Mills 1992]中。RFC-1305對 NTP協議自動機在事件、狀態、轉變功能和行為方面給出了明確的說明。它以合適的演算法以增強時鐘的準確性,並且減輕多個由於同步源而產生的差錯,實現了準確性低於毫秒的時間服務,以滿足目前網際網路中路徑量測的需要。

NTP是一個跨越廣域網路或區域網路的複雜的同步時間協議,它通常可獲得毫秒級的精度。RFC2030[Mills 1996]描述了SNTP(Simple Network Time Protocol),目的是為了那些不需要完整NTP實現複雜性的主機,它是NTP的一個子集。通常讓區域網路上的若干台主機通過網際網路與其他的NTP主機同步時鐘,接著再向區域網路內其他用戶端提供時間同步服務。

NTP的特點

1,從UTC擷取標準時間
網路時間協議,提供在互連的網路上提供校時服務和發送標準時間給電腦。目前已成為Internet上時間同步的標準協議。NTP提供準確時間,首先要有準確的時間來源,這一時間應是國際標準時間UTC。NTP獲得UTC的時間來源可以是原子鐘,天文台,衛星,也可以從Internet上擷取。這樣就有了準確而可靠的時間源。

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

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

4,識別機制抗幹擾和惡意破壞
為防止對時間伺服器的惡意破壞,NTP使用了識別(Authentication)機制,檢查來對時的資訊是否是真正來自所宣稱的伺服器並檢查資料的返迴路徑,以提供對抗幹擾的保護機制。

NTP的實現方式

1,無線時鐘:伺服器系統可以通過串口串連一個無線時鐘。無線時鐘接收GPS(全球衛星定位系統)的衛星發射的訊號來決定目前時間。無線時鐘是一個非常精確的時間源,但是需要花一定的費用。
2,時間伺服器:還可以使用網路中NTP時間伺服器,通過這個伺服器來同步網路中的系統的時鐘。http://www.eecis.udel.edu/~mills/ntp/servers.html列出了Internet上有效一級時間伺服器。
3,區域網路內的同步:如果只是需要在本區域網路內進行系統間的時鐘同步,那麼就可以使用區域網路中任何一個系統的時鐘。你需要選擇區域網路中的一個節點的時鐘作“權威的”的時間源,然後其它的節點就只需要與這個時間源進行時間同步即可。使用這種方式,所有的節點都會使用一個公用的系統時鐘,但是不需要和區域網路外的系統進行時鐘同步。如果一個系統在一個區域網路的內部,同時又不能使用無線時鐘,這種方式是最好的選擇。

NTP的工作模式

1,Sever/Client mode:使用者向一個多幾個伺服器提出服務要求,根據所交換的資訊,從中選擇認為最準確的時間,並調整本地的時鐘。
2,Multicast/Broadcast mode:此種模式是適用於用在高速的LAN上。利用一個或多個伺服器在固定的周期向某個多播地址做廣播。
3,Symmetric mode:二個以上的Server互相進行時間訊息的通訊,可以互相校正對方的時間,以維持整個subnet的時間一致性。

NTP協議結構

NTP packet = NTP header + Four TimeStamps = 48bytes
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[header, 16bytes]
2   3      3         8              8      8      共32bits
LI  VN  Mode  Stratum  Poll  Precision
Root Delay (32bits)
Root Dispersion (32bits)
Reference Identifier (32bits)

[Timestamp 1, 8bytes]
Reference Timestamp (64bits)

[Timestamp 2, 8bytes]
Originate Timestamp (64bits)

[Timestamp 3, 8bytes]
Receive Timestamp (64bits)

[Timestamp 4, 8bytes]
Transmit Timestamp (64bits)

Key Identifier (optional) (32bits)
Message digest (optional) (128bits)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

欄位說明:
* LI:LeapYearIndicator, 跳躍指標,警告在當月最後一天的最終時刻插入的迫近閨秒(閨秒)。
* VN:VersionNumber, 版本號碼。
* Mode:模式, 0-預留;1-對稱行為;3-客戶機;4-伺服器;5-廣播;6-NTP 控制資訊
* Stratum:層級。
* Poll:PollInterval, 有符號整數表示連續資訊間的最大間隔。
* Precision:有符號整數表示本地時鐘精確度。
* Root Delay:有符號固定點序號表示主要參考源的總延遲,很短時間內的位15到16間的分段點。
* Root Dispersion:無符號固定點序號表示相對於主要參考源的正常差錯。
* Reference Identifier:識別特殊參考源。

* Reference Timestamp
* Originate Timestamp:這是向伺服器請求分離客戶機的時間,採用64位時標格式。
* Receive   Timestamp:這是向伺服器請求到達客戶機的時間,採用64位時標(Timestamp)格式。
* Transmit  Timestamp:這是向客戶機回覆分離伺服器的時間,採用64位時標(Timestamp)格式。

* Authenticator(可選):主要標識符和資訊數字域就包括已定義的資訊認證代碼(MAC)資訊。

網路延時與時鐘偏差的測量

Timestamp Name             ID        When Generated
Originate Timestamp       T1        time request sent by client
Receive Timestamp         T2        time request received at server
Transmit Timestamp        T3        time reply sent by server
Destination Timestamp   T4        time reply received at client
t 為伺服器和用戶端之間的時間偏差;
d 為兩者之間的往返時間

∵ T2 = T1 + t + d/2; ∴ T2 - T1 = t + d/2;
∵ T4 = T3 - t + d/2;  ∴ T3 - T4 = t - d/2;
∴ d = (T2 - T1) + (T4 - T3); t = [(T2 - T1) + (T3 - T4)] / 2;

NTP用戶端實現

ntpclient是一個運行在類UNIX機器上實現RFC-1305的ntp用戶端, 可以在這裡http://doolittle.icarus.com/ntpclient/下載,作者是Larry Doolittle。正在看,還不是特別明白

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.