一种时间同步方法、装置及设备与流程

文档序号:15816996发布日期:2018-11-02 22:44阅读:153来源:国知局
一种时间同步方法、装置及设备与流程

本申请涉及通信技术领域,尤其是涉及一种时间同步方法、装置及设备。

背景技术

分布式网络设备可以由主设备和从设备组成,主设备和从设备均具有各自的cpu(centralprocessingunit,中央处理器),运行各自的软件。主设备负责分布式网络设备的维护和管理,从设备负责分布式网络设备的业务处理。

但是,主设备和从设备均使用各自时钟芯片的时间,一旦时钟芯片的时间不同,就会导致主设备的时间与从设备的时间不同步,例如,系统日志发生在时刻a,主设备记录系统日志发生在时刻a,而从设备记录系统日志发生在时刻b,显然,针对同一系统日志,主设备和从设备记录了不同的发生时刻。又例如,由于主设备和从设备的时间不同步,导致nqa(networkqualityanalyzer,网络质量分析)链路延迟和抖动测量不准确,导致错误的结果。



技术实现要素:

本申请提供一种时间同步方法,应用于分布式网络设备中的主设备,所述分布式网络设备还包括至少一个从设备,所述方法包括:

从所述主设备的时钟芯片获取所述主设备当前的系统时间;

将所述系统时间添加到时间同步报文;

将所述时间同步报文发送给从设备,以使所述从设备将本地时间更新为所述时间同步报文中携带的所述系统时间。

本申请提供一种时间同步方法,应用于分布式网络设备中的从设备,所述分布式网络设备还包括主设备,所述方法包括:

接收所述主设备发送的时间同步报文;

从所述时间同步报文中获取所述主设备的系统时间;

将所述从设备的本地时间更新为所述主设备的所述系统时间。

本申请提供一种时间同步装置,应用于分布式网络设备中的主设备,所述分布式网络设备还包括至少一个从设备,所述装置包括:

获取模块,用于从所述主设备的时钟芯片获取所述主设备当前的系统时间;

处理模块,用于将所述系统时间添加到时间同步报文;

发送模块,用于将所述时间同步报文发送给从设备,以使所述从设备将本地时间更新为所述时间同步报文中携带的所述系统时间。

本申请提供一种时间同步装置,应用于分布式网络设备中的从设备,所述分布式网络设备还包括主设备,所述装置包括:

接收模块,用于接收所述主设备发送的时间同步报文;

获取模块,用于从所述时间同步报文中获取所述主设备的系统时间;

处理模块,用于将从设备的本地时间更新为所述主设备的所述系统时间。

本申请提供一种分布式网络设备,所述分布式网络设备包括主设备和至少一个从设备,其中:

所述主设备,用于从主设备的时钟芯片获取所述主设备当前的系统时间,将所述系统时间添加到时间同步报文,将所述时间同步报文发送给从设备;

所述从设备,用于接收所述时间同步报文,从所述时间同步报文中获取主设备的系统时间,将所述从设备的本地时间更新为所述主设备的所述系统时间。

由以上技术方案可见,本申请实施例中,主设备可以获取当前的系统时间,将该系统时间添加到时间同步报文,并将该时间同步报文发送给从设备,如将该时间同步报文广播发送给每个从设备,这样,每个从设备可以将本地时间更新为主设备的系统时间,从而保证主设备和从设备的时间同步,实现分布式网络设备的时间同步,实现分布式网络设备内的高精度时间同步,如时间同步精度可以达到100us级。进一步,针对同一系统日志,可以避免主设备和从设备记录不同的发生时刻,可以避免nqa探测时,链路延迟和抖动测量不准确等问题。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1是本申请一种实施方式中的应用场景示意图;

图2是本申请一种实施方式中的时间同步方法的流程图;

图3是本申请一种实施方式中的时间同步装置的结构图;

图4是本申请一种实施方式中的主设备的硬件结构图;

图5是本申请一种实施方式中的时间同步装置的结构图;

