NTP网络校时服务详解

NTP网络校时服务详解,第1张

地球分为东西十二个区域,共计 24 个时区,以格林威治作为全球标准时间(即GMT 时间,0时区),东部时区以格林威治时区进行加法,而西时区则以格林威治时间作减法。但地球的轨道并非正圆,在加上自转速度逐年递减,时间会有误差。在计算时间的时,最准确是使用“原子震荡周期”所计算的物理时钟。这种时钟被称为标准时间,即UTC时间(Coordinated Universal Time)。UTC 的准确性毋庸置疑,美国的 NIST F-1 原子钟 2000 年才将产生 1 秒误差。

实际生产生活中,使用原子时钟这种准确的计时似乎缺少必要性,我们更多关注的是参与活动的各个个体在相同的时间环境下对话。例如,当我们说明天早上8:00开会的时候,我们并不在乎原子时钟真实的计时情况,只要参会的所有个体对“明天早上8:00”这个时间具有相同的认知即可。这里时间同步是个非常重要的概念,如果某位同仁手表慢了半小时,那它对“早上8:00”的理解就比其他人要慢半小时,最终会导致ta开会迟到。同样的道理,我们在影视剧中经常能看到特种作战小组在执行特别任务前一般都要先完成组员之间的时间同步,避免组员之间在时间上的认知差异给任务带来不必要的麻烦,甚至危及生命。

NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用于分布式设备(比如电脑、手机、智能手表等)进行时间同步,避免人工校时的繁琐和由此引入的误差,方便快捷地实现多设备时间同步。 NTP校时服务基于UDP传输协议进行报文传输,工作端口默认为123/udp

NTP的实现过程如图所示,假如设备A和设备B本地时间存在差异(设备A早上10点,设备B早上11点),现在设备A欲通过NTP和设备B在时间上保持同步:

这样可以轻松计算出来:

现假设设备A和设备B之间的时间差位 ,易得:

通过上式计算出
设备A就能根据 调整本地时间,实现和设备B的时间同步。

NTP的目的是在一个同步子网中,通过NTP协议将主时间服务器的时钟信息传送到其他二级时间服务器,实现二级时间服务器和主时间服务器的时钟同步。这些服务器按层级关系连接,每一级称为一个层数(stratum),如主时间服务器层数为 stratum 1,二级时间服务器层数为 stratum 2,以此类推。时钟层数越大,准确性越低。
注意:准确性指相对于主时间服务器而言。

在NTP网络结构中,有以下几个概念:

在正常情况下,同步子网中的主时间服务器和二级时间服务器呈现出一种分层主从结构。在这种分层结构中,主时间服务器位于根部,二级时间服务器向叶子节点靠近,层数递增,准确性递减,降低的程度取决于网络路径和本地时钟的稳定性。

NTP有两种不同类型的报文,一种是时钟同步报文,另一种是控制报文。控制报文仅用于需要网络管理的场合,它对于时钟同步功能来说并不是必需的,这里不做介绍。

时钟同步报文封装在UDP报文中,其格式如图所示:

各主要字段解释如下:

其中,NTP发送和接收的报文数据包类似,通常只需要前48个字节就能进行授时和校时服务。下面分别是抓包获取的NTP请求数据包和回复数据包示例(仅前48个字节):

收到数据包后,接收端本地再产生一个时间戳( )。
这里,每个返回数据前4字节为秒的整数部分,后4字节为秒的小数部分。

设备可以采用多种NTP工作模式进行时间同步:

单播C/S模式运行在同步子网层数较高的层级上,客户端需要预先知道时间服务器IP或域名并定期向服务器发送时间同步请求报文,报文中的 Mode字段设置为 3(客户模式)。服务器端收到报文后会自动工作在服务器模式,并发送应答报文,报文中的Mode字段设置为4(服务器模式)。客户端收到应答报文后,进行时钟过滤和选择,并同步到优选的服务器。客户端不管服务器端是否可达,也不管服务器端所在的层数。在这种模式下,客户端会同步到服务器,但不会修改服务器的时钟。服务器则在客户端发送请求之间无需保留任何状态信息。客户端根据本地情况自由管理发送报文的时间间隔。

对等体模式运行在同步子网较低层级上,主动对等体和被动对等体实现时钟相互同步。这里有两个概念:主动对等体和被动对等体。

