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 。

Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。
NTP如何工作?
NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。北京中新创科技有限公司研制开发的网络时间服务器DNTS-7是一种高科技智能的、可独立工作的基于NTP/SNTP协议的时间服务器,DNTS-7从GPS地球同步卫星上获取标准时钟信号信息,将这些信息在网络中传输,网络中需要时间信号的设备如计算机,控制器等设备就可以与标准时钟信号同步。标准的时钟信息通过TCP/IP网络传输,DNTS-7支持多种流行的时间发布协议,如NTP,time/UDP,还可支持可设置的UDP端口的中新创科定义的时间广播数据包。NTP和time/UDP的端口号分别固定于RFC-123和RFC-37指定的123和37。DNTS-7同时支持SNTP协议的广播工作模式。
DNTS-7有三种型号可供选择,DNTS-71为有1个10/100M自适应的以太网口,DNTS-72为有2个10/100M自适应的以太网口,DNTS-74为有4个10/100M自适应的以太网口,网口间物理相互隔离,完全保证数据安全性,可全设置同一个网段或者不同网段,具有冗余性,某个网口的故障将不会影响其他网口正常工作。每个以太口必须设置独立IP地址。
计算机主机一般同多个时间服务器连接, 利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源来校正主机时间。即使主机在长时间无法与某一时间服务器相联系的情况下,NTP服务依然有效运转。

一时间同步服务器简述
时间同步服务器,顾名思义就是来同步时间的。在集群中同步时间有着十分重要的作用,负载均衡集群或高可用集群如果时间不一致,在服务器之间的数据误差就会很大,寻找数据便会成为一件棘手的事情。
备份是一个合格的运维工程师的基本功,若是时间无法同步,那么就算是备份了数据,你也可能无法在正确的时间将正确的数据备份。那损失可就大了。
为什么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版权协议,转载请附上原文出处链接及本声明。
原文链接:>

北斗授时系统应用领域广泛,包括军用、通信、电力、金融等。

北斗时频产品主要是时钟服务器、时频板卡、频率设备、时码器,当前正在研发全国产、自主可控化的时钟同步产品。

1)北京北斗时间频率技术有限公司将整个时钟同步板卡的性能设计从主板、硬盘、内存、铷钟、晶振、锁相环等所有器件上,全部实现国产化替代,具备行业颠覆性,可实现高精度、高可控,高国产化。

2)技术研发、营销能力强。公司核心团队人员来自北斗一代建设和国家授时中心,技术研发能力及营销能力强。在时钟服务器领域,北斗时频是国内目前厂商品牌知名度较高,在航天、军工、政府行业市场占有率较大的一家北斗授时公司。

