当前位置: 首页 > news >正文

时间同步--- ntp与ptp

时间同步

1. 什么是NTP时间?什么是PTP时间?

NTP时间(Network Time Protocol 时间): NTP即网络时间协议(Network Time Protocol),它是一种用于同步计算机时间的网络协议。NTP可以将所有参与的计算机时间同步到协调世界时(UTC),从而确保系统之间的时间一致性。NTP使用分层、分散的方式,通过一系列时间服务器进行时间同步,允许客户端和服务器之间进行通信以协调时间。NTP可以精确到毫秒级别,且非常适用于大规模分布式系统。

PTP时间(Precision Time Protocol 时间): PTP即精确时间协议(Precision Time Protocol),定义在IEEE 1588标准中,用于在局部网络中实现更高精度的时间同步。PTP比NTP提供了更高的同步精度,通常可以达到微秒甚至纳秒级别。PTP使用主-从架构,可以更精确地测量网络延迟,从而实现更高精度的时间同步。PTP常用于工业自动化、电信和其他对时间精度要求非常高的场合。

2. LINUX中如何使用这两种同步方式?

NTP:

在Linux中,可以使用ntpq命令来查询本机正在使用的NTP服务器。以下是查询本机NTP服务器的步骤:

打开终端,以超级用户或具有足够权限的用户身份登录。

运行以下命令来查询本机正在使用的NTP服务器:

ntpq -p

该命令将显示与本机正在同步的所有NTP服务器的相关信息,包括服务器的IP地址、偏移量、延迟等。在输出中,标有"*"号的服务器表示本机正在使用的主要(首选)NTP服务器。

如果没有安装ntpq命令,可以使用下面的命令安装:

sudo apt install ntp

请注意,某些系统可能需要ntp服务正在运行才能使用ntpq命令。你可以使用sudo systemctl status ntp命令来检查NTP服务的状态,并根据需要启动或重启该服务。

ntpq -p 命令详解

假设运行ntpq -p命令后的输出如下所示:

JSON
remote refid st t when poll reach delay offset jitter

*ntp1.example.com .GPS. 1 u 123 256 377 0.123 0.045 0.056
+ntp2.example.net .PPS. 2 u 256 512 377 0.056 0.023 0.035
-ntp3.example.org .ACTS. 2 u 512 1024 377 0.078 -0.012 0.041

这里是各列的含义:

remote:NTP服务器的域名或IP地址。

refid:参考ID,指示了NTP服务器的参考源。

st:Stratum,指示NTP服务器的层级(stratum),数字越小表示层级越低,通常层级为1表示直接从原子钟获取时间。

t:类型,指示NTP服务器的类型,如本地时钟(l),外部源(u),多播(m)等。

when:上次成功与NTP服务器同步的时间(单位:秒)。

poll:NTP客户端向NTP服务器发送同步请求的间隔时间(单位:秒)。

reach:NTP客户端成功与NTP服务器通信的次数。

delay:NTP客户端与NTP服务器之间的往返延迟(单位:毫秒)。

offset:NTP客户端与NTP服务器之间的时间偏移量(单位:毫秒),即客户端时钟相对于服务器时钟的差异。

jitter:NTP客户端与NTP服务器之间的时钟抖动(单位:毫秒),即时钟不稳定性的度量。

在输出中,标有"*“的行表示本机正在使用的主要(首选)NTP服务器,标有”+"的行表示其他可用的NTP服务器。

检查NTP服务状态

systemctl status ntp

如果NTP服务已经安装并运行,则会显示服务的状态信息,包括是否正在运行以及运行状态是否正常。

PTP

检查Linux环境中是否存在ptp服务:

systemctl status ptp4l 如果有,则会看到如下输出

