什么是NTP?
网络时间协议(NTP)是RFC 1305定义的时间同步协议。它用于在分布式时间服务器和客户端之间同步时间。 NTP基于UDP隔离,并使用UDP端口号123。
使用NTP的目的是使所有设备的时钟与网络上的时钟同步,以使网络上所有设备的时钟保持一致,以便设备可以基于统一时间提供多个应用程序。
对于运行NTP的本地系统,它可以接受来自其他时钟源的同步,还可以用作同步其他时钟的时钟源,并且其他设备可以彼此同步。
NTP如何工作
该图显示了NTP的基本工作原理。设备A和设备B通过网络连接。它们都有各自独立的系统时钟,并且它们需要通过NTP实现其系统时钟的自动同步。为了便于理解,进行以下假设:
- 设备A向设备B发送NTP消息。消息离开设备A时带有时间戳。时间戳为10:00:00 am(T1)。
- 当此NTP消息到达设备B时,设备B添加其自己的时间戳。时间戳是11:00:01 am(T2)。
- 当此NTP消息离开设备B时,设备B添加其自己的时间戳并将时间戳更改为11:00:02(T3)。
- 设备A收到响应消息后,设备A的本地时间为上午10:00:03(T4)。
- 此时,设备A具有足够的信息来计算两个重要参数:
- NTP数据包的往返延迟为Delay =(T4-T1)-(T3-T2)= 2秒。
- 设备A和设备B之间的时间差为offset =((T2-T1)+(T3-T4))/ 2 = 1小时。
这样,设备A可以根据该信息设置自己的时钟,并将其与设备B的时钟同步。以上内容只是对NTP工作原理的粗略描述。有关更多详细信息,请参阅RFC 1305。
NTP工作模式
- 以客户-服务器为基础;
- 在对等模式下;
- 使用广播/多播发送时间。
用户可以根据自己的需要选择合适的工作模式。当无法确定服务器或对端的IP地址,并且网络上需要同步很多设备时,可以通过广播或组播方式实现时钟同步。在服务器和对等方模式下,设备从指定的服务器或对等方启动。
Linux实战部署系列之NTP服务器 https://www.linuxidc.com/Linux/2013-11/92275.htm
本文永久更新链接地址:https://www.linuxidc.com/Linux/2020-03/162610.htm