本程序能通過(guò)網(wǎng)絡(luò)授時(shí)服務(wù)器獲取當(dāng)前時(shí)間,因?yàn)橐话阄覀兊氖謾C(jī)只能提供到分鐘的時(shí)間顯示,并且由于手機(jī)硬件的固有問(wèn)題導(dǎo)致經(jīng)常會(huì)出現(xiàn)手機(jī)系統(tǒng)時(shí)間不準(zhǔn)確問(wèn)題,(已知的某平臺(tái)的手機(jī)會(huì)在充電后時(shí)間變快4分鐘),這是編寫本程序的初衷,本程序功能夠提供給使用者到秒級(jí)的時(shí)間顯示,同時(shí)告訴使用者手機(jī)系統(tǒng)時(shí)間與當(dāng)前標(biāo)準(zhǔn)時(shí)間的差值,但無(wú)權(quán)去修改使用者手機(jī)的系統(tǒng)時(shí)間,軟件使用中會(huì)消耗非常少的網(wǎng)絡(luò)流量。
NTP授時(shí)精度與NTP服務(wù)器與用戶間的網(wǎng)絡(luò)狀況有關(guān),主要取決于NTP包往返路由的延時(shí)對(duì)稱程度,往返路由的延時(shí)不對(duì)稱值不超過(guò)網(wǎng)絡(luò)延時(shí)。式(2)是在假設(shè)NTP請(qǐng)求和回復(fù)包在網(wǎng)上傳送延時(shí)相等,即d1=d2=d/2的情況下得出的,而d1、d2的取值范圍在(0...d)間,由式(3)可以得出授時(shí)誤差是±d/2。一般廣域網(wǎng)的網(wǎng)絡(luò)延時(shí)在10 ms~500ms之間;局域網(wǎng)的網(wǎng)絡(luò)延時(shí)在計(jì)時(shí)操作系統(tǒng)內(nèi)核處理延遲的情況下通常小于1ms。
計(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。
NTP的工作模式 Server/Client mode:用戶向一個(gè)或多個(gè)服務(wù)器發(fā)出服務(wù)請(qǐng)求,根據(jù)所交換的信息,從中選擇認(rèn)為準(zhǔn)確的時(shí)間,并調(diào)整本地的時(shí)鐘。 Multicast/Broadcast mode:此種模式是適用于在高速的LAN上。利用一個(gè)或多個(gè)服務(wù)器在固定的周期向某個(gè)多播地址做廣播。 Symmetric mode:兩個(gè)以上的Server互相進(jìn)行時(shí)間消息的通訊,可以相互校正對(duì)方的時(shí)間,以維持整個(gè)subnet的時(shí)間的一致性。