網絡時間協議(Network Time Protocol,NTP)是數據網絡潛伏時間可變的計算機系統之間通過分組交換進行時鐘同步的一個網絡協議,將所有網絡中的計算機與UTC(Universal Time Coordinated,世界協調時)同步。
NTP自從1985在RFC-958文檔中被特拉華大學的David L Mills設計提出,發展到至今的NTPv4,已經將近40年的歷程,是目前仍在使用的最古老的互聯網協議之一。
通過將網絡設備連接到時間服務器(該服務器接收來自明確時間源的信號),您可以在任何位置享受精確時間帶來的好處,從而提高生產力、改善客戶服務并實現同步運營。NTP在數字錄音、廣播電臺、計算機互聯、數字金融、文件協作和智能電網等等領域有著重要作用。
賽思在NTP技術方面也涌現出大量的優秀產品,如TS3000系列的TS3000G和TS3000U,系列中NS7210的萬兆高精度時間服務器。
面對新時代的高精度的PTP時間同步技術,White Rabbit和光纖同步這些更高精度可達到納秒級甚至亞納秒級的技術,NTP是否會在不久的將來退出歷史舞臺?
答案顯然是否定的。NTP所具備生命力,創造力的架構基礎使之在各行各業的應用上存在無限的延延伸。
n NTP時代的延續
下圖顯示了兩種NTP時間格式,64位時間戳格式和128位日期戳格式。日期戳格式在內部使用,而時間戳格式在客戶端和服務器之間交換的數據包頭中使用。時間戳格式跨越136年,稱為一個時代。當前時代始于1900年1月1日,而下一個時代始于2036年。
關于NTP時間刻度,最重要的一點是它對天、年或世紀一無所知,只知道與主紀元相關的秒差異。NTP的時間始于1900年1月1日0時。正值表示黃金時期之后的時間;負值表示在此之前的時間。任何日歷日期格式和NTP格式之間的轉換都是通過計算給定日期和NTP主紀元之間的秒和分數差來完成的。
時間戳格式是NTP中常見到的,32位字寬的秒代表了232秒≈136年,即時間戳所能代表的最長時間為136年,秒的小數部分代表1/232秒≈232ps。大部分人擔心,在2036年,NTP的協議的使用是否就會受到限制,甚至在那一年的時間翻轉會帶來時間紊亂。
隨著64位軟件系統全面普及,日期戳的使用是解決翻轉問題的重要手段,目前NTP v4就支持時代編碼與時代補償這兩個變量。日期戳中的32位時代編碼與32位秒所能延續的時間可以長到太陽系的滅亡,日期戳的小數部分的精度足以分辨光子以光速通過電磁場所需的時間。
可以看出,目前正處于NTP的第1個時代,是NTP青壯年時期,NTP的發展會給時間信息時代帶來更多的驚喜。
n NTP工作原理
TS3000U是賽思一款具備豐富功能的NTP服務器,以這款設備描述一下NTP是如何實現網絡兩臺設備的時間同步的。
網絡內存在兩臺TS3000設備,一臺作為服務器,一臺作為客戶端。兩臺設備在時間同步之前客戶端的時間為08:00:00AM,服務器的時間為10:00:00AM。系統的同步過程如下:
客戶端首先發送一個NTP請求報文給服務器,該報文中帶有離開客戶端時的時間戳T1(08:00:00 AM);當此NTP報文通過網絡到達服務器時,服務器會加上自己接收報文的時間戳T2(10:00:01AM);當此NTP報文離開服務器時,服務器會加上發送時間戳T3(10:00:02);當客戶端再次接收到該響應報文時,客戶端的時間是T4(08:00:03)。
那么客戶端就有足夠的息來計算兩個重要的參數:NTP報文的往返時延Delay=(T4-T1)-(T3-T2)=2秒。客戶端相對服務器的時間差Offset=((T2-T1)+(T3-T4))/2=2小時。
那么客戶端就可以根據與服務器的時間差來設置自己的時鐘,實現與服務器同步。雖然實例的時間同步精度為1秒,但實際的NTP報文分辨率可達到232皮秒,所以同步精度要超過秒級。
常規的NTP時間戳是采用軟件的中斷處理來進行打戳的,打戳精度受到線程和系統的影響,在軟件處理優先等級高的軟件設計下,其精度達到百微秒級,但是NTP網絡傳輸又會因為網絡數據傳輸問題,帶來來回鏈路延遲的不對稱和不穩定,最終使得NTP的精度在毫秒級,如果采用專用網絡,那么能有效解決鏈路問題,NTP精度可達到百微秒量級。
在NTP技術的設計上,賽思公司在NTP時間戳上采用專有硬件邏輯設計打戳,使NTP的時間戳的精度達到納秒量級,在采用專有NTP網絡時,NTP的授時精度可以達到百納秒,在高精度NTP時間服務器的TS3000G中,就采用此項高精度時間戳技術提供NTP服務,在業界也得到了廣泛好評。
n NTP時間同步網絡
NTP時間同步網絡目標不僅僅是使網絡內部的時間同步,同時也要使網絡內的時間與UTC一致,這就決定了NTP網絡組成的四要素:BD/GPS接收機與天線,NTP服務器,NTP客戶端和可用的網絡。
目前服務器內部都配備了高精度的BD/GPS接收機,與UTC的同步精度可達到100ns以內。
有兩種類型的NTP服務器可用于向網絡提供UTC時間:公共服務器和本地服務器。公共時間服務器由第三方擁有和運營,第三方可通過互聯網使用該服務器。本地NTP服務器是您自己擁有并安裝在您的場所中的服務器,在您的服務器和客戶端之間建立物理網絡連接。
如果同步時間對運營至關重要,那么本地時間服務器是更安全、更可靠的選擇。它們提供了改進的準確性和更多的控制,同時避免了公共服務器的各種缺點。
公共時間服務器 | 本地時間服務器 |
由第三方運營,可靠性保證不足 | 由自己運營,系統全時段由自己控制 |
同步性能取決于可靠的互聯網連接 | 互聯網連接丟失后,同步性能可以維持 |
防火墻需要一個開放的端口,容易受到網絡攻擊 | 設置在防火墻以內,安全性優 |
當大量用戶訪問時會遇到擁塞 | 整個服務只屬于您,全時段保證服務 |
可能涉及長的往返延遲,降低SNTP客戶端的準確性,而SNTP客戶端無法解釋網絡延遲 | 最小的往返延遲,使SNTP用戶的本地服務器更準確 |
可能受到速率限制,這限制了客戶端可以向服務器發出的時間請求數。超過速率限制可能會導致禁令 | 允許您設置自己的速率限制,并根據需要可使用任意數量的客戶端,適合大型網絡 |
在大型網絡上,可能有太多的客戶端,以至于服務器無法處理來自所有客戶端的請求。在這些情況下,服務器和客戶機層次結構排列。
第一層服務器通過GPS/BD信號與UTC進行同步,并通過網絡連接將該時間提供給第二層上的客戶端。反過來,第二層設備可以通過向第三層上的客戶端提供時間來像服務器一樣工作,第三層設備可以向第四層設備提供時間,依此類推。這樣,第一層設備就不會因太多請求而過載。
常規最多共有15個同步的層級別(層16用于非同步的客戶端),但每個層都會引入另一層網絡延遲,導致準確性降低。
為了解決這一問題,NTP客戶端可以設置為從多個服務器請求時間,將多個服務器對等在一起,這樣,如果一個服務器失去硬件時鐘同步,客戶端可以從對等組中的其他服務器獲得時間,以幫助它們盡可能接近地正確的時間。
n NTP的網絡安全
越來越多的計算機與設備使用網絡時間協議通過公共互聯網來傳輸時鐘數據,進一步同步時鐘。但是NTP是少數幾個仍在普遍使用的不安全的互聯網協議之一。攻擊者可以通過觀察客戶端與服務器之間的網絡流量為客戶端提供虛假數據,并根據客戶端的實現和配置,修改NTP時間戳,強迫將系統時鐘設置為任何時間和日期。
一旦客戶端的系統時鐘不準確,一些程序和服務就可能無法工作,如Web服務器證書等以時間作為密鑰驗證手段(之一)的程序。
在NTP安全方面,賽思做了大量的技術研究和安全防護,如傳送時間戳和重放檢測;消息摘要保護數據包的完整性檢測;Autokey模型自動分發對稱摘要密鑰的保護措施;MD5 身份驗證;網絡黑名單;基于Autokey模型的NTP協議序列的保護措施;限制數據包到達率抵抗消耗資源的Dos攻擊防護等。
賽思為廣大用戶提供精確時間的同時,也為用戶享受服務過程中的安全性著想。在持續創新專研過程中,與廣大用戶和合作伙伴雙贏。
聯系我們
浙江賽思電子科技有限公司 公司地址:浙江省嘉興市南湖區順澤路1376號 技術支持:智慧城市網掃一掃 更多精彩
微信二維碼
網站二維碼