1. 什么是1588v2
1588v2是网络测量和控制系统的精密时间同步协议标准,也可称为PTPv2(Precision Time Protocol Version 2,精密时间协议V2版本)。1588v2是由IEEE标准组织发布的业界标准,用于实现设备之间的高精度时间同步,也可以用来进行设备之间的频率同步。借助于硬件记录时戳的优势,1588v2相对于NTP(Network Time Protocol,网络时间协议),可以达到亚微秒级的时间同步精度,能够满足无线基站的时间同步需求。相比于传统GPS高精度时间同步方案,1588v2在成本、维护、安全等方面有一定的优势,已成为业界最热门的时间同步协议。
2. 什么是同步?
同步是指两个或两个以上信号之间,在频率或相位上保持某种特定关系,即两个或两个以上信号在相对应的有效瞬间,其相位差或频率差保持在约定的允许范围之内。同步可分为:
- 频率同步:又称为时钟同步,是指信号之间的频率或相位上保持某种严格的特定关系,信号在其相对应的有效瞬间以同一平均速率出现,以维持通信网络中所有的设备以相同的速率运行,即信号之间保持恒定相位差。
- 时间同步:又称为相位同步,是指信号之间的相位都保持一致,即信号之间相位差或者时间差恒定为零,或者在约定的允许范围之内。一般而言,两个设备之间的时间同步首先需要保证两个设备之间达到频率同步。
下图给出了时间同步与频率同步的区别。如果两个表(Watch A与Watch B)每时每刻的时间都保持一致,这个状态叫时间同步;如果两个表的时间不一样,但是保持一个恒定的差,比如6小时,那么这个状态称为频率同步。
时间同步与频率同步示意图
3. 为什么需要1588v2?
在IP RAN(Radio Access Network,无线接入网络)中,所有无线制式的基站都需要实现频率同步,不同基站之间的频率必须同步在一定精度之内,否则手机进行基站切换时会出现掉线。而一些采用TDD(Time Division Duplex,时分双工)机制的无线制式,如TD-SCDMA、CDMA2000、LTE-TDD、5G NR TDD等,在频率同步之外还特别要求精确时间同步,任意两个基站之间时间同步精度小于3us(或每个基站相对于标准时间源之间的时间误差在±1.5us内)。此外,无线移动网络中CoMP、E-MBMS、eICIC、CA等增值业务的出现,也要求基站之间必须实现时间同步。传统的时间同步实现方案包括:
- 卫星时间同步:在每个基站安装卫星天线,可以从空中的GPS或者北斗卫星获取精确时间。但是此方案的卫星天线存在安装选址难、维护困难、成本高和安全隐患高等诸多问题,比如:卫星信号易被干扰和欺骗,存在安全性问题。
- NTP时间同步:在网络侧部署NTP时间服务器,通过NTP报文给每个基站提供时间。该方案最大的缺点是只能满足毫秒级别的时间传递精度,这对于无线基站所需的微秒级时间精度是远远不够的。
针对上述两种方案的种种弊端,运营商迫切希望能够有一种高精度的地面传送时间同步方案。而1588v2协议,通过地面光纤或者电缆传递1588v2报文,避免了安全性问题;同时,借助于硬件打戳的优势,1588v2协议可实现亚微秒级精度的时间同步,满足无线基站±1.5us精度要求,成为业界最热门的时间同步协议。
4. 1588v2的发展历史
为了满足工业领域中精确时间控制的需求,IEEE在2002年发布了1588v1版本。随着1588v1版本在工业控制领域的广泛应用,以及电信网络等领域的高精度时间同步需求, IEEE在2008年发布1588v2版本(因此,也可称之为IEEE 1588-2008标准)。当前最新发布的版本为1588v2.1标准,在2019年发布(因此,也可称之为IEEE 1588-2019标准)。1588协议版本改动点和兼容性如下表所示。
表1-1 1588协议版本改动点和兼容性
版本号 | 发布时间 | 改动点 | 兼容性 |
---|---|---|---|
1588v1(IEEE 1588-2002) | 2002年 | - | - |
1588v2(IEEE 1588-2008) | 2008年 | 相对于1588v1版本,1588v2版本的改动点如下:
| 不兼容1588v1 |
1588v2.1(IEEE 1588-2019) | 2019年 | 相对于1588v2版本,1588v2.1版本的改动点如下:
| 兼容1588v2,但不兼容1588v1 |
虽然1588标准定义了协议的基本功能,但由于各个行业领域时间同步的解决方案和同步精度要求不同,各个应用领域需要基于各自需求再重新定义1588行业标准,满足各领域的同步需求,保证互通对接。
注:相比于1588v1版本,1588v2版本特性有所增强,现在1588v1基本已被1588v2取代,因此下文主要介绍1588v2。1588v2协议目前已应用于诸多领域:
1588v2应用领域
- 电信领域:国际电信联盟 ITU针对4G/5G网络无线基站的同步需求,定义了一系列标准,包括频率同步标准ITU-T G.826x和时间同步标准ITU-T G.827x。其中,ITU-T G.8275.1定义了1588v2时间同步互联互通标准,保证不同厂商可以对接。此外,中国通信标准化协会CCSA针对中国运营商的需求和网络结构,定义了适用于国内运营商的1588v2标准CCSA YD/T-2375。
- 工业领域:自动化工业网络为了保证自动化生产,要求各工业终端有统一的时间,设备之间达成高精度时间同步,目前业界存在两个1588v2工业网络标准,IEEE 802.1AS和IEC 62439-3。
- 电力领域:电力网络的继电保护,故障及时恢复等场景要求各电力设备具有高精度时间同步,保证故障快速恢复。业界当前已定义两个1588v2电力网络标准,IEEE C37.238和IEC 61850-9-3,为电力网络提供了一个以太网通信架构。
- 媒资网:随着高清视频转播对大带宽的要求,媒资网络(如中央电视台的网络)由传统的SDI(Serial Digital Interface,串行数字接口)网络逐步转向IP化,因此也采用了IP网络传递1588v2报文给各媒资终端,保证各媒资终端高清视频转播。目前业界存在两个行业标准,SMPTE ST-2059和AES 67。
- 数据中心:由于分布式数据计算的需求,数据中心也对高精度时间同步提出了要求。目前业界还没有正式的行业标准,数据中心头部公司META制定了1588v2在数据中心的开源标准OCP-PTP。
- 车载:智能化汽车和自动驾驶也对车内部各网络模块提出了高精度时间同步要求。车载联盟AVNU制定了1588v2在车载行业的标准AutoSar-PTP。
5. 1588v2是如何实现同步的?
时间同步网络中的每个节点,都被称为Clock。1588v2协议定义了三种基本的时钟节点类型:
- OC(Ordinary Clock,普通时钟)
节点仅有一个物理端口同网络通信,既可作为首节点(Grandmaster Clock,最高级时钟)向下游节点发布时间,也可作为末节点(Slave Clock,从时钟)从上游节点同步时间。如1588服务器一般配置为OC模式,作为整个网络的Grandmaster Clock;而用户终端(如:无线基站)作为最末端的Slave Clock设备,也配置为OC模式。
- BC(Boundary Clock,边界时钟)
节点有多个物理端口与网络通信,其中一个端口从上游设备同步时间,其余多个端口向下游设备发布时间。
- TC(Transparent Clock,透明时钟)
节点有多个物理端口与网络通信,只在端口之间处理和转发1588v2协议报文,并不从任何一个端口同步时间。TC节点分成两种类型:E2E TC(End-to-End Transparent Clock)、P2P TC(Peer-to-Peer Transparent Clock)。
E2E TC转发1588v2报文时,可测量报文经过该节点的转发时延,并且修正到1588v2报文中,在两端的OC或者BC节点计算链路时延和时间偏差进行同步。与E2E TC相比,P2P TC不仅修正转发时延,还测量并修正该节点每个端口相连链路的链路时延,在两端的OC或者BC节点计算时间偏差进行同步。
三种基本时钟节点的分层拓扑示例,如下图所示。
三种基本时钟节点的分层拓扑示例
1588v2的网络同步过程包括在控制层面建立主从层次和在业务层面进行频率/时间同步。
- 建立主从层次。在一个时钟域中,OC和BC节点根据各个端口Announce报文中携带的时钟源信息,运行BMC(Best Master Clock,最佳主时钟)算法,决策出每个OC和BC节点的参考源和各个端口的状态(主/从端口),建立起整个同步网的主从层次和跟踪路径。
- 频率/时间同步。主从层次和跟踪路径建立之后,主从节点之间通过交互Sync、Delay_Req、Delay_Resp等事件报文,使从节点计算出自身与主节点之间的时间偏差,并调整自身的时间以达到和主节点同步,实现频率/时间同步。
1588v2是如何建立主从层次的?
1588v2网络一般使用BMC算法动态建立主从层次。BMC算法,是1588v2协议规定的一种动态确定网络中各时钟主从层级的算法。BMC算法通过比较多个时钟的时间源信息(由Announce报文携带),来确定哪一个时钟更好,将网络中的时钟划分为主、从时钟,从时钟跟踪主时钟的频率或者时间。在网络发生变化,或网络中某个时钟源的属性发生改变时,BMC算法能重新选择最佳主时钟,使全网的时钟和时间达到同步。
- 从节点层面看:BMC算法通过Announce报文宣告各端口上的时钟源信息,维护本地获得的时钟数据组,按严格时钟等级选择出最佳时间源,并确定端口状态。
- 从网络层面看:BMC算法建立全网时钟的主从同步体系,确定所有节点之间的主从关系,最终建立一颗无环路、全连通、以Grandmaster Clock为根的一棵树,即生成树。其中Grandmaster Clock为全网最佳的时钟源。
1588v2是如何进行时间同步的?
1588v2协议定义了两种具体的时间同步机制:E2E(End-to-End,端到端)机制和P2P(Peer-to-Peer,点到点)机制。在支持1588v2的网络中,主时钟节点可以与从时钟节点直接相连,或者隔几个中间节点相连。对于主时钟节点到从时钟节点之间的总链路延迟,E2E和P2P的测量机制不同:
- E2E实际上是直接测量两个OC或者BC之间的总链路延迟,包括其间的所有中间TC节点。
- P2P仅限于测量两个直连相连的OC,BC或者TC节点之间的逐点链路延迟。
E2E机制
E2E机制主从节点之间通过Sync,Delay_Req和Delay_Resp报文交互,使从节点计算出自身与主节点之间的时间偏差,并调整自身的时间以达到和主节点时间同步。主节点发送Sync报文有one-step和two-step模式,对于one-step方式,Sync报文带有本报文发送时刻的时间戳;对于two-step方式,Sync报文并不带有本报文发送时刻的时间戳,而只是记录本报文发送时的时间,由后续报文Follow_Up带上该Sync报文发送时刻的时间戳。
E2E机制实现时间同步过程如下图所示。
E2E机制实现时间同步
- Master在t1时刻发送Sync报文(如果配置为two-step方式,还会发送Follow_Up报文),并将t1时间戳携带在Sync报文(或Follow_Up报文)中;
- Slave在t2时刻接收到Sync报文,在本地产生t2时间戳,并从报文中提取t1时间戳;
- Slave在t3时刻发送Delay_Req报文,并在本地产生t3时间戳;
- Master在t4时刻接收到Delay_Req报文,并在本地产生t4时间戳,然后将t4时间戳携带在Delay_Resp报文中,回传给Slave;
- Slave接收到Delay_Resp报文,从报文中提取t4时间戳。最后Slave节点得到了一组时间戳(t1,t2,t3,t4)。
假设Master到Slave的发送链路延迟是t-ms,Slave到Master的发送链路延迟是t-sm,Slave和Master之间的时间偏差为Offset,则:
t2 - t1 = t-ms + Offset
t4 - t3 = t-sm - Offset
(t2 - t1) - (t4 - t3) = (t-ms + Offset) - (t-sm - Offset)
因此,Offset = [(t2 - t1) - (t4 - t3) - (t-ms - t-sm)] / 2
如果 t-ms = t-sm,即Master和Slave之间的收发链路延迟对称,那么:
Offset = [(t2 - t1) - (t4 - t3)] / 2
这样Slave就可以根据t1,t2,t3,t4 四个时间戳计算出自己和Master之间的时间偏差Offset,再对本地时间进行偏差调整,就实现了Slave与Master的时间同步。
从上述原理可以看出,1588v2时间同步是建立在Master和Slave之间的收发链路延迟对称的基础上的。如果Master和Slave之间的收发链路延迟存在不对称,将引入同步误差,误差的大小为两个方向链路延迟差值的二分之一。因此,对于一些高精度同步场景,需要对Master和Slave之间的收发链路延迟不对称进行补偿。
P2P机制
P2P机制不区分Master/Slave,所有节点都和相邻节点交互P2P报文,从而每个节点都可以计算得到和相邻节点之间的链路延迟。每个节点发送报文也有one-step和two-step模式,对于one-step方式,Pdelay_Resp报文带有本报文发送时刻的时间戳;对于two-step方式,Pdelay_Resp报文并不带有本报文发送时刻的时间戳,只是记录本报文发送时的时间,本报文发送时刻的时间戳由后续报文Pdelay_Resp_Follow_Up携带。
P2P机制计算相连链路延迟如下图所示。
P2P机制计算相连链路延迟
- 节点2在t1时刻发送Pdelay_Req报文;
- 节点1在t2时刻接收到Pdelay_Req报文,生成该报文的接收时间戳t2;
- 节点1在t3时刻发送Pdelay_Resp报文,生成该报文的发送时间戳t3:
1)对于one-step方式,把t3 – t2携带在Pdelay_Resp报文中;
2)对于two-step方式,把t3 – t2携带在Pdelay_Resp_Follow_Up报文中,或者Pdelay_Resp报文携带t2,Pdelay_Resp_Follow_Up报文携带t3;
4. 节点2在t4时刻接收到Pdelay_Resp报文,在本地产生t4时间戳;最后节点2得到了一组时间戳(t1,t2,t3,t4)。
假设节点2到节点1的发送链路延迟是t-reqresp,节点1到节点2的发送链路延迟是t-respreq,可以得到节点2到节点1的总链路往返延迟为:
(t-reqresp + t-respreq)= (t4 - t1) - (t3 - t2)
如果t-reqresp = t-respreq,即节点2到节点1之间的收发链路延迟对称,那么节点2和节点1之间的链路平均延迟为:
MeanPathDelay = [(t4 - t1) - (t3 - t2)] / 2
上述过程只是不断地实时计算和更新相连链路延迟,并不进行时间同步。时间同步,还需要有Master到Slave的Sync报文(如下图所示),Master节点向Slave节点周期发送Sync报文(Slave节点得到t5/t6两个时间戳)。最终,Slave相对于Master的时间偏差:
Offset = t6 - t5 - MeanPathDelay
这样Slave就可以根据时间偏差Offset,对本地时间进行偏差调整,就实现与Master的时间同步。
P2P机制实现时间同步
1588v2是如何进行频率同步的?
1588v2可以通过在Master和Slave之间交换Sync报文来实现频率同步。Master周期性地给Slave发送Sync报文,不考虑路径延时的变化,如果Slave的频率和Master是同步的,那么在相同的时间间隔内,Master和Slave累计的时间偏差是相同的,即:
t2(1) - t2(0) = t1(1) - t1(0),
t2(2) - t2(1) = t1(2) - t1(1),
t2(3) - t2(2) = t1(3) - t1(2)
…………
t2(n) - t2(n-1) = t1(n) - t1(n-1)
如果t2(n) - t2(n-1)大于t1(n) - t1(n-1),说明Slave的频率比Master快,则需要调慢Slave的频率;反之则需要调快Slave的频率,调整的偏差为:
Foffset = [t1(n) - t1(n-1)] / [t2(n) - t2(n-1)] - 1
1588v2频率同步过程如下图所示。
1588v2实现频率同步
6. 1588v2的应用场景
为了保证同步精度,1588v2的应用主要都是基于逐跳同步的,即链路上的所有设备都需要支持1588v2协议。1588v2的常见应用场景包括:1588v2逐跳频率同步、1588v2逐跳时间同步。
-
1588v2逐跳频率同步
1588v2频率同步(报文层频率同步技术)和同步以太(物理层频率同步技术)可混合组网使用,下图为移动承载网络提供频率同步给无线基站gNodeB的一个场景, gNodeB之间只需要频率同步。其中,gNodeB1支持1588v2,gNodeB2不支持1588v2。
1588v2逐跳频率同步组网图
结合网络链路支持情况,可对频率同步网络进行如下部署:
- 从外时钟源通过同步以太(或者外时钟,也属于物理层频率同步技术,但接口为时钟专有接口,只传频率信号不传业务数据)提供频率信息给相连的设备。
- SDH或同步以太通过物理链路传递频率信息,在不支持SDH同步和同步以太的线路上,通过1588v2传递频率信息。
最终无线基站和外时钟源设备可达到频率同步,从而各个无线基站之间达到频率同步。
-
1588v2逐跳时间同步
下图为移动承载网络提供时间同步给无线基站gNodeB的一个场景, gNodeB之间需要时间同步。其中,gNodeB1和gNodeB3支持1588v2,gNodeB2不支持1588v2。
1588v2逐跳时间同步组网图
结合网络链路支持情况,可对时间同步网络进行如下部署:
- 外时间源向承载网设备注入时间,承载设备作为BC设备,逐跳恢复时间,基站作为OC设备,从承载网设备上取时间。如果外时间源不支持1588v2,那么可通过外时间接口(如:1PPS + ToD接口)提供时间给相连的承载网设备。
- 对于不支持1588v2的gNodeB2,需要通过安装GPS/北斗接收机来获取高精度时间。
最终无线基站和外时间源达到时间同步,各个基站之间也达到了时间同步。
7. 报文格式
1588v2报文可以封装在二层和三层报文中进行传输。根据1588v2报文传输所采用的链路类型不同,1588v2报文可分为MAC封装和UDP封装。
-
MAC封装
1588v2报文在二层链路上传输时,选择此封装模式,对应的以太网类型Ethernet Type为0x88F7。此时可以设置1588v2报文封装时携带的VLAN ID和802.1p优先级。
不带Tag的MAC封装报文
带Tag的MAC封装报文
-
UDP封装
1588v2报文在三层链路上传输时,选择此封装模式,对应的目的UDP端口号为319(非Announce报文)或者320(Announce报文)。此时可以设置1588v2报文封装时携带的VLAN ID、802.1p优先级和DSCP优先级。
不带Tag的UDP封装报文
带Tag的UDP封装报文
-
1588v2 报文报头内容
介绍 PTP 报文报头中一些域:
(1)messageType,【报文类型】( 0.5 个 octet = 4 bits),不同的值代表不同的PTP报文
(2)versionPTP,【PTP版本】,(0.5 个 octet = 4bits ),PTP version1的话此处值为1,PTP version 2 的话此处值为 2
(3)domainNumber,【PTP域序列号】,(1 个 octet = 8 bits ),对于普通时钟和边界时钟,此处值为数据集中 defaultDS domainNumber 这个变量
(4)flagField,【标志域】,( 2 个 octets = 16 bits ),典型的如二步标志域(twoStepFlag)为 1 表示是二步模式,即同步报文之后有跟随报文
(5)correctionField,【修正域】,( 8 个 octets = 64 bits ),传送透明时钟的驻留时间、点对点透明时钟的链路延时以及非对称补偿
(6)sourcePortIdentity,【源端口号】,( 10 个 octets = 80 bits ),发送端口的相关属性
(7)sequenceID,【序列号】,( 2 个 octets = 16 bits ),为了区分多条发送端口相同的同一类型的报文
(8)controlField,【控制域】,( 1 个 octet = 8 bits ),此处的值由报文类型域的值决定,即根据报文类型不同取值不同
(9)logMessageInterval,【对数报文时间间隔】,( 1 个 octet = 8 bits ),包括发送声明报文的对数时间间隔,发送同步报文的对数时间间隔,发送延迟请求响应报文的对数时间间隔,它们的值是以2为底取的对数
-
PTP报文介绍
1) sync 同步报文 & delay_req 延迟请求报文
两种报文具有相同的报文主体,originTimeStamp 时间戳都是由历元,秒数和纳秒数构成的 80bits 时间戳信息
2) follow_up 跟随报文
3)delay_resp 延迟响应报文
缩略语
表1-2 缩略语
缩略语 | 英文全称 | 中文全称 |
---|---|---|
BITS | Building Integrated Timing Supply | 通信楼定时供给系统 |
CA | Carrier Aggregation | 载波聚合 |
CCSA | China Communications Standards Association | 中国通信标准化协会 |
CDMA2000 | Code Division Multiple Access 2000 | 3G移动通讯标准 |
CoMP | Coordinated Multiple Points | 协作多点 |
eICIC | Enhanced Inter-cell Interference Coordination | 增强型小区间干扰协调技术 |
E-MBMS | Enhanced Multimedia Broadcast Multicast Service | 增强多媒体广播多播业务 |
GPS | Global Position System | 全球定位系统 |
LTE-TDD | Long Term Evolution Time Division Duplex | 长期演进时分双工 |
ITU | International Telecommunication Union | 国际电信联盟 |
Network Time Protocol | 网络时间协议 | |
RAN | Radio Access Network | 无线接入网络 |
SDI | Serial Digital Interface | 串行数字接口 |
TDD | Time Division Duplex | 时分双工 |
TD-SCDMA | Time Division-Synchronous Code Division Multiple Access | 时分同步码分多址 |
ToD | Time of Day | 日时间 |
1PPS | One Pulse Per Second | 秒脉冲 |
5G NR TDD | 5G New Radio Time Division Duplex | 第五代移动通信技术时分双工 |
参考资源
1588v2报文 - CloudEngine 12800, 12800E V200R019C10 配置指南-设备管理 - 华为 (huawei.com)什么是1588v2?1588v2是如何实现同步的? - 华为 (huawei.com)