CN116584077A - 分布式计算系统中的网络延迟估计 - Google Patents
分布式计算系统中的网络延迟估计 Download PDFInfo
- Publication number
- CN116584077A CN116584077A CN202180083947.1A CN202180083947A CN116584077A CN 116584077 A CN116584077 A CN 116584077A CN 202180083947 A CN202180083947 A CN 202180083947A CN 116584077 A CN116584077 A CN 116584077A
- Authority
- CN
- China
- Prior art keywords
- node
- network
- round
- route
- trip route
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本文公开了用于计算机网络中的网络延迟估计的技术。一种示例技术包括指示计算机网络中的第一节点与第二节点沿着第一节点与第二节点之间的第一往返路由和第二往返路由分别执行追踪路由操作。第一往返路由包括第一节点与第二节点之间的现有往返路由的入站网络路径和与入站网络路径相反的出站网络路径。第二往返路由具有现有往返路由的出站网络路径和与出站网络路径相反的入站网络路径。该示例技术还包括在从附加追踪路由操作接收到追踪路由信息时,基于接收到的附加追踪路由信息来确定现有往返路由的入站网络路径与出站网络路径之间的延迟差。
Description
背景技术
分布式计算系统通常包括路由器、交换机、网桥和互连大量服务器、网络存储设备或其他计算设备的其他类型的网络设备。各个服务器可以托管一个或多个虚拟机(“VM”)、容器、虚拟交换机或其他虚拟功能。虚拟机或容器可以促进针对各个用户的适当应用的执行,以向用户提供期望的云服务或其他适当的计算服务。
发明内容
提供本发明内容是为了以简化形式介绍一组概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用来限制所要求保护的主题的范围。
数据中心或其他大规模分布式计算系统可以提供诸如虚拟机、容器或应用的计算资源作为用户经由计算机网络可访问的计算服务。计算服务还可以经由计算机网络彼此通信以交换数据。例如,在线市场(例如,证券交易所、货币交易所、商业交易所、在线拍卖平台等)的源虚拟机可以执行应用以提供监控在线交易/竞价并且将价格数据分发给订阅信息源的多个用户的计算服务。这样,源虚拟机可以被配置为经由计算机网络将价格数据传输到分布式计算系统中的各种其他虚拟机或容器。然后,其他虚拟机、容器或应用可以将从信息源传输的价格数据呈现给用户以供消费和动作。
延迟估计可以用于促进这种数据中心或大规模分布式计算系统中的操作的各个方面。例如,可以周期性地同步在各种虚拟机、容器或服务器上运行的时钟,以允许彼此协调操作。在数据中心中的时钟同步过程期间,同步消息的分组可以从主节点(例如,主时钟)传输到次节点,其中时间戳偏移以主节点与次节点之间的估计延迟。
通常,可以通过将主节点与次节点之间的往返时间(RTT)除以2来估计延迟偏移。RTT通常按如下方式测量:
RTT=(t4-t1)-(t3-t2)
其中,t1是来自主节点的请求分组传输的时间戳;t2是在次节点处请求分组接收的时间戳;t3是来自次节点的响应分组传输的时间戳;以及t4是在主节点处响应分组接收的时间戳。因此,假设主节点与次节点之间没有时钟速率差异(即,两个时钟上的时间计数间隔相同或基本相似),则次节点处的时钟可以如下设置:
前述时钟同步技术假设主节点与次节点之间的单向路径延迟是测量的RTT的一半。然而,这一假设在某些情况下可能并不准确。例如,当请求分组从主节点传输到次节点时,请求分组可以沿着不同于通过其传输响应分组的入站网络路径的出站网络路径穿过计算机网络。因此,入站网络路径可以包括比出站网络路径多得多的数个网络跳,使得入站网络延迟可以是出站网络延迟的两倍。因此,假设入站和出站网络延迟值相等将导致主节点与次节点之间的时钟同步不准确。
所公开技术的数个实施例可以通过实现追踪路由技术来解决前述困难的数个方面,以将单路径网络延迟分配给数据中心或其他适当类型的分布式计算系统中的计算机网络中的网络路径。在某些实现中,当测量主节点与次节点之间的RTT时,延迟控制器可以被配置为使主节点和次节点追踪主节点与次节点之间、对应于所测量的RTT的网络路径的特定连接。在一个示例中,延迟控制器可以被配置为例如通过在主节点和/或次节点上执行追踪路由命令来导致在主节点与次节点之间传输追踪路由分组。可以实现追踪路由命令来标识和存储主节点与次节点之间的往返路由的入站网络路径和出站网络路径。入站路径和出站路径可以由主节点与次节点之间的底层网络中的网络设备(例如,交换机、路由器等)的一个或多个网络标识符来标识(例如,IP地址、MAC地址等)。在其他实现中,主节点和次节点可以被编程为自动地、周期性地或以其他适当的方式执行追踪路由操作。在其他示例中,延迟控制器可以被配置为使主节点和次节点执行类似追踪路由的操作而不执行诸如追踪路由命令的外部命令。
在某些实施例中,各个主节点和/或次节点可以是虚拟机、容器、或服务器上的其他适当类型的虚拟化组件或其他适当类型的主机。为了促进追踪路由操作,主机可以被配置为经由操作系统、管理程序或网络设备驱动器中的软件组件向虚拟组件展示这样的功能。例如,管理程序可以被配置为提供允许虚拟机或容器请求追踪路由操作的应用编程接口(API),如下所述。在其他示例中,操作系统可以将这样的功能作为虚拟网络接口卡(NIC)的部分提供给虚拟机或容器。
一般而言,追踪路由命令是网络诊断功能的示例,该网络诊断功能可以用于标识分组在计算机网络中从源穿越到目的地的网络路径。追踪路由功能可路径用于列出例如源(例如,主节点)与目的地(例如,次节点)之间的中间网络设备或“跳”,分组到达目的地或无法到达目的地并且在中间网络设备处被丢弃之前经过这些中间网络设备或“跳”。
追踪路由功能通常通过使沿着网络路径的每个网络设备向调用追踪路由功能的源(例如,主节点)返回消息(诸如,互联网控制消息协议(ICMP)消息)来操作。分组通常包含生存时间(TTL)值,该值指定在分组到期之前分组可以在计算机网络中穿越的跳数。每次分组穿过网络设备时,分组的TTL值递减预置量(例如,1)。当分组的TTL值在中间网络设备处到期时(例如,TLL值达到0),网络设备丢弃该分组并且向调用追踪路由功能的源传输“TTL超时”消息。
追踪路由功能通常使用IP数据报在互联网协议(IP)网络上操作。在一些实施例中,源可以使用追踪路由功能来传输一系列具有不同TTL值的ICMP回响请求分组,以标识中间网络设备。例如,源可以调用追踪路由功能来初始地将来自源的具有TTL值为1的第一分组发送到目的地。沿着网络路径的第一网络设备将第一分组的TTL递减到0,并且因为TTL已经到期而丢弃第一分组。然后,第一网络设备向源返回“TTL超时”消息。基于返回的“TTL超时”消息,源可以将第一网络设备标识为去往目的地的网络路径上的第一跳。然后,源可以向目的地发送TTL值为2的第二分组。当接收到第二分组时,沿着网络路径的第一网络设备将第二分组的TTL递减为1,并且将第二分组转发到网络路径中的第二网络设备。当接收到第二分组时,沿着网络路径的第二网络设备将第二分组的TTL递减到0,并且因为TTL已经到期而丢弃第二分组。然后,第二网络设备向源返回”TTL超时”消息。基于从第二网络设备返回的“TTL超时”消息,源可以将第二网络设备标识为从源到目的地的网络路径上的第二跳。
然后,源可以将具有TTL为3、4、5等的附加分组发送到目的地,从而使沿着网络路径的每个后续网络设备返回“TTL超时”消息。因此,基于来自后续网络设备的“TTL超时”消息,源可以发现网络路径(称为“出站网络路径”)中的中间跳,直到到达目的地或达到最大TTL值并且追踪路由操作结束。目的地还可以调用相同的追踪路由功能来发现从目的地到源的中间网络设备(被称为“入站网络路径”)。如下面更详细地讨论的,具有相同或基本相似的5元组(例如,源IP地址、目的地IP地址、源端口、目的地端口和传输协议)的分组可以用于穿过与沿着网络路径的原始分组流相同的中间网络设备或连接。然后,源和目的地可以向延迟控制器报告具有源和目的地之间的入站网络路径和出站网络路径两者的网络路由。
在获得网络路由的追踪路由数据时,延迟控制器可以被配置为确定入站网络路径和出站网络路径是一般对称还是近似对称。如本文所使用的,术语“对称网络路径”一般指具有以彼此相同的序列排列的相同中间网络设备的网络路径。因此,入站分组将沿着相同网络设备,与出站分组相反方向穿过计算机网络。响应于确定入站网络路径和出站网络路径是对称的,延迟控制器可以被配置为相应地指示并且将延迟偏移设置为源与目的地(例如,主节点和次节点)之间测量的RTT的一半。
另一方面,响应于确定入站网络路径和出站网络路径是不对称的,延迟控制器可以被配置为指示入站延迟和出站延迟相等的假设是不准确的。在某些实现中,延迟控制器还可以被配置为使主节点和次节点针对基于非对称网络路径的入站网络路径和出站网络路径构建的对称往返路由对,执行追踪路由操作和RTT测量。例如,可以使用出站网络路径和与出站网络路径相反的新入站网络路径来构建第一对称往返路由。可以使用入站网络路径和与入站网络路径相反的新出站网络路径来构建第二对称往返路由。
通过经由源路由来操纵5元组,可以引导分组遵循两个构建的对称往返路由,根据该源路由,在测量RTT的同时,源指定分组通过计算机网络(或经由其他适当的手段)所采用的网络路由。通过比较两条对称往返路由的测量RTT,延迟控制器可以配置为扣除源与目的地之间的原始网络路由的入站网络路径和出站网络路径的延迟差(θ)如下:
其中,RTT1是第一对称往返路由的RTT,而RTT2是第二对称往返路由的RTT。在某些实施例中,具有非对称入站网络路径与出站网络路径之间的延迟差(θ),延迟控制器然后可以如下调整时钟同步分组的延迟偏移:
其中RTT是主节点与次节点之间的往返时间;t1是主节点上的时钟时间;以及t2是次节点上的时钟时间。在其他实施例中,延迟控制器可以被配置为通过改变5元组来指示一个或多个对称网络路径在计算机网络中在主节点与次节点之间是可用的。然后,延迟控制器可以利用所发现的对称网络路由,以利用使用改变的5元组额外测量的RTT来进行延迟估计。
在其他实现中,代替构造和引导分组遵循两个构建的第一对称往返路由和第二对称往返路由,延迟控制器可以被配置为继续监控来自计算机网络中的主、次或其他节点的追踪路由数据,以寻找至少近似匹配(例如,>90%、>95%、>99%、100%或其他适当阈值)第一和第二对称往返路由的网络路由(或部分路由)。这样的追踪路由数据然后可以用于估计非对称入站网络路径与出站网络路径之间的延迟差,如上所述。在进一步的实现中,通过从主节点与次节点之间的非对称往返路由的RTT减去第一对称往返路由或第二对称往返路由的RTT,或者反之亦然,可以使用第一对称往返路由或第二对称往返路由中仅一个对称往返路由的追踪路由数据来估计延迟差。
因此,所公开的技术的数个实施例可以适应主节点与次节点之间的往返路由的入站网络路径与出站网络路径之间的差异。通过使用非对称的入站网络路径和出站网络路径构造和测量两个新的往返路由的RTT,可以估计或测量原始非对称往返路由的入站网络路径与出站网络路径之间的延迟差。因此,主节点与次节点之间的入站和出站网络业务之间的延迟估计可能比假设入站和出站网络业务两者的延迟相同更准确。
在使用来自大量网络设备的数据集来确定计算机网络中的网络设备对之间的链路的延迟时,所公开技术的数个实施例可能是有用的。例如,对称路径的追踪路由结果和对应的RTT可以是计算机网络中的延迟的一个投影。通过获得许多这样的投影,可以使用层析重构或其他适当的技术来确定每条链路的延迟。
所公开技术的附加实施例还涉及将托管主节点和次节点的一个或多个主机的工作温度和/或环境温度展示给延迟控制器。在不受理论约束的情况下,认为计算机服务器中的数字时钟的定时(例如,时钟偏移、定时间隔等)会受到计算机服务器处的温度变化的影响。主机上时钟的定时与操作/环境温度之间的相关性可以使用历史测量或经由其他适当的方法来开发。因此,使用这种相关性,延迟控制器(或计算系统中的其他适当组件)可以基于托管主节点和次节点和/或其一个或多个组件的计算机服务器的当前温度,经验地或以其他方式确定一个或多个时钟校正因子(例如,偏移、频率、定时等)。因此,可以进一步提高时钟同步的准确度。可以使用对分布式计算系统中的主和/或次节点和其他节点的专用API调用来获取这种时钟校正所需的信息,类似于上述操作。延迟控制器还可以被配置为确定节点上的一个或多个组件(例如,CPU)的温度,以进一步改进对时钟源由于热因素而经历的漂移的估计。
附图说明
图1是示出根据所公开技术的实施例,实现网络延迟估计的分布式计算系统的示意图。
图2是示出根据所公开技术的实施例的图1的分布式计算系统的某些硬件/软件组件的示意图。
图3A和图3B是示出根据所公开技术的实施例的分布式计算系统中的网络延迟估计的某些示例操作的示意图。
图4A和图4B是示出根据所公开技术的实施例的实现网络延迟估计的某些示例操作的示意图。
图5A和图5B是示出根据所公开技术的实施例的分布式计算系统中的网络延迟估计的某些示例操作的示意图。
图6A和图6B是示出根据所公开技术的实施例的图1中的延迟控制器的示例组件的示意性框图。
图7A和图7B是示出根据所公开技术的实施例的网络延迟估计的某些过程的流程图。
图8是适于图1中的分布式计算系统的某些组件的计算设备。
具体实施方式
下面描述了用于数据中心或其他适当的分布式计算系统中的网络延迟估计的系统、设备、组件、模块、例程、数据结构和过程的某些实施例。在下面的描述中,包括组件的具体细节以提供对所公开技术的某些实施例的透彻理解。相关领域的技术人员也将理解,该技术可以具有附加实施例。也可以实践该技术而没有下面参考图1至图6描述的实施例的多个细节。
如本文所使用的,术语“分布式计算系统”一般指具有多个网络节点的互连计算机系统,该多个网络节点将多个服务器或主机彼此互连和/或互连到外部网络(例如,互联网)。术语“网络节点”一般指的是物理网络设备。示例网络节点包括路由器、交换机、集线器、网桥、负载平衡器、安全网关或防火墙。“主机”一般指的是物理计算设备。在某些实施例中,主机可以被配置为实现例如一个或多个虚拟机、虚拟交换机或其他适当的虚拟化组件。例如,主机可以包括具有被配置为支持一个或多个虚拟机、虚拟交换机或其他适当类型的虚拟组件的管理程序的服务器。在其他实施例中,主机可以被配置为直接在操作系统之上执行适当的应用。
在某些实现中,计算机网络在概念上可以被划分为在底层网络上实现的覆盖网络。“覆盖网络”一般指的是在底层网络之上实现并且在其上操作的抽象网络。底层网络可以包括彼此互连的多个物理网络设备。覆盖网络可以包括一个或多个虚拟网络。“虚拟网络”一般指的是覆盖网络中的底层网络的部分的抽象。虚拟网络可以包括一个或多个虚拟端点,该虚拟端点被称为“租户站点”,其分别由用户或“租户”使用以访问虚拟网络和相关联的计算、存储或其他适当资源的。租户站点可以托管一个或多个租户端点(“TEP”),例如,虚拟机。虚拟网络可以互连不同主机上的多个TEP。
覆盖网络中的虚拟网络节点可以通过分别对应于沿着底层网络中的一个或多个物理网络设备的一个或多个网络路由的虚拟链路彼此连接。在其他实现中,计算机网络只能包括底层网络。如本文所使用的,“网络路由”或“网络路径”一般指的是分组从源(例如,第一主机)穿过以到达目的地(例如,第二主机)的一个或多个网络节点的序列。“往返”网络路径一般指的是源和目的地之间的一对入站网络路径和出站网络路径。在一些示例中,入站网络路径和出站网络路径可以是对称的,例如,在相反方向上具有相同的中间网络节点序列。在其他示例中,入站网络路径和出站网络路径可以是不对称的,例如在相反方向上具有不同的序列和/或中间网络节点。
如本文所使用的,“分组”一般指的是由分组交换网络携带的格式化数据单元。分组通常可以包括用户数据以及控制数据。控制数据可以提供用于传递用户数据的信息。例如,控制数据可以包括源和目的网络地址/端口、错误校验码、排序信息、跳数、优先级信息、安全信息或关于用户数据的其他适当信息。通常,控制数据可以包含在分组的报头和/或报尾中。报头和报尾可以包括包含适当信息的一个或多个数据字段。
图1是示出根据所公开技术的实施例,实现网络延迟估计的分布式计算系统100的示意图。如图1所示,分布式计算系统100可以包括底层网络108,其互连多个主机106、与相应用户101相关联的多个客户端设备102、以及彼此可操作地耦合的延迟控制器125。尽管图1中示出了分布式计算系统100的特定组件,但在其他实施例中,分布式计算系统100还可以包括附加的和/或不同的组件或布置。例如,在某些实施例中,分布式计算系统100还可以包括网络存储设备、服务器和/或适当配置中的其他适当组件。
如图1所示,底层网络108可以包括互连多个主机106和用户101的客户端设备102的一个或多个网络节点112。在某些实施例中,主机106可以被组织成机架、动作区、组、集合或其他适当的分区。例如,在所示实施例中,主机106被分组为分别标识为第一、第二和第三集群107a至107c的三个集群。各个集群107a至107c分别可操作地耦合到对应的网络节点112a至112c,这些网络节点共同被称为“架顶式”网络节点或“TOR”。然后,TOR 112a至112c可以可操作地耦合到附加网络节点112,以形成层级、扁平、网状或其他适当类型的拓扑中的计算机网络。底层网络可以允许主机106、延迟控制器125和用户101的客户端设备102之间的通信。在其他实施例中,多个集群107a至107c可以共享单个网络节点112,或者可以具有其他适当的布置。
主机106可以分别配置为向用户101提供计算、存储和/或其他云或其他适当类型的计算服务。例如,如下面参考图2更详细地描述的,主机106中的一个主机可以在来自用户101的请求时启动和维护一个或多个虚拟机144(图2中示出)或容器(未示出)。然后,用户101可以利用所提供的虚拟机144或容器来执行数据库、计算、通信和/或其他适当的任务。在某些实施例中,主机106中的一个主机可以为多个用户101提供虚拟机144。例如,主机106a可以托管分别对应于用户101a-101c中的每个用户的三个虚拟机144。在其他实施例中,多个主机106可以托管用户101a至101c的虚拟机144。
客户端设备102可以各自包括促进用户101经由底层网络108访问由主机106提供的计算服务的计算设备。在所示实施例中,客户端设备102分别包括台式计算机。在其他实施例中,客户端设备102还可以包括膝上型计算机、平板计算机、智能电话或其他适当的计算设备。尽管为了说明的目的在图1中示出了三个用户101a至101c,但在其他实施例中,分布式计算系统100可以促进任何适当数目的用户101访问由分布式计算系统100提供的云或其他适当类型的计算服务。
延迟控制器125可以被配置为管理和控制分布式计算系统100中的端点(例如,虚拟机)之间的网络延迟估计。例如,延迟控制器125可以被配置为使分布式计算系统100中的各种端点执行追踪路由操作,并且标识具有分组在底层网络100中穿越的一个或多个网络节点112的网络路径。延迟控制器125还可以被配置为确定所执行的追踪路由操作指示在一对端点之间的往返路由包括对称的入站网络路径和出站网络路径还是非对称的入站网络路径和出站网络路径。响应于确定往返路由包括非对称入站网络路径和出站网络路径,延迟控制器125还可以被配置为使用来自非对称入站网络路径和出站网络路径的入站网络路径和出站网络路径中的每个来构建新的对称往返路由对。通过测量所构建的对称往返路由的RTT,延迟控制器可以被配置为确定入站网络路径与出站网络路径之间的延迟差。延迟控制器然后可以相应地调整该对端点之间的延迟偏移,以改进分布式计算系统100中的时钟同步的一致性,如下面参考图3A至图5B更详细地描述的。
尽管延迟控制器125在图1中示为一个实体,但在某些实现中,延迟控制器125可以以分布式方式实现。例如,延迟控制器125的逻辑的一个或多个部分可以在主机106中的一个或多个主机上分布式执行。例如,各个主机106可以包括某些指令,其执行使第一主机106a独立地追踪路由到第二主机106b的网络路径。然后,第一主机106a可以向第二主机106b报告所发现的网络路径。第一主机106a和第二主机106b可以分别确定所发现的路径是否对称,并且相应地调整延迟估计。
图2是示出根据所公开技术的实施例的分布式计算系统100的某些硬件/软件组件的示意图。图2示出了可以在图1中的底层网络108上实现的覆盖网络108’。尽管图2中示出了覆盖网络108’的特定配置,但在其他实施例中,覆盖网络108’也可以以其他适当的方式配置。在图2中,为清楚起见,仅示出了图1的底层网络108的某些组件。
在图2和本文的其他附图中,各个软件组件、对象、类、模块和例程可以是以C、C++、C#、Java和/或其他适当的编程语言编写为源代码的计算机程序、程式或进程。组件可以包括但不限于,一个或多个模块、对象、类、例程、属性、过程、线程、可执行文件、库或其他组件。组件可以是源代码形式或二进制形式。组件可以包括编译前的源代码的各方面(例如,类、属性、进程、例程)、编译的二进制单元(例如,库、可执行文件)、或在运行时实例化和使用的人工产物(例如,对象、进程、线程)。
系统内的组件可以在系统内采取不同的形式。作为一个示例,包括第一组件、第二组件和第三组件的系统可以包括这样的系统,该系统具有第一组件是源代码中的属性,第二组件是二进制编译器库,以及第三组件是在运行时创建的线程,不作为限制。计算机程序、程式或进程可以被编译成目标代码、中间代码或机器代码,并且由个人计算机、网络服务器、膝上型计算机、智能电话和/或其他适当的计算设备的一个或多个处理器呈现以供执行。
同样,组件可以包括硬件电路。本领域普通技术人员将认识到,硬件可以被认为是僵化的软件,而软件可以被认为是液化的硬件。仅作为一个示例,组件中的软件指令可以烧录到可编程逻辑阵列电路,或者可以被设计为具有适当集成电路的硬件电路。同样,硬件也可以通过软件进行仿真。源、中间和/或目标代码和相关联的数据的各种实现可以存储在计算机存储器中,该计算机存储器包括只读存储器、随机存取存储器、磁盘存储介质、光存储介质、闪存设备和/或除传播信号之外的其他适当的计算机可读存储介质。
如图2所示,源主机106a和目的地主机106b和106b’(仅用详细组件示出目的地主机106b)可以各自包括彼此可操作地耦合的处理器132、存储器134、网络接口卡136和分组处理器138。在其他实施例中,主机106还可以包括被配置为接受来自操作员和/或自动化软件控制器(未示出)或其他适当类型的硬件组件的输入并且向其提供输出的输入/输出设备。
处理器132可以包括微处理器、高速缓存和/或其他适当的逻辑设备。存储器134可以包括易失性和/或非易失性介质(例如,ROM;RAM,磁盘存储介质;光存储介质;闪存设备,和/或其他适当的存储介质)和/或被配置为存储从处理器132接收的数据以及用于处理器132的指令(例如,用于执行下面参考图3A至图5B讨论的方法的指令)的其他类型的计算机可读存储介质。尽管在图2中仅示出了各个主机106中的一个处理器132和一个存储器134,但是在其他实施例中,各个主机106可以包括两个、六个、八个或任何其他适当数目的处理器132和/或存储器134。
源主机106a和目的地主机106b可以分别在存储器134中包含可由处理器132执行的指令,以使各个处理器132提供管理程序140(分别标识为第一管理程序140a和第二管理程序140b)和操作系统141(分别标识为第一操作系统141a和第二操作系统141b)。即使管理程序140和操作系统141被示为分开的组件,但在其他实施例中,管理程序140可以在主机106上执行的操作系统141或主机106的固件组件上操作。
管理程序140可以分别被配置为生成、监控、终止和/或以其他方式管理组织到租户站点142中的一个或多个虚拟机144。例如,如图2所示,源主机106a可以提供分别管理第一和第二租户站点142a和142b的第一管理程序140a。目的地主机106b可以提供分别管理第一和第二租户站点142a’和142b’的第二管理程序140b。管理程序140在图2中被分别示为软件组件。然而,在其他实施例中,管理程序140可以是固件和/或硬件组件。租户站点142可以各自包括用于特定租户(未示出)的多个虚拟机144。例如,源主机106a和目的地主机106b两者都可以托管第一租户101a的租户站点142a和142a’(图1)。源主机106a和目的地主机106b两者都可以托管第二租户101b的租户站点142b和142b’(图1)。每个虚拟机144可以执行对应的操作系统、中间件和/或应用。
也如图2所示,分布式计算系统100可以包括覆盖网络108’,该覆盖网络108’具有跨多个主机106互连租户站点142a和142b的一个或多个虚拟网络146。例如,第一虚拟网络142a将源主机106a处的第一租户站点142a和142a’与目的地主机106b互连。第二虚拟网络146b将源主机106a处的第二租户站点142b和142b’与目的地主机106b互连。即使单个虚拟网络146被示为对应于一个租户站点142,在其他实施例中,多个虚拟网络146(未示出)可以被配置为对应于单个租户站点146。
虚拟机144可以被配置为执行一个或多个应用147,以向用户101提供适当的云或其他适当类型的计算服务(图1)。例如,源主机106a可以执行被配置为提供监控在线交易的计算服务并且将价格数据分发给订阅该计算服务的多个用户101的应用147。即使虚拟机144位于不同的主机106上,虚拟网络146上的虚拟机144也可以经由底层网络108(图1)彼此通信。
虚拟网络146中的每个虚拟网络的通信可以与其他虚拟网络146隔离。在某些实施例中,可以允许通信通过安全网关或以其他受控方式从一个虚拟网络146跨越到另一虚拟网络146。虚拟网络地址可以对应于特定虚拟网络146中的虚拟机144中的一个虚拟机。因此,不同的虚拟网络146可以使用相同的一个或多个虚拟网络地址。示例虚拟网络地址可以包括IP地址、MAC地址和/或其他适当的地址。为了促进虚拟机144之间的通信,虚拟交换机(未示出)可以被配置为交换或过滤经由网络接口卡136定向到不同虚拟机144并且由分组处理器138促进的分组114。
如图2所示,为了促进彼此之间或与外部设备的通信,各个主机106还可以包括用于与计算机网络(例如,图1的底层网络108)相接口的网络接口卡(NIC)136。NIC 136可以包括网络适配器、LAN适配器、物理网络接口或其他适当的硬件电路和/或固件,以经由根据以太网、光纤通道、Wi-Fi或其他适当的物理和/或数据链路层标准的网络介质(例如,光纤)传输/接收数据(例如,作为分组)来实现主机106之间的通信。在操作期间,NIC 136可以促进去往/来自在主机106上执行的适当软件组件的通信。示例软件组件可以包括虚拟交换机141、虚拟机144、在虚拟机144上执行的应用147、管理程序140或其他适当类型的组件。
在某些实现中,分组处理器138可以互连到NIC 136和/或与NIC 136集成,以促进用于实施通信安全、执行网络虚拟化、转换网络地址、维护/限制通信流状态或执行其他适当功能的网络业务操作。在某些实现中,分组处理器138可以包括与NIC 136集成的现场可编程门阵列(“FPGA”)。
FPGA可以包括逻辑电路阵列和可重新配置互连的层级结构,其允许用户在制造之后将逻辑电路像逻辑门一样“连接在一起”。因此,用户101可以配置FPGA中的逻辑块以执行复杂的组合功能,或者仅简单的逻辑运算以合成可在硬件中以比在软件中快得多的速度执行的等同功能。在所示实施例中,分组处理器138具有通信地耦合到NIC 136的一个接口,以及在另一接口处耦合到网络交换机(例如,架顶式交换机或“TOR”交换机)的另一接口。在其他实施例中,分组处理器138还可以包括专用集成电路(“ASIC”)、微处理器或其他适当的硬件电路。在任何前述实施例中,分组处理器138可以由处理器132(或与其相关联的适当软件组件)编程以在分组处理器138内路由分组,以实现时间敏感数据传递的各方面,如下面参考图3A至图5B更详细地描述的。
在操作中,处理器132和/或用户101(图1)可以配置分组处理器138中的逻辑电路,以执行复杂的组合功能或简单的逻辑运算,以合成可在硬件中以比在软件中快得多的速度执行的等同功能。例如,分组处理器138可以被配置为根据流表(例如,MAT)中包含的配置策略或规则来处理各个流的入站/出站分组。流表可以包含表示对应于每个流的处理动作的数据,以启用具有客户提供的地址空间的专用虚拟网络、可伸缩的负载平衡器、安全组和访问控制列表(“ACL”)、虚拟路由表、带宽计量、服务质量(“QoS”)等。
因此,一旦分组处理器138将入站分组/出站分组标识为属于特定流,则分组处理器138可以在将处理后的分组转发到NIC 136或TOR 112之前,应用流表中的一个或多个对应的策略。例如,如图2所示,源主机106a上的应用147、虚拟机144和/或其他适当的软件组件可以生成去往例如目的地主机106b和106b’处的其他应用147的出站分组114。源主机106a处的NIC 136可以将所生成的分组114转发到分组处理器138以根据流表中的某些策略进行处理。一旦被处理,分组处理器138就可以将出站分组114转发到第一TOR 112a,第一TOR 112a进而经由覆盖/底层网络108和108’将分组转发到第二TOR 112b。
然后,第二ToR 112b可以将分组114转发到目的地主机106b和106b’处的分组处理器138,以根据目的地主机106b和106b’处的另一流表中的其他策略进行处理。如果分组处理器138不能将分组标识为属于任何流,则分组处理器138可以经由NIC 136将分组转发到处理器132以进行异常处理。在另一示例中,当第一TOR 112a例如经由第二TOR 112b从目的地主机106b接收到入站分组115时,第一TOR112a可以将分组115转发到分组处理器138以根据与分组115的流相关联的策略进行处理。然后,分组处理器138可以将处理后的分组115转发到NIC 136,以将其转发到例如应用147或虚拟机144。
入站分组114和出站115的传输可能在这些分组114和115的传输和接收之间经历延迟。这种延迟一般指的是分布式计算系统100中的延迟。延迟估计可以用于促进分布式计算系统100中的操作的各方面。例如,在时钟同步过程期间,同步消息的分组可以从源主机106a传输到目的地主机106b,其中时间戳偏移以源主机106a与目的地主机106b之间的估计延迟。
图3A是示出源主机106a沿对称网络路径向目的地主机106b传输出站分组114并且从目的地主机106b接收作为入站分组115的应答的示例时序图。如图3A所示,在时间T1处,源主机106a可以向目的地主机106b传输出站分组114。在时间T2处,目的地主机106b接收出站分组114。在处理出站分组114一段时间之后,目的地主机106b在时间T3向源主机106a传输响应作为入站分组115。在时间T4处,源主机106a从目的地主机106b接收入站分组115。因此,在所示的示例中,出站延迟等于T2与T1之间的差,而入站延迟等于T4与T3之间的差。出站延迟和入站延迟之和等于源和目的地主机106a与106b之间的RTT。
在图3A所示的示例时序图中,入站延迟一般等于出站延迟。图3B是示出入站和出站延迟大体相等的情形的示意图。如图3B所示,底层网络108包括计算机网络,该计算机网络具有分别互连源主机106a和目的地主机106b的网络节点,例如交换机1至4 112a至112d。在操作期间,出站分组114可以在到达目的地主机106b之前经由交换机1 112a、交换机4112d穿过底层网络108。因此,出站网络路径117a如下:
源主机106a→交换机1→交换机4→目的地主机106b类似地,入站分组114可以在到达源主机106a之前经由交换机4 112d和交换机1 112a穿过底层网络108以形成如下入站网络路径117b:
目的地主机106b→交换机4→交换机1→源主机106a因此,入站网络路径和出站网络路径117a和117b包括相同序列但方向相反的相同网络节点112(即,交换机1和交换机4)。示例入站网络路径和出站网络路径117a和117b可以被称为是对称的。
通常,延迟控制器125(图1)可以通过将源主机106a和目的地主机106b之间的往返时间(RTT)除以2来估计延迟偏移。RTT通常按如下方式测量:
RTT=(t4-t1)-(t3-t2)
其中,t1是来自源主机106a的请求分组传输的时间戳;t2是目的地主机106b处的请求分组接收的时间戳;t3是来自目的地主机106b的响应分组传输的时间戳;以及t4是源主机106a处的响应分组接的时间戳。因此,假设源106a和目的地主机106b之间没有时钟速率偏移或“漂移”,则目的地主机106b处的时钟可以如下设置:
前述时钟同步技术假设源主机106a与目的地主机106b之间的单向路径延迟是所测量的RTT的一半。然而,这一假设在某些情形下可能并不准确。例如,当从源主机106a向目的地主机106b传输出站分组114时,出站分组114可以沿着与传输入站分组115的入站网络路径不同的出站网络路径穿过底层网络108。图4A是示出源主机106a沿非对称网络路径向目的地主机106b传输出站分组114并且从目的地主机106b接收作为入站分组115的应答的示例时序图。如图4A所示,入站延迟(即,T4和T3之间的差)可能远远大于入站延迟(即,T2和T1之间的差)。
这种差异可能由具有不同网络节点112(图1)和/或网络节点112的序列的入站网络路径引起。图4B是示出入站延迟可能大于出站延迟的一种情形的示意图。如图4B所示,出站网络路径117a与图3B所示相同,而入站网络路径117b’与图3B所示不同。相反,入站网络路径117b’包括以下内容:
目的地主机106b→交换4→交换机3→交换机2→交换机1→源主机106a
因此,入站网络路径117b’比出站网络路径117a长得多,因此可能导致入站延迟比出站延迟大得多。因此,入站和出站网络延迟相等的假设将导致源主机106a和目的地106b之间的时钟同步不准确。
所公开技术的数个实施例可以通过实现追踪路由技术来解决前述困难的数个方面,以将单路径网络延迟分配给入站网络路径117a或出站网络路径117b’。在某些实现中,当测量源主机106a和目的地主机106b之间的RTT时,延迟控制器125(图1)可以被配置为使源主机106a和目的地主机106b分别在源主机106a和目的地主机106b之间发出追踪路由命令。可以实现追踪路由命令来标识和存储源主机106a和目的地主机106b之间的往返路由的入站网络路径和出站网络路径117a和117b’。入站和出站路径117a和117b’可以由源主机106a和目的地主机106b之间的底层网络108(图1)中的网络设备(例如,交换机、路由器等)的一个或多个网络标识符来标识(例如,IP地址、MAC地址等)。在其他实现中,源主机106a和目的地主机106b可以被编程为自动地、周期性地或以其他适当的方式执行追踪路由操作。
一般而言,追踪路由命令是可以用于标识分组从源到目的地所采用的网络路径的网络诊断功能的示例。追踪路由功能通常列出例如分组经过的源与目的地之间的中间网络节点112(图1),直到分组到达目的地或未能到达目的地而被丢弃。追踪路由功能通过使沿着网络路径的每个网络节点112向调用追踪路由功能的源(例如,源主机106a)返回诸如ICMP消息的消息来操作。分组通常包含生存时间(TTL)值,该值指定分组在到期前可以穿过多少跳。每次分组穿过网络设备时,分组的TTL值递减预置量(例如,1)。当分组的TTL值在中间网络设备处到期时(例如,TLL值达到0),网络设备丢弃该分组并且向调用追踪路由功能的源传输“TTL超时”消息。
追踪路由功能通常使用IP数据报在互联网协议(IP)网络上运行。在一些实施例中,源可以使用追踪路由功能来发送一系列具有不同TTL值的ICMP回响请求分组,以标识中间网络节点112。例如,源可以调用追踪路由功能来初始地将来自源的具有TTL值为1的第一分组发送到目的地。沿着网络路径的第一网络设备将第一分组的TTL递减到0,并且因为TTL已经到期而丢弃第一分组。然后,第一网络设备向源返回“TTL超时”消息。基于返回的“TTL超时”消息,源可以将第一网络设备标识为去往目的地的网络路径上的第一跳。然后,源可以向目的地发送TTL值为2的第二分组。当接收到第二分组时,沿着网络路径的第一网络设备将第二分组的TTL递减为1,并且将第二分组转发到网络路径中的第二网络设备。当接收到第二分组时,沿着网络路径的第二网络设备将第二分组的TTL递减到0,并且因为TTL已经到期而丢弃第二分组。然后,第二网络设备向源返回“TTL超时”消息。基于从第二网络设备返回的“TTL超时”消息,源可以将第二网络设备标识为从源到目的地的网络路径上的第二跳。
然后,源可以向目的地发送具有TTL为3、4、5等的附加分组,从而使沿着网络路径的每个后续网络设备都返回“TTL超时”消息。因此,基于来自后续网络设备的“TTL超时”消息,源可以发现网络路径(称为“出站网络路径”)中的中间跳,直到到达目的地或达到最大TTL值并且追踪路由操作结束。目的地还可以调用相同的追踪路由功能来发现从目的地到源的中间网络设备(被称为“入站网络路径”)。如下面更详细地讨论的,具有相同或基本相似的5元组(例如,源IP地址、目的地IP地址、源端口、目的地端口和传输协议)的分组可以用于穿过与沿着网络路径的原始分组流相同的中间网络设备或连接。然后,源和目的地可以向延迟控制器报告具有源与目的地之间的入站网络路径和出站网络路径两者的网络路由。
在获得网络路由的数据时,延迟控制器125可以被配置为确定入站网络路径117a和出站网络路径117b是否对称。响应于确定入站网络路径117a和出站网络路径117b是对称的(如图3B所示),延迟控制器125可以被配置为指示延迟偏移并且将其设置为源主机106a与目的地主机106b之间所测量的RTT的一半。响应于确定入站网络路径117a和出站网络路径117b’是不对称的(如图4B所示),延迟控制器125可以被配置为指示入站和出站延迟相等的假设是不准确的。
延迟控制器125还可以被配置为使源主机106a和目的地主机106b对基于图4B所示的非对称网络路径的入站网络路径117a和出站网络路径117b’构建的附加对称往返路由对来执行附加追踪路由操作和RTT测量。例如,如图5A所示,可以使用出站网络路径117a和与出站网络路径117a相反的新入站网络路径117b来构建第一对称往返路由121a。如图5B所示,可以使用入站网络路径117b’和与入站网络路径117b’相反的新出站网络路径117a’来构建第二对称往返路由121b。
当测量RTT时,可以通过操纵分组的5元组或经由其他适当的手段来引导分组遵循第一对称往返路由和第二对称往返路由。通过比较所测量的RTT(在图5A和5B中示出为“RTT路径A-A”和“RTT路径B’-B’”),延迟控制器可以被配置为如下扣除入站网络路径117a和出站网络路径117b’之间的延迟差(θ):
其中,RTT1是第一对称往返路由RTT路径A-A的RTT,而RTT2是第二对称往返路由RTT路径B’-B’的RTT。具有入站网络路径和出站网络路径117a和117b’之间的延迟差,延迟控制器125然后可以如下调整同步分组的延迟偏移:
其中RTT是源主机106a与目的地主机106b之间的往返时间;t1是源主机106a处的时钟时间;以及t2是目的地主机106b上的时钟时间。
在其他实现中,不是构造和引导分组遵循两个构建的第一和第二对称往返路由121a和121b,相反,延迟控制器125可以被配置为继续监控来自计算机网络108中的源主机106a、目的地主机106b或其他主机106(图1和2中所示)的追踪路由数据,以寻找至少近似匹配(例如,>90%、>95%、>99%、100%或其他适当阈值)第一对称往返路由121a和第二对称往返路由121b的网络路由(或部分路由)。这样的追踪路由数据然后可以用于估计非对称入站网络路径117a和出站网络路径117b’之间的延迟差,如上所述。在其他实现中,通过从源主机106a与目的地主机106b之间的非对称往返路由的RTT减去第一对称往返路由121a或第二对称往返路由121b的RTT,或者反之亦然,可以使用第一对称往返路由121a或第二对称往返路由121b中的仅一个对称往返路由的追踪路由数据来估计延迟差。
因此,所公开的延迟估计技术的多个实施例可以适应源主机106a和目的地主机106b之间的往返路由的入站网络路径和出站网络路径117a和117b’之间的差异。通过使用非对称入站网络路径和出站网络路径117a和117b’分别构建和测量图5A和5B所示的第一对称往返路由121a和第二对称往返路由121b的RTT,可以估计或测量入站网络路径117a和出站网络路径117b’之间的延迟差。这样,源主机106a和目的地主机106b之间的入站网络业务和出站网络业务之间的延迟估计可以比假设入站和出站网络业务两者的延迟相同更准确。
图6A和6B是示出根据所公开技术的实施例的图1中的延迟控制器125的示例组件的示意性框图。如图6A所示,延迟控制器125可以包括彼此可操作地耦合的接口组件122、分析组件124和控制组件126。尽管图6A中示出了特定组件,但在其他实施例中,延迟控制器125可以包括附加的和/或不同的组件。
如图6A所示,在某些实施例中,接口组件122可以被配置为周期性地、按需或以其他适当的方式将追踪路由指令150传输给源主机106a和目的地主机106b。追踪路由指令150可以通过例如执行追踪路由命令来使源主机106a和目的地主机106b执行追踪路由类型操作。因此,源主机106a和目的地主机106b各自可以传输一系列分组114和115以列出底层网络108中的中间网络节点112,如以上参考图3A至图4B所描述的。在追踪路由操作完成时,源主机106a和目的地主机106b可以分别将出站路径数据152a和入站路径数据152b传输到延迟控制器125以供分析。在其他实施例中,源主机106a和目的地主机106b可以被配置为基于来自分布式计算系统100(图1)中的另一实体(未示出)的指令或以其他适当的方式自动执行前述追踪路由操作。
在接收到入站和出站路径数据152a和152b时,延迟控制器125的分析组件124可以被配置为确定源和目的地主机106a和106b之间的往返路由是否对称,如上面参考图3A至图4B更详细地描述的。在确定往返路由是对称还是不对称时,分析组件124可以指示控制组件126向源主机106a和目的地主机106b或分布式计算系统100中的其他适当实体发出关于往返路由的路由对称性的通知154。
响应于确定源主机106a和目的地主机106b之间的往返路由不对称,分析组件124可以被配置为使用原始往返路由中的入站网络路径和出站网络路径来构建两条对称的往返路由,如以上参考图5A和图5B更详细地描述的。分析组件124可以被配置为指示控制组件126向源主机106a和目的地主机106b发布附加的追踪路由指令150’,以执行附加追踪路由操作。附加的追踪路由指令150’还可以包括表示对应于入站网络路径和出站网络路径中的每个网络路径的5元组的数据,使得新的往返路由是对称的。
作为响应,源主机106a和目的地主机106b可以通过例如彼此传输附加分组114’和115’来执行上述附加追踪路由操作。在附加追踪路由操作完成时,源主机106a和目的地主机106b可以被配置为将新的对称往返路由的附加入站路径数据152a’和出站路径数据152b’传输到延迟控制器125。分析组件124可以被配置为然后分析附加的入站路径数据152a’和出站路径数据152b’以确定入站网络路径与出站网络路径之间的延迟差156,如上面参考图5A和5B更详细地描述的。接口组件125然后可以被配置为将所确定的延迟差156提供给源主机106a和目的地主机106b,或分布式计算系统100中的其他适当实体。
在其他实施例中,分析组件124可以被配置为使用来自多个网络节点112的数据集来确定底层网络108中的网络节点对112之间的链路的延迟。例如,对称路由的追踪路由结果和对应的RTT可以是底层网络108中的延迟的一个投影。通过获得许多这样的投影,可以使用层析重构或其他适当的技术来确定每条链路的延迟。
在另外的实施例中,源主机106a和目的地主机106b还可以被配置为向延迟控制器125展示操作温度和/或环境温度。在不受理论约束的情况下,认为计算机服务器中的数字时钟的时序(例如,时钟偏移、时钟间隔等)会受到计算机服务器处的温度变化的影响。主机上时钟的时序与操作/环境温度之间的相关性可以使用历史测量或通过其他适当的方法来开发。因此,使用这种相关性,延迟控制器125的分析组件124(或分布式计算系统100中的其他适当组件)可以基于源或目的地主机106a或106b和/或其一个或多个组件的当前温度,经验地或以其他方式来确定一个或多个时钟校正因子(例如,偏移、频率、时序等)。因此,可以进一步提高时钟同步的准确度。可以使用对源和目的地主机106a和106b以及分布式计算系统100中的其他主机106的API调用来获取这种时钟校正所需的信息。延迟控制器125还可以被配置为确定主机106上的一个或多个组件(例如,CPU)的温度,以进一步改进对时钟源由于热因素而经历的漂移的估计。
图7A和图7B是示出根据所公开技术的实施例的网络延迟估计的某些过程的流程图。尽管以下在图1的分布式计算系统100的上下文中描述了过程,但在其他实施例中,过程或其各方面可以在具有附加和/或不同组件的计算系统中实现。
如图7A所示,过程200可以包括在阶段202处接收源节点和目的地节点之间的往返路由的追踪路由信息。上面参考图3A至图5B描述了在源节点和目的地节点之间执行追踪路由操作的各种技术。追踪路由信息可以标识具有从源节点到目的地节点的网络节点序列112(图1)的出站网络路径以及具有从目的地节点到源节点的网络节点序列112的入站网络路径。
然后,过程200可以包括判定阶段204,以确定往返路由是否对称。在某些实施例中,当入站网络路径的网络节点序列与反向的出站网络路径的网络节点序列相同或基本相同(例如,大于约95%匹配)时,往返路由是对称的。在其他实施例中,当入站网络路径和出站网络路径匹配大于80%、85%、90%或其他适当的阈值时,往返路由可以被指示为对称。
响应于确定往返路由是对称的,过程200可以包括在阶段206处向往返路由的入站网络路径和出站网络路径分配RTT/2的单路径延迟。否则,过程200可以在阶段208继续执行附加追踪路由操作,以推断或估计入站网络路径与出站网络路径之间的延迟差。下面参考图7B描述执行附加追踪路由操作的示例操作。
如图7B所示,示例操作可以包括在阶段210处使用原始往返路由的非对称入站网络路径和出站网络路径来构建一对新的往返路由。上面参考图5A和图5B描述了构建这种新的往返路由的说明性示例。然后,操作可以包括在阶段212指示源和目的地节点沿着新的往返路由执行附加追踪路由操作。在执行附加追踪路由操作期间,可以操纵5元组的分组以遵循源和目的地节点之间的新的往返路由。在附加追踪路由操作完成时,这些操作可以包括在阶段214计算入站网络路径与出站网络路径之间的延迟差,例如作为该对新往返路由的RTT之间的差的一半。
图8是适合于图1中的分布式计算系统100的某些组件的计算设备300。例如,计算设备300可以适合于图1的主机106、客户端设备102或延迟控制器125。在非常基本的配置302中,计算设备300可以包括一个或多个处理器304和系统存储器306。存储器总线308可用于在处理器304和系统存储器306之间通信。
根据期望的配置,处理器304可以是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理器304可以包括多一级高速缓存,例如一级高速缓存310和二级高速缓存312、处理器核心314和寄存器316。示例处理器核314可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任意组合。示例存储器控制器318也可以与处理器304一起使用,或者在一些实现中,存储器控制器318可以是处理器304的内部部分。
根据期望的配置,系统存储器306可以是任何类型,包括但不限于易失性存储器(例如RAM)、非易失性存储器(例如ROM、闪存等),或它们的任意组合。系统存储器306可以包括操作系统320、一个或多个应用322和程序数据324。如图11所示,操作系统320可以包括用于管理一个或多个虚拟机144的管理程序140。该描述的基本配置302在图8中由内虚线内的那些组件示出。
计算设备300可以具有附加特征或功能,以及促进基本配置302与任何其他设备和接口之间的通信的附加接口。例如,可以使用总线/接口控制器330来促进基本配置302与一个或多个数据存储设备332之间经由存储接口总线334的通信。数据存储设备332可以是可移动存储设备336、不可移动存储设备338或其组合。可移动存储和不可移动存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘设备、诸如光盘(CD)驱动器或数字多功能盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和磁带驱动器等。示例计算机存储介质可以包括以用于存储信息(诸如,计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。术语“计算机可读存储介质”或“计算机可读存储设备”不包括传播信号和通信介质。
系统存储器306、可移动存储设备336和不可移动存储设备338是计算机可读存储介质的示例。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、盒式磁带、磁带、磁盘存储或其他磁存储设备、或可用于存储所需信息并可由计算设备300访问的任何其他介质。任何这样的计算机可读存储介质可以是计算设备300的部分。术语“计算机可读存储介质”不包括传播信号和通信介质。
计算设备300还可以包括接口总线340,用于促进从各种接口设备(例如,输出设备342、外围接口344和通信设备346)经由总线/接口控制器330到基本配置302的通信。示例输出设备342包括图形处理单元348和音频处理单元350,其可以被配置为经由一个或多个A/V端口352与诸如显示器或扬声器的各种外部设备通信。示例外围接口344包括串行接口控制器354或并行接口控制器356,其可以被配置为经由一个或多个I/O端口358,与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)的外部设备,或其他外围设备(例如,打印机、扫描仪等)通信。示例通信设备346包括网络控制器360,其可以被布置为促进经由一个或多个通信端口364,通过网络通信链路与一个或多个其他计算设备362进行通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以由计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据来实现,例如载波或其他传输机制,并且可以包括任何信息递送介质。“调制数据信号”可以是这样的信号,其一个或多个特性以编码信号中的信息的方式设置或改变。作为示例而非限制,通信介质可以包括有线介质,例如有线网络或直接有线连接,以及无线介质,例如声学、射频(RF)、微波、红外(IR)和其他无线介质。本文使用的术语计算机可读介质可以包括存储介质和通信介质两者。
计算设备300可以被实现为包括上述任何功能的小型便携式(或移动)电子设备的部分,例如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络观看设备、个人耳机设备、专用设备或混合设备。计算设备300还可以被实现为包括膝上型计算机和非膝上型计算机配置两者的个人计算机。
从上文中将理解,本文为了说明的目的描述了本公开的具体实施例,但是可以进行各种修改而不偏离本公开。此外,一个实施例的许多元素可以与其他实施例的元素组合,作为其他实施例的元素的补充或替代。因此,除了所附权利要求书之外,本技术不受限制。
Claims (10)
1.一种分布式计算系统中的网络延迟估计的方法,所述分布式计算系统具有第一节点和第二节点,所述第一节点和所述第二节点通过具有多个网络设备的计算机网络而被互连,包括:
接收表示所述第一节点与所述第二节点之间的所述计算机网络中的现有往返路由的追踪路由信息的数据,所述现有往返路由包括从所述第一节点到所述第二节点的出站网络路径和从所述第二节点到所述第一节点的入站网络路径;
指示所述第一节点和所述第二节点沿着所述第一节点与所述第二节点之间的第一往返路由和第二往返路由分别执行附加追踪路由操作,其中:
所述第一往返路由包括所述现有往返路由的所述入站网络路径和与所述现有往返路由的所述入站网络路径相反的出站网络路径;以及
所述第二往返路由具有所述现有往返路由的所述出站网络路径和与所述现有往返路由的所述出站网络路径相反的入站网络路径;
接收来自由所述第一节点与所述第二节点执行的所述附加追踪路由操作的附加追踪路由信息;以及
基于接收到的所述附加追踪路由信息来确定所述现有往返路由的所述入站网络路径与所述出站网络路径之间的延迟差。
2.根据权利要求1所述的方法,还包括:
基于接收到的所述现有往返路由的所述追踪路由信息,确定所述现有往返路由是否对称;以及
响应于确定所述第一节点与所述第二节点之间的所述现有往返路由是对称的,将延迟值分配给所述入站网络路径和出站网络路径两者,其中所分配的所述延迟值等于所述第一节点与所述第二节点之间的往返时间的一半。
3.根据权利要求1所述的方法,还包括:
基于接收到的所述现有往返路由的所述追踪路由信息,确定所述现有往返路由是否对称;以及
响应于确定所述第一节点与所述第二节点之间的所述现有往返路由不对称,执行所述指示操作、所述接收操作和所述确定操作。
4.根据权利要求1所述的方法,还包括:
基于接收到的所述现有往返路由的所述追踪路由信息,确定所述往返路由是否对称,其中当所述入站网络路径和所述出站网络路径具有反向的相同的网络设备的序列时,所述现有往返路由对称;以及
响应于确定所述第一节点与所述第二节点之间的所述现有往返路由不对称,执行所述指示操作、所述接收操作和所述确定操作。
5.根据权利要求1所述的方法,其中:
附加追踪路由信息包括所述第一往返路由的第一往返时间(RTT1)和所述第二往返路由的第二往返时间(RTT2);以及
确定所述延迟差包括:如下计算所述第一节点与所述第二节点之间的所述现有往返路由的所述入站网络路径与所述出站网络路径之间的所述延迟差(θ):
。
6.根据权利要求1所述的方法,其中:
所述附加追踪路由信息包括所述第一往返路由的第一往返时间(RTT1)和所述第二往返路由的第二往返时间(RTT2);以及
确定所述延迟差包括:如下计算所述第一节点与所述第二节点之间的所述现有往返路由的所述入站网络路径与所述出站网络路径之间的所述延迟差(θ):
;并且
所述方法还包括:如下调整所述第一节点上的时钟与所述第二节点上的另一时钟之间的延迟偏移:
其中,RTT是沿着所述现有往返路由的所述第一节点与所述第二节点之间的往返时间;t1是所述第一节点处的时钟时间;以及t2是所述第二节点处的时钟时间。
7.根据权利要求1所述的方法,其中指示所述第一节点与所述第二节点包括:指示所述第一节点与所述第二节点操纵要在所述第一节点与所述第二节点之间传输的分组的5元组,以遵循所述第一往返路由和第二往返路由。
8.根据权利要求1所述的方法,还包括:
接收所述计算机网络中另外的对称往返路由的进一步追踪路由信息;以及
将层析重构应用于接收到的所述追踪路由信息,以导出所述计算机网络中的网络设备对之间的每条链路的延迟。
9.根据权利要求1所述的方法,还包括:
从所述第一节点与所述第二节点分别接收所述第一节点与所述第二节点处的第一操作温度和第二操作温度;以及
基于接收到的所述第一操作温度和所述第二操作温度与时钟漂移的相关性来调整所述第一节点或所述第二节点上的时钟的时序间隔。
10.一种分布式计算系统中的计算设备,所述分布式计算系统具有第一节点和第二节点,所述第一节点和所述第二节点通过具有多个网络设备的计算机网络而被互连,所述计算设备包括:
处理器;以及
存储器,操作地耦合到所述处理器,所述存储器包含由所述处理器可执行的指令,以使所述计算设备执行根据权利要求1至9中的任一项所述的过程。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/131,116 | 2020-12-28 | ||
US17/371,338 US11431599B2 (en) | 2020-12-28 | 2021-07-09 | Network latency estimation in distributed computing systems |
US17/371,338 | 2021-07-09 | ||
PCT/US2021/058016 WO2022146552A1 (en) | 2020-12-28 | 2021-11-04 | Network latency estimation in distributed computing systems |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116584077A true CN116584077A (zh) | 2023-08-11 |
Family
ID=87536487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180083947.1A Pending CN116584077A (zh) | 2020-12-28 | 2021-11-04 | 分布式计算系统中的网络延迟估计 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116584077A (zh) |
-
2021
- 2021-11-04 CN CN202180083947.1A patent/CN116584077A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Karakus et al. | A survey: Control plane scalability issues and approaches in software-defined networking (SDN) | |
US11463511B2 (en) | Model-based load balancing for network data plane | |
US8570861B1 (en) | Reputation-based networking | |
US10749780B2 (en) | Systems and methods for management of cloud exchanges | |
WO2019055100A1 (en) | DIRECT ACCESS TO REMOTE MEMORY IN COMPUTER SYSTEMS | |
US20220353191A1 (en) | Path visibility, packet drop, and latency measurement with service chaining data flows | |
Persico et al. | On the performance of the wide-area networks interconnecting public-cloud datacenters around the globe | |
WO2019012546A1 (en) | EFFICIENT CHARGE BALANCING MECHANISM FOR SWITCHES IN A SOFTWARE-DEFINED NETWORK | |
Lin et al. | ASIC: An architecture for scalable intra-domain control in OpenFlow | |
US20170085500A1 (en) | Streamlined processing in a network switch of network packets in a spliced connection | |
US10164865B2 (en) | Multiple topology-transparent zones having a common edge node | |
WO2018115934A1 (en) | Packet timestamping in software defined networking networks | |
US10547500B1 (en) | Determining sources of network packet loss | |
US11563662B2 (en) | Network latency estimation in distributed computing systems | |
US10033593B2 (en) | Using timestamps to analyze network topologies | |
US11528222B2 (en) | Decentralized control plane | |
US11863457B2 (en) | Time-sensitive data delivery in distributed computing systems | |
US20230006904A1 (en) | Using network interface cards having processing units to determine latency | |
US11431599B2 (en) | Network latency estimation in distributed computing systems | |
CN116584077A (zh) | 分布式计算系统中的网络延迟估计 | |
US11616731B1 (en) | Determining a time-to-live budget for network traffic | |
Shpiner et al. | SAL: Scaling data centers using smart address learning | |
Cabarkapa et al. | Software-Defined Networking: The Impact of Scalability on Controller Performance | |
US11962498B1 (en) | Symmetric networking for orphan workloads in cloud networks | |
US12010007B1 (en) | Detecting noisy agents in network monitoring |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |