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í)間的一致性。
該協(xié)議通常描述為一種主從式架構(gòu),但它也可以在點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)中,對(duì)等體雙方可將另一端認(rèn)定為潛在的時(shí)間源。發(fā)送和接收時(shí)間戳采用用戶數(shù)據(jù)報(bào)協(xié)議(UDP)的通信端口123實(shí)現(xiàn)。這也可以使用廣播或多播,曲中的客戶端在初的往返校準(zhǔn)交換后被動(dòng)地監(jiān)聽(tīng)時(shí)間更新。NTP提供一個(gè)即將到來(lái)的閏秒調(diào)整的警告,但不會(huì)傳輸有關(guān)本地時(shí)區(qū)或夏時(shí)制的信息。
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ò)誤。
局域網(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í)。