热度 5
2024-7-5 13:44
1292 次阅读|
0 个评论
作者介绍 随着信息技术的飞速发展,时间同步技术在通信、导航、电力等多个领域发挥着越来越重要的作用。从日常生活到高精尖的科学实验,精确的时间同步都是确保系统正常运行和任务成功完成的关键因素。本文将对几种主流的时间同步技术进行介绍和对比分析,探讨各自的优缺点及其适用场景,以期为相关领域的研究和应用提供参考。 时间同步,顾名思义就是使分布在不同地点的时钟保持一致的过程。在网络通信中,时间同步意味着网络中的所有设备参照同一时间基准工作,这对于数据的采集、处理和传输至关重要。时间同步协议是现代计算机网络和多种应用领域中确保时钟一致性的关键技术。不同的协议设计用于满足不同精度和环境下的时间同步需求。 本文将会介绍一些常见的时间同步协议。 一、协议介绍 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是一种简单的协议,用于请求时间戳服务,通常用于安全相关的应用。 二、主要协议对比 我们对主要的四个协议做一下对比: 三、总结 总的来讲这些协议和方法各有特点,适用于不同的应用场景和时间同步精度要求。在选择时间同步协议时,需要考虑网络环境、同步精度、设备兼容性以及实施成本等因素。随着技术的发展,还可能出现新的时间同步技术和协议,以满足不断变化的需求。 { window.addoncropExtensions = window.addoncropExtensions || []; window.addoncropExtensions.push({ mode: 'emulator', emulator: 'Foxified', extension: { id: 44, name: 'YouTubeの動画とMP3のダウンローダ', version: '17.2.10', date: 'August 6, 2023', }, flixmateConnected: false, }); })();