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(Network Time Protocol,網(wǎng)絡(luò)時(shí)間協(xié)議)是用來(lái)使網(wǎng)絡(luò)中的各個(gè)計(jì)算機(jī)時(shí)間同步的一種協(xié)議。它的用途是把計(jì)算機(jī)的時(shí)鐘同步到世界協(xié)調(diào)時(shí)UTC,其精度在局域網(wǎng)內(nèi)可達(dá)0.1ms,在互聯(lián)網(wǎng)上絕大多數(shù)的地方其精度可以達(dá)到1-50ms。
局域網(wǎng)絡(luò)延相對(duì)較大的原因在于時(shí)間戳一般都是在應(yīng)用層加蓋。為減少操作系統(tǒng)內(nèi)核處理延時(shí)的影響提高NTP授時(shí)精度,發(fā)/收NTP包時(shí)間戳應(yīng)盡量接近主機(jī)真實(shí)發(fā)/收包時(shí)刻。在不改變硬件的條件下,一個(gè)可行的辦法是修改網(wǎng)卡驅(qū)動(dòng)程序,將記錄NTP包發(fā)/收時(shí)間戳從應(yīng)用程序移至網(wǎng)卡驅(qū)動(dòng)程序處,可消除操作系統(tǒng)內(nèi)核處理延時(shí)不確定而引入的誤差。這種方法在局域網(wǎng)中可大幅提高NTP授時(shí)精度至μs級(jí)。
聯(lián)網(wǎng)計(jì)算機(jī)同步時(shí)鐘簡(jiǎn)便的方法是網(wǎng)絡(luò)授時(shí)。網(wǎng)絡(luò)授時(shí)分為廣域網(wǎng)授時(shí)和局域網(wǎng)授時(shí)。廣域網(wǎng)授時(shí)精度通常能達(dá)50ms級(jí),但有時(shí)超過(guò)500ms,這是因?yàn)槊看谓?jīng)過(guò)的路由器路徑可能不相同?,F(xiàn)在還沒(méi)有更好的辦法將這種不同路徑延遲的時(shí)間誤差完全消除。局域網(wǎng)授時(shí)不存在路由器路徑延遲問(wèn)題,因而授時(shí)精度理論上可以提到亞毫秒級(jí)。Windows內(nèi)置NTP服務(wù),在局域網(wǎng)內(nèi)其授時(shí)精度也只能達(dá)10ms級(jí)。因此,提高局域網(wǎng)NTP授時(shí)精度成為一個(gè)迫切需要解決的問(wèn)題。