网络时间协议NTP(Network Time Protocol)是TCP/IP协议族里面的一个应用层协议。NTP用于在一系列分布式时间服务器与客户端之间同步时钟。NTP的实现基于IP和UDP。NTP报文通过UDP传输,端口号是123。
随着网络拓扑的日益复杂,整个网络内设备的时钟同步将变得十分重要。如果依靠管理员手工修改系统时钟,不仅工作量巨大,而且时钟的准确性也无法得到保证。NTP的出现就是为了解决网络内设备系统时钟的同步问题。
NTP客户端和NTP服务器相连,它们都有自己独立的系统时钟,现在通过NTP实现系统时钟自动同步。
设定参数及同步方式如下:
在NTP客户端和NTP服务器的系统时钟同步之前,NTP客户端的时钟设定为Ta,NTP服务器的时钟设定为Tb。
NTP服务器作为NTP时间服务器,NTP客户端的时钟要与NTP服务器的时钟进行同步。
这里描述的原理是在NTP客户端和NTP服务器的系统时钟精度为0,即完全精确的场景下进行的。
系统时钟的同步流程如下:
- NTP客户端在T1时刻发送一个NTP请求报文给NTP服务器,该请求报文携带离开NTP客户端时的时间戳T1。
- NTP请求报文到达NTP服务器,此时NTP服务器的时刻为T2。NTP服务器处理之后,于T3时刻发出NTP应答报文。该应答报文中携带离开NTP客户端时的时间戳T1、到达NTP服务器时的时间戳T2、离开NTP服务器时的时间戳T3。
- NTP客户端在T4时刻接收到该应答报文。
通过上面的NTP报文交互,NTP客户端获得4个时间参数,分别为T1、T2、T3、T4