NTP的工作模式
Server/Client mode:用戶向一個或多個服務(wù)器發(fā)出服務(wù)請求,根據(jù)所交換的信息,從中選擇認(rèn)為準(zhǔn)確的時間,并調(diào)整本地的時鐘。
Multicast/Broadcast mode:此種模式是適用于在高速的LAN上。利用一個或多個服務(wù)器在固定的周期向某個多播地址做廣播。
Symmetric mode:兩個以上的Server互相進行時間消息的通訊,可以相互校正對方的時間,以維持整個subnet的時間的一致性。
該協(xié)議通常描述為一種主從式架構(gòu),但它也可以在點對點網(wǎng)絡(luò)中,對等體雙方可將另一端認(rèn)定為潛在的時間源。發(fā)送和接收時間戳采用用戶數(shù)據(jù)報協(xié)議(UDP)的通信端口123實現(xiàn)。這也可以使用廣播或多播,曲中的客戶端在初的往返校準(zhǔn)交換后被動地監(jiān)聽時間更新。NTP提供一個即將到來的閏秒調(diào)整的警告,但不會傳輸有關(guān)本地時區(qū)或夏時制的信息。
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毫秒的精度。不對成路由可擁塞控制可能導(dǎo)致100毫秒(或更高)的錯誤。
局域網(wǎng)絡(luò)延相對較大的原因在于時間戳一般都是在應(yīng)用層加蓋。為減少操作系統(tǒng)內(nèi)核處理延時的影響提高NTP授時精度,發(fā)/收NTP包時間戳應(yīng)盡量接近主機真實發(fā)/收包時刻。在不改變硬件的條件下,一個可行的辦法是修改網(wǎng)卡驅(qū)動程序,將記錄NTP包發(fā)/收時間戳從應(yīng)用程序移至網(wǎng)卡驅(qū)動程序處,可消除操作系統(tǒng)內(nèi)核處理延時不確定而引入的誤差。這種方法在局域網(wǎng)中可大幅提高NTP授時精度至μs級。