1 NTP分析
表1 NTP演变过程 |
NTP版本 | 时间 | RFC文件编号 | 描述 |
---|---|---|---|
NTPv0[6] | 1985 | RFC958 | 1. 为ARPA网提供时间同步; 2. 它对本地时钟的误差估算和精密度等基本运算、参考时钟的特性、网络上的分组数据包及其消息格式进行了描述; 3. 不对任何频率误差进行补偿,也没有规定滤波和同步的算法。 |
NTPv1[7] | 1988 | RFC1059 | 1. 采用了Client/Server模式以及对称操作; 2. 它不支持鉴权和NTP的控制消息。 |
NTPv2[8] | 1989 | RFC1119 | 1. 介绍了NTP控制消息协议用于管理NTP服务器与客户机; 2. 介绍了基于对称密钥加密的密码认证方案。 |
NTPv3[9] | 1992 | RFC1305 | 1. 总结并综合了NTP先前版本和DEC公司推出的时间同步协议DTSS(Digital Time Synchronization Service); 2. 正式引入了校正原则,并改进了时钟选择和时钟滤波算法; 3. 引入了时间消息发送的广播模式。 |
NTPv4[10] | 2010 | RFC5905 | 1. 适用于IPv4和IPv6,它改进了时钟模型,在各种同步源和网络通路的情况下能够更精确地预测并调节频率和时间; 2. 提出了新算法以降低网络抖动和振荡器漂移的冲突,并加速时间同步收敛速度; 3. NTPv4报文中新加入了可扩展字段,还提供了关于自动配置,可靠性,降低互联网话务量和加强网络安全性的鉴权等方面的新特性; 4. 在LANs中同步精度能达到亚毫秒量级; 5. 无需给定服务器的配置,能适应动态服务器模式。 |
表2 不同时期NTP网络大小对比 |
作者 | 发表年份 | 网络大小 | 响应 |
---|---|---|---|
Mills | 1989 | 8455 | 946 |
Guyton | 1994 | 15000 | 7251 |
Mills | 1997 | — | 38722 |
Minar | 1999 | 647401 | 175527 |
Murta | 2005 | 1290819 | 147251 |
2 基于心跳检测的网络时间同步
2.1 心跳检测
2.2 源节点切换
2.3 时间偏差估计与修正
2.4 状态监控
3 仿真结果及分析
表3 源节点切换情况表 |
节点号 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
随机停止心跳周期 | 439 | 458 | 145 | 159 | 338 |
平均偏差/us | √ | 56.63 | 143.62 | 95.49 | 48.05 |
— | 8.74 | 95.66 | 47.49 | √ | |
— | √ | 85.17 | 38.94 | — | |
— | — | 48.32 | √ | — |