如上图所示,对等体模式工作步骤如下:
1主动对等体和被动对等体首先交互Mode字段为3(客户端模式)和4(服务器模式)的NTP报文,这一步主要是获得通信时延。

主动对等体和被动对等体可以互相同步。如果双方的时钟都已经同步,则以层数小的时钟为准。

注意:对等体模式不需要用户手动设置,设备依据收到的NTP报文自动建立连接并设置状态变量。

广播模式应用在多台工作站和不需要很高精度的高速网络中。主要工作流程如图所示:

注意:在广播模式下,服务端只负责向外广播时钟信息,自身时钟不受客户端影响。

组播模式适用于有大量客户端分布在网络中的情况。通过在网络中使用 NTP 组播模式, NTP 服务器发送的组播消息包可以到达网络中所有的客户端,从而降低由于 NTP 报文过多而给网络造成的压力。主要工作流程如下:

注意:组播模式和广播模式类似,只是它是向特定的组播地址发送时钟同步广播报文。在组播模式下,服务端只负责向外广播时钟信息,自身时钟不受客户端影响。

多播模式适用于服务器分布分散的网络中。客户端可以发现与之最近的多播服务器,并进行同步。多播模式适用于服务器不稳定的组网环境中,服务器的变动不会导致整网中的客户端重新进行配置。其工作流程如下:

注意:为了防止多播模式下,客户端不断的向多播服务器发送 NTP 请求报文增加设备的负担,协议规定了最小连接数的概念。多播模式下,客户端每次和服务器时钟同步后,都会记录下此次同步过中建立的连接数,将调用最少连接的数量被称为最小连接数。以后当客户端调动的连接数达到了最小连接数且完成了同步,客户端就认为同步完成;同步完成后每过一个超时周期,客户端都会传送一个报文,用于保持连接。同时,为了防止客户端无法同步到服务器,协议规定客户端每发送一个 NTP 报文,都会将报文的生存时间 TTL(Time To Live)进行累加(初始为 1),直到达到最小连接数,或者 TTL 值达到上限(上限值为 255)。若 TTL 达到上限,或者达到最小连接数,而客户端调动的连接数仍不能完成同步过程,则客户端将停止一个超时周期的数据传输以清除所有连接,然后重复上述过程。

下面补充一些常用的NTP时钟服务器:

更多NTP授时服务器请查看:

假设你比较喜欢清华的服务并打算将 ntptunatsinghuaeducn 作为你的授时服务器。下面将简单介绍不同的 *** 作系统该如何 *** 作使得设备能够使用此服务器同步时间。

本部分以主流Windows 10 系统为例演示如何使用NTP服务同步系统时间。

来将此服务器设置为个人选择的时间服务器。

Linux发行版有两个主流程序支持ntp协议:ntpd和chrony。
具体使用和配置参考各自文档: ntpd doc 和 chrony doc

在“系统配置 > 日期与时间 > 自动设置日期与时间”一栏,填入 ntptunatsinghuaeducn 。

windows系统自带了同步internet时间的功能,但是这一功能没有打开,需要手动设置。在时间栏里找到“internet时间”这一选项,打开这一功能,然后选择一个公共的时间服务器地址去同步时间。但是公共的时间服务器时间精度有限,只能满足那些对时间要求不高(如精确到秒)的用户,而且受网络影响较大。如果你在工作中需要计算机同步,建议采购专业的网络时间服务器。

北斗时间频率技术有限公司就是一家多年专注于时间同步设备的公司,公司产品在医疗、教育、交通、公安、交警、政府机构、科研、金融投资、银行等众多领域得到广泛应用。

