CN106533600B - 一种时钟同步方法及设备 - Google Patents

一种时钟同步方法及设备 Download PDF

Info

Publication number
CN106533600B
CN106533600B CN201610900242.5A CN201610900242A CN106533600B CN 106533600 B CN106533600 B CN 106533600B CN 201610900242 A CN201610900242 A CN 201610900242A CN 106533600 B CN106533600 B CN 106533600B
Authority
CN
China
Prior art keywords
ptp
ports
clock
event message
timestamp information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610900242.5A
Other languages
English (en)
Other versions
CN106533600A (zh
Inventor
史小菊
朱爱丽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Raisecom Technology Co Ltd
Original Assignee
Raisecom Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Raisecom Technology Co Ltd filed Critical Raisecom Technology Co Ltd
Priority to CN201610900242.5A priority Critical patent/CN106533600B/zh
Publication of CN106533600A publication Critical patent/CN106533600A/zh
Application granted granted Critical
Publication of CN106533600B publication Critical patent/CN106533600B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本发明公开了一种时钟同步方法及设备,用以解决现有通信网络中时钟状态单一的问题,为单步时钟和双步时钟的混合时钟同步提供可能性。方法为:设备确定第一PTP端口的时钟步数配置信息以及时钟状态;若确定第一PTP端口的时钟状态为主时钟,根据第一PTP端口的时钟步数配置信息,在事件报文中携带时间戳信息后通过第一PTP端口发送给与第一PTP端口对接的下游设备的第二PTP端口;若确定第一PTP端口的时钟状态为从时钟或只做从时钟,根据第一PTP端口的时钟步数配置信息,通过第一PTP端口从对接的上游设备的第三PTP端口交互事件报文,从交互的事件报文中获取时间戳信息,根据获取的时间戳信息与上游设备进行时钟同步。

Description

一种时钟同步方法及设备
技术领域
本发明涉及通信技术领域,尤其涉及一种时钟同步方法及设备。
背景技术
通信网络中,时钟同步对于语音、视频等业务的传输具有重要的作用。时钟同步是指网络各设备之间的时间或频率差保持在合理的误差水平内。
精确时间协议(Precision Time Protocol,PTP)是一种时钟同步协议,应用PTP协议的网络称为PTP域。目前主要通过链路层硬件传输和报文软件层传输等方式实现网络时钟同步。IEEE 1588V2协议中定义了单步时钟和双步时钟的概念。单步时钟是指使用单个事件报文提供时间戳信息的时钟。双步时钟是指使用事件报文和后续跟随报文的组合提供时间戳信息的时钟。
IEEE 1588V2协议中对单步时钟和双步时钟之间如何对接没有介绍,由于单步时钟与双步时钟携带时间戳的方式不同,现有通信网络中仅采用单步时钟或仅采用双步时钟进行时钟同步,无法实现单步时钟和双步时钟混合进行时钟同步。
发明内容
本发明实施例提供一种时钟同步方法及设备,用以解决现有通信网络中时钟状态单一的问题,为单步时钟和双步时钟的混合时钟同步提供可能性。
本发明实施例提供的具体技术方案如下:
第一方面,本发明实施例提供了一种时钟同步方法,包括:
设备确定所述设备的第一PTP端口的时钟步数配置信息,以及确定所述第一PTP端口的时钟状态;
所述设备若确定所述第一PTP端口的时钟状态为主时钟,则根据所述第一PTP端口的时钟步数配置信息,在事件报文中携带时间戳信息后通过所述第一PTP端口发送给与所述第一PTP端口对接的下游设备的第二PTP端口;
所述设备若确定所述第一PTP端口的时钟状态为从时钟或只做从时钟,则根据所述第一PTP端口的时钟步数配置信息,通过所述第一PTP端口从对接的上游设备的第三PTP端口交互事件报文,从交互的事件报文中获取时间戳信息,根据获取的时间戳信息与所述上游设备进行时钟同步,其中,所述第三PTP端口的时钟状态为主时钟。
第二方面,本发明实施例中提供了一种设备,包括:
第一处理模块,用于确定所述设备的第一PTP端口的时钟步数配置信息,以及确定所述第一PTP端口的时钟状态;
第二处理模块,用于若确定所述第一PTP端口的时钟状态为主时钟,则根据所述第一PTP端口的时钟步数配置信息,在事件报文中携带时间戳信息后通过所述第一PTP端口发送给与所述第一PTP端口对接的下游设备的第二PTP端口;
第三处理模块,用于若确定所述第一PTP端口的时钟状态为从时钟或只做从时钟,则根据所述第一PTP端口的时钟步数配置信息,通过所述第一PTP端口从对接的上游设备的第三PTP端口交互事件报文,从交互的事件报文中获取时间戳信息,根据获取的时间戳信息与所述上游设备进行时钟同步,其中,所述第三PTP端口的时钟状态为主时钟。
基于上述技术方案,本发明实施例中,设备确定PTP端口的时钟步数配置信息以及时钟状态,根据PTP端口的时钟步数配置信息以及时钟状态与上游设备或下游设备进行时钟同步,使得PTP端口不需要与上游设备或下游设备的PTP端口具有相同的时钟步数,为实现单步时钟与双步时钟混合进行时钟同步提供了可能性。
附图说明
图1为本发明实施例中设备进行时钟同步的方法流程示意图;
图2为本发明实施例中时钟同步系统架构示意图;
图3为本发明实施例中本地时钟模块的结构示意图;
图4为本发明实施例中设备连接示意图;
图5为本发明实施例中另一设备连接示意图;
图6为本发明实施例中时钟状态为slave且执行延时请求-响应机制的PTP端口时钟同步流程示意图;
图7为本发明实施例中时钟状态为slave且执行对等延时机制的PTP端口时钟同步流程示意图;
图8为本发明实施例中时钟状态为master且执行延时请求-响应机制的PTP端口时钟同步流程示意图;
图9为本发明实施例中时钟状态为master且执行对等延时机制的PTP端口时钟同步流程示意图;
图10为本发明实施例中设备结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例中,PTP端口的时钟状态可以是主时钟(Master)、从时钟(Slave)、只做从时钟(Slave-only)或未配置中的任意一种。
本发明实施例中,PTP端口可以配置为单步端口或双步端口,其中,单步端口对应的为单步时钟,双步端口对应的为双步时钟。
应用中,若单步端口的时钟状态不属于主时钟、从时钟、只做从时钟中的任意一种,则不进行时钟同步。
本发明实施例中,PTP设备可以为边界时钟,此时该PTP设备具有N个PTP端口,其中,N为大于1的整数。PTP设备也可以为普通时钟,此时该PTP设备仅具有一个PTP端口。
本发明实施例中,上游设备是指相对于当前设备靠近时钟源的设备;下游设备是指相对于当前设备远离时钟源的设备。
本发明实施例中,如图1所示,设备进行时钟同步的详细方法流程如下:
步骤101:设备确定该设备的第一PTP端口的时钟步数配置信息,以及确定第一PTP端口的时钟状态。
具体地,设备按照IEEE1588v2规定的最优主时钟算法选举PTP域的最优主时钟,且按照最优主时钟算法分配该设备的各PTP端口的时钟状态,以及判断参与时钟同步的PTP端口是否配置了时钟步数,并在确定PTP端口已经配置时钟步数的情况下获取该PTP端口的时钟步数配置信息。
步骤102:设备若确定第一PTP端口的时钟状态为主时钟,根据第一PTP端口的时钟步数配置信息,在事件报文中携带时间戳信息后通过第一PTP端口发送给与第一PTP端口对接的下游设备的第二PTP端口。
实施中,设备在确定第一PTP端口的时钟状态为主时钟的情况下,根据第一PTP端口的时钟步数配置信息的不同,有以下三种处理方式:
第一,设备若确定第一PTP端口的时钟状态为主时钟,且确定第一PTP端口被配置为单步端口,在第一事件报文中携带时间戳信息后发送给第二PTP端口,以及接收下游设备通过第二PTP端口返回的第二事件报文,向第二PTP端口发送携带接收第二事件报文的时间戳信息的第三事件报文。
第二,设备若确定第一PTP端口的时钟状态为主时钟,且确定第一PTP端口被配置为双步端口,发送第一事件报文以及携带时间戳信息的第一事件报文的跟随报文给第二PTP端口;
以及接收下游设备通过第二PTP端口返回的第二事件报文;
若为端延时机制,向第二PTP端口发送第三事件报文以及携带接收第二事件报文的时间戳信息的第三事件报文的跟随报文,或者,若为请求应答机制,向第二PTP端口发送携带接收第二事件报文的时间戳信息的第三事件报文。
第三,设备若确定第一PTP端口的时钟状态为主时钟,且确定第一PTP端口未配置时钟步数,则发送两路具有相应的序列标识的第一事件报文给所述第二PTP端口,其中第一路第一事件报文携带时间戳信息且twoStepFlag字段为FALSE,第二路第一事件报文的twoStepFlag字段为TRUE且在跟随报文中携带时间戳信息;
以及接收所述下游设备通过所述第二PTP端口返回的第一事件报文对应的第二事件报文,若为请求应答机制,则向所述第二PTP端口发送携带接收第二事件报文的时间戳信息的第三事件报文,若为端延时机制,则向所述第二PTP端口发送两路具有相应的序列标识的第三事件报文,其中第一路第三事件报文携带接收第二事件报文的时间戳信息且twoStepFlag字段为FALSE,第二路第三事件报文的twoStepFlag字段为TRUE且在跟随报文中携带接收第二事件报文的时间戳信息。
具体地,该第三种处理方式中,若设备的第一PTP端口采用的为延迟请求-响应机制(也即上面所述的请求应答机制),通过第一PTP端口先后发出两路具有相同的序列标识(Sequence ID)的第一事件报文(即Sync事件报文),一路为只发送/回复事件报文,即事件报文Sync中的twoStepFlag字段设置为FALSE,同时事件报文Sync自身携带发送时间戳t1;另一路为发送/回复事件报文及该事件报文后续的跟随报文,即事件报文Sync中的twoStepFlag字段设置为TRUE,同时其后续跟随报文携带事件报文Sync的发送时间戳。
具体地,该第三种处理方式中,若设备的第一PTP端口采用的为对等延时机制(也即上面所述的端延时机制),通过第一PTP端口会先后发出两路具有相同Sequence ID的第一事件报文(即Sync事件报文)和两路具有相同Sequence ID的第三事件报文(即Pdelay_resp事件报文)。具体地,一路为:只发送/回复事件报文,即事件报文Sync和/或Pdelay_resp中的twoStepFlag字段设置为FALSE,同时事件报文Sync和/或Pdelay_resp自身携带发送时间戳;另一路为:发送/回复事件报文及该事件报文后续的跟随报文,即事件报文Sync和/或Pdelay_resp中的twoStepFlag字段设置为TRUE,同时该事件报文后续的跟随报文携带事件报文Sync和/或Pdelay_resp的发送时间戳。
步骤103:设备若确定第一PTP端口的时钟状态为从时钟或只做从时钟,根据第一PTP端口的时钟步数配置信息,通过第一PTP端口从对接的上游设备的第三PTP端口交互事件报文,根据交互的事件报文中获取时间戳信息,根据获取的时间戳信息与上游设备进行时钟同步,其中,第三PTP端口的时钟状态为主时钟。
实施中,设备在确定第一PTP端口的时钟状态为从时钟或只做从时钟的情况下,根据第一PTP端口的时钟步数配置信息的不同,有以下两种处理方式:
第一,设备若确定第一PTP端口的时钟状态为从时钟或只做从时钟,且确定第一PTP端口被配置为单步端口或未配置时钟步数,通过第一PTP端口与第三PTP端口交互的事件报文确定第三PTP端口的时钟步数配置信息,若确定第三PTP端口被配置为单步端口,根据第一PTP端口与第三PTP端口交互的事件报文获取时间戳信息,若确定第三PTP端口被配置为双步端口,根据第一PTP端口与第三PTP端口交互的事件报文以及事件报文的跟随报文获取时间戳信息。
具体地,设备若通过第一PTP端口接收到两路具有相同Sequence ID的事件报文,则仅处理twoStepFlag字段为FALSE的事件报文,忽略另一路具有相同Sequence ID的事件报文及该事件报文的跟随报文。
具体地,若确定第一PTP端口与所述第三PTP端口交互的事件报文的twoStepFlag字段为FALSE,则确定第三PTP端口被配置为单步端口,若确定第一PTP端口与所述第三PTP端口交互的事件报文的twoStepFlag字段为TRUE,则确定第三PTP端口被配置为双步端口。
第一处理方式中,在设备的第一PTP端口的时钟状态为从时钟或只做从时钟,且确定第一PTP端口被配置为单步端口或未配置时钟步数的情况下,通过识别与第三PTP端口交互的事件报文的twoStepFlag字段的取值,判断第三PTP端口的时钟步数,根据第三PTP端口的时钟步数确定获取时间戳信息的方式。
第二,设备若确定第一PTP端口的时钟状态为从时钟或只做从时钟,且确定第一PTP端口被配置为双步端口,根据第一PTP端口与第三PTP端口交互的事件报文以及事件报文的跟随报文获取时间戳信息。
实施中,设备在确定第一PTP端口的时钟状态为从时钟或只做从时钟的情况下,根据第一PTP端口与第三PTP端口交互的事件报文中获取时间戳信息,具体分为以下两种处理过程:
第一,设备若确定第一PTP端口采用的为延时请求-响应机制,从通过第三PTP端口向第一PTP端口发送的第一事件报文中获取第三PTP端口发送第一事件报文的第一时间戳信息t1,以及记录第一PTP端口接收第一事件报文的第二时间戳信息t2,以及记录通过第一PTP端口向第三PTP端口发送第二事件报文的第三时间戳信息t3,以及从上游设备通过第三PTP端口向第一PTP端口发送的第三事件报文中,获取第三PTP端口接收第二事件报文的第四时间戳信息t4。
第二,设备若确定第一PTP端口采用的为对等延时机制,从通过第三PTP端口向第一PTP端口发送的第一事件报文中获取第三PTP端口发送第一事件报文的第一时间戳信息T1,以及记录第一PTP端口接收第一事件报文的第二时间戳信息T2,以及记录通过第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息t1,以及从上游设备通过第三PTP端口向第一PTP端口发送的第三事件报文中,获取第三PTP端口接收第二事件报文的第四时间戳信息t2,以及从第三事件报文中获取第三PTP端口发送第三事件报文的第五时间戳信息t3,以及记录第一PTP端口接收第三事件报文的第六时间戳信息信息t4。
第二处理方式中,在设备的第一PTP端口的时钟状态为从时钟或只做从时钟,且确定第一PTP端口被配置为双步端口的情况下,直接从第一PTP端口与第三PTP端口交互的事件报文以及事件报文的跟随报文中获取时间戳信息。
实施中,设备在确定第一PTP端口的时钟状态为从时钟或只做从时钟的情况下,从第一PTP端口从第三PTP端口接收的事件报文以及事件报文的跟随报文中获取时间戳信息,具体分为以下两种处理过程:
第一,设备若确定第一PTP端口采用的为延时请求-响应机制,从通过第三PTP端口向第一PTP端口发送的第一事件报文的跟随报文中获取第三PTP端口发送第一事件报文的第一时间戳信息t1,以及记录第一PTP端口接收第一事件报文的第二时间戳信息t2,以及记录通过第一PTP端口向第三PTP端口发送第二事件报文的第三时间戳信息t3,以及从上游设备通过第三PTP端口向第一PTP端口发送的第三事件报文中,获取第三PTP端口接收第二事件报文的第四时间戳信息t4。
第二,设备若确定第一PTP端口采用的为对等延时机制,从通过第三PTP端口向第一PTP端口发送的第一事件报文的跟随报文中获取第三PTP端口发送第一事件报文的第一时间戳信息T1,以及记录第一PTP端口接收第一事件报文的第二时间戳信息T2,以及记录通过第一PTP端口向第三PTP端口发送第二事件报文的第三时间戳信息t1,以及从上游设备通过第三PTP端口向第一PTP端口发送的第三事件报文中,获取第三PTP端口接收第二事件报文的第四时间戳信息t2,以及从第三事件报文的跟随报文中获取第三PTP端口发送第三事件报文的第五时间戳信息t3,以及记录第一PTP端口接收第三事件报文的第六时间戳信息信息t4。
实施中,设备根据获得时间戳信息确定链路延时以及频偏校正量,并根据链路延时确定时间差;设备采用频偏校正量对时间差进行校正,确定校正后的时间差,并采用校正后的时间差更新本地时钟。
可选地,设备采用频偏校正量对时间差进行校正之前,确定时间差大于预设阈值。该实施方式中,在时间差小于或等于预设阈值的情况下,不再对事件差进行校正,直接采用该时间差进行时钟同步并更新本地时钟,可以提高同步效率。其中,该预设阈值可以是通过多次试验得到的经验值。
可选地,设备根据获得时间戳信息确定频偏校正量之后,若确定所述频偏校正量等于零,停止更新本地时钟,并在间隔预设时长后重新计算所述频偏校正量;否则,采用所述频偏校正量对所述时间差进行校正。
可选地,设备计算获得上一次确定的平均时间差与所述时间差的平均值,并计算所述平均值与所述频偏校正量的差值,其中,所述平均时间差的初始值为首次确定的时间差。
具体地,根据获得时间戳信息的不同,确定链路延时以及频偏校正量,并根据链路延时确定时间差,有以下两种处理过程:
第一,设备若确定第一PTP端口采用的为延时请求-响应机制,根据第一时间戳信息、第二时间戳信息、第三时间戳信息以及第四时间戳信息确定链路延时,并根据链路延时确定时间差,其中,链路延时表示为:delay=((t2-t1)-(t3-t4))/2,时间差表示为:offset=(t2-t1)-delay,其中,t1表示第一时间戳信息,t2表示第二时间戳信息,t3表示第三时间戳信息,t4表示第四时间戳信息,delay表示链路延时,offset表示时间差。
设备根据最近预设时长(最近预设窗口)内第一次获得的第一时间戳信息、第一次获得的第二时间戳信息、最后一次获得的第一时间戳信息以及最后一次获得的第二时间戳信息确定频偏校正量,其中,频偏校正量表示为:f=(tm2-t12)-(tm1-t11),其中,tm1表示最后一次获得的第一时间戳信息,tm2表示最后一次获得的第二时间戳信息,t11表示第一次获得的第一时间戳信息,t12表示第一次获得的第二时间戳信息。
第二,设备若确定第一PTP端口采用的为对等延时机制,根据第三时间戳信息、第四时间戳信息、第五时间戳信息以及第六时间戳信息确定链路延时,并根据链路延时、第一时间戳信息以及第二时间戳信息确定时间差,其中,链路延时表示为:delay=((t2-t1)-(t3-t4))/2,时间差表示为:offset=(T2-T1)-delay,其中,t1表示第三时间戳信息,t2表示第四时间戳信息,t3表示第五时间戳信息,t4表示第六时间戳信息,T1表示第一时间戳信息,T2表示第二时间戳信息,delay表示链路延时,offset表示时间差。
设备根据预设时长内第一次获得的第三时间戳信息、第一次获得的第四时间戳信息、最后一次获得的第三时间戳信息以及最后一次获得的第四时间戳信息确定频偏校正量,其中,频偏校正量表示为:f=(tm2-t12)-(tm1-t11),其中,tm1表示最后一次获得的第三时间戳信息,tm2表示最后一次获得的第四时间戳信息,t11表示第一次获得的第三时间戳信息,t12表示第一次获得的第四时间戳信息。
本发明实施例中,PTP的公共报文头的结构如表1所示,其中,每个报文类型维护一个单独的Sequence ID池,PTP端口在接收到具有相同Sequence ID的相同类型的多个报文时,只选择其中的一个报文进行处理。flagField字段的twoStepFlag指示报文从双步时钟发送或从单步时钟发送。具体地,事件报文Sync和Pdelay_Resp的flagField字段的twoStepFlag,若取值为FALSE则指示为单步时钟,从事件报文获取时间戳信息;若取值为TRUE,则指示为双步时钟,从事件报文及该事件报文后续的跟随报文获取时间戳信息。
表1公共报文头
以下通过几个具体实施例对PTP端口进行时钟同步的过程进行详细说明。
第一具体实施例,如图2所示为时钟同步系统的架构示意图,该系统主要包括设备和外部网络,其中设备包括至少一个PTP端口201、全局数据集模块202和本地时钟模块203。
其中,全局数据集模块202为至少一个PTP端口共享,包括IEEE1588v2规定的缺省时钟数据集、当前时钟数据集、父时钟数据集等参数。
其中,本地时钟模块203主要用于从与上游设备连接的PTP端口获取上游设备的时钟信息,并根据该上游设备的时钟信息,将该设备与从上游设备选举出的最优主时钟(或称为父时钟)进行时钟同步;和/或,将该设备的时钟信息传递到该设备中与下游设备连接的PTP端口。
具体地,如图3所示,本地时钟模块包括最优主时钟模块301、时间戳模块302、对时模块303以及时钟校准模块304。
其中,最优主时钟模块301用于根据IEEE1588v2规定的最优主时钟算法选举PTP域中最优主时钟,且按照最优主时钟算法分配设备的各PTP端口的时钟状态,以及判断参与时钟同步的PTP端口是否手工配置了时钟步数,即从全局数据集模块202中获取PTP端口的时钟步数的配置信息,该配置信息为已经配置为单步端口或者已经配置为双步端口或者未配置,记录该配置信息并将该配置信息通知给时间戳模块302;
时间戳模块302用于根据最优主时钟模块301分配的参与时钟同步的PTP端口的时钟状态和记录的时钟步数,从全局数据集模块202中获取PTP端口的链路延时机制,针对参与时钟同步的PTP端口发送的事件报文和接收的事件报文进行时间戳标记或获取,具体处理过程分为以下几种:
方式1,当PTP端口的时钟状态为从时钟(Slave)或仅做从时钟(Slave-only),且该PTP端口被配置为单步端口或未配置时钟步数时,时间戳模块302获取该PTP端口从上游设备的PTP端口接收的事件报文Sync和/或Pdelay_Resp,该上游设备的PTP端口的时钟状态为主时钟(Master),提取该报文中的twoStepFlag字段,从而判断该上游设备的PTP端口的主时钟是单步时钟还是双步时钟,根据判断结果设定标记或获取时间戳的方式。
具体地,若twoStepFlag字段取值为False,则只从事件报文中获取时间戳信息;若twoStepFlag字段取值为True,则从事件报文及该事件报文后续的跟随报文中获取时间戳信息。
具体地,若收到的为两路具有相同的序列标识(Sequence ID)的事件报文,则仅处理twoStepFlag字段为FALSE的事件报文,忽略另一路具有相同Sequence ID的事件报文及该事件报文后续的跟随报文。
具体地,若链路延时机制为延时请求-响应机制,针对每路报文,记录Sync报文发送的t1时间戳,Sync报文接收的t2时间戳,Delay_req报文发送的t3时间戳,Delay_req报文接收的t4时间戳。若链路延时机制为对等延时机制,针对每路报文,记录Sync报文发送的T1时间戳,Sync报文接收的T2时间戳,Pdelay_req报文发送的t1时间戳,Pdelay_req报文接收的t2时间戳,Pdelay_resp报文发送的t3时间戳,Pdelay_resp报文接收的t4时间戳。
方式2,当PTP端口的时钟状态为Slave或Slave-only,且该PTP端口被配置为双步端口时,时间戳模块302从事件报文以及该事件报文后续的跟随报文中获取时间戳信息。具体地,若链路延时机制为延时请求-响应机制,针对每路报文,记录Sync报文发送的t1时间戳,Sync报文接收的t2时间戳,Delay_req报文发送的t3时间戳,Delay_req报文接收的t4时间戳。若链路延时机制为对等延时机制,针对每路报文,记录Sync报文发送的T1时间戳,Sync报文接收的T2时间戳,Pdelay_req报文发送的t1时间戳,Pdelay_req报文接收的t2时间戳,Pdelay_resp报文发送的t3时间戳,Pdelay_resp报文接收的t4时间戳。
方式3,当PTP端口的时钟状态为主时钟(Master)且被配置为单步端口时,时间戳模块302仅发送并回复事件报文以进行时间戳标记。具体地,若链路延时机制为延时请求-响应机制,针对每路报文,标记Sync报文发送的t1时间戳以及标记Delay_req报文接收的t4时间戳。若链路延时机制为对等延时机制,标记Sync报文发送的T1时间戳、Pdelay_req报文接收的t2时间戳以及Pdelay_resp报文发送的t3时间戳。
方式4,当PTP端口的时钟状态为Master且未配置时钟步数时,若设备执行的延迟机制为延迟请求-响应机制,时间戳模块302先后发出两路具有相同的Sequence ID的Sync事件报文,一路为只发送/回复事件报文,即事件报文Sync中的twoStepFlag字段设置为FALSE,同时事件报文Sync自身携带发送时间戳,另一路为发送/回复事件报文及该事件报文后续的跟随报文,即事件报文Sync中的twoStepFlag字段设置为TRUE,同时其后续跟随报文携带事件报文Sync的发送时间戳。
进一步地,若链路延时机制为对等延时机制,时间戳模块302先后发出两路具有相同Sequence ID的Sync事件报文和两路具有相同Sequence ID的Pdelay_resp事件报文。具体地,一路为:只发送/回复事件报文,即事件报文Sync和/或Pdelay_resp中的twoStepFlag字段设置为FALSE,同时事件报文Sync和/或Pdelay_resp自身携带发送时间戳;另一路为:发送/回复事件报文及该事件报文后续的跟随报文,即事件报文Sync和/或Pdelay_resp中的twoStepFlag字段设置为TRUE,同时该事件报文后续的跟随报文携带事件报文Sync和/或Pdelay_resp的发送时间戳。具体地,若链路延时机制为延时请求-响应机制,时间戳模块302标记每组Sync报文发送的t1时间戳,和Delay_req报文接收的t4时间戳,若链路延时机制为对等延时机制时,时间戳模块标记每组Sync报文发送的T1时间戳,和Pdelay_req报文接收的t2时间戳以及Pdelay_resp报文发送的t3时间戳。
方式5,当所述PTP端口的时钟状态为主时钟且被配置为双步端口时,时间戳模块302发送并回复事件报文及该事件报文后续的跟随报文,从而进行时间戳标记。具体地,若链路延时机制为延时请求-响应机制时,标记每组Sync报文发送的t1时间戳,和Delay_req报文接收的t4时间戳;若链路延时机制为对等延时机制时,标记每组Sync报文发送的T1时间戳,和Pdelay_req报文接收的t2时间戳以及Pdelay_resp报文发送的t3时间戳。
对时模块303用于根据时间戳模块302标记的时间戳,计算并实时记录链路延时时间delay、时间差offset以及频偏校正量f。
时钟校准模块304用于计算对时模块303记录的时间差offset与时钟校准模块304中上一次计算得到的平均时间差F的平均值,并且根据该平均值以及频偏校正量f进行时间差校正,以该校正后的时间差CorF进行时钟同步更新本地时钟。其中,平均时间差的初始值为首次计算得到的时间差offset。
参与时钟同步的PTP端口,可以通过命令行手工配置为单步端口或双步端口。
情况1,若PTP端口通过命令行手工配置为单步端口,则可以用于接收外部单步时钟的事件报文进而获取时钟信息并进行时钟同步,或者用于接收外部双步时钟的事件报文及其后续跟随报文进而获取时钟信息并进行时钟同步。具体地,若该PTP端口收到时钟状态为主时钟的PTP端口先后发出的具有相同Sequence ID的事件报文时,则只处理twoStepFlag字段设置为FALSE的事件报文,从该事件报文中获取时间戳信息,并且忽略另一路具有相同Sequence ID的事件报文及该事件报文后续的跟随报文。和/或,从本地时钟模块203获取时钟信息向下一级单步时钟系统传递时钟信息,即向每一个外部单步时钟发送并回复单步事件报文使其进行时钟同步。
情况2,若PTP端口通过命令行手工配置为双步端口,则按照IEEE1588v2的规定可以用于接收外部双步时钟的双步事件报文及其后续跟随报文获取时钟信息并进行时钟同步。和/或,从本地时钟模块203获取时钟信息,向下一级双步时钟系统传递时钟信息,即向每一个外部双步时钟发送并回复双步事件报文及其后续跟随报文使其进行时钟同步。
情况3,若PTP端口未配置时钟步数,通过最优主时钟模块301和时间戳模块302自动设置标记/获取时间戳信息的方式。若最优主时钟模块301选举的PTP端口的端口时钟状态为从时钟(Slave)或只做从时钟(Slave-only),且没有配置时钟步数时,则时间戳模块302从接收的事件报文Sync和/或Pdelay_Resp中提取报文中的twoStepFlag字段,若twoStepFlag字段为FALSE,则只从事件报文获取时间戳信息;若twoStepFlag字段为TRUE,则从事件报文及其后续跟随报文获取时间戳信息。进一步地,若该PTP端口的时钟状态为从时钟(Slave)或只做从时钟(Slave-only),收到时钟状态为主时钟(Master)的PTP端口发出的两路具有相同Sequence ID的事件报文,则只处理twoStepFlag字段设置为FALSE的事件报文,从该事件报文中获取时间戳信息。
若最优主时钟模块301选举的PTP端口的时钟状态为主时钟(Master),则时间戳模块302同时发出两路具有相同sequenceId的事件报文,一路事件报文Sync和/或Pdelay_Resp中的twoStepFlag字段设置为FALSE,同时该事件报文自身携带发送时间戳;另一路事件报文Sync和/或Pdelay_Resp中的twoStepFlag字段设置为TRUE,且该事件报文后续的跟随报文携带该事件报文Sync和/或Pdelay_Resp的发送时间戳。
进一步地,与该PTP端口对接的作为从(Slave)时钟的PTP设备,只处理twoStepFlag字段设置为FALSE的事件报文,忽略另一路具有相同sequenceId的事件报文及该事件报文后续的跟随报文。或者,与该PTP端口对接的作为从时钟的PTP设备,按照IEEE1588v2中的规定只处理需要的报文而忽略另一路具有相同sequenceId的事件报文,即若对接的为单步时钟,则只处理twoStepFlag字段设置为FALSE的事件报文,若对接的为双步时钟,则只处理twoStepFlag字段设置为TRUE的事件报文及该事件报文后续的跟随报文。
该具体实施例中,时间戳模块302记录每组时间戳,主、从时钟之间每完成一组同步报文的交互过程所获得的时间戳称为一组时间戳。若链路延时机制为延时请求-响应机制时,时间戳模块302记录Sync报文发送的t1时间戳,Sync报文接收的t2时间戳,Delay_req报文发送的t3时间戳,Delay_req报文接收的t4时间戳,如第一组时间戳为t11、t12、t13、t14,第二组时间戳为t21、t22、t23、t24,……,以此类推,第n组时间戳为tn1、tn2、tn3、tn4,其中n为大于等于1的整数。若链路延时机制为对等延时机制时,时间戳模块302记录每组Sync报文发送的T1时间戳,Sync报文接收的T2时间戳,Pdelay_req报文发送的t1时间戳,Pdelay_req报文接收的t2时间戳,Pdelay_resp报文发送的t3时间戳,Pdelay_resp报文接收的t4时间戳,如第一组时间戳为T11、T12、t11、t12、t13、t14,第二组时间戳为T21、T22、t21、t22、t23、t24,…,以此类推,第n组时间戳为Tn1、Tn2、tn1、tn2、tn3、tn4,其中n为大于或等于1的整数。
该具体实施例中,对时模块303根据时间戳模块302记录的每组时间戳按照1588v2规定的链路延时方法计算并记录每组链路延时delay和时间差offset以及频偏校正量f,其计算公式如下:
A、当链路延时机制为延时请求-响应机制时,链路延时delay=((t2-t1)-(t3-t4))/2,时间差offset=(t2-t1)-delay,即:
第一组链路延时delay1=((t12-t11)-(t13-t14))/2,时间差offset1=(t12-t11)-delay1;
第二组链路延时delay2=((t22-t21)-(t23-t24))/2,时间差offset2=(t22-t21)-delay2;以此类推,
第n组链路延时delayn=((tn2-tn1)-(tn3-tn4))/2,时间差offsetn=(tn2-tn1)-delayn。
B、当链路延时机制为对等延时机制时,链路延时delay=((t2-t1)-(t3-t4))/2,时间差offset=(T2-T1)-delay,即:
第一组链路延时delay1=((t12-t11)-(t13-t14))/2,时间差offset1=(T12-T11)-delay1;
第二组链路延时delay2=((t22-t21)-(t23-t24))/2,时间差offset2=(T22-T21)-delay2;以此类推,
第n组链路延时delayn=((tn2-tn1)-(tn3-tn4))/2,时间差offsetn=(Tn2-Tn1)-delayn。
频偏校正量f为预定时间T内主时钟实际所运行的时间与从时钟实际所运行的时间之差,即f=(tm2-t12)-(tm1-t11),其中m为大于1的整数,t11、t12为预定时间T内的第一组sync报文的发送和接收的时间戳,tm1、tm2为预定时间T内的最后一组sync报文的发送和接收的时间戳,预定时间T为人为设定的时间,其可以为1秒(s)、2s、3s、4s、5s等不同的整数时间,可以连续的取值,也可以非连续取值。
当f=0时,则表示从时钟与主时钟频率同步;
当f>0时,则表示从时钟比主时钟频率快;
当f<0时,则表示从时钟比主时钟频率慢。
优选地,当f=0后,可以不再计算频偏校正量,已经表示从时钟与主时钟频率同步。
更为优选地,当f=0后,可以间隔连续多个预定时间T后再次计算f是否为0,以监测从时钟与主时钟是否频率同步。
该具体实施例中,时钟校准模块304进行时间差校正,以该校正后的时间差CorF进行时钟同步更新本地时钟,具体计算方法如下:
第一组时间差F1=offset1,校正后的第一组时间差CorF1=F1-f1;
第二组时间差F2=(F1+offset2)/2,校正后的第二组时间差CorF2=F2-f2;
第三组时间差F3=(F2+offset3)/2,校正后的第三组时间差CorFn=F3-f3;
以此类推,第n组时间差Fn=(F(n-1)+offsetn)/2,校正后的第n组时间差CorFn=Fn-fn。
其中,f为在取offset时对时模块给出的最近的频偏校正量,f1为在取offset1时该对时模块给出的最近的频偏校正量,f2为在取offset2时该对时模块给出的最近的频偏校正量,以此类推,fn为在取offsetn时该对时模块给出的最近的频偏校正量。
优选地,可以设定理想的时间差阈值Num,当offsetn=Num时,可以不再对时间差offsetn进行校正,直接以该offsetn进行时钟同步更新本地时钟。应用中,理想的时间差阈值Num可以通过多次试验得到。
第二具体实施例中,如图4所示,若设备402对接的上游设备401的PTP端口被配置为双步端口,且执行对等延时机制,且该设备402的PTP端口被配置为单步端口,也执行对等延时机制,则时钟同步的流程是:
(a)上游设备401经过最优主时钟算法,选举出上游设备401的PTP端口为时钟状态为Master,且设备402经过最优主时钟算法,选举出设备402的PTP端口的时钟状态为Slave态。
(b)上游设备401先后向设备402发送事件报文Sync报文和跟随报文Follow_Up报文,设备402在接收到Sync报文时,会提取Sync报文中的twoStepFlag字段,若该字段的取值为TRUE,则从Sync报文后续的跟随报文Follow_Up报文中获取Sync报文的发送时间戳信息T1,同时记录接收Sync报文的时间戳信息T2。
设备402向上游设备401发出Pdelay_req报文,并记录Pdelay_req报文的发送时间戳t1。
上游设备401在接收到Pdelay_req报文时,记录接收时间戳信息t2,并先后回复Pdelay_resp报文和Pdelay_resp_Follow_Up报文,其中,Pdelay_resp报文的发送时间戳信息t3和Pdelay_req报文的接收时间戳信息t2记录在Pdelay_resp_Follow_Up报文中。
设备402在接收Pdelay_resp报文并提取Pdelay_resp报文中的twoStepFlag字段,若该字段取值为TRUE,则从Pdelay_resp报文后续的跟随报文Pdelay_resp_Follow_Up报文中获取时间t2和t3,并记录接收Pdelay_resp报文的时间t4,以此类推,获取每组报文的时间戳信息。
(c)设备402记录每组Sync报文发送的时间戳T1,Sync报文接收的时间戳T2,Pdelay_req报文发送的时间戳t1,Pdelay_req报文接收的时间戳t2,Pdelay_resp报文发送的时间戳t3,Pdelay_resp报文接收的时间戳t4。例如,第一组时间戳为T11、T12、t11、t12、t13、t14,第二组时间戳为T21、T22、t21、t22、t23、t24,以此类推,第n组时间戳为Tn1、Tn2、tn1、tn2、tn3、tn4,其中n为大于或等于1的整数。
(d)设备402计算链路延时、时间差以及频偏校正量,即:第一组链路延时delay1=((t12-t11)-(t13-t14))/2,时间差offset1=(T12-T11)-delay1,第二组链路延时delay2=((t22-t21)-(t23-t24))/2,时间差offset2=(T22-T21)-delay2,……,以此类推,第n组链路延时delayn=((tn2-tn1)-(tn3-tn4))/2,时间差offsetn=(Tn2-Tn1)-delayn;频偏校正量f=(tm2-t12)-(tm1-t11)。
(e)设备402计算时间差offset与上一次计算得到的时间差平均值F的平均值,并且采用该平均值以及频偏校正量f进行时间差校正,以该校正后的时间差CorF进行时钟同步更新本地时钟。
即:计算第一组时间差F1=offset1,校正后的第一组时间差CorF1=F1-f1,此时设备以CorF1进行对时并更新本地时钟;计算第二组时间差F2=(F1+offset2)/2,校正后的第二组时间差CorF2=F2-f2,此时设备402以CorF2进行对时并更新本地时钟;计算第三组时间差F3=(F2+offset3)/2,校正后的第二组时间差CorFn=F3-f3,此时设备402以CorF3进行对时更新本地时钟;以此类推,计算第n组时间差Fn=(F(n-1)+offsetn)/2,校正后的第n组时间差CorFn=Fn-fn,此时设备402以CorFn进行对时并更新本地时钟。
其中,f为在取offset时所计算出的最近的值,f1为在取offset1时计算出的最近的值,f2为在取offset2时计算出的最近的值,以此类推,fn为在取offsetn时计算出的最近的值。
第三具体实施例,如图5所示,设备502对接的上游设备501的PTP端口被配置为双步端口,执行延时请求-响应机制。下游设备503为本文背景技术部分所提及的仅采用双步时钟或仅采用单步时钟进行同步的PTP设备,设备502对接的下游设备503的PTP端口被配置为单步端口,执行延时请求-响应机制。设备502执行延时请求-响应机制,且没有进行时钟步数的配置。时钟同步的过程如下:
(a)首先,上游设备501根据最优主时钟算法选举出上游设备501的PTP端口的端口时钟状态为Master;设备502根据最优主时钟算法选举出设备502的PTP端口1的时钟状态为Slave,PTP端口2的时钟状态为Master;下游设备503根据最优主时钟算法选举出下游设备503的PTP端口的时钟状态为Slave。
(b)上游设备501向设备502先后发出事件报文Sync报文和跟随报文Follow_Up报文。
设备502的PTP端口1接收Sync报文并提取Sync报文中的twoStepFlag字段,若该字段的取值为TRUE,则从Sync报文后续的跟随报文Follow_Up中获取Sync报文的发送时间戳信息t1,同时记录接收Sync报文的时间戳信息t2。
设备502向上游设备501发出Delay_req报文,并记录Delay_req报文的发送时间戳t3。
上游设备501接收Delay_req报文并记录Delay_req报文的接收时间戳信息t4,回复Delay_resp报文,并将接收Delay_req的时间戳信息t4返回给设备502的PTP端口1。
设备502通过PTP端口1收到Delay_resp报文并获取时间戳信息t4,此时PTP端口1已获得四个时间戳信息,分别为t1、t2、t3、t4,然后计算链路延时delay=((t2-t1)-(t3-t4))/2、时间差offset=(t2-t1)-delay以及频偏校正量f,根据时间差以及频偏校正量进行时钟同步并更新本地时钟,以此类推,反复执行该更新本地时钟的过程,从而实现本地时钟的实时同步及更新。
设备502的PTP端口2的时钟状态为Master,设备502获取本地时钟信息,通过PTP端口2将本地时钟信息通过事件报文告知给下游设备503,若PTP端口2没有配置时钟步数,会同时发出两路相同的Sequence ID的Sync报文,其中一路Sync报文携带该Sync报文的发送时间戳信息t1,且该Sync报文的twoStepFlag字段设置为FALSE,而另一路Sync报文的twoStepFlag字段设置为TRUE,同时发出Follow_Up报文,Follow_Up报文携带Sync报文的发送时间戳t1。
若下游设备503的PTP端口被设置为单步端口,则只从twoStepFlag字段设置为FALSE的Sync报文中获取时间戳t1,并记录接收Sync报文的时间戳信息t2,而忽略具有相同Sequence ID的另一路Sync报文和Follow_Up报文。
下游设备503向设备502发出Delay_req报文,并记录Delay_req报文的发送时间戳t3。
设备502通过PTP端口2接收Delay_req报文,并记录Delay_req报文接收的时间戳信息t4,同时回复Delay_resp报文,并将接收Delay_req报文的时间戳信息t4返回给下游设备503。
下游设备503收到Delay_resp报文,并从Delay_resp报文中获取时间戳信息t4。这样下游设备503获得四个时间戳信息t1、t2、t3、t4,计算链路延时delay=((t2-t1)-(t3-t4))/2和时间差offset=(t2-t1)-delay,以offset实时进行时钟同步更新本地时钟,从而本地时钟的实时时钟同步及更新。
下游设备503可以以校正后的时间差CorF进行时钟同步更新本地时钟,从而进一步更精确的进行时钟同步。
进一步地,若下游设备503为本发明实施例所提供的PTP设备,且下游设备503与该设备502对接的PTP端口被配置为单步端口或没有配置时钟步数,则只处理设备502的PTP端口2发出的twoStepFlag字段为FALSE的Sync报文,而忽略具有相同Sequence ID且twoStepFlag字段为TRUE的Sync报文及该报文后续的跟随报文。
第四具体实施例,如图6所示,时钟状态为slave且执行延时请求-响应机制的PTP端口进行时钟同步的方法流程如下:
步骤601:判断PTP端口的时钟状态,若时钟状态不是master、slave、slave-only中的任何一种,则不进行时钟同步,若时钟状态为master,则执行主时钟对应的处理方式,若时钟状态为slave,则执行步骤602;
步骤602:判断PTP端口是否配置有时钟步数,若有,执行步骤603,否则执行步骤604;
步骤603:判断PTP端口配置的时钟步数是单步还是双步,若是单步,执行步骤604;若为双步,执行步骤605;
步骤604:获取Sync事件报文twoStepFlag字段,判断该字段的取值是FALSE还是TRUE,若为TRUE执行步骤605,若为FALSE,从Sync事件报文中获取发送Sync事件报文的时间戳t1后,执行步骤606;
步骤605:从Sync事件报文的跟随报文(Follow_Up报文)中获取发送Sync事件报文的时间戳t1;
步骤606:记录发送Sync事件报文的时间戳t1,接收Sync事件报文的时间戳t2,发送Delay_req事件报文的时间戳t3,接收Delay_req事件报文的时间戳t4;
步骤607:根据t1、t2、t3和t4,计算链路延时、时间差和频偏校正量;
步骤608:采用频偏校正量对时间差进行校正,确定校正后的时间差;
步骤609:采用校正后的时间差更新本地时钟。
第五具体实施例,如图7所示,时钟状态为slave且执行对等延时机制的PTP端口进行时钟同步的方法流程如下:
步骤701:判断PTP端口的时钟状态,若时钟状态不是master、slave、slave-only中的任何一种,则不进行时钟同步,若时钟状态为master,则执行主时钟对应的处理方式,若时钟状态为slave,则执行步骤702;
步骤702:判断PTP端口是否配置有时钟步数,若有,执行步骤703,否则执行步骤704;
步骤703:判断PTP端口配置的时钟步数是单步还是双步,若是单步,执行步骤704;若为双步,执行步骤705;
步骤704:获取Sync事件报文twoStepFlag字段,判断该字段的取值是FALSE还是TRUE,若为TRUE执行步骤705,若为FALSE,从Sync事件报文中获取发送Sync事件报文的时间戳T1后,执行步骤706;
步骤705:从Sync事件报文的跟随报文(Follow_Up报文)中获取发送Sync事件报文的时间戳T1;
步骤706:记录发送Sync事件报文的时间戳T1,接收Sync事件报文的时间戳T2,发送Pdelay_req事件报文的时间戳t1;
步骤707:获取Pdelay_resp事件报文twoStepFlag字段,判断该字段的取值是FALSE还是TRUE,若为TRUE执行步骤708,若为FALSE,从Pdelay_resp事件报文中获取接收Pdelay_req事件报文的时间戳t2以及发送Pdelay_resp事件报文的时间戳t3后,执行步骤709;
步骤708:从Pdelay_resp事件报文以及跟随报文(Pdelay_resp_Follow_Up)中获取接收Pdelay_req事件报文的时间戳t2以及发送Pdelay_resp事件报文的时间戳t3;
步骤709:记录t2、t3和接收Pdelay_resp事件报文的时间戳t4;
步骤:710:计算链路延时、时间差和频偏校正量;
步骤711:计算校正后的时间差;
步骤712:根据校正后的时间差进行本地时钟同步。
第六具体实施例中,如图8所示,时钟状态为master且执行延时请求-响应机制的PTP端口进行时钟同步的方法流程如下:
步骤801:判断是否配置时钟步数,若有执行步骤802,否则,执行步骤803和步骤804;
步骤802:判断时钟步数是单步还是双步,若为单步,执行步骤803后执行步骤805,若为双步,执行步骤804;
步骤803:发送Sync事件报文,并将Sync事件报文的twoStepFlag字段设置为FALSE,该Sync事件报文中携带发送该Sync事件报文的时间戳t1;
步骤804:发送Sync事件报文和Follow_Up报文,将Sync事件报文的twoStepFlag字段设置为TRUE,在Follow_Up报文中携带发送该Sync事件报文的时间戳t1;
步骤805:记录接收Delay_req事件报文的时间戳t4;
步骤806:发送Delay_req事件报文,该Delay_req事件报文中携带时间戳t4。
第七具体实施例,如图9所示,时钟状态为master且执行对等延时机制的PTP端口进行时钟同步的方法流程如下:
步骤901:判断是否配置时钟步数,若有执行步骤902,否则,同时执行步骤903至步骤905的流程以及步骤906至步骤908的流程;
步骤902:判断时钟步数是单步还是双步,若为单步,执行步骤903至步骤905的流程,若为双步,执行步骤906至步骤908的流程;
其中,步骤903至步骤905的流程如下:
步骤903:只发送Sync事件报文,并将Sync事件报文的twoStepFlag字段设置为FALSE,该Sync事件报文中携带发送该Sync事件报文的时间戳t1;
步骤904:记录接收Pdelay_req事件报文的时间戳t2;
步骤905:只发送Pdelay_resp事件报文,并将Pdelay_resp事件报文的twoStepFlag字段设置为FALSE,该Pdelay_resp事件报文中携带t2和发送Pdelay_resp事件报文的时间戳t3;
其中,步骤906至步骤908的流程如下:
步骤906:发送Sync事件报文和Follow_Up报文,并将Sync事件报文的twoStepFlag字段设置为TRUE,在Follow_Up报文中携带发送该Sync事件报文的时间戳t1;
步骤907:记录接收Pdelay_req事件报文的时间戳t2;
步骤908:发送Pdelay_resp事件报文和Pdelay_resp_Follow_Up报文,并将Pdelay_resp事件报文的twoStepFlag字段设置为TRUE,在Pdelay_resp_Follow_Up报文中携带t2和发送Pdelay_resp事件报文的时间戳t3。
基于同一发明构思,本发明实施例中提供了一种设备,该设备的实施可参见上述方法实施例部分的描述,重复之处不再赘述,如图10所示,该设备主要包括:
第一处理模块1001,用于确定所述设备的第一PTP端口的时钟步数配置信息,以及确定所述第一PTP端口的时钟状态;
第二处理模块1002,用于若确定所述第一PTP端口的时钟状态为主时钟,根据所述第一PTP端口的时钟步数配置信息,在事件报文中携带时间戳信息后通过所述第一PTP端口发送给与所述第一PTP端口对接的下游设备的第二PTP端口;
第三处理模块1003,用于若确定所述第一PTP端口的时钟状态为从时钟或只做从时钟,根据所述第一PTP端口的时钟步数配置信息,通过所述第一PTP端口从对接的上游设备的第三PTP端口交互事件报文,从交互的事件报文中获取时间戳信息,根据获取的时间戳信息与所述上游设备进行时钟同步,其中,所述第三PTP端口的时钟状态为主时钟。
实施中,所述第二处理模块具体用于:
若确定所述第一PTP端口的时钟状态为主时钟,且确定所述第一PTP端口被配置为单步端口,在第一事件报文中携带时间戳信息后发送给所述第二PTP端口;
若确定所述第一PTP端口的时钟状态为主时钟,且确定所述第一PTP端口被配置为双步端口,发送第一事件报文以及携带时间戳信息的第一事件报文的跟随报文给所述第二PTP端口;
若确定所述第一PTP端口的时钟状态为主时钟,且确定所述第一PTP端口未配置时钟步数,则发送两路具有相应的序列标识的第一事件报文给所述第二PTP端口,其中第一路第一事件报文携带时间戳信息且twoStepFlag字段为FALSE,第二路第一事件报文的twoStepFlag字段为TRUE且在跟随报文中携带时间戳信息。
实施中,所述第三处理模块具体用于:
若确定所述第一PTP端口的时钟状态为从时钟或只做从时钟,且确定所述第一PTP端口被配置为单步端口或未配置时钟步数,通过所述第一PTP端口与所述第三PTP端口交互事件报文,根据所述事件报文确定所述第三PTP端口的时钟步数配置信息,若确定所述第三PTP端口被配置为单步端口,根据所述第一PTP端口与所述第三PTP端口交互的事件报文获取时间戳信息,若确定所述第三PTP端口被配置为双步端口,根据所述第一PTP端口与所述第三PTP端口交互的事件报文以及事件报文的跟随报文获取时间戳信息;
若确定所述第一PTP端口的时钟状态为从时钟或只做从时钟,且确定所述第一PTP端口被配置为双步端口,根据所述第一PTP端口与所述第三PTP端口交互的事件报文以及事件报文的跟随报文获取时间戳信息。
实施中,所述第三处理模块具体用于:
若确定所述第一PTP端口与所述第三PTP端口交互的事件报文的twoStepFlag字段为FALSE,则确定所述第三PTP端口被配置为单步端口,若确定所述第一PTP端口与所述第三PTP端口交互的事件报文的twoStepFlag字段为TRUE,则确定所述第三PTP端口被配置为双步端口。
实施中,所述第三处理模块具体用于:
若确定所述第一PTP端口采用的为延时请求-响应机制,从通过所述第三PTP端口向所述第一PTP端口发送的第一事件报文中获取所述第三PTP端口发送所述第一事件报文的第一时间戳信息,以及记录所述第一PTP端口接收所述第一事件报文的第二时间戳信息,以及记录通过所述第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息,以及从所述上游设备通过所述第三PTP端口向所述第一PTP端口发送的第三事件报文中,获取所述第三PTP端口接收所述第二事件报文的第四时间戳信息;
若确定所述第一PTP端口采用的为对等延时机制,从通过所述第三PTP端口向所述第一PTP端口发送的第一事件报文中获取所述第三PTP端口发送所述第一事件报文的第一时间戳信息,以及记录所述第一PTP端口接收所述第一事件报文的第二时间戳信息,以及记录通过所述第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息,以及从所述上游设备通过所述第三PTP端口向所述第一PTP端口发送的第三事件报文中,获取所述第三PTP端口接收所述第二事件报文的第四时间戳信息,以及从所述第三事件报文中获取所述第三PTP端口发送所述第三事件报文的第五时间戳信息,以及记录所述第一PTP端口接收所述第三事件报文的第六时间戳信息信息。
实施中,所述第三处理模块具体用于:
若确定所述第一PTP端口采用的为延时请求-响应机制,从通过所述第三PTP端口向所述第一PTP端口发送的第一事件报文的跟随报文中获取所述第三PTP端口发送所述第一事件报文的第一时间戳信息,以及记录所述第一PTP端口接收所述第一事件报文的第二时间戳信息,以及记录通过所述第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息,以及从所述上游设备通过所述第三PTP端口向所述第一PTP端口发送的第三事件报文中,获取所述第三PTP端口接收所述第二事件报文的第四时间戳信息;
若确定所述第一PTP端口采用的为对等延时机制,从通过所述第三PTP端口向所述第一PTP端口发送的第一事件报文的跟随报文中获取所述第三PTP端口发送所述第一事件报文的第一时间戳信息,以及记录所述第一PTP端口接收所述第一事件报文的第二时间戳信息,以及记录通过所述第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息,以及从所述上游设备通过所述第三PTP端口向所述第一PTP端口发送的第三事件报文中,获取所述第三PTP端口接收所述第二事件报文的第四时间戳信息,以及从所述第三事件报文的跟随报文中获取所述第三PTP端口发送所述第三事件报文的第五时间戳信息,以及记录所述第一PTP端口接收所述第三事件报文的第六时间戳信息信息。
实施中,所述第三处理模块具体用于:
根据获得时间戳信息确定链路延时以及频偏校正量,并根据所述链路延时确定时间差;
采用所述频偏校正量对所述时间差进行校正,确定校正后的时间差,并采用所述校正后的时间差更新本地时钟。
实施中,所述第三处理模块具体用于:
计算获得上一次确定的平均时间差与所述时间差的平均值,并计算所述平均值与所述频偏校正量的差值,其中,所述平均时间差的初始值为首次确定的时间差。
实施中,所述第三处理模块具体用于:
若确定所述第一PTP端口采用的为延时请求-响应机制,根据所述第一时间戳信息、所述第二时间戳信息、所述第三时间戳信息以及所述第四时间戳信息确定链路延时,并根据所述链路延时确定时间差,其中,所述链路延时表示为:delay=((t2-t1)-(t3-t4))/2,所述时间差表示为:offset=(t2-t1)-delay,其中,t1表示所述第一时间戳信息,t2表示所述第二时间戳信息,t3表示所述第三时间戳信息,t4表示所述第四时间戳信息,delay表示所述链路延时,offset表示所述时间差;
根据预设时长内第一次获得的第一时间戳信息、第一次获得的第二时间戳信息、最后一次获得的第一时间戳信息以及最后一次获得的第二时间戳信息确定频偏校正量,其中,所述频偏校正量表示为:f=(tm2-t12)-(tm1-t11),其中,tm1表示所述最后一次获得的第一时间戳信息,tm2表示所述最后一次获得的第二时间戳信息,t11表示所述第一次获得的第一时间戳信息,t12表示所述第一次获得的第二时间戳信息。
实施中,所述第三处理模块具体用于:
若确定所述第一PTP端口采用的为对等延时机制,根据所述第三时间戳信息、所述第四时间戳信息、所述第五时间戳信息以及所述第六时间戳信息确定链路延时,并根据所述链路延时、所述第一时间戳信息以及所述第二时间戳信息确定时间差,其中,所述链路延时表示为:delay=((t2-t1)-(t3-t4))/2,所述时间差表示为:offset=(T2-T1)-delay,其中,t1表示所述第三时间戳信息,t2表示所述第四时间戳信息,t3表示所述第五时间戳信息,t4表示所述第六时间戳信息,T1表示所述第一时间戳信息,T2表示所述第二时间戳信息,delay表示所述链路延时,offset表示所述时间差;
根据预设时长内第一次获得的第三时间戳信息、第一次获得的第四时间戳信息、最后一次获得的第三时间戳信息以及最后一次获得的第四时间戳信息确定频偏校正量,其中,所述频偏校正量表示为:f=(tm2-t12)-(tm1-t11),其中,tm1表示所述最后一次获得的第三时间戳信息,tm2表示所述最后一次获得的第四时间戳信息,t11表示所述第一次获得的第三时间戳信息,t12表示所述第一次获得的第四时间戳信息。
实施中,所述第三处理模块具体用于:
采用所述频偏校正量对所述时间差进行校正之前,确定所述时间差大于预设阈值。
实施中,所述第三处理模块具体用于:
若确定所述频偏校正量等于零,停止更新本地时钟,并在间隔预设时长后重新计算所述频偏校正量;否则,执行所述采用所述频偏校正量对所述时间差进行校正的操作。
基于上述技术方案,本发明实施例中,设备确定PTP端口的时钟步数配置信息以及时钟状态,根据PTP端口的时钟步数配置信息以及时钟状态与上游设备或下游设备进行时钟同步,使得PTP端口不需要与上游设备或下游设备的PTP端口具有相同的时钟步数,为实现单步时钟与双步时钟混合进行时钟同步提供了可能性。
并且,通过对时间差进行校正,采用校正后的时间差进行本地时钟同步,可以进一步提高时钟同步的精确度。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (24)

1.一种时钟同步方法,其特征在于,包括:
设备确定所述设备的第一PTP端口的时钟步数配置信息,以及确定所述第一PTP端口的时钟状态;
所述设备若确定所述第一PTP端口的时钟状态为主时钟,则根据所述第一PTP端口的时钟步数配置信息,单步情况下在事件报文中携带时间戳信息后或双步情况下在跟随报文中携带时间戳信息后通过所述第一PTP端口发送给与所述第一PTP端口对接的下游设备的第二PTP端口;
所述设备若确定所述第一PTP端口的时钟状态为从时钟或只做从时钟,则根据所述第一PTP端口的时钟步数配置信息,通过所述第一PTP端口从对接的上游设备的第三PTP端口交互事件报文,从交互的事件报文中获取时间戳信息,根据获取的时间戳信息与所述上游设备进行时钟同步,其中,所述第三PTP端口的时钟状态为主时钟。
2.如权利要求1所述的方法,其特征在于,所述设备若确定所述第一PTP端口的时钟状态为主时钟,则根据所述第一PTP端口的时钟步数配置信息,单步情况下在事件报文中携带时间戳信息后或双步情况下在跟随报文中携带时间戳信息后通过所述第一PTP端口发送给与所述第一PTP端口对接的下游设备的第二PTP端口,包括:
所述设备若确定所述第一PTP端口的时钟状态为主时钟,且确定所述第一PTP端口被配置为单步端口,则在第一事件报文中携带时间戳信息后发送给所述第二PTP端口;
所述设备若确定所述第一PTP端口的时钟状态为主时钟,且确定所述第一PTP端口被配置为双步端口,则发送第一事件报文以及携带时间戳信息的第一事件报文的跟随报文给所述第二PTP端口;
所述设备若确定所述第一PTP端口的时钟状态为主时钟,且确定所述第一PTP端口未配置时钟步数,则发送两路具有相应的序列标识的第一事件报文给所述第二PTP端口,其中第一路第一事件报文携带时间戳信息且twoStepFlag字段为FALSE,第二路第一事件报文的twoStepFlag字段为TRUE且在跟随报文中携带时间戳信息。
3.如权利要求1所述的方法,其特征在于,所述设备若确定所述第一PTP端口的时钟状态为从时钟或只做从时钟,则根据所述第一PTP端口的时钟步数配置信息,通过所述第一PTP端口从对接的上游设备的第三PTP端口交互事件报文,从交互的事件报文中获取时间戳信息,包括:
所述设备若确定所述第一PTP端口的时钟状态为从时钟或只做从时钟,且确定所述第一PTP端口被配置为单步端口或未配置时钟步数,则通过所述第一PTP端口与所述第三PTP端口交互的事件报文确定所述第三PTP端口的时钟步数配置信息,若确定所述第三PTP端口被配置为单步端口,则根据所述第一PTP端口与所述第三PTP端口交互的事件报文获取时间戳信息,若确定所述第三PTP端口被配置为双步端口,则根据所述第一PTP端口与所述第三PTP端口交互的事件报文以及事件报文的跟随报文获取时间戳信息;
所述设备若确定所述第一PTP端口的时钟状态为从时钟或只做从时钟,且确定所述第一PTP端口被配置为双步端口,则根据所述第一PTP端口与所述第三PTP端口交互的事件报文以及事件报文的跟随报文获取时间戳信息。
4.如权利要求3所述的方法,其特征在于,所述设备通过所述第一PTP端口与所述第三PTP端口交互的事件报文确定所述第三PTP端口的时钟步数配置信息,包括:
所述设备若确定所述第一PTP端口与所述第三PTP端口交互的事件报文的twoStepFlag字段为FALSE,则确定所述第三PTP端口被配置为单步端口,若确定所述第一PTP端口与所述第三PTP端口交互的事件报文的twoStepFlag字段为TRUE,则确定所述第三PTP端口被配置为双步端口。
5.如权利要求3所述的方法,其特征在于,所述设备从所述事件报文中获取时间戳信息,包括:
所述设备若确定所述第一PTP端口采用的为延时请求-响应机制,则从通过所述第三PTP端口向所述第一PTP端口发送的第一事件报文中获取所述第三PTP端口发送所述第一事件报文的第一时间戳信息,以及记录所述第一PTP端口接收所述第一事件报文的第二时间戳信息,以及记录通过所述第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息,以及从所述上游设备通过所述第三PTP端口向所述第一PTP端口发送的第三事件报文中,获取所述第三PTP端口接收所述第二事件报文的第四时间戳信息;
所述设备若确定所述第一PTP端口采用的为对等延时机制,则从通过所述第三PTP端口向所述第一PTP端口发送的第一事件报文中获取所述第三PTP端口发送所述第一事件报文的第一时间戳信息,以及记录所述第一PTP端口接收所述第一事件报文的第二时间戳信息,以及记录通过所述第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息,以及从所述上游设备通过所述第三PTP端口向所述第一PTP端口发送的第三事件报文中,获取所述第三PTP端口接收所述第二事件报文的第四时间戳信息,以及从所述第三事件报文中获取所述第三PTP端口发送所述第三事件报文的第五时间戳信息,以及记录所述第一PTP端口接收所述第三事件报文的第六时间戳信息信息。
6.如权利要求3所述的方法,其特征在于,所述设备从所述事件报文以及所述事件报文的跟随报文中获取时间戳信息,包括:
所述设备若确定所述第一PTP端口采用的为延时请求-响应机制,从通过所述第三PTP端口向所述第一PTP端口发送的第一事件报文的跟随报文中获取所述第三PTP端口发送所述第一事件报文的第一时间戳信息,以及记录所述第一PTP端口接收所述第一事件报文的第二时间戳信息,以及记录通过所述第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息,以及从所述上游设备通过所述第三PTP端口向所述第一PTP端口发送的第三事件报文中,获取所述第三PTP端口接收所述第二事件报文的第四时间戳信息;
所述设备若确定所述第一PTP端口采用的为对等延时机制,从通过所述第三PTP端口向所述第一PTP端口发送的第一事件报文的跟随报文中获取所述第三PTP端口发送所述第一事件报文的第一时间戳信息,以及记录所述第一PTP端口接收所述第一事件报文的第二时间戳信息,以及记录通过所述第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息,以及从所述上游设备通过所述第三PTP端口向所述第一PTP端口发送的第三事件报文中,获取所述第三PTP端口接收所述第二事件报文的第四时间戳信息,以及从所述第三事件报文的跟随报文中获取所述第三PTP端口发送所述第三事件报文的第五时间戳信息,以及记录所述第一PTP端口接收所述第三事件报文的第六时间戳信息信息。
7.如权利要求5或6所述的方法,其特征在于,所述设备根据获取的时间戳信息与所述上游设备进行时钟同步,包括:
所述设备根据获得时间戳信息确定链路延时以及频偏校正量,并根据所述链路延时确定时间差;
所述设备采用所述频偏校正量对所述时间差进行校正,确定校正后的时间差,并采用所述校正后的时间差更新本地时钟。
8.如权利要求7所述的方法,其特征在于,所述设备采用所述频偏校正量对所述时间差进行校正,包括:
所述设备计算获得上一次确定的平均时间差与所述时间差的平均值,并计算所述平均值与所述频偏校正量的差值,其中,所述平均时间差的初始值为首次确定的时间差。
9.如权利要求7所述的方法,其特征在于,所述设备根据获得时间戳信息确定链路延时以及频偏校正量,包括:
所述设备若确定所述第一PTP端口采用的为延时请求-响应机制,则根据所述第一时间戳信息、所述第二时间戳信息、所述第三时间戳信息以及所述第四时间戳信息确定链路延时,并根据所述链路延时确定时间差,其中,所述链路延时表示为:delay=((t2-t1)-(t3-t4))/2,所述时间差表示为:offset=(t2-t1)-delay,其中,t1表示所述第一时间戳信息,t2表示所述第二时间戳信息,t3表示所述第三时间戳信息,t4表示所述第四时间戳信息,delay表示所述链路延时,offset表示所述时间差;
所述设备根据最近预设时长内第一次获得的第一时间戳信息、第一次获得的第二时间戳信息、最后一次获得的第一时间戳信息以及最后一次获得的第二时间戳信息确定频偏校正量,其中,所述频偏校正量表示为:f=(tm2-t12)-(tm1-t11),其中,tm1表示所述最后一次获得的第一时间戳信息,tm2表示所述最后一次获得的第二时间戳信息,t11表示所述第一次获得的第一时间戳信息,t12表示所述第一次获得的第二时间戳信息。
10.如权利要求7所述的方法,其特征在于,所述设备根据获得时间戳信息确定链路延时以及频偏校正量,包括:
所述设备若确定所述第一PTP端口采用的为对等延时机制,根据所述第三时间戳信息、所述第四时间戳信息、所述第五时间戳信息以及所述第六时间戳信息确定链路延时,并根据所述链路延时、所述第一时间戳信息以及所述第二时间戳信息确定时间差,其中,所述链路延时表示为:delay=((t2-t1)-(t3-t4))/2,所述时间差表示为:offset=(T2-T1)-delay,其中,t1表示所述第三时间戳信息,t2表示所述第四时间戳信息,t3表示所述第五时间戳信息,t4表示所述第六时间戳信息,T1表示所述第一时间戳信息,T2表示所述第二时间戳信息,delay表示所述链路延时,offset表示所述时间差;
所述设备根据预设时长内第一次获得的第三时间戳信息、第一次获得的第四时间戳信息、最后一次获得的第三时间戳信息以及最后一次获得的第四时间戳信息确定频偏校正量,其中,所述频偏校正量表示为:f=(tm2-t12)-(tm1-t11),其中,tm1表示所述最后一次获得的第三时间戳信息,tm2表示所述最后一次获得的第四时间戳信息,t11表示所述第一次获得的第三时间戳信息,t12表示所述第一次获得的第四时间戳信息。
11.如权利要求7所述的方法,其特征在于,所述设备采用所述频偏校正量对所述时间差进行校正之前,所述方法还包括:
所述设备确定所述时间差大于预设阈值。
12.如权利要求7所述的方法,其特征在于,所述设备根据获得时间戳信息确定频偏校正量之后,所述方法还包括:
所述设备若确定所述频偏校正量等于零,停止更新本地时钟,并在间隔预设时长后重新计算所述频偏校正量;否则,执行所述采用所述频偏校正量对所述时间差进行校正的操作。
13.一种时钟同步设备,其特征在于,包括:
第一处理模块,用于确定所述设备的第一PTP端口的时钟步数配置信息,以及确定所述第一PTP端口的时钟状态;
第二处理模块,用于若确定所述第一PTP端口的时钟状态为主时钟,则根据所述第一PTP端口的时钟步数配置信息,单步情况下在事件报文中携带时间戳信息后或双步情况下在跟随报文中携带时间戳信息后通过所述第一PTP端口发送给与所述第一PTP端口对接的下游设备的第二PTP端口;
第三处理模块,用于若确定所述第一PTP端口的时钟状态为从时钟或只做从时钟,则根据所述第一PTP端口的时钟步数配置信息,通过所述第一PTP端口从对接的上游设备的第三PTP端口交互事件报文,从交互的事件报文中获取时间戳信息,根据获取的时间戳信息与所述上游设备进行时钟同步,其中,所述第三PTP端口的时钟状态为主时钟。
14.如权利要求13所述的设备,其特征在于,所述第二处理模块具体用于:
若确定所述第一PTP端口的时钟状态为主时钟,且确定所述第一PTP端口被配置为单步端口,则在第一事件报文中携带时间戳信息后发送给所述第二PTP端口;
若确定所述第一PTP端口的时钟状态为主时钟,且确定所述第一PTP端口被配置为双步端口,则发送第一事件报文以及携带时间戳信息的第一事件报文的跟随报文给所述第二PTP端口;
若确定所述第一PTP端口的时钟状态为主时钟,且确定所述第一PTP端口未配置时钟步数,则发送两路具有相应的序列标识的第一事件报文给所述第二PTP端口,其中第一路第一事件报文携带时间戳信息且twoStepFlag字段为FALSE,第二路第一事件报文的twoStepFlag字段为TRUE且在跟随报文中携带时间戳信息。
15.如权利要求13所述的设备,其特征在于,所述第三处理模块具体用于:
若确定所述第一PTP端口的时钟状态为从时钟或只做从时钟,且确定所述第一PTP端口被配置为单步端口或未配置时钟步数,则通过所述第一PTP端口与所述第三PTP端口交互的事件报文确定所述第三PTP端口的时钟步数配置信息,若确定所述第三PTP端口被配置为单步端口,则根据所述第一PTP端口与所述第三PTP端口交互的事件报文获取时间戳信息,若确定所述第三PTP端口被配置为双步端口,则根据所述第一PTP端口与所述第三PTP端口交互的事件报文以及事件报文的跟随报文获取时间戳信息;
若确定所述第一PTP端口的时钟状态为从时钟或只做从时钟,且确定所述第一PTP端口被配置为双步端口,则根据所述第一PTP端口与所述第三PTP端口交互的事件报文以及事件报文的跟随报文获取时间戳信息。
16.如权利要求15所述的设备,其特征在于,所述第三处理模块具体用于:
若确定所述第一PTP端口与所述第三PTP端口交互的事件报文的twoStepFlag字段为FALSE,则确定所述第三PTP端口被配置为单步端口,若确定所述第一PTP端口与所述第三PTP端口交互的事件报文的twoStepFlag字段为TRUE,则确定所述第三PTP端口被配置为双步端口。
17.如权利要求15所述的设备,其特征在于,所述第三处理模块具体用于:
若确定所述第一PTP端口采用的为延时请求-响应机制,则从通过所述第三PTP端口向所述第一PTP端口发送的第一事件报文中获取所述第三PTP端口发送所述第一事件报文的第一时间戳信息,以及记录所述第一PTP端口接收所述第一事件报文的第二时间戳信息,以及记录通过所述第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息,以及从所述上游设备通过所述第三PTP端口向所述第一PTP端口发送的第三事件报文中,获取所述第三PTP端口接收所述第二事件报文的第四时间戳信息;
若确定所述第一PTP端口采用的为对等延时机制,则从通过所述第三PTP端口向所述第一PTP端口发送的第一事件报文中获取所述第三PTP端口发送所述第一事件报文的第一时间戳信息,以及记录所述第一PTP端口接收所述第一事件报文的第二时间戳信息,以及记录通过所述第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息,以及从所述上游设备通过所述第三PTP端口向所述第一PTP端口发送的第三事件报文中,获取所述第三PTP端口接收所述第二事件报文的第四时间戳信息,以及从所述第三事件报文中获取所述第三PTP端口发送所述第三事件报文的第五时间戳信息,以及记录所述第一PTP端口接收所述第三事件报文的第六时间戳信息信息。
18.如权利要求15所述的设备,其特征在于,所述第三处理模块具体用于:
若确定所述第一PTP端口采用的为延时请求-响应机制,从通过所述第三PTP端口向所述第一PTP端口发送的第一事件报文的跟随报文中获取所述第三PTP端口发送所述第一事件报文的第一时间戳信息,以及记录所述第一PTP端口接收所述第一事件报文的第二时间戳信息,以及记录通过所述第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息,以及从所述上游设备通过所述第三PTP端口向所述第一PTP端口发送的第三事件报文中,获取所述第三PTP端口接收所述第二事件报文的第四时间戳信息;
若确定所述第一PTP端口采用的为对等延时机制,从通过所述第三PTP端口向所述第一PTP端口发送的第一事件报文的跟随报文中获取所述第三PTP端口发送所述第一事件报文的第一时间戳信息,以及记录所述第一PTP端口接收所述第一事件报文的第二时间戳信息,以及记录通过所述第一PTP端口向所述第三PTP端口发送第二事件报文的第三时间戳信息,以及从所述上游设备通过所述第三PTP端口向所述第一PTP端口发送的第三事件报文中,获取所述第三PTP端口接收所述第二事件报文的第四时间戳信息,以及从所述第三事件报文的跟随报文中获取所述第三PTP端口发送所述第三事件报文的第五时间戳信息,以及记录所述第一PTP端口接收所述第三事件报文的第六时间戳信息信息。
19.如权利要求17或18所述的设备,其特征在于,所述第三处理模块具体用于:
根据获得时间戳信息确定链路延时以及频偏校正量,并根据所述链路延时确定时间差;
采用所述频偏校正量对所述时间差进行校正,确定校正后的时间差,并采用所述校正后的时间差更新本地时钟。
20.如权利要求19所述的设备,其特征在于,所述第三处理模块具体用于:
计算获得上一次确定的平均时间差与所述时间差的平均值,并计算所述平均值与所述频偏校正量的差值,其中,所述平均时间差的初始值为首次确定的时间差。
21.如权利要求19所述的设备,其特征在于,所述第三处理模块具体用于:
若确定所述第一PTP端口采用的为延时请求-响应机制,则根据所述第一时间戳信息、所述第二时间戳信息、所述第三时间戳信息以及所述第四时间戳信息确定链路延时,并根据所述链路延时确定时间差,其中,所述链路延时表示为:delay=((t2-t1)-(t3-t4))/2,所述时间差表示为:offset=(t2-t1)-delay,其中,t1表示所述第一时间戳信息,t2表示所述第二时间戳信息,t3表示所述第三时间戳信息,t4表示所述第四时间戳信息,delay表示所述链路延时,offset表示所述时间差;
根据最近预设时长内第一次获得的第一时间戳信息、第一次获得的第二时间戳信息、最后一次获得的第一时间戳信息以及最后一次获得的第二时间戳信息确定频偏校正量,其中,所述频偏校正量表示为:f=(tm2-t12)-(tm1-t11),其中,tm1表示所述最后一次获得的第一时间戳信息,tm2表示所述最后一次获得的第二时间戳信息,t11表示所述第一次获得的第一时间戳信息,t12表示所述第一次获得的第二时间戳信息。
22.如权利要求19所述的设备,其特征在于,所述第三处理模块具体用于:
若确定所述第一PTP端口采用的为对等延时机制,根据所述第三时间戳信息、所述第四时间戳信息、所述第五时间戳信息以及所述第六时间戳信息确定链路延时,并根据所述链路延时、所述第一时间戳信息以及所述第二时间戳信息确定时间差,其中,所述链路延时表示为:delay=((t2-t1)-(t3-t4))/2,所述时间差表示为:offset=(T2-T1)-delay,其中,t1表示所述第三时间戳信息,t2表示所述第四时间戳信息,t3表示所述第五时间戳信息,t4表示所述第六时间戳信息,T1表示所述第一时间戳信息,T2表示所述第二时间戳信息,delay表示所述链路延时,offset表示所述时间差;
根据预设时长内第一次获得的第三时间戳信息、第一次获得的第四时间戳信息、最后一次获得的第三时间戳信息以及最后一次获得的第四时间戳信息确定频偏校正量,其中,所述频偏校正量表示为:f=(tm2-t12)-(tm1-t11),其中,tm1表示所述最后一次获得的第三时间戳信息,tm2表示所述最后一次获得的第四时间戳信息,t11表示所述第一次获得的第三时间戳信息,t12表示所述第一次获得的第四时间戳信息。
23.如权利要求19所述的设备,其特征在于,所述第三处理模块具体用于:
采用所述频偏校正量对所述时间差进行校正之前,确定所述时间差大于预设阈值。
24.如权利要求19所述的设备,其特征在于,所述第三处理模块具体用于:
若确定所述频偏校正量等于零,停止更新本地时钟,并在间隔预设时长后重新计算所述频偏校正量;否则,执行所述采用所述频偏校正量对所述时间差进行校正的操作。
CN201610900242.5A 2016-10-14 2016-10-14 一种时钟同步方法及设备 Active CN106533600B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610900242.5A CN106533600B (zh) 2016-10-14 2016-10-14 一种时钟同步方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610900242.5A CN106533600B (zh) 2016-10-14 2016-10-14 一种时钟同步方法及设备

Publications (2)

Publication Number Publication Date
CN106533600A CN106533600A (zh) 2017-03-22
CN106533600B true CN106533600B (zh) 2018-09-28

Family

ID=58331902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610900242.5A Active CN106533600B (zh) 2016-10-14 2016-10-14 一种时钟同步方法及设备

Country Status (1)

Country Link
CN (1) CN106533600B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116436555B (zh) * 2023-06-09 2023-08-18 新华三技术有限公司 一种时间同步方法、装置及分布式网络设备

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107483402B (zh) * 2017-07-12 2019-12-06 瑞斯康达科技发展股份有限公司 一种时钟同步方法和设备
CN107395307B (zh) * 2017-07-12 2019-04-19 瑞斯康达科技发展股份有限公司 一种时钟同步方法和设备
CN111385048B (zh) * 2018-12-29 2023-06-30 中兴通讯股份有限公司 一种时间同步方法及系统
CN112532279B (zh) 2019-09-17 2023-10-20 华为技术有限公司 获取数据传输时间的方法、装置、系统及存储介质
CN113708869B (zh) * 2020-05-20 2024-04-12 华为技术有限公司 配置端口状态的方法、装置及系统
CN111786741B (zh) * 2020-07-20 2023-02-28 哈尔滨海能达科技有限公司 一种cpri传输数据的时钟同步方法及相关装置
CN115459871A (zh) * 2021-06-08 2022-12-09 中兴通讯股份有限公司 时间同步方法、网络设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104113386A (zh) * 2014-07-09 2014-10-22 北京东土科技股份有限公司 一种监控以太网时钟同步的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102195735B (zh) * 2010-03-11 2014-04-09 杭州华三通信技术有限公司 多子系统设备的时间同步方法及子系统
CN104284258B (zh) * 2013-07-12 2017-10-27 上海贝尔股份有限公司 在pon中配置onu作为ieee1588主时钟的方法和装置
CN104184534B (zh) * 2014-09-09 2017-02-15 桂林电子科技大学 精确ieee1588协议的透明时钟路径延迟的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104113386A (zh) * 2014-07-09 2014-10-22 北京东土科技股份有限公司 一种监控以太网时钟同步的方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116436555B (zh) * 2023-06-09 2023-08-18 新华三技术有限公司 一种时间同步方法、装置及分布式网络设备

Also Published As

Publication number Publication date
CN106533600A (zh) 2017-03-22

Similar Documents

Publication Publication Date Title
CN106533600B (zh) 一种时钟同步方法及设备
US10432336B2 (en) System and method of synchronizing a distributed clock in a packet-compatible network
EP2595331A2 (en) Communication apparatus for performing time synchronization
EP2676389B1 (en) Method of providing a path delay asymmetry for time synchronization between a master and a slave clock across a communciation network
CN101594673B (zh) 一种分布式处理1588时间戳的方法及系统
CN103166792B (zh) 线路非对称性补偿方法、设备及系统
US20150295669A1 (en) Managing time offset and frequency drift in asynchronous docsis remote phy network environments
US11700072B2 (en) Timing synchronization over cable networks
CN105959076A (zh) 使无源光网络具备支持时间同步能力的装置与方法
CN102983927B (zh) 一种基于ieee 1588协议的主从时钟对时的时间补偿方法
CN103168440B (zh) 时间路径补偿方法和装置
CN104184534B (zh) 精确ieee1588协议的透明时钟路径延迟的方法
CN107786294B (zh) 一种集中式1588的实现系统及方法
CN105743598A (zh) 一种工业以太网时钟同步方法及系统
CN103929293A (zh) 非对称延迟的时间同步方法及系统
CN109150357A (zh) 基于rs485和以太网的混合总线的时间同步方法
CN105376043B (zh) 一种双板卡系统的时间同步方法
CN109921871A (zh) 一种时间同步方法、装置及网络系统
WO2012149751A1 (zh) 一种时钟等级分级方法及相关设备
CN104683088B (zh) 多基准同步方法、装置及系统
CN107181553B (zh) 一种伺服驱动器内部进行精确时间同步的方法
CN103647614A (zh) 基于ieee1588协议的可靠提高时间同步精度方法
CN106301745A (zh) 主用主控板与备用主控板之间时间同步的方法及装置
CN102916758A (zh) 以太网时间同步装置和网络设备
CN107395307B (zh) 一种时钟同步方法和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant