确定性的、校准的、同步的网络互联访问的制作方法

文档序号:17120311发布日期:2019-03-15 23:44阅读:189来源:国知局
确定性的、校准的、同步的网络互联访问的制作方法

本技术涉及管理数据中心中的通信延迟,并且更具体地涉及同步和校准网络通信以应对互联(interlink)延迟和状况。



背景技术:

随着企业越来越倾向云计算解决方案,多租户云数据中心近年来呈指数级增长。此外,不断增长的客户需求和日益激烈的竞争促使云客户(尤其是金融客户和服务提供商)进行更高级别的公平监管。例如,金融机构接收到的服务吞吐量和延迟的相对量会对这些机构产生重大影响。实际上,客户之间低至亚微秒甚至低于百纳秒的服务延迟差异会对这些客户产生财务影响,特别是在进行时间敏感的活动(例如股票交易)时。因此,向客户提供服务公平性和对相对延迟的更强控制的能力能够对客户服务和整个云计算产生巨大影响。

附图说明

为了描述可以获得本公开的上述和其他优点及特征的方式,将通过参考在附图中示出的其特定实施例来呈现上面简要描述的原理的更具体的描述。应理解,这些附图仅描绘了本公开的示例性实施例,因此不应认为是对其范围的限制,本发明的原理通过使用附图以附加的特征和细节来描述和解释,其中:

图1a示出了具有网络设备之间的互连以及互连之间的时钟速率差异的示例网络架构的示意图;

图1b示出了具有网络设备之间的互连以及互连之间的延迟的示例网络架构的示意图;

图2示出了用于网络设备之间的确定性的、校准的、和同步的互联的示例网络架构的示意图;

图3示出了具有致使延迟净差量为零的经校准的互联的示例架构的示意图;

图4示出了示例方法实施例;

图5示出了示例网络设备;以及

图6a和图6b示出了示例系统实施例。

具体实施方式

以下详细讨论本公开的各种实施例。虽然讨论了具体实施方式,但应该理解,这仅是出于说明目的而进行的。相关领域的技术人员将认识到,在不脱离本公开的精神和范围的情况下可以使用其他组件和配置。

概览

在独立权利要求中阐述了本发明的各个方面,并且在从属权利要求中阐述了优选特征。一个方面的特征可以单独应用于每个方面或者与其他方面组合应用。

本公开的附加特征和优点将在下面的描述中阐述,并且部分地将从描述中显而易见,或者可以通过实践本文公开的原理来获知。借助于所附权利要求中特别指出的要素和组合,可以实现和获得本公开的特征和优点。根据以下描述和所附权利要求,本公开的这些和其他特征将变得更加显而易见,或者可以通过实践本文阐述的原理来获知本公开的这些和其他特征。

本文阐述的方法可以用于为客户或实体提供确定性的、校准的、同步的网络互联访问。例如,本文的方法可以用于匹配客户之间的通信中的延迟,以实现针对这些客户的服务公平性。校准不仅可以同步或应对客户网络设备(例如客户的交换机或路由器)之间的链路上的延迟,还可以同步或应对客户网络设备内的内部组件(例如交换机的(一个或多个)入/出端口和交换机的asic(专用集成电路))之间的链路上的延迟。校准还可以应对各种网络设备使用的时钟的时钟速率的任何差异。这可以为校准提供更高的精度。

本文中的方法还可以用于提供关于吞吐量和延迟的差异化服务(例如,高级、基础、尽力而为(besteffort)等),并且可以为客户服务分级标准提供可行性并使收益多样化。差异化服务可以定义不同的性能级别,这可以基于相应的服务协议进行。

公开了用于确定性的、校准的、和同步的网络互联访问的系统、方法和计算机可读存储介质。在一些示例中,系统可以计算与第一网络设备(例如,交换机或路由器)中的第一处理元件(例如,asic)和第二网络设备中的第二处理元件之间的第一链路相关联的第一通信延迟,以及与第一处理元件和第三网络设备中的第三处理元件之间的第二链路相关联的第二通信延迟。第一、第二和第三处理元件可以分别是第一网络设备、第二网络设备、和第三网络设备内的内部组件。例如,第一、第二和第三处理元件可以包括电路(例如asic);控制器;处理器;处理引擎等。

在一些情况下,第一和第二通信延迟可以基于第一网络设备中的第一处理元件、第二网络设备中的第二处理元件和第三网络设备中的第三处理元件之间的通信的往返时间。此外,除了计算第一和第二延迟之外,系统还可以确定平均延迟、最小延迟、最大延迟、标准偏差等。此外,可以基于平均延迟、当前延迟、中值、标准偏差等来计算第一和第二通信延迟。

接下来,系统可以确定第一和第二通信延迟之间的差量。例如,系统可以比较第一和第二通信延迟并确定第一和第二通信延迟之差。

系统还可以确定与第一网络设备、第二网络设备和第三网络设备相关联的各个时钟速率是否具有一个或多个时钟速率差异,以生成时钟速率差异确定。例如,第一网络设备、第二网络设备、和第三网络设备可以具有网络设备可以用来确定本地时间的内部时钟(例如晶体振荡器时钟)。系统可以分析内部时钟以标识时钟的时钟速率(例如,频率)的任何差异。

接下来,基于相应的第一和第二延迟之间的差量和时钟速率差异确定,系统可以确定用于同步相应的第一和第二延迟的一个或多个偏移值。偏移值可以定义用于延迟相关业务(traffic)的特定设置,以便协调或均衡第一和第二通信延迟。

基于一个或多个偏移值,系统可以校准第一和第二链路中的一个或多个上的业务。校准可以包括延迟在第一和第二链路中的一个或多个上的业务。系统可以校准输入业务以及输出业务。这可以确保在所有第一和第二链路上的传入和/或传出的通信都经历相同或基本相同的延迟。

