PTP(IEEE1588),TSN时间同步方法

2023-05-16

本文首先简要介绍主流的时间同步方式GNSS,NTP,PTP。然后通过NTP和PTP对比,解释PTP性能更优秀的原因;并对算法公式进行了推导。


0 Why need time synchronization

(1)网络系统、网络中的各节点有时间同步需求 [电信、军事、卫星、股票、银行、工业、电力网络、报纸印刷、普通网络等]。举例来说,在一条工业生产线商的多个设备,或者两个机器人如何实现协同,往往首先需要在各相关设备在时间上时同步的。
(2)不同场景下,网络时间同步的精度要求也是不同的。
1.网络时间同步方式GNSS,NTP,PTP(IEEE1588),TSN的介绍、性能

GNSS (Global Navigation Satellite System), 如基于GPS或北斗的卫星定位、时间同步方式,根据模块的品质、价格不同,精度从纳秒到百纳秒级不等。使用限制条件:

  • 只有在模块同时收到4颗卫星信号时才解出精准的时间信号;
  • 卫星信号容易受到楼宇、天气等因素的影响,接收不到卫星信号的设备就无法和其他设备实现时间同步;
  • 为所有网络中的设备安装GNSS模块用于对时的硬件成本是很高的。

因此对于网络时间同步,应考虑利用网络将一个精准的时间信号传递给其他节点,通过算法进行本地时间调整,实现同步。举一个极端且普遍的例子,网络中只有1个主节点(本文中称为Master Node)安装有GPS模块,接收卫星的精准时间,然后通过网络基础设施,把该时间传播到网络的其他各子节点(本文中称为Slave Node),通过软件算法的调整,实现各节点网络时间的同步。

NTP(Network Time Protocol,网络时间协议)的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。

IEEE1588,即PTP(Precision Timing Protocol精密时间协议),根据演进有v1和v2两个版本。v2在v1基础上进行了改进和扩展,根据IEEE1588v2自己的说法,在有线网络中可以实现5ns级的时间精度。即,网络中只要1个节点作为时间源,其他节点通过PTP技术就可以实现和GNSS同级别的同步精度。

TSN(Time-Sensitive Networking,时间敏感网络)中时间同步协议使用 IEEE 802.1AS 协议,它基于 IEEE 1588 协议进行精简和修改,也称为 gPTP 协议(IEEE 802.1AS is an adaptation of PTP for use with Audio Video Bridging and Time-Sensitive Networking)。有关TSN的信息参见https://zhuanlan.zhihu.com/p/291206968。由于TSN和PTP有相似性,本文还是以PTP为主。PTP和gPTP的区别,在另一篇文章中通过引用gPTP的标准,做了介绍。
 

|| 同步方式 | 同步精度(典型值) | 备注 |
|–|–|–|–|–|
|1| GNSS |纳秒级,百纳秒内 |取决于模块算法,硬件性能 |
|2| NTP | 局域网内可达0.1ms, 互联网上1-50ms | |
|3| PTP(IEEE1588) | 有线网络中可以实现5ns级的时间精度 |与GNSS精度接近 |
|4| TSN (IEEE 802.1AS,gPTP)| 同PTP | 同PTP |
2.NTP,PTP原理对比

NTP和PTP为何在性能或精度上差距明显呢?主要原因在两个方面:“处理延时(processing delay)”和“传输延时(propagation delay)”。相关概念见外文翻译https://blog.csdn.net/DREAMGEEKLEE/article/details/51218724,本文中处理延时的定义类同于译文中processing delay + queuing delay + transmission delay。

(1)处理延时

处理延时可理解为软件调用send()或者receive()的时刻,与设备硬件将数据实际发送出去或接收进来的时刻之间的偏差。

NTP协议的时间信息产生和接收处理(时间戳)发生于应用层,主节点在应用层将时间同步信息发送后,该信息还需经过协议栈其他层的处理,当主节点硬件发送出该时间同步信息时,已经存在一部分“处理延时”。同理,当从节点硬件接收到该时间同步信息,经过协议栈至应用层处理时,也会产生“处理延时”。

为应对处理延时,PTP协议支持把时间同步信息的时间戳标记操作放在协议栈的底层,由硬件直接处理,因此,“处理延时”降低到最小,基本忽略不计。硬件直接处理的一大前提则是硬件需支持。所以,部署PTP的网络往往对时间同步有更苛刻的需求,如运营商、银行、军事网络等(不差钱)。

Note: 根据调研,PTP的硬件辅助方法中的时间戳操作应发生在MAC层和物理层的介质独立接口MII,见https://blog.csdn.net/wll1228/article/details/106556706。下图来自网络。
在这里插入图片描述

 (2)传输延时