同步计算机时钟如果您的计算机属于某个域,则计算机的时钟可能自动被网络的时间服务器同步。如果您的计算机不是域的一员,可以使您的计算机时钟与 Internet 时间服务器同步。
如果启用了同步,您的计算机时钟每周就会和 Internet 时间服务器进行一次同步。然而,如果您没有通过电缆调制解调器或 DSL 调制解调器与 Internet 保持连续连接的话,则自动同步可能不会总是发生。在这种情况下,可以通过单击“Internet 时间”选项卡(位于“控制面板”中的“日期和时间”上)中的“立即更新”按钮来执行立刻同步。只有在您的计算机不是域成员时,该选项卡才可用。
如果时间同步失败
当您单击“立即更新”按钮时,时钟应立即同步。如果该 *** 作失败,可能出于以下几个原因:
没有连接到 Internet。在试图同步时钟前创建 Internet 连接。
个人或网络防火墙阻止时钟同步。大多数公司或组织的防火墙同一些个人防火墙一样会阻碍时钟同步。家庭用户应阅读防火墙文档以得到关于消除网络时间协议 (NTP) 障碍的信息。如果切换到了 Windows 防火墙,则应该可以同步时钟。
Internet 时间服务器正忙,或者暂时不可用。如果属于这种情况的话,可以试着稍后再同步您的时钟或通过双击任务栏上的时钟来手动更新。也可以试着采用另外一个不同的时间服务器。
计算机上显示的时间与 Internet 时间服务器的当前时间有很大的差别。如果计算机的时间与 Internet 时间服务器的时间相比,滞后值超过 15 个小时,则 Internet 时间服务器无法同步您的计算机时钟。若要正确地同步时间,请确保时间和日期设置值接近位于“控制面板”中“日期和时间属性”中的当前时间。
注意
要打开“日期和时间”,请依次单击“开始”、“控制面板”,然后双击“日期和时间”。
Internet 时间服务器将更新由您的计算机设置的日期和时间。
只有在选中“自动与 Internet 时间服务器同步”复选框后,“立即更新”按钮才有效。
可以在“时间和日期”选项卡(位于“控制面板”的“日期和时间”上)中手动更改计算机时钟时间。也可以通过双击任务栏上的时钟来打开“日期和时间”。
相关主题

子母钟是一种授时的时钟系统,它是由子钟和母钟组成的。子钟是一种显示时间的设备,它可以分为指针式子钟、数字式子钟、LED子钟。而母钟是一种授时的设备,母钟一般被称为时间服务器、时钟服务器、时间同步服务器、时钟同步服务器等等。
子钟和母钟相结合的使用方式就被称为子母钟系统。一般子母钟系统的授时方式是通过网络形式进行传输时间信息的,这样的授时方式使用简单方便。母钟所提供的时间信息是卫星时间,并通过网络授时方式传输给子钟,这种时间信息更为准确。
子母钟系统的应用一般由网络子钟和时间服务器组成。在应用过程中网络子钟根据场景不同可选择,指针式网络子钟、数字式网络子钟、天文作战时钟、医院手术室时钟等。而时间服务器也可根据使用场景和环境不同可选择,GPS北斗双卫星授时,或者在一些受限于GPS卫星的行业可选择北斗卫星授时。时间服务器还可根据授时设备的数量,从而改变网口为千兆或百兆。根据授时的种类增加网口信息、串口信息、B码信息、PTP信息等。
子母钟系统可应用于一些对时间要求非常精准和授时时间要统一的行业和场所,比如医院、学校、工厂、体育场、收费站、公安系统、科研机构等等。随着需求的广泛和多样,子母钟系统也在不断改进和升级。本公司时间服务器增加防火墙保护、SYN-flood防御、网络状态查询诊断等功能,而子钟具有多种显示内容和尺寸,以及子钟采用亚克力面板,是子钟显示光亮和美观。所以本公司子母钟可以广泛应用于各种场所和一些特殊保密行业。
子母钟系统的授时原理SYN2151型NTP时间同步服务器,通过GPS授时天线接收GPS北斗卫星信号的标准时间信息,母钟收到GPS、北斗卫星信号后,并以网络输出将时间信息经过交换机转换,并传输给NTP网络子钟SYN6109、计算机系统、监控设备、弱电子系统、及其他需要授时的设备,母钟接入时钟网管监控系统,用来管理和维护系统,以及统一局域网和电脑的时间,实现时间同步。并且母钟在没有卫星信号时候,可以通过内部温补晶振进行守时,以保证时间的准确性。时钟源也可以选择恒温晶振、铷原子钟、驯服铷钟模块等。

1、首先打开开始菜单,然后选择控制面板选项,
2、然后在控制面板窗口中选项日期和时间选项,也可以直接双击任务栏下的时间来打开
3、双击打开日期和时间属性窗口,然后我们切换到Internet时间选项卡下,
4、切换到Internet选项卡之后,我们勾选自动与Internet时间服务器同步,然后选择服务器地址,单击立即更新按钮,
5、单击立即更新之后就会与互联网上的服务器同步时间,然后单击确定按钮,关闭所有窗口退出就可以了,这样只要你的电脑可以联网就可以与服务器时间同步了。
注意事项:
如果电脑要与服务器时间同步,就必须可以上网。

