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

本文首先简要介绍主流的时间同步方式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的标准,做了介绍。

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

/*
|| 同步方式 | 同步精度(典型值) | 备注 |
|–|–|–|–|–|
|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。图中各元素可通过参考文献理解。
参考https://www.techplayon.com

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 FOLLOWUP packet;
    master在本地t1时刻发送SYNC包,并将t1时刻保存;然后在FOLLOWUP包中,将t1发给slave。
  2. The slave clock receives the SYNC packet and records the receiving time stamped at PHY layer as t2, then receives the FOLLOWUP packet to obtain t1;
    slave收到SYNC包时,记录本地接收时刻t2;收到FOLLOWUP包时,保存其中的t1。
  3. The slave sends a DELAYREQ message and records the local sending time t3; slave向master发送DELAYREQ包,并在本地记录发送时刻t3。
  4. The master receives the DELAYREQ message, records the receiving time as t4, and sends t4 to the slave through the DELAYRESP message;
    master接收到DELAYREQ包,记录接收时刻t4,然后将t4通过 DELAYRESP发送给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的DELAYRESP包,将t4保存。

在接收到t4后,slave端在本地集齐了t1,t2,t3,t4,可以放大招了。
The time offset between master clock and slave clock:
T o f f s e t = ( t 2 + t 3 − t 1 − t 4 ) / 2 T_{offset} = (t2 + t3 - t1 - t4)/2 Toffset=(t2+t3t1t4)/2
note:在上述的过程中,sync消息的发送时间t1是由followup消息携带的,该方式称为two-step synchronization的方式。对应的,PTP还定义了one-step同步方式,即sync消息中自带t1时间戳。在对时原理上,两者是相同的,但相比之下,one step的设计方式,由于实时性的要求,因此对硬件操作的要求更高,成本也更高。在此顺便提一下一处gPTP和PTP的不同:在gPTP中,考虑到成本、通用等因素,只要求two-step 同步的方式(能同步就行,要啥自行车)。

4.公式推导

T m a s t e r + T o f f s e t = T s l a v e (1) T_{master} + T_{offset} = T_{slave} \tag{1} Tmaster+Toffset=Tslave(1)

  • ----假设slave比master 快T_offset

t 1 + t p r o p a g a t i o n = t 2 − T o f f s e t (2) t1 + t_{propagation} = t2 - T_{offset} \tag{2} t1+tpropagation=t2Toffset(2)

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

t 3 + t p r o p a g a t i o n = t 4 + T o f f s e t (3) t3 + t_{propagation} = t4 +T_{offset} \tag{3} t3+tpropagation=t4+Toffset(3)

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

T o f f s e t = ( t 2 + t 3 − t 1 − t 4 ) / 2 T_{offset} = (t2 + t3 - t1 - t4)/2 Toffset=(t2+t3t1t4)/2

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

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

5.举个例子

参考https://cezacx2.tistory.com/

【概念相关参考资料】

下图来自思科
在这里插入图片描述

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.

  • 17
    点赞
  • 140
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值