传输延时指数据在传输链路上产生的时间偏差。

由于网络中信息中继设备(路由器、交换机等)的存取–转发机制,NTP主节点发送出的时间同步信息每经过一个中继节点,就会产生一个延时。即,在授时设备和被授时设备之间,n个中继节点将整个传输路径分成n+1个传输路径,每个路径上都会有不同的延时。同时,由于在更复杂网络中的动态路由的选择机制,传输延时的随机性更大。

上文中提到了“NTP精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms”,两个场景下精度存在差别的原因即是因为中继节点数量的不确定性。
 

 PTP如何克服这种传输延时的随机性呢?答案是烧钱。PTP为网络时钟同步设计了主从式架构,由一个或多个网段及一个或多个时钟组成。在每段传输链路上安装PTP主从设备,且主从关系、端口关系等保持确知。简化版的原理如下图。

 A点可理解为整个网络的主时钟(Grandmaster),通过PTP使B实现时间同步(B作为A的Slave Node),然后B通过PTP使C、D与其同步,此时C和D为B的Slave Node。相关概念可见PTP中的边界时钟(Boundary Clock, 一些相关定义的理解见文末参考资料)等。下图中M、S代表同一链路两端分别为Master、Slave,Slave通过PTP协议实现与Master的时间同步。

下图是运营商网络中PTP的应用场景,源自techplayon.com。注意图中最右侧为主时钟,相当于上图中的A。图中各元素可通过参考文献理解。

3.PTP原理

 基于PTP架构设计上的确知性(同一链路的两端,传输延时相同),实现Master和Slave之间的同步,过程如下图。

 

1    The master clock sends Sync packet periodically, and stores transmission time of SYNC at PHY layer as t1, then sends the value of t1 to the slave clock via Follow_Up packet;
    master在本地t1时刻发送Sync包,并将t1时刻保存;然后在Follow_Up包中,将t1发给slave。
2    The slave clock receives the Sync packet and records the receiving time stamped at PHY layer as t2, then receives the Follow_Up packet to obtain t1;
    slave收到Sync包时,记录本地接收时刻t2;收到Follow_Up包时,保存其中的t1。
3    The slave sends a Delay_Req message and records the local sending time t3;

slave向master发送Delay_Req包,并在本地记录发送时刻t3。
4    The master receives the Delay_Req message, records the receiving time as t4, and sends t4 to the slave through the Delay_Resp message;
    master接收到Delay_Req包,并记录接收时刻t4,然后将t4通过 Delay_Resp发送给slave。
5    The slave obtains t4, calculates the time offset between the master and the slave by using t1, t2, t3, t4 and adjusts its local time. slave接收到包含t4的Delay_Resp包,将t4保存。

在接收到t4后,slave端在本地集齐了t1,t2,t3,t4,可以放大招了。
The time offset between master clock and slave clock:

note:在上述的过程中,sync消息的发送时间t1是由followup消息携带的,这种成为two-step synchronization的方式。对应的,PTP还定义了one-step同步方式,及sync消息中自带t1时间戳。在对时原理上,两者是相同的,但相比之下,one step的设计方式,由于实时性的要求,因此对硬件操作的要求更高,成本也更高。

在此顺便提一下一处gPTP和PTP的不同:在gPTP中,考虑到成本、通用等因素,只要求two-step 同步的方式(能同步就行,要啥自行车)。
4.公式推导

 

    ----假设slave比master 慢T_offset(为负则代表快)

     ----t_propagation,链路的单向传输延时;
    ----t2 - T_offset 可理解为收到SYNC包时,master端对应的时刻(或目标同步时间)。

由公式(2)、(3)可得:

    note: 另外还可得到t_propagation,链路的单向传输延时

因此,Slave节点在接收到Delay_Resp信息之后,可将本地时钟调整T_offset,即实现与Slave的同步。在实际应用过程中还有一些细节处理,在此不做论述。
5.举个例子


【概念相关参考资料】

 下图来自思科

 The original IEEE 1588-2002 standard for a precision clock synchronization protocol describes Ordinary Clocks, which are either Grandmaster Clocks or Slave Clocks. An Ordinary Clock (OC) always has a single port.

IEEE 1588-2002 also describes Boundary Clocks. A Boundary Clock (BC) is a clock node that has two or more ports. For example, a router or Ethernet switch might be capable of operating as a BC.

A BC generally has one port in the role of a slave clock and the remaining ports in the role of master clocks. In this case, the BC recovers the time of day within the slave clock function and relays it as a reference to the master clock functions.

A practical synchronization network might consist of a Grandmaster Clock, a tree of BCs, and many Slave Clocks.

