NTP 网络时间协议

article/2025/10/6 17:16:14

目录

基本原理

结构

工作模式

单播C/S模式

对等体模式

 广播模式

组播模式

多播模式

NTP访问控制

访问权限

KOD

认证功能

配置


    

    NTP用于在一系列分布式时间服务器与客户端之间同步时钟。基于IP和UDP。NTP报文通过UDP传输,端口号是123.

NTP主要应用于网络中所有设备时钟需要保持一致的场合,比如:

  • 网络管理:对从不同路由器采集来的日志信息、调试信息进行分析时,需要以时间作为参照依据。
  • 计费系统:要求所有设备的时钟保持一致。
  • 多个系统协同处理同一个复杂事件:为保证正确的执行顺序,多个系统必须参考同一时钟。
  • 备份服务器和客户机之间进行增量备份:要求备份服务器和所有客户机之间的时钟同步。
  • 系统时间:某些应用程序需要知道用户登录系统的时间以及文件修改的时间。

基本原理

设定参数及同步方式如下:

  • 在NTP客户端和NTP服务器的系统时钟同步之前,NTP客户端的时钟设定为Ta,NTP服务器的时钟设定为Tb。

  • NTP服务器作为NTP时间服务器,NTP客户端的时钟要与NTP服务器的时钟进行同步。

  • 这里描述的原理是在NTP客户端和NTP服务器的系统时钟精度为0,即完全精确的场景下进行的。

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

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

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

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

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

  1. 计算NTP报文从NTP客户端发送到NTP服务器所需要的时间Delay。

    Delay = [ ( T4 - T1 ) - ( T3 – T2 ) ] / 2

  2. 计算NTP客户端与NTP服务器之间的时间差Offset。

    以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服务器的时钟同步。

结构

在NTP的网络结构中,主要存在如下概念:

  • 同步子网:如图1所示,由主时间服务器、二级时间服务器、PC客户端和它们之间互连的传输路径组成同步子网。
  • 主时间服务器:通过线缆或无线电直接同步到标准参考时钟,标准参考时钟通常是Radio Clock或卫星定位系统等。
  • 二级时间服务器:通过网络中的主时间服务器或者其他二级服务器取得同步。二级时间服务器通过NTP将时间信息传送到局域网内部的其它主机。
  • 层数(stratum):层数是对时钟同步情况的一个分级标准,代表了一个时钟的精确度,取值范围1~15,数值越小,精确度越高。1表示时钟精确度最高,15表示未同步。

        在正常情况下,同步子网中的主时间服务器和二级时间服务器呈现出一种分层主从结构。在这种分层结构中,主时间服务器位于根部,二级时间服务器向叶子节点靠近,层数递增,准确性递减,降低的程度取决于网络路径和本地时钟的稳定性。

如此设计的目的是:

  • 当一台或多台主/二级时间服务器或它们之间的网络路径发生故障时,同步子网的主从分层结构将自动发生重构以获得最精确和最可靠的时间。
  • 当同步子网中正常使用的主时间服务器都失效,备用的主时间服务器将继续运行。

        当子网中所有的主时间服务器都失效时,其它二级时间服务器将在它们内部达到同步。此时,这些二级时间服务器将脱离同步子网,自动运行在它们最后一次确定的时间和频率。由于这些路由器计算精度很高,所以当一台具有比较稳定的振荡器的路由器长时间脱离子网时,它的计时误差可以保持在一天不大于几毫秒。

工作模式

单播C/S模式

运行在同步子网中层数较高层上。这种模式下,需要预先知道服务器的IP地址。

        运行在这种模式的主机,通常是网络内部的工作站,它可以依照对方的时钟进行同步,但不会修改对方的时钟。

对等体模式

 广播模式

        应用在有多台工作站、不需要很高的准确度的高速网络。典型的情况是网络中的一台或多台时间服务器定期向工作站发送广播报文,广播报文在毫秒级的延迟基础上确定时间。

        广播服务器:行在广播模式的主机通常是网络内运行高速广播介质的时间服务器,向所有对等体提供同步信息,但不会修改自己的时钟。

        广播客户端:客户端侦听来自服务器的时钟同步报文。即客户端先启用一个短暂的服务器/客户端模式与远程服务器交换消息,以获得客户端与服务器间的网络延迟。之后恢复广播模式,继续侦听时钟同步报文的到来,根据到来的时钟同步报文对本地时钟再次进行同步。

组播模式

        适用于有大量客户端分布在网络中的情况。通过在网络中使用NTP组播模式,NTP服务器发送的组播消息包可以到达网络中所有的客户端,从而降低由于NTP报文过多而给网络造成的压力。

多播模式

        适用于服务器分布分散的网络中。客户端可以发现与之最近的多播服务器,并进行同步。多播模式适用于服务器不稳定的组网环境中,服务器的变动不会导致整网中的客户端重新进行配置。

