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 。

1、同时按下win+R组合键,调出运行窗口,输入“servicesmsc”,单击“确定”

2、打开的服务界面,往下面拉动

3、找到“windows time”选项

4、双击“windows time”选项,d出的界面中,在启动类型中选择“自动”选项,单击确定

5、在电脑桌面上面双击控制面板

6、找到“时钟、语言和区域”选项

7、在打开的界面中,单击“日期和时间”选项

8、在d出的界面中,单击“internet时间”选项

9、单击下方的“更改设置”选项

10、在打开的internet时间设置的界面中,勾选“与internet时间服务器同步”选项,单击后面的“立即更新”选项,单击“确定”

校准时区,鼠标双击任务栏右下角时间栏或右键单击时间选择“调整日期/时间”→在d出的“日期和时间属性”窗口中选择“时区”选项卡→将时区选择为“(GMT+08:00)北京,重庆,香港特别行政区,乌鲁木齐”→点击“应用”,不要关闭“时间和日期属性”窗口。

1、在“日期和时间属性”窗口中选择“时间和日期”选项卡→尽量将日期和时间调整为当前日期和时间,尽量接近,否则可能导致提示“链接PRC服务器不可用”的问题→再选择“Internet 时间”选项卡→将“自动与Internet时间服务器同步(S)”前面打上勾→点击“确定”退出;

2、点击“开始”菜单→选择“运行”→输入“servicesmsc”→在d出的“服务(本地)”窗口中下拉滑动条,找到“Windows Time”服务→右键点击“Windows Time”服务,选择“启动”→关闭“服务(本地)”窗口;

3、双击任务栏右下角时间栏→选择“Internet 时间”选项卡→点击“立即更新”→假如仍然提示“进行同步时出错”,可以将服务器更改为“2107214544”(中国国家授时站服务器IP地址)或者点击服务器中的向下箭头,选择“Timenistgov”→再尝试点击“立即更新”;

时钟服务器是一个可以为多个计算机提供准确的时钟同步服务的设备或软件。可以连接多少主机取决于时钟服务器的性能和配置等因素,因此具体情况可能各不相同。
一般来说,如果时钟服务器的硬件配置和网络连接状况较好,可以同时为成千上万台计算机提供时钟同步服务。例如,一些专业的时钟服务器可以同时处理多达数万个NTP客户端的请求。这些时钟服务器通常会采用高精度、高稳定性的时钟设备,并具有较强的网络带宽和处理能力,以支持多个客户端的同时访问。
但是,即使时钟服务器可以同时连接多个主机,也不一定要让所有主机都连接到同一台服务器上。对于分布式的企业网络来说,为了减少时钟同步服务的单点故障,可以配置多个时钟服务器,并使每个客户端连接到距离最近的服务器上。这样可以增强时钟同步的可靠性和准确性,以满足不同客户的需求。

我们认为理所当然的一件事是时钟显示当前时间。当系统的内部时钟失去时间时,它可能会中断计划任务或导致奇怪的Windows错误。而且,几分钟甚至几小时的时间会让你迟到或错过约会。

如果您迷恋在计算机上看到确切的原子钟时间,无论如何,您可能需要设置与远程服务器的同步。但是,在你这样做之前,请注意不应该忽视不准确的Windows时钟。

如果电脑时钟失去时间,但仍然需要调整,可能有一个严重的原因。

1 CMOS电池。

这是最有可能的情况,特别是如果您的电脑稍微大一点。

CMOS电池位于您计算机的主板上,为互补金属氧化物半导体(CMOS)芯片提供电源。该芯片存储有关系统配置的信息,包括日期和时间。CMOS电池可确保芯片即使在计算机关闭且未连接电源时也可存储此数据。如果电池坏了,芯片开始丢失信息,其中一个症状是您的电脑不再维护它的时间和日期。

2时区。

这是计算机时钟失去时间的一个容易解决的原因。

您的电脑可能会被设置为错误的时区,并且每次您修复时间时,都会在重新启动时将其自身重置为该时区。如果分钟是正确的,只有小时差,那可能是你正在处理的问题。

3恶意软件。

这是最不愉快的情况,因为恶意软件非常难以删除。

基于第三种情况(恶意软件造成的不同步),有以下解决方法。

收集一些恶意软件清除工具。首先,确保您的防病毒程序与最新的病毒定义保持同步。然后,获得一个好的恶意软件扫描程序,如Malwarebytes或Spybot Search&Destroy。

一旦你下载,更新和安装了所有这些工具,请以安全模式启动并运行它们。以安全模式启动非常重要,因为当您选择此启动模式时,恶意软件无法启动并处于活动状态。这意味着它不太可能逃避检测和清除。

如果您正在运行Windows 10,我强烈建议您重置或刷新您的系统以消除恶意软件。

为了保护自己免受未来的感染,保持系统和安装的软件都是最新的,使用安全软件保护Windows,并避免冒险的在线行为。

无法同步可能出于以下几个原因:
一、没有连接到 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 时间服务器同步”复选框后,“立即更新”按钮才有效。
可以在“时间和日期”选项卡(位于“控制面板”的“日期和时间”上)中手动更改计算机时钟时间。也可以通过双击任务栏上的时钟来打开“日期和时间”。

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


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

原文地址: http://outofmemory.cn/zz/13345057.html

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

发表评论

登录后才能评论

评论列表(0条)

保存