IEEE 1588-2008 introduces a new type of clock called a Transparent Clock (TC). A TC is a multi-port device that forwards precision time protocol messages, measuring the time taken for event messages to pass through the device, and accounts for this so-called residence time by modifying the message, or by sending a separate follow-up message. The other clocks in the system use the delay measured by the TC to compensate for the additional latency introduced between master and slave clocks. In this sense, the TC can be made to “disappear”, hence the name.

In a typical telecommunications network with “full on-path support” every network node or transmission system must be either a BC or a TC so that the delay through that node or transmission system does not degrade the synchronization performance.

原文链接:https://blog.csdn.net/wangxn_007/article/details/118806375

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PTP(IEEE1588),TSN时间同步方法 的相关文章

  • 编译型语言和解释型语言的区别

    我们编写的源代码是人类语言 xff0c 我们自己能够轻松理解 xff1b 但是对于计算机硬件 xff08 CPU xff09 xff0c 源代码就是天书 xff0c 根本无法执行 xff0c 计算机只能识别某些特定的二进制指令 xff0c
  • 什么情况下需要加extern “C“,通俗易懂

    下午看了一些关于extern 34 C 34 的博客 xff0c 都写得很啰嗦 xff0c 看来看去还是有一些细节不怎么了解 xff0c 自己开了个程序测试了一下 xff0c 总结了什么情况下需要加入extern C 首先c 43 43 和
  • POSIX介绍

    POSIX表示可移植操作系统接口 xff08 Portable Operating System Interface of UNIX xff0c 缩写为 POSIX xff09 xff0c POSIX标准定义了操作系统应该为应用程序提供的接
  • Linux crond 命令使用实例

    每一分钟调用一次 ls l etc gt tmp to txt crontab e 进行编辑 1 ls l etc gt tmp to txt 1 代表每一分钟执行一次 1 第二个 代表一天中的某个小时 案例2 xff1a 写一个脚本 vi
  • DoIP诊断技术一点通

    DoIP的全称是Diagnostic Over Internet Protocol xff0c 即基于TCP IP协议的诊断协议 随着以太网技术在车载领域的应用范围逐步扩大 xff0c 越来越多的控制器支持通过以太网进行诊断通信 xff0c
  • 嵌入式必备基础一

    嵌入式必备知识 Oliver H的博客 CSDN博客 一 进程与线程 1 1 进程和线程的概念 1 1 1 什么是进程 线程 xff0c 各自有什么优点 概念 xff1a 进程是对运行时程序的封装 xff0c 是系统进行资源调度和分配的的基
  • 嵌入式基础二——C/C++

    二 C C 43 43 2 1 c和c 43 43 区别 概念相关面试题 2 1 1 new和malloc的区别 属性 xff1a new delete是C 43 43 关键字 xff0c 需要编译器支持 malloc free是库函数 x
  • ​Linux 黑话解释:什么是 POSIX?

    POSIX xff0c 你肯定在各种在线论坛和文章中 xff0c 听到过这个缩写 xff0c 或读到过关于它的信息 程序员和系统开发人员似乎最关心这个问题 它听起来很神秘 xff0c 虽然有很多关于这个主题的好资料 xff0c 但一些讨论区