图6是本申请一种实施方式中的从设备的硬件结构图。

具体实施方式

在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请实施例中提出了一种时间同步方法,该方法可以应用于分布式网络设备(如路由器、交换机等),该分布式网络设备可以由主设备(如一个主设备)和至少一个从设备(如一个或多个从设备)组成。例如,分布式网络设备可以为框式设备,主设备可以为框式设备中的主控板,从设备可以为框式设备中的业务板。又例如,分布式网络设备可以为堆叠设备,主设备可以为堆叠设备中的master成员设备,从设备可以为堆叠设备中的slave成员设备。当然,上述只是主设备和从设备的两个示例,对此主设备和从设备的类型不做限制。

参见图1所示,为本实施例的应用场景示意图,以一个主设备和三个从设备为例,在实际应用中,从设备的数量还可以为其它数量,对此不做限制。

其中,主设备可以负责分布式网络设备的维护和管理,主设备通常可以采用单核cpu或者双核cpu,从设备可以负责分布式网络设备的业务处理,从设备通常可以采用多核cpu,如16核cpu、或32核cpu、或64核cpu等。

参见图2所示,为本实施例中的时间同步方法的流程图,该方法可以包括:

步骤201,主设备从主设备的时钟芯片获取主设备当前的系统时间。

其中,系统时间可以是主设备的当前时间,如2018/5/1816:57:05等。

其中,主设备可以创建时间同步定时器,时间同步定时器每次超时,主设备就重新计时,并获取主设备当前的系统时间,并执行后续步骤。例如,时间同步定时器的超时时间为1秒,则每隔1秒时间同步定时器就超时,即每隔1秒就获取主设备当前的系统时间,并执行后续步骤,从而实现时间同步。

例如,当时间同步定时器在第一次超时时,则主设备可以获取当前的系统时间是2018/5/1816:57:05,并基于该系统时间2018/5/1816:57:05执行后续步骤;当时间同步定时器在第二次超时时,则主设备可以获取当前的系统时间是2018/5/1816:57:06,并基于该系统时间2018/5/1816:57:06执行后续步骤;当时间同步定时器在第三次超时时,则主设备可以获取当前的系统时间是2018/5/1816:57:07,并基于该系统时间2018/5/1816:57:07执行后续步骤,以此类推。

在一个例子中,主设备可以配置有时钟芯片,时钟芯片可以对年、月、日、时、分、秒进行计时,从而提供主设备的系统时间,对此时钟芯片的计时方式不做限制。而且,主设备的处理器可以通过时钟访问总线与时钟芯片连接,该时钟访问总线可以是访问时钟芯片的总线,对此时钟访问总线的类型不做限制,如可以为iic(inter-integratedcircuit,集成电路总线)。基于此,主设备的处理器可以通过该时钟访问总线,从该时钟芯片获取主设备当前的系统时间。

步骤202,主设备将该系统时间添加到时间同步报文。

在一个例子中,该时间同步报文可以包括但不限于如下字段:链路头字段、时间同步标志字段、系统时间字段、校验和字段。当然,上述只是时间同步报文的一个示例,对此不做限制。例如,该时间同步报文可以包括链路头字段和系统时间字段,或者,该时间同步报文可以包括系统时间字段,只要时间同步报文包括系统时间字段,并通过系统时间字段携带主设备的系统时间即可。

其中,链路头字段用于携带源信息和目的信息,源信息可以为源ip地址、源mac(mediaaccesscontrol,媒体访问控制)地址、源端口中的一个或者多个,目的信息可以为目的ip地址、目的mac地址、目的端口中的一个或者多个,当然,链路头字段还可以携带其它内容,如链路类型等,对此不做限制。

其中,时间同步标志字段可以为预设标识(如00、01等),该预设标识用于表示当前报文是时间同步报文,即可以利用该时间同步报文进行时间同步。

其中,系统时间字段用于携带主设备的系统时间,如2018/5/1816:57:05等。

