iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >NTPD的工作原理是什么
  • 172
分享到

NTPD的工作原理是什么

2023-06-28 02:06:04 172人浏览 泡泡鱼
摘要

今天小编给大家分享一下NTPD的工作原理是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Network Time Pro

今天小编给大家分享一下NTPD的工作原理是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒)。

NTPD的工作原理是什么

NTP 工作原理

ntpd 进程通过定期与NTP时钟源服务器发送消息来获取时间信息。在进程初始启动时候,不论是第一次boot还是随后启动,nptd 会给服务器发送消息以获取时间本设置到本地系统。为了防止网络风暴,进程启动后会在定义好的间隔64秒之上再加一个随机延迟值,这个随机值的范围是0~16秒;因此进程启动后需要数分钟才会开始同步时间。

如今的计算机都带有硬件时钟芯片(time-of-year (TOY) chip),用于在计算机掉电过程中仍然保持正确时间,当计算机上电,操作系统从时钟芯片中获取时间。当操作系统启动完成并连接到时钟源之后,操作系统会依据时钟源定时调整芯片时间。在服务器没有硬件时钟芯片或硬件时钟芯片故障(CMOS电池没电)或其他原因导致操作系统本地时间与时钟源时间差别超过1000秒,nptd认为此时发生了严重问题,唯一可靠的处理方法是人为介入。这种情况下nptd Daemon进程会退出并在操作系统的syslog中记录一条日志。nptd 的启动选项 -g 选项可以忽略1000秒的检查并强制将时钟源时间设置为硬件时间,不过考虑到硬件时钟芯片故障的场景(CMOS电池没电、或时钟计时器故障),一旦再次出现芯片时间与时钟源超过1000秒,nptd还是会退出。

通常情况下,ntpd 以很小的步长调整时间使得时间尽量是连续的、不出现跳跃。在网络极度拥塞的条件下,nptd 与时钟源之间发送一个消息包来回的时延有可能达到3秒,因此会导致同步距离(半个来回时延,1.5秒)变的很大。ntpd 同步算法会丢弃时差大于128ms的包,除非在900秒内没有时差小于128ms的包,还有就是首次启动时候不会检查这个时差直接同步。这种设计是为了减少误报时钟同步异常的告警。

上述行为的结果是每次成功设置本地时间,一般不会超过128ms,即使在网络时延很高的情况下。有时候,特别是在ntpd首次启动的时候,时差可能超过128ms,这种罕见场景一般是本地时间比时钟源的时间快(未来)超过128秒,这种情况本地时间将会被往过去方向调回。这种情况下某些应用程序会有问题。如果启动nptd时候加上了 -x 选项,那么 nptd 不会以步长方式(stepped)同步,只会以微调校正方式(slew correction)同步。

使用 -x 选项之前需要仔细考量影响。 ntpd 微调校准的最大频率是 500 个 PPM (parts-per-million)每秒,也就是每秒校准 5/10,000 秒。因此会导致本地时间与时钟源之间需要很长时间才能将时差同步到一个可接受的范围,大概是2000秒同步一秒,对于依赖网络时钟源的应用来说这种情况不可接受。

频度规则

nptd 启动时的行为依赖频度文件是否存在,通常是 npt.drift 。这个文件包含了最近估算出的时钟频度误差值。如果文件不存在,此时 ntpd 进入一种特殊模式会快速调整时间与频度误差值,这个快速大概好事15分钟,随后在时间与频度误差值正常后nptd进入正常模式,时间与频度持续与时钟源同步。并在一个小时之后,将当前的频度误差值写入 npt.drift 文件。如果文件存在,nptd从此文件读取频度误差值直接进入正常模式,并没隔一个小时将计算好的频度误差值写入文件。

运行模式

nptd 可以运行在多种模式下,包括对称的 主动、被动(active/passive),客户端、服务端(client/server),广播、多播(broadcast/multicase/manycase),详细参考Association Management。通常运行模式是以Daemon方式持续跟踪同步时钟源时间;当然也可以只运行一次,从外部时钟源同步时间(从上次纪录的频度误差文件中读取频度误差值)。广播与多播模式下客户端能够自动发现时钟源服务器,并计算各个服务器的时延然后自动完成配置,这种模式使得工作站集群自动配置变为现实。

