路径选择方法、设备及存储介质与流程

文档序号:16629617发布日期:2019-01-16 06:26阅读:182来源:国知局
路径选择方法、设备及存储介质与流程

本发明涉及精确时间同步技术领域,尤其涉及路径选择方法、设备及存储介质。



背景技术:

精确时间同步通过网络测量和控制系统的精密时钟同步协议标准(ieee1588precisionclocksynchronizationprotocol,ieee1588),简称ptp(precisiontimeprotocol来实现,ptp是一种规定系统中设备如何相互同步实时时间的分布式时间同步协议。在同一个组网内,可能存在一个主时钟(grandmasterclock,gm),也可能存在多个gm,且每个gm上都连接一个或者多个边界时钟(boundaryclock,bc),对于bc来说,需要选择一个最佳主时钟路径,以确定端口的主从,进行时钟同步和时间同步。然而,bc可能连有多个带有gm的时钟路径,这对选择最佳时钟路径以进行时钟同步和时间同步就会造成一些干扰。



技术实现要素:

本发明的主要目的在于提出一种路径选择方法、设备及存储介质,旨在解决很难从多条路径中选择最佳主时钟路径的问题。

为实现上述目的,本发明提供的路径选择方法,所述方法包括步骤:

接收来自于上游设备发送的至少两个通告报文;

从所述至少两个通告报文中分别解析时间同步偏差;

选择发送时间同步偏差最小的上游设备所在的路径作为最佳主时钟路径。

此外,为实现上述目的,本发明还提出一种设备,所述设备包括处理器以及存储器;

所述处理器用于执行存储器中存储的路径选择程序,以实现上述的方法。

此外,为实现上述目的,本发明还提出一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的方法。

本发明提出的路径选择方法、设备及存储介质,通过至少两个端口接收来自于上游设备发送的至少两个通告报文,从至少两个通告报文中分别解析时间同步偏差,并选择发送时间同步偏差最小的上游设备所在的路径作为最佳主时钟路径,高效、准确地选择出性能最佳的主时钟路径和网元,提高了系统的同步质量,保证系统的性能。

附图说明

图1为本申请较佳实施例提供的路径选择方法的流程示意图;

图2为本申请较佳实施例提供的路径选择方法的子流程示意图;

图3为本申请较佳实施例提供的路径选择方法的另一流程示意图;

图4为本申请示例二提供的网络框架图;

图5为本申请另一较佳实施例提供的最佳时钟路径选择方法的流程示意图;

图6为本申请另一较佳实施例提供的最佳时钟路径选择方法的流程示意图;

图7为本申请较佳实施例提供的最佳时钟路径选择装置的模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。

本申请提供的路径选择方法及装置是基于网络测量和控制系统的精密时钟同步协议标准(ieee1588precisionclocksynchronizationprotocol,ieee1588),简称ptp(precisiontimeprotocol),运行于ieee1588中的边界时钟(boundaryclock,bc),通过从端口(slave)接收来自于上游设备发送的通告报文,经过时钟同步后,以及主端口(master)向下游设备发送通告报文。

在一个组网中,可能存在一个主时钟(grandmasterclock,gm),也可能存在多个gm,且每个gm上都连接一个或者多个bc。对于任一个bc来说,可能接收一条路径上的一个gm发送的通告报文,也可能接收多条路径上的一个gm或者多个gm发送的通告报文,通过从多条路径中选择一条最佳主时钟路径,以确认bc端口的主从,进而保障系统的同步质量和精度。

实施例一

如图1所示,本发明较佳实施例提供一种路径选择方法,所示方法包括步骤:

步骤110,接收来自于上游设备发送的至少两个通告报文。

具体的,本申请实施例的路径选择方法应用于网络内的边界时钟(boundaryclass,bc),在网络环境中,该bc可以直接与一个祖父时钟(grandmasterclock,gm)连接,并接收这一个gm下发的消息报文,bc也可以同时与多个gm连接,并接收多个gm下发的消息报文,bc与gm之间还可以连接其他bc,并接收上游bc发送的消息报文。也就是说,本实施例中的上游设备可以是bc,也可以是gm。

gm发送通告报文(announce),该announce报文中携带的时钟质量(clockclass)为最高等级。且在通告报文中增加时间同步偏差(timeoffset)字段,增加gm与基准时间源(prtc)的同步精度字段,标明gm与prtc的时间同步偏差。

在本实施例中,clockclass的最高等级为6。

进一步的,bc默认的clockclass为248。bc在未接收到gm的通告报文之前,会向下游bc发送通告报文,其中,bc发送的通告报文的时钟质量为248。

步骤120,从所述至少两个通告报文中分别解析时间同步偏差。

具体的,如图2所示,步骤120进一步包括:

步骤210,提取接收所述通告报文的时间戳;

步骤220,根据所述时间戳,并按照预设的取值规则,确定相对于主时钟的时间同步偏差。

具体的,提取slave端口接收通告报文的时间戳,并按照预设的取值规则以及采集到的时间戳,计算与master的timeoffset。

timeoffset取值规则为:n=offsetest(ns)/10(ns),其中,offsetest是计算出的与主时钟之间同步的时间偏差,此时间偏差涵盖了与其父时钟之间的偏差以及父时钟与祖父时钟的偏差,单位为ns。例如,若bc估算当前时间差为100ns,则timeoffset字段为10。

步骤130,选择发送时间同步偏差最小的上游设备所在的路径作为最佳主时钟路径。

具体的,根据计算的每条路径发送的时间同步偏差,从中选择发送时间同步偏差最小的上游设备所在的路径作为最佳主时钟路径。

当网络中存在一个gm时,所述gm为最佳主时钟,当网络中存在至少一个gm时,则所述最佳主时钟路径对应的gm为最佳主时钟。

也就是说,在本申请实施例中,有两个路径收到通告报文的bc网元1,其中一个路径为linka,另一条路径为linkb,且linka上收到的通告报文中的同步精度为200ns,linkb上收到的通告报文中的同步精度为150ns,由于linkb的同步精度小于linka的同步精度,从而选择linkb作为最佳主时钟路径,且linkb对应的通告报文的发送者为master,这样保证选择到了同步gm最好的路径。

进一步的,如图3所示,在步骤120之后,还包括以下步骤:

步骤310,与选择的最佳主时钟路径对应的主时钟进行时间同步,形成同步后的时间同步偏差;

步骤320,将包括所述同步后的时间同步偏差的通告报文发送至下游设备。

具体的,在接收通告报文之前,待发送给下游bc的通告报文的reserve字段,时间偏差为0xff,表示默认值。当接收到gm的通告报文,并确定最佳主时钟路径以及选择gm为最佳主时钟后,通告报文的reserve字段填写与最佳主时钟同步后仍然残留的时间偏差估计,其中,该时间同步偏差包括与祖父时钟同步后的时间偏差估计以及从通告报文中提取的同步精度相加之和。

将同步后的时间同步偏差写入通告报文中,进而发送至下游设备。在本实施例中,该下游设备为一个或者多个bc。

进一步的,对于下游设备来说,下发同步后的时间同步偏差报文的发送方即为上游设备,并重复上述步骤110-130,且每次更新后的时间同步偏差字段中都需要对前次时间同步偏差进行叠加。

进一步的,将接收最佳主时钟路径的输入端口作为slave端口。

为了使本申请实施例的路径选择方法更加清楚易懂,以如下示例加以说明:

示例一

步骤1,网络中的gm将其相对于与prtc的时间偏差,在发出的announce报文中填到timeoffset字段;

步骤2,至少两个slave端口接收announce报文;

步骤3,分别提取announce报文中的timeoffset;

步骤4,选择timeoffset值最小的上游设备所在的路径作为最佳主时钟路径;

步骤5,提取slave端口接收报文的时间戳,并利用预设的取值规则以及采集到的时间戳,计算与主时钟设备的timeoffset;

步骤6,将步骤1和步骤5中的timeoffset/10进行叠加,并添加到announce报文中的timeoffset字段,通过master端口发送到下游设备。

示例二

如图4所示,为示例二提供的网络框架图。在图4中,包括bcid1,bcid1接收来自于bcid2和bcid3的报文,bcid2接收来自于gmid11和gmid12的报文,bcid3接收来自于bcid5的报文,bcid5接收来自于gmid12的报文。

若网络内gm1id12发送的announce报文携带clockclass6,gm2id11发送的announce报文携带的clockclass6;gmid11与prtc的同步精度为10ns,announce报文中携带的timeoffset字段为1;gmid12与prtc的同步精度为10ns,announce报文中携带的timeoffset字段为2,则bcid1采用上述方法选择最佳主时钟路径的过程为:

步骤1,bcid2收到gmid11下发的announce报文,选择gmid11为同步路径,估计与gmid11的同步精度50ns,下发的announce中携带的timeoffset字段为gmid11下发的报文中携带的timeoffset(1)与gmid11的timeoffset(5)之和,即为6,gmclockclass字段为6。

步骤2,bcid5只有gm2可用,则选择了gmid2为同步路径,估计与gmid2的timeoffset为50ns,下发的announce中携带的timeoffset字段为gmid12下发的报文中携带的timeoffset(2)与gmid12的timeoffset(5)之和,即为7,gmclockclass字段为6。

步骤3,bcid3选择bcid5为master,即跟踪的gm为gm2,且估计与master的timeoffset为50ns,即下发announce报文中timeoffset字段为bcid5下发的报文中携带的timeoffset(7)与bcid3的timeoffset(5)之和,即为7,携带的gmclockclass字段为6。

步骤4,对于bcid1来说,存在两条路径可以接收到announce报文,且携带的gm分别为gmid11,gmid12,由于bcid2的timeoffset为6,bcid3的timeoffset为12,bcid2的timeoffset更小,则选择bcid2所在的gmid11的路径为最佳主时钟路径。

本申请实施例提供的路径选择方法,通过至少两个端口接收来自于上游设备发送的至少两个通告报文,从至少两个通告报文中分别解析时间同步偏差,并选择发送时间同步偏差最小的上游设备所在的路径作为最佳主时钟路径,进而选择出性能最佳的主时钟路径和网元。

第二实施例

如图5所示,本申请第二实施例进一步提供了一种最佳时钟路径选择方法,所述方法包括步骤:

步骤510,接收来自于上游设备发送的至少两个通告报文;

步骤520,从所述至少两个通告报文中分别解析时间同步偏差;

步骤530,分别比较至少两个通告报文所对应的至少两个端口距离祖父时钟所经过的跳数;若不相等,则进入步骤540,若相等,则进入步骤550;

步骤540,选择所经过的跳数最少的路径作为最佳主时钟路径;

步骤550,比较从所述至少两个通告报文中解析出的时间同步偏差;若不相等,则进入步骤560,若相等,则进入步骤570;

步骤560,选择发送时间同步偏差最小的上游设备所在的路径作为最佳主时钟路径;

步骤570,选择身份识别号最小的上游设备所在的路径作为最佳主时钟路径。

上述步骤510-520与第一实施例中的步骤110-120的内容相同,对于相同的内容,本实施例在此不再赘述。

本申请实施例的路径选择方法,通过先比较端口距离祖父时钟的跳数,选择跳数最小的一条路径作为主时钟路径,若相等,则进一步比较接收到不同设备发送的时间同步偏差,并从中选择数值最小的一条路径作为主时钟路径。

第三实施例

如图6所示,本申请第三实施例进一步提供了一种最佳时钟路径选择方法,所述方法包括步骤:

步骤610,接收来自于上游设备发送的至少两个通告报文;

步骤620,从所述至少两个通告报文中分别解析时间同步偏差;

步骤630,比较从所述至少两个通告报文中解析出的时间同步偏差;若不相等,则进入步骤640,若相等,则进入步骤650;

步骤640,选择发送时间同步偏差最小的上游设备所在的路径作为最佳主时钟路径;

步骤650,分别比较所述至少两个通告报文所对应的至少两个端口距离祖父时钟所经过的跳数;若不相等,则进入步骤660,若相等,则进入步骤670;

步骤660,选择所经过的跳数最少的路径作为最佳主时钟路径;

步骤670,选择身份识别号最小的上游设备所在的路径作为最佳主时钟路径。

上述步骤610-620与第一实施例中的步骤110-120的内容相同,对于相同的内容,本实施例在此不再赘述。

本申请实施例提供的路径选择方法,通过先比较接收到不同设备发送的时间同步偏差,并从中选择数值最小的一条路径作为主时钟路径,若相等,则进一步比较端口距离祖父时钟的跳数,选择跳数最小的一条路径作为主时钟路径。

第四实施例

如图7所示,本申请第四实施例提供一种路径选择装置,所述装置包括:

报文模块710,用于接收来自于上游设备发送的至少两个通告报文。

具体的,本申请实施例的路径选择装置应用于网络内的边界时钟(boundaryclass,bc),在网络环境中,该bc可以直接与一个祖父时钟(grandmasterclock,gm)连接,报文模块710接收这一个gm下发的消息报文;bc也可以同时与多个gm连接,报文模块710接收多个gm下发的消息报文;bc与gm之间还可以连接其他bc,报文模块710接收上游bc发送的消息报文。也就是说,本实施例中的上游设备可以是bc,也可以是gm。

gm发送通告报文(announce),该announce报文中携带的时钟质量(clockclass)为最高等级。且在通告报文中增加时间同步偏差(timeoffset)字段,增加gm与基准时间源(prtc)的同步精度字段,标明gm与prtc的时间同步偏差。

在本实施例中,clockclass的最高等级为6。

进一步的,bc默认的clockclass为248。报文模块710在未接收到gm的通告报文之前,会触发报文发送模块740向下游bc发送通告报文,其中,bc发送的通告报文的时钟质量为248。

解析模块720,用于从所述至少两个通告报文中分别解析时间同步偏差。

具体的,解析模块720进一步包括:

提取单元721,用于提取接收所述通告报文的时间戳;

计算单元722,用于根据所述时间戳,并按照预设的取值规则,确定相对于主时钟的时间同步偏差。

具体的,提取单元721提取slave端口接收通告报文的时间戳,并通过计算单元722按照预设的取值规则以及采集到的时间戳,计算与master的timeoffset。

timeoffset取值规则为:n=offsetest(ns)/10(ns),其中,offsetest是计算出的与主时钟之间同步的时间偏差,此时间偏差涵盖了与其父时钟之间的偏差以及父时钟与祖父时钟的偏差,单位为ns。例如,若bc估算当前时间差为100ns,则timeoffset字段为10。

选择模块730,用于选择发送时间同步偏差最小的上游设备所在的路径作为最佳主时钟路径。

具体的,根据计算单元722计算的每条路径发送的时间同步偏差,选择模块730从中选择发送时间同步偏差最小的上游设备所在的路径作为最佳主时钟路径。

当网络中存在一个gm时,选择模块730选择所述gm为最佳主时钟,当网络中存在至少一个gm时,则选择模块730现在所述最佳主时钟路径对应的gm为最佳主时钟。

也就是说,在本申请实施例中,若有两个路径收到通告报文的bc网元1,其中一个路径为linka,另一条路径为linkb,且linka上收到的通告报文中的同步精度为200ns,linkb上收到的通告报文中的同步精度为150ns,由于linkb的同步精度小于linka的同步精度,从而选择模块730选择linkb作为最佳主时钟路径,且linkb对应的通告报文的发送者为master,这样保证选择到了同步gm最好的路径。

进一步的,本申请实施例的主时钟路径选择装置还包括:

时钟同步模块740,用于与选择的最佳主时钟路径对应的主时钟进行时间同步,形成同步后的时间同步偏差;

报文发送模块750,用于将包括所述同步后的时间同步偏差的通告报文发送至下游设备。

具体的,在报文接收模块710接收通告报文之前,报文发送模块750待发送给下游bc的通告报文的reserve字段,时间偏差为0xff,表示默认值。当接收到gm的通告报文,并确定最佳主时钟路径以及选择gm为最佳主时钟后,通告报文的reserve字段填写与最佳主时钟同步后仍然残留的时间偏差估计,其中,该时间同步偏差包括与祖父时钟同步后的时间偏差估计以及从通告报文中提取的同步精度相加之和。

将同步后的时间同步偏差写入通告报文中,进而报文发送模块750将其发送至下游设备。在本实施例中,该下游设备为一个或者多个bc。

进一步的,对于下游设备来说,下发同步后的时间同步偏差报文的发送方即为上游设备,且每次更新后的时间同步偏差字段中都需要对前次时间同步偏差进行叠加。

进一步的,将接收最佳主时钟路径的输入端口作为slave端口。

比较模块760,用于分别比较至少两个通告报文所对应的至少两个端口距离祖父时钟所经过的跳数;若不相等,则触发选择模块730选择所经过的跳数最少的路径作为最佳主时钟路径;若相等,该比较模块760,还用于比较从所述至少两个通告报文中解析出的时间同步偏差,若不相等,则触发选择模块730选择发送时间同步偏差最小的上游设备所在的路径作为最佳主时钟路径,若相等,则触发选择模块730选择身份识别号最小的上游设备所在的路径作为最佳主时钟路径。

为了使本申请实施例的路径选择装置的工作过程更加清楚易懂,以如下示例加以说明:

示例一

步骤1,网络中的gm将其相对于与prtc的时间偏差,在发出的announce报文中填到timeoffset字段;

步骤2,至少两个slave端口接收announce报文;

步骤3,分别提取announce报文中的timeoffset;

步骤4,选择timeoffset值最小的上游设备所在的路径作为最佳主时钟路径;

步骤5,提取slave端口接收报文的时间戳,并利用预设的取值规则以及采集到的时间戳,计算与主时钟设备的timeoffset;

步骤6,将步骤1和步骤5中的timeoffset/10进行叠加,并添加到announce报文中的timeoffset字段,通过master端口发送到下游设备。

示例二

如图4所示,为示例二提供的网络框架图。在图4中,包括bcid1,bcid1接收来自于bcid2和bcid3的报文,bcid2接收来自于gmid11和gmid12的报文,bcid3接收来自于bcid5的报文,bcid5接收来自于gmid12的报文。

若网络内gm1id12发送的announce报文携带clockclass6,gm2id11发送的announce报文携带的clockclass6;gmid11与prtc的同步精度为10ns,announce报文中携带的timeoffset字段为1;gmid12与prtc的同步精度为10ns,announce报文中携带的timeoffset字段为2,则bcid1采用上述方法选择最佳主时钟路径的过程为:

步骤1,bcid2收到gmid11下发的announce报文,选择gmid11为同步路径,估计与gmid11的同步精度50ns,下发的announce中携带的timeoffset字段为gmid11下发的报文中携带的timeoffset(1)与gmid11的timeoffset(5)之和,即为6,gmclockclass字段为6。

步骤2,bcid5只有gm2可用,则选择了gmid2为同步路径,估计与gmid2的timeoffset为50ns,下发的announce中携带的timeoffset字段为gmid12下发的报文中携带的timeoffset(2)与gmid12的timeoffset(5)之和,即为7,gmclockclass字段为6。

步骤3,bcid3选择bcid5为master,即跟踪的gm为gm2,且估计与master的timeoffset为50ns,即下发announce报文中timeoffset字段为bcid5下发的报文中携带的timeoffset(7)与bcid3的timeoffset(5)之和,即为7,携带的gmclockclass字段为6。

步骤4,对于bcid1来说,存在两条路径可以接收到announce报文,且携带的gm分别为gmid11,gmid12,由于bcid2的timeoffset为6,bcid3的timeoffset为12,bcid2的timeoffset更小,则选择bcid2所在的gmid11的路径为最佳主时钟路径。

本申请实施例提供的路径选择装置,通过报文接收模块710通过至少两个端口接收来自于上游设备发送的至少两个通告报文,解析模块720从至少两个通告报文中分别解析时间同步偏差,选择模块730选择发送时间同步偏差最小的上游设备所在的路径作为最佳主时钟路径,进而选择出性能最佳的主时钟路径和网元。

第五实施例

本申请第五实施例还提供了一种设备,所述设备包括处理器以及存储器;

所述处理器用于执行存储器中存储的最佳主时钟路径选择程序,以实现上述实施例所提供的路径选择方法。

第六实施例

本申请第六实施例还提供了一种计算机可读存储介质。这里的计算机可读存储介质存储有一个或者多个程序。其中,计算机可读存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。当计算机可读存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例所提供的路径选择方法。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1