一种端到端透明时钟和转发PTP报文的方法与流程

文档序号:23894064发布日期:2021-02-09 11:25阅读:173来源:国知局
一种端到端透明时钟和转发ptp报文的方法
技术领域
:[0001]本发明涉及通信
技术领域
:,尤其涉及一种端到端透明时钟和转发ptp报文的方法。
背景技术
::[0002]尽管透明时钟自2008年起由ieee1588(ieee1588-2008标准)正式定义,但其在电信市场的部署并不像其他类型的ptp(precisiontimeprotocol,精确时间协议)时钟那样普遍。在ptp报文处理方面实现透明时钟并不像纠正ptp事件报文(ptpeventmessage)的驻留时间那样简单和容易。[0003]ieee1588-2008标准定义了普通时钟(ordinaryclock)、边缘时钟(boundaryclock)、端到端透明时钟(end-to-endtransparentclock)和对等透明时钟(peer-to-peertransparentclock)四种基本类型的ptp时钟,以下条款简要介绍了ptp的工作原理(以下原理介绍摘自ieee1588-2008原文):[0004]1.为了在域内建立ptp主从层次结构(master-slavehierarchy),普通时钟或边缘时钟的每个ptp端口执行一个独立的ptp状态机(ptpstatemachine)副本。每个ptp端口检查接收到的所有announce报文的内容。利用最佳主时钟算法(bestmasterclockalgorithm),通过分析announce报文的内容和与普通时钟或边缘时钟相对应的数据集(datasets)的内容来确定时钟各ptp端口的状态。ptp状态机定义了允许的端口状态和各个状态之间的转换规则。master、slave、passive是决定ptp主从层次结构的3种状态。master状态的端口是端口所服务路径上的时间源。slave状态的端口同步到ptp路径上端口为master状态的设备。passive状态的端口不是ptp路径上的主端口,也不与主端口同步。[0005]2.在ptp端口进入slave状态之前,存在一个称为uncalibrated状态的暂态。在uncalibrated状态下,域中检测到一个或多个处于master状态的端口;选择处于master状态的适当端口,并且本地(local)端口正准备与选定的处于master状态的端口同步。[0006]3.边缘时钟在一个域中有多个端口。它也可以是主时钟(masterclock)和/或从时钟(slaveclock)。[0007]4.普通时钟在一个域中只有一个端口。它可以是主时钟或从时钟。它也可以配置为仅主时钟(masteronlyclock)或仅从时钟(slaveonlyclock)。[0008]5.边缘时钟和普通时钟维护其时钟和每个ptp端口数据集。[0009]6.在域中,使用ptp协议的、对于时钟同步而言是终极源头的时钟被定义为grandmasterclock.[0010]7.为了使从时钟与主时钟同步,主时钟和从时钟协同执行延迟请求响应机制(delayrequest-responsemechanism)。主时钟向从时钟发送带有t1时间戳的同步(sync)报文。从主时钟收到sync报文后,从时钟生成t2时间戳。从时钟向主时钟发送延迟请求(delay_req)报文,并保存相应的t3时间戳。收到延迟请求报文后,主时钟生成t4时间戳。为了响应延迟请求报文,主时钟向从时钟发送包含t4时间戳的延迟响应(delay_resp)报文。从时钟获取t1、t2、t3、t4时间戳,计算主时钟和其自身之间的平均路径延迟和时间偏移。[0011]8.端到端透明时钟支持在从时钟和主时钟之间使用端到端延迟测量机制。它校正了ptp事件报文的驻留时间和路径不对称性,并转发所有ptp报文。[0012]9.对等透明时钟,除了对ptp事件报文的驻留时间和路径不对称进行校正外,还对连接到接收ptp事件报文的端口的链路的传播延迟进行校正。在存在对等透明时钟的情况下,使用对等延迟测量机制执行从时钟和主时钟之间的延迟测量。对等透明时钟转发announce报文、sync报文、follow_up报文、management报文和signaling报文。[0013]10.透明时钟维护其时钟和每个ptp端口数据集。[0014]基于现有技术的透明时钟将所有接收到的ptp报文从每个入口ptp端口转发到所有其他出口ptp端口。在小规模同步网络中使用透明时钟时,这种行为的影响可能不明显。当在复杂的同步网络中使用透明时钟时,上述行为会以指数方式增加所有其他ptp时钟的处理负担,减缓总体ptp主从层次结构建立的收敛时间,并浪费透明时钟所在设备的带宽。在这种情况下,上述行为的相关影响是不容忽视的。技术实现要素:[0015]本发明的目的是提供一种端到端透明时钟和转发ptp报文的方法。[0016]根据本发明的一个方面,提供了一种端到端透明时钟,其特征在于,所述透明时钟具有多个ptp端口,所述透明时钟的ptp端口是有状态的,所述透明时钟的ptp端口状态源于适配的边缘时钟功能的ptp端口状态或采用其他协议或算法的时钟功能的ptp端口状态;[0017]所述透明时钟包括:[0018]状态监控单元,用于监测所处同步网络的状态,并在同步网络的状态发生变化时自适应地更新ptp端口的状态相关信息;[0019]转发单元,用于基于更新后的各个ptp端口的状态相关信息,确定相应的用于转发ptp报文的转发规则,并按照该转发规则转发ptp报文。[0020]根据本发明的一个方面,提供了一种在端到端透明时钟装置中转发ptp报文的方法,其中,所述透明时钟具有多个ptp端口,所述透明时钟的ptp端口是有状态的,所述透明时钟的ptp端口状态源于适配的边缘时钟功能的ptp端口状态或采用其他协议或算法的时钟功能的ptp端口状态;[0021]所述方法包括以下步骤:[0022]监测所处同步网络的状态;[0023]在同步网络的状态发生变化时自适应地更新ptp端口的状态相关信息;[0024]基于更新后的各个ptp端口的状态相关信息,确定相应的用于转发ptp报文的转发规则;[0025]按照该转发规则转发ptp报文。[0026]与现有技术相比,本发明具有以下优点:根据本方案的透明时钟通过监控所处同步网络的状态,并在同步网络的状态发生变化时自适应地更新ptp端口的状态,进而基于与该变化相适应的转发规则来转发ptp报文,而不是将所有接收到的ptp报文从每个入口ptp端口转发到所有其他出口ptp端口,从而能够减少ptp报文处理负担,加快了建立总体ptp主从层次结构的收敛时间。附图说明[0027]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:[0028]图1示出了根据本发明的实施例的端到端透明时钟的结构示意图;[0029]图2a示出了根据本发明的一个示例性的端到端透明时钟的结构示意图;[0030]图2b示出了根据本发明的一个示例性的状态监控单元的结构示意图;[0031]图3a示出了根据本发明的一个示例性的同步网络中的ptp主从层次结构的示意图;[0032]图3b示出了根据本发明的一个示例性的同步网络中的ptp主从层次结构的示意图;[0033]图3c示出了根据本发明的一个示例性的同步网络中的ptp主从层次结构的示意图;[0034]图3d示出了根据本发明的一个示例性的同步网络中的ptp主从层次结构的示意图;[0035]图4示意出了根据本发明的一种在端到端透明时钟装置中转发ptp报文的方法流程图。[0036]附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式[0037]下面结合附图对本发明作进一步详细描述。[0038]除非特别说明,本文中出现的端口等同于ptp端口,透明时钟等同于端到端透明时钟,时钟等同于ptp时钟,采用其他可根据同步网络的动态变化自适应地更新其ptp端口的状态的协议或算法的时钟功能等同于采用其他协议或算法的时钟功能。[0039]图1示出了根据本发明的实施例的端到端透明时钟的结构示意图。[0040]参照图1,根据本实施例的端到端透明时钟1具有多个ptp端口,所述透明时钟1包括状态监控单元101和转发单元102。[0041]需要说明的是,本领域技术人员应熟知,除了状态监控单元101和转发单元102,透明时钟1还包括端口模块和控制器单元等包含于ptp时钟的常规的模块或单元。[0042]其中,根据本发明的透明时钟1适用于ieee1588-2008标准以及该标准演进后的版本。[0043]其中,状态监控单元101用于监测所处同步网络的状态,并在同步网络的状态发生变化时自适应地更新ptp端口的状态相关信息。转发单元102用于基于更新后的各个ptp端口的状态相关信息,确定相应的用于转发ptp报文的转发规则,并按照该转发规则转发ptp报文。[0044]其中,所述同步网络的状态用于指示同步网络中的各个路径的通信状态,例如同步网络的路径是否发生通信中断或延迟,又例如路径的传输速率等等。优选地,所述同步网络状态还用于指示同步网络中各同步设备的工作状态,例如同步设备是否发生故障或失效等。[0045]其中,所述状态相关信息包括各种用于指示ptp端口的状态(state)的信息。[0046]需要说明的是,标准的透明时钟的ptp端口是无状态的,根据本发明的透明时钟1的ptp端口是有状态的,该ptp端口状态是ptp端口的属性之一,所述属性可包括如ptp端口在透明时钟1所在的ptp主从层次结构拓扑中的角色、状况(status)、位置等。[0047]优选地,透明时钟1的有效的ptp端口状态被分类为面向上游主时钟的端口和面向下游从时钟的端口。面向上游主时钟的端口可以是一个或多个,当为多个时,面向上游主时钟的根端口为工作端口,面向上游主时钟的备选端口为保护端口。[0048]其中,透明时钟1确定ptp端口的状态相关信息的方式包括:[0049]1)如果透明时钟1的状态监控单元101采用适配的边缘时钟功能,适配的边缘时钟功能使用透明时钟1的ptp端口作为其ptp端口,自适应地更新其ptp端口的状态以响应同步网络的动态变化。透明时钟1的ptp端口状态源于适配的边缘时钟功能的ptp端口状态。[0050]所述透明时钟1基于适配的边缘时钟功能的ptp端口状态并按照以下规则确定所述透明时钟的各个ptp端口的状态:将处于slave状态的ptp端口作为面向上游主时钟的根端口;将处于passive状态的ptp端口作为面向上游主时钟的备选端口;将处于master状态的ptp端口作为面向下游从时钟的端口。[0051]优选地,所述状态相关信息包括ptp端口的类型信息,所述透明时钟1基于ptp端口是否为面向上游主时钟的端口或面向下游从时钟的端口来将ptp端口的状态分为有效(valid)和无效(invalid)两种类型。其中,透明时钟1将既非面向上游主时钟的ptp端口又非面向下游从时钟的端口作为无效端口,将面向上游主时钟的端口或面向下游从时钟的ptp端口作为有效端口。[0052]优选地,所述透明时钟1基于ptp端口的状态是否稳定将ptp端口的状态分为稳定(stable)和不稳定(unstable)两种类型。例如,透明时钟1基于以下规则中的一项或多项来确定ptp端口的状态是否稳定:[0053]-尚处在ptp主从层次结构建立过程中的ptp端口状态可以认为是不稳定的[0054]-如果面向下游从时钟的ptp端口接收到announce报文时,则认为该ptp端口的状态是不稳定;[0055]-如果面向上游主时钟的根端口接收到announce报文而该报文不是由当前上游主时钟发送时,则认为该ptp端口的状态不稳定;[0056]-如果面向上游主时钟的根端口在超过特定超时阈值的时间内没有收到当前上游主时钟发送的announce报文,则认为该ptp端口的状态不稳定。[0057]需要说明的是,上述规则的举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何可确定ptp端口的状态是否稳定的规则的实现方式,均应包含在本发明的范围内。[0058]2)如果透明时钟1的状态监控单元101由采用其他可根据同步网络的动态变化自适应地更新其ptp端口的状态的协议或算法的时钟功能来实现,则采用其他协议或算法的时钟功能使用透明时钟1的ptp端口作为其ptp端口,自适应地更新其ptp端口的状态以响应同步网络的动态变化。透明时钟1的ptp端口状态源于采用其他协议或算法的时钟功能的ptp端口状态。[0059]优选地,所述状态相关信息包括ptp端口的类型信息,透明时钟1对ptp端口的状态进行分类的方式与上述采用适配的边缘时钟功能来实现的分类方式相类似,此处不再赘述。[0060]继续参照图1进行说明,转发单元102所使用的转发规则用于指示透明时钟如何转发ptp报文,例如在接收到ptp报文后发送至状态监控单元和/或出口ptp端口等。[0061]优选地,所述转发单元102能够复制和/或转发ptp报文,和/或修改ptp报文的某些字段。[0062]根据本发明的第一实施例,透明时钟1采用适配的边缘时钟功能,所述透明时钟1还包括报文生成单元(图未示),用于在处于master状态的ptp端口上生成announce报文,以发送至下游从时钟。[0063]其中,所述报文生成单元可以和状态监控单元101和转发单元102一样,是包含于透明时钟1中的独立的单元。或者,报文生成单元可包含于状态监控单元101和/或转发单元102。[0064]优选地,为了与标准(如:ieee1588-2008标准、itu-tg.8275.1标准等)ptp时钟和与透明时钟1相同类型的透明时钟兼容地互通,根据本实施例的透明时钟1在将ptp报文转发到出口ptp端口时,转发单元102使用由状态监控单元101和控制器单元维护的适配的边缘时钟功能的属性(attributes)来修改要转发的ptp报文的某些字段,使得透明时钟1较标准端到端透明时钟的差异化功能对其他ptp时钟不可见。[0065]其中,修改要转发的ptp报文的某些字段的示例可包括:[0066]用状态监控单元101和控制器单元维护的适配的边缘时钟功能的出口ptp端口的数据集portds.portidentity替换要转发到该出口ptp端口的sync报文的sourceportidentity;[0067]用状态监控单元101和控制器单元维护的适配的边缘时钟功能的出口ptp端口的数据集portds.portidentity替换要转发到该出口ptp端口的follow_up报文的sourceportidentity;[0068]用状态监控单元101和控制器单元维护的适配的边缘时钟功能的出口ptp端口的数据集portds.portidentity替换要转发到该出口ptp端口的delay_resp报文的sourceportidentity。[0069]根据本发明的第二实施例,透明时钟1采用适配的边缘时钟功能,所述透明时钟1不包括报文生成单元(或报文生成单元不工作),透明时钟1在处于master状态的ptp端口上不生成announce报文发送至下游从时钟,透明时钟1在处于slave状态的端口收到由当前上游主时钟发送的announce报文被复制后,该announce报文既被转发到状态监控单元101,又被转发到面向下游从时钟的处于master状态的端口,进而发送至下游从时钟。[0070]优选地,在本实施例中,适配的边缘时钟功能使用适配的ptp端口状态决策算法(ptpportstatedecisionalgorithm),该算法不使用适配的边缘时钟功能自身的ptp时钟特性来确定ptp端口的状态。即在ptp端口状态的决策算法中,不采纳基于适配的边缘时钟功能对应的数据集的该适配的边缘时钟功能自身的ptp时钟特性作为决策依据,采纳各ptp端口接收到的announce报文的内容及基于对所述内容的分析、计算、比较等处理后的结果作为决策依据。[0071]所述第一实施例和第二实施例的透明时钟1可分别由采用其他可根据同步网络的动态变化自适应地更新其ptp端口的状态的协议或算法的时钟功能来实现,其生成或转发announce报文的方式与上述采用适配的边缘时钟功能来生成或转发announce报文的方式相类似,此处不再赘述。[0072]根据第一实施例和第二实施例的透明时钟1采用的适配的边缘时钟功能禁用或修改一部分标准边缘时钟功能要求执行的操作,以实现所述状态监控单元和转发单元的操作。[0073]其中,透明时钟1禁用或修改一部分标准边缘时钟功能要求执行的操作的示例包括:[0074]处于uncalibrated状态的本地(local)端口不准备锁定选定的master状态端口,适配的边缘时钟功能不准备和上游主时钟执行延迟请求响应机制、不准备与上游主时钟同步;[0075]处于slave状态的本地端口不锁定选定的master状态端口,适配的边缘时钟功能不和上游主时钟执行延迟请求响应机制、不与上游主时钟同步;[0076]适配的边缘时钟功能在其master状态端口上不与下游从时钟执行延时请求响应机制。[0077]优选地,基于前述对ptp端口的状态的分类,当端口状态无效或不稳定时,所述透明时钟1禁用或部分禁用将ptp报文从入口端转发到出口端的功能。[0078]优选地,所述透明时钟1针对不同类型的ptp报文,设定相应的转发规则。例如:[0079]1)如果接收到的ptp报文为announce报文,转发规则如下:[0080]i)对于如上述第一实施例的包含报文生成单元的透明时钟,所有接收到的announce报文都被转发到状态监控单元。如果状态监控单元采用适配的边缘时钟功能,则根据标准边缘时钟的行为,利用上游主时钟发送的announce报文内容更新其ptp时钟和每个ptp端口的数据集。报文生成单元在面向下游从时钟的处于master状态的端口上基于与适配的边缘时钟功能对应的ptp时钟和每个ptp端口数据集的内容来生成announce报文,以发送至下游从时钟。状态监控单元可根据接收到的announce报文和相关的源端口信息(用于指示从哪个入ptp端口收到ptp报文)进一步判断所处同步网络状态是否发生变化和/或ptp端口状态是否不稳定或无效;[0081]如果第一实施例的透明时钟由采用其他协议或算法的时钟功能来实现,所有接收到的announce报文也都被转发到状态监控单元。[0082]ii)对于如上述第二实施例的透明时钟(即不包含报文生成单元或报文生成单元不工作),当ptp端口状态稳定和有效时,在处于master状态的ptp端口上不生成announce报文发送至下游从时钟,在处于slave状态的端口接收到由当前上游主时钟发送的announce报文被复制后,该announce报文既被转发到状态监控单元,又被转发到面向下游从时钟的处于master状态的端口,进而发送至下游从时钟。其他接收到的announce报文将仅被转发到状态监控单元。状态监控单元可根据接收到的announce报文和相关的源端口信息进一步判断所处同步网络状态是否发生变化和/或ptp端口状态是否不稳定或无效。当ptp端口状态不稳定或无效时,所有接收到的announce报文被转发到状态监控单元。[0083]如果第二实施例的透明时钟由采用其他可根据同步网络的动态变化自适应地更新其ptp端口的状态的协议或算法的时钟功能来实现,当ptp端口状态稳定和有效时,在面向上游主时钟的根端口接收到由当前上游主时钟发送的announce报文被复制后,该announce报文既被转发到状态监控单元,又被转发到面向下游从时钟的端口,进而发送至下游从时钟。其他接收到的announce报文将仅被转发到状态监控单元。当ptp端口状态不稳定或无效时,所有接收到的announce报文被转发到状态监控单元。[0084]2)如果接收到的ptp报文为sync报文,当ptp端口状态稳定和有效时,其转发规则如下:由面向上游主时钟的根端口收到的当前上游主时钟发送的sync报文,被复制(如有必要),并转发到面向下游从时钟的端口。转发单元会丢弃任何其他接收到的sync报文。或者,转发单元可以将复制的sync报文同时转发到状态监控单元。如果透明时钟支持两步时钟(two-stepclock)机制,则可以采用与sync报文相同的转发规则来转发follow_up报文。[0085]3)如果接收到的ptp报文为延迟请求(delay_req)报文,当ptp端口状态稳定和有效时,其转发规则如下:只有在面向下游从时钟的端口上接收到的延迟请求报文才被转发到面向上游主时钟的根端口。转发单元将丢弃任何其他接收到的延迟请求报文。[0086]4)如果接收到的ptp报文为延迟响应(delay_resp)报文,当ptp端口状态稳定和有效时,其转发规则如下:在面向上游主时钟的根端口收到的、当前上游主时钟响应下游从时钟发送的延迟请求报文而发送的延迟响应报文被转发到相应的面向下游从时钟的端口。这样,每个下游从时钟都不会接收到它没有请求的延迟响应报文。转发单元将丢弃任何其他接收到的延迟响应报文。[0087]图2a和图2b分别示出了根据本发明的示例性的透明时钟和状态监控单元的结构示意图。[0088]参照图2a,根据本示例的透明时钟2包括端口模块201、状态监控单元202、转发单元203、控制器单元204和本地时钟lc_1。[0089]端口模块201容纳透明时钟2的所有ptp端口(端口1至端口m)。端口模块201通过内部消息通道与转发单元203、状态监控单元202和控制器单元204连接。端口模块201通过入口和出口时间戳产生器(在图2a中端口模块201里用ts来表示)对接收和发送的ptp事件报文(eventmessage)加盖时间戳(timestamp),并与转发单元203一起参与事件报文的驻留时间校正。ptp报文由端口模块201的ptp端口接收或发送。端口模块201在内部消息通道上除了提供接收到的ptp报文本身,还提供对应的源端口信息(用于指示从哪个入ptp端口收到ptp报文)。[0090]本地时钟lc_1可给端口模块201入口和出口时间戳产生器提供本地时间1和本地时钟信号1。本地时钟lc_1可以由状态监控单元202和/或控制器单元204来控制和调整。本地时钟lc_1和图2b中的本地时钟lc_2复用本地时间和时钟总线(localtimeandclockbus)。[0091]状态监控单元202监测所处同步网络的状态,并在同步网络的状态发生变化时自适应地更新ptp端口的状态相关信息。状态监控单元202基于以下规则来确定ptp端口的状态是无效端口或不稳定端口,并通知给转发单元203和控制器单元204:将既非面向上游主时钟的端口又非面向下游从时钟的端口作为无效端口;尚处在ptp主从层次结构建立过程中的ptp端口状态可以认为是不稳定的;如果面向下游从时钟的端口接收到announce报文时,则认为该端口的状态是不稳定;如果面向上游主时钟的根端口接收到announce报文而该报文不是由当前上游主时钟发送时,则认为该ptp端口的状态不稳定;如果面向上游主时钟的根端口在超过特定超时阈值的时间内没有收到当前上游主时钟发送的announce报文,则认为该ptp端口的状态不稳定。[0092]其中,状态监控单元202的结构如图2b所示。[0093]参照图2b,状态监控单元202由适配的边缘时钟功能和/或由采用其他可根据同步网络的动态变化自适应地更新其ptp端口的状态的协议或算法的时钟功能来实现。状态监控单元202包括ptp协议引擎组(ptpprotocolenginegroup)、可供选择的其他协议/算法引擎(alternateprotocol/algorithmengine)、数据集表(tableofdatasets)、端口状态表(tableofportstates)和本地时钟lc_2。本地时钟lc_2的功能可参考本地时钟lc_1,其输出为本地时间2和本地时钟信号2,与本地时钟lc_1复用本地时间和时钟总线。[0094]需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何状态监控单元202的实现方式,均应包含在本发明的范围内。[0095]如果透明时钟采用了适配的边缘时钟功能,状态监控单元则需要采用ptp协议引擎组。在ptp端口上接收到的所有announce报文由转发单元203转发到ptp协议引擎组。ptp协议引擎组是每个端口的ptp协议引擎的集合,在这里执行边缘时钟的ptp协议状态机(ptpprotocolstatemachine)。数据集表存储适配的边缘时钟功能相关的ptp时钟和每个ptp端口的数据集,这些数据集可以由ptp协议引擎组维护并由控制器单元204访问。为了实现适配的边缘时钟功能,需要在ptp协议引擎组和/或控制器单元的控制下,对ptp时钟和每个ptp端口的数据集做某些设置。ptp协议引擎组可以访问端口状态表、并控制本地时钟lc_1、本地时钟lc_2。[0096]当本地ptp端口处于uncalibrated状态时,处于master状态的相应ptp端口被选择,本地端口准备与选定的处于master状态的端口进行同步。在转发单元的支持下,适配的边缘时钟功能准备与上游主时钟执行延迟请求响应机制,并准备与上游主时钟同步;或者,处于uncalibrated状态的本地ptp端口不准备锁定选定的master状态端口,适配的边缘时钟功能不准备和上游主时钟执行延迟请求响应机制、不准备与上游主时钟同步。[0097]当本地ptp端口处于slave状态时,本地ptp端口与选定的处于master状态的ptp端口进行同步。在转发单元的支持下,适配的边缘时钟功能与上游主时钟执行延迟请求响应机制,并与上游主时钟同步。[0098]或者,处于slave状态的本地ptp端口不与选定的处于master状态的ptp端口进行同步。虽然适配的边缘时钟功能可能不与上游主时钟同步,但在收到announce报文后,它会根据ieee1588-2008标准的标准边缘时钟行为更新其ptp时钟和每个ptp端口数据集。适配的边缘时钟功能利用收到的上游主时钟发送的announce报文内容更新其ptp时钟和每个ptp端口数据集。适配的边缘时钟功能在面向下游从时钟的处于master状态的端口上基于与其对应的ptp时钟和每个ptp端口数据集的内容来生成announce报文,以发送至下游从时钟。[0099]可选地,如果透明时钟由采用其他可根据同步网络的动态变化自适应地更新其ptp端口的状态的协议或算法的时钟功能来实现,状态监控单元则需要采用可供选择的其他协议/算法引擎,并由采用其他协议或算法的时钟功能进行处理。可供选择的其他协议/算法引擎可以访问端口状态表,可以访问数据集表、并控制本地时钟lc_1、本地时钟lc_2。ptp协议引擎组可与可供选择的其他协议/算法引擎协同工作。[0100]转发单元203基于更新后的各个ptp端口的状态相关信息,确定相应的用于转发ptp报文的转发规则,并按照该转发规则转发ptp报文。[0101]控制器单元204具有来自端口模块201、状态监控单元202和转发单元203的状态输入。控制器单元204控制端口模块201、状态监控单元202、转发单元203的行为。控制器单元204可控制和调整本地时钟lc_1和本地时钟lc_2,并且可控制ptp端口的状态。控制器单元204可访问(读或写)状态监控单元的端口状态表和数据集表。并且,控制器单元204可连接到内部消息通道。[0102]需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何ptp时钟2的实现方式,均应包含在本发明的范围内。[0103]优选地,所述透明时钟在同步网络的状态发生变化时,透明时钟利用转发单元基于ptp端口的状态相关信息而确定的转发规则转发ptp报文的能力,与所处同步网络的其他时钟一起,重新建立所处同步网络的ptp主从层次结构。[0104]图3a至图3d分别示出了根据本发明的一个示例性的同步网络中的ptp主从层次结构的示意图。[0105]参照图3a,所示出的同步网络中的云1和云2包含至少一个ptp设备和/或非ptp设备。其中,示出了各时钟的端口状态(state)。在所示的同步网络中建立了总体ptp主从层次结构后,边缘时钟、从时钟1、从时钟2和从时钟3的时间可追溯到(即,同步到)同一个最高级主时钟(grandmasterclock);从时钟1通过其处于slave状态的ptp端口port1直接同步到边缘时钟(及其处于master状态的ptp端口port2);边缘时钟为从时钟1的上游主ptp时钟;从时钟1为边缘时钟的下游从ptp时钟。[0106]透明时钟具有面向上游主时钟的根端口(port1),其通过ptp路径1与云1连接的,透明时钟还具有面向上游主时钟的备选端口(port2),通过ptp路径2与边缘时钟连接。透明时钟具有两个面向下游从时钟的ptp端口(port3和port4),从时钟2是其下游从时钟。透明时钟能够根据同步网络的动态变化自适应地更新其ptp端口的状态。[0107]如图3b所示,如果ptp路径1中断,透明时钟检测到这一变化,并更新其ptp端口的状态,使其具有新的面向上游主时钟的根端口(port2),该端口通过ptp路径2与边缘时钟连接,原来的面向上游主时钟的根端口(port1)的状态变为“检测到故障”(faultdetected),原来的两个面向下游从时钟的ptp端口(port3和port4)状态不变。接着,透明时钟中的转发单元根据该变化和更新的ptp端口状态,确定用于转发ptp报文的转发规则,并转发ptp报文。据此,透明时钟利用转发单元基于ptp端口的状态相关信息而确定的转发规则转发ptp报文的能力,与所处同步网络的其他时钟一起,重新建立所处同步网络的ptp主从层次结构。在这种情况下,边缘时钟是透明时钟的上游主ptp时钟,从时钟2仍然是透明时钟的下游从ptp时钟。[0108]图3c和图3d说明了与图3a和图3b相同的同步网络及其变化。[0109]对比图3a和图3b,图3c和图3d中的透明时钟采用适配的边缘时钟功能,因此,图3c和图3d中透明时钟标记了适配的边缘时钟功能的ptp端口的状态。由于图3c和图3d的透明时钟采用了适配的边缘时钟功能,因此其处于slave状态的ptp端口是透明时钟的面向上游主时钟的根端口,其处于passive状态的ptp端口是透明时钟的面向上游主时钟的备选端口。其处于master状态的ptp端口为透明时钟的面向下游从时钟的端口。[0110]处于slave状态的本地端口可以锁定也可以不锁定选定的master状态端口,适配的边缘时钟可以和上游主时钟执行延迟请求响应机制来与上游主时钟同步,也可以不与上游主时钟同步。[0111]虽然适配的边缘时钟功能可以不与上游主时钟同步,但在收到上游主时钟发送的announce报文后,它会利用上游主时钟发送的announce报文内容更新其ptp时钟和每个ptp端口的数据集。适配的边缘时钟功能在面向下游从时钟的处于master状态的端口上基于与其对应的ptp时钟和每个ptp端口数据集的内容来生成announce报文,以发送至下游从时钟。如图3d所示,与适配的边缘时钟功能的端口2(port2)相连的边缘时钟为适配的边缘时钟功能的上游主时钟,适配的边缘时钟功能的端口3(port3)和端口4(port4)为处于master状态的ptp端口。[0112]ptp路径1中断时,适配的边缘时钟功能检测到这一变化,并更新其ptp端口的状态,端口1(port1)的状态变为“faulty”,端口2(port2)的状态由“passive”变为“slave”,端口3和4(port3和port4)状态不变。[0113]适配的边缘时钟功能在其master状态端口上不与下游从时钟执行延迟请求响应机制。如图3d所示,与适配的边缘时钟功能的端口3相连的从时钟2为适配的边缘时钟功能的下游从时钟。[0114]根据本发明的透明时钟通过监控所处同步网络的状态,并在同步网络的状态发生变化时自适应地更新ptp端口的状态,进而基于与该变化相适应的转发规则来转发ptp报文,而不是将所有接收到的ptp报文从每个入口ptp端口转发到所有其他出口ptp端口,从而能够减少了ptp报文处理负担,加快了建立总体ptp主从层次结构的收敛时间。[0115]图4示意出了根据本发明的一种在端到端透明时钟装置中转发ptp报文的方法流程图。[0116]在步骤s1中,透明时钟监测所处同步网络的状态。[0117]其中,所述同步网络的状态用于指示同步网络中的各个路径的通信状态,例如同步网络的路径是否发生通信中断或延迟,又例如路径的传输速率等等。优选地,所述同步网络状态还用于指示同步网络中各同步设备的工作状态,例如同步设备是否发生故障或失效等。[0118]在步骤s2中,透明时钟在同步网络的状态发生变化时自适应地更新ptp端口的状态相关信息。[0119]其中,所述状态相关信息包括各种用于指示ptp端口的状态(state)的信息。[0120]需要说明的是,标准的透明时钟的ptp端口是无状态的,根据本发明的透明时钟的ptp端口是有状态的,该ptp端口状态是ptp端口的属性之一,所述属性可包括如ptp端口在透明时钟所在的ptp主从层次结构拓扑中的角色、状况(status)、位置等。[0121]优选地,透明时钟的有效的ptp端口状态被分类为面向上游主时钟的端口和面向下游从时钟的端口。面向上游主时钟的端口可以是一个或多个,当为多个时,面向上游主时钟的根端口为工作端口,面向上游主时钟的备选端口为保护端口。[0122]其中,透明时钟确定ptp端口的状态相关信息的方式包括:[0123]1)如果透明时钟采用适配的边缘时钟功能来实现,适配的边缘时钟功能使用透明时钟的ptp端口作为其ptp端口,自适应地更新其ptp端口的状态以响应同步网络的动态变化。透明时钟的ptp端口状态源于适配的边缘时钟功能的ptp端口状态。[0124]所述透明时钟基于适配的边缘时钟功能的ptp端口状态并按照以下规则确定所述透明时钟的各个ptp端口的状态:将处于slave状态的ptp端口作为面向上游主时钟的根端口;将处于passive状态的ptp端口作为面向上游主时钟的备选端口;将处于master状态的ptp端口作为面向下游从时钟的端口。[0125]优选地,所述状态相关信息包括ptp端口的类型信息,所述透明时钟基于ptp端口是否为面向上游主时钟的端口或面向下游从时钟的端口来将ptp端口的状态分为有效(valid)和无效(invalid)两种类型。其中,透明时钟将既非面向上游主时钟的ptp端口又非面向下游从时钟的端口作为无效端口,将面向上游主时钟的端口或面向下游从时钟的ptp端口作为有效端口。[0126]优选地,所述透明时钟基于ptp端口的状态是否稳定将ptp端口的状态分为稳定(stable)和不稳定(unstable)两种类型。例如,透明时钟基于以下规则中的一项或多项来确定ptp端口的状态是否稳定:[0127]-尚处在ptp主从层次结构建立过程中的ptp端口状态可以认为是不稳定的;[0128]-如果面向下游从时钟的ptp端口接收到announce报文时,则认为该ptp端口的状态是不稳定;[0129]-如果面向上游主时钟的根端口接收到announce报文而该报文不是由当前上游主时钟发送时,则认为该ptp端口的状态不稳定;[0130]-如果面向上游主时钟的根端口在超过特定超时阈值的时间内没有收到当前上游主时钟发送的announce报文,则认为该ptp端口的状态不稳定。[0131]需要说明的是,上述规则的举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何可确定ptp端口的状态是否稳定的规则的实现方式,均应包含在本发明的范围内。[0132]2)如果透明时钟由采用其他可根据同步网络的动态变化自适应地更新其ptp端口的状态的协议或算法的时钟功能来实现,则采用其他协议或算法的时钟功能使用透明时钟的ptp端口作为其ptp端口,自适应地更新其ptp端口的状态以响应同步网络的动态变化。透明时钟的ptp端口状态源于采用其他协议或算法的时钟功能的ptp端口状态。[0133]优选地,所述状态相关信息包括ptp端口的类型信息,透明时钟对ptp端口的状态进行分类的方式与上述采用适配的边缘时钟功能来实现的分类方式相类似,此处不再赘述。[0134]在步骤s3中,透明时钟基于更新后的各个ptp端口的状态相关信息,确定相应的用于转发ptp报文的转发规则。[0135]在步骤s4中,透明时钟按照该转发规则转发ptp报文。[0136]优选地,透明时钟能够复制和/或转发ptp报文,和/或修改ptp报文的某些字段。[0137]根据本发明的第一实施例,所述方法采用适配的边缘时钟功能来实现,所述方法包括在处于master状态的ptp端口上生成announce报文,以发送至下游。[0138]优选地,为了与标准(如:ieee1588-2008标准、itu-tg.8275.1标准等)ptp时钟和与本发明的透明时钟相同类型的透明时钟兼容地互通,根据本实施例的透明时钟在将ptp报文转发到出口ptp端口时,转发单元使用由状态监控单元和控制器单元维护的适配的边缘时钟功能的属性(attributes)来修改要转发的ptp报文的某些字段,使得本实施例的透明时钟较标准端到端透明时钟的差异化功能对其他ptp时钟不可见。[0139]其中,修改要转发的ptp报文的某些字段的示例可包括:[0140]用状态监控单元和控制器单元维护的适配的边缘时钟功能的出口ptp端口的数据集portds.portidentity替换要转发到该出口ptp端口的sync报文的sourceportidentity;[0141]用状态监控单元和控制器单元维护的适配的边缘时钟功能的出口ptp端口的数据集portds.portidentity替换要转发到该出口ptp端口的follow_up报文的sourceportidentity;[0142]用状态监控单元和控制器单元维护的适配的边缘时钟功能的出口ptp端口的数据集portds.portidentity替换要转发到该出口ptp端口的delay_resp报文的sourceportidentity。[0143]根据本发明的第二实施例,透明时钟采用适配的边缘时钟功能,所述透明时钟不包括报文生成单元(或报文生成单元不工作),透明时钟在处于master状态的ptp端口上不生成announce报文发送至下游从时钟,在处于slave状态的端口收到由当前上游主时钟发送的announce报文被复制后,该announce报文既被转发到状态监控单元,又被转发到面向下游从时钟的处于master状态的端口,进而发送至下游从时钟。[0144]优选地,在本实施例中,适配的边缘时钟功能使用适配的ptp端口状态决策算法(ptpportstatedecisionalgorithm),该算法不使用适配的边缘时钟功能自身的ptp时钟特性来确定ptp端口的状态。即在ptp端口状态的决策算法中,不采纳基于适配的边缘时钟功能对应的数据集的该适配的边缘时钟功能自身的ptp时钟特性作为决策依据,采纳各ptp端口接收到的announce报文的内容及基于对所述内容的分析、计算、比较等处理后的结果作为决策依据。[0145]所述第一实施例和第二实施例的透明时钟可分别由采用其他可根据同步网络的动态变化自适应地更新其ptp端口的状态的协议或算法的时钟功能来实现,其生成或转发announce报文的方式与上述采用适配的边缘时钟功能来生成或转发announce报文的方式相类似,此处不再赘述。[0146]根据本实施例的方法采用的适配的边缘时钟功能禁用或修改一部分标准边缘时钟功能要求执行的操作,以实现所述状态监控单元和转发单元的操作。[0147]其中,透明时钟禁用或修改一部分标准边缘时钟功能要求执行的操作的示例包括:[0148]处于uncalibrated状态的本地(local)端口不准备锁定选定的master状态端口,适配的边缘时钟功能不准备和上游主时钟执行延迟请求响应机制、不准备与上游主时钟同步;[0149]处于slave态的本地端口不锁定选定的master状态端口,适配的边缘时钟功能不和上游主时钟执行延迟请求响应机制、不与上游主时钟同步;[0150]适配的边缘时钟功能在其master状态端口上不与下游从时钟执行延迟请求响应机制。[0151]优选地,基于前述对ptp端口的状态的分类,所述方法禁用或部分禁用无效端口或状态不稳定的端口将ptp报文从入口端口转发到出口端口的功能。[0152]优选地,所述透明时钟针对不同类型的ptp报文,设定相应的转发规则。例如:[0153]1)如果接收到的ptp报文为announce报文,转发规则如下:[0154]i)对于如上述第一实施例的包含报文生成单元的透明时钟,所有接收到的announce报文都被转发到状态监控单元。如果状态监控单元采用适配的边缘时钟功能,则根据标准边缘时钟的行为,利用上游主时钟发送的announce报文内容更新其ptp时钟和每个ptp端口的数据集。报文生成单元在面向下游从时钟的处于master状态的端口上基于与适配的边缘时钟功能对应的ptp时钟和每个ptp端口数据集的内容来生成announce报文,以发送至下游从时钟。状态监控单元可根据接收到的announce报文和相关的源端口信息(用于指示从哪个入ptp端口收到ptp报文)进一步判断所处同步网络状态是否发生变化和/或ptp端口状态是否不稳定或失效;[0155]如果第一实施例的透明时钟由采用其他协议或算法的时钟功能来实现,所有接收到的announce报文也都被转发到状态监控单元。[0156]ii)对于如上述第二实施例的透明时钟(即不包含报文生成单元或报文生成单元不工作),当ptp端口状态稳定和有效时,在处于master状态的ptp端口上不生成announce报文发送至下游从时钟,在处于slave状态的端口接收到由当前上游主时钟发送的announce报文被复制后,该announce报文既被转发到状态监控单元,又被转发到面向下游从时钟的处于master状态的端口,进而发送至下游从时钟。其他接收到的announce报文将仅被转发到状态监控单元。状态监控单元可根据接收到的announce报文和相关的源端口信息进一步判断所处同步网络状态是否发生变化和/或ptp端口状态是否不稳定或无效。当ptp端口状态不稳定或无效时,所有接收到的announce报文被转发到状态监控单元。[0157]如果第二实施例的透明时钟由采用其他协议或算法的时钟功能来实现,当ptp端口状态稳定和有效时,在面向上游主时钟的根端口接收到由当前上游主时钟发送的announce报文被复制后,该announce报文既被转发到状态监控单元,又被转发到面向下游从时钟的端口,进而发送至下游从时钟。其他接收到的announce报文将仅被转发到状态监控单元。当ptp端口状态不稳定或无效时,所有接收到的announce报文被转发到状态监控单元。[0158]2)如果接收到的ptp报文为sync报文,当ptp端口状态稳定和有效时,其转发规则如下:由面向上游主时钟的根端口收到的当前上游主时钟发送的sync报文,被复制(如有必要),并转发到面向下游从时钟的端口。转发单元会丢弃任何其他接收到的sync报文。或者,转发单元可以将复制的sync报文同时转发到状态监控单元。如果透明时钟支持两步时钟(two-stepclock)机制,则可以采用与sync报文相同的转发规则来转发follow_up报文。[0159]3)如果接收到的ptp报文为延迟请求(delay_req)报文,当ptp端口状态稳定和有效时,其转发规则如下:只有在面向下游从时钟的端口上接收到的延迟请求报文才被转发到面向上游主时钟的根端口。转发单元将丢弃任何其他接收到的延迟请求报文。[0160]4)如果接收到的ptp报文为延迟响应(delay_resp)报文,当ptp端口状态稳定和有效时,其转发规则如下:在面向上游主时钟的根端口收到的、当前上游主时钟响应下游从时钟发送的延迟请求报文而发送的延迟响应报文被转发到相应的面向下游从时钟的端口。这样,每个下游从时钟都不会接收到它没有请求的延迟响应报文。转发单元将丢弃任何其他接收到的延迟响应报文。[0161]优选地,所述方法在同步网络的状态发生变化时,利用转发单元基于ptp端口的状态相关信息而确定的转发规则转发ptp报文的能力,与所处同步网络的其他时钟一起,重新建立所处同步网络的ptp主从层次结构。[0162]根据本发明的方法,通过监控所处同步网络的状态,并在同步网络的状态发生变化时自适应地更新ptp端口的状态,进而基于与该变化相适应的转发规则来转发ptp报文,而不是将所有接收到的ptp报文从每个入口ptp端口转发到所有其他出口ptp端口,从而能够减少ptp报文处理负担,加快了建立总体ptp主从层次结构的收敛时间。[0163]本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个功能或步骤的电路。[0164]另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。[0165]对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1