其中,检验和字段用于携带检验数据,对此检验数据的确定方式不做限制,从设备可以利用检验数据判断时间同步报文的内容是否被篡改,保证可靠性。

在一个例子中,主设备将该系统时间添加到时间同步报文,可以包括但不限于:主设备确定主设备与从设备之间的链路类型,并构造与该链路类型对应的时间同步报文;然后,主设备可以将该系统时间添加到该时间同步报文中。

例如,当主设备与从设备之间的链路类型是以太通道类型时,则构造与以太通道类型对应的时间同步报文,该时间同步报文的格式是以太报文格式,也就是说,时间同步报文中包括以太链路头字段和系统时间字段,该以太链路头字段可以携带源mac地址和目的mac地址,该系统时间字段用于携带主设备的系统时间。当然,该时间同步报文还可以包括其它字段,对此不做限制。

又例如,当主设备与从设备之间的链路类型是hg(higig,串行总线互联)通道类型时,则构造与hg通道类型对应的时间同步报文,该时间同步报文的格式是hg报文格式,也就是说,时间同步报文中包括hg链路头字段和系统时间字段。该hg链路头字段可以携带通道标识、源mac地址和目的mac地址,并可以携带其它控制信息,对此不做限制。该系统时间字段用于携带主设备的系统时间。当然,该时间同步报文还可以包括其它字段,对此不做限制。

当然,上述只是给出了时间同步报文的两个示例,该时间同步报文的链路头字段可以与链路类型有关,对此时间同步报文的链路头字段不做限制。

步骤203,主设备将该时间同步报文发送给从设备。

在一个例子中,当分布式网络设备包括一个从设备时,则时间同步报文的链路头字段的目的mac地址可以为该从设备的mac地址,且主设备可以采用单播方式将该时间同步报文发送给该从设备。当分布式网络设备包括多个从设备时,则时间同步报文的链路头字段的目的mac地址可以为广播mac地址,且主设备可以采用广播方式将该时间同步报文发送给所有从设备。

在一个例子中,主设备将该时间同步报文发送给从设备,可以包括但不限于:主设备将时间同步报文添加到主设备的发送队列中,并优先从发送队列中选择该时间同步报文;然后,可以将选择的时间同步报文发送给从设备。

例如,主设备可以包括发送队列,所有需要发送的报文均存储到该发送队列中,而主设备将系统时间添加到时间同步报文后,可以为该时间同步报文设置最高的优先级,并将该时间同步报文存储到该发送队列中。进一步的,主设备在从发送队列中选择报文时,由于时间同步报文具有最高优先级,因此,主设备优先从发送队列中选择时间同步报文;然后,主设备可以将该时间同步报文发送给从设备。显然,在上述方式中,由于主设备优先发送该时间同步报文,因此,在物理链路发生拥塞的情况下,可以及时发送该时间同步报文。

在一个例子中,可以在主设备部署主高速同步装置,由主高速同步装置实现步骤201-步骤203,主高速同步装置可以由软件实现,也可以由硬件实现,对此不做限制。当主高速同步装置由硬件实现时,则该主高速同步装置可以集成在主设备的逻辑芯片中,也可以集成在主设备的cpu中,对此不做限制。

在一个例子中,主设备在获取主设备当前的系统时间前,还可以关闭主设备的中断,在将时间同步报文发送给从设备后,还可以打开主设备的中断。

具体的,主设备可以先关闭主设备的中断,然后,主设备获取主设备当前的系统时间,并将该系统时间添加到时间同步报文,并将该时间同步报文发送给从设备,然后,主设备可以打开主设备的中断,至此完成时间同步过程。

其中,主设备负责分布式网络设备的维护和管理,主设备需要处理的中断很多,一旦主设备接收到中断,就需要先处理中断,从而导致无法及时处理时间同步报文。例如,若主设备先获取系统时间为2018/5/1816:57:05,然后,主设备接收到某中断,并处理该中断,在中断处理完成后,主设备的系统时间已经为2018/5/1816:57:06,虽然系统时间发生变化,但是主设备不会重新获取系统时间,而是将之前的系统时间2018/5/1816:57:05添加到时间同步报文,并将时间同步报文发送给从设备,显然,时间同步报文携带的是错误的系统时间。