在一些示例中,第一链路和第二链路可以包括相应的子链路,其可以包括网络设备之间的相应的端口到端口链路(例如,将第一网络设备上的端口与第二网络设备上的端口连接的链路,以及将第一网络设备上的端口与第三网络设备上的端口连接的链路)以及每个网络设备上的端口与每个网络设备上的处理元件之间的相应的内部链路。

例如,第一链路可以包括将第一网络设备上的端口连接到第二网络设备上的端口的链路a,以及将第一网络设备上的端口连接到第一网络设备上的第一处理元件的链路b和将第二网络设备上的端口连接到第二网络设备上的第二处理元件的链路c。在这里,我们可以将链路a称为“外部链路”,并将链路b和链路c为“内部链路”,它们共同构成第一链路。类似地,第二链路可以包括将第一网络设备上的端口连接到第三网络设备上的端口的链路d,以及将第一网络设备上的端口连接到第一网络设备上的第一处理元件的链路b和将第三网络设备上的端口连接到第三网络设备上的第三处理元件的链路e。在这里,我们可以将链路d称为“外部链路”,并将链路b和链路e为“内部链路”,它们共同构成第二链路。

通过将链路分段为外部和内部子链路,我们不仅可以计算、应对和调整网络设备与客户之间的外部连接的延迟,还可以计算、应对和调整客户网络设备内的内部连接的延迟。这在许多情况下可能是有利的。例如,在某些情况下,通过确保对网络设备进行互连的介质(例如,导线)的长度基本相同和/或对网络设备进行互连的介质的材料或类型是相同或等同的,可以协调客户之间的外部链路(即,客户网络设备的端口之间的链路)。这有助于确保客户之间的外部连接所经历的延迟基本相同。然而,即使通过例如确保外部连接是基于相同的介质类型或材料和/或相同的介质长度来均衡外部连接之间的延迟,客户的相应网络设备内的内部连接也可能产生延迟差异或波动。因此,通过将子链路延迟纳入考虑,我们便可以应对源于外部连接和内部连接两者的延迟。

为了说明,基于我们先前的示例,如果链路a和d(它们分别提供第一网络设备和第二网络设备之间以及第一网络设备和第三网络设备之间的外部链路)由相同类型的、切制成相同长度的的介质组成,则第一和第二网络设备之间以及第一和第三网络设备之间的外部链路(即链路a和d)的延迟可以基本相等。然而,由于内部链路(链路b和/或c)的更长延迟,第一网络设备和第二网络设备之间的第一链路可能仍会经历比第二链路更长的延迟。

因此,为了均衡第一链路和第二链路之间的延迟,我们可以标识由与第一链路相关联的内部链路(即,链路b和c)和与第二链路相关联的内部链路(即,链路b和e)生成的差量。然后,我们可以通过标识偏移值来均衡延迟,并基于内部链路的差量来校准业务。通常,可以基于较慢的内部链路将偏移值和校准施加到较快的内部链路。例如,如果第二链路的内部链路的延迟比第一链路的内部链路的延迟短1s,那么我们可以将第二链路的延迟增加1s以协调第一和第二链路经历的总延迟。

描述

本文的技术解决了本领域对提高服务公平性以及性能校准和同步的需求。公开了用于确定性的、校准的、和同步的网络互联访问和通信的系统、方法和计算机可读介质。本公开以对链路延迟和时钟速率差异的讨论开始。然后将对用于确定性的、校准的、和同步的网络互联访问和通信的技术进行更详细的讨论。本公开将以对示例网络和计算系统和设备的描述结束。

现在转到图1a,其示出了示例网络架构100的示意图,其具有网络设备之间的互连以及互连之间的时钟速率差异。架构100包括通过交换机102互连的交换机102、106、110、114、118。交换机102可以连接到其他交换机106、110、114、118,并且可以充当其他交换机106、110、114、118之间的桥接器和/或其他交换机106、110、114、118的数据源。

交换机102、106、110、114、118可以是以下各项的一部分:同一网络或数据中心(例如云数据中心);同一系统(例如具有多个交换机或组件的系统);同一交换机和/或网络设备集群;或一个或多个不同的网络或数据中心。此外,交换机102、106、110、114、118可以经由一个或多个电缆或介质互连,例如一个或多个光缆,铜缆,无线连接,以太网电缆,和/或任何其他光纤的、电的、或无线介质。此外,交换机102、106、110、114、118可以直接或间接连接。例如,交换机102、106、110、114、118之间的链路可以包括一个或多个跳、节点、设备、网络、组件、和/或路径。

交换机102、106、110、114、118可以包括处理元件104、108、112、116、120。处理元件104、108、112、116、120可以包括电路(例如专用集成电路(asic));控制器(例如基板管理控制器);处理器;软件模块;软件代码等。此外,处理元件104、108、112、116、120可以与相应的客户130-138相关联。例如,处理元件104可以与源客户相关联,处理元件108可以与客户a相关联,处理元件112可以与客户b相关联,处理元件116可以与客户c相关联,并且处理元件120可以与客户d相关联。为此,处理元件104、108、112、116、120可以被配置为提供用于相关联的客户130-138以及它们各自的客户的数据和/或服务和/或相关联的客户130-138以及它们各自的客户的数据和/或服务。例如,处理元件104、108、112、116、120可以被配置为支持金融交易并处理特定金融机构或银行(例如,源客户和客户a-d)以及它们各自的客户的金融数据。

客户a-d(132-138)可以经由源客户130互连。源客户130可以充当到其他客户(客户a-d(132-138))的数据和/或服务的源。例如,源客户130可以是数据或服务源,例如向其他实体或客户提供数据的数据或信息提供商,而客户a-d(132-138)可以是从源客户130接收数据的金融机构。作为另一示例,源客户130可以是互联网服务提供商,并且客户a-d(132-138)可以是互联网客户或公司。其他示例也在本文中被构想,因为这些示例仅是出于清楚和解释的目的而提供的非限制性示例。

