天天看點

GPS授時伺服器工作原理詳解

GPS授時伺服器工作原理詳解

GPS授時伺服器工作原理詳解

目前計算機網絡中各主機和伺服器等網絡裝置的時間基本處于無序的狀态。随着計算機網絡應用的不斷湧現,計算機的時間同步問題成為愈來愈重要的事情。以Unix系統為例,時間的準确性幾乎影響到所有的檔案操作。 如果一台機器時間不準确,例如在從時間超前的機器上建立一個檔案,用ls檢視一下,以目前時間減去所顯示的檔案修改時間會得一個負值,這一問題對于網絡檔案伺服器是一場災難,檔案的可靠性将不複存在。為避免産生本機錯誤,可從網絡上擷取時間,這個指令就是rdate,這樣系統時鐘便可與公共源同步了。但是一旦這一公共時間源出現差錯就将産生多米諾效應,與其同步的所有機器的時間是以全都錯誤。

GPS授時伺服器工作原理詳解

京準電子科技生産的HR-901GB授時伺服器

另外當涉及到網絡上的安全裝置時,同步問題就更為重要了。這些裝置所生成的日志必須要反映出準确的時間。尤其是在處理繁忙資料的時候,如果時間不同步,幾乎不可能将來自不同源的日志關聯起來。 一旦日志檔案不相關連,安全相關工具就會毫無用處。不同步的網絡意味着企業不得不花費大量時間手動跟蹤安全事件。現在讓我們來看看如何才能同步網絡,并使得安全日志能呈現出準确地時間。

Internet的發展使得電子貨币,網上購物,網上證券、金融交易成為可能,顧客可以坐在家裡用個人電腦進行上述活動。要保證這些活動的正常進行就要有統一的時間。不能設想使用者3點鐘彙出一筆錢銀行2點50分收到。個人電腦的時鐘準确度很低,隻有10-4、10-5,一天下來有可能差十幾秒。

現在許多線上教學系統的許多功能都使用了時間記錄,比如上網時間記錄,遞交作業時間和考試時間等等。通常線上教學系統記錄的使用者資料均以網站伺服器時間為準。筆者以前就曾出現過因為應用伺服器時間還在23點55分,而資料庫伺服器已跨過24點,導緻正在進行的整個批處理日切或資料歸檔等重要處理失敗或根本無法進行的情況,其實應用和資料庫伺服器時間也隻是相差了幾分鐘而已。為了避免出現這種情況,系統管理者要經常關注伺服器的時間,發現時間差距較大時可以手工調整,但由系統管理者手工調整既不準确、并且随着伺服器數量的增加也會出現遺忘,是以有必要讓系統自動完成同步多個伺服器的時間。

上述問題的解決方法,就是需要一個能調整時鐘抖動率,建立一個即時緩和、調整時間變化,并用一群受托伺服器提供準确、穩定時間的時間管理協定,這就是網絡校時協定(NTP)。如果可以你的區域網路可以通路網際網路,那麼不必安裝一台專門的ntp伺服器,隻需安裝ntp的用戶端軟體到網際網路上的公共ntp伺服器自動修正時間即可。如果不能通路網際網路,而要将各個計算機時間的統一,就需要自己架設一台ntp伺服器。

一、 網絡時間服務的實作方式及其選擇

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

網絡時間服務的實作方式主要有以下三種方式:

1) 無線時鐘。伺服器系統可以通過序列槽連接配接一個無線時鐘。無線時鐘接收GPS(全球衛星定位系統)的衛星發射的信号來決定目前時間。無線時鐘是一個非常精确的時間源,但是需要花一定的費用。

2) 時間伺服器。可以使用網絡中NTP時間伺服器,通過這個伺服器來同步網絡中的系統的時鐘。http://www.eecis.udel.edu/~mills/ntp/servers.html列出了Internet上有效的一級時間伺服器。

3) 區域網路内的同步。如果隻是需要在本區域網路内進行系統間的時鐘同步,就可以使用區域網路中任何一個系統的時鐘。需要選擇區域網路中的一個節點的時鐘作“權威的”的時間源,然後其它的節點就隻需要與這個時間源進行時間同步即可。如果一個系統在一個區域網路的内部,同時又不能使用無線時鐘,這種方式是最好的選擇。

NTP選擇

如果您要求實在不高,建議您使用rdate即可,簡單又友善。如果您的精确度要求在秒以下,建議您使用SNTP。如果您有一群工作站需要同步或做較精密的時間運算,那麼建議您使用NTP,作業系統最好是UNIX或者linux,其次是Win2000/xp、2003。Win95、98的NTP及時的解析度隻有55ms,又不穩定,不建議使用。

二、 NTP的網絡體系結構和工作原理

NTP所建立起的網絡基本結構是分層管理的類樹形結構。網絡中的節點有兩種可能:時鐘源或客戶。每一層上的時鐘源或客戶可向上一層或本層的時鐘源請求時間校正。 UTC時間是使用多種不同的方法得到的,包括無線電和衛星系統。一些國家的用于進階服務的特别可以使用特别的接收機,包括GPS。但是,在每台計算機都安裝這些接收機一是不實際,也是經濟的。作為替代,指定的時間伺服器的計算機上安裝這種接收機,并使用如NTP的協定來同步時間,從UTC分開的程度是被定義為層,一個無線電钏(從指定的發射機或衛星導航裝置上接收資訊)是0層,直接與無線電鐘連接配接的是1層,從1層計算機上接收時間的是2層,依次如此。

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

NTP如何工作

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

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

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

在基本條件下,NTP用戶端發出時間請求,與時間伺服器交換時間,這個交換的結果是,用戶端能計算出時間的延遲,它的彌補值,并調整與伺服器時間同步。通常情況下,在設定的初始,在5至10分鐘有内6次交換。 一旦同步後,每10分鐘與伺服器時間進行一次同步,通常要求單一資訊交換。備援伺服器和不同的網絡路徑用于保證可靠性的精确度,除了用戶端/伺服器商的同步以外,NTP還支援同等計算機的廣播同步。NTP在設計上是高度容錯和可更新。時間按NTP伺服器的等級傳播。 

三、 NTP的工作模式:

主/被動對稱模式(broadcast/multicast):一對一的連接配接,雙方均可同步對方或被對方同步,先發出申請建立連接配接的一方工作在主動模式下,另一方工作在被動模式下。此方式适用于配置備援的時間伺服器,可以提供更高的精确度給主機。

客戶/伺服器模式(client/server):與主/被動模式基本相同。唯一差別在于,客戶方可被伺服器同步,但伺服器不能被客戶同步。

廣播模式:一對多的連接配接,伺服器不論客戶工作在何種模式下,主動發出時間資訊,客戶由此資訊調整自己的時間,此時網絡延時d2忽略,是以在準度上有損失,但可滿足秒級應用。廣播模式而且配置非常的簡單。但是此方式的精确度并不高,對時間精确度要求不是很高的情況下可以采用。

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