针对上述发现,本申请实施例中,主设备在获取当前的系统时间之前,可以先关闭主设备的中断,这样,主设备将不再接收到中断,也就是说,主设备在获取系统时间为2018/5/1816:57:05后,主设备不会接收到中断,也不需要处理中断,而是直接将系统时间2018/5/1816:57:05添加到时间同步报文,并将时间同步报文发送给从设备,显然,时间同步报文中携带的是正确的系统时间。

步骤204,从设备接收主设备发送的时间同步报文。

步骤205,从设备从该时间同步报文中获取主设备的系统时间。

其中,时间同步报文可以携带链路头字段、时间同步标志字段、系统时间字段、校验和字段。从设备可以从该时间同步报文的链路头字段中获取目的信息(如目的mac地址),若目的mac地址为本设备的mac地址或广播mac地址,则可以处理该时间同步报文,否则,从设备不再处理该时间同步报文。

从设备可以从该时间同步报文的时间同步标志字段中获取预设标识,若该预设标识表示当前报文是时间同步报文,则从设备可以利用该时间同步报文进行时间同步,也就是说,可以执行步骤205和步骤206,完成时间同步。

从设备可以从该时间同步报文的系统时间字段中获取主设备的系统时间,如2018/5/1816:57:05等,然后,从设备可以利用该系统时间执行步骤206。

从设备可以从该时间同步报文的检验和字段中获取检验数据,并利用该检验数据判断时间同步报文的内容是否被篡改,对此判断方式不做限制。若时间同步报文的内容被篡改,则说明时间同步报文的内容不可信,不再利用时间同步报文中的系统时间执行步骤206。若时间同步报文的内容没有被篡改,则说明时间同步报文的内容可信,可以利用时间同步报文中的系统时间执行步骤206。

在一个例子中,从设备从该时间同步报文中获取主设备的系统时间,可以包括但不限于:从设备在接收到该时间同步报文之后,可以将该时间同步报文添加到从设备的接收队列中;然后,从设备可以优先从该接收队列中选择该时间同步报文,并从选择的该时间同步报文中获取主设备的系统时间。

例如,从设备可以包括接收队列,从设备接收到的所有报文均存储到该接收队列中,而从设备在接收到时间同步报文后,可以为该时间同步报文设置最高的优先级,并将该时间同步报文存储到该接收队列中。进一步的,从设备在从接收队列中选择报文时,由于时间同步报文具有最高优先级,因此,从设备优先从该接收队列中选择时间同步报文,并从该时间同步报文中获取主设备的系统时间。显然,在上述方式中,从设备可以及时处理时间同步报文。

步骤206,从设备可以将从设备的本地时间更新为主设备的系统时间。

例如,从设备从时间同步报文中获取主设备的系统时间2018/5/1816:57:05后,可以将从设备的本地时间(即从设备的当前时间)更新为2018/5/1816:57:05。

在一个例子中,可以在从设备部署从高速同步装置,由从高速同步装置实现步骤204-步骤206,从高速同步装置可以由软件实现,也可以由硬件实现,对此不做限制。当从高速同步装置由硬件实现时,则该从高速同步装置可以集成在从设备的逻辑芯片中,也可以集成在从设备的cpu中,对此不做限制。

在一个例子中,从设备可以包括一个特定cpu核,从设备可以通过特定cpu核实现时间同步方法;其中,该特定cpu核是只实现时间同步方法的cpu核。

具体的,从设备可以单独使用一个cpu核,这个cpu核只运行一个任务,该任务用于循环处理时间同步报文,这个cpu核不再执行其它任务。也就是说,这个cpu核只实现如下功能:接收主设备发送的时间同步报文,从时间同步报文中获取主设备的系统时间,将从设备的本地时间更新为主设备的系统时间。

