NTP协议详解
采用分层(Stratum)的方法来定义时钟的准确性,可以迅速同步网络中各台设备的时间。 支持访问控制和MD5 验证。 支持采用单播、组播或广播方式发送协议报文。
NTP 的实现 NTP 实现过程如图1所示。ME60A 和ME60B 通过广域网相连,它们都有自己独立的系统时钟,通过NTP 实现系统时钟自动同步。 作如下假设: 在ME60A 和ME60B 的系统时钟同步之前,ME60A 的时钟设定为10:00:00am,ME60B 的时钟设定为11:00:00am。 ME60B 作为NTP 时间服务器,ME60A 的时钟与ME60B 的时钟同步。
关于本章
介绍了NTP 的概念、原理及华为的实现和应用。
3.1 NTP 协议概述
介绍NTP 协议的基本概念。
3.2 NTP 协议原理
介绍NTP 协议的实现原理。
3.3 NTP 的应用
介绍NTP 协议在实际中的应用。
3.4 Biblioteka Baidu考资料清单
介绍本文档所用到的参考资料。
3.1 NTP 协议概述
介绍NTP 协议的基本概念。 3.1.1 NTP 简介 3.1.2 NTP 协议的基本概念
3.1.1 NTP 简介
NTP 的引入 NTP 是从时间协议(Time Protocol)和ICMP 时间戳报文(ICMP TimeStamp Message)演变而来,在准确性和健壮性方面进行了特殊的设计,理论上精度可达十亿
3.2 NTP 协议原理
介绍NTP 协议的实现原理。 3.2.1 NTP 的实现模型 3.2.2 网络结构 3.2.3 NTP 报文格式 3.2.4 NTP 的工作模式 3.2.5 NTP 事件处理 3.2.6 NTP 的动态连接和静态连接 3.2.7 NTP 访问控制
3.2.1 NTP 的实现模型
说明
当网络内存在多台时间服务器时,可以通过选择算法综合各时间服务器的层数和时间偏移量等,来提高本地时钟的准确性。
NTP 协议是基于UDP 进行传输的,使用端口号为123。NTP 中没有提供对等体确定或有效回路管理的机制,数据的完整性通过IP 和UDP 的校验和来保证。重发检测 由处理报文算法实现。 NTP 的优势
时钟偏移量
时钟偏移量是本地时钟与参考时钟之间的时间差。在数值上等于将本地时钟调节到与所选参考时钟一致所要调节的量。 往返延迟
往返延迟是客户端收回NTP 报文的时刻,与发出该NTP 报文的时刻之间的时间差。它规定了本地时钟在指定时间内将一条信息发送到参考时钟的能力。 离差
离差是本地时钟相对于参考时钟的最大误差。 层数
3.1.2 NTP 协议的基本概念
时间戳 NTP 时间戳由64 位无符号定点数表示,这个定点数是一个相对于1900 年1 月1 日0 点的秒数,整数部分位于前32 位,小数部分位于后32 位。 Originate Timestamp(peer.xmt, pkt.xmt):表示NTP 报文离开发送端时的当地时间(如T1),时间戳格式。 Receive Timestamp(peer.rec, pkt.rec):表示NTP 报文到达远端对等体时的当地时间(如T2),时间戳格式。当远端对等体不可达时,该值被置为0。 Transmit Timestamp (peer.org, pkt.org):表示远端对等体返回NTP 报文时的当地时间(如T3),时间戳格式。当对等体不可达时,该值被置为0。 Reference Timestamp(sys.reftime, peer.reftime, pkt.reftime):表示NTP 报文回到发送端时的当地时间(如T4),时间戳格式。如果本地时钟从未被同步过,值 为0。
层数是对始终同步情况的一个分级标准,代表了一个时钟的精确度,取值范围1 ~ 16,数值越小,精确度越高。1 表示时钟准确度最高,16 表示未同步。 时钟过滤
时钟过滤针对本地时钟的同一个对等体,用来从这个给定的对等体选择最好的时间样本。 时钟选择
时钟选择是一种选择参考时钟的方法,基于时钟选择算法。适用于客户端同时存在多个远端对等体的情况。 比如:一个客户端配置了多个服务器端和多个对等体端。客户端分别向各个服务器端和对等体端发送NTP 报文。在接收到返回的NTP 报文后或定时器时间到时,利用 时钟选择算法选出一个最优的,作为参考时钟进行同步。
分之一秒。 NTP 协议应用于分布式时间服务器和客户端之间,实现客户端和服务器的时间同步,从而使网络内所有设备的时钟基本保持一致。服务器和客户端的概念是相对而言
的,提供时间标准的设备称为时间服务器,接收时间同步的设备称为客户端。 NTP 协议包含如下信息:
本地时钟和时间服务器的特征 估计本地时钟和时间服务器的误差的方法 NTP 协议实现过程中用到的时钟过滤、时钟选择等算法。
至此,ME60A 拥有足够信息来计算以下两个重要参数: NTP 消息来回一个周期的时延:Delay=(T4-T1)-(T3-T2)。 ME60A 相对ME60B 的时间差:Offset=((T2-T1)+(T3-T4))/2。
ME60A 根据这些信息来设定自己的时钟,实现与ME60B 的时钟同步。 说明 以上是NTP 工作原理的简略描述,在RFC1305 中,NTP 使用复杂的算法来确保时钟同步的精确性。
数据包在ME60A 和ME60B 之间单向传输需要1 秒。 ME60A 和ME60B 处理NTP 数据包的时间都是1 秒。 图1 NTP 实现图
系统时钟同步的工作过程如下: 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)。