前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >京准电子分享:NTP(网络时间同步服务)原理与实现

京准电子分享:NTP(网络时间同步服务)原理与实现

原创
作者头像
NTP网络同步时钟
发布2024-05-24 15:26:41
1050
发布2024-05-24 15:26:41
举报

京准电子分享:NTP(网络时间同步服务)原理与实现

京准电子分享:NTP(网络时间同步服务)原理与实现

一、NTP协议

NTP(Network Time Protocol, 网络时间协议)是基于UDP的一种用于计算机时间同步的应用层协议,NTP使用协调世界时(UTC)以极高的精度同步计算机时钟时间,例如在局域网(LAN)中低至1毫秒,在互联网上则在数十毫秒内。

二、NTP工作原理

NTP通过原子钟、天文台、卫星或者互联网上获取准确的时间来源,并通过不同的等级对服务器进行分层来同步时间。按照离外部UTC时间源的远近,NTP将服务器归入不同的层(Stratum)中,最顶层为有外部UTC接入的Stratum-1,而Stratum-2就会从Stratum-1获取时间,以此类推,最大层数为15层。因此,层数越大时间准确度相对越低,层数16表示未同步。

系统时钟的同步流程如下:

1、NTP客户端在T1时刻发送一个NTP请求报文给NTP服务器,该请求报文携带离开NTP客户端时的时间戳T1。

2、NTP请求报文到达NTP服务器,此时NTP服务器的时刻为T2。

3、NTP服务器处理之后,于T3时刻发出NTP应答报文。该应答报文中携带离开NTP客户端时的时间戳T1、到达NTP服务器时的时间戳T2、离开NTP服务器时的时间戳T3。

4、NTP客户端在T4时刻接收到该应答报文。

通过上面的NTP报文交互,NTP客户端获得4个时间参数,分别为T1、T2、T3、T4。由于NTP客户端和NTP服务器的时钟完全精确,我们可以通过以下公式计算出NTP客户端与NTP服务器之间的时间差,也就是NTP客户端需要调整的时间。

首先计算NTP报文从NTP客户端发送到NTP服务器所需要的时间Delay,Delay = [ ( T4 - T1 ) - ( T3 - T2 ) ] / 2

以T4时刻为例,在这个时刻点,NTP服务器发送过来的报文被NTP客户端接收到时,服务器的时刻已经为T3 + Delay。那么时间差Offset可由以下公式进行计算:T4 + Offset = T3 + Delay

公式整理之后,Offset = T3 + Delay - T4 = T3 + [ ( T4 - T1 ) - ( T3 - T2 ) ] / 2 - T4 = [ ( T2- T1 ) + ( T3 - T4 ) ] / 2。

NTP客户端根据计算得到Offset来调整自己的时钟,实现与NTP服务器的时钟同步。

三、配置实现方法

ntpd的配置文件为/etc/ntp.conf,其中restrict用于设置访问权限,server用来设置上层时间服务器。

  • restrict设置语法为restrict IP地址 mask 子网掩码 parameter ,用于给指定的客户端访问本服务器的权限。参数主要有:
  • server设置语法为server [IP] [parameter],参数主要有:
  • IP为127.127.1.0表示将本地时钟设置为时钟源,并用fudge 127.127.1.0 stratum 1-16设置本地时钟源的层次。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据安全审计
腾讯云数据安全审计(Data Security Audit,DSAudit)是一款基于人工智能的数据库安全审计系统,可挖掘数据库运行过程中各类潜在风险和隐患,为数据库安全运行保驾护航,是企业的等保合规利器。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档