For details on what NTP is and what it is for, see Wikipedia.
Software "doing" NTP come in several flavors :
... as well as some best practices.
"Full" NTP implementation
- implement the full protocol and algorithms
- have the best precision (provided they have an adequate number of time sources)
- takes precautions by filtering out time discrepancies
- has numerous security features, like authentication, which clarifies the origin of received time-stamps, assuring that data received is not malicious
- can act as a time server
- examples :
"Light" NTP implementation (NTP vs SNTP)
Here comes
SNTP (more at
Wikipedia,
RFC) :
- it doesn't implement all the NTP protocols and algorithms, offering less functionality than full implementation with the benefit of a smaller system footprint
- this suits embedded systems (DVR, routers, ...) and applications where full NTP capacity is not required such as workstations
- does not assess the stability or quality of time references
- may accept any time-stamp that is provided, without taking any precautions to filter out time discrepancies. As a result, SNTP applications :
- are vulnerable to malicious users as they have no security in place
- deliver a lower-quality time sync solution than its NTP counterpart, lacking certain algorithms that ensure total time accuracy
- can not act as a time server
- examples :
sidekicks
These are mostly utilities coming along with a daemon :
I've been pretty puzzled by the fact that RHEL7 has a ntpdate service :
cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.4 (Maipo)
systemctl list-unit-files | grep ntp
ntpd.service enabled
ntpdate.service enabled
- Why is there such a service while ntpdate is supposed to be a utility ?
- What's the point of this service while ntpd is already running ?