您好,欢迎访问三七文档
网络时间协议简介NTP(NetworkTimeProtocol)是由美国德拉瓦大学的DavidL.Mills教授于1985年提出,除了可以估算封包在网络上的往返延迟外,还可独立地估算计算机时钟偏差,从而实现在网络上的高精准度计算机校时,它是设计用来在Internet上使不同的机器能维持相同时间的一种通讯协定。时间服务器(timeserver)是利用NTP的一种服务器,通过它可以使网络中的机器维持时间同步。在大多数的地方,NTP可以提供1-50ms的可信赖性的同步时间源和网络工作路径。网络时间协议(NTP)的详细说明在RFC-1305[Mills1992]中。RFC-1305对NTP协议自动机在事件、状态、转变功能和行为方面给出了明确的说明。它以合适的算法以增强时钟的准确性,并且减轻多个由于同步源而产生的差错,实现了准确性低于毫秒的时间服务,以满足目前因特网中路径量测的需要。NTP是一个跨越广域网或局域网的复杂的同步时间协议,它通常可获得毫秒级的精度。RFC2030[Mills1996]描述了SNTP(SimpleNetworkTimeProtocol),目的是为了那些不需要完整NTP实现复杂性的主机,它是NTP的一个子集。通常让局域网上的若干台主机通过因特网与其他的NTP主机同步时钟,接着再向局域网内其他客户端提供时间同步服务。注:清华大学网络中心的服务器采用NTP协议,所以同时支持NTP和SNTP客户端的时间同步请求。有关NTP更详细的资料,请访问DavidL.Mills的主页。网络时间服务的层状结构网络延时与时钟偏差的测量TimestampNameIDWhenGeneratedOriginateTimestampT1timerequestsentbyclientReceiveTimestampT2timerequestreceivedatserverTransmitTimestampT3timereplysentbyserverDestinationTimestampT4timereplyreceivedatclientt为服务器和客户端之间的时间偏差;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时间服务器,通过这个服务器来同步网络中的系统的时钟。~mills/ntp/servers.html列出了Internet上有效的一级时间服务器。o局域网内的同步:如果只是需要在本局域网内进行系统间的时钟同步,那么就可以使用局域网中任何一个系统的时钟。你需要选择局域网中的一个节点的时钟作“权威的”的时间源,然后其它的节点就只需要与这个时间源进行时间同步即可。使用这种方式,所有的节点都会使用一个公共的系统时钟,但是不需要和局域网外的系统进行时钟同步。如果一个系统在一个局域网的内部,同时又不能使用无线时钟,这种方式是最好的选择。o注:网络中心的一级服务器从GPS获得精确时间。网络时间服务的工作模式oSever/Clientmode:用户向一个多几个服务器提出服务请求,根据所交换的信息,从中选择认为最准确的时间,并调整本地的时钟。oMulticast/Broadcastmode:此种模式是适用于用在高速的LAN上。利用一个或多个服务器在固定的周期向某个多播地址做广播。oSymmetricmode:二个以上的Server互相进行时间消息的通讯,可以互相校正对方的时间,以维持整个subnet的时间一致性。o注:对校园网用户采用服务器/客户端模式的时间服务。保持网络节点时间同步的机制ontpdate命令:此命令被用来立即同步客户端和服务器的时间。这是同步客户端和服务器的时间的最快方式。系统每次启动的时候会使用这个命令,用来确保客户端和服务器的时间的同步。这个命令通常指定一个NTP服务器作为一个参数,客户端的时钟被设置为和服务器的时间匹配。当这个命令使用多个NTP服务器作为参数时,客户端会使用最低级的NTP服务器。如果级别相等,客户端会使用加权平均数。ontpd守护进程:此进程在后台持续运行,并且会定时校验客户端的时钟和NTP服务器的时间。xntpd守护进程通常是在系统启动的时候启动。因为客户端的时钟可能产生漂移,以致与实际的NTP时钟有差异。xntpd守护进程会周期性地发送一个NTP服务器的网络请求,并且与客户端的时钟对比,在必要的时候修正客户端的时间,同时将时间差存到名为/etc/ntp.drift文件。默认的xntpd时间检查的间隔为64秒,在第一次检查的时候,客户端的时钟和NTP服务器上的时钟的差异会被记录下来,同时依靠这个时间差异来计划下一次检查。如果这个时间差异很大,下一次的时间检查会很快发生。如果这个差异很小,下一次的检查到来的时间会相应的延长。这样就避免每次都去查询网络中的时间服务器,从而可以减轻网络负载。查询NTP服务器的次数会慢慢变少。直到达到NTP请求的最小值。o注:在命令行方式下,可以采用ntpd-q或者ntpdate[-b]time.edu.cn进行对时。使用ntpd进行时间同步时,应事先配置好ntp.conf文件。简单网络时间协议(SNTP)(RFC1769——SimpleNetworkTimeProtocol)本备忘录的状况:本备忘录为Internetcommunity提供了信息,但不规定任何一种类型的Internet标准。本备忘录的分发没有限制。概要本备忘录描述简单网络时间协议(SNTP),这是网络时间协议(NTP)的一个改写本,NTP协议适用于同步因特网上的计算机时钟。当不须要实现RFC1305所描述的NTP完全功能的情况下,可以使用SNTP。它能用单播方式(点对点)和广播方式(点对多点)操作。它也能在IP多播方式下操作(可提供这种服务的地方)。SNTP与当前及以前的NTP版本并没有大的不同。但它是更简单,是一个无状态的远程过程调用(RPC),其准确和可靠性相似于UDP/TIME协议在RFC868描述中所预期的。本备忘录淘汰相同的标题的RFC1361。它的目的是解释用广播方式操作的协议模式,提供某些地方的进一步说明并且改正一些印刷上的错误。在NTP版本3RFC1305中说明的工作机理对SNTP的实现不是完全需要的。本备忘录的分发没有限制。目录1.介绍22.工作模式与地址分配23.NTP时间戳格式34.NTP报文格式45.SNTP客户端操作66.SNTP服务器操作77.参考资料88.安全考虑99.作者的地址91.介绍RFC1305[MIL92]指定网络时间协议(NTP)来同步因特网上的计算机时钟。它提供了全面访问国家时间和频率传播服务的机制,组织时间同步子网并且为参加子网每一个地方时钟调整时间。在今天的因特网的大多数地方,NTP提供了1-50ms的精确度,精确度的大小取决于同步源和网络路径等特性。RFC1305指定了NTP协议机制中的事件,状态,传输功能和操作,另外,还有可选择的算法,它改进测时质量并且减少了一些同步源中可能存在的错误。为了获得因特网上主要路径的延时精确到毫秒级,使用一些复杂的算法或者他们的等价算法是必要的。但是,在许多场合这样的精确度是不要求,或许精确到秒已足够了。在这样的情况下,更简单的协议例如“时间协议”[POS83]已被使用。这些协议通过基于RPC交换:客户端请求此刻时间,然后服务器回传从某个已知时间点到现在的秒钟数。NTP被设计成了性能差异很大的客户端及服务器均能适用,且适用于客户端及服务器所在网路有大范围的网络延迟和抖动的情况。今天的因特网上的NTP同步子网的大多数用户使用一个软件包包括了一整套的NTP的选择和算法,是一个比较复杂,实时的应用系统。软件要适用于多种硬件平台:从巨型计算机到个人计算机。要在这样的范围都适用,它的庞大尺寸和复杂性就不适合于很多应用了。按照要求,探求一些可供选择的访问策略(使用适合于精确度要求不是很严格的简单软件)是有用的。本备忘录描述简单网络时间协议(SNTP),它是一个简化了的NTP服务器和NTP客户端策略。SNTP在协议实现上没有什么更改,在最近也不会有什么变动。访问范例与UDP/TIME协议是一致的,实际上,SNTP应该更容易适用于使用个人计算机的UDP/TIME客户。而且,SNTP也被设计在一个专门的服务器(包括一台集成的无线电时钟)里操作。由于在系统里的那些各种各样反应机制的设计和控制,交付调节时间精确到微秒是可能的。这样的专门设计是切实可行的。强烈建议SNTP仅仅在同步子网的末端被使用。SNTP客户端应该仅在子网的叶子(最高的阶层)操作并在配置过程中没有依靠其它NTP或者SNTP客户端来同步。SNTP服务器应该仅在子网的根(阶层1)操作并在配置过程中,除一台可靠的无线电时钟外中没有其它同步源。只有使用了有冗余的同步源及不同的子网路径及整套NTP实现中的crafted算法,主服务器通常期望的可靠性才有可能达到。这种做法使主同步源在无线电时钟通信失败或者交付了错误时间时,还能用到其它几个无线电时钟和通向其它主要服务器的备份路径。因此,应该仔细考虑客户端中SNTP的使用,而不是在主服务器里的NTP的使用。2.工作模式与地址分配象NTP一样,SNTP能在单播(点向点)或者广播(点对多点)模式中操作。单播客户端发送请求到服务器并且期望从那里得到答复,并且(可选的),得到有关服务器的往返传播延迟和本地时钟补偿。广播服务器周期性地送消息给一指定的IP广播地址或者IP多播地址,并且通常不期望从客户端得到请求,广播客户端监听地址但通常并不给服务器发请求。一些广播服务器可能选择对客户端作出反应请求以及发出未经请求广播消息;同时一些广播客户端可能会送请求仅为了确定在服务器和客户端之间的网络传播延迟。在单播方式下,客户端和服务器的IP地址按常规被分配。在广播方式下,服务器使用一指定的IP播送地址或者IP多播地址,以及指明的媒介访问播送地址,客户端要在这些地址上帧听。为此,IP广播地址将限制在一个单独的IP子网范围,因为路由器不传播IP广播数据报。就以太网而论,例如,以太网媒介访问广播地址(主机部分全部为1)被用于表示IP广播地址。另一方面,IP多播地址将广播的潜在有效范围扩展到整个因特网。其真实范围,组会员和路由由因特网组管理协议(IGMP)确定[DEE89],对于各种路由协议,超出了这份资料的讨论范围。就以太网而论,例如,以太网媒介访问播送地址(全部为1)要和分配的224.0.1.1的IP多播地址合用。除了IP地址规范和IGMP,在服务器操作IP广播地址或者IP多播地址没有什么不同。广播客户端帧听广播地址,例如在以太网情况下主机地址全部为1的。就广播地址的IP而论,没有更进一步规定的必要了。在IP多组广播情况下,主机可能需要实现IGMP,为的是让本地路由器把消息拦截后送到224.0.1.1多播组。这些考虑不属于这份资料的讨论范围。就当前指定的SNTP而论,其真正的弱点是多目广播客户端可能被一些行为不当或者敌对的在因特网别处的SNTP/NTP多播服务器攻击而瘫痪,因为目前全部这样服务器使用相同的IP多播地址:224.0.1.1组地址。所以有必要,存取控制要基于那些以客户端信任的服务器源地址,即客户端选择仅仅为自己所知的服务器。或者,按照惯列和非正式协议,全部NTP多播服务器现在在每条消息内应包括已用MD5加密的加密位,以便客户端确定消息没有在传输中被修改。SNTP客户端能实现那些必要加密和密钥分发计划在原则上是可能的,但是这在SNTP被设计成的那些简单的系统里不可能被考虑。考虑
本文标题:网络时间协议简介
链接地址:https://www.777doc.com/doc-2142733 .html