NTP是计算机系统中的时钟同步协议,基于UDP,端口号123,佰马网关使用服务器/客户模式(server/client),佰马网关作为客户端,本文将详细解析佰马网关与服务端交互的NTP报文。
在佰马网关管理页面,系统设置-时间设置,配置NTP时间服务器,此处举例配置阿里云共有服务器。

配置完NTP服务器抓取数据包,可看到佰马网关与NTP服务器的报文交互。


NTP服务端回应:


假设佰马网关发送数据包的时间维t0,服务端收到数据包的时间为t1,服务端回复数据包的时间为t2,佰马网关收到服务端数据包的时间为t3。
客户端与服务端的时间系统的偏差定义为θ、网络的往/返延迟(单程延时)定义为δ。
则t0+θ+δ=t1
t2-θ+δ=t3
解可得到以下结果:
θ=(t1-t0+t2-t3)/2
δ=(t1-t0+t3-t2)/2
客户端根据自己的时间轴加减时间偏差即可和NTP服务端时间同步。
以上时间校准算法只为理解过程,不代表真实做法。
对于时间要求没那么精准的设备,客户端会把server端的返回时间t2固化为本地时间。
佰马Baimatech,集M2M产品研发、IoT平台服务、国际化运营于一体,让我们联接,共创未来