从数据包的角度分析IP 化视频系统中的PTP 协议

PTP 同步是IP 化系统的关键问题。本文以 中央广播电视总台4K IP 化移动外场系统中 同步的构架及设置方式为基础,从PTP 协 议的原理、PTP 协议在IP 化视频系统中应 用方式进行分析,通过数据包抓包的方式展 现PTP 在实际系统中的同步功能。

摘要

一PTP 协议的工作流程

IEEE1588 协议即PTP(Precision Time Protocol,精确时间协议),是一种时钟同步的协议。其本身只是用于设备之间的高精度时间及频率同步。时钟同步就是利用一个确定的主时钟,令其他分散的时钟根据与它的时间差值进行校准,与主时钟保持一致。由于实际的系统会存在不稳定性,因此即使全网时钟在某一时刻达成了一致,后续依旧可能产生差异,因此PTP 需要不停地进行差值校准的动作。相比NTP(Network Time Protocol,网络时间协议),PTP 能够满足更高精度的时间同步要求。NTP 一般只能达到亚秒级的时间同步精度,而 PTP 则可达到亚微秒级。相比GPS(Global Positioning System,全球定位系统),PTP 具备更低的建设和维护成本。

PTP 域中的节点称为时钟节点,PTP 协议中规定了OC、BC 和TC 三种时钟方式。OC 为普通时钟,应用该模式的设备通常只有一个PTP 端口参与时间同步,该端口可以是主模式或者从模式。例如IP 化视频系统中,PTP 时钟源TEK8000A 即为主模式的普通时钟。末端接收点,如IPG 板卡、切换台或是示波器等,即为从模式的普通时钟。BC 为边界时钟,BC 模式的交换机在跟外来接入的主时钟信号保持同步后,又可以根据自己的内部时钟来生成新的主时钟信号传递给下游,对于降低主、从时钟间来回询问响应的压力发挥着很大的作用。TC 为透明时钟,该模式设备也可拥有多个PTP 端口,但只进行端口间的PTP 报文转发,不需要与其他时钟节点保持时间同步。目前主流IP 系统均选用BC 模式,其好处就是在系统中接收PTP 设备较多的情况下,可以将PTP 网络隔离,有效降低上游主时钟的负荷。

完成PTP 同步,大体分为两个步骤,即:主、从关系的建立和频率/ 时间同步。

1. 主、从关系的建立

系统中判定主、从关系是通过判定各个时钟节点端口的状态计算得出的,这种算法就是BMCA(最佳时钟算法),该算法需要获取来自时钟端口所接收的同步报文。在一个时钟域内,有且仅有一个最佳主时钟。BMCA 算法依次包括Priority1(时钟优先级1)、Clock Class(时钟级别)、Clock Accuracy(时钟精度)、Offset Scaled Log Variance(时钟稳定性)、Priority2(时钟优先级2)、Identifier(设备标识符,通常为MAC地址)。以上选项中,Priority1 和2 可根据实际使用情况进行配置,取值范围是0~255,取值越小优先级越高。其他参数都是客观得出的,一般情况下无法人为改变。系统加电后接入的所有PTP 同步源均发出Announce(通知)报文,报文中包含BMCA 算法所需要的测算依据。之后执行BMCA 选源算法时,按算法中要求的顺序依次进行比较,数值越小代表优先级高、精度好,胜出时钟最终成为全系统的最优时钟,交换机所有端口状态也随之得到确定。此外,被选为最佳主时钟的同步源会定时发送报文给各个节点,若其他节点在一定时间内没有收到报文或主时钟Announce 报文内容有所修改时,则会重新进行选择。

2. 频率/ 时间同步

PTP 协议中定义了两种传播测量机制:E2E(End-to-End),又称延时请求应答机制、端到端延时机制。根据主从时钟之间的整体链路延迟时间计算时钟时间信息。P2P(Peer-to-Peer),又称对等延时机制、点对点延时机制。根据主从时钟间每一条链路延迟时间计算时钟时间的信息。目前的IP 化视频系统中,主要采用E2E 的方式。E2E 方式中时钟频率及时间的同步步骤主要为以下几步:

◆主设备在时刻t1 发送Sync(同步)报文。如果主设备为one-step 模式,t1 随Sync 报文传送到从设备;如果主设备为two-step 模式,则t1 在随后的Follow_Up(同步跟踪)报文中传送到从设备;

