时间同步协议详解:从原理到应用的全方位解析

作者介绍

随着信息技术的飞速发展,时间同步技术在通信、导航、电力等多个领域发挥着越来越重要的作用。从日常生活到高精尖的科学实验,精确的时间同步都是确保系统正常运行和任务成功完成的关键因素。本文将对几种主流的时间同步技术进行介绍和对比分析,探讨各自的优缺点及其适用场景,以期为相关领域的研究和应用提供参考。

时间同步,顾名思义就是使分布在不同地点的时钟保持一致的过程。在网络通信中,时间同步意味着网络中的所有设备参照同一时间基准工作,这对于数据的采集、处理和传输至关重要。时间同步协议是现代计算机网络和多种应用领域中确保时钟一致性的关键技术。不同的协议设计用于满足不同精度和环境下的时间同步需求。

本文将会介绍一些常见的时间同步协议。

一、协议介绍

1.网络时间协议(NTP)

NTP是一种广泛使用的互联网协议,通过互联网在全球范围内提供免费参考服务,能够提供毫秒级别的时间同步精度。目前最新的版本是NTPv4。

它采用层次结构,通过服务器之间的时间信息交换来实现网络内设备的时间同步。其中顶层是一级时间服务器(Stratum 1),它们直接连接到可靠的时间源,如原子钟、GPS接收器或其他物理时间源。这些一级服务器将时间信息传递给二级服务器(Stratum 2),二级服务器再传递给三级服务器,以此类推。客户端通常与最低层的服务器(如Stratum 3或更低)同步。

而SNTP是NTP的简化版本,用于不需要高精度时间同步的应用,如个人计算机和消费类电子产品。

NTP最大的优势是其部署简单,仅需通过互联网即可获得时间同步,且拥有较好的可扩展性,分层设计允许大量设备通过网络同步时间,同时减少了对顶级时间源的负载。但对于高精应用来讲,准确性和精度较低。

SNTP/NTP广泛应用于互联网和企业网络中,最熟悉的这是我们每台设备的时间信息传递与同步。

2.精确时间协议(PTP)

PTP(Precision Time Protocol,精确时间协议)是一种IEEE 1588标准定义,是一种用于工业以太网的高精度时间同步协议,PTP通过精确测量报文在网络中的传输时间来同步时钟。它能够为网络中的所有设备提供一个统一的时间参考,从而确保数据的时效性和一致性。采用硬件时间戳,可以大幅减少软件处理时间,同步精度可以达到亚微秒/数十纳秒级。

PTP网络由一个主时钟(Master Clock)和多个从时钟(Slave Clock)组成,主时钟通常连接到一个高精度的物理时间源,而从时钟则分布在网络中的各个设备上。PTP协议通过在网络上交换时间戳消息来同步时钟。它定义了两种主要的消息类型:同步(Sync)消息和跟随(Follow-up)消息。主时钟(Grandmaster)发送同步消息,并在消息中嵌入发送时间戳。随后,主时钟发送跟随消息,其中包含同步消息的发送时间戳。从时钟(Slave)记录收到同步消息和跟随消息的时间戳,并使用这些时间戳来计算与主时钟的时间偏差和延迟。

不过,PTP在高流量状态下精度易受影响变化,想要保证稳定的高精时间同步,还需要专用的硬件设备与较复杂的相关配置,因此主要是在工业应用中较为广泛。

此外,PTP可以运行在L2层(MAC层)和L4层(UDP层),在L2层网络运行时,可以在MAC层中直接进行报文解析,避免在UDP层处理,减少协议栈中驻留时间,进一步提高时间同步精度,因此十分适用于自动驾驶系统。

除了PTP时间同步协议,我们也会在自动驾驶领域时常看见gPTP(Generalized Precision Time Protocol)协议。gPTP和PTP都是基于IEEE标准的时间同步协议,其中PTP遵循IEEE 1588标准,而gPTP是IEEE 802.1AS标准,专门为以太网音视频桥接(AVB)和网络化汽车应用设计,提供高精度的时间同步。

PTP广泛应用于需要高精度时间同步的工业领域,如自动驾驶、电力系统、制造业自动化、电信网络、金融市场交易等。在这些应用中,PTP的精确时间同步能力对于确保系统的稳定运行和数据的精确同步至关重要。自动驾驶的数据采集与回放中基本都会采用PTP或gPTP。

3.全球定位系统(GNSS)

GNSS提供了一种基于卫星信号的时间同步服务,精度可以达到微秒级别。GNSS接收器通过接收卫星信号来同步本地时钟,广泛应用于导航、定位和时间基准服务。

GNSS卫星上装备有非常精确的原子钟,它们不断地发送时间信号和导航信息。地面的GNSS接收器可以接收到这些信号,并通过测量信号传播时间来确定自己的位置和时间。由于光速是已知的,接收器可以通过计算信号从卫星发出到接收器接收到的往返时间来计算卫星和接收器之间的距离。通过同时接收多颗卫星的信号,接收器可以精确地确定自己的位置和时间。

GNSS的使用十分简单,基本上无需复杂的配置,且可以随时拆除与重新部署,因此具备极大的灵活性与广泛性。不过必竟是通过无线信号传输,因此并非是所有地方都可以使用,也不能确保百分之百的稳定,因此一般作为初始同步与其他授时方式同步使用,例如铷原子钟可以保证在脱离GNSS信号24小时仅具有1us误差。

铷原子时钟板卡

该铷原子时钟板卡是第一款在PCle板上利用铷振荡器的时钟卡,它是完全开源的,并由与硬件无关的监控和规范软件堆栈运行,可扩展、面向未来和无缝集成,用于帮助客户构建自己的高性能网络时间服务器。

✓ 凭借机载铷原子本振,对GNSS损失具有高度弹性

✓ 完全开源设计和驱动

✓ 易于集成到任何带有PCIe插槽的服务器中

✓ 与现有的NTP和PTP兼容

GNSS授时的精度非常高,通常可以达到纳秒级别。这种精度对于许多应用来说已经足够,包括电信、金融、科学研究、电力系统同步和其他需要高精度时间同步的领域。

4.White Rabbit(WR)

White Rabbit(WR)协议是一种用于粒子物理实验和其他需要极高水平时间同步的科学研究的高精度时间同步协议。它由欧洲核子研究组织(CERN)和其他研究机构开发,旨在提供亚微秒级别的时间同步精度和皮秒级别的时钟同步精度。

White Rabbit协议基于以太网技术,通过硬件时间戳、专用的时间同步网络和高级的网络协议,确保了数据传输的确定性和同步性。它采用了IEEE 1588-2008(PTP)标准的一些核心概念,并对其进行了一系列的优化和扩展,以实现更高精度的时间同步。

WR能够提供亚微秒级别的时间同步精度和皮秒级别的时钟同步精度,支持长达几十公里的传输距离,适用于大型实验设施的分布式时钟同步,可以支持大量的同步节点,适用于大规模的实验设施。目前在各类天文台与粒子对撞机得到广泛应用。

White Rabbit精确时间分配系统

✓ 易于集成进现有的网络架构内(Ethernet, PTPv2, NTP)

✓ 可扩展超过1000km

✓ 没有 GNSS 漏洞,性能不受数据流量影响,支持本地holdover

✓ 易于扩展,支持自校准

✓ 精度达到亚纳秒/纳秒级

✓ 支持区块链与厘米级室内定位等新技术融合

5.其他

除此之外,还有很多时间同步的方法与协议,他们有的伴随着行业与技术发展逐步退出了历史舞台,还有一些目前依旧有着非常广泛的作用,这里由于篇幅原因,不再展开讲解,我们简单列举下一些时间同步方法与协议:

● 时间协议(Time Protocol):这是互联网的一个早期协议,定义在RFC 868中。它提供了一种简单的机制,允许互联网上的计算机同步其时钟。由于其简单性,它的时间同步精度相对较低,通常只能达到秒级别。

● 电话公司时间协议(Telnet Time Protocol):这是一种通过电话线路同步时钟的协议,现在已经很少使用。

● 时间码(IRIG-B):IRIG-B是一种时间码格式,通常用于精确的时间同步应用,如电力系统、航空航天和军事应用。时间码发生器输出一个带有时间信息的信号,其他设备可以通过解析这个信号来同步时钟。

● 本地时钟同步(Local Oscillator, LO):通常指的是在一个设备或系统内部使用本地振荡器来维持时钟同步的方法。这种方法不依赖于外部的时间源,而依赖于设备内置的振荡器,如晶体振荡器、原子钟或振荡电路,来生成稳定的时钟信号。

● 同步设备之间的接口(SyncE):SyncE是一种网络同步技术,它通过以太网物理层提供同步信号,用于同步网络中的时钟。

● 网络时间安全协议(NTS):NTS是NTP的扩展,旨在提高时间同步的安全性,防止时钟同步过程中的恶意攻击。

● 点对点协议(PPP):PPP在建立点对点连接时,可以协商并同步两端的时钟。

● 时间戳协议(TSP):TSP是一种简单的协议,用于请求时间戳服务,通常用于安全相关的应用。

二、主要协议对比

我们对主要的四个协议做一下对比:

三、总结

总的来讲这些协议和方法各有特点,适用于不同的应用场景和时间同步精度要求。在选择时间同步协议时,需要考虑网络环境、同步精度、设备兼容性以及实施成本等因素。随着技术的发展,还可能出现新的时间同步技术和协议,以满足不断变化的需求。

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

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

相关文章

剪画小程序:自媒体工具推荐:视频文案提取!

各位小伙伴,你们好啊! 上周五观看《歌手 2024》第八期时,我再次被何炅老师幽默风趣的主持风格所折服。他的每一句话都仿佛带着魔力,让现场气氛热烈非凡,实在令人羡慕不已! 何炅老师的口才之所以如此出色&a…

代码随想录算法训练营第四十四天|188.买卖股票的最佳时机IV、309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

188.买卖股票的最佳时机IV 题目链接:188.买卖股票的最佳时机IV 文档讲解:代码随想录 状态:不会 思路: 在股票买卖1使用一维dp的基础上,升级成二维的即可。 定义dp[k1][2],其中 dp[j][0] 表示第j次交易后持…

【Cadence18】如何放置定位孔

在菜单的place->manually会出现Placement对话框, 在Advanced settings中勾选database和library 然后点击Placement list,下拉框中选择Mechanical symbols,勾选你要的定位孔 (如下图的HOLE_1_6R00D2R70-PTH,注意:…

相关技术 检测离型纸

网盘 https://pan.baidu.com/s/1W-k4hl9uhjAG98hqJG11ug?pwdcrpn 离型无纺布.pdf 离型纸剥离机构.pdf 离型纸处理装置及贴胶设备.pdf 离型纸收集机构.pdf 离型纸涂布装置.pdf 防伪印刷离型纸的制造工艺.pdf

gitee代码初次上传步骤

ps. 前提是已经下载安装gitee 一、在本地项目目录下空白处右击,选择“Git Bash Here” 二、初始化 git init 三、添加、提交代码(注意add与点之间的空格) git add . git commit -m 添加注释 四、连接、推送到gitee仓库 git remote add …

E2.【C语言】练习:static部分

#include <stdio.h> int sum(int a) {int c 0;static int b 3;c 1;b 2;return (a b c); } int main() {int i;int a 2;for (i 0; i < 5;i){printf("%d ", sum(a));} } 求执行结果 c是auto类变量(普通的局部变量)&#xff0c;自动产生&#xff0c…

一个项目学习Vue3---Class和Style绑定

看下面一段代码学习此部分内容 <template><button click"stateChang">状态切换</button><div :class"{font-color:classObject.openColor,font-weight:classObject.openWeight}">颜色和粗细变化</div><div :class"…

Java中使用arima预测未来数据

看着已经存在的曲线图数据&#xff0c;想预估下后面曲线图的数据。 import java.util.Vector;public class AR {double[] stdoriginalData{};int p;ARMAMath armamathnew ARMAMath();/*** AR模型* param stdoriginalData* param p //p为MA模型阶数*/public AR(double [] stdori…

通证经济重塑经济格局

在数字化转型的全球浪潮中&#xff0c;通证经济模式犹如一股新兴力量&#xff0c;以其独特的价值传递与共享机制&#xff0c;重塑着经济格局&#xff0c;引领我们步入数字经济的新纪元。 通证&#xff0c;作为这一模式的核心&#xff0c;不仅是权利与权益的数字化凭证&#xf…

Netty学习(NIO基础)

NIO基础 三大组件 Channel and Buffer 常用的只有ByteBuffer Selector&#xff08;选择器&#xff09; 结合服务器的设计演化来理解Selector 多线程版设计 最早在nio设计出现前服务端程序的设计是多线程版设计,即一个客户端对应一个socket连接,一个连接用一个线程处理,每…

静力水准仪:测量与安装的全面指南

静力水准仪作为一种高精度的测量仪器&#xff0c;广泛应用于管廊、大坝、核电站、高层建筑、基坑、隧道、桥梁、地铁等工程领域&#xff0c;用于监测垂直位移和倾斜变化。本文将详细介绍静力水准仪的工作原理、特点及其安装过程中的注意事项&#xff0c;旨在为相关工程人员提供…

字符串函数5-9题(30 天 Pandas 挑战)

字符串函数 1. 相关知识点1.5 字符串的长度条件判断1.6 apply映射操作1.7 python大小写转换1.8 正则表达式匹配2.9 包含字符串查询 2. 题目2.5 无效的推文2.6 计算特殊奖金2.7 修复表中的名字2.8 查找拥有有效邮箱的用户2.9 患某种疾病的患者 1. 相关知识点 1.5 字符串的长度条…

3dmax全景图用什么渲染软件好?渲染100邀请码1a12

全景图是常见的效果图类型&#xff0c;常用于展示大型空间&#xff0c;如展厅、会议室等。全景图的制作需要渲染&#xff0c;下面我介绍几个常用的渲染软件分享给大家。 1、V-Ray&#xff1a;十分流行的渲染引擎&#xff0c;功能强大&#xff0c;它提供了高质量的光线追踪技术…

【CUDA】 矩阵乘法 matMatMul

矩阵乘法 matMatMul 矩阵乘法是基本线性代数子程序&#xff08;BLAS&#xff09;的重要组成部分&#xff0c;而且线性代数中许多其他操作以此为基础。 图1是两个矩阵的乘法。 基础方法&#xff0c;正方形tile和长方形tile 基础方法 执行矩阵乘法的基础方法是使用单个线程执…

如何学习和提升SQL

资料来源于腾讯技术直播&#xff0c;只作为学习记录&#xff0c;如有侵权&#xff0c;请联系作者进行删除

JUC并发编程基础(包含线程概念,状态等具体实现)

一.JUC并发编程基础 1. 并行与并发 1.1 并发: 是在同一实体上的多个事件是在一台处理器上"同时处理多个任务"同一时刻,其实是只有一个事件在发生. 即多个线程抢占同一个资源. 1.2 并行 是在不同实体上的多个事件是在多台处理器上同时处理多个任务同一时刻,大家…

【码银送书第二十二期】《Python数据分析从入门到精通(第2版)》

&#x1f490;大家好&#xff01;我是码银~&#xff0c;欢迎关注&#x1f490;&#xff1a; CSDN&#xff1a;码银 公众号&#xff1a;码银学编程 前言 &#x1f340;丛书说明&#xff1a;“软件开发视频大讲堂‘’丛书第1版于2008年8月出版&#xff0c;因其编写细腻、易学实用…

ython 使用 cx_Freeze 打包,不想要打包文件中能直接看到依赖的代码,如何处理

背景&#xff1a;因为使用 cx_Freeze 打包时&#xff0c;添加需要依赖的文件 cx_Freeze 是一个用于将 Python 程序打包成独立可执行文件的工具&#xff0c;支持多个平台。当你需要打包包含多个 .py 文件的项目时&#xff0c;你可以通过编写一个 setup.py 文件来指定哪些模块应…

免杀笔记 ----> ShellCode Loader !!!

学了那么久的前置知识&#xff0c;终于到了能上线的地方了&#xff01;&#xff01;&#xff01; 不过这里还没到免杀的部分&#xff0c;距离bypass一众的杀毒软件还有很长的路要走&#xff01;&#xff01; 目录 1.ShellCode 2.ShellCode Loader的概念 3.可读可写可…

【邀请函】相约CommunityOverCode Asia 2024,共探Flink、Paimon、Celeborn开源新境界!

CommunityOverCode是由Apache软件基金会&#xff08;ASF&#xff09;主办的一系列全球性会议&#xff0c;旨在促进开源技术的发展和社区参与。自1998年以来&#xff0c;ApacheCon一直是这一系列活动的核心&#xff0c;吸引了不同背景和技术层级的参与者&#xff0c;关注于“明天…