ntp同步原理和时钟层级

描述

NTP

  1. ntp时钟层级

ntp允许客户端从服务器请求和接收时间,而服务器又从权威时钟源(例如原子钟、GPS)接收精确的协调世界时UTC。

ntp以层级来组织模型结构,层级中的每层被称为Stratum。通常将从权威时钟获得时钟同步的ntp服务器的层数设置为Stratum1,并将其作为主时间服务器,为网络中其他的设备提供时钟同步。而Stratum 2则从Stratum 1获取时间,Stratum 3从Stratum2获取时间,以此类推。时钟层数的取值范围为1~16,取值越小,时钟准确度越高。层数为1~15的时钟处于同步状态;层数为16的时钟被认为是未同步的,不能使用的。

客户端

  1. ntp同步原理

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报文都是数据报文,报文如下图:

客户端

客户端

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分