Linux:NTP校时、PTP校时

目录

  • 前言
  • 一、NTP校时
    • 1、简介
    • 2、ubuntu使用 NTP
    • 3、嵌入式设备使用 NTP 校时
    • 4、NTP 服务器的校时精度
  • 二、PTP校时
    • 1、简介
    • 2、ubuntu使用 PTP
    • 3、嵌入式设备使用 PTP 校时
  • 三、PTP 校时和 NTP 校时那个精度高一些

前言

  在进行网络协议通信时,我们有时候需要计算通信的延迟。一般的方式就是:A端获取本地时间信息并将其填充到网络数据包中进行发送,B端收到数据包后进行解析获取到A发来的时间,然后B获取本地时间进行运算,网络延迟 = B端本地时间 - A端本地时间。

一、NTP校时

1、简介

  NTP(Network Time Protocol)是一种用于同步计算机时间的协议。它能够确保计算机时钟与全球统一的时间标准保持同步。

  NTP使用一组分层的时间服务器来提供准确的时间参考。顶层的时间服务器会从原子钟或其他高精度时间源获取时间,并将它们传播到更低层的服务器。计算机可以连接到这些时间服务器,通过网络同步其本地时钟。

在使用NTP时,计算机可以扮演两种角色:NTP服务器和NTP客户端。

  • NTP服务器:它是一个拥有准确时间的计算机,可以提供时间服务给其他计算机。NTP服务器的时钟通常与原子钟或其他高精度时间源同步。

  • NTP客户端:它是需要同步时间的计算机,通过与NTP服务器通信来获取时间。NTP客户端的时钟会根据服务器提供的时间进行调整。

  要使用NTP,首先需要连接到一个可靠的NTP服务器。你可以选择使用自己搭建的NTP服务器,也可以连接到公共的NTP服务器。一些常用的公共NTP服务器请点击:国内外常用公共NTP网络时间同步服务器地址

  在Linux系统中,可以使用ntpdate命令手动同步时间,或者安装并配置NTP软件来自动同步时间。通过配置NTP服务器地址,你的计算机将自动定期与指定的服务器进行时间同步。

  总之,NTP是一种用于同步计算机时间的协议,在Linux系统上可以使用ntpdate命令或配置NTP服务器来实现时间同步。

2、ubuntu使用 NTP

在Ubuntu系统中进行NTP校时,可以按照以下步骤进行操作:

  1. 打开终端,使用root权限或sudo命令切换到超级用户。

  2. 安装NTP服务:

    sudo apt-get install ntp
    sudo apt install ntpdate
    
  3. 配置NTP服务器,打开NTP配置文件ntp.conf:

    sudo vi /etc/ntp.conf
    

  在文件中找到pool行,将其注释掉或删除。添加以下行来配置NTP服务器,可以使用公共的NTP服务器,例如ntp.aliyun.com、ntp.ubuntu.com等、也可以使用其他可靠的NTP服务器,根据您的地理位置或需求进行选择。

pool ntp.aliyun.com

在这里插入图片描述

ubuntu配置文件中的pool命令:可以用于设置NTP服务器的池地址。

	在网络时间协议(NTP)中,池(Pool)是由一组服务器组成的群集,它们共同提供NTP服务以
帮助网络中的计算机同步时间。因此,池地址指向的实际上是一组服务器,而不是单个服务器。

	池的目的是提供高可靠性和可扩展性的NTP服务。对于需要高度可靠性和可用性的应用程序(如
金融交易),使用池地址可以确保在某些服务器无法使用或无法访问时,计算机仍然可以从其他可用
的服务器同步时间。池还可以根据使用情况来自动调整服务器列表,以确保更好的服务质量。

	通常,池地址由一个或多个DNS记录表示,这些DNS记录指向由多个实际服务器构成的池。当计
算机需要同步时间时,它将向DNS服务器查询池地址,并从池中返回最近的可用服务器进行时间同步。
这种方法可以确保计算机可以随时从可用服务器进行时间同步。

	总之,池地址指向的是NTP服务器池,它由多个服务器组成,可提供高度可靠的NTP服务,以帮助
计算机同步时间。
  1. 保存并关闭文件。

  2. 重新启动NTP服务,然后查看运行状态:

    sudo systemctl restart ntp
    sudo systemctl status ntp
    

