NTP协议格式(中文)
- 格式:docx
- 大小:24.02 KB
- 文档页数:14
NTP协议格式(中文) NTP协议格式 1. NTP时间戳格式 SNTP使用在RFC 1305 及其以前的版本所描述标准NTP时间戳的格式。与因特网标准标准 一致, NTP 数据被指定为整数或定点小数,位以big-endian风格从左边0位或者高位计数。 除非不这样指定,全部数量都将设成unsigned的类型,并且可能用一个在bit0前的隐含0 填充全部字段宽度。 因为SNTP时间戳是重要的数据和用来描述协议主要产品的,一个专门的时间戳格式已经 建立。 NTP用时间戳表示为一64 bits unsigned 定点数,以秒的形式从1900 年1月1 日 的0:0:0算起。整数部分在前32位里,后32bits(seconds Fraction)用以表示秒以下 的部分。在Seconds Fraction 部分,无意义的低位应该设置为0。这种格式把方便的多精 度算法和变换用于UDP/TIME 的表示(单位:秒),但使得转化为ICMP的时间戳消息表示法(单 位:毫秒)的过程变得复杂了。它代表的精度是大约是200 picoseconds,这应该足以满足 最高的要求了。 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | Seconds | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | Seconds Fraction (0-padded) | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2. NTP 报文格式 NTP 和SNTP 是用户数据报协议( UDP) 的客户端 [POS80 ],而UDP自己是网际协议( IP) [DAR81 ] 的客户端. IP 和UDP 报头的结构在被引用的指定资料里描述,这里就不更进一步 描述了。UDP的端口是123,UDP头中的源断口和目的断口都是一样的,保留的UDP头如规范 中所述。 以下是SNTP 报文格式的描述,它紧跟在IP 和UDP 报头之后。SNTP的消息格式与 RFC-1305中所描述的NTP格式是一致的,不同的地方是: 一些SNTP的数据域已被风装,也就是说已初始化为一些预定的值。NTP 消息的格式被显示如 下。 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |LI | VN |Mode | Stratum | Poll | Precision | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 根延迟 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 根差量 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 参考标识符 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | | | 参考时间戳(64) | | | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | | | 原始时间戳(64) | | | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | | | 接受时间戳 (64) | | | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | | | 传送时间戳(64) | | | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | | | | | 认证符(可选项) (96) | | | | | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - :如下一部分描述,在SNTP 里大多数这些字段被预规定的数据给赋初值。为完整起见,每个
字段的功能在下面被简要总结。 1. LI 闰秒标识器:这是一个二位码,预报当天最近的分钟里要被插入或删除的闰秒秒数。 用1/0表示,分别说明如下: (闰秒(rùn miǎo)是指为保持协调世界时接近于世界时时刻,由国际计量局统一
规定在年底或年中(也可能在季末)对协调世界时增加或减少1秒的调整。由于地 球自转的不均匀性和长期变慢性(主要由潮汐摩擦引起的),会使世界时(民用时) 和原子时之间相差超过到±0.9秒时,就把世界时向前拨1秒(负闰秒,最后一分钟 为59秒)或向后拨1秒(正闰秒,最后一分钟为61秒);闰秒一般加在公历年末 或公历六月末。2012年3月,中科院国家授时中心宣布我国7月1日进行闰秒调 整,届时将现7:59:60。) LI Value 含义 00 0 无预告 01 1 最近一分钟有61秒 10 2 最近一分钟有59秒 11 3 警告状态(时钟未同步) 2. VN 版本号:这是一个三bits的整数,表示NTP的版本号,现在为3。 3. Mode 模式:这是一个三bits的整数,表示模式,定义如下: mode 含义
1 2 保留对称性激活被动的对称性 3 4 5 6 7 客户端服务器广播为NTP控制性系保留为自用保留
在点对点模式下,客户端机在请求中设置此字段为3,服务器在回答时设置此字段为4;在 广播模式下,服务器在回答时设置此字段为5。 4. stratum(层):这是一个8bits的整数(无符号),表示本地时钟的层次水平,数值定 义如下: stratum 含义 0 未指定或难以获得 1 主要参考(如无线电时钟钟) 2.15 第二参考(通过NTP/SNTP) 16.255 保留 5. Poll 测试间隔:八位signed integer,表示连续信息之间的最大间隔,精确到秒的平 方及。本字段的值从4(16s)到14(16284s);然而,大多数应用使用6(64s)到10(1024s)。 6.Precision 精度:八位signed integer,表示本地时钟精度,精确到秒的平方级。值从 -6(主平)到-20(微妙级时钟)。 7. Root Delay根时延:32位带符号定点小数,表示在主参考源之间往返的总共时延,以 小数位后15~16bits。数值根据相关的时间与频率可正可负,从负的几毫秒到正的几百 毫秒。 8. Root Dispersion根离散:32位带符号定点小数,表示在主参考源有关的名义错误,以 小数位后15~16bits。范围:0~几百毫秒。 9. Reference Identifier参考时钟标识符:32bits,用来标识特殊的参考源。在stratum 0(未指定)或stratum 1(基本参考)的情况下,该字段以四个八位字节,左对齐, 零填充的string表示。当没有NTP枚举时,使用下列ASCII标识符: r阶层代码意思
1 pps 精度校准源,例如ATOM(原子钟),PPS代表( 每秒脉冲精度源),等等 1 service 除了一般的NTP报时服务外,例如ACTS (计算机自动化报时服务),TIME(UDP/Time协议), TSP(Unix 报时服务协议),DTSS. (数字化时间同步服务),等等 1 radio 一般的收音机服务,带有callsigns,例如CHU, DCF77, MSF, TDF, WWV, WWVB, WWVH,等等 1 nav 无线电导航系统,例如OMEG(欧米加导航系统), LORC(远距离无线电导航系统),等等 1 satellite 一般的卫星业务,例如GOES(地球同步轨道环境卫星), GPS(全球卫星定位服务),等等 2 address 二级参考(4个八位二进制字节表示的NTP服务器因特网 地址) ------------------------------------------------------------------------------- 10. 参考时间戳:64bits时间戳,本地时钟被修改的最新时间。 11. 原始时间戳:客户端发送的时间,64bits。 12. 接受时间戳:服务端接受到的时间,64bits。 13. 传送时间戳:服务端送出应答的时间,64bits。 14. 认证符(可选项):当NTP的认证机制已运行后,这个字段包含认证者的信息(参见 RFC1305 中的附件C)。在SNTP中本字段一般被来报输入消息所忽略,也不用在输出消 息中。 客户端操作 SNTP客户端与NTP/SNTP 服务器通信的模式是一个非持久状态的远程过程调用。在单播 方式,客户端发给服务器(方式3) 请求并且期望服务器答复 (方式4)。在广播方式,客户 端送并不请求只是等待一台或更多的服务器的广播消息(方式5) ,这取决于设置。根据客 户端和服务器设置,单播客户端和广播服务器通常在从64 给1024 s 的间隔里发送消息。 单播客户端初始化SNTP 报文首部,再把消息发送到服务器,然后从服务器回复的报文