NTP net working protocol网络时间同步协议概述
- 同步互联网中主机和路由器之间的时钟
- 在局域网上提供亚毫秒精度,在广域网上提供几十毫秒精度
- 冗余服务器和多种网络路径保证了可靠性
- 工程算法用于减少抖动,缓解多个源和避免不正确操作的服务器
How NTP works
- 多个服务器/对等体提供冗余和多样性
- 时钟滤波器从八个时钟偏移样本的窗口中选择最佳
- 交叉和聚类算法选择同伴的最佳子集并丢弃异常值
- 组合算法计算偏移量的加权平均值以获得最佳精度
- 环路滤波器和本地时钟振荡器(LCO)实现混合相位/锁频(P/F)反馈回路,以减少抖动和徘
Clock filter algorithm
- 最精确的时钟偏移θ在最低延迟δ处测量(楔形图的顶点)
- 相位色散εr是最近8个样本的偏移差的加权平均值,用作误差估计
- 频率色散εf,表示时钟读数和频率容差误差-用于距离度量
- 同步距离λ=εf+ δ//2作为距离度量和最大误差界,因为正确的时间θ必须在θ-λ<θ<θ+λ的范围内
Intersection algorithm
- DTS正确性区间是包含点的交点正确间隔的最大数目
- NTP算法要求间隔的中点在交集处
- 初始化,将假指示器f和计数器c,d置为0
- 从最左边的端点开始扫描:为每一个较低的端点加1到c。每个上端点减去1,每个中点加1
- If c ≥ m − f and d ≥ m − f,宣布成功并退出程序 - 从最右端点开始做同样的事情.
- 如果未宣布成功,则 f 增加1,然后再试一次
- 如果f <= m/2,则宣告失败
- 初始化,将假指示器f和计数器c,d置为0
Clock discipline algorithm
- Vd是NTP与LCO相位差的函数
- Vs取决于所选的级对时钟滤波器移位寄存器
- X和y分别是由预测函数计算的相位更新和频率更新
- 时钟调整进程每秒运行一次以计算Vc,控制本地时钟振荡器的频率将
- LCO相位与NTP相位进行比较,以关闭反馈回路
关于NTP协议
NTP(Network Time Protocol)是一种用于同步计算机和网络设备时钟的协议。NTP时间源是指提供准确时间的服务器或设备,用于同步其他设备的时钟。
什么是NTP时间源
NTP时间源是一个提供准确时间的服务器或设备,它通过NTP协议向其他设备提供时间同步服务。NTP时间源可以是原子钟、GPS接收器、其他NTP服务器或互联网上的公共NTP服务器。
怎么选择最合适的NTP时间源
选择合适的NTP时间源需要考虑准确性、可靠性和可用性。
原子钟是最准确的时间源,但成本较高。GPS接收器也提供准确的时间,但需要在能接收到GPS信号的地方使用。公共NTP服务器是一种常见的选择,但需要确保其可靠性和可用性。
如何配置NTP时间源
配置NTP时间源通常需要在设备上设置NTP服务器的IP地址或域名。设备将通过NTP协议与时间源进行通信,以获取准确的时间。具体的配置方法取决于设备的操作系统和网络设备类型。
公共ntp服务器有哪些
互联网上有许多公共NTP服务器可供选择。一些常见的公共NTP服务器包括
time.google.com、time.windows.com、time.apple.com等。
您可以在互联网上搜索并找到适合您的地理位置和需求的公共NTP服务器。
如何确保NTP时间源的准确性?
为了确保NTP时间源的准确性,您应该选择可靠的时间源,如原子钟或可靠的公共NTP服务器。此外,定期检查和更新设备的时间设置也是必要的。如果您的网络需要更高的时间准确性,您还可以考虑使用专用的时间同步设备
chrony配置多个ntp时间源,chrony如何选择时间源?
当配置多个NTP时间源时,Chrony会根据一定的算法选择最佳的时间源进行时间同步。
Chrony选择时间源的算法主要基于以下几个因素:
延迟(Delay):Chrony会计算与每个时间源之间的延迟,选择延迟最小的时间源。延迟是指从发送请求到接收响应所需的时间。
偏差(Offset):Chrony会计算与每个时间源之间的偏差,选择偏差最小的时间源。偏差是指本地时钟与时间源之间的差异。
可靠性(Reliability):Chrony会考虑时间源的可靠性,选择可靠性较高的时间源。可靠性是指时间源的稳定性和可用性。
权重(Weight):您可以为每个时间源分配一个权重值,Chrony会根据权重值进行选择。较高权重的时间源将更有可能被选中。
Chrony默认情况下会自动选择最佳的时间源,您无需手动干预。但如果您希望优先选择特定的时间源,可以使用prefer指令来指定首选时间源。
时间源的权重对于时间源的选择上有什么作用?
为时间源配置权重,Chrony将根据设置的权重值选择时间源进行时间同步。较高权重的时间源将更有可能被选中。
请注意,权重值是相对的,而不是绝对的。它们用于在多个时间源之间进行相对选择,而不是确定性地选择特定的时间源。Chrony还会考虑其他因素,如延迟、偏差和可靠性,来选择最佳的时间源。
与 chronyc 相关的部分命令行命令:
chronyc sources -v:查看当前可用的时间源列表及其状态信息。
chronyc tracking:显示 chrony 与时间源的同步状态,包括系统时钟偏差和时钟频率调整等信息。
chronyc sourcestats:显示与每个时间源的同步统计信息,如延迟、偏差和稳定性等。
chronyc makestep:强制 chrony 立即进行时间调整,而不是逐渐调整。这可以在初始同步或时间漂移较大时使用。
chronyc burst:对所有时间源发送多个请求以加快初始化过程或进行快速校准。
chronyc addserver <time_server> [options]:添加一个新的时间源,并指定其配置选项。
chronyc delserver <time_server>:从时间源列表中删除指定的时间源。
chronyc settime <time>:手动设置系统时间为指定的时间。
chronyc quit:退出 chronyc 控制台。
不同状态的时间源在chrony中的标识
"^*":表示此时间源为当前系统所使用的主要时间源,也称为活动时间源。
"^+":表示此时间源为当前系统备选的时间源,在主要时间源不可用时会被使用。
"^-":表示此时间源为过去使用过但目前不再使用的时间源。
"^?":表示此时间源正在与系统进行初始化或检查,并且尚未完全可用。
"^#":表示此时间源被手动禁用或配置为忽略状态。
"^!":表示此时间源被标记为无效或不可用。
"^~":表示此时间源的时间质量差,可能由于网络连接不稳定或其他因素导致。
"^X": 标识时间源的状态为无效或者不可用。
文章参考:ntp官网描述