背景:由于业务需求,我要计算两个手机的通讯的延迟时间。在之前我要将两台手机进行时间同步,下面介绍NTP时间同步原理。

客户端请求时间等于服务端返回时间时:

根据上图得知,当客户端与服务端通讯时间恒定为1秒时,时间同步计算较准确。

客户端请求时间大于服务端返回时间时:

此时,计算时间差为3.5,比实际大0.5秒,有误差。

客户端请求时间小于服务端返回时间时:

此时,计算时间差为2.5,比实际小0.5秒,有误差。

结论:当往返网络时间耗时不一致时,NTP同步时间也会有误差。实际中我们可以多同步几次,找出误差最小的值即可,以降低误差。

NTP工作原理介绍 http://ntp.neu.edu.cn/archives/92/

NTP时间同步Java代码 https://github.com/praveendath92/ntp-timesync

发表评论

电子邮件地址不会被公开。 必填项已用*标注