計算機時鐘偏差分析
通用PC機自帶兩類時鐘源:硬件時鐘和軟件時鐘(或稱為系統(tǒng)時鐘)。不論是硬件時鐘還是軟件時鐘,都是由石英晶體振蕩器驅動的,通過累計石英晶體振蕩器輸出脈沖數,換算出時間。所以計算機時鐘的準確度取決于晶振頻率準確度。受溫度變化、電壓、芯片老化等因素影響,晶振頻率會發(fā)生小幅度波動,其中溫度對晶振頻影響。
由于工藝和材料的原因,同一生產線上標稱頻率相同的石英晶體,其實際頻率是不同的,實際頻率與標稱頻率偏差率從10-4量級到10-9量級不等。以10-4量級為例,時鐘每天至少誤差8.64 s。
NTP授時精度與NTP服務器與用戶間的網絡狀況有關,主要取決于NTP包往返路由的延時對稱程度,往返路由的延時不對稱值不超過網絡延時。式(2)是在假設NTP請求和回復包在網上傳送延時相等,即d1=d2=d/2的情況下得出的,而d1、d2的取值范圍在(0...d)間,由式(3)可以得出授時誤差是±d/2。一般廣域網的網絡延時在10 ms~500ms之間;局域網的網絡延時在計時操作系統(tǒng)內核處理延遲的情況下通常小于1ms。
實際應用中,還有確保秒級精度的簡單的網絡時間協議SNTP(Simple Network Time Protocol)。SNTP是NTP的一個子集,主要用于那些不需要NTP的精度以較高實現復雜性的網絡時間同步客戶機。SNTP協議已減少了網絡延時對校對準確的影響,但沒有冗余服務器和校正時鐘頻率誤差功能。
網絡時間協議NTP(Network Time Protocol)的主要開發(fā)者是美國特拉華大學的MILLS David L教授設計實現的,由時間協議、ICMP時間戳消息及IP時間戳選項發(fā)展而來。NTP用于將計算機客戶或服務器的時間與另一服務器同步,使用層次式時間分布模型。在配置時,NTP可以利用冗余服務器和多條網絡路徑來獲得時間的高準確性和高可靠性。即使客戶機在長時間無法與某一時間服務器相聯系的情況下,仍可提供高準確度時間。