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

news2024/11/20 15:37:20

作者介绍

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

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

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

一、协议介绍

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.coloradmin.cn/o/1899473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TreeMap、HashMap 和 LinkedHashMap 的区别

TreeMap、HashMap 和 LinkedHashMap 的区别 1、HashMap2、LinkedHashMap3、TreeMap4、总结 💖The Begin💖点点关注,收藏不迷路💖 在 Java 中,TreeMap、HashMap 和 LinkedHashMap 是三种常用的集合类,它们在…

AndroidKille不能用?更新apktool插件-cnblog

AndroidKiller不更新插件容易报错 找到apktool管理器 填入apktool位置,并输入apktool名字 选择默认的apktool版本 x掉,退出重启 可以看到反编译完成了

Linux权限概述

一、权限概述 1.权限的基本概念 2.为什么要设置权限 3.linux用户的身份类别 4.user文件的拥有者 5.group文件所属组内用户 6.other其他用户 7.特殊用户root 二、普通权限管理 1.ls -l查看文件权限 2.文件类型以及权限解析 3.文件或文件夹的权限设置 4.通过数字给文件…

大数据平台之数据同步

数据同步也成为CDC (Chanage Data Capture) 。Change Data Capture (CDC) 是一种用于跟踪和捕获数据库中数据变更的技术,它可以在数据发生变化时实时地将这些变更捕获并传递到下游系统。以下是一些常用的开源 CDC 方案: 1. Flink CDC Flink CDC 是基于 …

Git基础知识与常用命令指南

这是一个Git基础知识和常用命令的简要指南,涵盖了日常开发中最常用的操作。你可以将这个指南保存下来,作为日常工作的参考。 目录 基础篇1. Git基本概念2. 配置Git3. 创建仓库4. 基本的工作流程5. 分支操作6. 查看历史7. 撤销更改8. 远程仓库操作 Git进阶知识与技巧指南1. 分…

Java常用算法集合扩容机制分析

基础篇 基础篇要点:算法、数据结构、基础设计模式 1. 二分查找 要求 能够用自己语言描述二分查找算法能够手写二分查找代码能够解答一些变化后的考法 算法描述 前提:有已排序数组 A(假设已经做好) 定义左边界 L、右边界 R&…

芯片的PPA-笔记

写在前面:这个仅记录自己对芯片PPA的一些思考,不一定正确,还请各位网友思辨的看待,欢迎大家谈谈自己的想法。 1 此次笔记的起因 记录的原因:自己在整理这段时间的功耗总结,又看到工艺对功耗的影响&#x…

十五、小型电脑没有数字键及insert,怎么解决IDEA快速插入getset构造这些方法

🌻🌻目录 一、小型电脑没有数字键及insert,怎么解决IDEA快速插入getset构造这些方法 一、小型电脑没有数字键及insert,怎么解决IDEA快速插入getset构造这些方法 解决: 1.winR打开搜索 2.osk回车 屏幕就出现了这样的一…

极狐GitLab 将亮相2024空天信息大会暨数字地球生态峰会,携手中科星图赋能空天行业开发者

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署…

新手教学系列——Git Stash踩坑

在之前的文章《如何彻底避免Git代码相互覆盖问题》中,我曾介绍过通过规范分支合并和使用git stash来避免代码覆盖问题。今天,我要深入探讨一下git stash的使用,并分享一些使用过程中遇到的坑,希望能帮你避免类似问题。 脚本mg.sh简介 为了更好地管理代码合并,我编写了一…

CSS - 深入理解选择器的使用方式

CSS基本选择器 通配选择器元素选择器类选择器id 选择器 通配选择器 作用:可以选中所有HTML元素。语法: * {属性名;属性值; }举例: /* 选中所有元素 */ * {color: orange;font-size: 40px; }在清除样式方面有很大作用 元素选择器…

医院陪诊系统开发的关键技术与挑战

随着医疗服务需求的不断提升,传统的医院服务模式面临着巨大的压力和挑战。为了提升患者的就医体验和医疗服务的效率,医院陪诊系统应运而生。本文将探讨医院陪诊系统开发的关键技术与挑战,并结合具体的技术代码进行分析。 一、医院陪诊系统的…

云计算渲染时代:选择Blender或KeyShot进行高效渲染

在云渲染技术日益成熟的背景下,挑选一款贴合项目需求的3D渲染软件显得尤为关键。当前,Blender与KeyShot作为业界领先的全能渲染解决方案,广受推崇。它们虽皆能创造出令人信服的逼真视觉效果,但在特色功能上各有所长。本篇文章旨在…

PMP–知识卡片--PDCA循环

记忆 PDCA:计划执行检查调整,计划观察动作;plan do check action 定义 PDCA循环的含义是将质量管理分为四个过程,即计划(Plan)、执行(Do)、检查(Check)、处…

Spring Boot Vue 毕设系统讲解1

项目结构 包说明 db:文件夹是存放数据脚本文件的 annotation: 系统自定义注解 config:系统定义的配置类 controller: 系统接口控制器类 dao: 系统dao类编写数据库查询方法和数据库交互 entity:数据库…

SpringSecurity 三更草堂学习笔记

0.简介 Spring Security是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity来做安全框架。小项目有Shiro的比较多,因为相比与Spring…

Java项目:基于SSM框架实现的学生公寓管理中心系统【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的学生公寓管理中心系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…

【C++题解】1561. 买木头

问题:1561. 买木头 类型:省赛、数组问题、二分答案、贪心、2015江苏省青少年信息学奥林匹克竞赛复赛 题目描述: 有 n 个木材供应商,每个供货商有长度相同一定数量的木头。长木头可以锯短,但短木头不能接长。有一个客…

2024 年 6 月区块链游戏研报:Pixels 引发 DAU 波动,行业用户留存率差异显著

作者:Stella L (stellafootprint.network) 数据来源:区块链游戏研究页面 2024 年 6 月,加密货币市场遭遇显著回调,比特币跌幅达 7.3%,以太坊更是下跌了 9.8%。此番波动不可避免地波及区块链游戏领域,导致…

spring boot + vue3+element plus 项目搭建

一、vue 项目搭建 1、创建 vue 项目 vue create vue-element说明:创建过程中可以选择路由,也可也可以不选择,可以通过 npm install 安装 vue 项目目录结构 说明:api 为自己创建的文件夹,router 选择路由模块会自动…