其中,通过在从设备上单独启用一个cpu核来及时处理时间同步报文,从而减少了从设备内的任务调度、中断处理和业务报文等带来的延迟和抖动。

由以上技术方案可见,本申请实施例中,主设备可以获取当前的系统时间,将该系统时间添加到时间同步报文,并将该时间同步报文发送给从设备,如将该时间同步报文广播发送给每个从设备,这样,每个从设备可以将本地时间更新为主设备的系统时间,从而保证主设备和从设备的时间同步,实现分布式网络设备的时间同步,可以减少主设备与从设备之间的链路延迟,并实现分布式网络设备内的高精度时间同步,如时间同步精度可以达到100us级。

进一步的,针对同一系统日志,由于主设备的时间与从设备的时间能够保持同步,因此,可以避免主设备和从设备记录不同的发生时刻。此外,针对nqa探测过程,由于主设备的时间与从设备的时间能够保持同步,因此,可以避免nqa探测时,链路延迟和抖动测量不准确等问题,避免导致错误的结果。

基于与上述方法同样的申请构思,本申请实施例中还提出一种时间同步装置,应用于分布式网络设备中的主设备,所述分布式网络设备还包括至少一个从设备,如图3所示,为所述装置的结构图,所述装置具体包括:

获取模块31,用于从主设备的时钟芯片获取所述主设备当前的系统时间;

处理模块32,用于将所述系统时间添加到时间同步报文;

发送模块33,用于将所述时间同步报文发送给从设备,以使所述从设备将本地时间更新为所述时间同步报文中携带的所述系统时间。

在所述获取模块31从所述主设备的时钟芯片获取所述主设备当前的系统时间之前,所述处理模块32,还用于关闭所述主设备的中断;

在所述发送模块33将所述时间同步报文发送给从设备之后,所述处理模块32,还用于打开所述主设备的中断。

本申请实施例提供的主设备,从硬件层面而言,硬件架构示意图具体可以参见图4所示,包括:机器可读存储介质和处理器,其中:

机器可读存储介质:存储指令代码。

处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的时间同步操作。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

基于与上述方法同样的申请构思,本申请实施例中还提出一种时间同步装置,应用于分布式网络设备中的从设备,所述分布式网络设备还包括主设备,如图5所示,为所述装置的结构图,所述装置具体包括:

接收模块51,用于接收所述主设备发送的时间同步报文;

获取模块52,用于从所述时间同步报文中获取所述主设备的系统时间;

处理模块53,用于将从设备的本地时间更新为所述主设备的所述系统时间。

在一个例子中,所述从设备可以包括特定cpu核,所述从设备通过所述特定cpu核实现所述时间同步装置;其中,所述特定cpu核是只实现时间同步装置的cpu核。也就是说,上述接收模块51、获取模块52和处理模块53可以部署在特定cpu核,并由特定cpu核实现这些模块的功能。

本申请实施例提供的从设备,从硬件层面而言,硬件架构示意图具体可以参见图6所示,包括:机器可读存储介质和处理器,其中:

机器可读存储介质:存储指令代码。

处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的时间同步操作。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

基于与上述方法同样的申请构思,本申请实施例中还提出一种分布式网络设备,所述分布式网络设备包括主设备和至少一个从设备,其中:

所述主设备,用于从主设备的时钟芯片获取所述主设备当前的系统时间,将所述系统时间添加到时间同步报文,将所述时间同步报文发送给从设备;

所述从设备,用于接收所述时间同步报文,从所述时间同步报文中获取主设备的系统时间,将所述从设备的本地时间更新为所述主设备的所述系统时间。

若所述分布式网络设备为框式设备,则所述主设备包括所述框式设备中的主控板,所述从设备包括所述框式设备中的业务板;

若所述分布式网络设备为堆叠设备,则所述主设备包括所述堆叠设备中的master成员设备,所述从设备包括所述堆叠设备中的slave成员设备。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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