◆从设备在时刻t2 接收到Sync 报文,并从Sync报文(one-step) 或者Follow_Up 报文(two-step)中获取t1;

◆从设备在时刻t3 发送延时请求报文Delay_Req(延迟请求)给主设备;

◆主设备在时刻t4 接收到Delay_Req 报文;

◆主设备随后通过延时回答报文Delay_Resp(延迟相应)将t4 发送给从设备。

image.png

至此,从设备得知了t1、 t2、 t3、 t4 四个时间戳并利用这四个时间戳计算出主、从设备之间的平均路径延时,进而计算出时间偏移。然后利用这个时间偏移修正本地时间,使主、从设备之间的时间实现同步。可以算出往返总延时为[(t2–t1)+(t4–t3)],单向延时为[(t2–t1)+(t4–t3)]/2,时钟偏差为[(t2–t1)-(t4–t3)]/2。

二 抓包环境及PTP 设置

中央电视总台4K IP 化移动外场是台内首个基于SMPTE 2110 无压缩标准的IP 化视频系统,该系统以主、备COST 通用交换机为数据交换核心,配置两台泰克8000A 同步信号发生器。采用SMPTE 2059 协议,使下游各设备在以1970 年1 月1 日零时为起点的基础上进行时间同步。该系统内未配置GPS。其PTP 系统构架如图2。

image.png

图2 系统中主要有四个设备可以发送出PTP 信号:主、备8000A 同步发生器以及主、备核心交换机(思科9336)内部的PTP 时钟。主核心交换机29口配置1G 光模块与主同步机电口相连,备核心交换机29 口同样配置1G 光模块与备同步机电口相连。主、备8000A 通过BNC 接口互联,其中一台8000A 的Reference 设置为Internal,另外一台被同步的8000A的Reference 设置为External, 且Time of Day 选项的Source 设置为VITC Input , 使两台同步发生器以BB+VITC 的方式进行时钟同步。主、备核心交换机30 口配置10G 光模块进行互联。当主同步机接入主核心交换机时,主8000A 发出的PTP 时钟将与主核心交换机内部时钟进行BMCA 算法的比较,选出最佳时钟。同理,备8000A 发出的PTP 时钟将与备核心交换机内部时钟进行BMCA 算法的比较,选出最佳时钟。通过两个交换机互连端口,两组暂定的最佳时钟再次进行比较,最后确定出系统内的GM 时钟。该系统设置为BC、E2E、two-step 的模式,所有下游终端设备连接的交换机端口均为Slave 状态。终端设备与交换机通过Sync、Follow_Up、Delay_Req 及Delay_Resp 数据包传输进行时间计算和校正。系统内所有PTP 信号源的Domain 设置为127,两台8000A 的PTP 时钟Announce Interval 设置为1s,Sync Interval 设置为0.125s,Announce Time Out 设置为3。主、备8000A 的Primary1 设置的优先级相同,且均大于核心交换机内部的PTP 同步时钟源,主8000A Primary2的优先级大于备8000A Primary2 的优先级。

在4K IP 化移动外场中,根据BMCA 算法的设定,其正常情况下全系统设备锁定在主8000A 发出的PTP 时钟上。由于采用了BC 模式,可以查看到在主交换机内部的29 端口为Slave 状态,其他均为Master状态,为下游设备提供时钟源。备核心交换机通过交换机互连端口锁定PTP 时钟,因此其30 端口为Slave状态,其他均为Master 状态,为下游设备提供时钟源。

三IP 化视频系统内的PTP 数据包分析

PTP 协议中的报文分为事件(Event)报文和通用(General)报文两种,事件报文为时间概念报文,进出设备端口时会打上精确的时间戳,用于计算主、从时钟之间的时间偏移和路径延迟。在E2E 模式中事件报文包含:Sync、Delay_Req 两种。通用报文为非时间概念报文,进出设备端口时不会打上时间戳,用于主、从关系的建立、时间信息的请求和通告、在E2E 模式中通用报文包含:Announce、Follow_Up、Delay_Resp 三种。根据PTP 的工作流程可以看到,Announce 报文、Sync 报文以及Follow_Up 报文为多播模式,该报文将发送到保留的组播地址224.0.1.129上,以便交换机内各端口监听Announce 报文以进行BMCA 算法的比对,同时所有Slave 端口可以监听到Master 端口发出的Sync 报文和Follow_Up 报文。而Delay_Req 和Delay_Resp 报文则是单播报文,由下游设备指定发送到Master,同时由Master 指定返回至该下游设备一个回复信息。EVENT 消息头的UDP 目的端口号是319,General 消息的UDP 目的端口号是320。在4K IP 化移动外场中,以IP 地址为10.1.7.10的IQUCP 网关板卡为例进行PTP 抓包可以清楚地看到PTP 校对过程。

