NTP的工作模式
Server/Client mode:用户向一个或多个服务器发出服务请求,根据所交换的信息,从中选择认为准确的时间,并调整本地的时钟。
Multicast/Broadcast mode:此种模式是适用于在高速的LAN上。利用一个或多个服务器在固定的周期向某个多播地址做广播。
Symmetric mode:两个以上的Server互相进行时间消息的通讯,可以相互校正对方的时间,以维持整个subnet的时间的一致性。
该协议通常描述为一种主从式架构,但它也可以在点对点网络中,对等体双方可将另一端认定为潜在的时间源。发送和接收时间戳采用用户数据报协议(UDP)的通信端口123实现。这也可以使用广播或多播,曲中的客户端在初的往返校准交换后被动地监听时间更新。NTP提供一个即将到来的闰秒调整的警告,但不会传输有关本地时区或夏时制的信息。
NTP意图将所有参与计算机的协调世界时(UTC)时间同步到几毫秒误差内。它使用Marzullo算法的修改版来选择的时间服务器,其设计旨在减轻可变网络延迟造成的影响。NTP通常可以在公共互联网保持几十秒的误差,并且在理想的局域网环境中可以实现超过1毫秒的精度。不对成路由可拥塞控制可能导致100毫秒(或更高)的错误。
局域网络延相对较大的原因在于时间戳一般都是在应用层加盖。为减少操作系统内核处理延时的影响提高NTP授时精度,发/收NTP包时间戳应尽量接近主机真实发/收包时刻。在不改变硬件的条件下,一个可行的办法是修改网卡驱动程序,将记录NTP包发/收时间戳从应用程序移至网卡驱动程序处,可消除操作系统内核处理延时不确定而引入的误差。这种方法在局域网中可大幅提高NTP授时精度至μs级。