NTP协议
参考地址:
http://bjtime.cn/info/view.asp?id=270
https://blog.csdn.net/dosthing/article/details/81588219
https://www.pianshen.com/article/87901514241/
https://www.ietf.org/rfc/rfc5905.txt
一. 什么是NTP
NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC,再配合各个时区的偏移调整就能实现精准同步对时功能。提供NTP对时的服务器有很多,比如微软的NTP对时服务器,利用NTP服务器提供的对时功能,可以使我们的设备时钟系统能够正确运行。
二. NTP工作原理

该图显示了NTP的基本工作原理。设备A和设备B通过网络连接。它们都有各自独立的系统时钟,并且它们需要通过NTP实现其系统时钟的自动同步。为了便于理解,进行以下假设:
1. 设备A向设备B发送NTP消息。消息离开设备A时带有时间戳。时间戳为10:00:00 am(T1)。
2. 当此NTP消息到达设备B时,设备B添加其自己的时间戳。时间戳是11:00:01 am(T2)。
3. 当此NTP消息离开设备B时,设备B添加其自己的时间戳并将时间戳更改为11:00:02(T3)。
4. 设备A收到响应消息后,设备A的本地时间为上午10:00:03(T4)。
5. 此时,设备A具有足够的信息来计算两个重要参数:
(1)NTP数据包的往返延迟为Delay =(T4-T1)-(T3-T2)= 2秒。
(2)设备A和设备B之间的时间差为offset =((T2-T1)+(T3-T4))/ 2 = 1小时。
这样,设备A可以根据该信息设置自己的时钟,并将其与设备B的时钟同步。以上内容只是对NTP工作原理的粗略描述
三. 时间戳和校时算法
struct TimeStamp {
unsigned int integer;
unsigned int fraction;
};
前32bits表示1900年以来的秒数。后32bits用以表示秒以下的部份,是微秒数的4294.967296(=2^32/10^6)倍
Originate Timestamp T1 客户端发送请求的时间
Receive Timestamp T2 服务器接收请求的时间
Transmit Timestamp T3 服务器答复时间
Destination Timestamp T4 客户端接收答复的时间
计算网络延时 d 和服务器与客户端的时差 t:
d = (T2 - T1) + (T4 - T3);
t = [(T2 - T1) + (T3 - T4)] / 2;
如果网络延时和服务器运行稳定,理论上可以精确到到2的-32次方秒。实际使用大约只有50ms(广域网)左右,在局域网可达1ms。精度和您选择什么样的一组服务器有关

浙公网安备 33010602011771号