使用多个网络路径的时钟同步的制作方法

文档序号:7791492阅读:114来源:国知局
使用多个网络路径的时钟同步的制作方法
【专利摘要】在经由多个不同通信路径通信地耦合到主时钟的网络设备中,时钟同步模块被配置成基于经由网络设备和主时钟之间的多个不同通信路径从主时钟接收到的信号来确定对应于多个不同通信路径的多个路径时间数据集。时钟模块被配置成根据多个路径时间数据集确定时刻。
【专利说明】 使用多个网络路径的时钟同步
[0001]相关申请的交叉引用
[0002]本公开要求保护以下申请的权益:
[0003]2012年2月9日提交的题为“Time Synchronizat1n Diversity”的美国临时专利申请 N0.61/597,092 ;
[0004]2012 年 5 月 9 日提交的题为“Slave Diversity:Using Multiple Paths toImprove the Accuracy of Clock Synchronizat1n Protocols” 的美国临时专利申请N0.61/644,722 ;
[0005]2012 年 5 月 15 日提交的题为 “Slave Diversity:Using Multiple Paths toImprove the Accuracy of Clock Synchronizat1n Protocols” 的美国临时专利申请N0.61/647, 123 ;
[0006]2012年8月31日提交的题为“Mult1-Path Time Protocols”的美国临时专利申请 N0.61/695,367 ;
[0007]2012 年 8 月 31 日提交的题为“Mult1-Masters Precis1n Time Protocols”的美国临时专利申请N0.61/695,371 ;以及
[0008]2012年9月27日提交的题为“Mult1-Path Time Protocols”的美国临时专利申请 N0.61/706,526。
[0009]这里通过参考并入所有上述申请的全部公开内容。

【技术领域】
[0010]本公开总地涉及保持时钟的设备,并且更具体地涉及用于跨网络同步时钟的技术。

【背景技术】
[0011]这里通过的【背景技术】描述用于一般性地呈现本公开上下文的目的。在本【背景技术】部分描述的程度上,当前所称的发明人的工作以及在提交时可能不会被另外称为现有技术的本描述的方面,既不明确也不暗示承认为本公开的现有技术。
[0012]在基于分组的网络中通常使用时钟同步协议来同步在不同网络设备处保持的时钟。在这样的时钟同步协议中,保持主时钟的第一网络设备向保持从时钟的第二网络设备发送包括主时钟时间的协议消息。第二网络设备利用主时钟时间和预估网络时延来调整从时钟,以便将从时钟与主时钟同步。


【发明内容】

[0013]在一个实施例中,一种网络设备包括:一个或多个端口,用以将网络设备经由多个不同通信路径通信地耦合到主时钟;以及时钟同步模块,被配置成基于经由网络设备和主时钟之间的多个不同通信路径从主时钟接收到的信号,确定对应于多个不同通信路径的多个路径时间数据集。网络设备还包括:时钟模块,其被配置成根据多个路径时间数据集确定时刻。
[0014]在各种其它实施例中,网络设备包括以下特征的任意组合。
[0015]时钟模块被配置成基于路径时间数据集中的至少两个路径时间数据集的数学组合确定时刻。
[0016]时钟模块被配置成基于路径时间数据集中的至少一些路径时间数据集的平均值确定时刻。
[0017]网络设备进一步包括被配置成确定路径时间数据集的多个相应噪声测量的模块;其中时钟模块配置成基于多个相应噪声测量从时刻的确定中消除一个或多个路径时间数据集。
[0018]时钟模块被配置成:确定路径特性;基于路径特性确定是否根据第一技术确定时刻;当确定要根据第一技术确定时刻时,基于路径时间数据集中的至少两个的数学组合确定时刻;基于路径特性确定是否根据第二技术确定时刻;当确定要根据第二技术确定时刻时,基于根据路径特性选择路径时间数据集中的一个来确定时刻。
[0019]网络设备进一步包括:路径延迟可变性确定模块,其被配置成针对多个不同通信路径中的通信路径确定多个相应的路径延迟可变性测量;其中时钟模块被配置成基于多个相应的路径延迟可变性测量来确定时刻。
[0020]时钟模块被配置成基于所述路径时间数据集的加权组合来确定所述时刻,其中基于对应的路径延迟可变性测量对每个路径时间数据集进行加权。
[0021]时钟模块被配置成基于使用所述多个相应的路径延迟可变性测量选择所述路径时间数据集中的一个来确定所述时刻。
[0022]路径延迟可变性确定模块包括:路径延迟计算器,配置成确定对应于所述多个不同通信路径的多个路径延迟;以及平均路径延迟计算器,配置成计算对应于所述多个不同通信路径的多个平均路径延迟;其中所述路径延迟可变性确定模块配置成基于(i)所述多个路径延迟以及(ii)所述多个平均路径延迟,计算所述多个相应的路径延迟可变性测量。
[0023]多个路径时间数据集包括对应于所述多个不同通信路径的多个第一时钟偏移;时钟同步模块包括:第一偏移计算器,配置成基于经由所述多个不同通信路径从所述主时钟接收到的所述信号,计算所述多个第一时钟偏移;以及时钟模块包括:第二偏移计算器,配置成使用所述第一时钟偏移确定第二时钟偏移,以及时钟更新器,配置成基于(i)当前时刻以及(ii)所述第二时钟偏移,确定所述时刻。
[0024]在另一实施例中,一种方法,包括:在网络设备的一个或多个端口处接收来自主时钟的信号,所述信号是经由多个不同通信路径从所述主时钟接收到的;在所述网络设备处,基于经由所述多个不同通信路径从所述主时钟接收到的所述信号,确定对应于所述多个不同通信路径的多个路径时间数据集;以及在所述网络设备处,根据所述多个路径时间数据集确定时刻。
[0025]在各种其它实施例中,该方法包括以下特征的任意组合。
[0026]确定所述时刻包括确定所述路径时间数据集中的至少两个的数学组合。
[0027]确定所述时刻包括确定所述路径时间数据集中的至少一些的平均值。
[0028]该方法进一步包括:确定所述路径时间数据集的多个相应噪声测量;以及基于所述多个相应噪声测量,从所述时刻的确定中消除一个或多个路径时间数据集。
[0029]该方法进一步包括:确定路径特性;基于所述路径特性,确定是否要根据第一技术确定所述时刻;当确定要根据所述第一技术确定所述时刻时,基于所述路径时间数据集中的至少两个的数学组合来确定所述时刻;基于所述路径特性,确定是否要根据第二技术确定所述时刻;当确定要根据所述第二技术确定所述时刻时,基于根据所述路径特性选择所述路径时间数据集中的一个来确定所述时刻。
[0030]该方法进一步包括:针对所述多个不同通信路径,确定多个相应的路径延迟可变性测量;以及其中基于所述多个相应的路径延迟可变性测量确定所述时刻。
[0031]基于所述路径时间数据集的加权组合确定所述时刻,其中基于对应的路径延迟可变性测量对每个路径时间数据集进行加权。
[0032]基于使用所述多个相应的路径延迟可变性测量选择所述路径时间数据集中的一个来确定所述时刻。
[0033]针对所述多个不同通信路径确定所述多个相应的路径延迟可变性测量包括:确定对应于所述多个不同通信路径的多个路径延迟;计算对应于所述多个不同通信路径的多个平均路径延迟;以及基于(i)所述多个路径延迟以及(ii)所述多个平均路径延迟,计算所述多个相应的路径延迟可变性测量。
[0034]确定所述多个路径时间数据集包括:基于经由所述多个不同通信路径从所述主时钟接收到的所述信号,计算多个第一时钟偏移;确定所述时刻包括:使用所述第一时钟偏移确定第二时钟偏移,以及基于(i)当前时刻以及(ii)所述第二时钟偏移,确定所述时刻。
[0035]在另一实施例中,一种网络设备,包括:耦合到网络的一个或多个端口 ;以及路径确定模块,其被配置成确定经由网络中的多个通信路径中的哪一个通信路径接收到了来自主时钟的分组,其中经由所述一个或多个端口接收所述分组,并且其中所述分组包括来自所述主时钟的时间戳。该网络设备还包括应用层模块,其被配置成使用(i)所述分组中的时间戳和Qi)所述通信路径的确定来确定时间信息。
[0036]在各种其它实施例中,网络设备包括以下特征的任意组合。
[0037]路径确定模块被配置成使用在所述分组中包括的路径标识符来确定接收所述分组所经由的通信路径。
[0038]路径确定模块被配置成基于所述分组中的一个或多个因特网协议(IP)地址来确定发送所述分组所经由的通信路径。
[0039]路径确定模块被配置成基于(i)所述带有时间戳的分组中的源IP地址以及(ii)所述带有时间戳的分组中的目的地IP地址,来确定发送所述分组所经由的通信路径。
[0040]路径确定模块被配置成基于所述分组的报头中的信息来确定发送所述分组所经由的通信路径。
[0041 ] 路径确定模块包括在所述应用层模块中。
[0042]应用层模块被配置成使得多个请求经由所述网络发送到所述主时钟,其中所述多个请求被配置成促使所述主时钟发送多个带有时间戳的分组,并且其中每个请求指示所述主时钟将要发送的所述多个分组中对应带有时间戳的分组所要经由的不同通信路径。
[0043]在另一实施例中,一种方法,包括:经由网络设备的端口接收通过主时钟经由网络发送的分组,其中所述分组包括来自所述主时钟的时间戳;确定经由所述网络中的多个通信路径中的哪个通信路径接收到了所述分组;以及在所述网络设备的应用层模块处,使用(i)所述分组中的时间戳以及(ii)所述通信路径的确定来确定时间信息。
[0044]在各种其它实施例中,该方法包括以下特征的任意组合。
[0045]确定发送所述分组所经由的通信路径包括分析所述分组中包括的路径标识符。
[0046]确定发送所述分组所经由的通信路径包括:基于所述带有时间戳的分组中的一个或多个因特网协议(IP)地址确定所述通信路径。
[0047]确定发送所述分组所经由的通信路径包括:基于(i)所述带有时间戳的分组中的源IP地址以及(ii)所述带有时间戳的分组中的目的地IP地址,确定所述通信路径。
[0048]确定发送所述分组所经由的通信路径包括:基于所述分组的报头中的信息确定所述通信路径。
[0049]该方法进一步包括:利用所述应用层模块使得多个请求经由所述网络发送到所述主时钟,其中所述多个请求被配置成促使所述主时钟发送所述多个分组,并且其中每个请求指示所述主时钟将要发送的所述多个分组中的对应分组所要经由的不同通信路径。
[0050]在另一实施例中,一种网络设备,包括:耦合到网络的一个或多个端口 ;以及时钟模块,被配置成:将多个地址与主时钟相关联,以及使得发送多个带有时间戳的分组,所述多个带有时间戳的分组包括所述多个地址,以使得经由所述网络中的多个路径发送所述多个分组。
[0051]在各种其它实施例中,网络设备包括以下特征的任意组合。
[0052]时钟模块配置成:将多个IP地址与所述主时钟相关联,以及在所述多个带有时间戳的分组中包括所述多个IP地址。
[0053]时钟模块是应用层模块。
[0054]时钟模块被配置成至少在多层协议栈中的第四层操作。
[0055]时钟模块被配置成在所述多个带有时间戳的分组中包括对应于单一从时钟的所述多个从IP地址。
[0056]在另一实施例中,一种方法,包括:在实现主时钟的第一网络设备处,将多个地址与所述主时钟相关联;以及将多个带有时间戳的分组发送到第二网络设备,所述多个带有时间戳的分组包括所述多个地址,以使得经由网络中的不同路径发送所述多个分组。
[0057]在各种其它实施例中,该方法包括以下特征的任意组合。
[0058]将多个地址与所述主时钟相关联包括:将多个IP地址与所述主时钟相关联;以及所述方法进一步包括:在所述多个时间戳分组中包括所述多个IP地址。
[0059]通过通信设备中的应用层模块执行将所述多个地址与所述主时钟相关联。
[0060]通过至少在多层协议栈中的第四层操作的模块执行将所述多个地址与所述主时钟相关联。
[0061]该方法进一步包括:在所述多个带有时间戳的分组中包括对应于单个从时钟的多个从IP地址。
[0062]在另一实施例中,一种网络设备,包括:耦合到网络的一个或多个端口 ;以及时钟模块,被配置成:将多个地址与从时钟相关联,以及针对将经由所述网络中的不同路径从主时钟接收的多个带有时间戳的分组发送多个请求,所述多个请求包括所述从时钟的多个地址。
[0063]在各种其它实施例中,网络设备包括以下特征的任意组合。
[0064]时钟模块被配置成:将多个IP地址与所述从时钟相关联,以及在所述多个带有时间戳的分组中包括所述多个IP地址。
[0065]时钟模块是应用层模块。
[0066]时钟模块被配置成在至少多层协议栈中的第四层处操作。
[0067]时钟模块被配置成在所述多个请求中包括对应于单个主时钟的多个主IP地址。
[0068]在另一实施例中,一种方法,包括:在实现从时钟的第一网络设备处将多个地址与所述从时钟相关联;以及将多个请求发送到第二网络设备,所述多个请求包括所述多个地址,以使得经由网络中的不同路径从所述第二网络设备接收所述多个带有时间戳的分组。
[0069]在各种其它实施例中,该方法包括以下特征的任意组合。
[0070]将多个地址与所述从时钟相关联包括:将多个IP地址与所述从时钟相关联;以及所述方法进一步包括:在所述多个请求中包括所述多个IP地址。
[0071]在应用层处执行将所述多个地址与所述从时钟相关联。
[0072]通过在至少多层协议栈中的第四层处操作的模块执行将所述多个地址与所述从时钟相关联。
[0073]该方法进一步包括:在所述多个请求中包括对应于单个主时钟的多个主IP地址。

