您好,欢迎访问三七文档
关于本章介绍了NTP的概念、原理及华为的实现和应用。3.1NTP协议概述介绍NTP协议的基本概念。3.2NTP协议原理介绍NTP协议的实现原理。3.3NTP的应用介绍NTP协议在实际中的应用。3.4参考资料清单介绍本文档所用到的参考资料。3.1NTP协议概述介绍NTP协议的基本概念。3.1.1NTP简介3.1.2NTP协议的基本概念3.1.1NTP简介NTP的引入NTP是从时间协议(TimeProtocol)和ICMP时间戳报文(ICMPTimeStampMessage)演变而来,在准确性和健壮性方面进行了特殊的设计,理论上精度可达十亿分之一秒。NTP协议应用于分布式时间服务器和客户端之间,实现客户端和服务器的时间同步,从而使网络内所有设备的时钟基本保持一致。服务器和客户端的概念是相对而言的,提供时间标准的设备称为时间服务器,接收时间同步的设备称为客户端。NTP协议包含如下信息:本地时钟和时间服务器的特征估计本地时钟和时间服务器的误差的方法NTP协议实现过程中用到的时钟过滤、时钟选择等算法。说明当网络内存在多台时间服务器时,可以通过选择算法综合各时间服务器的层数和时间偏移量等,来提高本地时钟的准确性。NTP协议是基于UDP进行传输的,使用端口号为123。NTP中没有提供对等体确定或有效回路管理的机制,数据的完整性通过IP和UDP的校验和来保证。重发检测由处理报文算法实现。NTP的优势采用分层(Stratum)的方法来定义时钟的准确性,可以迅速同步网络中各台设备的时间。支持访问控制和MD5验证。支持采用单播、组播或广播方式发送协议报文。NTP的实现NTP实现过程如图1所示。ME60A和ME60B通过广域网相连,它们都有自己独立的系统时钟,通过NTP实现系统时钟自动同步。作如下假设:在ME60A和ME60B的系统时钟同步之前,ME60A的时钟设定为10:00:00am,ME60B的时钟设定为11:00:00am。ME60B作为NTP时间服务器,ME60A的时钟与ME60B的时钟同步。数据包在ME60A和ME60B之间单向传输需要1秒。ME60A和ME60B处理NTP数据包的时间都是1秒。图1NTP实现图系统时钟同步的工作过程如下:1.ME60A发送一个NTP报文给ME60B,该报文中带有它离开ME60A时的时间戳10:00:00am(T1)。2.此NTP报文到达ME60B时,ME60B加上到达时间戳11:00:01am(T2)。3.此NTP报文离开ME60B时,ME60B再加上离开时间戳11:00:02am(T3)。4.ME60A接收到该响应报文时,加上新的时间戳10:00:03am(T4)。至此,ME60A拥有足够信息来计算以下两个重要参数:NTP消息来回一个周期的时延:Delay=(T4-T1)-(T3-T2)。ME60A相对ME60B的时间差:Offset=((T2-T1)+(T3-T4))/2。ME60A根据这些信息来设定自己的时钟,实现与ME60B的时钟同步。说明以上是NTP工作原理的简略描述,在RFC1305中,NTP使用复杂的算法来确保时钟同步的精确性。3.1.2NTP协议的基本概念时间戳NTP时间戳由64位无符号定点数表示,这个定点数是一个相对于1900年1月1日0点的秒数,整数部分位于前32位,小数部分位于后32位。OriginateTimestamp(peer.xmt,pkt.xmt):表示NTP报文离开发送端时的当地时间(如T1),时间戳格式。ReceiveTimestamp(peer.rec,pkt.rec):表示NTP报文到达远端对等体时的当地时间(如T2),时间戳格式。当远端对等体不可达时,该值被置为0。TransmitTimestamp(peer.org,pkt.org):表示远端对等体返回NTP报文时的当地时间(如T3),时间戳格式。当对等体不可达时,该值被置为0。ReferenceTimestamp(sys.reftime,peer.reftime,pkt.reftime):表示NTP报文回到发送端时的当地时间(如T4),时间戳格式。如果本地时钟从未被同步过,值为0。时钟偏移量时钟偏移量是本地时钟与参考时钟之间的时间差。在数值上等于将本地时钟调节到与所选参考时钟一致所要调节的量。往返延迟往返延迟是客户端收回NTP报文的时刻,与发出该NTP报文的时刻之间的时间差。它规定了本地时钟在指定时间内将一条信息发送到参考时钟的能力。离差离差是本地时钟相对于参考时钟的最大误差。层数层数是对始终同步情况的一个分级标准,代表了一个时钟的精确度,取值范围1~16,数值越小,精确度越高。1表示时钟准确度最高,16表示未同步。时钟过滤时钟过滤针对本地时钟的同一个对等体,用来从这个给定的对等体选择最好的时间样本。时钟选择时钟选择是一种选择参考时钟的方法,基于时钟选择算法。适用于客户端同时存在多个远端对等体的情况。比如:一个客户端配置了多个服务器端和多个对等体端。客户端分别向各个服务器端和对等体端发送NTP报文。在接收到返回的NTP报文后或定时器时间到时,利用时钟选择算法选出一个最优的,作为参考时钟进行同步。3.2NTP协议原理介绍NTP协议的实现原理。3.2.1NTP的实现模型3.2.2网络结构3.2.3NTP报文格式3.2.4NTP的工作模式3.2.5NTP事件处理3.2.6NTP的动态连接和静态连接3.2.7NTP访问控制3.2.1NTP的实现模型客户端设备为每个远端对等体运行三个进程,分别为:发送进程、接收进程、更新进程。这三个进程操作数据文件中的同一分块,通过报文传送系统互相连接。当一个客户端设备同时存在多个对等体时,会在数据文件中划分出多个区域,每一个对等体对应一个特定的区域。NTP的实现模型如图2所示。图2NTP实现模型发送进程发送进程由定时器控制,收集数据文件中的信息并向远端对等体发送NTP报文。每个发出的NTP报文中都包含时间戳,以及确定层次和管理关联所必须的信息。报文发送速度取决于当地时钟和远端对等体所需要的准确度。接收进程接收进程接收NTP报文(也可能包括其它协议的报文),并收集来自与主机直连的RadioClocks的信息。当接收到一个NTP的回应报文时,接收进程根据报文中携带的信息,计算出本地时钟和远端对等体时钟间的偏移量,并将其与对确定误差和对等体选择有用的信息一起写进数据文件。更新进程在接收到一个NTP的回应报文后,处理来自每一个对等体的偏移数据,并用特定的选择算法选择出一个最优的对等体。这步操作可能包括对少量对等体的多次观察,或者对许多对等体的少量观察。这取决于所需要的准确度。本地时钟进程本地时钟为各项系统进程提供了稳定的时间信息、并为网络中的其它用户提供了时钟参考。根据更新进程中产生的偏移数据,使用特定方法对本地时钟的相位和频率进行调节。常用的调节方法有:对本地时钟进行一步更新。对本地时钟进行渐进的相位调节使偏差逐步较少到零。3.2.2网络结构如图3所示,同步子网由主时间服务器、二级时间服务器、客户端和它们之间互连的传输路径组成。图3NTP网络结构主时间服务器直接同步到主参考时钟,主参考时钟通常是RadioClock或卫星定位系统等。二级时间服务器通过网路中的主时间服务器或者其它二级服务器取得同步。二级时间服务器通过NTP将时间信息传送到局域网内部的其它主机。在正常情况下,同步子网中的主服务器和次级服务器呈现出一种分层主从结构,在这种分层结构中,主服务器位于根部,次级服务器向叶子节点靠近,层数递增,准确性递减。随着层数从1开始递增,可获得的样本的准确度逐层降低,降低的程度取决于网络路径和本地时钟的稳定性。为了避免对每一特定结构进行误差估计时所必须的单调乏味的计算,采用根据相对于同步子网的根的延迟和离差按比例计算平均度量误差非常有用。这种设计的结果是,当一台或多台主/次级服务器或它们之间的网络路径发生故障时,子网的分层主从分层结构将自动发生重构以获得最精确和最可靠的时间;当子网中所有的正常情况下的主服务器都失效,一台或多台备用主服务器继续运行。然而,当子网中所有的主服务器都失效时,其它次级服务器将在它们内部达到同步,这时接近达到预先选择的最大值“极限值”。当一台服务器通向各条路径的距离都达到极限值时,这台服务器将脱离子网,自动运行在它最后一次确定的时间和频率。由于这些计算精度很高,尤其是频率,所以当一台具有比较稳定的振荡器的服务器长时间脱离子网时,它的计时误差可以保持在一天不大于几毫秒。当有多台主服务器时,通过算法来选择最小同步距离的服务器。但是,当这些主服务器处于大致相同的距离时,可能会是在它们中间进行随机选择。如果任何两台主服务器之间的偏差与同步距离相比较小,则使用随机选择将不会降低准确性如果任何两台主服务器之间的偏差与同步偏差量相比较大时,则建议使用过滤算法和选择算法,在可利用的服务器中选择最好的,丢弃较差的服务器3.2.3NTP报文格式NTP数据报文和控制报文都是封装在UDP报文中。NTP数据报文如图4所示。图4NTP数据报文表1NTP数据报文字段含义字段名长度含义LI(LeapIndicator)2bits值为“11”时表示告警状态,时钟不能被同步。为其他值时NTP本身不做处理。VN(VersionNumber)3bitsNTP的版本号,目前值为3。Mode3bitsNTP的工作模式。不同值表示的含义如下:0:reserved,保留。1:symmetricactive,主动对等体模式。2:symmetricpassive,被动对等体模式。3:client,客户模式。4:server,服务器模式。5:broadcast,广播模式。6:reservedforNTPcontrolmessages,NTP控制报文。7:reservedforprivateuse,内部使用预留。Stratum8bits时钟的层数,定义了时钟的准确度。层数为1的时钟准确度最高,从1到15依次递减。PollInterval8bits轮询时间,即发送报文的最小间隔时间。Precision8bits时钟的精度。RootDelay32bits到主参考时钟的总往返延迟时间。RootDispersion32bits本地时钟相对于主参考时钟的最大误差。ReferenceIdentifier32bits标识特定参考时钟。ReferenceTimestamp64bits本地时钟最后一次被设定或更新的时间。如果值为0表示本地时钟从未被同步过。OriginateTimestamp64bitsNTP报文离开源端时的本地时间。ReceiveTimestamp64bitsNTP报文到达目的端的本地时间。TransmitTimestamp64bits目的端应答报文离开服务器端的本地时间。Authenticator96bits(可选)验证信息。NTP控制报文格式如图5所示。图5NTP控制报文表2NTP控制报文字段含义3.2.4NTP的工作模式NTP连接可以运行4种工作模式:对等体模式、客户/服务器模式、广播模式和组播模式。对等体模式对等体模式下,主动对等体和被动对等体可以互相同步,等级低(层数大)的对等体向等级高(层数小)的对等体同步。主动对等体:运行在这一模式下的主机定期发送报文,不考虑它的对等体是否可达及对等体的层数。运行在这一模式下的主机可以向对方提供同步信息,但可以依照对方的时间信息同步本地时钟。主动对等体模式运行在同步子网中比较接近叶子节点的时间服务器(层数较高)上。一种比较可靠的时间服务:在本机的同一层配一个对等体,在本机的上一层(层数小一层)配两台对等体。在这种模式下轮询的频率就变得不太重要,即使是在连接失败错误的报文被返回的情况下也不会对本地时钟有太大的影响。被动对等体:运行在这一模式的主机接收并回应报文。运行在被动对等体模式的主机可以向对方提供同步信息,但可以依照对方的时间信息同步本地时钟。运行被动对等体模式的必备条件:本机接收的报文来自一个运行在主动对等体模式下的对等体,且该对等体的层数等于或低于本机并路由可
本文标题:NTP协议详解
链接地址:https://www.777doc.com/doc-4063370 .html