NTP就是用来使网络中的各个主机时钟同步的一种协议,他把主机的时钟同步到协调世界时UTC,其精度在LAN网络内可达1毫秒内,在WAN网络上可以达到几十毫秒内。NTP允许客户端从服务器请求和接收时间,而服务器又从权威时钟源(例如原子钟、GPS)接收精确的协调世界时UTC。
NTP以层级来组织模型结构,层级中的每层被称为Stratum。通常将从权威时钟获得时钟同步的NTP服务器的层数设置为Stratum 1,并将其作为主时间服务器,为网络中其他的设备提供时钟同步。而Stratum 2则从Stratum 1获取时间,Stratum 3从Stratum 2获取时间,以此类推。时钟层数的取值范围为1~16,取值越小,时钟准确度越高。层数为1~15的时钟处于同步状态;层数为16的时钟被认为是未同步的,不能使用的。<div data-t="flow" data-processon-v="{"list":[{"parent":"","link":"","shapeStyle":{"alpha":1},"textBlock":[],"anchors":[{"x":"w/2","y":"0"},{"x":"w/2","y":"h"},{"x":"0","y":"h/2"},{"x":"w","y":"h/2"}],"title":"","fontStyle":{},"dataAttributes":[],"props":{"zindex":6,"w":532,"x":1914,"h":348,"y":576,"angle":0},"path":[{"lineStyle":{"lineWidth":0},"actions":[{"x":"0","action":"move","y":"0"},{"x":"w","action":"line","y":"0"},{"x":"w","action":"line","y":"h"},{"x":"0","action":"line","y":"h"},{"action":"close"}]}],"lineStyle":{},"children":[],"resizeDir":["tl","tr","br","bl","l","t","r","b"],"name":"standardImage","fillStyle":{"imageW":532,"display":"stretch","imageH":348,"type":"image","fileId":"https://cdn.processon.com/641e6e20c9154c4a62bf3b77?e=1679719472&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:Ub7y0MJIIhNMf83KGT5UjVAS8V4="},"theme":{},"id":"dNWpwZuJuy818403","attribute":{"container":false,"rotatable":true,"visible":false,"fixedLink":false,"collapsable":false,"collapsed":false,"linkable":true,"markerOffset":5},"category":"standard","locked":false,"group":""}],"client":"1681108923369wFiOkeFQNe525788"}"></div>
<div data-t="flow" data-processon-v="{"list":[{"parent":"","link":"","shapeStyle":{"alpha":1},"textBlock":[],"anchors":[{"x":"w/2","y":"0"},{"x":"w/2","y":"h"},{"x":"0","y":"h/2"},{"x":"w","y":"h/2"}],"title":"","fontStyle":{},"dataAttributes":[],"props":{"zindex":6,"w":532,"x":2044,"h":348,"y":578,"angle":0},"path":[{"lineStyle":{"lineWidth":0},"actions":[{"x":"0","action":"move","y":"0"},{"x":"w","action":"line","y":"0"},{"x":"w","action":"line","y":"h"},{"x":"0","action":"line","y":"h"},{"action":"close"}]}],"lineStyle":{},"children":[],"resizeDir":["tl","tr","br","bl","l","t","r","b"],"name":"standardImage","fillStyle":{"imageW":532,"display":"stretch","imageH":348,"type":"image","fileId":"https://cdn.processon.com/641e6e20c9154c4a62bf3b77?e=1679719472&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:Ub7y0MJIIhNMf83KGT5UjVAS8V4="},"theme":{},"id":"dNWpwZuJuy818403","attribute":{"container":false,"rotatable":true,"visible":false,"fixedLink":false,"collapsable":false,"collapsed":false,"linkable":true,"markerOffset":5},"category":"standard","locked":false,"group":""}],"client":"1681108923369wFiOkeFQNe525788"}"> </div>
NTP授时方式
NTP最典型的授时方式是Client/Server方式<br>
NTP同步原理<br>
1.客户端首先向服务端发送一个NTP请求报文,其中包含了该报文离开客户端的时间戳t1;<br>2.NTP请求报文到达NTP服务器,此时NTP服务器的时刻为t2。当服务端接收到该报文时,NTP服务器处理之后,于t3时刻发出NTP应答报文。该应答报文中携带报文离开NTP客户端时的时间戳t1、到达NTP服务器时的时间戳t2、离开NTP服务器时的时间戳t3;<br>3.客户端在接收到响应报文时,记录报文返回的时间戳t4。
客户端用上述4个时间戳参数就能够计算出2个关键参数:<br>1:NTP报文从客户端到服务器的往返延迟delay。<br>2:客户端与服务端之间的时间差offset。<br>根据方程组:<br>可以解得时间差为:<br>NTP客户端根据计算得到的offset来调整自己的时钟,实现与NTP服务器的时钟同步。
延迟计算
偏移量计算