NTP是从时间协议(Time Protocol)和ICMP时间戳报文(ICMP TimeStamp Message)演变而来,在准确性和健壮性方面进行了特殊的设计,理论上精度可达十亿分之一秒。
NTP协议应用于分布式时间服务器和客户端之间,实现客户端和服务器的时间同步,从而使网络内所有设备的时钟基本保持一致。
NTP协议是基于UDP进行传输的,使用端口号为123。
字段名 | 长度 | 含义 |
---|---|---|
LI(Leap Indicator) | 2比特 | 这是一个两位的代码,表示在NTP时间标尺中将要插入的下一跳情况。值为“11”时表示告警状态,时钟不能被同步。 |
VN(Version Number) | 3比特 | NTP的版本号。 |
Mode | 3比特 | NTP的工作模式。不同值表示的含义如下:0:reserved,保留。1:symmetric active,主动对等体模式。2:symmetric passive,被动对等体模式。3:client,客户模式。4:server,服务器模式。5:broadcast,广播模式。6:reserved for NTP control messages,NTP控制报文。7:reserved for private use,内部使用预留。 |
Stratum | 8比特 | 时钟的层数,定义了时钟的准确度。层数为1的时钟准确度最高,从1到15依次递减。 |
Poll Interval | 8比特 | 轮询时间,即发送报文的最小间隔时间。 |
Precision | 8比特 | 时钟的精度。 |
Root Delay | 32比特 | 到主参考时钟的总往返延迟时间。 |
Root Dispersion | 32比特 | 本地时钟相对于主参考时钟的最大误差。 |
Reference Identifier | 32比特 | 标识特定参考时钟。 |
Reference Timestamp | 64比特 | 本地时钟最后一次被设定或更新的时间。如果值为0表示本地时钟从未被同步过。 |
Originate Timestamp | 64比特 | NTP报文离开源端时的本地时间。 |
Receive Timestamp | 64比特 | NTP报文到达目的端的本地时间。 |
Transmit Timestamp | 64比特 | 目的端应答报文离开服务器端的本地时间。 |
Authenticator | 96比特 | (可选)验证信息。 |
字段名 | 长度 | 含义 |
---|---|---|
0 | 2比特 | 保留位。NTP本身不做处理。 |
VN(Version Number) | 3比特 | NTP的版本号,目前值为3。 |
6 | 3比特 | 表明是控制报文。 |
REM | 3比特 | R:0表示命令,1表示响应。E:0表示发送正常响应,1表示发送错误响应。M:0表示最后一个分片,1表示其他。 |
Op | 5比特 | 操作码,表明命令的类型。 |
Sequence | 16比特 | 发送或接受到报文的顺序号。 |
Status | 16比特 | 表明当前系统的状态。 |
Association ID | 16比特 | 连接标示。 |
Offset | 16比特 | 偏移量。 |
Count | 16比特 | 数据域的长度。 |
Data | 最大468比特 | 包括发送报文或接受报文中的数据信息。 |
Padding | 16比特 | 填充字段。 |
Authenticator | 96比特 | (可选)验证信息。 |
文档编号 | 描述 |
---|---|
RFC 1095 | Network Time Protocol (Version 1) |
RFC 1119 | Network Time Protocol (Version 2) |
RFC 1305 | Network Time Protocol (Version 3) |
RFC 5905 | Network Time Protocol Version 4: Protocol and Algorithms Specification |
RFC 5906 | Network Time Protocol Version 4: Autokey Specification |