PTP技术白皮书
Copyright © 2020 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文档中的信息可能变动,恕不另行通知。
在通信网络中,许多业务的正常运行都要求网络时间同步。时间同步包括频率和相位两个方面的同步,通过时间同步可以使得整个网络各设备之间的频率和相位差保持在合理的误差范围内。其中,无线接入业务对时间同步的要求最高,它要求无线基站之间的频率必须同步在一定精度之内,否则手机在进行基站切换时容易掉线,严重时会导致手机无法联网。而以CDMA/CDMA2000为代表的无线通信技术,除了要求频率同步,还要求相位同步。随着5G技术的发展,载波聚合、多点协同、5G超短帧结构、高精度定位等新技术的应用,基站间的时间同步精度要求越来越高。
PTP(Precision Time Protocol,精确时间协议)是一种用于网络节点之间高精度频率同步和相位同步的时间同步协议,时间同步精度为亚微秒级,可满足广电网络、城市轨道交通、无线接入网络等场景的高精度时间同步要求。
PTP与其他时间同步方案,如GPS(Global Positioning System,全球定位系统)、BDS(BeiDou Navigation Satellite System,中国北斗卫星导航系统)、SyncE(同步以太网)、NTP(Network Time Protocol,网络时间协议)之间的对比如下:
时间同步方案 |
频率同步 |
相位同步 |
时间同步 精度 |
说明 |
GPS |
支持 |
支持 |
<100纳秒 |
通过电磁波携带频率和相位信息,实现时间同步。近年来,GPS的精度不断提高,但依赖于美国的GPS技术 |
BDS |
支持 |
支持 |
纳秒级 |
通过电磁波携带频率和相位信息,实现时间同步。目前,BDS同步网络正在建设中,2035年可实现“全覆盖、可替代” |
SyncE |
支持 |
不支持 |
不支持时间同步 |
通过物理层码流来携带和恢复频率信息,实现频率同步 |
NTP |
不支持 |
支持 |
毫秒级 |
通过NTP报文传输相位信号,实现相位同步,但不能满足无线接入网络等微秒级的时间同步精度要求 |
PTP |
支持 |
支持 |
亚微秒级甚至几十纳秒 |
通过PTP报文传输频率和相位信息,和硬件配合一同实现高精度的时间同步。随着软硬件技术的进步,PTP的精度可以达到几十纳秒甚至更高 |
IEEE 1588是PTP的基础协议,它规定了网络中用于高精度时钟同步的原理和报文交互处理规范,最初应用于工业自动化,现在主要用于桥接局域网。因此,PTP也称为IEEE 1588,简称为1588。1588分为1588v1和1588v2两个版本,1588v1只能达到亚毫秒级的时间同步精度,而1588v2可达到亚微秒级同步精度,可同时实现相位同步和频率同步。当前,1588v2比1588v1应用更广泛。
基于IEEE 1588,PTP又衍生了IEEE 802.1AS、ITU-T G.8275.1、ITU-T G.8275.2、SMPTE ST 2059-2、AES67-2015等协议。不同PTP协议标准使用场景不同,实现的功能有差异,但原理基本相同。本文重点讲述1588v2的技术原理和典型应用。
表1 PTP协议对比
使用场景 |
主要差异点 |
|
IEEE 1588v2 |
适用性广,对网络环境无强制要求,可根据不同的应用环境灵活扩展 |
· 使用BMC(Best Master Clock,最佳主时钟)算法计算主从关系 · 链路延时测量机制支持端延时机制和请求应答机制 · 协议报文支持IEEE 802.3/Ethernet封装和UDP封装 |
IEEE 802.1AS |
对1588v2在桥接局域网中的实现进行了细化,支持点对点全双工以太网链路、IEEE 802.11链路和IEEE 802.3 EPON链路 |
· 参考MSTP算法计算主从关系,较1588v2简单 · 链路延时测量机制只支持端延时机制 · 协议报文仅支持IEEE 802.3/Ethernet封装 |
ITU-T G.8275.1 |
电信领域专用标准 |
· 使用Alternate BMC算法计算主从关系 · 链路延时测量机制只支持请求应答机制 · 协议报文仅支持IEEE 802.3/Ethernet封装 |
ITU-T G.8275.2 |
电信领域专用标准 |
· 使用Alternate BMC算法计算主从关系 · 采用C/S架构,Client为从时钟节点,Server为主时钟节点,通过交互PTP协议报文,实现Client和Server间的时间同步 · Client和Server间可以穿越二层网络,该二层网络中的设备不需要支持PTP协议 · 链路延时测量机制只支持请求应答机制 · 协议报文仅支持UDP封装 |
SMPTE ST 2059-2 |
用于专业广播环境中音频、视频设备的时间同步 |
· 使用BMC算法计算主从关系 · 链路延时测量机制支持端延时机制和请求应答机制 · 协议报文仅支持UDP封装 · 协议报文的默认发送速率比1588v2高 |
AES67-2015 |
用于专业广播、音乐制作和影视后期制作设备的时间同步 |
· 使用BMC算法计算主从关系 · 链路延时测量机制支持端延时机制和请求应答机制 · 协议报文仅支持UDP封装 · 协议报文的默认发送速率比1588v2高 |
时间同步一般分为频率同步和相位同步。不同的组网环境,需要不同的同步方式。
频率同步也称为时钟同步。频率同步指两个信号的变化频率相同或保持固定的比例,信号之间保持恒定的相位差。如图1所示,两个表的时间不一样,但是保持一个恒定的差(6小时)。
相位同步是指信号之间的频率和相位都保持一致,即信号之间相位差恒定为零。如图2所示,两个表每时每刻的时间都保持一致。相位同步的前提是频率同步,所以相位同步也称为时间同步。
如图3所示,1588v2网络架构中涉及如下重要元素:
· PTP域
· 时钟源
· 最优时钟
· 时钟节点
图3 1588v2网络架构示意图
我们将应用了PTP协议的网络称为PTP域。
为适应复杂的组网环境,Comware还支持PTP多域,即支持将设备同时加入多个PTP域,不同PTP域的时钟源、时钟信息以及时间同步流程互相独立。当设备加入多个PTP域时,需要从多个域中确定一个最优域,以最优域所跟踪的时钟源来同步本设备的时间。
设备支持两种时钟源:
· 本地时钟源:由设备内部时钟监控模块的晶体震荡器产生的38.88 MHz时钟信号。
· 外接时钟源:由外接的时钟设备产生,通过专用接口接收的时钟信号。H3C设备通过主控板上的1PPS/ToD(Time of Day)接口连接PTP外接时钟源。
当PTP域内存在多个时钟源时,用户可手工指定或者通过BMC算法自动选举一个时钟源作为该PTP域的最优时钟(Grandmaster Clock,GMC)。最优时钟是整个PTP域的参考时间,PTP域内有且只有一个最优时钟,域内的所有设备都与该时钟保持同步。通过各时钟节点间PTP协议报文的交互,最优时钟的时间最终将被同步到整个PTP域内。
PTP域内参与时间同步的网络设备称为时钟节点。1588v2协议标准定义了以下类型的基本时钟节点,这些基本时钟节点在PTP域内的位置如图3所示:
节点类型 |
PTP接口个数 (开启PTP功能的接口) |
是否时间同步 |
应用场景 |
OC |
1 |
同步 |
· 作为时钟源提供一路同步信号,或作为PTP域的边界设备接受同步信号(如基站等) · 运行BMC(Best Master Clock,最佳时钟)算法 |
BC |
≥1 |
同步 |
· 作为时钟源可提供多路同步信号,或作为中间节点接受并提供同步信号 · 运行BMC算法,在环网环境下可自动避免PTP报文形成环路,且可自动实现保护倒换 |
TC |
≥1 |
不同步 |
· 作为中间节点传输同步信号,仅转发PTP报文并对其进行转发延时校正 · 无需运行BMC算法,不同步时间,对设备软硬件要求较低。同时因为不运行BMC算法部署TC时应避免形成物理环路,且需要手工实现保护倒换 |
TC节点在收到PTP报文时会在所有PTP接口上复制和转发,增加了上游和下游节点的带宽压力,甚至会造成业务报文丢包。为了在不同的组网环境中解决这个问题,TC节点划分为以下两种类型:
· E2ETC(End-to-End Transparent Clock,端到端透明时钟):转发所有PTP协议报文,并在转发Sync、Delay_Req报文时,携带Sync、Delay_Req报文在本设备内的驻留时间(驻留时间用于对时间偏差进行校正)。适用于时钟节点数量较少的PTP网络。
· P2PTC(Peer-to-Peer Transparent Clock,对等透明时钟):直接转发PTP协议报文中的Sync、Follow_Up和Announce报文,并在转发Sync报文时,携带Sync报文在本设备内的驻留时间以及本设备和上游时钟节点之间的链路传输延时(驻留时间用于对时间偏差进行校正,链路传输延时用于计算时间偏差),终结其他PTP协议报文。相对E2ETC,P2PTC转发的PTP报文类型减少了,更适用于时钟节点数量较多的PTP网络。但P2PTC需要计算链路传输延时,实现较E2ETC复杂。
Comware还支持TC+OC类型的混合时钟节点,它融合了TC和OC各自的特点,包含如下两种PTP接口:
· 一个OC类型的PTP接口,OC类型接口用于时间同步。
· 多个TC类型的PTP接口,TC类型接口用于转发PTP协议报文并对其进行转发延时校正。
对应TC的分类,TC+OC也包括两种类型:E2ETC+OC和P2PTC+OC。
表2 1588v2报文类型
报文分类 |
描述 |
包含的报文 |
事件报文(Event Message) |
进出设备端口时需要打上精确的时间戳,设备利用这些时间戳来计算设备间的链路延时和时间偏差 |
· Sync · Delay_Req · Pdelay_Req · Pdelay_Resp |
通用报文(General Message) |
进出端口时不打时间戳 |
· Announce · Follow_Up · Delay_Resp · Pdelay_Resp_Follow_Up · Management · Signaling |
各1588v2报文的作用如下:
· Sync、Follow_Up、Delay_Req和Delay_Resp用于测量机制为请求应答机制的设备计算时间偏差和链路延时。
· Pdelay_Req、Pdelay_Resp和Pdelay_Resp_Follow_Up报文用于测量机制为端延时机制的设备计算链路延时,并通过Sync和Follow_Up报文中的时间戳信息计算时间偏差。
· Announce报文携带BMC算法的相关信息用来建立主从关系。
· Management报文用来查询和更新时钟维护的PTP数据集,PTP域中的管理设备使用Management报文来管理时钟节点。H3C设备暂不支持此类报文。
· Signaling报文用在时钟设备间实现其他用途的通信,比如用于协商主从时钟间单播报文的速率。H3C设备1588v2协议暂不支持此类报文(H3C设备ITU-T G.8275.2协议支持此类报文)。
Follow_Up和Pdelay_Resp_Follow_Up被称为跟随报文。根据是否发送跟随报文,PTP同步机制分为单步模式和双步模式:
· 单步模式直接使用Sync和Pdelay_Resp携带时间戳信息,不发送跟随报文。单步模式交互的报文数量较双步模式少,占用的网络带宽较少,但需要硬件芯片支持。而且,单步模式下是先打时间戳再发送报文,所以,单步模式发送的时间戳是预估的报文发送时间,不如双步模式准确。
· 双步模式使用跟随报文携带时间戳。其中Follow_Up用于携带Sync的时间戳,Pdelay_Resp_Follow_Up用于携带Pdelay_Req的接收时间戳和Pdelay_Resp的发送时间戳。双步模式发送的时间戳是报文的实际发送时间,所以双步模式比单步模式更准确,能提高PTP时间同步的精度。
同一TC节点上PTP接口使用的单步、双步模式必须相同,建议一个PTP域内所有的时钟节点使用相同的单步、双步模式。单步模式和双步模式的原理相同,设备缺省支持双步模式,本文均以双步模式举例。
1588v2支持IEEE 802.3/Ethernet和UDP两种封装类型。UDP封装又分为IPv4 UDP和IPv6 UDP两种封装类型,H3C设备暂不支持IPv6 UDP封装。
· IEEE 802.3/Ethernet封装:以太网类型(Ethernet Type)值为0x88F7。缺省情况下,对于请求应答机制,PTP报文的组播目的MAC地址为011B-1900-0000;对于端延时机制,PTP报文的组播目的MAC地址为0180-C200-000E。
· IPv4 UDP封装:PTP事件报文的UDP目的端口号为319,通用报文的UDP目的端口号为320。根据主从节点间的拓扑类型可以配置组播封装或者单播封装:
¡ 对于组播组网环境,缺省情况下,请求应答机制中报文目的IP地址为组播地址224.0.1.129,端延时机制中报文目的IP地址为组播地址224.0.0.107;
¡ 对于单播组网环境,报文的目的IP地址为用户配置的单播IP地址。
PTP时间同步的实现包括以下步骤:
(1) 确定最优时钟以及主从关系。
(2) 频率同步,实现从时钟频率与主时钟同步。频率同步是相位同步的前提和基础。
(3) 相位同步,实现从时钟相位与主时钟同步,使得从时钟的时间(从节点的本地时间)和主时钟的时间保持一致。
最优时钟可以通过手工指定,也可以通过BMC算法动态选举。BMC是1588v2协议规定的一种确定网络中各时钟主从层级的算法。通过这种算法,将网络中的时钟划分为主、从时钟,从时钟跟踪主时钟的频率和时间。在网络发生变化,或网络中某个时钟源的属性发生改变时,BMC算法能重新选择最佳主时钟,使全网的频率和相位达到同步。选举的具体过程如下:
(1) 各时钟节点之间通过交互Announce报文,会依据Announce报文中所携带的时钟的第一优先级、时间等级、时间精度和第二优先级的次序依次进行比较,获胜者将成为最优时钟,比较规则如图4所示。
(2) 主节点定期发送Announce报文给从节点,如果在一段时间内,从节点没有收到主节点发来的Announce报文,便认为该主节点失效,于是重新选举最优时钟。
图4 BMC协议最优时钟比较规则
PTP网络中,所有的时钟节点类型(TC除外)通过主从关系联系在一起。主从关系包括各时钟节点之间的主从关系以及各时钟节点上接口的主从关系(Master-Slave),主从关系决定了PTP时间同步的方向。各时钟节点之间的主从关系可通过BMC算法自动产生,也可手工指定。
主从关系是相对而言的,对于相互同步的一对时钟节点来说,存在如下主从关系:
· 主/从节点:发布同步时间的时钟节点称为主节点(Master Node),接收同步时间的时钟节点称为从节点(Slave Node)。
· 主/从时钟:主节点上的时钟称为主时钟(Master Clock),从节点上的时钟称为从时钟(Slave Clock)。
· 主/从/被动接口:时钟节点上发布同步时间的PTP接口称为主接口(Master Port),接收同步时间的PTP接口称为从接口(Slave Port),主接口和从接口均可存在于BC或OC上。既不发布也不接收同步时间的PTP接口称为被动接口(Passive Port),被动接口用于避免PTP报文形成环路。
选出最优时钟并确定主从关系之后,整个PTP域内建立起了一棵无环路、全连通,并以最优时钟为根的最短路径树,如图5所示。PTP域内的节点会进行时间同步。
图5 PTP主从关系示意图
确认了最优时钟以及时钟节点之间的主从关系之后,主时钟和从时钟之间交换Sync报文来实现频率同步。主时钟周期性地向从时钟发送Sync报文,如果不考虑链路延时的变化,且从时钟的频率和主时钟是同步的,那么在相同的时间间隔内,主时钟和从时钟累计的时间偏差应该是相同的,如图6所示,T(n+1)-Tn=T(n+1)'-Tn'。如果时间偏差不相同:
· T(n+1)-Tn>T(n+1)'-Tn',说明从时钟的时间比主时钟慢,频率比主时钟快,则需要调慢从时钟的频率;
· T(n+1)-Tn<T(n+1)'-Tn',说明从时钟的时间比主时钟快,频率比主时钟慢,则需要调快从时钟的频率。
频率比计算公式为:(T(n+1)-Tn)/(T(n+1)'-Tn')。从时钟根据计算出来的频率比调整本机时钟芯片的频率。
图6 PTP双步模式频率同步原理示意图
确认了最优时钟以及时钟节点之间的主从关系之后,主、从时钟之间还会开始相位同步。主、从时钟间周期交互PTP报文,从时钟通过时间戳计算和主时钟的当前时间偏差。从时钟根据时间偏差调整本地时间,使得本地时间和主时钟时间保持一致,也称为时间同步。
从时钟本地准确时间=从时钟本地当前时间-时间偏差。
如图7所示,粗略地计算,时间偏差=Tn-Tn'。但实际上,(Tn-Tn')中包含了报文在链路中的传输延时,为了提高时间同步的精度,时间偏差的测量和计算过程包括以下两个阶段:
(1) 链路延时测量阶段:该阶段用于确定主时钟与从时钟之间报文传输的延时。主、从时钟之间交互同步报文并记录报文的收发时间,通过计算报文往返的时间差来计算主、从时钟之间的往返总链路延时。如果两个方向的链路延时相同(也称为网络对称),则往返总链路延时的一半就是单向链路延时(meanPathDelay)。如果网络延时不对称且通过其它方式获知了报文发送方向和接收方向的链路延迟之差,可以通过配置非对称延迟来校正链路延时,从而更精确地进行时间同步。
(2) 时间偏差测量阶段:该阶段用于测量主时钟与从时钟之间的时间偏差。主时钟按周期向从时钟发送Sync报文,并记录它的发送时间Tn'。从时钟接收到Sync报文时立刻把当前时刻Tn记下,于是得到主从时钟的“时间偏差=(Tn-Tn')-单向链路延时”。
PTP协议定义了两种链路延时测量机制:请求应答(Request_Response)机制和端延时(Peer Delay)机制,且这两种机制都以网络对称为前提。PTP域中所有时钟节点使用的链路延时测量机制必须相同,对于时钟节点类型全为BC和OC的PTP网络,使用请求应答机制和端延时机制基本没有差别。这两种机制的差别主要体现在使用TC的PTP域中。用户先根据组网情况,确定是否使用E2ETC或P2PTC,再根据使用的TC类型使用对应的链路延时测量机制。当使用E2ETC时,需配套使用请求应答机制;当使用P2PTC时,需配套使用端延时机制。
请求应答机制下主时钟和从时钟根据收发的PTP协议报文计算主、从时钟之间的平均路径延时。如果主时钟和从时钟中间有TC,TC不计算平均路径延时,只传递收到的PTP协议报文,并将Sync报文在本TC上的驻留时间传递给从时钟。
图8以双步模式为例来说明请求应答机制的实现过程:
(1) 主时钟向从时钟发送Sync报文,并记录发送时间t1;从时钟收到该报文后,记录接收时间t2。
(2) 主时钟发送Sync报文之后,紧接着发送一个携带有t1的Follow_Up报文。
(3) 从时钟向主时钟发送Delay_Req报文,用于发起对反向传输的延时的计算,并记录发送时间t3;主时钟收到该报文后,记录接收时间t4。
(4) 主时钟收到Delay_Req报文之后,回复一个携带有t4的Delay_Resp报文。
此时,从时钟便拥有了t1~t4这四个时间戳,由此可计算出:
· 主、从时钟间的往返总链路延时=[(t2-t1)+(t4-t3)]
· 主、从时钟间的单向链路延时=[(t2-t1)+(t4-t3)]/2
· 从时钟相对于主时钟的时钟偏差Offset=(t2-t1)-[(t2-t1)+(t4-t3)]/2=[(t2-t1)-(t4-t3)]/2
图8 双步模式请求应答机制原理示意图
端延时机制用于计算两个时钟节点之间的平均路径延时,而且这两个时钟节点会互相发送Pdelay报文,各自计算路径延时。如果主时钟和从时钟中间有TC,TC会将主、从时钟之间的同步路径划分为多段链路,TC会参与计算每段链路的路径延时。每段链路的路径延时累计在同步报文中向下游传递,同时传递的信息还包括Sync报文在TC上的驻留时间。从节点根据累计的链路延时和TC驻留时间,计算主从节点的平均路径延时。
使用端延时机制的两个时钟节点(可以为BC、TC或OC)会互相发送Pdelay报文,并分别计算这两个时钟节点之间链路的单向时延,两个节点上的报文交互流程和计算原理完全相同。图9中只画了双步模式下Clock node B作为端延时测量发起方的情况来示意端延时机制实现过程。双步端延时机制实现过程如下:
(1) Clock node B向Clock node A发送Pdelay_Req报文,用于发起反向传输延时的计算,并记录发送时间t1;Clock node B收到该报文后,记录接收时间t2。
(2) Clock node A收到Pdelay_Req报文之后,回复一个携带有t2的Pdelay_Resp报文,并记录发送时间t3;Clock node B收到该报文后,记录接收时间t4。
(3) Clock node A回复Pdelay_Resp报文之后,紧接着发送一个携带有t3的Pdelay_Resp_Follow_Up报文。
此时,Clock node B便拥有了t1~t4这四个时间戳,由此可计算出:
· Clock node A和Clock node B间链路的往返总延时=(t2-t1)+(t4-t3)
· 由于网络是对称的,Clock node A和Clock node B间链路的单向延时=[(t2-t1)+(t4-t3)]/2=[(t3-t2)+(t4-t1)]/2
· 从时钟相对于主时钟的时钟偏差Offset=从时钟收到Sync报文的时间-主时钟发送Sync报文的时间-每段链路单向时延的累计时间-链路上所有TC驻留时间和。
如图10所示,无线基站通过IP设备接入运营商网络,为保证无线终端在基站之间正常切换,要求所有相邻基站之间时间同步,时钟同步精度为微秒级。为了兼顾成本和可靠性,需要在运营商网络的核心层部署两个互为备份的时钟源。
通过1588v2协议,时钟源的时钟信号将同步给PTP域内所有的网络设备和无线基站:
· 正常情况下使用主用外接时钟源,当主用外接时钟源故障时,可自动切换到备用外接时钟源。
· 1588v2协议的时钟同步精度为亚微秒级,可满足无线接入设备的时间同步精度要求。
图10 1588v2频率同步+1588v2相位同步典型应用组网图
如图11所示的5G接入网络,无线基站通过IP设备接入运营商网络,为保证无线终端在基站之间正常切换,要求所有相邻基站之间时间同步,时钟同步精度为纳秒级。
H3C为用户提供“SyncE频率同步+1588v2相位同步”的综合同步方案。该方案的优势在于:
· 精度更高:通过SyncE(同步以太)实现频率同步,精度比1588v2频率同步精度更高,使得整个方案的时间同步精度可达到纳秒级别。
· 更可靠:
¡ SyncE和1588v2都具有频率同步能力,设备优先使用SyncE进行频率同步,如果SyncE时钟源故障或者链路故障,导致频率同步信号丢失,设备会启用1588v2频率同步。
¡ SyncE和PTP可以共用时钟源,也可以分别使用独立的时钟源。当PTP功能故障导致PTP时间信号丢失时,SyncE仍能工作,各设备仍能保持频率同步,各设备的时间偏差仍能控制在可接受的范围内。
图11 SyncE频率同步+1588v2相位同步典型应用组网图
· AES67-2015:AES Standard for Audio Applications of Networks-High-Performance Streaming Audio-Over-IP Interoperability, 2015.
· IEEE P802.1AS:Timing and Synchronization for Time-Sensitive Applications in Bridged Local Area Networks.
· IEEE Std 1588-2008:IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems, 2008.
· ITU-T G.8275.1:Precision time protocol telecom profile for phase/time synchronization with full timing support from the network.
· ITU-T G.8275.2:Precision time protocol telecom profile for phase/time synchronization with partial timing support from the network.
· SMPTE ST 2059-2:SMPTE Profile for Use of IEEE-1588 Precision Time Protocol in Professional Broadcast Applications.