此外,交换机102、106、110、114、118和/或处理元件104、108、112、116、120可以包括被配置为维持本地时间的内部时钟。通常,设备的内部时钟可能在时钟速率(例如,频率)上具有可能由诸如使用年限、温度之类的一个或多个因素引起的微小差异。在一些示例中,时钟速率差异可以被描述为百万分率(ppm)。一些系统和标准可以设置最大或阈值时钟速率差异。例如,ethernet(以太网)标准允许最大+/-100ppm的时间差异。

时钟速率差异可能会导致延迟和性能上的差异。例如,对于64字节帧的10gbps链路,每个ppm时钟速率差异可以转换为每秒14.88个分组的增加或减少。在图1中,客户130-138之间的链路122-128可以具有时钟速率差异。例如,交换机102和交换机106之间的链路128可以具有+5ppm时钟速率差异,交换机102和交换机110之间的链路122可以具有0ppm时钟速率差异,交换机102和交换机114之间的链路124可以具有+8ppm时钟速率差异,以及交换机102和交换机118之间的链路126可以具有-2ppm时钟速率差异。这些时钟速率差异可导致交换机102、106、110、114、118之间的通信中每秒特定减少或增加的分组。

此外,链路122-128可以包括子链路140-162。子链路140-162可以包括链路122-128的“外部”部分或链路122-128内的“外部链路”以及链路122-128的“内部”部分或链路,其中,该“外部”部分或“外部链路”可以包括网络设备102、106、110、114、118之间的链路(例如,网络设备102、106、110、114、118的入/出端口之间的链路),该“内部”部分或链路可以包括网络设备102、106、110、114、118上的入/出端口与同一网络设备102、106、110、114、118上的处理元件104、108、112、116、120之间的链路。

例如,网络设备102和网络设备110之间的链路122可以包括子链路146-150。这里,子链路148可以是将网络设备102上的入/出端口与网络设备110上的入/出端口连接的链路。这可以被称为“外部链路”,因为链路的至少一部分在网络设备102、110之外。子链路146可以是将网络设备102上的入/出端口与网络设备102上的处理元件104连接的链路。此外,子链路150可以是将网络设备110上的入/出端口与网络设备110上的处理元件112连接的链路。子链路146、150可以被称为“内部链路”,因为链路的至少一部分在网络设备102、110内。

类似地,链路124-128可以包括子链路(即,链路140-144、152-162),其可以包括“外部链路”(即,链路142、154、160)和“内部链路”(即,链路140、144-146、150-152、156-158、162)。外部链路142、148、154、160每个都可以包括一个或多个跳和/或介质,例如光缆和/或铜缆。“外部链路”142、148、154、160的延迟可以至少部分基于用于建立链路148的介质的材料和/或介质和/或链路的长度。在一些配置中,“外部链路”142、148、154、160之间的延迟可以通过调整用于建立这些链路的介质的长度和/或材料来协调或显著地均衡。例如,通过实现相同长度的光缆和/或铜缆来建立连接,可以显著地均衡“外部链路”142、148、154、160的延迟。为了阐明,可以使用x长度的铜缆来建立链路142、148、154、160,这可以使所有“外部链路”142、148、154、160的延迟基本相等。

“内部链路”140、144-146、150-152、156-158、162可以包括设备上的入/出端口与该设备上的处理元件之间的内部连接。因此,“内部链路”可以包括设备端口和处理元件之间的电连接(例如,总线、接口等)。“内部链路”140、144-146、150-152、156-158、162之间的延迟可以基于许多因素而变化,例如总线类型、交换机类型、形状因子、处理元件的类型、内部组件的位置、内部组件的配置等。因此,即使将链路122-128内的“外部链路”142、154、160的延迟均衡(例如,通过调整互连所使用的介质的长度和/或类型),链路122-128所经历的总体延迟可能仍会基于链路122-128内的“内部链路”的延迟之间的差异而变化。

因此,本文公开的方法可以通过不仅应对与“外部链路”142、154、160相关联的延迟而且还可以应对与“内部链路”140、144-146、150-152、156-158、162相关联的延迟来均衡或协调链路122-128之间的延迟。因此,本文阐述的方法可以用于根据需要来均衡、协调和/或校准链路122-128的总延迟,即使在“内部链路”140、144-146、150-152、156-158、162和/或“外部链路”142、154、160内存在延迟差异时亦如此。

参考图1b,客户130-138之间的链路122-128可以具有各自的延迟。例如,交换机102和交换机106之间的链路128可以具有+20ps(皮秒)延迟,交换机102和交换机110之间的链路122可以具有+10ps(皮秒)延迟,交换机102和交换机114之间的链路124可以具有+10ps(皮秒)延迟,以及交换机102和交换机118之间的链路126可以具有15ps(皮秒)延迟。这些延迟是基于链路122-128内的任何子链路(包括“内部链路”140、144-146、150-152、156-158、162和“外部链路”142、154、160)的组合延迟的。

如图所示,一些链路122-128可以具有较长或较短的延迟。即使链路122-128中的“外部链路”142、154、160的延迟都通过例如对在用于将网络设备从端口连接到端口的“外部链路”142、154、160中所使用的介质的(一个或多个)类型和/或长度进行匹配来协调或均衡,也会存在延迟差异。例如,不同的延迟可以是与链路122-128内的“内部链路”140、144-146、150-152、156-158、162相关联的延迟差异的结果。

客户之间的不同延迟会导致不公平。因此,延迟较长的客户希望具有经校准的通信,使得所有客户实现相同的延迟级别。

