先思考一个问题:当一个客户端配置向多个NTP时间服务器校时,此时客户端优先向哪个时间服务器同步时间呢?

一个完整的NTP校时请求分四步:

1、客户端向服务器发起校时请求

2、服务器收到客户端发送的校时请求

3、服务器处理客户端的校时请求并发送(响应)给客户端

4、客户端收到服务器响应的信息并修正自身时间

下面我们从服务器与客户端两个方向来分析:

1. 服务器优先级

先来了解一下NTP协议中的stratum(层次):

NTP时间服务器有层次(stratum)之分,取值范围1~15,顶层的参考时钟编号为0。NTP官网对stratum的解释:

“层是同步距离的衡量标准。与抖动或延迟相反,分层是一种更静态的测量方法。基本上,从客户端的角度来看,它是服务器到参考时钟的数量。因此,参考时钟本身位于层 0,而最近的服务器位于层 1。在网络上,没有任何有效的 NTP 信息是分层 0 的。

与第 n 层服务器同步的服务器将在第 n + 1 层运行。层的上限是 15。分层的目的是通过优先选择分层较低的服务器来避免同步循环。”

根据官网解释,NTP时间服务器的层次结构如下图所示:

另根据RFC5905(NTPv4)协议和算法规范中对于stratum的描述得知

“随着分层号的增加,其精确度也会降低,这取决于特定的网络路径和系统时钟稳定性。 以同步距离衡量的平均误差,与分层数和衡量的往返延迟大致成正比增加。”

根据NTP的stratum可知,第1层服务器在NTP层次结构中具有最高的优先级。层数越大距离参考时钟距离越远,其精度越差。

当有多个NTP服务器时,可以通过修改其层数来调整它们的优先级。例如,可以将某个NTP服务器的层数设置为1,而将另一个服务器的层数设置为2。这样,层数较低的服务器将具有更高的优先级,因为它离参考时间源更近。在设置多个NTP时钟源的优先级时,需要根据网络环境和需求进行合理的调整。通过选择合适的层数和可能的配置选项,可以确保网络中的设备能够准确地同步时间。

附:Stratum取值范围:

  • 0表示未指定或无效
  • 1表示主服务器(例如,配备GPS/BD卫星或CDMA/5G基站的时间服务器)
  • 2-15表示二级服务器,通过NTP协议实现的二级服务器
  • 16表示不同步的
  • 17-255保留

2. 客户端优先级

客户端系统种类繁多,下面以Linux(centos)和Windows两个系统来举例设置同步优先级。

2.1、Linux系统(centos)

Linux系统有两个时间同步守护进程:ntpd和chronyd,centos6.5及之前的版本使用的是ntpd,centos7及之后的版本使用的是chrony。两者在配置上基本一样,下面以chrony举例:

从官网可知,chrony.conf配置文件中,可配置多个时钟源,如下图所示:

可通过设置[option]为“prefer”选项来设置优先同步哪一台时钟源

“首选

与不带 prefer 选项的信息源相比,优先选择此信息源。”

2.2、Windows系统

Microsoft官方给出了配置多个时间服务器的方法,如下图

Windows命令提示符:

w32tm /config /manualpeerlist:"ntpserver.contoso.com clock.adatum.com" /syncfromflags:manual /update

优先级设置

优先级设置命令

w32tm /config /manualpeerlist:"ntpserver.contoso.com,0x8 clock.adatum.com,0x2" /syncfromflags:manual /update

查询配置参数命令

reg query HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