image.png

4K IP 化移动外场交换机设置为三层构架,其PTP 数据包是以IPv4 进行封装的,其中1588v2 消息必须包含消息头、消息体和消息扩展字节,扩展字节长度可能为0。

image.png

其中Msg Type 的值标识不同的报文类型,Announce 报文中为0xb。Tran Spec 为0 表示PTP 消息遵循1588 协议。Version PTP 表示PTP 的版本,通常为1588v2 的版本。Msg Length,表示PTP 消息的长度,即PTP 消息的全部字节数目。计入字节始于报头的第一个字节,同时包含并收尾于任何尾标的最后一个字节,或是无尾标成员时收尾于消息的最后一个字节。Domain Number 为该时钟设置的域编号,本系统内所有PTP 源发出的Domain Number 均为127。Flag Field 为标志位,系统中8000A 发出的PTP设置为two-step 模式, 其标志位数据为0x020c。Correction Field 为修正域,各报文都有,主要用在Sync 报文中,用于补偿网络中的传输时延。SourcePort Identity 为源端口标识符,发送该消息时钟的ID和端口号,在图5 所示的Announce 报文中发出发送数据包的端口号为128。Control Field 为控制域,由消息类型决定:0x00 代表Sync,0x01 代表Delay_Req,0x02 代表Follow_Up,0x03 代表Delay_Resp,0x04 代表Management,0x05 代表All others,因此在Announce 报文中该位为0x05。Log Msg Period,录入消息周期,PTP 消息的发送时间间隔,8000A 中设置了Announce Interval 设置为1s,因此在Announce 报文中该位为0,表示为20。Sequence ID 表示消息的序列号,以及关联消息的对应关系。

除此之外,在Announce 报文的数据包中,Grandmaster clock ID 为系统中的GM ID,对于外场系统来说正常情况下应是主8000A 的ID 号,Clock ID 为连接终端设备的交换机的ID 号。由于需要进行BMCA算法的比较, 因此可以在Announce 报文中看到Priority1 是在8000A 中设置的0、Clock Class(时钟级别)、Clock Accuracy(时钟精度)、Offset Scaled LogVariance(时钟稳定性)、Priority2 是在8000A 中设置的20、Identifier(设备标识符,通常为MAC 地址)等信息。

image.png

根据PTP 校准的步骤,下游设备与交换机校准的过程中:1、交换机在T1 时刻发送Sync 报文,系统再two-step 模式下T1 的节点时间是通过Follow_Up 报文传送到节点设备的。在Follow_Up 的报文中可以看到Precise Origin time stamp 字段。因此,系统中的节点设备在T2 时刻接收到Sync 报文,并从Follow_Up 报文中获取T1 时间。2、节点设备在T3时刻发送延迟请求报文Delay_Rey 给交换机。交换机在T4 时刻收到该报文,并通过延时应答报文Delay_Resp 将T4 发送给节点设备。在Delay_Resp 报文中可以看到Receive Time stamp 字段。

在Sync 报文中,由于之前在8000A 中设置了Sync Interval 设置为0.125s, 因此可以看到其LogMessageg Period 为-3,即2-3。同时,由于Sync 报文的发出时间T1 是通过Follow_Up 报文发送的,因此Sync 报文中Origin time stamp 值为0。

image.png

四 结语

同步是异步网络中各节点设备及信号协同工作的基础,也是IP 化制作系统的关键技术。相比演播室IP 化的初期阶段,现有的IP 化超高清制作系统中使用PTP 协议进行同步的方式已逐渐推广。通过合理的设计搭建同步系统,在信号源、交换机及终端软件上设置其PTP 参数,可以建成更优化的同步系统。运行过程中PTP 信号是否稳定,同步校正是否正常,均可以通过示波器或读取数据包的形式进行分析,并以此方式在出现故障时进行排查。IP 给广电制作带来了宽广的前景,同时也给传统广电人提出了挑战。了解PTP 的数据包内容,无疑可以帮助系统操作及管理人员更好地管控系统,确保正常运营。

转载请注明来源:《现代电视技术》 作者:中央广播电视总台 孙培