What—啥是NTP
NTP是在分布式网络中,进行时钟同步的协议,其具有较高的时间同步精度。所使用的传输层协议为UDP,使用端口号为123。
Why—为什么需要NTP
- 分布式网络中,设备数量多,使用NTP同步时间,节省网管工作量。
- 计费系统对时间一致性有要求,计费不准会出事。
- 多个系统之间按照时间顺序处理负责事务,时间保持同步是基础。
总之许多业务和日常生活中,许多地方都离不开NTP协议。
How—NTP实现原理
如上图,NTP协议报文交互一共需要发送两个报文,携带的时间信息:
- Client发送请求报文给Server,携带了发出时刻Client端时间t1。
- Server发送响应报文给Client,携带了Server收到请求报文的Server端时刻t2,发送应答报文的时刻t3。
- 此外Client收到响应报文时,记录收到响应报文Client时刻为t4。
根据t1,t2,t3,t4这4个时刻,下面来介绍如何计算出Server和Client的时间差offset。
进而Client端根据这个算出的offset来更新本地时间,做到与Server同步。