Leap Indicator(LI)
闰秒指示符,这是一个2位的代码,用于警示在当天的最后一分钟里插入或删除的闰秒。取值如下:
0 无预告
1 最近一分钟有61秒
2 最近一分钟有59秒
3 警告状态(时钟未同步)
Version Number(VN)
版本号,这是一个3位的整数,用于表示NTP的版本。
Mode
模式,这是一个3位的整数,表示模式,值定义如下:
0 保留
1 对称主动
2 对称被动
3 客户端
4 服务器端
5 广播
6 为NTP控制控制消息
7 为自用保留
Stratum
本地时钟层级,这是一个八位无符号整数,表示本地时钟的层级,其值定义如下:
0 未定义或难以获得
1 主要参考(如无线电时钟钟,校正的院子时钟)
2-255 第二参考(通过NTP或SNTP)
Poll
轮询间隔,这是一个8位有符号整数,用于表示连续消息之间的最大间隔,以最接近2的N次幂来表示。如值为6表示2^6=64。
Precision
本地时钟精度精度,这是一个8位有符号整数,用于表示本地时钟精度,以最接近2的N次幂来表示。
Root Delay
这是一个32位有符号定点数,表示主要参考源的总往返时延,以秒为单位。该变量可以为正值和负值,具体取决于时间精度和偏移。
Root Dispersion
这是一个32位有符号定点数,表示相对于主参考源的最大误差,以秒为单位,在15和16位之间。通常在该字段中出现的值范围为0到几百毫秒
Reference Identifier
这是一个标识特定参考源的32位位串。在NTP版本3或版本4层级0或层级1服务器的情况下,这是一个4字符ASCII字符串,左对齐并且以0填充到32位。在NTP版本3辅助服务器中,这是参考源的32位IPv4地址。
Reference Timestamp
这是以64位时间戳格式表示的上次设置或更正的本地时钟时间。
Original Timestamp
这是以64位时间戳格式表示的请求离开客户端的时间。
Receive Timestamp
这是以64位时间戳格式表示的请求到达服务器端的时间。
Transmit Timestamp
这是以64位时间戳格式表示的应答离开服务器端的时间。
Authentication
认证信息。
②NTP时间戳
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Integer Part |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Fraction Part |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
NTP时间戳使用的是自1970-01-01所经过的秒数(单位为秒),它分为整数部分和小数部分。NTP时间戳整数部分与ICMP时间戳消息所使用的时间戳格式整数部分一致,但小数部分却是不同的。
NTP客户端根据NTP报文中的时间戳计算客户端相对于服务器的往返时延d和本地时钟偏移t :
d = (T4 - T1) - (T2 - T3)
t = ((T2 - T1) + (T3 - T4)) / 2
T1/T2/T3/T4分别为四个时间戳:
Originate Timestamp T1 客户端发送时间请求的时间
Receive Timestamp T2 服务器收到时间请求的时间
Transmit Timestamp T3 服务器发送时间回复的时间
Destination Timestamp T4 客户端收到时间回复的时间