ntp,老矣?壮哉!
- 发布时间:2023/3/24 16:11:10
- 浏览次数:71
网络时间协议(network time protocol,ntp)是数据网络潜伏时间可变的计算机系统之间通过分组交换进行时钟同步的一个网络协议,将所有网络中的计算机与utc(universal time coordinated,世界协调时)同步。
ntp自从1985在rfc-958文档中被特拉华大学的david l mills设计提出,发展到至今的ntpv4,已经将近40年的历程,是目前仍在使用的最古老的互联网协议之一。
通过将网络设备连接到时间服务器(该服务器接收来自明确时间源的信号),您可以在任何位置享受精确时间带来的好处,从而提高生产力、改善客户服务并实现同步运营。ntp在数字录音、广播电台、计算机互联、数字金融、文件协作和智能电网等等领域有着重要作用。
赛思在ntp技术方面也涌现出大量的优秀产品,如ts3000系列的ts3000g和ts3000u,系列中ns7210的万兆高精度时间服务器。
面对新时代的高精度的ptp时间同步技术,white rabbit和光纤同步这些更高精度可达到纳秒级甚至亚纳秒级的技术,ntp是否会在不久的将来退出历史舞台?
答案显然是否定的。ntp所具备生命力,创造力的架构基础使之在各行各业的应用上存在无限的延延伸。
n ntp时代的延续
下图显示了两种ntp时间格式,64位时间戳格式和128位日期戳格式。日期戳格式在内部使用,而时间戳格式在客户端和服务器之间交换的数据包头中使用。时间戳格式跨越136年,称为一个时代。当前时代始于1900年1月1日,而下一个时代始于2036年。
关于ntp时间刻度,最重要的一点是它对天、年或世纪一无所知,只知道与主纪元相关的秒差异。ntp的时间始于1900年1月1日0时。正值表示黄金时期之后的时间;负值表示在此之前的时间。任何日历日期格式和ntp格式之间的转换都是通过计算给定日期和ntp主纪元之间的秒和分数差来完成的。
时间戳格式是ntp中常见到的,32位字宽的秒代表了232秒≈136年,即时间戳所能代表的最长时间为136年,秒的小数部分代表1/232秒≈232ps。大部分人担心,在2036年,ntp的协议的使用是否就会受到限制,甚至在那一年的时间翻转会带来时间紊乱。
随着64位软件系统全面普及,日期戳的使用是解决翻转问题的重要手段,目前ntp v4就支持时代编码与时代补偿这两个变量。日期戳中的32位时代编码与32位秒所能延续的时间可以长到太阳系的灭亡,日期戳的小数部分的精度足以分辨光子以光速通过电磁场所需的时间。
可以看出,目前正处于ntp的第1个时代,是ntp青壮年时期,ntp的发展会给时间信息时代带来更多的惊喜。
n ntp工作原理
ts3000u是赛思一款具备丰富功能的ntp服务器,以这款设备描述一下ntp是如何实现网络两台设备的时间同步的。
网络内存在两台ts3000设备,一台作为服务器,一台作为客户端。两台设备在时间同步之前客户端的时间为08:00:00am,服务器的时间为10:00:00am。系统的同步过程如下:
客户端首先发送一个ntp请求报文给服务器,该报文中带有离开客户端时的时间戳t1(08:00:00 am);当此ntp报文通过网络到达服务器时,服务器会加上自己接收报文的时间戳t2(10:00:01am);当此ntp报文离开服务器时,服务器会加上发送时间戳t3(10:00:02);当客户端再次接收到该响应报文时,客户端的时间是t4(08:00:03)。
那么客户端就有足够的息来计算两个重要的参数:ntp报文的往返时延delay=(t4-t1)-(t3-t2)=2秒。客户端相对服务器的时间差offset=((t2-t1) (t3-t4))/2=2小时。
那么客户端就可以根据与服务器的时间差来设置自己的时钟,实现与服务器同步。虽然实例的时间同步精度为1秒,但实际的ntp报文分辨率可达到232皮秒,所以同步精度要超过秒级。
常规的ntp时间戳是采用软件的中断处理来进行打戳的,打戳精度受到线程和系统的影响,在软件处理优先等级高的软件设计下,其精度达到百微秒级,但是ntp网络传输又会因为网络数据传输问题,带来来回链路延迟的不对称和不稳定,最终使得ntp的精度在毫秒级,如果采用专用网络,那么能有效解决链路问题,ntp精度可达到百微秒量级。
在ntp技术的设计上,赛思公司在ntp时间戳上采用专有硬件逻辑设计打戳,使ntp的时间戳的精度达到纳秒量级,在采用专有ntp网络时,ntp的授时精度可以达到百纳秒,在高精度ntp时间服务器的ts3000g中,就采用此项高精度时间戳技术提供ntp服务,在业界也得到了广泛好评。
n ntp时间同步网络
ntp时间同步网络目标不仅仅是使网络内部的时间同步,同时也要使网络内的时间与utc一致,这就决定了ntp网络组成的四要素:bd/gps接收机与天线,ntp服务器,ntp客户端和可用的网络。
目前服务器内部都配备了高精度的bd/gps接收机,与utc的同步精度可达到100ns以内。
有两种类型的ntp服务器可用于向网络提供utc时间:公共服务器和本地服务器。公共时间服务器由第三方拥有和运营,第三方可通过互联网使用该服务器。本地ntp服务器是您自己拥有并安装在您的场所中的服务器,在您的服务器和客户端之间建立物理网络连接。
如果同步时间对运营至关重要,那么本地时间服务器是更安全、更可靠的选择。它们提供了改进的准确性和更多的控制,同时避免了公共服务器的各种缺点。
公共时间服务器 | 本地时间服务器 |
由第三方运营,可靠性保证不足 | 由自己运营,系统全时段由自己控制 |
同步性能取决于可靠的互联网连接 | 互联网连接丢失后,同步性能可以维持 |
防火墙需要一个开放的端口,容易受到网络攻击 | 设置在防火墙以内,安全性优 |
当大量用户访问时会遇到拥塞 | 整个服务只属于您,全时段保证服务 |
可能涉及长的往返延迟,降低sntp客户端的准确性,而sntp客户端无法解释网络延迟 | 最小的往返延迟,使sntp用户的本地服务器更准确 |
可能受到速率限制,这限制了客户端可以向服务器发出的时间请求数。超过速率限制可能会导致禁令 | 允许您设置自己的速率限制,并根据需要可使用任意数量的客户端,适合大型网络 |
在大型网络上,可能有太多的客户端,以至于服务器无法处理来自所有客户端的请求。在这些情况下,服务器和客户机层次结构排列。
第一层服务器通过gps/bd信号与utc进行同步,并通过网络连接将该时间提供给第二层上的客户端。反过来,第二层设备可以通过向第三层上的客户端提供时间来像服务器一样工作,第三层设备可以向第四层设备提供时间,依此类推。这样,第一层设备就不会因太多请求而过载。
常规最多共有15个同步的层级别(层16用于非同步的客户端),但每个层都会引入另一层网络延迟,导致准确性降低。
为了解决这一问题,ntp客户端可以设置为从多个服务器请求时间,将多个服务器对等在一起,这样,如果一个服务器失去硬件时钟同步,客户端可以从对等组中的其他服务器获得时间,以帮助它们尽可能接近地正确的时间。
n ntp的网络安全
越来越多的计算机与设备使用网络时间协议通过公共互联网来传输时钟数据,进一步同步时钟。但是ntp是少数几个仍在普遍使用的不安全的互联网协议之一。攻击者可以通过观察客户端与服务器之间的网络流量为客户端提供虚假数据,并根据客户端的实现和配置,修改ntp时间戳,强迫将系统时钟设置为任何时间和日期。
一旦客户端的系统时钟不准确,一些程序和服务就可能无法工作,如web服务器证书等以时间作为密钥验证手段(之一)的程序。
在ntp安全方面,赛思做了大量的技术研究和安全防护,如传送时间戳和重放检测;消息摘要保护数据包的完整性检测;autokey模型自动分发对称摘要密钥的保护措施;md5 身份验证;网络黑名单;基于autokey模型的ntp协议序列的保护措施;限制数据包到达率抵抗消耗资源的dos攻击防护等。
赛思为广大用户提供精确时间的同时,也为用户享受服务过程中的安全性着想。在持续创新专研过程中,与广大用户和凯时尊龙官网的合作伙伴双赢。