NTP同步原理
NTP基本工作原理,客户端A和服务器B通过网络相连,它们都有自己独立的系统时钟,要实现各自系统时钟的自动同步,作如下假设:
客户端A和B的系统时钟同步之前,客户端A的时钟设定为10:50:00am,服务器B的时钟设定为11:00:00am。以服务器B为NTP时间服务器,即客户端A将使自己的时钟与服务器B的时钟同步。数据包在客户端A和B之间单向传输所需要的时间为1秒。
系统时钟同步的工作过程如下:
客户端A发送一个NTP消息包给服务器B,该消息包带有它离开客户端A时的时间戳,该时间戳为10:50:00am(T1)。
当此NTP消息包到达服务器B时,服务器B加上自己的时间戳,该时间戳为11:00:01am(T2)。
当此NTP消息包离开服务器B时,服务器B再加上自己的时间戳,该时间戳为11:00:02am(T3)。
当客户端A接收到该响应消息包时,加上一个新的时间戳,该时间戳为10:00:03am(T4)。
至此,客户端A 拥有足够信息来计算以下两个重要参数:
NTP 消息来回一个周期的时延:Delay=(T4-T1)-(T3-T2)。
RouterA 相对RouterB 的时间差:Offset=((T2-T1)+(T3-T4))/2。
RouterA 根据这些信息来设定自己的时钟,实现与RouterB 的时钟同步。
NTP使用端口以下两幅图为NTP的抓包,10.121.35.26为一台HJ210-BDRBP时钟服务器,10.121.35.1为一台客户端。
10.121.35.1为一台客户端
由抓包分析,客户端通过一个随机端口向服务器的123端口发送NTP查询包,服务器在接受到查询包后,通过123端口到达服务器的发送端口,来实现同步。
日常抓包中常见的是源端口和目的端口都是123的数据包。如下图:
授时功能的完成
在日常网络策略开放中,为实现授时功能的完成,需开放客户端和服务器双向的UDP123端口。有时只开发单向UDP123端口仍可以授时,是应为部分防火墙默认是对相同方向UDP数据包如果一路开放,另外一路默认准许通行,其并不是只开发单向链路就可以实现校时功能。
扫一扫咨询微信客服