如下面进一步描述的,可以高精度地校准链路122-128上的通信,以确保链路122-128上的所有通信经历相同或基本相同的延迟,以提高公平性。例如,对于链路122-126,链路122-126上的通信可以被延迟以实现+20ps延迟,如链路128的情况。这可以确保所有链路122-128以相同的延迟(例如,+20ps)操作。

图2示出了用于网络设备之间的确定性的、校准的、和同步的互联的示例网络架构200的示意图。客户a-d(132-138)可以通过源客户130并经由链路122-128互连。如前所述,链路122-128可以包括“内部链路”140、144-146、150-152、156-158、162以及“外部链路”142、154、160。此外,链路122-128可以具有延迟上的差异,这可以归因于“内部链路”140、144-146、150-152、156-158、162和/或“外部链路”142、154、160。因此,源客户130可以被配置为执行延迟、时钟、和时钟速率校准和/或同步,如下面进一步解释的。

驻留在交换机102上的源客户130的处理元件104可以包括差量计算器214。处理元件104上的差量计算器214可以包括一个或多个模块、软件程序或代码、固件、逻辑组件等,用于计算延迟和/或时钟速率差异和统计。差量计算器214可以计算链路122-128上的通信的往返时间(rtt),以确定延迟参数/状况,以及其他性能统计(例如,分组丢失、吞吐量、活动等级等)。链路122-128上的rtt可以包括归因于“内部链路”140、144-146、150-152、156-158、162以及“外部链路”142、154、160中的每一者的时间或延迟。

差量计算器214可以计算每个链路的平均延迟和/或rtt、每个链路的最大延迟和/或rtt、每个链路的最小延迟和/或rtt、每个链路的标准偏差等。这样的计算可以包括针对“内部链路”140、144-146、150-152、156-158、162、“外部链路”142、154、160中的每一者的计算,以及针对链路122-128内的所有链路的组合计算。

差量计算器214还可以对针对每个链路计算出的延迟和/或rtt进行比较,以确定各个链路122-128之间的差量延迟或rtt。差量延迟或rtt可以基于与链路122-128的“内部链路”140、144-146、150-152、156-158、162和“外部链路”142、154、160相关联的计算而变化。在一些情况下,差量延迟或rtt可能在很大程度上取决于链路122-128的“内部链路”140、144-146、150-152、156-158、162的延迟和rtt。例如,如果“外部链路”142、154、160的延迟或rtt被协调或均衡(例如,通过调整相关联的介质的类型和/或长度),则链路122-128的延迟或rtt之间的任何差异将主要或甚至完全基于与跟链路122-128相关联的“内部链路”140、144-146、150-152、156-158、162相关联的差异。

差量计算器214可以周期性地更新计算(包括差量)以保持数据是最新的。当计算延迟、rtt和/或差量时,差量计算器214可以执行多个测试或收集多个结果以用于计算。这会影响计算的准确性。例如,差量计算器214可以基于例如在一段时间内获得的链路或子链路的20个rtt值来计算该链路和/或子链路的平均rtt。

差量计算器214还可以计算端口和/或设备102、106、110、114、118之间的时钟速率差异。例如,差量计算器214可以检测设备102、106、110、114、118中的每一者的相应时钟速率和/或设备102、106、110、114、118中的每一者上的每个端口的相应时钟速率。然后,差量计算器214可以比较不同的时钟速率,以确定设备102、106、110、114、118和/或设备102、106、110、114、118的端口的各个时钟之间的时钟速率差异。

差量计算器214可以获得针对每个时钟的测量结果和/或数据,并计算平均时钟速率和/或时钟速率差异、最大时钟速率和/或时钟速率差异、最小时钟速率和/或时钟速率差异、和/或标准偏差。差量计算器214可以将时钟的任何计算值与任何其他时钟的相应计算值进行比较。例如,差量计算器214可以比较设备102、106、110、114、118和/或设备102、106、110、114、118的端口的时钟中的每个时钟的相应平均时钟速率、最大时钟速率、最小时钟速率、和标准偏差,以确定时钟速率差量以及其他相对时钟速率统计。

控制器212可以从差量计算器214收集数据和计算,包括任何rtt、延迟、和时钟速率差异数据和计算。在一些示例中,控制器212可以是应用策略基础设施控制器(apic)。例如,控制器212可以是apic,其被配置为在与架构200相关联的软件定义网络(sdn)或应用中心基础设施(aci)中执行自动化和管理操作。

控制器212可以使用包括相应延迟差量和时钟速率差量的数据来编程或校准输入/输出校准器202-208。例如,控制器212可以为链路122-128中的每一者编程起始值。起始值可以被定义以在各个链路122-128之间创建延迟平衡点,这将导致链路122-128之间的延迟差量为零(0)或基本上接近零(0)。因此,链路122-128中的每一者将被设置为具有相同的延迟级别,除非输入/输出校准器202-208还被配置为针对一个或多个客户实现差异化服务,如下面进一步解释的。起始值可以通过延迟一个或多个链路122-128上的通信来确保所有链路122-128经历相同的延迟量,从而实现延迟平衡或均匀性。任何特定链路的延迟量可以基于各个链路122-128之间以及设备102、106、110、114、118之间的延迟差量和时钟速率差量或差异。

例如,如果链路a具有5s延迟并且链路b具有7s延迟,则控制器212可以对链路a的输入/输出校准器进行编程以根据需要延迟通信以在链路a处实现7s延迟。结果是,链路a和链路b都具有匹配的延迟7秒。当延迟通信时,输入/输出校准器可以考虑链路a和/或链路b处的时钟速率,以确保通信中的任何延迟将在链路a和b上实现同步或相等的延迟。

输入/输出校准器202-208可以根据需要校准输入和输出通信,以维持链路122-128上的匹配或基本相似的延迟。校准可以调整并考虑在链路122-128的每个段(包括“内部”段(即,链路140、144-146、150-152、156-158、162)和“外部”段(即142、154、160))处产生的延迟。

例如,可以通过调整对交换机102、110进行互连的(一个或多个)电缆的长度来控制从交换机102到交换机110的链路122的“外部”段(即,链路148)的延迟。然而,简单地调整与“外部”段148相关联的电缆的长度不会应对由在交换机102、110内部的段(即,“内部”段146、150)处产生的任何延迟,所述在交换机102、110内部的段例如为每个交换机端口和每个交换机内部的处理元件之间的电连接/通信。然而,输入/输出校准器202可以校准链路122上的通信,以不仅应对由“外部”段148(例如,交换机102、110上的端口之间的连接)产生的任何延迟,而且还应对由“内部”段146、150(可以包括交换机102、110内部的电连接/通信)产生的任何延迟。

例如,假设链路122的连接交换机102、110的“外部”段148具有5s延迟,从交换机110上的端口到交换机110上的处理元件112的“内部”段150具有1s延迟,并且从交换机102上的端口到交换机102上的处理元件104的“内部”段146具有2s延迟。因此,链路122具有8s的总延迟(即,“外部”段148+“内部”段150+“内部”段146)。假设链路122上的延迟需要调整到10s以使延迟与链路124-128的延迟相协调。然后,输入/输出校准器202可以校准交换机102/处理元件104的传入和传出的通信,以将链路122的总延迟从8s调整到10s,使得与链路124-128的延迟一致。

因此,这种校准不仅可以应对与链路122的“外部”段148相关联的延迟,还可以应对与链路122的“内部”段146、150相关联的延迟。在一些情况中,链路122-128的“外部”段142、154、160可以被预均衡或协调(例如,通过调整一个或多个因素,例如介质的类型或长度)。在这种情况下,由“内部”段140、144-146、150-152、156-158、162产生的延迟将在很大程度上决定链路122-128之间的总差异。因此,由输入/输出校准器202执行的校准可以在很大程度上均衡或协调链路122-128的“内部”段140、144-146、150-152、156-158、162之间的延迟差异。

输入/输出校准器202-208还可以针对差异化服务(例如,高级、基础、尽力而为)执行校准。控制器212可以根据需要对链路122-128中的每一者的起始值进行编程,以根据特定的服务等级协议提供差异化服务。例如,输入/输出校准器202-208可以校准客户130-138之间的通信以具有相等的延迟。然而,如果客户134为高级服务支付额外费用,则输入/输出校准器202可以校准去往和/或来自客户134的通信以具有比其他客户130、132、136、138更短的延迟。输入/输出校准器202可以通过降低链路122的总延迟和/或增加链路124-128的延迟来相对于客户130、132、136、138的链路124-128的延迟地降低客户134的链路122的延迟。

输入/输出校准器202-208可以动态地训练和调整校准(例如,延迟、时滞等)。此外,差量计算器214可以周期性地重新计算差量和统计,用于重新训练输入/输出校准器202-208。此外,当新客户加入架构200时,该客户可被调整到平衡点。当客户加入时也可以重新计算平衡点,以进行任何必要的改变并相应地对输入/输出校准器202-208进行编程。

客户130-138还可以基于一个或多个时间同步协议或机制(例如ieee1588)来同步它们各自的时钟。例如,与客户130相关联的处理元件104可包括用于与处理元件108、112、116、120上的模块218-224同步时钟/时间的模块216。模块218-224可以被配置为从模块,并且模块216可以被配置为主模块。例如,模块216可以控制与模块218-224进行的时间同步,并且可以与模块218-224通信以维持交换机106、110、114、118上的时钟与交换机102上的时钟一致或同步。经同步的时钟可以影响客户之间的通信以及各个延迟计算和校准。

模块216-224可以是软件和/或硬件模块。例如,模块216-224可以包括软件代码或指令、固件、芯片、控制器、存储器组件、处理组件、电路、和/或任何其他可编程组件。

一旦通信跨各种客户被校准,源客户130就可以以在客户130-138之间净差量为零(0)的延迟与其他客户132-138进行数据和/或服务的通信。

图3示出了具有导致净差量为零(0)的延迟的经校准的互联的示例架构的示意图。如图所示,链路122-128都被校准,因此链路122-128上的通信都经历相同或基本相同的延迟(即零差量)。尽管存在电缆类型或尺寸、内部延迟、电通信的差异或延迟、时钟速率差异之类的差异,但仍可实现此校准结果。因此,客户a-d都可以以带宽和延迟上相等的公平性来从源客户接收数据和/或服务。

例如,可以调整每个链路122-128的“内部”段140、144-146、150-152、156-158、162和“外部”段142、154、160之间的组合差量以实现链路122-128的总延迟之间的零净差量。在一些情况下,所有链路122-128的总延迟可以基于具有最大延迟的链路的延迟。例如,如果链路122具有10s的总延迟,其中链路124-128中的每一者具有小于6s的总延迟,则可以通过将链路124-128的延迟增加到10s来实现针对所有链路122-128的净零延迟。这可以如先前所解释的那样通过例如调整与链路122-128相关联的延迟偏移和/或时钟差异来实现。

设备102、106、110、114、118在本文中被描述为交换机(例如,一层和/或二层交换机)。然而,这仅仅是出于清楚和解释的目的。实际上,在本文中其他设备也被构想,例如路由器、网关、服务器或任何其他网络或计算设备。

已经公开了一些基本系统组件和概念,本公开现在转向图4中示出的示例性方法实施例。为了清楚起见,根据图2中示出的被配置为实施该方法的架构200来描述该方法。本文概述的步骤是示例性的,并且可以以其任何组合实现,包括排除、添加、或修改某些步骤的组合。