默认情况下nptd以Daemon方式持续跟踪多个时钟源,同步的间隔由一个复杂的状态机决定。状态机使用启发式算法,根据消息包来回时延、频度误差来计算最优的同步间隔。通常情况下,状态机初始以64秒为间隔并最终达到1024秒,少量的随机数值会被增加到间隔上为了均衡服务器压力。额外的,如果一个服务器不可达的情况下,为了减少网络消息排队阻塞,间隔会逐步增加到1024秒。

在某些情况下nptd不能正常持续运行,通常的规避手段时使用cron定时任务执行ntpdate命令。但是ntpdate并没有像nptd一样有考虑各种信号处理、错误检查、连续同步算法。nptd -q 可以达到与 ntpdate同样的效果,-q 参数使得 npt同步一次后就退出;同步的过程与Daemon模式的nptd是相同的。

如果操作系统内核支持调整时钟频度(Solaris,linux,FreeBSD都已经支持),那么时钟同步还有一种不以Daemon方式运行的可选用法。首先,nptd以Daemon方式运行,配置好时钟源,大约一个或几个小时后,获取到频度误差npt.drift 文件;然后退出nptd进程,并以一次性模式运行(nptd -q),此时每次nptd运行都基于当前获取到的频度误差与时钟源同步时间。

同步间隔控制

当前版本的NTP包含了一个复杂的状态机,用于减少同步时的网络负载;同时也包含很多种提升精度的方法。使用者在修改同步间隔(64秒~1024秒)的时候需要仔细考虑影响。默认的最小同步间隔可以使用 tinker minpool 命令修改为不小于16秒,这个值会被用作所有相关的使用到同步间隔的地方,除非显示使用minpoll 选项覆盖。需要注意的是不少设备驱动在同步间隔小于64秒时候不能正常工作;同时广播与多播模式也是使用的默认值,除非显示覆盖。

NPTD语法

ntpd [ -aAbdgLmNPqx ] [ -c conffile ] [ -f driftfile ] [ -g ] [ -k keyfile ] [ -l logfile ] [ -N high ] [ -p pidfile ] [ -r broadcastdelay ] [ -s statsdir ] [ -t key ] [ -v variable ] [ -V variable ] [ -x ]

命令行参数

-a

“md_block md_has_block_below md_has_block_below_ul”>启动认证(默认启用)– -A禁用认证

-b

使用NTP广播消息同步– -c conffile指定配置文件名称

-d

启用调试模式– -D level指定调试级别

-f driftfile

指定频度误差文件的路径– -g正常情况下,ntpd 与时钟源的时间差超过1000秒的阈值会退出,如果阈值设置为0,则ntpd 不会检查,任何时差都会强制同步。-g 选项就是用于设置阈值为0;但是只是一次生效,如果ntpd 运行过程中发现时差超过1000秒,还是会退出。

-k keyfile

指定NTP认证key文件的路径– -l logfile指定日志文件路径,默认是操作系统日志

-L

listen在虚拟IP上– -m使用NTP多播消息在多播地址224.0.1.1上同步(需要内核支持)

-n

不fork进程– -N priority指定优先级运行ntpd进程

-p

指定ntpd的pid文件– -P覆盖操作系统的优先级限制

-q

仅同步一次后退出– -r broadcastdelay指定默认的广播、多播延迟时间

-s statsdir

指定统计工具生成的文件所在目录– -t key增加key到信任的key列表

-v, -V

增加系统变量; -x默认情况下,ntpd在时差小于128ms时候使用微调模式,在大于128ms时候使用步长模式。-x 选项强制nptd仅使用微调模式同步。如果步长阈值(128ms)设置为0,则强制使用步长模式,-x也不生效。不是很推荐使用此选项,会导致时间同步变的非常缓慢,对强依赖网络时钟的应用有影响。微调模式的同步速率是0.5ms/s,需要2000s才同步1秒。

以上就是“NTPD的工作原理是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: NTPD的工作原理是什么