【专利附图】

【附图说明】
[0074]图1是根据实施例的其中基于主时钟并且基于由主时钟经由网络中的多个路径发送的信号保持从时钟的示例性系统的框图。
[0075]图2A和图2B是根据实施例的用于使用经由网络中的多个路径从主时钟接收到的多个时钟信号保持从时钟的示例性方法的流程图。
[0076]图3是图示根据实施例的经由从时钟和主时钟之间的多个路径交换的信号的时序图。
[0077]图4是根据实施例的用于使用经由网络中的多个路径从主时钟接收到的多个时钟信号保持从时钟的示例性方法的流程图。
[0078]图5是根据实施例的用于使用从主时钟接收到的分组保持从时钟的示例性方法的流程图。
[0079]图6是根据实施例的便于跨网络确定时钟值的示例性方法的流程图。
[0080]图7是根据实施例的便于跨网络确定时钟值的另一示例性方法的流程图。

【具体实施方式】
[0081]图1是根据实施例的示例性系统100的框图,该系统100具有第一网络设备104,第一网络设备104经由通信网络112通信地耦合到第二网络设备108。第一网络设备104实现主时钟,并且第一网络设备104有时在这里被称为主时钟设备104。第二网络设备108实现从时钟,且第二网络设备108有时在这里被称为从时钟设备108。
[0082]主时钟设备104包括被配置成保持主时钟的时钟模块120。在一个实施例中,主时钟是时刻(time-of-day)时钟。在另一实施例中,主时钟是未直接链接到时刻的计数器。在一个实施例中,时钟模块120包括或利用保持主时钟的计数器电路。在一个实施例中,时钟模块120是在多层通信协议栈中的应用层处操作的应用层模块。在一个实施例中,多层通信协议栈(例如传输控制协议/因特网协议(TCT/IP)协议族)包括链路层、因特网层、传输层和应用层,其中在协议栈中应用层在传输层、因特网层和链路层之上。在另一实施例中,多层通信协议栈(例如对应于开放系统互连(OSI)模型)包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,其中在协议栈中应用层在表示层、会话层、传输层、网络层、数据链路层和物理层之上。在其它实施例中,时钟模块120至少在多层通信协议栈中的第四层处的另一合适层处操作。
[0083]时钟模块120被配置成使得多个带有时间戳的分组经由通过网络112的相应不同通信路径从主时钟设备104发送到从时钟设备108。在实施例中,利用时钟模块120保持的主时钟的一个或多个值为多个带有时间戳的分组加上时间戳。
[0084]网络112包括私有网络、公共网络、骨干网络、提供商网络、因特网等中的一个或多个。在实施例中,网络112包括多个网络交换机和/或路由器124(为简便起见以下仅称为交换机),并且第一路径128对应于经由交换机124c从交换机124a到交换机124b的链路。第二路径132对应于经由交换机124f从交换机124d到交换机124e的链路。
[0085]时钟模块120被配置成使得第一带有时间戳的分组经由路径128从主时钟设备124发送到从时钟设备108,并且使得第二带有时间戳的分组经由路径132从主时钟设备104发送到从时钟设备108。在一个实施例中,主时钟设备104包括多个端口 140,并且时钟模块120被配置成使得第一带有时间戳的分组经由端口 140a发送并使得第二带有时间戳的分组经由端口 140b发送。在其它实施例和/或场景中,带有时间戳的分组中的至少一些中的每一个经由同一端口 140发送。尽管在图1中图示了两个端口 140,但在其它实施例中,主时钟设备104包括大于两个的合适数目的端口 140。在一个实施例中,主时钟设备104包括仅单个端口 140,并且路径分集整个地由网络112提供。例如,在一些实施例中,在本地管理网络112中,当发送去往同一端点设备但包括不同报头信息(例如源地址、目的地地址、层4端口等)的分组时交换机/路由器可以被配置成利用不同路径。作为另一示例,在一些实施例中,公共和/或提供商网络,网络112中的至少一些交换机/路由器应用负载均衡技术,其中去往同一端点设备的分组基于分组中的不同报头信息(例如源地址、目的地地址、层4端口等)被导向沿着不同的路径。因而,为了使网络112经由不同路径向从时钟设备108发送分组,在一些实施例中,主时钟设备104改变分组中的报头信息(例如源地址、目的地地址、层4端口等)。
[0086]从时钟设备108的时钟同步模块150被配置成确定对应于通过主时钟设备104发送的多个时间戳分组并且对应于通过网络112的多个不同通信路径的不同时钟结果。例如,时钟同步模块150被配置成确定与经由第一路径128发送的第一带有时间戳的分组所对应的第一时钟结果和与经由第二路径132发送的第二带有时间戳的分组所对应的第二时钟结果。在一个实施例中,从时钟设备108包括多个端口 154,经由端口 154a接收第一带有时间戳的分组并且经由端口 154b接收第二带有时间戳的分组。在其它实施例和/或场景中,经由同一端口 154接收带有时间戳的分组中的至少一些带有时间戳的分组中的每一个。尽管在图1中图示了两个端口 154,但在其它实施例中,从时钟设备108包括大于两个的合适数目的端口 154。在一个实施例中,从时钟设备108包括仅单个端口 154。
[0087]时钟同步模块150被配置成基于经由相应路径发送的相应带有时间戳的分组中的相应时间戳确定每个时钟结果。在一个实施例中,由时钟同步模块产生的每个时钟结果包括在主时钟设备104处保持的主时钟和在从时钟设备108处保持的从时钟之间的偏移。例如,在一个实施例中,时钟同步模块150配置成基于(i)经由相应路径发送的相应带有时间戳的分组中的相应时间戳和(ii)从时钟设备108接收到相应带有时间戳的分组所处的相应时间处的从时钟值来确定每个偏移。作为图示示例,在一个实施例中,时钟同步模块150基于⑴经由第一路径128发送的第一带有时间戳的分组中的第一时间戳和(ii)从时钟设备108接收到第一带有时间戳的分组所处的第一时间处的从时钟的第一值来确定第一偏移;并且时钟同步模块150基于(i)经由第二路径132发送的第二带有时间戳的分组中的第二时间戳和(ii)从时钟设备108接收到第二带有时间戳分组所处的第二时间处的从时钟的第二值来确定第二偏移。
[0088]在另一实施例中,由时钟同步模块150产生的每个时钟结果包括与在主时钟设备104处保持的主时钟对应的时钟值(例如时刻值)。例如,在一个实施例中,时钟同步模块150被配置成基于经由相应路径发送的相应带有时间戳的分组中的相应时间戳来确定每个时钟值。作为图示示例,在一个实施例中,时钟同步模块150基于经由第一路径128发送的第一带有时间戳的分组中的第一时间戳确定第一时钟值,并基于经由第二路径132发送的第二带有时间戳分组中的第二时间戳确定第二时钟值。在一个实施例中,时钟同步模块150是在多层通信协议栈中的应用层处操作的应用层模块。在其它实施例中,时钟同步模块150在至少多层通信协议栈中的第四层处的另一合适层处操作。在其它实施例中,时钟同步模块150处于应用层以下的另一合适层处并且/或者在多层通信协议栈中的第四层以下的合适层处操作。
[0089]如下面将更详细描述的那样,时钟同步模块150被配置成针对每个路径保持相应的路径时间数据集,在一些实施例中,该路径时间数据集包括相应的路径相关时钟或用于产生相应时钟结果的信息诸如相应路径延迟测量、相应时钟偏移等。在一些实施例中,时钟同步模块150使用路径时间数据集来产生时钟结果。在其它实施例中,时钟结果是路径时间数据集或包括在路径时间数据集中。在其中时钟同步模块150被配置成保持相应的路径相关时钟的一些实施例中,时钟同步模块150包括或利用保持不同路径相关时钟的相应计数器电路。
[0090]在一些实施例中,从时钟设备108中的时钟模块160被配置成保持从时钟。在一个实施例中,从时钟是时刻时钟。在另一实施例中,从时钟是未直接链接到时刻的计数器。在一个实施例中,时钟模块160包括或利用保持从时钟的计数器电路。在一个实施例中,时钟模块160是在多层通信协议栈中的应用层处操作的应用层模块。在其它实施例中,时钟模块160在至少多层通信协议栈中的第四层处的另一适当层处操作。在其中时钟同步模块150被配置成保持相应的路径相关时钟的一些实施例中,时钟模块160被配置成选择路径相关时钟之一作为从时钟而不是保持单独的从时钟。
[0091]在一些实施例中,时钟模块160被配置成使用通过时钟同步模块150产生的多个时钟结果来确定从时钟值。在一个实施例中,时钟模块160被配置成通过数学地组合由时钟同步模块150产生的多个时钟结果来确定从时钟值。在另一实施例中,时钟模块160被配置成至少通过选择由时钟同步模块150产生的多个时钟结果之一来确定从时钟值。例如,在一些实施例中,基于每个路径的独立确定的精度指标诸如路径长度、路径延迟可变性(或噪声)等,将时钟结果之一确定为最准确的。在另一实施例中,时钟模块160被配置成至少通过(i)在一些情形中组合由时钟同步模块150产生的多个时钟结果中的至少一些时钟结果以及(ii)在其它情形中选择由时钟同步模块150产生的多个时钟结果之一来确定从时钟值。在另一实施例中,时钟模块160被配置成至少通过(i)选择由时钟同步模块150产生的多个时钟结果的子集以及(ii)组合时钟结果的子集来确定从时钟值。例如,在一些实施例中,所选择的子集是基于每个路径的独立确定的精度指标诸如路径长度、路径延迟可变性(或噪声)等确定为适当准确的时钟结果。
[0092]在其中由时钟同步模块150产生的时钟结果包括偏移的一些实施例中,时钟模块160被配置成至少通过数学地组合多个偏移中的两个或更多来产生组合的偏移并且然后使用组合的偏移设置从时钟值来确定从时钟值。在其中由时钟同步模块150产生的时钟结果包括偏移的一些实施例中,时钟模块160被配置成选择多个偏移之一并且然后使用所选择的偏移设置从时钟值。例如,在一些实施例中,基于每个路径的独立确定的精度指标诸如路径长度、路径延迟可变性(或噪声)等确定偏移之一是最准确的。在其中由时钟同步模块150产生的时钟结果包括偏移的一些实施例中,时钟模块160被配置成(i)在一些情形中,数学地组合多个偏移以产生组合的偏移,然后使用组合的偏移设置从时钟值,以及(ii)在其它情形中,选择多个偏移之一,然后使用所选择的偏移设置从时钟值。在一个实施例中,时钟模块160被配置成至少通过(i)选择多个偏移的子集以及(ii)组合偏移的子集来确定从时钟值。例如,在一些实施例中,所选择的子集是基于每个路径的独立确定的精度指标诸如路径长度、路径延迟可变性(或噪声)等确定为适当准确的偏移。
[0093]在其中由时钟同步模块150产生的时钟结果包括对应于不同路径的不同时钟值(路径时钟值)的一些实施例中,时钟模块160被配置成通过数学地组合不同路径时钟值中的两个或多个以产生组合的时钟值并且然后使用组合的时钟值设定从时钟值来确定从时钟值。在其中由时钟同步模块150产生的时钟结果包括路径时钟值的一些实施例中,时钟模块160被配置成选择路径时钟值之一并且然后使用所选择的路径时钟值设定从时钟值。例如,在一些实施例中,基于每个路径的独立确定的精度指标诸如路径长度、路径延迟可变性(或噪声)等确定时钟值之一是最准确的。在其中由时钟同步模块150产生的时钟结果包括路径时钟值的一些实施例中,时钟模块160配置成(i)在一些情形中,数学地组合路径时钟值中的至少一些以产生组合的时钟值,然后使用组合的时钟值设定从时钟值,以及
(ii)在其它情形中,选择路径时钟值之一,然后使用所选择的路径时钟值设定从时钟值。
[0094]在一个实施例中,时钟模块160被配置成计算由时钟同步模块150产生的时钟结果中的至少一些时钟结果的平均值并基于平均的时钟结果确定从时钟值。在其中由时钟同步模块150产生的时钟结果包括偏移的一些实施例中,时钟模块160被配置成计算偏移中的至少一些偏移的平均值并基于平均的偏移确定从时钟值。在其中由时钟同步模块150产生的时钟结果包括对应于不同路径的不同时钟值(路径时钟值)的实施例中,时钟模块160被配置成计算路径时钟值中的至少一些路径时钟值的平均值并基于平均的时钟值确定从时钟值。在一个实施例中,时钟模块160被配置成至少通过(i)选择多个路径时钟值的子集以及(ii)组合路径时钟值的子集来确定从时钟值。例如,在一些实施例中,所选择的子集是基于每个路径的独立确定的精度指标诸如路径长度、路径延迟可变性(或噪声)等确定为适当准确的路径时钟值。
[0095]在一些实施例中,时钟模块160被配置成计算时钟结果中的至少一些时钟结果的加权平均。在一个实施例中,基于每个路径的独立确定的精度指标诸如路径长度、路径延迟可变性(或噪声)等确定计算加权平均时利用的权重。例如,在一个实施例中,为具有相对较长长度的路径赋予相对较小的权重,而为具有相对较短长度的路径赋予相对较大的权重。作为另一示例,为具有相对较高路径延迟可变性(或噪声)的路径赋予相对较小的权重,而为具有相对较低路径延迟可变性(或噪声)的路径赋予相对较大的权重。
[0096]例如,在一个实施例中,时钟同步模块150包括路径延迟可变性确定模块170,该路径延迟可变性确定模块170被配置成针对通过网络112的不同路径产生相应的路径延迟可变性测量。在一个实施例中,时钟同步模块150被配置成利用通过网络112的不同路径的路径延迟可变性测量来确定在计算加权平均时利用的不同权重。例如,在一个实施例中,为具有相对较高路径延迟可变性(或噪声)的路径赋予相对较小的权重,而为具有相对较低路径延迟可变性(或噪声)的路径赋予相对较大的权重。
[0097]在一个实施例中,路径延迟可变性确定模块170被配置成针对通过网络112的不同路径产生相应的路径延迟测量。在一个实施例中,每个路径延迟测量是经由相应路径从主时钟设备104到从时钟设备108的单向延迟的测量。在一个实施例中,路径延迟可变性确定模块170被配置成通过⑴确定经由相应路径从从时钟设备108到主时钟设备104并且回到从时钟设备108的往返延迟以及(ii)基于往返延迟计算单向延迟,针对每个路径产生单向延迟。在一个实施例中,单向延迟计算为往返延迟的一半。
[0098]在一个实施例中,路径延迟可变性确定模块170被配置成产生通过网络112的不同路径的相应平均路径延迟。在一个实施例中,路径延迟可变性确定模块170被配置成基于相应的平均路径延迟和相应的新近(例如最近)路径延迟测量来针对每个路径产生相应的路径延迟可变性测量。在一个实施例中,路径延迟可变性确定模块170被配置成基于计算相应平均路径延迟和相应新近(例如最近)路径延迟测量之间的差值来针对每个路径产生相应的路径延迟可变性测量。在实施例中,针对路径计算的差值的幅度通常指示路径的路径延迟可变性程度。例如,在一个实施例中,如果针对第一路径计算的第一差值的幅度大于针对第二路径计算的第二差值的幅度,则假设第一路径中的路径延迟具有比第二路径中的路径延迟更大的可变性程度。
[0099]在其中由时钟同步模块150产生的时钟结果包括偏移的一些实施例中,时钟模块160被配置成基于不同路径的路径延迟可变性测量选择偏移之一,并且然后使用所选择的偏移设置从时钟值。例如,在一个实施例中,时钟模块160被配置成选择与具有最低路径延迟可变性测量的路径对应的偏移并且然后使用所选择的偏移设置从时钟值。
[0100]在其中由时钟同步模块150产生的时钟结果包括偏移的一些实施例中,时钟模块160被配置成选择其中每个都与满足一个或多个标准的路径延迟可变性测量相关联的一组偏移,并使用该组所选择的偏移确定偏移。例如,在一个实施例中,时钟模块160被配置成选择其中每个都与满足某个阈值(例如低于阈值、低于或等于阈值等)的路径延迟可变性测量相关联的一组偏移,并使用该组所选择的偏移确定偏移。例如,在一个实施例中,如果在该组中存在多个偏移,则时钟模块160被配置成计算所选偏移的平均值并使用平均的偏移确定从时钟值。在一个实施例中,在计算平均值时不考虑具有高可变性的路径,使得在计算平均时仅使用具有低于适当可变性阈值的测量到的可变性的路径。在一个实施例中,如果仅存在一个具有低于适当可变性阈值的测量到的可变性的路径,则使用该对应的一个偏移来设定从时钟值(即不计算多个偏移的平均)。换言之,在一个实施例中,如果在组中仅存在一个偏移,则时钟模块160被配置成使用所选择的偏移设定从时钟。
[0101]在其中由时钟同步模块150产生的时钟结果包括对应于不同路径的不同时钟值(路径时钟值)的一些实施例中,时钟模块160被配置成基于不同路径的路径延迟可变性测量选择路径时钟值之一并且然后使用所选择的路径时钟值设定从时钟值。例如,在一个实施例中,时钟模块160被配置成选择与具有最低路径延迟可变性测量的路径对应的路径时钟值并且然后使用所选择的路径时钟值设定从时钟值。
[0102]在其中由时钟同步模块150产生的时钟结果包括对应于不同路径的不同时钟值(路径时钟值)的一些实施例中,时钟模块160被配置成选择其中每个都与满足一个或多个标准的路径延迟可变性测量相关联的一组路径时钟值,并使用该组所选择的路径时钟值确定平均路径时钟值。例如,在一个实施例中,时钟模块160被配置成选择其中每个都与满足阈值(例如低于阈值、低于或等于阈值等)的路径延迟可变性测量相关联的一组路径时钟值,并使用该组所选择的路径时钟值确定从时钟值。例如,在一个实施例中,如果在组中存在多个路径时钟值,则时钟模块160被配置成计算所选路径时钟值的平均值并使用平均路径时钟值确定从时钟值。作为另一示例,在一个实施例中,如果在组中仅存在一个路径时钟值,则时钟模块160被配置成使用所选的路径时钟值设定从时钟。
[0103]在一些实施例中,时钟同步模块150被配置成测量每个路径的相应路径特性诸如路径长度、路径延迟可变性(或噪声)等和/或相应路径时钟值的测量特性诸如抖动程度。在一个实施例中,按照跳数测量路径长度。例如,在一些实施例中,利用基于路由跟踪的路径发现技术确定路径中的跳数。在一些实施例中,时钟同步模块150被配置成测量每个路径的相应路径特性诸如路径长度、路径延迟可变性(或噪声)等和/或相应路径时钟值的测量特性诸如抖动程度。
[0104]图2A和图2B是根据实施例的用于使用经由网络中的多个路径从主时钟接收到的多个时钟信号保持从时钟的示例性方法200的流程图。在一个实施例中,图1的从时钟设备108被配置成实现方法200,并且为说明目的参照图1论述方法200。然而,在其它实施例中,通过另一合适设备实现方法200。
[0105]在框204处,将状态变量初始化为值COMBINED (组合)。该状态变量通常指示如何设置从时钟。例如,在一个实施例中,当状态变量是值COMBINED (组合)时,将根据第一技术设置从时钟(如下所述),并且当状态变量是值SWITCHING (切换)时,将根据第二技术设置从时钟(如下所述)。
[0106]在框208处,针对从主时钟设备104接收到时钟信号所经由的多个路径中的每个路径确定相应时钟(例如相应的时刻时钟(TODi))。例如,针对经由路径128接收到的来自主时钟设备104的时钟信号确定TOD1,并且针对经由路径132接收到的来自主时钟设备104的时钟信号确定T0D2。在一个实施例中,框208包括每当经由相应路径i接收到来自主时钟的时钟信号时确定相应的TODitl
[0107]在框212处,针对每个路径i确定经由路径i从主时钟设备104到从时钟设备108的最近延迟测量(LastDelayi (上一延迟J)。例如,在一个实施例中,为了测量第i个路径的上一延迟,从时钟设备108向主时钟设备104发送路径延迟测量分组(例如因特网控制消息协议(ICMP)回应请求分组),其促使主时钟设备104经由路径i向从时钟设备108立即发送响应分组(例如ICMP响应)。然后,在一个实施例中,从时钟设备108基于经由路径i发送ICMP回应请求分组的时间和接收ICMP响应的时间,测量与路径i对应的往返延迟,并且将LastDelayi确定为往返延迟的一半。在各种实施例中,根据调度安排等周期性地进行这样的测量。
[0108]同样在框212处,针对每个路径i确定经由路径i从主时钟设备104到从时钟设备108的平均延迟(AvgDelayi (平均延迟J)。例如,在一个实施例中,通过随时间对多个LastDelayi值求平均来计算AvgDelayit5由于计算第i个路径的每个LastDelayi,所以在一个实施例中,利用新的LastDelayi值更新AvgDelayit5
[0109]在框216处,计算不同路径的相应路径延迟可变性测量。例如,在一个实施例中,针对每个路径i计算AvgDelayi和LastDelayi之间的差值(DelayDiffJ延迟差的绝对值。例如,在一个实施例中,与较小DelayDiffi的相比,较大的DelayDiffi指示相对更多的可变性。在一个实施例中,由于计算第i个路径的每个LastDelayi,所以如上所述更新AvgDelayi,并且然后计算新的DelayDiffp
[0110]在一些实施例中,不同路径的相应路径延迟可变性测量也提供相应TODi的噪声的测量。例如,在一个实施例中,随着第i个路径的路径延迟可变性增加,第i个路径的TOD的抖动(或噪声)也将增加。在其它实施例中,通过随时间分析相应的TODi,确定相应TODi的相应噪声测量。
[0111]在框220处,选择主要路径作为具有最低路径延迟可变性测量的路径。例如,主要路径选择为具有最低DelayDifTi的路径。在其它实施例中,基于各个TOD的一个或多个适当测量特性诸如抖动程度来选择主要路径。
[0112]在框224处,将第一 TOD (切换T0D)设置为对应于主要路径(在框220处确定)的TODi (在框208处确定)。如下面将说明的,当状态变量设置为切换(SWITCHING)时,使用切换T0D。在一个实施例中,切换TOD对应于具有最低路径延迟可变性测量的路径的TODitl在其它实施例中,切换TOD对应于基于各个TOD的测量特性诸如抖动程度选择的路径的TODi。
[0113]在框228处,将第二 TOD (组合T0D)设置为所有路径(在框208处确定)的TODi的平均。如下面将说明的,当状态变量设置为组合(COMBINED)时使用组合TOD。在一个实施例中,框228包括计算加权平均。在一个实施例中,基于在框216处计算的DelayDifTi值确定用于计算加权平均的权重。因而,在一些实施例中,可基于测量路径特性诸如路径长度、路径延迟可变性(或噪声)等和/或各个TOD的测量特性诸如抖动程度来配置和确定用于计算加权平均的权重。
[0114]在框232处,确定状态变量是否设置为组合(COMBINED)。如果确定状态变量设置为组合(COMBINED),则流程进行到框236。在框236处,将从时钟(动态TOD (DynamicTOD))设置为在框228处确定的组合TOD。
[0115]在框240处,将切换TOD和组合TOD之间的差值的绝对值与阈值进行比较。在一个实施例中,阈值是主要路径的DelayDiff乘以适当标量a。如果确定切换TOD和组合TOD之间的差值的绝对值不满足阈值(例如低于或等于阈值),则状态变量保持设置为组合(COMBINED),并且流程返回到框208。
[0116]另一方面,如果在框240处确定切换TOD和组合TOD之间的差值的绝对值满足阈值(例如大于阈值),则这可以指示路径中的一个或多个路径中的路径延迟可变性增加,并且流程进行到框244。在框244处,将切换TOD设置为组合TOD。在一个实施例中,框244有助于确保动态TOD的连续性。在框248处,状态变量设置为切换(SWITCHING)。在一个实施例中,状态变量设置为切换(SWITCHING),因为框240处的比较指示路径中的一个或多个路径中的路径延迟可变性增加,这会不利地影响组合T0D。在框248之后,流程返回到框208。
[0117]再次参照框232,在一个实施例中,如果确定状态变量具有值SWITCHING,则流程进行到框260。在框260处,将从时钟(动态TOD (DynamicTOD))设置为在框224处确定的切换TOD。
[0118]在框264处,确定状态变量是否已经被设置为值SWITCHING至少达到超时周期。在一个实施例中,如果确定状态变量已经被设置为值SWITCHING少于超时周期,则状态变量保持设置为SWITCHING,并且流程返回到框208。
[0119]另一方面,在一个实施例中,如果确定状态变量已经被设置为值SWITCHING至少达到超时周期,则流程进行到框268。在框268处,每个路径i的TODi设置为切换T0D。在一个实施例中,框268帮助确保动态TOD的连续性。在框272处,将状态变量设置为组合(COMBINED)。在框272之后,流程返回到框208。
[0120]在一些实施例中,计算每个路径i的TOD1、切换TOD和组合TOD在主时钟和从时钟之间的偏移。在一个实施例中,使用组合TOD偏移(框236)或切换TOD偏移(框260)更新从时钟(动态T0D)。例如,在一个实施例中,通过向从时钟的当前值添加偏移来更新从时钟。
[0121]图3是图示根据实施例的作为保持从时钟的示例部分的、在从时钟设备108与主时钟设备104之间交换的信号的时序图300。图3所示场景涉及网络112中的两个不同路径:路径O和路径I。在其它场景中,至少在一些实施例中利用大于两个的适当数目的路径。
[0122]在时间T(!处,在一个实施例中,从时钟设备108向主时钟设备104发送第一路径延迟测量分组(例如ICMP回应请求分组),促使主时钟设备104经由路径O向从时钟设备108立即发送第一响应分组(例如ICMP响应)。在时间T1处,在一个实施例中,在从时钟设备108处接收主时钟设备104经由路径O发送的第一响应分组(侈如ICMP响应)。
[0123]在时间T1之后,从时钟设备108将路径O上的延迟(Atl)计算为往返延迟的一半:
[0124]Δ 0 = (T1-T0) /2 (等式 I)
[0125]在时间T2处,在一个实施例中,从时钟设备108向主时钟设备104发送第二路径延迟测量分组(例如ICMP回应请求分组),促使主时钟设备104经由路径I向从时钟设备108立即发送第二响应分组(例如ICMP响应)。在时间T3处,在一个实施例中,在从时钟设备108处接收主时钟设备104经由路径I发送的第二响应分组(例如ICMP响应)。
[0126]在时间T3之后,从时钟设备108将路径I上的延迟(Al)计算为往返延迟的一半:
[0127]A1 =(T3-T2)/2 (等式 2)
[0128]在时间T4处,主时钟设备104经由路径O向从时钟设备108发送第一带有时间戳的分组。在一个实施例中,第一带有时间戳的分组包括等于(或基本等于)对应于时间1;的值的时间戳。在时间T5处,从时钟设备108经由路径O接收第一时间戳分组。在时间T5之后,从时钟设备108基于第一带有时间戳的分组和计算的路径O上的延迟(Aci)来计算与路径O对应的时钟偏移。在一个实施例中,根据下式计算与路径O对应的时钟偏移(Offset。):
[0129]Offset0 = T4-T5+ Δ。 (等式 3)
[0130]在时间T6处,主时钟设备104经由路径I向从时钟设备108发送第二带有时间戳的分组。在一个实施例中,第二带有时间戳的分组包括等于(或基本等于)对应于时间T6的值的时间戳。在时间T7处,从时钟设备108经由路径I接收第二带有时间戳的分组。在时间T7之后,从时钟设备108基于第二带有时间戳的分组和计算的路径I上的延迟(A1)来计算与路径I对应的时钟偏移。在一个实施例中,根据下式计算与路径I对应的时钟偏移(Offset1):
[0131]Offset1 = T6-T7+ Δ j (等式 4)
[0132]然后使用与路径O对应的时钟偏移和与路径I对应的时钟偏移更新从时钟。例如,然后根据诸如上述的技术(例如计算路径O偏移和路径I偏移的平均,基于路径延迟可变性选择路径O偏移和路径I偏移中的一个,等等),使用与路径O对应的时钟偏移和与路径I对应的时钟偏移更新从时钟。
[0133]如上所述,经由通过网络112的不同路径在主时钟设备104和从时钟设备108之间发送各种分组。主时钟设备104和从时钟设备108均应该能够确定分组在发送后行进所经由的路径并且识别接收该分组所经由的路径。现在将描述用于配置、识别、指明、利用通过网络112的不同路径等的各种技术。
[0134]用于指明和/或利用不同路径的技术中的至少一些技术涉及向主时钟分配不同地址(例如IP地址)和/或向从时钟分配不同地址(例如IP地址),其中不同地址和/或不同地址对对应于通过网络112的不同路径。
[0135]在本地管理网络112中,在一个实施例中,交换机/路由器可以被配置成当发送去往同一端点设备但包括不同地址信息(例如源地址和/或目的地地址)的分组时利用不同路径。例如,跨网络的路由/转发表可以配置有在主时钟和从时钟之间的多个基于流量设计的路径。通过在这样的网络中配置路由器/交换机,为分组在主时钟和从时钟之间的发送创建各种各样的路径。
[0136]另一方面,在其它类型的网络中,诸如公共网络和提供商网络,配置交换机/路由器来提供不同路径是不可能或不现实的。在一些网络112中,网络112中的至少一些交换机/路由器在一些实施例中应用负载均衡技术,其中沿着不同路径引导去往同一端点设备的分组。当向从时钟设备108发送分组时为了利用这种交换机/路由器的负载均衡能力,主时钟设备104例如在分组中使用不同的地址(例如目的地地址)和/或地址对(例如{主,从})。
[0137]在一些实施例和/或场景中,尽管多个地址和/或作为整体的地址对对应于多个不同路径,但这种地址或地址对中的两个或多个可以对应于准确的同一网络路径,使得它们这种地址/地址对冗余。因而,在一些实施例中,主时钟设备104和/或从时钟设备108被配置成利用基于路由跟踪的路径发现来确定与冗余路径对应的地址/地址对,并且然后省略和/或过滤地址/地址对以避免使用冗余路径。“Paris路由跟踪”和“TraceFlow”是发现网络中两个点之间的路径的工具示例。在一个实施例中,主时钟设备104和从时钟设备108 _■者均实施基于路由跟踪的过滤。在另一实施例中,仅在从时钟设备108上实施基于路由跟踪的过滤,以减少在主时钟设备104上的开支。
[0138]在一个实施例中,从时钟利用多个IP地址。在一个实施例中,从时钟的多个IP地址中的至少一些IP地址的每一个对应于不同的路径。在一个实施例中,主时钟利用多个IP地址。在一个实施例中,至少一些不同的{主IP,从IP}地址对对应于不同的路径。
[0139]在一些实施例中,备选地或附加地利用分组报头中的其它合适字段来确定不同的路径。用于确定路径的其它报头字段的示例包括用户数据报协议(UDP)端口字段、传输控制协议(TCP)端口字段、IPv6报头中的流标签字段、以太网报头中的VLAN ID字段、多协议标签交换(MPLS)报头中的标签字段等中的一个或多个。在各种实施例中,利用主IP地址、从IP地址、UDP端口字段、TCP端口字段、IPv6报头中的流标签字段、以太网报头中的VLANID字段、MPLS报头中的标签字段的任意子集的任意组合,来确定和/或识别将发送或已经发送分组所经由的路径。
[0140]图4是根据实施例的用于使用经由网络中的多个路径从主时钟接收到的多个时钟信号来保持从时钟的示例性方法400的流程图。在一个实施例中,图1的系统100被配置成实现方法400,并且为说明目的,参照图1论述方法400。然而,在其它实施例中,方法400由另一合适系统实现。
[0141]出于说明目的,参照与在精确时间协议(PTP)中利用的消息类似的消息来描述图
4。在其它实施例中,利用与在网络时间协议(NTP)中利用的消息类似的消息。
[0142]在一个实施例中,将多个IP地址(从IP地址)与从时钟相关联,并且将从IP地址中的一个指定为主要从IP地址。类似地,将至少一个IP地址(主IP地址)与主时钟相关联。在一个实施例中,将至少一个主IP地址中的一个指定为主要主IP地址。在一个实施例中,如果仅存在一个主IP地址,则将单一主IP地址指定为主要从IP地址。
[0143]在框404处,从时钟设备108周期性地发送多个通知消息,在一个实施例中,多个通知消息中的每个通知消息具有不同的从IP地址。该多个通知消息由主时钟设备104接收,并且主时钟设备104记下包括在多个通知消息中的不同从IP地址。
[0144]在框408处,在主时钟设备104向从时钟设备108周期性地发送多个同步消息之后,在一个实施例中,多个同步消息中的每个同步消息具有来自框404的多个通知消息的多个从IP地址之一。在一个实施例中,每个同步消息经由不同的路径发送,并且每个从IP地址对应于不同路径中的对应一个路径。在一个实施例中,每个同步消息包括主要主IP地址。在一个实施例中,每个同步消息包括与当通过主时钟设备104发送同步消息时的主时钟值对应的时间戳。
[0145]在框412处,从时钟设备108向主时钟设备104发送对每个同步消息作出响应的延迟请求消息。每个延迟请求消息包括多个从IP地址中的一个。
[0146]在框416处,主时钟设备104向从时钟设备108发送对来自从时钟设备108的每个延迟响应消息作出响应的延迟响应消息。在一个实施例中,每个延迟响应消息包括多个从IP地址中的一个,并且每个延迟响应消息经由不同的路径发送。在一个实施例中,每个延迟响应消息包括主要主IP地址。
[0147]在框420处,从时钟设备108接收在框416处由主时钟设备104发送的多个延迟响应消息。对于在框420处接收到的每个延迟响应消息,从时钟设备108确定与接收延迟响应消息所经由的路径对应的延迟。在一个实施例中,从时钟设备108基于(i)何时在从时钟设备108处接收到延迟响应消息和(ii)从时钟设备108何时发送对应的延迟请求消息(框412)来确定延迟。对于在框420处接收到的每个延迟响应消息,在一个实施例中,从时钟设备108基于消息中的从IP地址确定接收消息所经由的路径。
[0148]在框424处,从时钟设备108接收在框408处由主时钟设备104周期性发送的多个同步消息。对于由从时钟设备108接收到的每个同步消息,从时钟设备108确定与接收同步消息所经由的路径对应的时钟偏移。在一个实施例中,从时钟设备108基于(i)当在从时钟设备108处接收到同步消息时的从时钟值,(ii)同步消息中的主时钟时间戳和(iii)对应路径的延迟(框420)来确定时钟偏移。在一个实施例中,对于由从时钟设备108接收到的每个同步消息,从时钟设备108基于消息中的从IP地址来确定接收消息所经由的路径。
[0149]在框428处,在一个实施例中,从时钟设备108根据在框424处确定的与不同路径对应的不同偏移来更新从时钟。
[0150]在一些实施例中,将多个主IP地址与主时钟相关联,在一个实施例中,其中将至少一个主IP地址之一指定为主要主IP地址。在一些实施例中,在框408处由主时钟设备104周期性地发送每个{主IP,从IP}地址对的相应同步消息,并且不同的{主IP,从IP}地址对对应于不同的路径。在一些实施例中,从时钟设备108在框412处向延迟请求消息中包括的主IP地址发送对应的延迟请求消息。在一些实施例中,对于在框420处接收到的每个延迟响应消息,从时钟设备108基于消息中的{主IP,从IP}地址对来确定接收消息所经由的路径。在一些实施例中,对于由从时钟设备108接收到的每个同步消息,从时钟设备108基于消息中的{主IP,从IP}地址对来确定接收消息所经由的路径。
[0151]图5是根据实施例的用于设置从时钟的示例性方法500的流程图。在一个实施例中,图1的从时钟设备108被配置成实现方法500,并且出于说明目的,参照图1论述方法500。但在其它实施例中,方法500由另一合适设备实现。
[0152]在框504处,在从时钟设备108处接收分组,该分组由主时钟设备104发送。该分组包括对应于主时钟的时间戳。在一个实施例中,时间戳对应于当主时钟发送分组时的主时钟值。
[0153]在框508处,从时钟设备108确定在框504处经由多个路径中的哪一个接收到了分组。在一个实施例中,从时钟设备108基于分组中的地址确定经由多个路径中的哪一个。在一个实施例中,从时钟设备108基于分组中的从IP地址确定经由多个路径中的哪一个。在一个实施例中,从时钟设备108基于分组中的成对地址确定经由多个路径中的哪一个。在一个实施例中,从时钟设备108基于分组中的{主IP,从IP}地址对确定多个路径中的哪一个。
[0154]在一个实施例中,从时钟设备108的时钟同步模块150被配置成确定在框504处经由多个路径中的哪一个接收分组。在一个实施例中,从时钟设备108的一些其它模块被配置成确定在框504处经由多个路径中的哪一个接收分组。在一些实施例中,实现框508的模块在多层通信协议栈(例如TCP/IP协议栈)中的应用层处操作,和/或在至少多层通信协议栈(对应于OSI模型)中的第四层处的另一合适层处操作。在一个实施例中,实现框508的模块是应用层模块,并且/或者在多层通信协议栈中的第四层或第四层以上操作,并且确定在框504处经由多个网络路径中的哪一个接收分组。在其它实施例中,实现框508的模块在多层协议栈中的应用层以下和/或其它层以下的层处操作。
[0155]在框512处,从时钟设备108使用框508处确定的路径信息和框504处接收到的分组中的时间戳来设置从时钟值。在一个实施例中,框512在多层通信协议栈中的应用层处执行,并且/或者在至少多层通信协议栈中的第四层的另一合适层处操作,并且利用网络路径信息设置从时钟值。在一个实施例中,框512由时钟同步模块和/或时钟模块160实现。
[0156]在一些实施例中,根据上面参照图1、图2A、图2B和图3论述的各种技术实现在框512处设置从时钟值。例如,在一些实施例中,如上所述确定和利用与通过网络112的多个不同通信路径对应的不同时钟结果来设置从时钟。
[0157]图6是根据实施例的便于跨网络确定时钟值的示例性方法600的流程图。在一个实施例中,图1的主时钟设备104被配置成实现方法600,并且出于说明的目的,参照图1论述方法600。但在其它实施例中,通过另一合适设备实现方法600。
[0158]在框604处,将多个第一地址与主时钟相关联。例如,在一个实施例中,通过时钟模块120将多个IP地址(主IP地址)与主时钟相关联。
[0159]在框608处,通过主时钟设备104向从时钟设备108发送多个带有时间戳的分组,其中每个分组包括框604的多个地址的不同地址。多个带有时间戳的分组中的不同主IP地址至少部分地使得多个带有时间戳的分组在网络112中的不同路径上发送。在一些实施例中,多个分组包括多个从IP地址,并且不同{主IP,从IP}地址对至少部分地使得多个带有时间戳的分组在网络112中的不同路径上发送。
[0160]图7是根据实施例的便于跨网络确定时钟值的示例性方法700的流程图。在一个实施例中,图1的从时钟设备108被配置成实现方法700,并且出于说明目的,参照图1论述方法700。但在其它实施例中,通过另一合适设备实现方法700。
[0161]在框704处,将多个第一地址与从时钟相关联。例如,在一个实施例中,通过时钟模块160将多个IP地址(从IP地址)与从时钟相关联。
[0162]在框708处,将多个请求发送到主时钟设备104,该多个请求包括多个地址以使主时钟设备104经由网络112中的不同路径发送多个带有时间戳的分组,从而由从时钟设备108经由网络112中的不同路径接收多个带有时间戳的分组。请求中的不同从IP地址至少部分地使得在网络112中的不同路径上接收多个带有时间戳的分组。在一些实施例中,多个分组包括多个主IP地址,并且不同{主IP,从IP}地址对至少部分地使得在网络112中的不同路径上接收多个带有时间戳的分组。
[0163]在一个实施例中,利用类似于最佳主时钟算法(BMCA)的算法。例如,从时钟设备被配置成运行BMCA以找到同一主时钟的最佳实例,不同的实例对应于不同的路径。然后从时钟使用诸如上述的技术利用所选择的主时钟的实例。
[0164]可以利用硬件、执行固件指令的处理器、执行软件指令的处理器或其任意组合,实现上述各种框、操作和技术中的至少一些。当利用执行软件或固件指令的处理器实现时,可以将软件或固件指令存储在任意有形、非临时性计算机可读存储器诸如磁盘、光盘、随机存取存储器、只读存储器、快闪存储器等中。软件或固件指令可以包括当由处理器执行时使得存储器执行各种动作的机器可读指令。
[0165]当硬件实现时,硬件可以包括分立组件、集成电路、专用集成电路(ASIC)、可编程逻辑器件等中的一个或多个。
[0166]尽管已经参照仅旨在图示而不进行限制的特定示例描述了各种实施例,但可以在不脱离权利要求范围的情况下对所公开的实施例进行各种改变、添加和/或删除。
【权利要求】
1.一种网络设备,包括: 一个或多个端口,用以将所述网络设备经由多个不同通信路径通信地耦合到主时钟;时钟同步模块,被配置成基于经由所述网络设备和所述主时钟之间的所述多个不同通信路径从所述主时钟接收到的信号,来确定对应于所述多个不同通信路径的多个路径时间数据集;以及 时钟模块,被配置成根据所述多个路径时间数据集确定时刻。
2.根据权利要求1所述的网络设备,其中所述时钟模块被配置成基于所述路径时间数据集中的至少两个路径时间数据集的数学组合来确定所述一天的时刻。
3.根据权利要求2所述的网络设备,其中所述时钟模块被配置成基于所述路径时间数据集中的至少一些路径时间数据集的平均值来确定所述时刻。
4.根据权利要求1所述的网络设备,进一步包括被配置成确定所述路径时间数据集的多个相应噪声测量的模块; 其中所述时钟模块被配置成基于所述多个相应噪声测量将一个或多个路径时间数据集从所述时刻的所述确定中消除。
5.根据权利要求1所述的网络设备,其中所述时钟模块被配置成: 确定路径特性; 基于所述路径特性确定是否根据第一技术确定所述时刻; 当确定根据所述第一技术确定所述时刻时,基于所述路径时间数据集中的至少两个路径时间数据集的数学组合确定所述时刻; 基于所述路径特性确定是否根据第二技术确定所述时刻; 当确定根据所述第二技术确定所述时刻时,基于根据所述路径特性对所述路径时间数据集中的一个路径时间数据集进行选择来确定所述时刻。
6.根据权利要求1所述的网络设备,进一步包括:路径延迟可变性确定模块,被配置成针对所述多个不同通信路径中的通信路径来确定多个相应的路径延迟可变性测量; 其中所述时钟模块被配置成基于所述多个相应的路径延迟可变性测量来确定所述时刻。
7.根据权利要求6所述的网络设备,其中所述时钟模块被配置成基于所述路径时间数据集的加权组合来确定所述时刻,其中基于对应的所述路径延迟可变性测量来对每个路径时间数据集进行加权。
8.根据权利要求6所述的网络设备,其中所述时钟模块被配置成基于使用所述多个相应的路径延迟可变性测量对所述路径时间数据集中的一个路径时间数据集进行选择来确定所述时刻。
9.根据权利要求6所述的网络设备,其中所述路径延迟可变性确定模块包括: 路径延迟计算器,被配置成确定对应于所述多个不同通信路径的多个路径延迟;以及 平均路径延迟计算器,被配置成计算对应于所述多个不同通信路径的多个平均路径延迟; 其中所述路径延迟可变性确定模块被配置成基于(i)所述多个路径延迟以及(ii)所述多个平均路径延迟,来计算所述多个相应的路径延迟可变性测量。
10.根据权利要求1所述的网络设备,其中: 所述多个路径时间数据集包括对应于所述多个不同通信路径的多个第一时钟偏移;所述时钟同步模块包括:第一偏移计算器,被配置成基于经由所述多个不同通信路径从所述主时钟接收到的所述信号,来计算所述多个第一时钟偏移;以及所述时钟模块包括: 第二偏移计算器,被配置成使用所述第一时钟偏移来确定第二时钟偏移,以及时钟更新器,被配置成基于(i) 一天的当前时刻以及(ii)所述第二时钟偏移,来确定所述时刻。
11.一种方法,包括: 在网络设备的一个或多个端口处接收来自主时钟的信号,所述信号是经由多个不同通信路径从所述主时钟接收到的; 在所述网络设备处,基于经由所述多个不同通信路径从所述主时钟接收到的所述信号,确定对应于所述多个不同通信路径的多个路径时间数据集;以及在所述网络设备处,根据所述多个路径时间数据集来确定时刻。
12.根据权利要求11所述的方法,其中确定所述时刻包括确定所述路径时间数据集中的至少两个路径时间数据集的数学组合。
13.根据权利要求12所述的方法,其中确定所述时刻包括确定所述路径时间数据集中的至少一些路径时间数据集的平均值。
14.根据权利要求11所述的方法,进一步包括: 确定所述路径时间数据集的多个相应噪声测量;以及 基于所述多个相应噪声测量,将一个或多个路径时间数据集从所述时刻的所述确定中消除。
15.根据权利要求11所述的方法,进一步包括: 确定路径特性; 基于所述路径特性,确定是否根据第一技术确定所述时刻; 当确定根据所述第一技术确定所述时刻时,基于所述路径时间数据集中的至少两个路径时间数据集的数学组合来确定所述时刻; 基于所述路径特性,确定是否根据第二技术确定所述时刻; 当确定根据所述第二技术确定所述时刻时,基于根据所述路径特性对所述路径时间数据集中的一个路径时间数据集进行选择来确定所述时刻。
16.根据权利要求11所述的方法,进一步包括: 针对所述多个不同通信路径,来确定多个相应的路径延迟可变性测量;以及 其中基于所述多个相应的路径延迟可变性测量来确定所述时刻。
17.根据权利要求16所述的方法,其中基于所述路径时间数据集的加权组合来确定所述时刻,其中基于对应的所述路径延迟可变性测量来对每个路径时间数据集进行加权。
18.根据权利要求16所述的方法,其中基于使用所述多个相应的路径延迟可变性测量对所述路径时间数据集中的一个路径时间数据集进行选择来确定所述时刻。
19.根据权利要求16所述的方法,其中针对所述多个不同通信路径确定所述多个相应的路径延迟可变性测量包括: 确定对应于所述多个不同通信路径的多个路径延迟; 计算对应于所述多个不同通信路径的多个平均路径延迟;以及 基于(i)所述多个路径延迟以及(ii)所述多个平均路径延迟,来计算所述多个相应的路径延迟可变性测量。
20.根据权利要求11所述的方法,其中: 确定所述多个路径时间数据集包括:基于经由所述多个不同通信路径从所述主时钟接收到的所述信号,来计算多个第一时钟偏移; 确定所述时刻包括: 使用所述第一时钟偏移来确定第二时钟偏移,以及 基于(i)当前时刻以及(ii)所述第二时钟偏移,来确定所述时刻。
21.—种网络设备,包括: 耦合到网络的一个或多个端口; 路径确定模块,被配置成确定经由所述网络中的多个通信路径中的哪一个通信路径接收到来自主时钟的分组,其中所述分组是经由所述一个或多个端口中的一个端口接收的,并且其中所述分组包括来自所述主时钟的时间戳;以及 应用层模块,被配置成使用(i)所述分组中的所述时间戳和(ii)所述通信路径的所述确定来确定时间信息。
22.根据权利要求21所述的网络设备,其中所述路径确定模块被配置成使用包括在所述分组中的路径标识符来确定接收所述分组所经由的所述通信路径。
23.根据权利要求21所述的网络设备,其中所述路径确定模块被配置成基于所述分组中的一个或多个因特网协议(IP)地址来确定发送所述分组所经由的所述通信路径。
24.根据权利要求23所述的网络设备,其中所述路径确定模块被配置成基于(i)带有时间戳的所述分组中的源IP地址以及(ii)带有时间戳的所述分组中的目的地IP地址,来确定发送所述分组所经由的所述通信路径。
25.根据权利要求23所述的网络设备,其中所述路径确定模块被配置成基于所述分组的报头中的信息来确定发送所述分组所经由的所述通信路径。
26.根据权利要求21所述的网络设备,其中所述路径确定模块包括在所述应用层模块中。
27.根据权利要求21所述的网络设备,其中所述应用层模块被配置成使得多个请求经由所述网络发送到所述主时钟,其中所述多个请求被配置成促使所述主时钟发送多个带有时间戳的分组,并且其中每个请求指示所述主时钟将要发送所述多个分组中的所述带有时间戳的分组中的对应的带有时间戳的分组所经由的不同通信路径。
28.—种方法,包括: 经由网络设备的端口接收由主时钟经由网络发送的分组,其中所述分组包括来自所述主时钟的时间戳; 确定经由所述网络中的多个通信路径中的哪个通信路径接收到所述分组;以及 在所述网络设备的应用层模块处,使用(i)所述分组中的时间戳以及(ii)所述通信路径的所述确定来确定时间信息。
29.根据权利要求28所述的方法,其中确定发送所述分组所经由的所述通信路径包括分析所述分组中包括的路径标识符。
30.根据权利要求29所述的方法,其中确定发送所述分组所经由的所述通信路径包括:基于带有时间戳的所述分组中的一个或多个因特网协议(IP)地址来确定所述通信路径。
31.根据权利要求28所述的方法,其中确定发送所述分组所经由的所述通信路径包括:基于⑴带有时间戳的所述分组中的源IP地址以及(ii)带有时间戳的所述分组中的目的地IP地址,来确定所述通信路径。
32.根据权利要求28所述的方法,其中确定发送所述分组所经由的所述通信路径包括:基于所述分组的报头中的信息来确定所述通信路径。
33.根据权利要求28所述的方法,进一步包括:利用所述应用层模块使得多个请求经由所述网络发送到所述主时钟,其中所述多个请求被配置成促使所述主时钟发送所述多个分组,并且其中每个请求指示所述主时钟将要发送所述多个分组中的所述分组中的对应分组所经由的不同通信路径。
34.一种网络设备,包括: 一个或多个端口,被耦合到网络;以及 时钟模块,被配置成: 将多个地址与主时钟相关联,以及 使得发送多个带有时间戳的分组,所述多个带有时间戳的分组包括所述多个地址,以使得经由所述网络中的不同路径发送所述多个分组。
35.根据权利要求34所述的网络设备,其中所述时钟模块被配置成: 将多个IP地址与所述主时钟相关联,以及 在所述多个带有时间戳的分组中包括所述多个IP地址。
36.根据权利要求34所述的网络设备,其中所述时钟模块是应用层模块。
37.根据权利要求34所述的网络设备,其中所述时钟模块被配置成至少在多层协议栈中的第四层操作。
38.根据权利要求34所述的网络设备,其中所述时钟模块被配置成在所述多个带有时间戳的分组中包括对应于单个从时钟的所述多个从IP地址。
39.一种方法,包括: 在实现主时钟的第一网络设备处,将多个地址与所述主时钟相关联;以及 将多个带有时间戳的分组发送到第二网络设备,所述多个带有时间戳的分组包括所述多个地址,以使得经由网络中的不同路径发送所述多个分组。
40.根据权利要求39所述的方法,其中将多个地址与所述主时钟相关联包括:将多个IP地址与所述主时钟相关联;以及 其中所述方法进一步包括:在所述多个带有时间戳的分组中包括所述多个IP地址。
41.根据权利要求39所述的方法,其中由通信设备中的应用层模块执行将所述多个地址与所述主时钟相关联。
42.根据权利要求39所述的方法,其中由至少在多层协议栈中的第四层操作的模块执行将所述多个地址与所述主时钟相关联。
43.根据权利要求39所述的方法,进一步包括:在所述多个带有时间戳的分组中包括对应于单个从时钟的多个从IP地址。
44.一种网络设备,包括: 一个或多个端口,被耦合到网络;以及 时钟模块,被配置成: 将多个地址与从时钟相关联,以及 针对将经由所述网络中的不同路径从主时钟接收的多个带有时间戳的分组发送多个请求,所述多个请求包括所述从时钟的多个地址。
45.根据权利要求44所述的网络设备,其中所述时钟模块被配置成: 将多个IP地址与所述从时钟相关联,以及 在所述多个带有时间戳的分组中包括所述多个IP地址。
46.根据权利要求44所述的网络设备,其中所述时钟模块是应用层模块。
47.根据权利要求44所述的网络设备,其中所述时钟模块被配置成至少在多层协议栈中的第四层处操作。
48.根据权利要求44所述的网络设备,其中所述时钟模块被配置成在所述多个请求中包括对应于单个主时钟的多个主IP地址。
49.一种方法,包括: 在实现从时钟的第一网络设备处将多个地址与所述从时钟相关联;以及 将多个请求发送到第二网络设备,所述多个请求包括所述多个地址,以使得经由网络中的不同路径从所述第二网络设备接收所述多个带有时间戳的分组。
50.根据权利要求49所述的方法,其中将多个地址与所述从时钟相关联包括:将多个IP地址与所述从时钟相关联;以及 其中所述方法进一步包括:在所述多个请求中包括所述多个IP地址。
51.根据权利要求49所述的网络设备,其中在应用层处执行将所述多个地址与所述从时钟相关联。
52.根据权利要求49所述的方法,其中由至少在多层协议栈中的第四层处操作的模块执行将所述多个地址与所述从时钟相关联。
53.根据权利要求49所述的方法,进一步包括:在所述多个请求中包括对应于单个主时钟的多个主IP地址。
【文档编号】H04J3/06GK104247309SQ201380008867
【公开日】2014年12月24日 申请日期:2013年2月8日 优先权日:2012年2月9日
【发明者】T·米兹拉希, A·施皮纳 申请人:马维尔以色列(M.I.S.L.)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1