将通信网上各种通信设备或计算机设备的时间信息(年月日时分秒)基于UTC(协调世界时)时间偏差限定在足够小的范围内(如100ms),这种网络同步过程叫做网络时间同步。
网络时间同步的应用
一般来说,时间同步应用最广泛的是在INTERNET上的计算机。计算机时钟用于记录事件的时间信息,如E-MAIL信息、文件创建和访问时间、数据库处理时间等。 时钟还被用于控制备份的 *** 作、为设计自动构造编译器检查文件是否变动过以及其他应用。如果计算机时钟不精确,那么这些应用中很多将无法正常工作。对时间敏感的计算机系统,如金融业界服务器、EDI、大型分布式商业数据库、航天航空控制计算机等,更需要高精度的时间信息。交通运输业的时间显示系统,如地铁时刻表、显示系统、机场时刻表显示系统,如果偏差较大,可能会影响旅客的旅行。 中新创科(DNTS-7)实现高精度网络时间同步,解决需要高精度的时间信息场合问题,提供一套完整的方案。
CDMA 基站也需要UTC 信息。依赖GPS卫星时间同步的CDMA系统,基站之间的时间同步均以公共CDMA时标为基准,该时标通过接收GPS定时,同步于UTC时间。BTS需要绝对时间以获取从MS发送的CDMA信号。在软切换中,可能在选择器中发生邮件指令不匹配, 这是由于BS消息路径队列延迟。为防止这种不匹配,所有BTS和BSC必须网络时间同步。 时间同步功能还应用在电话计费方面,这是因为多运营商的出现和分时段费率的存在。网间计费不一致所造成的话单损失,采用时间同步可减小甚至消除。比如,电信和联通互通时,是通过关口局计费,假如电信侧计费起点为20:58(半费时段前),而联通侧计费起点为21:01(半费时段后),则电信、联通计费话单会出现误差,通常的做法是丢弃话单,损失由双方运营商承担。如果在双方的交换机上可以接收GPS提供的绝对时刻UTC,则双方的计费误差可以控制在毫秒级,从根本上避免话单差异。即使只有一方的交换机可做到接收UTC,在话单决策上,该方可占据裁决地位,为对方消除损失。
软件开发也需要时间同步。程序设计是一个设计组的分散任务。这个设计组可以在时间同步的应用不同的服务器上编码,而且有时需要跨地区工作。最终,所有编码都要编入一个程序中,这样必须要求网络时间同步。"编文件"(MAKE)功能或某种"版本控制系统"可用于对来自分散服务器的软件进行管理。当源文件被修改后,时间戳可以用来决定哪个文件需要被重建。当网络文件系统生成了某种目录后,而服务器和客户对当前时间有不同的认识时,编译文件将出错,不能重建某些源文件,也不能编写基于最新信息的可 *** 作文件。还有许多这样的报告:当工程师往源编码文件输入"修改"(FIX)命令后,最终编写文件的过程中只有"修改"这个命令被省略了。而它给公司带来了极大的难堪和浪费。这种错误是很难检查出的。在使用过程中,编程人员第一个反映是咒骂软件虫。然后,设计组将花费大量的时间检查出软件虫是由于含有丢失文件的基础部分被修改引起的,而这种修改就是因为缺乏服务器时间同步,中新创科(DNTS-7)能确保所有服务器时间同步,实现真正网络时间同步。
网管系统的告警和日志同样需要准确记录事件和告警的准确时间,以便进行故障和性能分析。譬如,网管中心产生的告警时间,可能不是交换机实际产生告警的准确时间。另外当网管中心采用多点日志记录时,如果网络各个节点时间不同步,将造成日志记录的混乱。若需要这些信息快速准确进行故障定位,准确的时间是必不可少的。在政府上网工程和电子商务活动中,数字时间戳服务十分重要,这里也需要精确时钟的时间同步功能。各种政务和商务的文件中,时间是十分重要的信息。在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关键性内容。在电子文件中,同样需对文件的日期和时间信息采取安全措施,而数字时间戳服务(DTS:digital time-stamp service)就能提供电子文件发表时间的安全保护。 在这些需要高精度的时间信息场合,中新创科(DNTS-7)网络时间同步产生是必然的结果。
数字时间戳服务(DTS )是网上安全服务项目,由专门的机构提供。时间戳(time-stamp)是一个经加密后形成的凭证文档,它包括三个部分:① 需加时间戳的文件的摘要(digest);② DTS收到文件的日期和时间;③ DTS的数字签名。时间戳产生的过程为:用户首先将需要加时间戳的文件用HASH编码加密形成摘要,然后将该摘要发送到DTS,DTS在加入了收到文件摘要的日期和时间信息后再对该文件加密(数字签名),然后送回用户。由Bellcore 创造的DTS采用如下的过程:加密时将摘要信息归并到二叉树的数据结构;再将二叉树的根值发表在报纸上,这样更有效地为文件发表时间提供了佐证。注意,书面签署文件的时间是由签署人自己写上的,而数字时间戳则不然,它是由认证单位DTS来加的,以DTS收到文件的时间为依据。因此,时间戳也可作为科学家的科学发明文献的时间认证,更需要高精度网络时间同步。
由以上应用可以看到,精确的时间给有些应用带来极大的性能提高。当没有时间同步的时候就已经存在计费了,但是现在谁还能忍受没有时间同步的计费呢?无穷无尽的投诉不单使得运营商焦头烂额,更会影响用户的信心。在这个竞争激烈的时代,用户可是越来越挑剔了。 这里只是罗列了几个典型的时间同步的应用,我们还可以发掘其它的应用,高精度网络时间同步产品可以给我们的系统设计带来便捷,给用户带来高质量的网络和应用,更有可能带来更多的以前不能得到的分析结果。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存