当前位置:文档之家› 网络时间协议简介

网络时间协议简介

网络时间协议简介

NTP(Network Time Protocol)是由美国德拉瓦大学的David L. Mills教授于1985年提出,除了可以估算封包在网络上的往返延迟外,还可独立地估算计算机时钟偏差,从而实现在网络上的高精准度计算机校时,它是设计用来在Internet上使不同的机器能维持相同时间的一种通讯协定。时间服务器(time server)是利用NTP的一种服务器,通过它可以使网络中的机器维持时间同步。在大多数的地方,NTP可以提供1-50ms的可信赖性的同步时间源和网络工作路径。

网络时间协议(NTP)的详细说明在

RFC-1305[Mills 1992]中。RFC-1305对NTP协议自动机在事件、状态、转变功能和行为方面给出了明确的说明。它以合适的算法以增强时钟的准确性,并且减轻多个由于同步源而产生的差错,实现了准确性低于毫秒的时间服务,以满足目前因特网中路径量测的需要。

NTP是一个跨越广域网或局域网的复杂的

同步时间协议,它通常可获得毫秒级的精度。RFC2030[Mills 1996]描述了SNTP(Simple Network Time Protocol),目的是为了那些不需要完整NTP实现复杂性的主机,它是NTP 的一个子集。通常让局域网上的若干台主机通过因特网与其他的NTP主机同步时钟,接着再向局域网内其他客户端提供时间同步服务。

注:清华大学网络中心的服务器采用NTP协议,所以同时支持NTP和SNTP客户端的时间同步请求。有关NTP更详细的资料,请访问David L. Mills的主页。

网络时间服务的层状结构

网络延时与时钟偏差的测量

Timestamp

Name

ID When Generated

Originate Timestamp T1 time request sent by client

Receive Timestamp T2 time request received at

server

t 为服务器和客户端之间的时间偏差;d 为两者之间的往返时间

∵T2=T1+t+d/2; T2-T1=t+d/2;

T4=T3-t+d/2; T3-T4=t-d/2;

∴d=(T4-T1)-(T3-T2);

t=((T2-T1)+(T3-T4))/2

[返回页面顶端]

网络时间服务的实现方式

•网络时间服务的实现方式

o无线时钟:服务器系统可以通过串口连

接一个无线时钟。无线时钟接收GPS

(全球卫星定位系统)的卫星发射的信

号来决定当前时间。无线时钟是一个非

常精确的时间源,但是需要花一定的费

用。

o时间服务器:还可以使用网络中NTP时

间服务器,通过这个服务器来同步网络

中的系统的时钟。

/~mill

s/ntp/servers.html列出了Internet

上有效的一级时间服务器。

o局域网内的同步:如果只是需要在本局

域网内进行系统间的时钟同步,那么就

可以使用局域网中任何一个系统的时

钟。你需要选择局域网中的一个节点的

时钟作“权威的”的时间源,然后其它的

节点就只需要与这个时间源进行时间同

步即可。使用这种方式,所有的节点都

会使用一个公共的系统时钟,但是不需

要和局域网外的系统进行时钟同步。如

果一个系统在一个局域网的内部,同时

又不能使用无线时钟,这种方式是最好

的选择。

o注:网络中心的一级服务器从GPS获得

精确时间。

•网络时间服务的工作模式

o Sever/Client mode:用户向一个多几

个服务器提出服务请求,根据所交换的

信息,从中选择认为最准确的时间,并

调整本地的时钟。

o Multicast/Broadcast mode:此种模

式是适用于用在高速的LAN上。利用一

个或多个服务器在固定的周期向某个多

播地址做广播。

o Symmetric mode:二个以上的

Server互相进行时间消息的通讯,可以

互相校正对方的时间,以维持整个

subnet的时间一致性。

o注:对校园网用户采用服务器/客户端模

式的时间服务。

•保持网络节点时间同步的机制

o ntpdate命令:此命令被用来立即同步

客户端和服务器的时间。这是同步客户

端和服务器的时间的最快方式。系统每

次启动的时候会使用这个命令,用来确

保客户端和服务器的时间的同步。这个

命令通常指定一个NTP服务器作为一

个参数,客户端的时钟被设置为和服务

器的时间匹配。当这个命令使用多个NTP服务器作为参数时,客户端会使用最低级的NTP服务器。如果级别相等,客户端会使用加权平均数。

o ntpd守护进程:此进程在后台持续运行,并且会定时校验客户端的时钟和NTP服务器的时间。xntpd守护进程通常是在系统启动的时候启动。因为客户端的时钟可能产生漂移,以致与实际的NTP时钟有差异。xntpd守护进程会周期性地发送一个NTP服务器的网络请求,并且与客户端的时钟对比,在必要的时候修正客户端的时间,同时将时间差存到名为/etc/ntp.drift文件。默认的xntpd时间检查的间隔为64秒,在第一次检查的时候,客户端的时钟和NTP服务器上的时钟的差异会被记录

下来,同时依靠这个时间差异来计划下一次检查。如果这个时间差异很大,下一次的时间检查会很快发生。如果这个差异很小,下一次的检查到来的时间会相应的延长。这样就避免每次都去查询

相关主题