NTP的工作模式
Server/Client mode:用戶向一個或多個服務器發(fā)出服務請求,根據所交換的信息,從中選擇認為準確的時間,并調整本地的時鐘。
Multicast/Broadcast mode:此種模式是適用于在高速的LAN上。利用一個或多個服務器在固定的周期向某個多播地址做廣播。
Symmetric mode:兩個以上的Server互相進行時間消息的通訊,可以相互校正對方的時間,以維持整個subnet的時間的一致性。
該協(xié)議通常描述為一種主從式架構,但它也可以在點對點網絡中,對等體雙方可將另一端認定為潛在的時間源。發(fā)送和接收時間戳采用用戶數(shù)據報協(xié)議(UDP)的通信端口123實現(xiàn)。這也可以使用廣播或多播,曲中的客戶端在初的往返校準交換后被動地監(jiān)聽時間更新。NTP提供一個即將到來的閏秒調整的警告,但不會傳輸有關本地時區(qū)或夏時制的信息。
NTP意圖將所有參與計算機的協(xié)調世界時(UTC)時間同步到幾毫秒誤差內。它使用Marzullo算法的修改版來選擇的時間服務器,其設計旨在減輕可變網絡延遲造成的影響。NTP通??梢栽诠不ヂ?lián)網保持幾十秒的誤差,并且在理想的局域網環(huán)境中可以實現(xiàn)超過1毫秒的精度。不對成路由可擁塞控制可能導致100毫秒(或更高)的錯誤。
局域網絡延相對較大的原因在于時間戳一般都是在應用層加蓋。為減少操作系統(tǒng)內核處理延時的影響提高NTP授時精度,發(fā)/收NTP包時間戳應盡量接近主機真實發(fā)/收包時刻。在不改變硬件的條件下,一個可行的辦法是修改網卡驅動程序,將記錄NTP包發(fā)/收時間戳從應用程序移至網卡驅動程序處,可消除操作系統(tǒng)內核處理延時不確定而引入的誤差。這種方法在局域網中可大幅提高NTP授時精度至μs級。