本程序能通過網(wǎng)絡(luò)授時服務(wù)器獲取當前時間,因為一般我們的手機只能提供到分鐘的時間顯示,并且由于手機硬件的固有問題導致經(jīng)常會出現(xiàn)手機系統(tǒng)時間不準確問題,(已知的某平臺的手機會在充電后時間變快4分鐘),這是編寫本程序的初衷,本程序功能夠提供給使用者到秒級的時間顯示,同時告訴使用者手機系統(tǒng)時間與當前標準時間的差值,但無權(quán)去修改使用者手機的系統(tǒng)時間,軟件使用中會消耗非常少的網(wǎng)絡(luò)流量。
NTP授時精度與NTP服務(wù)器與用戶間的網(wǎng)絡(luò)狀況有關(guān),主要取決于NTP包往返路由的延時對稱程度,往返路由的延時不對稱值不超過網(wǎng)絡(luò)延時。式(2)是在假設(shè)NTP請求和回復包在網(wǎng)上傳送延時相等,即d1=d2=d/2的情況下得出的,而d1、d2的取值范圍在(0...d)間,由式(3)可以得出授時誤差是±d/2。一般廣域網(wǎng)的網(wǎng)絡(luò)延時在10 ms~500ms之間;局域網(wǎng)的網(wǎng)絡(luò)延時在計時操作系統(tǒng)內(nèi)核處理延遲的情況下通常小于1ms。
假定局域網(wǎng)內(nèi)NTP延時小于1ms,理論上授時誤差小于0.5ms,但對于Windows操作系統(tǒng)內(nèi)置的NTP客戶和NTP服務(wù),并不能達到此精度。Windows NTP時鐘分辨率因操作系統(tǒng)和硬件不同而有所不同,時鐘分辨率通常為10ms或15ms。基于Windows操作系統(tǒng)內(nèi)置的NTP授時精度不超過10ms。
NTP意圖將所有參與計算機的協(xié)調(diào)世界時(UTC)時間同步到幾毫秒誤差內(nèi)。它使用Marzullo算法的修改版來選擇的時間服務(wù)器,其設(shè)計旨在減輕可變網(wǎng)絡(luò)延遲造成的影響。NTP通常可以在公共互聯(lián)網(wǎng)保持幾十秒的誤差,并且在理想的局域網(wǎng)環(huán)境中可以實現(xiàn)超過1毫秒的精度。不對成路由可擁塞控制可能導致100毫秒(或更高)的錯誤。