NTP时间服务器优先级介绍的更多相关文章

  1. 搭建NTP时间服务器~使用NTP同步时间~构建主机间时间自动同步关系

    NTP是一个时间服务器,同时它也是一个时间客户端. 我们可以使用它构建主机与主机之间的时间自动同步环境,保证所有服务器时间一致性. 常用的公共NTP时间服务器有: cn.ntp.org.cn 中国 n ...

  2. 搭建内网的NTP时间服务器

    NTP时间服务器 标签: linux 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 1.简介 NTP(Network Time Protocol,网络时间协议) ...

  3. 国内可用的Internet时间同步服务器地址(NTP时间服务器)

    不知道什么鬼我这系统自带的Internet时间同步服务器地址居然不可用,终端ping系统自带服务器两个居然都不通???难道时间服务器也和谐么? 好在阿里云提供了7个NTP时间服务器也就是Interne ...

  4. NTP时间服务器实战应用详解-技术流ken

    简介 在搭建集群服务中,要保证各节点时间一致,NTP时间服务器就成为了一个好帮手了. 系统环境 系统版本:centos6.7 服务器IP:10.220..5.166/24 客户端IP:10.220.5 ...

  5. 国内常用的几个NTP时间服务器

    问题描述: 经常Windows或者Linux系统上面的时间跟我们本地的时间不一致 有时候就是Windows的Internet时间设置里面的Windows自带的时间同步服务器不好使 Linux配置NTP ...

  6. 企业内部在centos7.2系统中必杀技NTP时间服务器及内网服务器时间同步(windows和linux客户端同步)

    网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议.NTP的用途是把计算机的时间同步到某些时间标准.目前采用的时间标准是世界协调时UTC(Unive ...

  7. Linux NTP时间服务器

    NTP 时间服务器 ntp也是一种协议 ntp软件(支持ntp协议)  CentOS6自带 CentOS7需要安装 chrony软件(支持ntp协议)   CentOS7自带 安装ntp CentOS ...

  8. Centos7 Ntp 时间服务器

    Centos7 Ntp 时间服务器 安装环境 [root@m02 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 安装 ...

  9. Ntp时间服务器与定时任务Crontab

    一 NTP时间服务器 1 局域网内的NTP同步配置 注意 所有配置操作必须是root用户 ,局域网内node21作为NTP Server,node22,node23作为NTP Client与服务器进行 ...

  10. 局域网部署ntp时间服务器

    搭建ntp时间服务器 时间服务器配置 须切换到root用户,再进行操作 检查ntp是否安装 [root@hadoop01 ~]# rpm -qa | grep ntp 如果没有安装,须安装 [root ...

随机推荐

  1. SQL查询中的小技巧:SELECT 1 和 LIMIT 1 替代 count(*)

    前言 在写SQL查询时,常规做法是使用SELECT count(*)来统计符合条件的记录数. 然而,在某些情况下,我们只关心是否存在符合条件的记录,而不需要知道具体的记录数. 为了优化性能,可以改用使 ...

  2. Docker部署中间件

    Docker 安装 1. 卸载旧版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ d ...

  3. 记一次 .NET 某餐饮小程序 内存暴涨分析

    一:背景 1. 讲故事 前些天有位朋友找到我,说他的程序内存异常高,用 vs诊断工具 加载时间又太久,让我帮忙看一下到底咋回事,截图如下: 确实,如果dump文件超过 10G 之后,市面上那些可视化工 ...

  4. Django框架项目之git笔记——版本控制器、git介绍、git使用

    文章目录 版本控制器 git 简介 git与svn比较 git的工作流程 版本库间的通信 git分支管理 git使用 流程(核心总结) 安装 基础命令 将已有的文件夹 - 初始化为git仓库 在指定目 ...

  5. Jellyfin Documentation

    Skip to main content     Introduction On this page Welcome to the Jellyfin Documentation Jellyfin is ...

  6. 2023_10_09_MYSQL_DAY_01_笔记

    2023_10_09_MYSQL_DAY_01 #运算符的优先级 SELECT ename, job, sal FROM emp WHERE ( job='SALESMAN' OR job='PRES ...

  7. Python--乱码转化为中文

    1. \u和\x的含义 \u:代表的是unicode码 \x:代表的是16进制码 2. 代码实现 :\x类型 # \xe4\xb8\xad\xe6\x96\x87 代表的意思是'中文' s = u'\ ...

  8. 2D物理引擎 Box2D for javascript Games 第五章 碰撞处理

    2D物理引擎 Box2D for javascript Games 第五章 碰撞处理 碰撞处理 考虑到 Box2D 世界和在世界中移动的刚体之间迟早会发生碰撞. 而物理游戏的大多数功能则依赖于碰撞.在 ...

  9. Go语言代码断行规则详解

    本文深入探讨了Go语言中代码断行的各个方面,从基础概念到实际应用实践. 关注[TechLeadCloud],分享互联网架构.云服务技术的全维度知识.作者拥有10+年互联网服务架构.AI产品研发经验.团 ...

  10. Unity - UIWidgets 3. 页面跳转

    Flutter的Route概念, 移动开发常指Page, 在android中指activity, ios中指viewcontroller, UGUI中常称为Panel\Form\View? 大概说的就 ...