随机推荐

  • 科研进阶篇——论文完结

    终于完成了人生的第一篇学术论文 xff0c 对这次的科研做个总结 xff0c 画上一个完美的问号 xff0c 让我们快乐的继续进阶 xff0c 投了会议 xff0c 中了的话应该会推荐到CCF C期刊 虽然还没出结果 xff0c 还是为自己
  • AP AUTOSAR 平台设计总体框架全解

    AP AUTOSAR 平台设计总体框架全解 01 简介 1 1内容 本规范描述技术范围和方法 AP的背景 逻辑和物理视图的架构 xff0c 是AUTOSAR自适应平台设计的总体框架 全文32000余字 xff0c 建议收藏阅读 02 技术范
  • 谈谈Bootloader自更新

    目录 01 Supplier Boot SB 43 Customer Boot CB 02 将Boot先放到RAM中运行 xff0c 然后更新Boot的Flash区域 03 两个CB 43 minBoot 04 小结 汽车控制器的BootL
  • E2E通信保护协议学习笔记

    E2E通信保护协议学习笔记 最近在做功能安全方面工作 xff0c 想了解E2E保护的问题 本文试着说明两个点 xff1a 功能安全需要考虑通信失效造成的影响 xff0c 因此E2E通信保护协议被提出 xff0c 以满足功能安全要求 xff1
  • TSN(时间敏感网络)介绍

    1 前言 TSN是时间敏感网络 xff08 Time Sensitive Network xff09 的英文缩写 xff0c 是IEEE 802 1 TSN工作组开发的一系列数据链路层协议规范的统称 xff0c 用于指导和开发低延迟 低抖动
  • 汽车OTA是个什么鬼?

    OTA xff1a Over the Air Technology 这描述的是手机吧 xff01 不过一开始的手机也是不可以直接OTA的 1997年之前所有汽车都是一个独立的机械个体 xff0c 一个方向盘 xff0c 一组踏板 xff0c
  • Hypervisor简介

    从头开始了解和使用Hypervisor xff08 第4部分 xff09 嘶吼 RoarTalk 回归最本质的信息安全 互联网安全新媒体 4hou com 根据 Hypervisor 的不同类型 xff0c 我们将虚拟化分为I 型和 II
  • 使用repo下载google源码,跟编译 ,遇到的错误解决

    最近一直想下载android的源码看看 xff0c 但是按照官方的文档下载 xff0c 遇到了问题 在执行的curl http commondatastorage googleapis com git repo downloads repo
  • S32V234 Linux yocto开发环境搭建

    一 主机环境 主机 xff1a Ubuntu 16 04 5 64bit S32V bsp infomation xff1a Bsp version auto yocto bsp 19 0 Linux Kernel version 4 13
  • NXP S32G2开发

    https blog csdn net bigzhizhi article details 123069235 导言 Linux BSP是一组源代码 xff0c 可用于为受支持的板卡创建U Boot引导加载程序 Linux内核映像 根文件系
  • 简单解决Please install the gcc make perl packages from your distribution问题 and VirtualBox安装增强功能失败

    在vbox安装ubantu增强功能 xff0c 出现下面这种情况 xff1a Please install the gcc make perl packages from your distribution 在这里插入图片描述 把需要的包都
  • 图形学就业方向&&春招部份纪实

    以下分几个模块分别介绍图形学 xff1a 1 图形学未来方向以及需要的技术 2 个人找工作情况 xff0c 具体介绍 图形学未来方向以及需要的技术 最近GAMES论坛搞了一个计算机图形学走进高校企业活动 xff0c 可以简称图形学招聘活动
  • SOME/IP 消息的布局

    1 SOME IP 消息的布局 前面两篇文章 SOME IP概述 分层结构及要实现的需求 SOME IP概述2 SOME IP的主要中间件功能 43 SOME IP报文PDU的封装 讲述了SOME IP的基本概念 需求及架构在以太网的4层模
  • 什么才是软件定义汽车?

    Software Defined Vehicle The Eclipse Foundation 导读 xff1a 移动出行时代 xff0c 汽车逐渐由机械驱动的硬件向软件驱动的电子产品过渡 xff0c 软件定义汽车趋势愈发明显 这一过程中汽
  • 一文看懂四大汽车总线:LIN、CAN、FlexRay、MOST

    前言 随着汽车工业的发展 xff0c 汽车各系统的控制逐步向自动化和智能化转变 xff0c 汽车电气系统变得日益复杂 传统的电气系统大多采用点对点的单一通信方式 xff0c 相互之间少有联系 xff0c 这样必然会形成庞大的布线系统 据统计
  • 浅谈ASIL: 汽车安全性等级

    目录 ASIL 表示汽车安全性等级 ASIL的确定 1 严重度 2 暴露度 3 可控度 ASIL 故障分析手段 ASIL 表示汽车安全性等级 这是 ISO 26262 标准针对道路车辆的功能安全性定义的风险分类系统 ASIL 根据伤害的可能
  • SOA中间件DDS(数据分发服务-Data Distribution Service)

    DDS协议 高可靠性 实时性 DDS Data Distribution Service for Real Time Systems xff0c 是一种面向实时系统的数据分发服务 xff0c 由OMG提供 xff0c 它的权威性可以证明该协
  • MQTT与DDS的比较

    MQTT VS DDS MQTT协议 三种服务质量 QoS xff1a 最多一次 Sender 发送的一条消息 xff0c Receiver 最多能收到一次 xff0c 也就是说 Sender 尽力向 Receiver 发送消息 xff0c
  • R-Car H3系列SOC芯片与R-Car M3 R8A77961JBP0BA区别

    RENESAS推出的 xff1a R Car H3 系列 SOC 芯片 R8A77951JA00BA xff03 YJ1 xff0c R Car M3 系列 SOC 芯片 R8A77960JA60BG xff03 YJ5 在内核上 xff1
  • PTP(IEEE1588),TSN时间同步方法

    本文首先简要介绍主流的时间同步方式GNSS xff0c NTP xff0c PTP 然后通过NTP和PTP对比 xff0c 解释PTP性能更优秀的原因 xff1b 并对算法公式进行了推导 0 Why need time synchroniz