多播服务器:多播服务器持续侦听报文。若某个服务器可以被同步,则服务器将使用客户端的单播地址返回报文(Mode字段设置为4)。

多播客户端:多播模式下的客户端周期性地向IPv4/IPv6组播地址发送请求报文(Mode字段设置为3)。

      为了防止多播模式下,客户端不断的向多播服务器发送NTP请求报文增加设备的负担,协议规定了最小连接数的概念。多播模式下,客户端每次和服务器时钟同步后,都会记录下此次同步过程中建立的连接数,将调用最少连接的数量称为最小连接数。以后当客户端调动的连接数达到了最小连接数且完成了同步,客户端就认为同步完成;同步完成后每过一个超时周期,客户端都会传送一个报文,用于保持连接。同时,为了防止客户端无法同步到服务器,协议规定客户端每发送一个NTP报文,都会将报文的生存时间TTL(Time To Live)进行累加(初始为1),直到达到最小连接数,或者TTL值达到上限(上限值为255)。若TTL达到上限,或者达到最小连接数,而客户端调动的连接数仍不能完成同步过程,则客户端将停止一个超时周期的数据传输以清除所有连接,然后重复上述过程。

NTP访问控制

        当同步子网中的一台时间服务器发生意外或遭到恶意攻击时,通常不应该导致子网中其它时间服务器的计时错误。因此,NTP还提供了如下安全机制:访问权限、KOD和NTP认证功能。这样就对网络的安全性提供了保障。

访问权限

设备提供一种比较简单安全措施:访问权限,即通过设置访问权限对本地时钟进行保护。

NTP的访问控制基于访问控制列表ACL(Access Control List)实现。NTP支持5个等级的访问限制,每个访问限制可指定相应的ACL规则。如果NTP访问请求命中该访问限制的ACL规则,则说明两者匹配成功,即该访问请求享有此级别的访问限制。

当1个NTP访问请求到达本地时,按照最大访问限制到最小访问限制依次匹配,以第1个匹配的为准,匹配顺序如下:

  1. peer:可以对本地时钟进行时间请求和控制查询,本地时钟也可以同步到远程服务器。

  2. server:可以对本地时钟进行时间请求和控制查询,但本地时钟不会同步到远程服务器。

  3. synchronization:只允许对本地时钟进行时间请求。

  4. query:只允许对本地时钟进行控制查询。

  5. limited:当NTP报文速率高于上限时,丢弃入方向的NTP报文。如果使能KOD功能,此时还发送Kiss码。

KOD

