时间同步——TSN协议802.1AS介绍
前言
之前的主题TSN的发展历史和协议族现状介绍了TSN技术的缘起,最近一期的主题TSN协议导读从定时与同步、延时、可靠性、资源管理四个方面,帮助大家了解TSN协议族包含哪些子协议,以及这些子协议的作用及功能。相信大家对TSN技术已经有了整体的概念。
时间同步作为诸多TSN协议的基础,无疑是十分重要的。今天就带大家深入了解TSN协议族中802.1AS是如何实现时间同步的。
协议基本介绍
802.1AS通用精确时间协议(Generalized Precision Time Protocol),将为汽车、工业自动化控制等领域实现精确时间的测量。本章将从基本概念、测量方式入手,再介绍时间同步过程,最后介绍802.1AS的新特性及汽车领域profile。
1. 802.1AS概念
1)基本构成
在802.1AS中,时间同步是按照“域”(domain)划分的,包含多个PTP节点。在这些PTP节点中,有且仅有一个全局主节点(GrandMaster PTP Instance),其负责提供时钟信息给所有其他从节点。
PTP节点又分为两类:PTP End Instance(PTP端节点)和PTP Relay Instance(PTP交换节点)。其中:
- PTP End Instance或者作为GrandMaster,或者接收来自GrandMaster的时间同步信息;
- PTP Relay Instance从某一接口接收时间同步信息,修正时间同步信息后,转发到其他接口。
2)GrandMaster的选取
GrandMaster的选取除了手动设置以外,可以通过比较每个PTP节点的属性,自动选出GrandMaster,这一策略就是BMCA(Best Master Clock Algorithm)。
在BMCA建立的过程中,首先各个PTP节点将自身时钟属性(比如时钟源)、接口信息放入Announce报文中,并发送给gPTP域内所有节点,之后PTP节点比较自身与接收到的时钟属性,优先级高的PTP节点自动成为GrandMaster。
3)报文类型
802.1AS包括两种类型(Message class)General message和Event message,二者的区别在于,发送或接收Event message时,相应的时间戳会被记录,而General message则不会。General message包括Announce、Signaling、Follow_Up、Pdelay_Resp_Follow_Up,Event message包括Sync、Pdelay_Req、Pdelay_Resp。
Announce报文包含时钟相关信息,并且传输中,会记录途径的各PTP节点的Id添加到path trace TLV中;Signaling报文包含该PTP节点支持的信息,比如是否支持“一步法”、允许的Announce Interval等;Sync报文由GrandMaster发送,包含主时钟信息,其他节点计算本地时钟与主时钟的差值,实现同步;Follow_Up以及Pdelay_Resp_Follow_Up则是“两步法”中提供补充时间戳的报文,前者与Sync连用,后者与Pdelay_Resp连用;最后Pdelay_Req与Pdelay_Resp一起构成P2P测量机制的基础,将在后续章节中详细讲解。
2. 802.1AS测量过程
为了实现从节点本地时钟与GrandMaster时钟同步,需要考虑三个因素:
- 时钟频率误差
- 链路延迟
- 驻留时间
时钟频率误差是指PTP从节点的本地时钟频率与GrandMaster的主时钟频率很有可能是不同的,而且各PTP从节点之间也存在误差,这就造成时间测量基准不同,从而引入误差。
链路延迟(MeanLinkDelay)是指两两PTP节点之间通信的链路,在单方向上传播所需要的时间,也称为链路平均传播时间(Mean Propagation Delay)。
驻留时间(residence time)是指PTP Relay Instance将接收到的报文转发出去所用的时间,也就是报文停留在Relay中的时间。
1) 时钟频率误差测量
802.1AS为了消除这种误差,采用累积计算相邻节点时钟频率的比值(NeighborRateRatio)的方式,实现将本地时基(Local Clock Timebase)换算成(GrandMaster Timebase)。
举例来说,GrandMaster的时钟频率为1MHz,而与之相邻的PTP从节点(A)时钟频率有偏差为1.3MHz,对于A节点来说NeighborRateRatio等于1.3。当A节点本地时钟度过2.6s时,使用NeighborRateRatio换算为GrandMaster时基,则得到主时钟度过2s。对于与A相邻的B节点,假设其时钟频率为0.9MHz,经过累积的NeighborRateRatio等于0.9(1.3/1.0*0.9/1.3),当B节点本地时钟度过3s时,主时钟度过2.7s。
2) 链路延迟测量
802.1AS中测量链路延迟采用P2P测量机制(Peer-to-Peer delay Mechanism),假设链路往返延迟一致(链路具有对称性),通过测定四个精确时间戳,计算得出一段链路上的链路延迟(MeanLinkDelay)。
- 对于一段链路,存在两个PTP节点,其中Peer delay initiator(发起者)会主动发出Pdelay_Req报文,接收Pdelay_Req报文的节点称为Peer delay responder(响应者)
- 在initiator端会记录Pdelay_Req报文实际的发出时间戳t1,在responder端会记录报文实际的接收时间戳t2
- responder在接收到Pdelay_Req后会回复Pdelay_Resp报文给initiator,这个报文会包含t2这一信息
- 在responder端会记录Pdelay_Resp发送时间戳t3,在initiator端会记录接收时间戳t4
- responder端会在Pdelay_Resp之后在发送一个Pdelay_Resp_Follow_Up报文给initiator,以包含信息t3
- 至此,在initiator端有t1、t2、t3、t4四个精确时间戳,通过计算t2-t1和t4-t3就能得到这一链路两个方向(i->r、r->i)传播的用时(tir、tri),再对其求均值,就能得到这一链路延迟(MeanLinkDelay);
- 对于进行P2P测量的双方节点会交替作为initiator,从而都能获得该链路延迟(MeanLinkDelay)。
使用P2P测量机制,就能得到gPTP域中每一段链路延迟,在实际进行同步过程中,PTP Relay Instance会将从GrandMaster开始的链路延迟累积记录在Follow_Up报文中的correctionField中,再转发出去;同时,对非对称误差的修正(通过测定后,手动设置参数修正),也放在correctionField中。
3) 驻留时间测量
驻留时间由PTP Relay Instance引入,指的是报文停留在Relay中的时间。想要消除其带来的影响相对简单,就是在转发出的Follow_Up报文中的correctionField中记录这一驻留时间,其他PTP节点收到该报文,就能计算得出正确的时间偏移。
3. 时间同步实现过程
802.1AS中通过手动配置或者BMCA确立GrandMaster后,GrandMaster周期发送Sync和Follow_Up报文提供主时钟基准;在实现节点同步之前,各个PTP节点通过Signaling报文协商计算NeighborRateRatio的间隔、计算MeanLinkDelay的间隔等信息;最后,各PTP从节点利用已有的NeighborRateRatio、MeanLinkDelay以及接受到的Sync及Follow_Up报文,利用Follow_Up报文中的correctionField信息修正后,就能得出主时钟现在的时刻,从而完成时间同步。
4. 2020版新特性
在新版的802.1AS-2020中,添加了几个重要的新特性,如:多域冗余、支持“一步法”等。下面就来简单了解一下这些特性。
1) 多域冗余
这张图很好地展现了多域冗余特性,主要分为两种方式:
- 同一GM(全局主节点)划分多个域,对每个域生成同步树(即同步路径)实现冗余
- 多个GM,每个GM维护一个域生成同步树,多个GM有主次之分,次要GM跟主要GM同步,这种方式也称为hot-standby
在图中,左上角的end station作为主要GM,它划分两个域,为每个域生成一个同步树(即同步路径,分别为蓝色和淡蓝色),右下角的end station作为次要GM跟主要GM同步,此外也划分两个域,为每个域生成同步树(红色和浅红色),这样一共有四个域、四个同步树,确保了冗余。
2) “一步法”
所谓“一步法”(也称为“on-the-fly”)是指在发送报文的同时,将在接近物理层的发送时间戳添加到报文中直接发送出去,这样将所需要的信息放在一帧报文中,更加高效,但是需要额外的硬件支持。对于接收节点,同样需要对“一步法”报文解析的能力。
“两步法”Sync报文
“一步法”Sync报文
与之相对的是“两步法”,这种方法仅在Sync或Pdelay_Resp报文发送时记录发送时间戳,再把这一信息封装在Follow_Up或Pdelay_Resp_Follow_Up报文中发送,从而在不需要额外的硬件支持下获得精确的时间戳。
5. 汽车领域profile
802.1AS能为汽车领域、工业自动化控制等领域实现精确时间的测量。而针对汽车领域的profile目前还未正式发布,这一内容将在802.1dg中体现,届时,我们将带来对其的深入解读。
结语
以上就是本次对802.1AS协议介绍的全部内容了,后续会带来更多TSN协议的解读,敬请期待。
北汇信息作为早期探索TSN领域的专业团队,能够针对AVB/TSN网络架构提供解决方案,包括应用场景设计、需求规范开发、通信系统设计以及演示验证系统开发;针对AVB/TSN网络提供系统级测试解决方案,包括系统测试规范开发、系统测试执行与演示;针对AVB/TSN节点提供协议族。
最后,北汇信息还提供AVB/TSN 网络课程,课程介绍了汽车网络架构的发展带来了各种各样的挑战和问题,如何从通讯角度来应对这些挑战,以及当前TSN协议的发展现状;对TSN各个协议标准进行了剖析,以期听众可以了解TSN各个协议的运作机理,为其配置和使用TSN网络提供基础。
时间同步——TSN协议802.1AS介绍的更多相关文章
- 基于TSN 802.1AS协议的时间同步分析(7种延时,1次厘清)
前言 往期的时间同步--802.1AS协议介绍一文向大家介绍了802.1AS协议的基本内容,基于时间同步协议就能实现主节点与各从节点的时间同步,但是如何评价时间同步的优劣呢?这就需要我们通过一些时间同 ...
- 转载:WIFI无线协议802.11a/b/g/n/ac的演变以及区别
WIFI无线协议802.11a/b/g/n/ac的演变以及区别 版权声明:版权所有,转载须注明出处. https://blog.csdn.net/Brouce__Lee/article/details ...
- IEEE 802.15介绍
1. 无线通信 无线通信主要是利用无线电(Radio)射频(RF)技术的通信方式,无线网络是采用无线通信技术实现的网络无线网络可为两种: 近距离无线网络和远距离无线网络 近距离无线网络主要可分为如下两 ...
- MQTT协议的简单介绍和服务器的安装
最近公司做的项目中有用到消息推送,经过多方面的筛选之后确定了使用MQTT协议,相对于XMPP,MQTT更加轻量级,并且占用用户很少的带宽. MQTT是IBM推出的一种针对移动终端设备的基于TCP/IP ...
- XMPP协议的原理介绍
XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测.它在促进服务器之间的准即时操作.这个协议可能最终允许因特网用户向因特网上的其他任何人发送 ...
- XMPP协议实现原理介绍
本文介绍XMPP协议原理及相关信息. XMPP协议简介 XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的四种IM ...
- HTTP协议的简单介绍
前传:HTTP协议的演变过程 HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是 ...
- tcp协议以及socket介绍
壹:tcp协议:可靠传输 一: 3次握手,建立链接:4次挥手,断开链接 3次握手,建立链接:图解 ,这样双向通路就建立完成了. 在建立链接时,并没有数据传输,所以中间两部可以合在一起,也就是3次握手, ...
- HTTP协议请求类型介绍
HTTP协议中共定义了八种方法或者叫"动作"来表明对Request-URI指定的资源的不同操作方式,具体介绍如下: OPTIONS: 返回服务器针对特定资源所支持的HTTP请求方法 ...
随机推荐
- 微信小程序(八)
应用弹性盒子布局 基于 flexbox layout 的实现 先变为 flexbox layout display: flex; 从上往下 flex-direction: column; 均匀分布,居 ...
- 【linux系统】命令学习(七)进阶命令 curl jq
curl 支持dict file ftp ftps gopher http https imap 1.实现代理 curl -x 129.3.3.3:8888 https://baidu.com 2.g ...
- 使用PAM模块实现普通用户之间su免密切换
参考自:Allow user1 to "su - user2" without password https://unix.stackexchange.com/questions/ ...
- 使用pmml跨平台部署机器学习模型Demo——房价预测
基于房价数据,在python中训练得到一个线性回归的模型,在JavaWeb中加载模型完成房价预测的功能. 一. 训练.保存模型 工具:PyCharm-2017.Python-39.sklearn2 ...
- mybatis-参数如何测试
mybatis参数非常多测试的时候定位bug一直是个问题,如果老用大部分时间来定位一个错误的参数,太浪费时间了...
- 力扣 - 剑指 Offer 10- I. 斐波那契数列
题目 剑指 Offer 10- I. 斐波那契数列 思路1(递归 / 自顶向下) 这题是很常见的一道入门递归题,可以采用自顶向下的递归方法,比如我们要求第n个位置的值,根据斐波那契数列的定义fib(n ...
- [Ocean Modelling for Begineers] Ch5. 2D Shallow-Water Modelling
本章利用二维浅水模型研究表面重力波的不同物理过程,如湖水中风驱动流体,正压不稳定机制(?the barotropic instability mechanism).本章将为读者介绍使用不同的对流格式模 ...
- 【R方差分析】蛋白质表达量多组比较
初始数据类似: 蛋白质组数据虽不是严格的正态分布,但目前最常用的检验方法还是T检验(两组比较)和方差分析(多组比较).这个话题值得深究,这里不展开. 主要是求多个蛋白的Pvalue值或FDR,用于差异 ...
- 通过mac地址确认二层交换机某个端口下接的终端设备IP
正常来说,二层交换机主要是通过mac地址进行通信的,这就导致我们无法直接通过arp表来确认交换机端口下终端设备的IP: 但我们仍然能通过查找二层交换机端口下学习到的mac地址,然后通过对照三层核心交换 ...
- 一个好用的快速安装lnmp环境包lnmp1-6
一个好用的快速安装lnmp环境包lnmp1-6 地址:https://lnmp.org/tag/lnmp1-6/