在步骤400,差量计算器214可以计算与交换机102中的处理元件104(例如,asic)、交换机106中的处理元件108、交换机110中的处理元件112、交换机114中的处理元件116、和/或交换机118中的处理元件120之间的链路122相关联的通信延迟。处理元件104、108、112、116、120可以分别是交换机102、106、110、114、118内的内部组件和/或与交换机102、106、110、114、118耦合。例如,处理元件104、108、112、116、120可以包括电路,例如asic;控制器;处理器;处理引擎;软件/硬件模块等。

链路122-128中的每一者可包括多个链路段,包括“内部”段140、144-146、150-152、156-158、162和“外部”段142、154、160。链路(例如,链路122)中的一个段可以是“内部”段,其可以包括交换机的网络端口(例如,入和/或出端口)与该交换机的处理元件(例如,asic)之间的电路径或支路。例如,链路122的一个段可以是“内部”链路146,其可以包括交换机102上的端口和处理元件104之间的电路径。该路径可以包括内部的电缆或电线、总线、电路、接口、引脚等。链路(例如,链路122)中的另一段可以是“外部”段148,其可以包括交换机102、110之间的外部路径或支路,例如交换机102、110之间的光纤、铜缆、和/或无线连接。该外部链路段可以包括可以遍历一个或多个设备、网络、地理位置等的子段。例如,假设交换机102驻留在加利福尼亚并且交换机110驻留在马里兰州。“外部”链路段148可以是加利福尼亚的交换机102和马里兰州的交换机110之间的光纤连接。

链路(例如,链路122)可以具有又一“内部”段,该“内部”段可以是另一交换机的网络端口和该交换机的处理元件之间的电路径或支路。例如,链路122的第二“内部”段可以是“内部”段150,其包括交换机110的端口和交换机110中的处理元件112之间的内部路径或连接。因此,整个链路122可以包括“内部”段146、150和“外部”段148。如前所述,每个段还可以包括例如一个或多个子段或跳。

通信延迟可以应对链路122-128中的每个链路段的所有相应延迟。例如,链路122的通信延迟可以基于处理元件104和处理元件112之间的通信的往返时间来计算,包括所有“内部”和“外部”段。此外,除了计算通信延迟之外,差量计算器214还可以确定平均延迟、最小延迟、最大延迟、标准偏差等。此外,通信延迟可以基于平均延迟、当前延迟、中值、标准偏差等。

在步骤404,差量计算器214可以确定与交换机102、106、110、114、118相关联的相应时钟速率是否具有一个或多个时钟速率差异,以生成时钟速率差异确定。例如,交换机102、106、110、114、118可以具有内部时钟(例如晶体振荡器时钟),交换机102、106、110、114、118可以使用它们来确定本地时间。差量计算器214可以分析内部时钟以标识时钟的时钟速率(例如,频率)的任何差异。例如,差量计算器214可以确定交换机102、106、110、114、118的相应时钟速率,并确定时钟之间的时钟速率差量。

差量计算器214还可以确定(一个或多个)平均时钟速率、(一个或多个)最小时钟速率、(一个或多个)最大时钟速率、(一个或多个)标准偏差、和/或其他时钟速率统计。差量计算器214可以使用这样的统计来确定(一个或多个)差量时钟速率(即,(一个或多个)时钟速率差异)。例如,差量计算器214可以计算每个时钟的平均时钟速率,并通过比较每个时钟的平均时钟速率来计算差量时钟速率。

在步骤406,差量计算器214可以确定通信延迟之间的差量。例如,差量计算器214可以比较通信延迟并确定通信延迟之间的差。在一些示例中,在确定通信延迟之间的差量时,差量计算器214可以将任何时钟速率差异纳入考虑。例如,差量计算器214可以调整差量以应对与交换机102、106、110、114、118相关联的时钟之间的时钟速率上的任何差异。然而,在其他示例中,差量计算器214可以基于时钟速率差异来计算差量而不进行任何调整。

在步骤408,差量计算器214可以将计算发送到控制器212。计算可以包括第一和第二延迟之间的差量、时钟之间的任何时钟速率差异或差量(即,时钟速率差异确定)、平均差量延迟或时钟速率、最小延迟或时钟速率、最大差量或时钟速率、延迟或时钟速率的标准偏差、和/或其他计算和统计。控制器212可以接收计算并存储和分析数据。

在步骤410,基于通信延迟之间的差量和时钟速率差异确定,控制器212可以确定用于同步通信延迟的一个或多个偏移值。偏移值可以定义用于延迟去往特定链路和/或来自特定链路的业务的特定设置,以便协调或均衡链路122-128上的通信延迟。偏移值可以将延迟的差量、任何时钟速率差异、和/或与延迟和时钟速率相关的任何其他计算纳入考虑。例如,偏移值可以是确保链路122-128上的业务经历相同或基本相同的延迟所需的预定延迟量,即使计算出在延迟和时钟速率上的差量。

在步骤412,控制器212可以对输入/输出校准器202-208中的至少一者进行编程,以基于一个或多个偏移值来校准链路122-128中的至少一者上的业务。在步骤416,输入/输出校准器202-208中的至少一者然后可以基于偏移值来校准链路122-128中的至少一者上的业务,如控制器212所配置的那样。校准可以包括基于偏移值来延迟链路122-128中的至少一者上的业务。输入/输出校准器202-208可以校准输入业务以及输出业务。例如,输入/输出校准器202可以校准处理元件104从处理元件112接收的通信,以及由处理元件104发送到处理元件112的通信。

对链路122-128上的业务的校准可以确保在所有链路122-128上的传入和/或传出通信经历相同或基本相同的延迟。在一些情况下,输入/输出校准器202-208可以非均匀地校准业务,以提供差异化服务(例如高级、基础、尽力而为等)。例如,基于向客户134提供高级服务的服务协议,输入/输出校准器202可以校准链路122-128上的业务,使得链路122上的业务经历比链路124-128中的一个或多个上的业务更低的延迟。客户之间的延迟差异量可以例如基于服务协议,并且可以以层级来定义。例如,不同级别可以指定用于降低客户的延迟或提高另一客户的延迟的不同延迟增量。

