NTP是怎样搭建和维护网络时间同步的
时间:2018-05-14 发布者:中新创 浏览次数:次
NTP是怎样搭建和维护网络时间同步的,想必人们对这个问题都很关注,为了解决大家的疑惑,下面小编整理了一些NTP是怎样搭建和维护网络时间同步的相关内容,供大家参考!希望对大家有所作用。
一、NTP的性能
1.1 NTP如何调整系统的时间
逐渐修正应用, 直到频率误差补偿,所以它可能需要长达三个小时 (见图3)。
当然可实现的精度取决于所使用的时间源。基本上客户端没有比它的服务器端更准确。此外网络连接的质量也会影响精度,缓慢且不可预测的网络延迟将会影响到时间同步。
NTP维护服务器和客户端时差小于128 ms。在互联网上不同网络延迟的典型精度范围约5ms to 100ms,。近期的一项调查表明,90%的NTP服务器网络延时低于100ms,约99%的对等体之间偏差小于1秒。
在运行Linux 系统的intel处理器上,PPS的同步精度在50?s,稳定性优于0.1 PPM。
David Dalton 有相同的描述:“这大多数情况下取决于你的网络。当然,你可以让你的机器在几毫秒的彼此相互连接与正常10T以太网连接,而不是太多的路由器之间的跳转。如果所有的机器都在相同的安静的子网,NTP可以很容易地让他们在一个毫秒以下。但是如果你的网络拥挤,或者你有一个广播风暴(比如每秒1000广播数据包),这导致你的CPU平均负载超过,只能检查和丢弃广播数据包? 如果你的路由器失去了判断?您的本地系统时间可以漂移之外的“几毫秒”窗口的情况下。”
1.2多久系统时钟更新一次?
时间应该是一个连续和稳定的,ntpd很少更新时钟。但是为了修正时钟错误,时间更新经常被使用。如果adjtime()被使用,ntpd每秒钟将更新系统时钟。如果ntp_adjtime()被使用,操作系统可以自动补偿时钟错误,只需要极少的更新。
1.3频率调整值多久更新?
NTP是维持内部时钟的指标,如果时钟看起来稳定, 发生校正参数频率会更少。如果时钟不稳定,跟新校正参数会更频繁。使用锁相环技术(PLL),只要微小的变化就可以更长的时间。
这里有个决定值poll adjust,通过ntpdc loopinfo命令进行查询。-30意味着减少轮询间隔(minpoll和maxpoll),而30意味着增加它的的范围内。这个值是看门狗定时器自上次更新的时间。
ntpdc> loopinfo
offset: -0.000102
frequency: 16.795 ppm
poll adjust: 6
watchdog timer: 63 s
比如ntpd4.1.0似乎更新调整值的频率更低,即使参考时间来源查询更加频繁,当地的系统时钟调整较少。
1.4这些误差估计有多可靠
在理论上维护时钟误差的估计,实际上一些软件缺陷导致这些数字有问题。例如新内核时钟模型对纳秒分辨率的处理,是基于过于乐观的时钟偏移估计。这个bug已经在2000年8月修复,但不同版本的NTP守护进程对相同的硬件可能产生不同的估计。
1.5客户数量的限制是什么?
限制实际上取决于几个因素,如主处理器的速度和网络带宽,但限制是相当多的。 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的稳定性
2.1什么是层次
层次是同步的测量距离,是比延时和抖动更静态的测量值。主要是从客户端到达参考源的数量,因此参考源处于0层。时钟服务器一般在一层。在网络中非有效的NTP信息处备设置也被设置为0层。
服务器同步到n层时间源,将自身设置为运行在层次n + 1。层次的上限为15。层次的目的是为了采用更低的服务器层,避免同步循环。
一般10层以后的时间源为非可信时间源,许多设备在出厂时被设置为10层。
2.2如何避免同步循环
服务器能对来自同一个时间源不同路径的时间进行识别。这可以避免可能导致的过度错误积累。
为避免重复将互联网地址的源标识符用作参考,引用标识符被限制在32位,用于形成一个无环同步网络。(参见 Q: 5.1.4.1.)
该算法准确地找到短路径生成树和基于同步跳数距离测量。引用标识符提供了额外的信息,以保证相邻循环条件下的拓扑迅速变化。这是一个任何教科书上众所周知的计算机网络路由算法问题。IPv6用于相同的目的引用ID字段时间戳。
三、NTP的同步频率
3.1minpoll和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模式。
3.2较好的轮询间隔是什么?
实际上这个没答案 :更短的轮询间隔更新,将对抖动更加敏感和更快发现随机错误。更长时间的间隔,可能需要更大的修正与更常时间重新发现重大错误。然而这两者之间似乎有一个较佳的。常见操作系统时钟这个值是接近默认大轮询时间1024秒
四、操作系统如何调整时间
为了保持正确的时间, 必须使用xntpd调整系统时钟。不同的操作系统提供不同的手段,但是下面列出较普遍的。
基本上有四个系统调可以实现NTP科学的驯服系统时钟:
lsettimeofday(2) step 一步到位调整时间。这种方法使用在如果时间远超过128毫秒。
ladjtime(2) slew平缓调整时间。调整时间意味着改变虚拟软件时钟的时钟频率使其更快或更慢,直到达到校正的请求。调整偏差较大的时间可能需要一段时间。例如标准Linux调整时间的速度约每秒0.5毫秒。
lntp_adjtime(2) 控制几个参数的软件时钟(也称为内核驯服),包括如下几个方面。
调整软件时钟偏移,可能纠正虚拟频率
直接调整虚拟软件时钟频率
启用或禁用PPS事件处理
闰秒的控制处理
读取和设置一些相关特征值的时钟
lhardpps(),它是一个函数,只从一个中断服务例程调用操作系统。如果启用hardpps()将更快的调整频率和校正内核时钟偏差,以适应外部信号(See also Section 6.2.4)
以上关于NTP是怎样搭建和维护网络时间同步的的介绍已经给您分析详细了,望你参考。
下一篇:网络北斗授时服务器和生活的相关性