TSN旨在通过对以太网数据流的控制和管理,在以太网网络中同时提供高性能、高可靠性和精确时延的实时通信,与高带宽高吞吐量的普通通信。以满足工业控制、汽车、音视频等领域对实时通信与大量数据传输的需求。IEEE Std 802.1AS 对 IEEE 1588 进行扩展产生了gPTP协议,它用于TSN中的时间同步,为数据流的控制和管理提供时间参考。本文对gPTP的基本工作原理进行介绍,以帮助你快速了解gPTP协议。
gPTP简介
一个时间感知网络由多个相互连接的支持gPTP的时间感知系统组成。这些时间感知系统可以是任何网络设备,包括桥接器、路由器和终端站等。每个时间感知系统支持的gPTP实例都在一个gPTP域中,这些gPTP实例都是该gPTP域的一部分。每个域中会选举出一个GrandMaster,域中的所有实例按照GrandMaster的时钟对网络流量进行调度和管理。一个时间感知系统可以支持多个gPTP实例,每个实例与不同的gPTP域相关联,成为多个gPTP域的一部分。
gPTP的工作流程
以下是简化的两个只有一个全双工以太网接口的gPTP设备连接后的通信流:
交换GptpCapable Signaling与Pdelay报文
gPTP要求相同域中的所有设备都支持gPTP,它不会通过不支持该协议的系统传输时间信息。支持802.1AS的设备会定期发送GptpCapable Signaling报文与PdelayReq报文,GptpCapable Signaling报文用于通知链路对端设备本设备支持gPTP,PdelayReq报文发起链路延迟测量请求,测得的链路延迟将用于判断链路中是否包含不支持802.1AS设备和随后的时间同步。设备通过以下条件判断链路及对端设备是否支持802.1AS (802.1AS-2020 11.2.2 Determination of asCapable and asCapableAcrossDomains)如果链路未能满足以上要求,GptpCapable Signaling和PdelayReq报文仍然会持续发送以定期检查链路是否能运行802.1AS协议。
802.1AS设备的Master端口会周期性发送Announce报文向其他设备通报GrandMaster信息,报文发送周期称为announceInterval。收到Announce报文的设备会使用BMCA (Best Master Clock Selection) 算法比较Announce报文中的GrandMaster,若Announce中的GrandMaster优于自身当前的GrandMaster,会将自身的GrandMaster替换为Announce中的GrandMaster。在设备未收到Announce报文时,会尝试将自身选举为GrandMaster。
SystemIdentity
802.1AS设备的Master端口会周期性发送Sync报文,接收到该报文Slave设备将可计算出与Master设备的时钟偏移。
延迟测量
传播延迟测量始于发起方发出 Pdelay_Req 报文并生成时间戳t1。响应者接收到该报文并生成时间戳t2。响应者返回包含t2的Pdelay_Resp 报文,并生成时间戳t3。响应者在Pdelay_Resp_Follow_Up报文中返回t3。发起方在收到Pdelay_Resp报文后生成时间戳t4。随后发起方使用这四个时间戳通过以下公式计算平均传播延迟D(meanLinkDelay)。
时间同步
Master设备发送首先Sync报文并生成时间戳t1,随后发送包含t1的Followup报文。Slave设备收到Sync报文并生成时间戳t2。Slave设备使用这两个时间戳通过公式t2-t1-linkDelay得到自身时钟与Master时钟的偏移。
参考文献:
IEEE Std 802.1AS-2020
IEEE Std 1588-2019