因此,在一个非限制性示例中,基于一个或多个服务协议,客户134(即,到源客户130的链路122)可被校准以获得2ps延迟,而客户136(即,到源客户130的链路124)被校准以获得4ps延迟,并且客户138(即,到源客户130的链路126)被校准以获得5ps延迟。在一些示例中,可以设置默认校准以在所有链路上实现相等的延迟,但是客户可以具有获得差异化服务的选项,以便相对于其他客户来调整他们的延迟。

处理元件104还可以包括用于同步交换机102、106、110、114、118和/或处理元件104、108、112、116、120之间的时钟的模块216。模块216可以包括软件和/或硬件。例如,模块216可以是处理器、控制器、可编程组件、电路等。处理元件108、112、116、120还可以包括模块218-224,其被配置为与模块216通信以同步交换机102、106、110、114、118和/或处理元件104、108、112、116、120之间的时钟。例如,模块216可以充当主模块,模块218-224可以是从模块,使得时钟基于主模块216所提供的时钟数据进行同步。经同步的时钟可以提高关于去往/来自各个客户130-138的业务所获得的统计和计算的准确性。

出于清楚和解释的目的,本文将设备102、106、110、114、118描述为交换机。本领域普通技术人员将认识到,本文的概念适用于其他设备,例如服务器、路由器、数据库等。此外,出于解释的目的,输入/输出校准器202-208、差量计算器214、控制器212、和模块216在本文中被描述为驻留在处理元件104中。然而,其他实施方式在本文中被构想。实际上,在各种示例中,输入/输出校准器202-208、差量计算器214、控制器212、和/或模块216可以与处理元件104分离。此外,输入/输出校准器202-208、差量计算器214、控制器212和模块216可以直接或间接地与处理元件104耦合。而且,在一些示例中,输入/输出校准器202-208、差量计算器214、控制器212、和模块216可以驻留在交换机102的内部或外部。

现在,本公开转向图5和图6a-图6b的示例网络设备和系统。

图5示出了适用于高可用性和失效转移(failover)的示例网络设备510。网络设备510包括主中央处理单元(cpu)562、接口568、和总线515(例如,pci总线)。当在适当的软件或固件的控制下动作时,cpu562负责执行分组管理、错误检测、和/或路由功能。cpu562优选地在包括操作系统和任何适当的应用软件的软件的控制下完成所有这些功能。cpu562可以包括一个或多个处理器563,例如来自motorola(摩托罗拉)微处理器系列或mips微处理器系列的处理器。在替代实施例中,处理器563是为控制路由器510的操作而专门设计的硬件。在特定实施例中,存储器561(诸如非易失性ram和/或rom)也构成cpu562的一部分。但是,存储器可以通过许多不同的方式耦合到系统。

接口568通常被提供为接口卡(有时被称为“线卡”)。通常,它们控制数据分组在网络上的发送和接收,并且有时支持与路由器510一起使用的其他外围设备。可提供的接口有以太网接口、帧中继接口、电缆接口、dsl接口、令牌环接口等。另外,可以提供各种超高速接口,例如快速令牌环接口、无线接口、以太网接口、千兆以太网接口、atm接口、hssi接口、pos接口、fddi接口等。通常,这些接口可以包括适合于通过适当介质进行通信的端口。在某些情况下,它们还可以包括独立处理器,在某些情况下还包括易失性ram。独立处理器可以控制诸如分组交换、介质控制和管理之类的通信密集型任务。通过为通信密集型任务提供单独的处理器,这些接口允许主微处理器562有效地执行路由计算、网络诊断、安全功能等。

尽管图5中所示的系统是本发明的一个特定网络设备,它绝不是可以实现本发明的唯一网络设备架构。例如,经常使用具有处理通信及路由计算等的单个处理器的架构。此外,其他类型的接口和介质也可以与路由器一起使用。

无论网络设备的配置如何,它都可以采用被配置为存储用于通用网络操作的程序指令和用于本文所描述的漫游、路由优化和路由功能的机制的一个或多个存储器或存储器模块(包括存储器561)。程序指令例如可以控制操作系统和/或一个或多个应用的操作。一个或多个存储器还可以被配置为存储诸如移动绑定、注册及关联表之类的表。

图6a和图6b示出了示例系统实施例。在实施本技术时,更合适的实施例对于本领域普通技术人员来说是显而易见的。本领域普通技术人员还将容易理解,其他系统实施例也是可能的。

图6a示出了传统的系统总线计算系统架构600,其中系统的组件使用总线605彼此电通信。示例性系统600包括处理单元(cpu或处理器)610和系统总线605,系统总线605将包括系统存储器615的各种系统组件(例如只读存储器(rom)620和随机存取存储器(ram)625)耦合到处理器610。系统600可以包括直接与处理器610连接、邻近于处理器610、或集成作为处理器610的一部分的高速存储器的缓存。系统600可以将数据从存储器615和/或存储设备630复制到缓存612,以供处理器610的快速访问。通过这种方式,缓存可以提供性能提升,其避免处理器610因等待数据而延迟。这些和其他模块可以控制或者被配置为控制处理器610来执行各种动作。其他系统存储器615也可以使用。存储器615可以包括具有不同性能特性的多种不同类型的存储器。处理器610可以包括任何通用处理器和被配置为控制处理器610的硬件模块或软件模块(例如存储在存储设备630中的模块1632、模块2634、和模块3636),以及专用处理器(其中软件指令被结合到实际的处理器设计中)。处理器610可以基本上是完全独立的计算系统,包含多个核或处理器、总线、存储器控制器、缓存等。多核处理器可以是对称的或非对称的。

