文章目录
一、NTP的基本概念
NTP(Network Time Protocol)是一种用于在分布式网络中的不同设备之间保持精确时间同步的互联网协议。
它允许一台机器与其他机器或权威的时间源建立联系,并根据这些联系来调整自己的时间,以确保整个网络中的所有设备共享一致的时间基准。
NTP通过精确测量时间偏差、补偿网络延迟以及调整本地时钟频率来维持准确性,并提供了多种安全特性来保护时间同步过程不受干扰。
二、采用NTP的目的
采用NTP(Network Time Protocol)的主要目的是对网络内所有具有时钟的设备完成时间同步。如果没有时间同步,各个设备之间可能存在时间差,这会导致一系列问题,包括但不限于:
-
事务一致性问题:在分布式系统中,如果时间不一致,可能会导致并发控制失败、事务完整性破坏等问题。
-
安全性和审计问题:在安全性和审计记录中,准确的时间戳对于追踪事件顺序至关重要。
-
系统协调问题:多台计算机需要协同工作时,如果时间不一致,可能会影响到系统的正常运行。
-
数据分析问题:在大数据分析、日志记录和事件关联等场景下,准确的时间戳对于正确分析结果至关重要。
通过使用NTP,网络设备可以按照统一的时间基准进行操作,这对于保持网络服务的稳定性和提供基于时间的服务(如日志记录、交易处理等)至关重要。此外,NTP还可以提供一种方法来监测网络延迟、测量时间抖动以及改善系统的整体性能。
三、NTP的发展历史
NTP是由美国Delaware大学David L .Mills教授设计的,是最早用于网络中时钟同步的标准之一。NTP是从时间协议和ICMP时间戳报文演变而来,NTP的版本演进如下所示。
四、NTP的多个优点
NTP(Network Time Protocol)具有多个优点,其中一些主要的包括:
-
准确性:NTP能够实现非常高的时间同步精度,一般可达数十毫秒,甚至在理想条件下可以达到微秒级别。这对于许多依赖于精确时间的应用来说非常重要。
-
稳定性:NTP采用复杂的算法来处理网络延迟、时钟漂移等因素的影响,从而确保长期稳定的时间同步。
-
灵活性:NTP支持多种传输模式,包括一对一(unicast)、一对多(multicast)、广播(broadcast)和组播(anycast),适应不同的网络环境和需求。
-
可扩展性:NTP可以支持大规模的分布式网络,包括数千台设备的时间同步。
-
容错性:NTP允许客户端连接多个时间服务器,并从中选择最准确的时间源,从而提高了系统的鲁棒性。
-
易用性:NTP已被广泛部署,并且大多数现代操作系统都内置了NTP客户端,使其易于安装和配置。
-
安全性:较新的NTP版本(如NTPv4)提供了身份验证机制,可以防止恶意用户伪造时间信息或拒绝服务攻击。
-
广泛的兼容性:NTP被广泛应用于各种网络环境和设备,包括桌面计算机、服务器、嵌入式设备、手机和平板电脑等。
-
开放标准:NTP是一个公开的国际标准,这意味着它不受任何一家公司的控制,而且有许多开源实现可供选择。
正是因为这些优点,NTP成为了互联网上最常用的时间同步协议之一。
五、NTP的工作原理
在Device A和Device B的系统时钟同步之前,Device A的时钟设定为10:00:00am,Device B的时钟设定为11:00:00am。Device B為NTP時鐘服務器。
(1)Device A发送一个NTP报文给Device B,该报文带有它离开Device A时的时间戳,该时间戳为10:00:00am(T1)。
(2)当此NTP报文到达Device B时,Device B加上自己的时间戳,该时间戳为11:00:01am(T2)。
(3)当此NTP报文离开Device B时,Device B再加上自己的时间戳,该时间戳为11:00:02am(T3)。
(4) 当Device A接收到该响应报文时,Device A的本地时间为10:00:03am(T4)。
至此,Device A已经拥有足够的信息来计算两个重要的参数:
NTP报文的往返时延Delay=(T4-T1)-(T3-T2)=2秒。
Device A相对Device B的时间差offset=((T2-T1)+(T3-T4))/2=1小时。
六、NTP的工作模式
1,客户端/服务器模式
NTP服务器自动工作在服务器模式,并向NTP客户端发送应答报文
NTP客户端进行时钟过滤和选择,并同步到优选的NTP服务器。
2,对等体模式
NTP对等体模式,可以让两个设备互相同步时间,但是仍然会区分主动对等体和被动对等体,这种模式主要在NTP服务器常用。
3,广播模式
未来可能在物联网会常用,NTP广播服务器向所有NTP客户端广播报文后,客户端收到报文,发起服务器\客户端请求模式。
4,组播模式
NTP组播模式主要工作在服务器\客户端模式,这种模式实际应用相对较少。
七、NTP时钟层级
NTP允许客户端从服务器请求和接收时间,而服务器又从权威时钟源(例如原子钟、GPS)接收精确的协调世界时UTC。
NTP以层级来组织模型结构,层级中的每层被称为Stratum。
通常将从权威时钟获得时钟同步的NTP服务器的层数设置为Stratum 1,并将其作为主时间服务器,为网络中其他的设备提供时钟同步。而Stratum 2则从Stratum 1获取时间,Stratum 3从Stratum 2获取时间,以此类推。
时钟层数的取值范围为1~16,取值越小,时钟准确度越高。层数为1~15的时钟处于同步状态;层数为16的时钟被认为是未同步的,不能使用的。
八、UTC与GMT的区别
1)格林威治标准时间GMT
格林尼治平时(Greenwich Mean Time,GMT),又称为格林尼治标准时间。
在这里插入图片描述
格林尼治平时的正午是指当平太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。自1924年2月5日开始,格林尼治天文台负责每隔一小时向全世界发放调时信息。由于地球每天的自转是有些不规则的,而且正在缓慢减速,因此格林尼治平时基于天文观测本身的缺陷,已经被原子钟报时的协调世界时(UTC)所取代。
2)世界协调时间UTC
UTC指的是Coordinated Universal Time- 世界协调时间(又称世界标准时间、世界统一时间)
是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间,计算过程相当严谨精密,因此若以「世界标准时间」的角度来说,UTC比GMT来得更加精准。
其误差值必须保持在0.9秒以内,若大于0.9秒则由位于巴黎的国际地球自转事务中央局发布闰秒,使UTC与地球自转周期一致。所以基本上UTC的本质强调的是比GMT更为精确的世界时间标准,不过对于现行表款来说,GMT与UTC的功能与精确度是没有差别的。