您好,欢迎进入北京泰福特电子科技有限公司官网

咨询服务热线

400-015-1230

NTP如何构建和维护网络时间同步(二)

发布时间:2022-04-11 13:50:28

NTP的性能

NTP如何调整系统的时间

  逐渐修正应用, 直到频率误差补偿,所以它可能需要长达三个小时 ;当然最终可实现的精度取决于所使用的时间源。基本上客户端没有比它的服务器端更准确。此外网络连接的质量也会影响最终的精度,缓慢且不可预测的网络延迟将会影响到时间同步。

  NTP维护服务器和客户端时差小于128ms。在互联网上不同网络延迟的典型精度范围约5ms to 100ms,。最近的一项调查表明,90%的NTP服务器网络延时低于100ms,约99%的对等体之间偏差小于1秒。

  在运行Linux 系统的intel处理器上,PPS的同步精度在50µs,稳定性优于0.1PPM。

  David Dalton 有相同的描述:“这大多数情况下取决于你的网络。当然,你可以让你的机器在几毫秒的彼此相互连接与正常10T以太网连接,而不是太多的路由器之间的跳转。如果所有的机器都在相同的安静的子网,NTP可以很容易地让他们在一个毫秒以下。但是如果你的网络拥挤,或者你有一个广播风暴(比如每秒1000广播数据包),这导致你的CPU平均负载超过100%,只能检查和丢弃广播数据包? 如果你的路由器失去了判断?您的本地系统时间可以漂移之外的“几毫秒”窗口的情况下。”

多久系统时钟更新一次?

  时间应该是一个连续和稳定的,ntpd很少更新时钟。但是为了修正时钟错误,时间更新经常被使用。如果adjtime()被使用,ntpd每秒钟将更新系统时钟。如果ntp_adjtime()被使用,操作系统可以自动补偿时钟错误,只需要极少的更新。

  NTP授时同步系统频率调整值多久更新?NTP是维持内部时钟的指标,如果时钟看起来稳定, 发生校正参数频率会更少。如果时钟不稳定,跟新校正参数会更频繁。使用锁相环技术(PLL),只要微小的变化就可以更长的时间。

  这里有个决定值poll adjust,通过ntpdcloopinfo命令进行查询。-30意味着减少轮询间隔(minpoll和maxpoll),而30意味着增加它的的范围内。这个值是看门狗定时器自上次更新的时间。

ntpdc> loopinfo

offset: -0.000102 s

frequency: 16.795 ppm

poll adjust: 6

watchdog timer: 63 s

  ntpd的最新版本,似乎更新调整值的频率更低,即使参考时间来源查询更加频繁,当地的系统时钟调整较少。这些误差估计有多可靠在理论上维护时钟误差的数值,实际上一些软件缺陷导致这些数字有问题。例如新内核时钟模型对纳秒分辨率的处理,是基于过于乐观的时钟偏移估计。这个bug已经在2000年8月修复,但不同版本的NTP守护进程对相同的硬件可能产生不同的估计。

客户数量的限制是什么?

  限制实际上取决于几个因素,如主处理器的速度和网络带宽,但限制是相当多的。 Terje Mathisen曾经提出一个计算:2 packets/256 seconds * 500 K machines ->4 K packets/second (half in each direction).数据包大小接近最小,甚至一定小于128字节密码认证: 4 K * 128 -> 512 KB/s.所有只要你有一个100 Mbit / s全双工网络中央交换机,平均网络负载是最大量的2 - 3%NTP的稳定性;什么是层次层次是同步的测量距离,是比延时和抖动更静态的测量值。主要是从客户端到达参考源的数量,因此参考源处于0层。时钟服务器一般在一层。在网络中非有效的NTP信息处备设置也被设置为0层。

  服务器同步到n层时间源,将自身设置为运行在层次n+ 1。层次的上限为15。层次的目的是为了采用更低的服务器层,避免同步循环。一般10层以后的时间源为非可信时间源,许多设备在出厂时被设置为10层。如何避免同步循环服务器能对来自同一个时间源不同路径的时间进行识别。这可以避免可能导致的过度错误积累。

  为避免重复将互联网地址的源标识符用作参考,引用标识符被限制在32位,用于形成一个无环同步网络。(参见 Q: 5.1.4.1.)

  该算法更准确地找到最短路径生成树和基于同步跳数距离测量。引用标识符提供了额外的信息,以保证相邻循环条件下的拓扑迅速变化。这是一个任何教科书上众所周知的计算机网络路由算法问题。IPv6用于相同的目的引用ID字段时间戳。

NTP的同步频率minpoll和maxpoll允许的范围是什么?

  NTP重新启动后默认轮询值是由minpoll指定,默认值minpoll 为6(2^6=64秒)和maxpoll 为10(2^10=1024秒)。xntp3 - 5.93 - e的最小和最大允许范围值是4(2^4=16秒)和14(2^14=4.5小时)。实际上当轮询间隔大于1024秒时,内核频率就转向FLL模式。

  ntp-4.0.99f最小和最大允许范围值是4(2^4=16秒)和17(2^17=1.5天)。这些值来自ntp.h文件。如果更新间隔时间超过2048秒,修改后的内核频率会自动切换到FLL模式。

最好的轮询间隔是什么?

  实际上这个没答案 :更短的轮询间隔更新,将对抖动更加敏感和更快发现随机错误。更长时间的间隔,可能需要更大的修正与更常时间重新发现重大错误。然而这两者之间似乎有一个最佳的。常见操作系统时钟这个值是接近默认最大轮询时间1024秒。

操作系统如何调整时间

  为了保持正确的时间, 必须使用xntpd调整系统时钟。不同的操作系统提供不同的手段,但是下面列出最普遍的。

基本上有四个系统调可以实现NTP科学的驯服系统时钟:settimeofday(2) step 一步到位调整时间。这种方法使用在如果时间远超过128毫秒。

  adjtime(2) slew平缓调整时间。调整时间意味着改变虚拟软件时钟的时钟频率使其更快或更慢,直到达到校正的请求。调整偏差较大的时间可能需要一段时间。例如标准Linux调整时间的速度约每秒0.5毫秒。

ntp_adjtime(2) 控制几个参数的软件时钟(也称为内核驯服),包括如下几个方面。

  调整软件时钟偏移,可能纠正虚拟频率直接调整虚拟软件时钟频率启用或禁用PPS事件处理闰秒的控制处理读取和设置一些相关特征值的时钟hardpps(),它是一个函数,只从一个中断服务例程调用操作系统。如果启用hardpps()将更快的调整频率和校正内核时钟偏差,以适应外部信号 。


  • 联系方式
  • 传 真:86-10-82782026
  • 电 话:400-015-1230
  • 地 址:北京市海淀区北清路68号院用友软件园北区17号楼三层
在线咨询

咨询电话:

400-015-1230

  • 微信扫码 关注我们

Copyright © 2002-2035 北京泰福特电子科技有限公司 版权所有 备案号:京ICP备12028220号-1
京公网安备 11010802025976号

扫一扫咨询微信客服

18519396506
Powered by RRZCMS