JSON
● ptp4l.service - PTP4L - IEEE 1588 PTP daemon
Loaded: loaded (/lib/systemd/system/ptp4l.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2024-04-04 10:30:00 UTC; 1 day 3h ago
Docs: man:ptp4l(8)
Main PID: 1234 (ptp4l)
Tasks: 1 (limit: 1234)
Memory: 10.0M
CGroup: /system.slice/ptp4l.service
└─1234 /usr/sbin/ptp4l -m

Apr 04 10:30:00 hostname systemd[1]: Starting PTP4L - IEEE 1588 PTP daemon…
Apr 04 10:30:00 hostname systemd[1]: Started PTP4L - IEEE 1588 PTP daemon.

在Linux中部署PTP服务:

  1. 安装PTP软件包

Bash

sudo apt-get install linuxptp    # Ubuntu/Debian
sudo yum install linuxptp        # CentOS/RHEL
  1. 配置PTP

编辑 /etc/linuxptp/ptp4l.conf 文件以配置PTP。这个文件包含了PTP4l的配置选项。你可以根据你的需求修改这个文件。

  1. 启动PTP服务

Bash

sudo systemctl start ptp4l
  1. 设置开机自启动

Bash
sudo systemctl enable ptp4l

  1. 检查服务状态

Bash

sudo systemctl status ptp4l

如果PTP服务正在运行,你将会看到类似如下输出:

Plain Text
● ptp4l.service - PTP4L - IEEE 1588 PTP daemon
Loaded: loaded (/lib/systemd/system/ptp4l.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2024-04-04 10:30:00 UTC; 1 day 3h ago
Docs: man:ptp4l(8)
Main PID: 1234 (ptp4l)
Tasks: 1 (limit: 1234)
Memory: 10.0M
CGroup: /system.slice/ptp4l.service
└─1234 /usr/sbin/ptp4l -m

Apr 04 10:30:00 hostname systemd[1]: Starting PTP4L - IEEE 1588 PTP daemon…
Apr 04 10:30:00 hostname systemd[1]: Started PTP4L - IEEE 1588 PTP daemon.

这就完成了在Linux中部署PTP服务的过程。你可以根据需要对配置文件进行调整,以满足你的特定需求。

在linux环境下,如果没有上述命令执行失败,需要执行下面的命令

输入

cd /lib/systemd/system/

目录下是否有ptp4l.service或者ptp4l@.service

如果有ptp4l@.service,则需要使用这个命令在对用的网络接口上创建PTP同步服务:

sudo systemctl start ptp4l@eth0.service
http://www.lryc.cn/news/416647.html

相关文章:

  • CSDN 僵尸粉 机器人
  • 【Material-UI】File Upload Button 组件详解
  • 计算机组成原理 - 中央处理器
  • C++笔试练习笔记【5】:最小花费爬楼梯(有题目链接) 初识动态规划
  • 数据结构----------贪心算法
  • C++初学(11)
  • Vba选择cad中不同类型图元(Select Case True语句和like用法)
  • Kafka基本讲解
  • thinkphp6项目初始化配置方案二次修正版本
  • XXE靶机教学
  • 干货 | 2024步入数字化转型深水区,云原生业务稳定性如何保障(免费下载)
  • for(char c:s),std::vector<int> numbers 和std::int numbers[],.size()和.sizeof()区别
  • 桌面云备份可以删除吗?安不安全
  • 【爬虫实战】利用代理爬取电商数据
  • python如何统计列表中元素出现的次数
  • 【算法】山脉数组的峰顶索引
  • 牛客 JZ31.栈的压入,弹出序列 C++写法
  • PageHelper在Mybatis的一对多表关联时total数错误
  • (20240806)硫氧镁 / 碱式硫酸镁-混凝土
  • string类的模拟实现(C++)
  • C++_sizeof的相关知识点
  • Istio Proxy的Envoy代理架构中,Upstream提供的功能是:
  • LeetCode 热题 HOT 100 (015/100)【宇宙最简单版】
  • 【HarmonyOS】鸿蒙应用实现截屏
  • Conda包依赖侦探:conda inspect命令全解析
  • 数模——灰色关联分析算法
  • Python爬虫技术 第27节 API和RESTful服务
  • 音视频入门基础:WAV专题(4)——FFmpeg源码中获取WAV文件音频压缩编码格式、采样频率、声道数量、采样位数、码率的实现
  • 环境变量在Conda中的魔法:控制包安装的秘诀
  • VS Code C/C++ MSVC编译器