当单位时间内,服务器收到大量客户端访问报文导致无法负荷时,可在服务器上使能KOD(Kiss-o'-Death)功能来进行接入控制。KOD是NTPv4提出的一种全新的访问控制技术,主要用于服务器向客户端提供状态报告和接入控制等信息。

KOD报文是特殊的NTP报文,当NTP报文携带的层数(Stratum)信息为0时,该报文被称为KOD报文,此时报文中会携带代表接入控制信息的ASCII(又称Kiss码)。目前仅支持DENY和RATE两种Kiss码。

在服务器上使能KOD功能后,服务器会根据配置向客户端发送DENY或RATE Kiss码。

  • 当客户端接收到DENY Kiss码,客户端将断开与服务器的所有连接,并停止向服务器发送报文。
  • 当客户端接收到RATE Kiss码,客户端将立即缩短与该服务器的轮询时间间隔,且以后每次接收到RATE Kiss码,轮询时间间隔都会进一步缩短。

认证功能

在安全性要求较高的网络中,可以启用NTP认证功能。不同工作模式下可配置不同的密钥。

当用户在某一NTP工作模式下启用NTP认证时,系统会记录下此工作模式下相应的密钥ID。

配置

全局下 S

ntp-service refclock-master x   指定使用自己的本地时钟作为参考时钟,层数为x

全局下 C

ntp-service unicast-server [S ID] authentication-keyid [ID]

ntp认证

ntp-service authentication enable 

ntp-service authentication-keyid [ID] authentication-mode hmac-sha256 [PWD]

ntp-service reliable authentication-keyid [ID]

验证

display ntp-service status

clock status: synchronized   完成同步clock stratum: x   层数


http://chatgpt.dhexx.cn/article/5YZ7j3F8.shtml

相关文章

NTP协议简介

NTP协议简介 一. datec dates分析1. 同步流程2. 缺陷 二. NTP(**Network Time Protocol**)1. NTP概述 [1、2、3、7]2. NTP的时钟同步原理与授时精度分析 [3、1、10]NTP的时钟同步原理NTP的授时精度分析 3. NTP中其它的提高授时精度的措施[1、6]参考资料 三. 对NTP改进以获得更高…

ntp同步详解

一、ntp服务是什么 1.定义 NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。 2.发展 首次记载在Internet Engineering Note之中,其精确度为数百毫秒。 稍后出现了首个时间协议的规范RFC-778,它被命…

NTP协议代码实现

本文将讲解NTP的代码实现和调试过程的一些记录。 首先,进行NTP报文结构体的构建。 //宏定义 #define NTP_TIMESTAMP_DELTA 2208988800ull //number of seconds between 1900 and 1970,1900-1970的时间差 #define SEC_TIME_ZONE (8*60*60) //B…

什么是Ntrip?Ntrip协议简介

文章目录 Ntrip通讯协议1.0Ntrip是什么?Ntrip系统组成NtripServerNtripClient4.1 获取源列表4.2 获取差分数据 其他资料 Ntrip通讯协议1.0 Ntrip是什么? NTRIP是在互联网上进行RTK数据传输的协议。所有的 RTK数据格式(NCT,RTCM&…

网络时间协议NTP介绍

定义 网络时间协议NTP(Network Time Protocol)是TCP/IP协议族里面的一个应用层协议。NTP用于在一系列分布式时间服务器与客户端之间同步时钟。NTP的实现基于IP和UDP。NTP报文通过UDP传输,端口号是123。 目的 随着网络拓扑的日益复杂&#xf…

计算机网络中网络时间协议NTP是什么原理?

NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。在计算机的世界里,时间非常地重要,例如对于火箭发射这种科研活动,对时间的统一性和准确性要求就非常地高,是按照A这台计算机的时…

NTP协议实现

本文出处: http://www.eefocus.com/html/10-04/94667s.shtml 10.4 实验内容 ——NTP协议实现 1.实验目的 通过实现NTP协议的练习,进一步掌握Linux网络编程,并且提高协议的分析与实现能力,为参与完成综合性项目打下良好…

NTP

NTP(Network Time Protocol) 网络时间协议 NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度…

NTP与PTP

NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。 使用NTP的目的是对网络内所有具有时钟的…

通信协议 - ntp时间同步

概述 NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC,再配合各个时区的偏移调整就能实现精准同步对时功能。提供NTP对时的服务器有很多,比如微软的NTP对时服务…

NTP协议原理

什么是NTP协议 当第一次听到NTP时,完全不知道是什么概念,只好问度娘。度娘搜到的答案如下: 看了度娘的解释后,才大概明白该协议是进行网络对时的协议,比如当自己的电脑时间不对,可以从另外一台电脑病基于…

网络时间协议NTP

网络时间协议NTP(Network Time Protocol)是TCP/IP协议族里面的一个应用层协议。NTP用于在一系列分布式时间服务器与客户端之间同步时钟。 随着网络拓扑的日益复杂,整个网络内设备的时钟同步将变得十分重要。如果依靠管理员手工修改系统时钟&a…

NTP网络时间协议

转自https://www.sohu.com/a/206862105_130560 SNPT 秒级时间精度 NTP授时精度与NTP服务器与用户间的网络状况有关:广域网授时精度通常能达50ms级,但有时超过500ms;局域网授时不存在路由器路径延迟问题,因而授时精度理论上可以提…

NTP协议解析

NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。 使用NTP的目的是对网络内所有具有时钟的…

NTP协议详解

前言 NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC,再配合各个时区的偏移调整就能实现精准同步对时功能。提供NTP对时的服务器有很多,比如微软的NTP对时服务…

NTP 协议

NTP: Network Time Protocal 一、定义:为实现高精确度的时间同步,而设计的网络时钟同步协议。在Linux系统中,它的最新实现是NTP 4.0(一个分布式的网络时钟同步程序)。相关定义和实现参看RFC1305和www.ntp.org。NTP协议…

NTP(Network Time Protocol)协议详解

一、NTP的基本概念: NTP(Network Time Protocol)------网络时间协议-----应用层协议,用来在分布式时间服务器和客户端之间进行时间同步。 二、采用NTP的目的: 是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟…

Windows10 debug安装、下载

目录 背景下载安装和使用 背景 由于Windows 10不支持debug命令,如果装虚拟机Windows XP就比较耗内存,所以我用的是DOSBox,然后挂载debug程序文件目录。 下载 DOSBox、debug、masm等等,我已经整理好了,下载地址&…

【WINDOWS系统】WinDbg调试工具

一、Windows 10 调试工具 (WinDbg)的安装 1、下载地址https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debugger-download-tools#small-classic-windbg-preview-logo-debugging-tools-for-windows-10-windbg 2、安装 记录WinDbg安装目录,待会…

windbg 调试崩溃

前言 windbg 是非常强大的调试工具,但是在使用windbg 进修调试时候,很多的命令不知道如何使用。文章简单介绍如何使用windbg进行调试 https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debugger-download-tools 一、Windows 调试入…