您好,欢迎进入上海锐呈电气有限公司网站!
一键分享网站到:
您现在的位置:首页 >> 技术文章 >> 网络时间协议简介
网络时间协议简介
浏览次数:5274发布日期:2011-04-14

 

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
Transmit Timestamp T3 time reply sent by server
Destination Timestamp T4 time reply received at client
 
 
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
 
网络时间服务的实现方式
 
•网络时间服务的实现方式
•无线时钟:服务器系统可以通过串口连接一个无线时钟。无线时钟接收GPS(卫星定位系统)的卫星发射的信号来决定当前时间。无线时钟是一个非常的时间源,但是需要花一定的费用。
 
•时间服务器:还可以使用网络中NTP时间服务器,通过这个服务器来同步网络中的系统的时钟。http://www.ruicheng-china.cn/列出了Internet上有效的一级时间服务器。
 
•局域网内的同步:如果只是需要在本局域网内进行系统间的时钟同步,那么就可以使用局域网中任何一个系统的时钟。你需要选择局域网中的一个节点的时钟作“的”的时间源,然后其它的节点就只需要与这个时间源进行时间同步即可。使用这种方式,所有的节点都会使用一个公共的系统时钟,但是不需要和局域网外的系统进行时钟同步。如果一个系统在一个局域网的内部,同时又不能使用无线时钟,这种方式是的选择。
 
•注:网络中心的一级服务器从GPS获得时间。
•网络时间服务的工作模式
 
•Sever/Client mode:用户向一个多几个服务器提出服务请求,根据所交换的信息,从中选择认为zui准确的时间,并调整本地的时钟。
 
•Multicast/Broadcast mode:此种模式是适用于用在高速的LAN上。利用一个或多个服务器在固定的周期向某个多播地址做广播。
 
•Symmetric mode:二个以上的Server互相进行时间消息的通讯,可以互相校正对方的时间,以维持整个subnet的时间一致性。
 
•注:对校园网用户采用服务器/客户端模式的时间服务。
•保持网络节点时间同步的机制
 
•ntpdate命令:此命令被用来立即同步客户端和服务器的时间。这是同步客户端和服务器的时间的zui快方式。系统每次启动的时候会使用这个命令,用来确保客户端和服务器的时间的同步。这个命令通常一个NTP服务器作为一个参数,客户端的时钟被设置为和服务器的时间匹配。当这个命令使用多个NTP服务器作为参数时,客户端会使用zui低级的NTP服务器。如果级别相等,客户端会使用加权平均数。
 
•ntpd守护进程:此进程在后台持续运行,并且会定时校验客户端的时钟和NTP服务器的时间。xntpd守护进程通常是在系统启动的时候启动。因为客户端的时钟可能产生漂移,以致与实际的NTP时钟有差异。xntpd守护进程会周期性地发送一个NTP服务器的网络请求,并且与客户端的时钟对比,在必要的时候修正客户端的时间,同时将时间差存到名为/etc/ntp.drift文件。默认的xntpd时间检查的间隔为64秒,在*次检查的时候,客户端的时钟和NTP服务器上的时钟的差异会被记录下来,同时依靠这个时间差异来计划下一次检查。如果这个时间差异很大,下一次的时间检查会很快发生。如果这个差异很小,下一次的检查到来的时间会相应的延长。这样就避免每次都去查询网络中的时间服务器,从而可以减轻网络负载。查询NTP服务器的次数会慢慢变少。直到达到NTP请求的zui小值。
 
•注:在命令行方式下,可以采用"ntpd -q"或者"ntpdate [-b] time.edu.cn"进行对时。使用ntpd进行时间同步时,应事先配置好ntp.conf文件。
 

沪公网安备 31011002000425号