先思考一个问题:当一个客户端配置向多个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. 聊一聊使用Spring事物时不生效的场景

    前言 今天介绍一下Spring事物不生效的场景,事物是我们在项目中经常使用的,如果是Java的话,基本上都使用Spring的事物,不过Spring的事物如果使用不当,那么就会导致事物失效或者不回滚,最 ...

  2. 《Python魔法大冒险》005 魔法挑战:自我介绍机器人

    魔法师和小鱼坐在图书馆的一扇窗户旁,窗外的星空闪烁着神秘的光芒.魔法师轻轻地拍了拍小鱼的肩膀. 魔法师: 小鱼,你已经学会了编写简单的魔法程序,现在我要教你如何创造一个有自己思想的机器人,让它能够和我 ...

  3. Burp Suite Extension Development Guide

    Burp Suite是什么? Burp Suite是一款Web应用程序渗透测试工具,可以帮助用户发现和利用Web应用程序中的漏洞,提高渗透测试的效率和精度. Web应用程序最常用的传输数据的协议就是H ...

  4. Http协议之libcurl实现

    一.libcurl简介 libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议.libcurl同样支持 ...

  5. 搞懂fflush(stdout)

    使用 printf 或 cout 打印内容时,输出永远不会直接写入"屏幕".而是,被发送到 stdout. (stdout 就像一个缓冲区) 默认情况下,发送到 stdout 的输 ...

  6. 前端三件套系例之JS——JavaScript内置方法

    文章目录 1.Number 1-1 属性 1-2 方法 2.String 2-1 属性 2-2 方法 2-3 代码 3Array 3-1 创建数组 3-2 数组特点 3-3 数组的遍历(迭代) 34 ...

  7. 网络层IP数据包

    网络层 功能 选择数据通过网络(IP地址)的最佳路径 协议字段 版本号(4bit):指IP协议版本.并且通信双方使用的版本必须一致,目前我们使用的是IPv4,表示为0100 十进制 是4 首部长度(4 ...

  8. WebSocket connection to 'ws://127.0.0.1:8089/websocket/0,1,10,admin' failed:

    WebSocket连接失败 背景: 相同项目数据库从mysql变更到sqlite,代码层面基本没有变更,但是WebSocket连接失败,查找多方原因,未找到问题,最后发现新项目JDK为OpenJDK, ...

  9. java_2.常量、Scanner类、基本数据类型转换、算数运算符

    常量.Scanner类.基本数据类型转换.算数运算符 变量和常量 常量 1.使用final关键字修饰,只能赋值一次,不可以修改值. 2.常量的名称使用全大写. 3.多个单词使用下划线分隔. publi ...

  10. KubeEdge-Ianvs v0.2 发布:终身学习支持非结构化场景

    本文分享自华为云社区<KubeEdge-Ianvs v0.2 发布:终身学习支持非结构化场景>,作者: 云容器大未来. 在边缘计算的浪潮中,AI是边缘云乃至分布式云中最重要的应用.随着边缘 ...