无法同步可能出于以下几个原因:
一、没有连接到 Internet。在试图同步时钟前创建 Internet 连接。
个人或网络防火墙阻止时钟同步。大多数公司或组织的防火墙同一些个人防火墙一样会阻碍时钟同步。家庭用户应阅读防火墙文档以得到关于消除网络时间协议 (NTP) 障碍的信息。如果切换到了 Windows 防火墙,则应该可以同步时钟。
二、Internet 时间服务器正忙,或者暂时不可用。如果属于这种情况的话,可以试着稍后再同步您的时钟或通过双击[url=ms-its:C:\WINDOWS\Help\datetimechm::/HELP=glossaryhlp TOPIC=gls_taskbar]任务栏[/url]上的时钟来手动更新。也可以试着采用另外一个不同的时间服务器。
三、计算机上显示的时间与 Internet 时间服务器的当前时间有很大的差别。如果计算机的时间与 Internet 时间服务器的时间相比,滞后值超过 15 个小时,则 Internet 时间服务器无法同步您的计算机时钟。若要正确地同步时间,请确保时间和日期设置值接近位于“控制面板”中“日期和时间属性”中的当前时间。
注意:
1、要打开“日期和时间”,请依次单击“开始”、“控制面板”、“日期、时间语言和区域设置”,然后单击“日期和时间”。
2、Internet 时间服务器将更新由您的计算机设置的日期和时间。
只有在选中“自动与 Internet 时间服务器同步”复选框后,“立即更新”按钮才有效。
可以在“时间和日期”选项卡(位于“控制面板”的“日期和时间”上)中手动更改计算机时钟时间。也可以通过双击任务栏上的时钟来打开“日期和时间”。

一时间同步服务器简述
时间同步服务器,顾名思义就是来同步时间的。在集群中同步时间有着十分重要的作用,负载均衡集群或高可用集群如果时间不一致,在服务器之间的数据误差就会很大,寻找数据便会成为一件棘手的事情。
备份是一个合格的运维工程师的基本功,若是时间无法同步,那么就算是备份了数据,你也可能无法在正确的时间将正确的数据备份。那损失可就大了。
为什么linux不能像Windows一样快速同步时间呢?在Windwos中,系统时间的设置很简单,界面 *** 作,通俗易懂,而且设置后,重启,关机都没关系。系统时间会自动保存在BIOS时钟里面,启动计算机的时候,系统会自动在BIOS里面取硬件时间,以保证时间的不间断。
但在Linux下,默认情况下,系统时间和硬件时间并不会自动同步。在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。硬件时间的运行,是靠BIOS电池来维持,而系统时间,是用CPU Tick来维持的。在系统开机的时候,会自动从BIOS中取得硬件时间,设置为系统时间。所以在Linux搭建时间同步服务器是非常重要的,尤其是现在集群化的时代。一组服务器对外表现为一个整体去提供服务。接下来笔者带领大家去搭建三种时间同步服务器。
二时间同步服务器搭建
1用ntpdate命令去同步时间(开启外网连接)
1)安装ntpdate:
yum -y install ntpdate
2)手动同步网络时间(这样的同步,只是强制性的将系统时间设置为ntp服务器时间。如果CPU Tick有问题,只是治标不治本。所以,一般配合cron命令,来进行定期同步设置):
ntpdate -u ntp1aliyuncom
3)使用crontab计划任务定时更新网络时间:​​​​​​​
vim /etc/crontab
末尾增加 /1 ntpdate -u ntp1aliyuncom
4)系统时间同步到硬件,防止系统重启后时间呗还原:
hwclock -w
2手动搭建ntp时间同步服务器(从局域网内的机器同步时间)
服务器端
a下载nt并设置开机自启:
yum -y install ntp
b启动ntp并设置开机自启:​​​​​​​
systemctl start ntpd
systemctl enable ntpd
c
————————————————
版权声明:本文为CSDN博主「假面生」的原创文章,遵循CC 40 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12842918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存