NTP
ntp允许客户端从服务器请求和接收时间,而服务器又从权威时钟源(例如原子钟、GPS)接收精确的协调世界时UTC。
ntp以层级来组织模型结构,层级中的每层被称为Stratum。通常将从权威时钟获得时钟同步的ntp服务器的层数设置为Stratum1,并将其作为主时间服务器,为网络中其他的设备提供时钟同步。而Stratum 2则从Stratum 1获取时间,Stratum 3从Stratum2获取时间,以此类推。时钟层数的取值范围为1~16,取值越小,时钟准确度越高。层数为1~15的时钟处于同步状态;层数为16的时钟被认为是未同步的,不能使用的。
ntp最典型的授时方式是Client/Server方式,如下图所示。
ntp同步原理
客户端首先向服务端发送一个ntp请求报文,其中包含了该报文离开客户端的时间戳t1;
ntp请求报文到达ntp服务器,此时ntp服务器的时刻为t2。当服务端接收到该报文时,ntp服务器处理之后,于t3时刻发出ntp应答报文。该应答报文中携带报文离开ntp客户端时的时间戳t1、到达ntp服务器时的时间戳t2、离开ntp服务器时的时间戳t3;
客户端在接收到响应报文时,记录报文返回的时间戳t4。
客户端用上述4个时间戳参数就能够计算出2个关键参数:
ntp报文从客户端到服务器的往返延迟delay。
客户端与服务端之间的时间差offset。根据方程组:
可以解得时间差为:
ntp客户端根据计算得到的offset来调整自己的时钟,实现与ntp服务器的时钟同步。
如果从简单实现时钟同步角度来说,ntp是最简单的,因为ntp一个request/response就能够完成同步了,ntp使用udp协议,端口为123。ntp主要分数据报文和控制报文两大类,request/response报文都是数据报文,报文如下图:
全部0条评论
快来发表一下你的评论吧 !