开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情
在很多无线网络网站上,都有同步时间的选项,有手动同步时间,也有根据NTP服务器同步时间的。NTP服务器是什么呢?NTP服务器是基于NTP协议的一种用来同步时间的服务器。NTP协议即网络时间协议,通过NTP协议可以更加精确的同步时间,它比手动的时间同步更加精确。
目前对NTP协议的实现比较成熟的有三种软件,分别是NTP、Chrony和Openntpd,这三种软件都是开源的,并且现在还在继续维护中的软件。NTP和Chrony这两种软件是基于NTP协议的,Openntpd是基于SNTP协议的,SNTP协议即简单网络时间协议,功能和NTP协议一样,都是用来同步时间,后面会单独写一篇文章详细讲述SNTP协议。
SNTP协议的精度没有NTP协议高,对于大多数业务场景来说,精度是很重要的,所以大家经常选择使用的是NTP和Chrony两种软件。但是在Busybox中默认存在Openntpd这个服务,而且在BusyBox中还对Openntpd进行了升级,结合了NTP协议中的一些算法,相对提升了Openntpd的校时精度。所以,对于一些自带BusyBox的linux系统、专门定制了Busybox的系统,选用Openntpd是更方便的,不用再去引入外来的软件,大大减轻系统的负担。
对于NTP和Chrony两种软件,如果业务场景是包含Windows系统的,就只能使用NTP软件了。因为,只有NTP软件是支持Windows系统的。如果业务场景没有Windows系统的需求,而且可以从外部引入软件,选择Chrony是更好的。Chrony的精度相比NTP更高,而且占用内存更小,校时周期和速度更快。目前的主流Linux系统,例如Ubantu和Centos已经开始默认自带Chrony,在之前的版本是默认自带NTP的。
目前对于不同的业务场景,可以选择对应的软件,当然,也可以自己去实现NTP服务器,这个会在后面的文章中详细介绍。