6.查看对比校时前后的时间,验证NTP校时:
也使用ntpdate命令来手动进行NTP校时并检查同步情况:

sudo ntpdate -q ntp.aliyun.com

如果ntpdate命令返回输出中的offset为0,表示成功进行了校时。

  1. 设置NTP服务开机启动:
    sudo systemctl enable ntp
    

  通过以上步骤,Ubuntu系统将会使用指定的NTP服务器进行自动校时和同步。请确保您的计算机有稳定的网络连接以获得准确的时间信息。

  在Ubuntu系统中进行NTP校时,可以按照以下步骤进行操作:Ubuntu18.04 NTP 时间校准同步

3、嵌入式设备使用 NTP 校时

  BusyBox是一个由独立的、小型的UNIX实用工具程序集合组成的软件。它通常在嵌入式Linux系统中使用,以提供一些基本的UNIX命令和功能。BusyBox主要用于在资源受限的环境(如路由器、嵌入式设备等)中提供一个功能齐全的用户环境。

  BusyBox工具集包含了几乎所有的UNIX核心功能,包括文件、Shell、计算机网络和系统管理等。其内的ntpd命令就可用于进行NTP校时,并且支持了NTP服务功能。如果使用gcc交叉编译,则生成的busybox工具也可用于PCubuntu系统。

  BusyBox编译出来后内部包含了一个ntpd工具,使用该工具就可以进行ntpd校时;编译该工具可能会遇到的环境问题:busybox编译 fatal error: curses.h: 没有那个文件或目录解决办法

  顺便给大家找了几篇他人写的教程,小白可以看下,老鸟就不需要了:

https://blog.csdn.net/weixin_44773416/article/details/127389567

https://blog.csdn.net/npy_lp/article/details/6989669/

https://blog.csdn.net/qwqwqw1232/article/details/121164554

https://blog.csdn.net/MashiMaroJ/article/details/126308085

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  也可以./busybox ntpd -p ntp.aliyun.com这样执行,如此ntpd将会作为一个后台程序不断与ntp服务器通信进行校时;

  也可以设备作为ntp服务器,命令如下: ./busybox ntpd -l -I 网卡名,然后客户端执行./busybox ntpd -p 服务器ip

4、NTP 服务器的校时精度

  NTP(Network Time Protocol)是一种用于同步计算机系统时钟的协议。NTP校时的精度取决于许多因素,包括网络延迟、硬件设备的精度以及所使用的NTP服务器的质量。在Ideally(完美地)情况下,NTP可以提供非常高精度的时间同步,通常在毫秒或微秒级别。

NTP的时间同步级别可以分为以下几个级别:

  1. Stratum 0: 系统中使用原子钟或GPS设备等硬件设备作为时间源的计算机,被认为是Stratum 0级别。这些设备提供最高级别的精度。
  2. Stratum 1: Stratum 1是指直接与Stratum 0设备同步的计算机。这些计算机通常是使用专门的NTP服务器或GPS接收器,提供非常高精度的时间同步。
  3. Stratum 2: Stratum 2是指与Stratum 1设备同步的计算机。这些计算机通过网络与Stratum 1服务器进行时间同步,提供较高的精度。
  4. Stratum 3: Stratum 3是指与Stratum 2设备同步的计算机。这些计算机通常是通过网络与Stratum 2服务器同步时间,提供相对较低的精度。

  在实际应用中,大多数计算机使用Stratum 2或更高级别的时间源进行NTP校时。根据网络延迟和设备精度的不同,NTP可以提供从毫秒级到微秒级的时间同步精度。需要注意的是,真正达到微秒级别的精度需要严格控制网络延迟、使用高精度的硬件设备,并使用可靠的Stratum 1或Stratum 2时间源。

二、PTP校时

1、简介

  Linux PTP是Linux平台下用于高精度时间同步的协议,全称为Linux Precision Time Protocol,其实现了IEEE 1588 v2 协议。借助硬件时钟(需要硬件支持),Linux PTP可提供纳秒级别的时间同步服务,其主要适用于系统间的高精度时间同步,比如延迟敏感时序系统以及实时数据或语音系统。

PTP(Precision Time Protocol)校时通常需要硬件支持。PTP 是一种专门用于网络时钟同步的
协议,可以实现高精度的时钟同步。

硬件上的支持可以包括以下方面:

