NTP意圖將所有參與計(jì)算機(jī)的協(xié)調(diào)世界時(shí)(UTC)時(shí)間同步到幾毫秒誤差內(nèi)。它使用Marzullo算法的修改版來(lái)選擇的時(shí)間服務(wù)器,其設(shè)計(jì)旨在減輕可變網(wǎng)絡(luò)延遲造成的影響。NTP通常可以在公共互聯(lián)網(wǎng)保持幾十秒的誤差,并且在理想的局域網(wǎng)環(huán)境中可以實(shí)現(xiàn)超過(guò)1毫秒的精度。不對(duì)成路由可擁塞控制可能導(dǎo)致100毫秒(或更高)的錯(cuò)誤。
基于NTP減少計(jì)算機(jī)時(shí)鐘頻率偏差
時(shí)鐘頻率偏差是時(shí)鐘長(zhǎng)期計(jì)時(shí)累積誤差的主要原因,要提高時(shí)鐘長(zhǎng)期計(jì)時(shí)精度,必須補(bǔ)償時(shí)鐘頻率偏差。聯(lián)網(wǎng)的計(jì)算機(jī)可采用NTP方式,可非常方便地校準(zhǔn)時(shí)鐘頻率偏差。以NTP服務(wù)器時(shí)鐘為標(biāo)準(zhǔn)時(shí)間,在某一時(shí)刻設(shè)置NTP客戶機(jī)時(shí)間為NTP服務(wù)器當(dāng)前時(shí)間T0,經(jīng)過(guò)一段時(shí)間后,NTP服務(wù)器時(shí)間為T(mén)0+tsn,NTP客戶端時(shí)間為T(mén)0+tcn。因?yàn)榇嬖跁r(shí)鐘頻率偏差,tsn與tcn并不相等。NTP客戶端時(shí)間tcn需乘以時(shí)鐘頻率偏差系數(shù)k才等于tsn,即tsn=k×tcn,所以k=tsn/tcn。
計(jì)算機(jī)時(shí)鐘偏差分析
通用PC機(jī)自帶兩類時(shí)鐘源:硬件時(shí)鐘和軟件時(shí)鐘(或稱為系統(tǒng)時(shí)鐘)。不論是硬件時(shí)鐘還是軟件時(shí)鐘,都是由石英晶體振蕩器驅(qū)動(dòng)的,通過(guò)累計(jì)石英晶體振蕩器輸出脈沖數(shù),換算出時(shí)間。所以計(jì)算機(jī)時(shí)鐘的準(zhǔn)確度取決于晶振頻率準(zhǔn)確度。受溫度變化、電壓、芯片老化等因素影響,晶振頻率會(huì)發(fā)生小幅度波動(dòng),其中溫度對(duì)晶振頻影響。
由于工藝和材料的原因,同一生產(chǎn)線上標(biāo)稱頻率相同的石英晶體,其實(shí)際頻率是不同的,實(shí)際頻率與標(biāo)稱頻率偏差率從10-4量級(jí)到10-9量級(jí)不等。以10-4量級(jí)為例,時(shí)鐘每天至少誤差8.64 s。
假定局域網(wǎng)內(nèi)NTP延時(shí)小于1ms,理論上授時(shí)誤差小于0.5ms,但對(duì)于Windows操作系統(tǒng)內(nèi)置的NTP客戶和NTP服務(wù),并不能達(dá)到此精度。Windows NTP時(shí)鐘分辨率因操作系統(tǒng)和硬件不同而有所不同,時(shí)鐘分辨率通常為10ms或15ms?;赪indows操作系統(tǒng)內(nèi)置的NTP授時(shí)精度不超過(guò)10ms。