本文链接: https://www.lsjlt.com/news/315835.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • NTPD的工作原理是什么
    今天小编给大家分享一下NTPD的工作原理是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Network Time Pro...
    99+
    2023-06-28
  • puppet的工作原理是什么
    今天小编给大家分享一下puppet的工作原理是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Puppet 的介绍什么是P...
    99+
    2023-06-28
  • Torrents的工作原理是什么
    本篇内容主要讲解“Torrents的工作原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Torrents的工作原理是什么”吧!Torrents 是如何工作的?假设 ‘...
    99+
    2023-06-27
  • RabbitMQ的工作原理是什么
    这篇文章给大家介绍RabbitMQ的工作原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。RabbitMQ简介在介绍RabbitMQ之前实现要介绍一下MQ,MQ是什么?MQ全称是Message Queue,可以理...
    99+
    2023-06-19
  • ipsec的工作原理是什么
    IPSec(Internet Protocol Security)是一种用于保护网络通信安全的协议套件。它可以提供数据加密、数据完整...
    99+
    2023-10-10
    ipsec
  • chatgpt的工作原理是什么
    chatgpt的工作原理是以电子邮件和电子传真方式为用户提供多媒体信息传输,利用一个基于网络的、安全的点对点通讯系统为用户进行多人的...
    99+
    2023-02-09
    chatgpt
  • Hadoop的工作原理是什么
    Hadoop的工作原理是基于分布式存储和计算的概念。Hadoop由两个核心组件组成:Hadoop分布式文件系统(HDFS)和MapR...
    99+
    2024-03-11
    Hadoop
  • prometheus的工作原理是什么
    Prometheus 是一种开源的监控系统,用于记录实时的指标数据。其工作原理主要包括以下几个步骤: 采集数据:Promethe...
    99+
    2024-03-12
    Prometheus
  • HDFS的工作原理是什么
    这篇文章将为大家详细讲解有关HDFS的工作原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。HDFS的工作原理HDFS支持在计算节点之间快速传输数据。在开始阶段,它与MapReduce紧密耦合——M...
    99+
    2023-06-05
  • MapReduce的工作原理是什么
    本篇文章为大家展示了MapReduce的工作原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive...
    99+
    2023-06-03
  • Git的工作原理是什么
    这篇文章主要讲解了“Git的工作原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Git的工作原理是什么”吧!本文图解Git中的最常用命令。如果你稍微理解Git的工作原理,这篇文章能够...
    99+
    2023-06-15
  • fastdfs的工作原理是什么
    FastDFS(Fast Distributed File System)是一个开源的分布式文件系统,主要用于解决大规模数据存储和访...
    99+
    2023-10-24
    fastdfs
  • docker的工作原理是什么
    Docker的工作原理主要涉及以下几个方面:1. 镜像(Image):Docker利用镜像来构建容器,镜像是一个只读的文件系统,包含...
    99+
    2023-09-27
    docker
  • ZooKeeper工作原理是什么
    这篇文章主要介绍ZooKeeper工作原理是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ZooKeeper 是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等,。Z...
    99+
    2023-06-27
  • Casbin工作原理是什么
    Casbin工作原理Casbin通过配置文件来对访问控制模型进行配置,将一个访问控制的模型划分为PERM 的一个文件,切换或升级项目的授权机制与修改配置一样简单,您可以通过组合可用的模型来定制您自己的访问控制模型。...
    99+
    2024-04-02
  • jdbc工作原理是什么
    JDBC(Java Database Connectivity)是Java程序与数据库进行交互的一种标准接口。它定义了一组用于访问和...
    99+
    2023-08-31
    jdbc
  • Pinia工作原理是什么
    本篇内容介绍了“Pinia工作原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是PiniaPinia是Vue 3的状态管理库,它...
    99+
    2023-07-05
  • Ajax工作原理是什么
    本篇内容主要讲解“Ajax工作原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ajax工作原理是什么”吧!1、ajax技术的背景 不可否认,ajax技术...
    99+
    2024-04-02
  • MyBatis工作原理是什么
    这篇文章主要为大家展示了“MyBatis工作原理是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MyBatis工作原理是什么”这篇文章吧。MyBatis 的...
    99+
    2024-04-02
  • DHCP工作原理是什么
    这篇文章给大家分享的是有关DHCP工作原理是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作