为了使用户能够与计算设备600之间进行交互,输入设备645可以表示任何数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等。输出设备635也可以是本领域技术人员已知的多个输出机构中的一个或多个。在一些情况下,多模系统可以使用户能够提供多种类型的输入,以与计算设备600进行通信。通信接口645一般可以控制和管理用户输入和系统输出。对在任何特定硬件布置上进行操作没有限制,并且因此这里的基本特征可以在改进的硬件或固件布置被开发出时轻易地被它们替换。

存储设备630是非易失性存储器,并且可以是硬盘或可以存储可由计算机访问的数据的其他类型的计算机可读介质,诸如盒式磁带、闪存卡、固态存储器设备、数字通用盘、编码磁带、随机存取存储器(ram)625、只读存储器(rom)620、及它们的混合。

存储设备630可以包括用于控制处理器610的软件模块632、634、636。其他硬件或软件模块也被构想。存储设备630可以连接到系统总线605。在一个方面,执行特定功能的硬件模块可以包括存储在与必要硬件组件(例如,处理器610、总线605、显示器635等)连接的计算机可读介质内的软件组件,以便执行该功能。

图6b示出了具有芯片组架构的示例计算机系统650,该芯片组架构可用于执行所描述的方法并生成和显示图形用户界面(gui)。计算机系统650是可用于实现所公开技术的计算机硬件、软件、和固件的示例。系统650可以包括处理器655,处理器655表示能够执行被配置为执行所标识的计算的软件、固件和硬件的任何数量的物理和/或逻辑上不同的资源。处理器655可以与芯片组660通信,该芯片组可以控制到处理器655的输入和来自处理器655的输出。在该示例中,芯片组660将信息输出到输出设备665(例如显示器)以及可以对信息进行读取并将其写入存储设备670,存储设备可以包括例如磁介质和固态介质。芯片组660还可以从ram675读取数据并将数据写入ram675。可以提供用于与各种用户接口组件655相接口的桥接器650,用于与芯片组660相接口。这样的用户接口组件655可以包括键盘、麦克风、触摸检测和处理电路、诸如鼠标之类的指点设备等。通常,到系统650的输入可出自机器生成和/或人工生成的各种源中的任一者。

芯片组660还可以与可具有不同物理接口的一个或多个通信接口690相接口。这种通信接口可以包括用于有线和无线局域网的接口、用于宽带无线网络的接口、以及用于个人区域网络的接口。用于生成、显示和使用本文所公开的gui的方法的一些应用可以包括通过物理接口接收有序数据集或者可以通过处理器610分析存储在存储装置670或675中的数据而由机器本身来生成。此外,机器可以通过用户接口组件655接收来自用户的输入,并执行适当的功能(例如通过使用处理器610解释这些输入的浏览功能)。

可以理解,示例系统600和650可以具有一个以上的处理器610,或者是联网在一起以提供更大的处理能力的计算设备的群组或集群的一部分。

总之,描述了用于校准的网络互联访问的技术。在一些实施例中,系统可以计算第一交换机中的第一处理元件和第二交换机中的第二处理元件之间的第一链路的第一通信延迟,以及与第一处理元件和第三交换机中的第三处理元件之间的第二链路相关联的第二通信延迟。系统可以确定第一通信延迟和第二通信延迟之间的差量,以及第一交换机、第二交换机、和第三交换机的相应时钟速率是否具有时钟速率差异,以生成时钟速率差异确定。基于差量和时钟速率差异确定,系统可以确定用于同步第一通信延迟和第二通信延迟的偏移值。基于偏移值,系统可以校准第一链路和/或第二链路上的业务。

出于清楚解释的目的,在一些实例中,本技术可以被呈现为包括各个功能块,包括包含设备、设备组件、以软件体现的方法中的步骤或例程、或者硬件和软件的组合的功能块。

在一些实施例中,计算机可读存储设备、介质、和存储器可以包括包含比特流等的有线或无线信号。

可以使用存储在计算机可读介质中或通过其他方式从计算机可读介质获得的计算机可执行指令来实现根据上述示例的方法。这样的指令可以包括例如使得或以其他方式将通用计算机、专用计算机或专用处理设备配置为执行特定功能或功能组的指令和数据。所使用的部分计算机资源可以通过网络访问。计算机可执行指令可以是例如二进制文件、中间格式指令(诸如汇编语言)、固件、或源代码。可用于存储指令、所使用的信息、和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、具有非易失性存储器的usb设备、网络存储设备等。

实现根据这些公开内容的方法的设备可以包括硬件、固件和/或软件,并且可以采用各种形状因子中的任何一种。这种形状因子的典型示例包括膝上型计算机、智能电话、小型个人计算机、个人数字助理、机架设备、独立设备等。本文所描述的功能也可以体现在外围设备或附加卡中。作为另一示例,这样的功能还可以在单个设备中执行的不同芯片或者不同处理之中的电路板上实现。

指令、用于传送这些指令的介质、用于执行它们的计算资源、以及用于支持这种计算资源的其他结构是用于提供这些公开内容中描述的功能的手段。

尽管使用各种示例和其他信息来解释所附权利要求范围内的各个方面,但是不应基于在这样的示例中的具体特征或布置来暗示对权利要求的限制,因为本领域普通技术人员将能够使用这些示例推导出各式各样的实施方式。此外,尽管已用对结构特征和/或方法步骤的示例特定的语言描述了一些主题,但是应该理解,所附权利要求中定义的主题不必限于这些描述的特征或动作。例如,这样的功能可以被不同地分布或者在除了本文标识的那些组件之外的组件中执行。而是,所描述的特征和步骤是作为所附权利要求的范围内的系统和方法的组件的示例而公开的。

而且,叙述集合中的“至少一个”的权利要求语言(claimlanguage)指示该集合中的一个成员或该集合中的多个成员满足该权利要求。例如,叙述“a和b中的至少一个”的权利要求可以包括仅a、仅b、或a和b。

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