1. 硬件时钟:PTP 需要硬件设备提供一个可靠和准确的时钟源,用于产生时间戳和参考时间。硬件
时钟通常是一种稳定的晶体振荡器或原子钟。

2. 硬件时间戳:PTP 数据包需要在网络设备上进行时间戳标记,以便在传输过程中精确测量延迟。
一些网络设备(例如交换机、网卡)具备硬件时间戳功能,可以在硬件级别上执行时间戳操作,提
供更准确和一致的时间戳。

3. 支持 PTP 协议的网络设备:PTP 需要网络设备能够处理并传递 PTP 数据包,以实现时钟同步。
因此,网络设备如交换机、路由器和网卡需要支持 PTP 协议,并具备处理 PTP 数据包的能力。

综上所述,PTP 校时通常需要一些硬件上的特殊支持,包括稳定的硬件时钟、硬件时间戳功能和支持 
PTP 协议的网络设备,以保证高精度的时钟同步。

  Linux PTP是开源软件,是Linux内核的一部分,并且自内核版本3.0开始被完整支持。Linux PTP 不仅支持Master-Slave模式,还支持Boundary-Clock模式和Transparent-Clock`模式。

  Linux PTP基于IEEE 1588 v2协议实现,该协议是跨平台的高精度时间同步协议,可支持Nano秒级别的同步精度。协议的核心思想是 Master 时钟 向 Slave 时钟发送Sync报文,通过计算往返时间算出偏差,再向Slave时钟发送Delay_Req报文,最终实现时间同步。除此之外,还支持Boundary-Clock模式和Transparent-Clock模式。IEEE 1588 v2协议支持多路时钟同步,且同步精度远高于SNTP/NTP协议。

  Linux PTP的程序架构如下:其中PTP4LLinux PTP的主要组件,提供P2PBoundary-ClockTransparent-Clock等模式的实现。Phc2sys则是Linux PTP的辅助程序,是软件时钟和硬件时钟之间的桥梁。Phc2sys会根据PTP4L发送的时间戳进行计算,实现时间同步。

  Boundary-Clock(边界时钟)模式Transparent-Clock(透明时钟)模式是在网络中使用PTP(Precision Time Protocol)协议进行时钟同步时的两种不同角色。

  Boundary-Clock(边界时钟)模式:边界时钟是一种网络设备,通常是交换机或路由器,它作为 PTP 网络的边界节点,连接多个时钟域。它在每个时钟域之间进行时间协调,并将 UTC(协调世界时)或 PTP 主时钟信息分发给其他从时钟。

  边界时钟模式主要用于连接更大、更复杂的网络环境,它可以为整个网络提供准确的主时钟,并充当时钟协调者。边界时钟会收集其他时钟源的信息并与自己的本地时钟同步,同时也将同步信息传递给其他时钟设备,确保整个网络具有一致的时间参考。

  Transparent-Clock(透明时钟)模式:透明时钟是一种网络设备,也可以是交换机或路由器,它位于 PTP 网络中的中间节点。透明时钟在数据传输过程中,会记录 PTP 数据包的到达和离开时间,并通过时间戳来计算传输延迟,然后在数据包中透明地插入这些信息。这样,透明时钟可以校正传输延迟,保持时钟同步性。

  透明时钟模式主要用于比较复杂的网络环境,其中有许多中间设备和传输链路。它不会干预整个网络的时间同步,而是透明地记录和处理传输延迟,确保网络中的时钟同步性。透明时钟可以提供比边界时钟更精确的时间同步,因为它可以根据路径中的实际延迟来对时间进行校正。

  边界时钟 和 透明时钟模式通常一起使用,以构建一个高精度的时间同步网络。边界时钟用于提供时间参考和协调,而透明时钟则用于记录和校正传输延迟,确保时钟同步性。它们共同工作,使整个网络具有一致和准确的时间参考。

  Linux PTP主要应用在网络中的时序同步,是许多高精度时序系统的基础。其中应用广泛的场景包括:

1)实时音视频传输系统:保证严格的同步要求,防止声音和图像的不同步。
2)金融交易系统:防止环境因素对交易数据造成干扰。
3)工控系统:同步系统时序,保持设备状态的一致性。
4)计算集群:同步计算节点时序,确保节点之间的同步。

2、ubuntu使用 PTP

  网上看了一篇他人的博客,验证可行:【ARM微型电脑/IoT设备/嵌入式】Linux Ubuntu 树莓派 Jetson nano设置PTP时间同步

3、嵌入式设备使用 PTP 校时

  很多前辈写了特别好的文章进行讲解,我就不班门弄斧了,不然就是制造垃圾了!!!个人看过,精品
    浅聊一下Linuxptp
    linux ptp时钟同步

三、PTP 校时和 NTP 校时那个精度高一些

  相对而言,PTP(Precision Time Protocol)的时间同步精度通常要比NTP(Network Time Protocol)更高。以下是两者之间的一些比较:

  1. 时间精度:PTP提供了更高的时间同步精度,可以实现纳秒级的时间同步。这对于需要高度准确性的应用,如金融交易、科学实验等是非常重要的。NTP的时间同步精度通常在毫秒或亚毫秒级别。

  2. 网络延迟:PTP更加敏感于网络延迟。它能够通过测量数据包传输的延迟来进行时钟校正,以实现高精度的时间同步。NTP相对来说对网络延迟更加容忍,它使用时钟滤波和平滑算法来抵抗网络延迟对时间同步的影响。

  3. 设备支持:NTP是一种相对较简单且广泛支持的时间同步协议,因此大多数操作系统和设备都可以方便地支持NTP。相比之下,PTP的支持相对较少,并且对于支持PTP的设备,通常需要具备更高的硬件和软件要求。

  4. 成本:PTP的实现和部署相对较复杂,需要更高的硬件和网络基础设施成本。NTP则是一种相对成本较低的解决方案,几乎可以在任何主流设备和操作系统中使用。

  综上所述,如果您对时间同步的精度要求非常高,特别是在需要高度准确性的应用中,如金融、科学、工业自动化等领域,PTP是更合适的选择。对于大多数其他应用,NTP通常足够满足时间同步的需求。

  欢迎大家指导和交流!如果我有任何错误或遗漏,请立即指正,我愿意学习改进。期待与大家一起进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/322030.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

桌面显示器type-c接口方案

在当今时代,TYPE-C接口桌面显示器已经成为了我们生活和工作中不可或缺的重要设备之一。与传统显示器相比,新型的TYPE-C接口桌面显示器具有更多的功能和优势,其中最显著的特点就是支持视频传输和充电功能。 首先,TYPE-C接口桌面显示…

mybatis在resultmap的子查询中使用传到mapper中的参数

1.将要传递的参数作为虚拟列加入到select语句中 2.使用column进行虚拟列的数据传递,在子查询中就能直接使用了,等于号两边名字一样免得区分,只要是出现在夫查询select语句中的都能传递 3.在子查询中使用参数 上图 上述的方法只限单值变量 …

NLP论文阅读记录 - 2021 | WOS 智能树提取文本摘要深度学习

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.前提三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 An Intelligent Tree Extractive Text Summarization Deep Learning …

优优聚美团代运营服务:实现业务增长的不二之选

随着互联网的普及和电商行业的快速发展,越来越多的商家选择在美团等电商平台开展业务。然而,很多商家由于缺乏专业的电商运营知识和经验,难以在激烈的市场竞争中脱颖而出。此时,美团代运营服务应运而生,成为商家实现业…

Machine Trap Delegation Registers

默认情况下,所有的trap都是在machine mode中处理的;虽然machine-mode可以通过调用MRET指令,来重新将traps给到其他的mode来执行,但是性能上并不好;因此增加如下两个寄存器:mideleg/medeleg,分别…

Sentinel 降级、限流、熔断

前言 在现代分布式系统中,如何有效地保护系统免受突发流量和故障的影响,是每个开发人员和架构师都需要思考的重要问题。在这样的背景下,Sentinel作为一个强大的系统保护和控制组件,为我们提供了降级、限流、熔断等多种策略&#…

边缘数据采集网关无法上传数据是什么原因?如何解决?

边缘数据采集网关是物联网系统中的常见设备,主要用途包括数据采集、协议转换、边缘数据处理、数据传输分发等,实现多设备和多系统的互联互通和数据协同应用,对于提高物联网感知和响应效率、加强物联网联动协同能力、提升数据安全性等方面都具…

MATLAB实验Simulink的应用

本文MATLAB源码,下载后直接打开运行即可[点击跳转下载]-附实验报告https://download.csdn.net/download/Coin_Collecter/88740734 一、实验目的 1.熟悉Simulink操作环境。 2.掌握建立系统仿真模型以及系统仿真分析的方法。 二、实验内容 1.利用Simulink仿真下列曲…

怎样实现安全便捷的网间数据安全交换?

数据安全交换是指在数据传输过程中采取一系列措施来保护数据的完整性、机密性和可用性。网间数据安全交换,则是需要进行跨网络、跨网段甚至跨组织地进行数据交互,对于数据的传输要求会更高。 大部分企业都是通过网闸、DMZ区、VLAN、双网云桌面等方式实现…

【Azure 架构师学习笔记】- Azure Databricks (6) - 配置Unity Catalog

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (5) - Unity Catalog 简介 UC的关键特性 之所以DataBricks要用UC, 很大程度是对安全的管控。从上文可以了解到它的四大特性&#…

Python 以相对/绝对路径的方式压缩文件

文章目录 1. tarfile 简单介绍2. tarfile 支持的模式3. 绝对路径压缩4. 相对路径压缩5. 参考 1. tarfile 简单介绍 Python 的 tarfile 模块提供了对 .tar 格式归档文件的全面支持,允许用户创建、读取、修改和写入 tar 归档文件。在实际应用中,tar 文件通…

护眼台灯是智商税吗?写作业使用的护眼台灯推荐

在当今社会,越来越多的人在工作和生活中长时间地盯着电脑屏幕或手机屏幕,给眼睛带来了很大的压力和损害。为了缓解眼睛的疲劳和不适,护眼台灯成为了很多人的选择。然而,市场上的护眼台灯种类繁多,价格各异,…

M-A352AD10高精度三轴加速度计

一般描述 M-A352是一种三轴数字输出加速度计,具有超低噪声、高稳定性、低功耗等特点,采用了夸特的精细处理技术。. 多功能M-A352具有高精度和耐久性,非常适合广泛的具有挑战性的应用,如SHM、地震观测、工业设备的状态监测和工业…

pandas查看数据常用方法(以excel为例)

目录 1.查看指定行数的数据head() 2. 查看数据表头columns 3.查看索引index 4.指定索引列index_col 5.按照索引排序 6.按照数据列排序sort_values() 7.查看每列数据类型dtypes 8.查看指定行列数据loc 9.查看数据是否为空isnull() 1.查看指定行数的数据head() &#xff…

软信天成:数据安全管理解决方案分享

近年来,随着数据环境日趋复杂多变和潜在的数据隐私泄露风险潜伏,如何确保企业数据安全已成为众多企业亟待面对与妥善处理的重要问题。 为了应对这一严峻的现实挑战,软信天成凭借专业的知识体系和丰富的实战经验积累,总结出了一套…

Java实现海南旅游景点推荐系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…

计算机组成原理-程序中断(基本概念 中断分类 流程 )

文章目录 总览中断的基本概念中断请求的分类中断请求标记中断判优-实现中断判优-优先级设置中断处理过程-中断隐指令中断处理过程-中断服务程序小结 总览 中断的基本概念 中断隐指令就是修改PC的值到中断服务程序 在每条指令执行完后,在指令周期末尾检查是否有中断…

【linux】软链接创建(linux的快捷方式创建)

软连接的概念 类似于windows系统中的快捷方式。有的文件目录很长或者每次使用都要找很不方便,于是可以用类似windows的快捷方式的软链接在home(初始目录类似于桌面)上创建一些软链接方便使用。 软链接的语法 ln -s 参数1 参数2 参数1&#…

批评与自我批评组织生活会发言材料2024年六个方面

生活就像一场马拉松,成功需要坚持不懈的奔跑。每一步都可能会遇到挫折和困难,但只要你努力向前,坚持不放弃,你就一定能够迎接胜利的喜悦。不要害怕失败,因为失败是成功的垫脚石。相信自己的能力,追求自己的…

反射助你无痛使用Semantic Kernel接入离线大模型

本文主要介绍如何使用 llama 的 server 部署离线大模型,并通过反射技术修改 Semantic Kernel 的 OpenAIClient 类,从而实现指定端点的功能。最后也推荐了一些学习 Semantic Kernel 的资料,希望能对你有所帮助。 封面图片: Dalle3 …