CN108028781B - 用于网络往返时间估计的技术 - Google Patents
用于网络往返时间估计的技术 Download PDFInfo
- Publication number
- CN108028781B CN108028781B CN201680055561.9A CN201680055561A CN108028781B CN 108028781 B CN108028781 B CN 108028781B CN 201680055561 A CN201680055561 A CN 201680055561A CN 108028781 B CN108028781 B CN 108028781B
- Authority
- CN
- China
- Prior art keywords
- neighboring
- message
- computing node
- determining
- round trip
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
用于估计网络往返时间的技术包括发送器计算节点,所述发送器计算节点与邻近计算节点的集合网络通信。发送器计算节点被配置为确定邻近计算节点的集合以及邻近计算节点的集合的多个子集。因此,发送器计算节点为所述多个子集中的每个子集产生消息队列,每个消息队列包括针对消息队列所对应的子集中的每个邻近节点的探测消息。发送器计算节点还被配置为基于传送消息队列的第一探测消息和响应于传送消息队列的最后一个探测消息接收到确认之间的时间的持续时间为每个消息队列(即,邻近计算节点的子集)确定往返时间。另外,发送器计算节点被配置为基于为每个消息队列确定的往返时间为每个邻近计算节点估计往返时间。描述并且要求保护其它实施例。
Description
相关美国专利申请的交叉引用
本申请要求于2015年9月25日提交的标题为“TECHNOLOGIES FOR NETWORK ROUND-TRIP TIME ESTIMATION”的序列号为14/866,559的美国实用专利申请的优先权。
背景技术
现代计算装置已变为用于个人、商业和社交用途的无处不在的工具。如此,许多现代计算装置能够连接到各种数据网络(包括因特网和公司内联网)以按照变化的速度速率在各种数据网络上传送和接收数据通信。为了促进计算装置之间的通信,数据网络通常包括一个或多个计算节点(例如,网络交换机、网络路由器、服务器、其它计算和/或存储计算装置等)以将通信(即,网络分组)从源计算装置路由至目的地计算装置。某些网络基础设施(诸如,数据中心)可包括数以万计或更多的这种计算节点。为了处理这种大型网络基础设施,自适应路由技术已使用网络基础设施的拓扑信息演进。用于确定网络基础设施的拓扑的传统方法可包括一个或多个计算节点使用静态拓扑信息识别邻近计算节点(例如,与识别计算节点相隔一次跳跃的那些计算节点),这通常不能被应用于自适应路由技术。
因此,计算节点之间的往返时间能够被用于增加拓扑信息,并且整体上提供更好的网络的视图。网络往返时间估计已被广泛地研究并且在传输控制协议(TCP)的情境下实现(例如,卡恩(Karn)算法),其中往返时间是确立协议超时值的关键量度。为了支持这种往返时间估计,一些网络硬件(例如,以太网网卡)能够在硬件中提供时间戳。然而,在高性能计算装置中,这种能力并不总是可用的(即,硬件不能够提供时间戳)。为了克服时间戳缺乏,一些实现方式使用软件乒乓球式(ping-pong)基准来估计往返时间。然而,这种方法通常引入可归因于软件开销的延时,该延时能够是大于正被测量的网络延时的数量级。
附图说明
在附图中,作为示例而非作为限制示出这里描述的概念。为了说明的简单和清楚,附图中示出的元件未必按照比例绘制。在认为合适之处,附图标记已在附图之间被重复以指示对应或类似的元件。
图1是包括经网络以可通信方式耦合的一个或多个计算节点的、用于估计网络往返时间的系统的至少一个实施例的简化框图;
图2是图1的系统的发送器计算节点的至少一个实施例的简化框图;
图3是可由图1和2的发送器计算节点建立的环境的至少一个实施例的简化框图;
图4和5是可由图1和2的发送器计算节点执行的、用于估计网络往返时间的方法的至少一个实施例的简化流程图;和
图6是用于为图1的系统的邻近计算节点的子集确定往返时间的消息流的至少一个实施例的简化框图。
具体实施方式
尽管本公开的概念容易受到各种修改和替代形式的影响,但已在附图中作为示例示出其特定实施例并且将会在这里详细地描述其特定实施例。然而,应该理解,并不意图将本公开的概念限制于公开的特定形式,而是相反地,意图涵盖根据本公开和所附权利要求的所有修改、同物和替代物。
在说明书中对“一个实施例”、“实施例”、“说明性实施例”等的提及指示:描述的实施例可包括特定特征、结构或特性,但每个实施例可包括该特定特征、结构或特性或者可不必包括该特定特征、结构或特性。此外,这种短语未必指代相同实施例。另外,当结合实施例描述特定特征、结构或特性时,无论是否明确地描述,都认为结合其它实施例实现这种特征、结构或特性落在本领域技术人员的知识范围内。另外,应该理解,具有“A、B和C中的至少一个”的形式的列表中所包括的项能够表示(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。类似地,以“A、B或C中的至少一个”的形式列出的项能够表示(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
在一些情况下,公开的实施例可被实现于硬件、固件、软件或其任何组合中。公开的实施例还可被实现为由一个或多个暂态或非暂态机器可读(例如,计算机可读)存储介质(例如,存储器、数据存储装置等)携带或存储在所述一个或多个暂态或非暂态机器可读(例如,计算机可读)存储介质(例如,存储器、数据存储装置等)上的指令,所述指令可由一个或多个处理器读取并且执行。机器可读存储介质可被体现为用于以可由机器读取的形式存储或传送信息的任何存储装置、机构或其它物理结构(例如,易失性或非易失性存储器、介质盘或其它介质装置)。
在附图中,可按照特定布置和/或排序示出一些结构或方法特征。然而,应该理解,可以不要求这种特定布置和/或排序。相反地,在一些实施例中,可按照与说明性附图中示出的方式和/或次序不同的方式和/或次序布置这种特征。另外,在特定附图中包括结构或方法特征并不意图暗示在所有实施例中都要求这种特征,并且在一些实施例中,可能不包括这种特征或者这种特征可与其它特征组合。
现在参照图1,在说明性实施例中,用于估计网络往返时间的系统100包括发送器计算节点102,发送器计算节点102经网络104以可通信方式耦合到多个目标计算节点106。在使用中,发送器计算节点102将消息(例如,网络通信、网络分组等)传送给一个或多个目标计算节点106,并且从一个或多个目标计算节点106接收消息。如图1中所示,说明性目标计算节点106包括指定为目标计算节点(1)的目标计算节点110、指定目标计算节点(2)的另一目标计算节点112、指定为目标计算节点(3)的另一目标计算节点114、指定为目标计算节点(4)的另一目标计算节点116、指定为目标计算节点(5)的另一目标计算节点118和指定为目标计算节点(N)(即,“第N”目标计算节点,其中“N”是正整数并且指定一个或多个另外的目标计算节点)的另一目标计算节点120。
发送器计算节点102被配置为确定哪些目标计算节点106能够被识别为邻近计算节点。为了确定哪些目标计算节点106能够被识别为邻近计算节点,如将在以下所述,发送器计算节点102可使用(例如,来自策略的)一个或多个准则来确定哪些目标计算节点106能够被识别为邻近计算节点108。如图1中所示,邻近计算节点108包括目标计算节点110、目标计算节点112、目标计算节点114和目标计算节点116(即,目标计算节点106的一部分)。基于确定的邻近计算节点108的集合,发送器计算节点102能够确定邻近计算节点108的集合的多个子集(例如,许多子集,每个子集包括目标计算节点106的至少一部分)。例如,在一些实施例中,邻近计算节点108的集合的子集的数量可等于或大于邻近计算节点108的集合中的邻近计算节点的总数。
对于邻近计算节点108的集合的每个子集,一系列小(例如,0字节大小)探测消息(例如,“推(put)”消息)被产生并且在消息队列中(例如,在发送器计算节点102的硬件中)排队。每个探测消息被配置为从由所述消息指定的子集中的一个对应邻近计算节点108引出响应消息(即,确认)。在使用中,如以下将进一步描述的,发送器计算节点102使用定时器(例如,基于软件的定时器)和计数器(例如,基于硬件的计数器)来控制探测消息的传送和确认消息的接收,其结果能够被用于估计发送器计算节点102和邻近计算节点108之间的往返时间。
发送器计算节点102可被体现为能够执行这里描述的功能的任何类型的运算或计算装置,非限制性地包括服务器(例如,独立服务器、安装在机架上的服务器、刀片服务器等)、(例如,物理或虚拟的)网络器具、web器具、分布式计算系统、基于处理器的系统、多处理器系统、智能电话、移动计算装置、平板计算机、膝上型计算机、笔记本计算机和/或任何其它计算/通信装置。如图2中所示,说明性发送器计算节点102包括处理器202、输入/输出(I/O)子系统204、存储器206、数据存储装置208、通信电路210、时钟214和往返估计引擎216。当然,在其它实施例中,发送器计算节点102可包括其它或另外的部件,诸如服务器中常见的那些部件(例如,各种输入/输出装置)。另外,在一些实施例中,一个或多个说明性部件可被并入在另一部件中或者以其它方式形成另一部件的一部分。例如,在一些实施例中,存储器206或其一部分可被并入在处理器202中。另外,在一些实施例中,一个或多个说明性部件可被从发送器计算节点102省略。
处理器202可被体现为能够执行这里描述的功能的任何类型的处理器。例如,处理器202可被体现为单核或多核处理器、数字信号处理器、微控制器或其它处理器或处理/控制电路。类似地,存储器206可被体现为能够执行这里描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器206可存储在发送器计算节点102的操作期间使用的各种数据和软件(诸如,操作系统、应用、程序、库和驱动程序)。
存储器206经I/O子系统204以可通信方式耦合到处理器202,I/O子系统204可被体现为用于方便关于处理器202、存储器206和发送器计算节点102的其它部件的输入/输出操作的电路和/或部件。例如,I/O子系统204可被体现为或以其它方式包括存储器控制器集线器、输入/输出控制集线器、固件装置、通信链路(即,点对点链路、总线链路、导线、线缆、光导、印刷电路板轨迹等)和/或用于方便输入/输出操作的其它部件和子系统。在一些实施例中,I/O子系统204可以形成片上系统(SoC)的一部分并且可以连同处理器202、存储器206和发送器计算节点102的其它部件一起被包括在单个集成电路芯片上。
数据存储装置208可被体现为被配置用于数据的短期或长期存储的任何类型的一个装置或多个装置(诸如,例如存储装置和电路、存储卡、硬盘驱动器、固态驱动器或其它数据存储装置)。数据存储装置208和/或存储器206可存储能够由发送器计算节点102的处理器(例如,处理器202)执行的如这里所述的各种数据,包括操作系统、应用、程序、库、驱动程序、指令等。
通信电路210可被体现为能够经网络(例如,网络104)实现发送器计算节点102和其它远程装置(例如,邻近计算节点108)之间的通信的任何通信电路、装置或其集合。通信电路210可被配置为使用任何一种或多种通信技术(例如,无线或有线通信技术)和关联的协议(例如,以太网、蓝牙®、Wi-Fi®、WiMAX、LTE、5G等)来实现这种通信。在一些实施例中,通信电路210被配置为(例如,在高性能计算(HPC)群集中)执行关于其它计算装置(例如,邻近计算节点108)的高速通信。
说明性通信电路210可被体现为或以其它方式包括网络接口控制器(NIC) 212。NIC 212可被体现为一个或多个内插板、子卡、网络接口卡、控制器芯片、芯片集或可由发送器计算节点102使用的其它装置。例如,在一些实施例中,NIC 212可被与处理器202集成在一起,可被体现为经扩展总线(例如,PCI快速)耦合到I/O子系统204的扩展卡、包括一个或多个处理器的SoC的一部分,或者可被包括在也包含一个或多个处理器的多芯片封装上。
应该理解,在一些实施例中,如这里所述的往返估计引擎216的至少一部分功能可被包括在NIC 212上或由NIC 212执行。换句话说,在一些实施例中,往返估计引擎216可被体现为NIC 212的硬件电路。如此,还应该理解,在这种实施例中,NIC 212可包括处理器(未示出)和/或相对于NIC 212位于本地的存储器(未示出)。在这种实施例中,NIC 212的处理器可以能够执行如这里所述的经卸载(offload)的功能。另外或者替代地,在这种实施例中,NIC 212的存储器可以能够在本地存储数据,以使得不影响发送器计算节点102的状态变化(即,不引入软件延时)。
时钟214可被体现为能够从其确定逝去的时间的持续时间和以其它方式能够执行这里描述的功能的任何软件、硬件部件和/或电路。例如,在说明性实施例中,时钟214可经由片上振荡器实现。在一些实施例中,时钟214可被共享(例如,多个分布式时钟通常使用同步协议而同步)。
往返估计引擎216可被体现为能够估计发送器计算节点102和邻近计算节点108之间的网络往返时间以及执行这里描述的任何其它功能的任何软件、硬件部件和/或电路。往返估计引擎216可被配置为在硬件中建立能够存储探测消息的消息队列,每个探测消息能够被发送给特定子集中的每个邻近计算节点中的一个不同的邻近计算节点。
往返估计引擎216可使用时钟214确定逝去的时间的持续时间,诸如消息队列的第一探测消息的传送和响应于消息队列的最后一个探测消息的最后一个确认的接收之间的逝去的时间的量。往返估计引擎216还可被配置为实现计数器,所述计数器能够在响应于消息队列的探测消息而接收到每个确认时增大。因此,为了确定是否停止时钟214,往返估计引擎216能够将计数器(即,计数器的值)与为消息队列产生的初始探测消息的数量(即,该特定子集中的邻近计算节点的数量)进行比较。
再一次参照图1,网络104可被体现为任何类型的有线或无线通信网络,包括蜂窝网络(例如,全球移动通信系统(GSM)、3G、长期演进(LTE)、微波接入全球互操作性(WiMAX)等)、数字用户线路(DSL)网络、有线网络(例如,同轴网络、光纤网络等)、电话网络、局域网(LAN)或广域网(WAN)、全球网络(例如,因特网)或其任何组合。此外还有,网络104可包括任何数量附加的物理和/或虚拟的可在网络中常见的计算装置(即,联网装置)(未示出),诸如服务器、交换机、路由器、接入点、网络控制器等。应该理解,在一些实施例中,网络104可被体现为能够实现高速低延时互连性的任何类型的并行和/或分布式计算架构(例如,高性能计算(HPC)网络架构),诸如群集计算网络架构和/或网格计算网络架构(例如,结构计算网络架构)。
类似于发送器计算节点102,每个邻近计算节点108可被体现为能够执行这里描述的功能的任何类型的运算或计算装置,非限制性地包括服务器(例如,独立服务器、安装在机架上的服务器、刀片服务器等)、(例如,物理或虚拟的)网络器具、web器具、分布式计算系统、基于处理器的系统、多处理器系统、智能电话、移动计算装置、平板计算机、膝上型计算机、笔记本计算机和/或任何其它计算/通信装置。因此,应该理解,每个邻近计算节点108可以包括与图2的说明性发送器计算节点102类似的部件,这里为了描述的清楚而未描述所述部件。
现在参照图3,在说明性实施例中,发送器计算节点102在操作期间建立环境300。说明性环境300包括网络通信模块308、往返时间估计电路310和作业任务调度器模块322。环境300的模块、逻辑和其它部件中的每一个可被体现为硬件、软件、固件或者其组合。例如,环境300的模块、逻辑和其它部件中的每一个可形成发送器计算节点102的处理器202或其它硬件部件的一部分,或者以其它方式由发送器计算节点102的处理器202或其它硬件部件建立。如此,在一些实施例中,环境300的一个或多个模块可被体现为电路或电气装置集合(例如,网络通信电路308、往返时间估计电路310、作业任务调度器电路322等)。
在说明性环境300中,发送器计算节点102包括邻近计算节点数据302、消息队列数据304和往返时间数据306,每种所述数据可被发送器计算节点102的各种模块和/或子模块访问。应该理解,发送器计算节点102可包括为了描述的清楚而未在图3中示出的、在网络的计算节点中常见的其它部件、子部件、模块、子模块、电路和/或装置。
网络通信模块308被配置为方便将网络通信(例如,网络通信业务、网络分组、网络流等)输入到发送器计算节点102以及从发送器计算节点102输出网络通信(例如,网络通信业务、网络分组、网络流等)。为了实现这一点,网络通信模块308被配置为从其它计算装置(例如,邻近计算节点108和/或经由网络104以可通信方式耦合的另一计算节点)接收网络分组并且处理网络分组。另外,网络通信模块308被配置为准备网络分组并且将网络分组传送给另一计算装置(例如,邻近计算节点108和/或经由网络104以可通信方式耦合的另一计算节点)。因此,在一些实施例中,网络通信模块308的至少一部分功能可由通信电路210(并且更具体地讲,由NIC 212)执行。
往返时间估计电路310被配置为估计发送器计算节点102的邻近计算节点108的网络往返时间。应该理解,可在发送器计算节点102的硬件中(诸如,由图2的往返估计引擎216)执行往返时间估计电路310的至少一部分。为了估计邻近计算节点108的网络往返时间,说明性往返时间估计电路310包括邻近计算节点确定模块312、消息队列管理模块314和往返时间估计模块320。
邻近计算节点确定模块312被配置为从经由网络104以可通信方式耦合到发送器计算节点102的目标计算节点106确定发送器计算节点102的邻近计算节点108(即,邻近计算节点108的集合)以及邻近计算节点108的集合的子集的数量。例如,如图1的说明性邻近计算节点108中所示,邻近计算节点确定模块312可确定邻近计算节点108,包括目标计算节点110、目标计算节点112、目标计算节点114和目标计算节点116。在一些实施例中,识别哪些以可通信方式耦合到发送器计算节点102的目标计算节点106已被识别为邻近计算节点的数据可被存储在邻近计算节点数据302中。
为了做出所述确定,邻近计算节点确定模块312可依赖于策略,所述策略指示邻近计算节点确定模块312如何识别邻近计算节点的集合(即,所述策略包括预定准则)。所述预定准则可包括能够被用于识别邻近计算节点的任何类型的数据,诸如邻近计算节点在网络104中定位成与发送器计算节点102相隔的跳跃的次数、计算节点(即,发送器计算节点102和目标计算节点106之一)之间的距离、分派给计算节点(即,发送器计算节点102和目标计算节点106之一)的区域或地理环境等。
在如图1中所示邻近计算节点108的说明性集合包括四个邻近计算节点的前一示例的推进中,邻近计算节点确定模块312可确定邻近计算节点的五个子集(即,比邻近计算节点108的总数多一个子集)。例如,第一子集可包括目标计算节点110、目标计算节点112和目标计算节点114。第二子集可包括目标计算节点112、目标计算节点114和目标计算节点116。第三子集可包括目标计算节点110、目标计算节点112和目标计算节点116。第四子集可包括目标计算节点110、目标计算节点114和目标计算节点116。第五子集可包括目标计算节点110和目标计算节点116。应该理解,在一些实施例中,可使用附加的和/或替代的子集。
消息队列管理模块314被配置为为每个邻近计算节点子集(诸如,由邻近计算节点确定模块312确定的那些子集)产生消息队列。为了实现这一点,消息队列管理模块314产生针对消息队列的每个邻近计算节点的探测消息(例如,0字节消息、“推”消息、低开销探测消息等),所述探测消息被配置为从接收计算节点(例如,识别的邻近计算节点108之一)引出响应消息(即,确认消息)。应该理解,在一些实施例中,邻近计算节点108可接收探测消息并且在硬件中产生响应消息以减少往返延时和软件开销。因此,在这种实施例中,从发送器计算节点102传送的探测消息的类型可包括这样的指示:探测消息将要被以这种方式处理。
在一些实施例中,与消息队列相关的数据(例如,消息队列的状态、与消息队列关联的逻辑或物理网络接口的标识符等)可被存储在消息队列数据304中。应该理解,在一些实施例中,可在另一消息队列已完成该消息队列的所有探测消息的传送时预测一个消息队列的产生。换句话说,可在受制于另一消息队列的完成的不同时间产生不同消息队列(即,针对邻近计算节点108的集合的每个子集)。
消息队列管理模块314还被配置为管理来自队列的每个探测消息的传送。为了实现这一点,消息队列管理模块314被配置为当消息队列包括针对邻近计算节点子集中的每个邻近计算节点的探测消息并且第一探测消息被传送给如该探测消息所指定的邻近计算节点108之一时启动定时器(例如,使用图2的时钟214)。此外还有,消息队列管理模块314被配置为从由最近传送的探测消息指定的邻近计算节点接收响应消息(即,确认消息)。
当接收到响应消息时,消息队列管理模块314被配置为增大计数器并且确定计数器是否等于邻近计算节点的子集的邻近计算节点的数量。在将计数器的值与所述子集的邻近计算节点的数量进行比较后,(例如,当计数器被确定为小于所述子集的邻近计算节点的数量时)消息队列管理模块314能够发送来自消息队列的另一探测消息或者(例如,当计数器被确定为等于所述子集的邻近计算节点的数量时)消息队列管理模块314能够停止定时器。应该理解,在一些实施例中,计数器可被实现在硬件中以减少与软件实现方式关联的延时。还应该理解,在一些实施例中,消息队列管理模块314可以使用用于管理计数器的计数器管理模块316和/或用于管理定时器的定时器管理模块执行这里描述的一个或多个功能。
往返时间估计模块320被配置为为每个邻近计算节点估计往返时间。为了实现这一点,往返时间估计模块320可为邻近计算节点的每个子集产生方程。在已产生最小数量的方程之后,往返时间估计模块320可进一步估计往返时间。例如,在前一示例的推进中并且如图6中所示,第一子集包括目标计算节点110、目标计算节点112和目标计算节点114。可根据下面的方程产生作为结果的方程:
方程1
其中对应于可归因于启动和停止时钟的软件开销;对应于目标计算节点110的往返时间;对应于目标计算节点112的往返时间;对应于目标计算节点114的往返时间;并且对应于用于针对第一子集的每个邻近计算节点传送探测消息以及接收确认的时间的持续时间。
现在参照图6,用于确定邻近计算节点的子集的往返时间的说明性消息流600包括图1的发送器计算节点102和邻近计算节点108。在步骤602,发送器计算节点102启动定时器。应该理解,在一些实施例中,软件逻辑可被用于操纵定时器(例如,图2的时钟214),所述定时器可能引入可归因于软件的运行的开销(即,延时)。在步骤604,发送器计算节点102将探测消息传送给目标计算节点110。在步骤606,响应于探测消息,发送器计算节点102从目标计算节点110接收探测确认(即,响应消息)。在步骤608,发送器计算节点102增大计数器并且确定计数器是否与子集的邻近计算节点的数量匹配。在步骤610,发送器计算节点102将探测消息传送给目标计算节点112。在步骤612,响应于探测消息,发送器计算节点102从目标计算节点112接收探测确认(即,响应消息)。在步骤614,发送器计算节点102增大计数器并且确定计数器是否与子集的邻近计算节点的数量匹配。在步骤616,发送器计算节点102再次将探测消息传送给目标计算节点114。在步骤618,响应于探测消息,发送器计算节点102再次从目标计算节点114接收探测确认(即,响应消息)。在步骤620,发送器计算节点102增大计数器并且确定计数器是否与子集的邻近计算节点的数量匹配。在步骤622,发送器计算节点停止定时器,这可能引入另外的软件延时。
在如前所述邻近计算节点108的子集的初始组完成时,可建立下面的线性方程组:
方程2
其中对应于目标计算节点116的往返时间;并且对应于用于针对“第X”子集(即,第一至第五子集)的每个邻近计算节点传送探测消息以及接收确认的时间的持续时间。作为结果,往返时间估计模块320可被配置为(例如,使用标准最小二乘方方法)求解如方程2中所示的线性方程组以估计每个邻近计算节点108的往返时间以及估计软件开销。在一些实施例中,所述方程、作为结果的往返时间估计和/或估计的软件开销持续时间可被存储在往返时间数据306中。
另外,在一些实施例中,往返时间估计电路310可被配置为动态地更新估计的往返时间。在这种实施例中,往返时间估计模块320还可被配置为向消息队列管理模块314提供这样的指示:所述指示用于指示往返时间已被估计。因此,在这种实施例中,消息队列管理模块314可被配置为响应于接收所述指示而产生邻近计算节点的新子集,所述新子集能够被用于进一步改进和/或更新估计的往返时间。当然,在其它实施例中,应该理解,消息队列管理模块314可被配置为诸如在预定时间段之后自动地产生邻近计算节点的新子集。
作业任务调度器模块322被配置为对作业任务进行调度。为了实现这一点,在一些实施例中,作业任务调度器模块322可被配置为至少部分地基于由往返时间估计电路310所确定的估计的往返时间调度作业任务。在这种实施例中,作业任务调度器模块322被配置为基于估计的往返时间建立网络104的静态视图。另外,作业任务调度器模块322可被配置为基于网络104的静态视图确定在哪些邻近计算节点调度哪些作业任务。
现在参照图4和5,在使用中,发送器计算节点102可执行用于估计邻近计算节点(例如,图1的邻近计算节点108)的网络往返时间的方法400。应该理解,方法400的至少一部分可被卸载到发送器计算节点102的往返估计引擎216并且由发送器计算节点102的往返估计引擎216执行。方法400开始于块402,在块402中,发送器计算节点102确定发送器计算节点的邻近计算节点108的集合。在一些实施例中,可从多个目标计算节点106确定邻近计算节点108的集合,所述多个目标计算节点106中的每个目标计算节点106与发送器计算节点102网络通信。
在块404中,发送器计算节点102确定邻近计算节点的集合的子集的数量。在一些实施例中,在块406中,发送器计算节点102确定等于比在块402中确定的邻近计算节点108的集合的总数多出至少一个子集的子集的数量。在块408中,发送器计算节点102产生消息队列,该消息队列包括针对邻近计算节点的下一子集的每个邻近计算节点的探测消息。在块410中,发送器计算节点102重置与在块408中产生的消息队列关联的计数器(即,将计数器设置为零)。在块412中,发送器计算节点102启动与消息队列关联的定时器。
在块414中,发送器计算节点102基于第一探测消息将第一探测消息从消息队列传送给对应邻近计算节点。应该理解,在一些实施例中,时间戳可由发送器计算节点102的定时装置(例如,时钟214)产生并且在本地存储于发送器计算节点102(例如,存储在存储器206或数据存储装置208中)以用于未来参考。在块416中,发送器计算节点102确定是否从探测消息在块412中被传送到的邻近计算装置接收到消息确认。如果未接收到消息确认,则方法400循环返回到块416以继续确定是否接收到消息确认。否则,如果接收到消息确认,则方法400前进至块418。在块418中,发送器计算节点102增大与消息队列关联的计数器。
在块420中,发送器计算节点102确定计数器的值是否等于子集的邻近计算节点的总量。如果计数器的值不等于子集的邻近计算节点的总量,则在该方法返回到块416以确定是否响应于在块422中传送的下一探测消息接收到消息确认之前,发送器计算节点102从消息队列向由下一探测消息定义的另一邻近计算节点传送下一探测消息。否则,如果发送器计算节点102确定计数器的值等于子集的邻近计算节点的总量(即,消息队列中的所有探测消息已被传送并且针对每个探测消息的响应确认消息已被接收),则该方法前进至块424。
在块424中,发送器计算节点102停止与消息队列关联的定时器。应该理解,在一些实施例中,另一时间戳可由发送器计算节点102的定时装置(例如,时钟214)产生并且在本地存储于发送器计算节点102(例如,存储在存储器206或数据存储装置208中)以用于与可能已在块412中启动定时器时产生的时间戳的比较。在块426中,与块424中的定时器的值(例如,另一时间戳)相比,基于块412中的定时器的值(例如,时间戳),发送器计算节点102确定往返时间。在块428中,发送器计算节点102存储在块426中确定的往返时间。
在块430中,发送器计算节点102确定邻近计算节点的另一子集是否可用。如果邻近计算节点的另一子集可用,则方法400返回到块408,其中发送器计算节点102为邻近计算节点的下一子集产生另一消息队列,所述另一消息队列包括针对邻近计算节点的下一子集的每个邻近计算节点的探测消息。否则,如果邻近计算节点的另一子集不可用,则方法400前进至块432,其中发送器计算节点102基于为邻近计算节点的每个子集确定的往返时间为邻近计算节点集合中的每个估计往返时间。在一些实施例中,在块434中,发送器计算节点102通过确定与邻近计算节点的子集对应的线性方程组的解来确定往返时间。
在块436中,发送器计算节点102估计可归因于软件开销的往返时间的一部分。应该理解,在一些实施例中,在块432中确定的估计的往返时间和在块436中确定的估计的软件开销可由发送器计算节点102同时确定(例如,将软件开销输入到邻近计算节点的子集的线性方程中)。在块438中,发送器计算节点102确定是否任何未决作业任务要由发送器计算节点102调度。如果作业任务将要被调度,则该方法前进至块440,其中在方法400返回到块404之前,发送器计算节点102至少部分地基于估计的往返时间调度在块438中确定为要调度的工作任务。如果不存在将要被调度的任何作业任务,则该方法返回到块404,其中发送器计算节点102确定邻近计算节点的集合的子集的数量。应该理解,在这次和随后的迭代上,仅一个不同子集可被产生以进一步改进或者以其它方式更新估计的往返时间和软件开销。
应该理解,在一些实施例中,方法400可被体现为存储在计算机可读介质上的各种指令,所述各种指令可由发送器计算节点102的处理器202、网络接口控制器212和/或其它部件执行以使发送器计算节点102执行方法400。计算机可读介质可被体现为能够由发送器计算节点102读取的任何类型的介质,包括但不限于存储器206、数据存储装置208、网络接口控制器212的局部存储器、发送器计算节点102的其它存储器或数据存储装置、可由发送器计算节点102的外围装置读取的便携式介质和/或其它介质。
示例
以下提供这里公开的技术的说明性示例。该技术的实施例可包括以下描述的示例中的任何一个或多个和任何组合。
示例1包括一种用于确定网络往返时间的发送器计算节点,所述发送器计算装置包括一个或多个处理器和一个或多个存储器装置,所述一个或多个存储器装置具有在其中存储的多个指令,当由所述一个或多个处理器执行所述多个指令时,所述多个指令使发送器计算节点:确定邻近计算节点的集合;基于邻近计算节点的集合确定邻近计算节点的多个子集,其中邻近计算节点的所述多个子集中的每个子集是线性无关的;为邻近计算节点的每个子集产生消息队列,其中每个消息队列包括针对对应消息队列的每个邻近计算节点的探测消息;将每个消息队列的每个探测消息传送给由对应探测消息指定的邻近计算节点;响应于每个传送的探测消息接收确认;响应于已响应于每个消息队列的每个传送的探测消息接收到确认,为每个消息队列确定队列时间;以及基于每个消息队列的队列时间为邻近计算节点的集合的每个邻近计算节点估计往返时间。
示例2包括示例1的主题,并且其中为每个消息队列确定队列时间包括(i)在传送来自消息队列之一的第一探测消息之前启动与所述消息队列之一关联的定时器,(ii)响应于响应于第一探测消息接收到确认而增大计数器,(iii)在增大计数器之后,响应于确定计数器不等于消息队列中的消息的总数而传送所述消息队列之一中的下一探测消息,(iv)响应于响应于所述下一探测消息接收到确认而增大计数器,(v)确定消息队列是否包括另一探测消息,(vi)停止与所述消息队列之一关联的定时器,以及(vii)基于定时器在已经启动和停止定时器之间运行的持续时间为所述消息队列之一确定往返时间。
示例3包括示例1或2的主题,并且其中启动和停止定时器包括在软件中启动和停止定时器。
示例4包括示例1-3中任一项的主题,并且还包括基于硬件的计数器,其中增大计数器包括增大基于硬件的计数器。
示例5包括示例1-4中任一项的主题,并且其中确定邻近计算节点的所述多个子集包括确定等于比邻近计算节点的集合的总数大一的子集的数量。
示例6包括示例1-5中任一项的主题,并且其中为邻近计算节点的集合的每个邻近计算节点估计往返时间还包括估计软件开销。
示例7包括示例1-6中任一项的主题,并且其中当由所述一个或多个处理器执行所述一个或多个存储器装置时,所述一个或多个存储器装置使发送器计算节点根据估计的往返时间调度一个或多个作业任务。
示例8包括示例1-7中任一项的主题,并且其中为每个邻近计算节点确定估计的往返时间包括针对确定的队列时间的线性系统执行标准最小二乘方计算。
示例9包括一种用于估计网络往返时间的方法,所述方法包括:由发送器计算节点确定邻近计算节点的集合;由发送器计算节点基于邻近计算节点的集合确定邻近计算节点的多个子集,其中邻近计算节点的所述多个子集中的每个子集是线性无关的;由发送器计算节点为邻近计算节点的每个子集产生消息队列,其中每个消息队列包括针对对应消息队列的每个邻近计算节点的探测消息;由发送器计算节点将每个消息队列的每个探测消息传送给由对应探测消息指定的邻近计算节点;由发送器计算节点响应于每个传送的探测消息接收确认;由发送器计算节点,并且响应于已响应于每个消息队列的每个传送的探测消息接收到确认,为每个消息队列确定队列时间;以及由发送器计算节点基于每个消息队列的队列时间为邻近计算节点的集合的每个邻近计算节点估计往返时间。
示例10包括示例9的主题,并且其中为每个消息队列确定队列时间包括(i)在传送来自消息队列之一的第一探测消息之前启动与所述消息队列之一关联的定时器,(ii)响应于响应于第一探测消息接收到确认而增大计数器,(iii)在增大计数器之后,响应于确定计数器不等于消息队列中的消息的总数而传送所述消息队列之一中的下一探测消息,(iv)响应于响应于所述下一探测消息接收到确认而增大计数器,(v)确定消息队列是否包括另一探测消息,(vi)停止与所述消息队列之一关联的定时器,和(vii)基于定时器在启动和停止定时器之间运行的持续时间为所述消息队列之一确定往返时间。
示例11包括示例9或10的主题,并且其中启动和停止定时器包括在软件中启动和停止定时器。
示例12包括示例9-11中任一项的主题,并且其中增大计数器包括增大基于硬件的计数器。
示例13包括示例9-12中任一项的主题,并且其中确定邻近计算节点的所述多个子集包括确定等于比邻近计算节点的集合的总数大一的子集的数量。
示例14包括示例9-13中任一项的主题,并且其中为邻近计算节点的集合的每个邻近计算节点估计往返时间还包括估计软件开销。
示例15包括示例9-14中任一项的主题,并且还包括由发送器计算节点根据估计的往返时间调度一个或多个作业任务。
示例16包括示例9-15中任一项的主题,并且其中为每个邻近计算节点确定估计的往返时间包括针对确定的队列时间的线性系统执行标准最小二乘方计算。
示例17包括一种发送器计算节点,所述发送器计算节点包括:处理器;和存储器,存储器在其中存储有多个指令,当所述多个指令由处理器执行时,所述多个指令使发送器计算节点执行示例9-16中任一项的方法。
示例18包括一个或多个机器可读存储介质,所述一个或多个机器可读存储介质包括存储在其上的多个指令,响应于执行所述多个指令,所述多个指令导致发送器计算节点执行示例9-16中任一项的方法。
示例19包括一种用于确定网络往返时间的发送器计算节点,所述发送器计算装置包括:邻近节点确定电路,用于(i)确定邻近计算节点的集合,以及(ii)基于邻近计算节点的集合确定邻近计算节点的多个子集,其中邻近计算节点的所述多个子集中的每个子集是线性无关的;消息队列管理电路,用于(i)为邻近计算节点的每个子集产生消息队列,其中每个消息队列包括针对对应消息队列的每个邻近计算节点的探测消息,(ii)将每个消息队列的每个探测消息传送给由对应探测消息指定的邻近计算节点,以及(iii)响应于每个传送的探测消息接收确认;往返时间确定电路,用于(i)响应于已响应于每个消息队列的每个传送的探测消息接收到确认,为每个消息队列确定队列时间,以及(ii)基于每个消息队列的队列时间为邻近计算节点的集合的每个邻近计算节点估计往返时间。
示例20包括示例的主题19并且其中为每个消息队列确定队列时间包括(i)在传送来自消息队列之一的第一探测消息之前启动与所述消息队列之一关联的定时器,(ii)响应于响应于第一探测消息接收到确认而增大计数器,(iii)在增大计数器之后,响应于确定计数器不等于消息队列中的消息的总数而传送所述消息队列之一中的下一探测消息,(iv)响应于响应于所述下一探测消息接收到确认而增大计数器,(v)确定消息队列是否包括另一探测消息,(vi)停止与所述消息队列之一关联的定时器,以及(vii)基于定时器在已经启动和停止定时器之间运行的持续时间为所述消息队列之一确定往返时间。
示例21包括示例19或20的主题,并且其中启动和停止定时器包括在软件中启动和停止定时器。
示例22包括示例19-21中任一项的主题,并且其中增大计数器包括增大发送器计算装置的基于硬件的计数器。
示例23包括示例19-22中任一项的主题,并且其中确定邻近计算节点的所述多个子集包括确定等于比邻近计算节点的集合的总数大一的子集的数量。
示例24包括示例19-23中任一项的主题,并且其中为邻近计算节点的集合的每个邻近计算节点估计往返时间还包括估计软件开销。
示例25包括示例19-24中任一项的主题,并且其中当由所述一个或多个处理器执行所述一个或多个存储器装置时,所述一个或多个存储器装置使发送器计算节点根据估计的往返时间调度一个或多个作业任务。
示例26包括示例19-25中任一项的主题,并且其中为每个邻近计算节点确定估计的往返时间包括针对确定的队列时间的线性系统执行标准最小二乘方计算。
示例27包括一种用于估计网络往返时间的发送器计算节点,所述发送器计算节点包括:用于确定邻近计算节点的集合的装置;用于基于邻近计算节点的集合确定邻近计算节点的多个子集的装置,其中邻近计算节点的所述多个子集中的每个子集是线性无关的;用于为邻近计算节点的每个子集产生消息队列的装置,其中每个消息队列包括针对对应消息队列的每个邻近计算节点的探测消息;用于将每个消息队列的每个探测消息传送给由对应探测消息指定的邻近计算节点的装置;用于响应于每个传送的探测消息接收确认的装置;用于响应于已响应于每个消息队列的每个传送的探测消息接收到确认为每个消息队列确定队列时间的装置;和用于基于每个消息队列的队列时间为邻近计算节点的集合的每个邻近计算节点估计往返时间的装置。
示例28包括示例27的主题,并且其中所述用于为每个消息队列确定队列时间的装置包括用于下述操作的装置:(i)在传送来自消息队列之一的第一探测消息之前启动与所述消息队列之一关联的定时器,(ii)响应于响应于第一探测消息接收到确认而增大计数器,(iii)在增大计数器之后,响应于确定计数器不等于消息队列中的消息的总数而传送所述消息队列之一中的下一探测消息,(iv)响应于响应于所述下一探测消息接收到确认而增大计数器,(v)确定消息队列是否包括另一探测消息,(vi)停止与所述消息队列之一关联的定时器,和(vii)基于定时器在启动和停止定时器之间运行的持续时间为所述消息队列之一确定往返时间。
示例29包括示例28的主题,并且其中用于启动和停止定时器的装置包括用于在软件中启动和停止定时器的装置。
示例30包括示例28或29的主题,并且其中用于增大计数器的装置包括用于增大基于硬件的计数器的装置。
示例31包括示例28-30中任一项的主题,并且其中用于确定邻近计算节点的所述多个子集的装置包括用于确定等于比邻近计算节点的集合的总数大一的子集的数量的装置。
示例32包括示例28-31中任一项的主题,并且其中用于为邻近计算节点的集合的每个邻近计算节点估计往返时间的装置还包括用于估计软件开销的装置。
示例33包括示例28-32中任一项的主题,并且还包括用于根据估计的往返时间调度一个或多个作业任务的装置。
示例34包括示例28-33中任一项的主题,并且其中用于为每个邻近计算节点确定估计的往返时间的装置包括用于针对确定的队列时间的线性系统执行标准最小二乘方计算的装置。
Claims (23)
1.一种用于确定网络往返时间的发送器计算节点,所述发送器计算节点包括:
一个或多个处理器;和
一个或多个存储器装置,所述一个或多个存储器装置在其中存储有多个指令,当由所述一个或多个处理器执行所述多个指令时,所述多个指令使发送器计算节点:
确定邻近计算节点的集合;
基于邻近计算节点的集合确定邻近计算节点的多个子集,其中邻近计算节点的所述多个子集中的每个子集是线性无关的;
为邻近计算节点的每个子集产生消息队列;
为每个消息队列产生针对与对应消息队列相关联的所述邻近计算节点的子集的每个邻近计算节点的探测消息;
将每个消息队列的每个探测消息传送给由对应探测消息指定的邻近计算节点;
响应于每个传送的探测消息接收确认;
响应于已响应于每个消息队列的每个传送的探测消息接收到确认,为每个消息队列确定时间的持续时间;以及
基于每个消息队列的时间的持续时间为邻近计算节点的集合的每个邻近计算节点估计往返时间,
其中为每个邻近计算节点确定估计的往返时间包括针对每个消息队列的确定的时间的持续时间的线性系统执行标准最小二乘方计算。
2.如权利要求1所述的发送器计算节点,其中为每个消息队列确定时间的持续时间包括(i)在传送来自消息队列之一的第一探测消息之前启动与所述消息队列之一关联的定时器,(ii)响应于响应于第一探测消息接收到确认而增大计数器,(iii)在增大计数器之后,响应于确定计数器不等于消息队列中的消息的总数而传送所述消息队列之一中的下一探测消息,(iv)响应于响应于所述下一探测消息接收到确认而增大计数器,(v)确定消息队列是否包括另一探测消息,(vi)停止与所述消息队列之一关联的定时器,以及(vii)基于定时器在已经启动和停止定时器之间运行的持续时间为所述消息队列之一确定往返时间。
3.如权利要求2所述的发送器计算节点,其中启动和停止定时器包括在软件中启动和停止定时器。
4.如权利要求2所述的发送器计算节点,还包括:基于硬件的计数器,其中增大计数器包括增大基于硬件的计数器。
5.如权利要求1所述的发送器计算节点,其中确定邻近计算节点的所述多个子集包括确定等于比邻近计算节点的集合的总数大一的子集的数量。
6.如权利要求1所述的发送器计算节点,其中为邻近计算节点的集合的每个邻近计算节点估计往返时间还包括估计软件开销。
7.如权利要求1所述的发送器计算节点,其中当由所述一个或多个处理器执行所述一个或多个存储器装置时,所述一个或多个存储器装置使发送器计算节点根据估计的往返时间调度一个或多个作业任务。
8.一种用于估计网络往返时间的发送器计算节点,所述发送器计算节点包括:
用于确定邻近计算节点的集合的装置;
用于基于邻近计算节点的集合确定邻近计算节点的多个子集的装置,其中邻近计算节点的所述多个子集中的每个子集是线性无关的;
用于为邻近计算节点的每个子集产生消息队列的装置;
用于为每个消息队列产生其针对与对应消息队列相关联的邻近计算节点的子集的每个邻近计算节点的探测消息的装置;
用于将每个消息队列的每个探测消息传送给由对应探测消息指定的邻近计算节点的装置;
用于响应于每个传送的探测消息接收确认的装置;
用于响应于已响应于每个消息队列的每个传送的探测消息接收到确认为每个消息队列确定时间的持续时间的装置;和
用于基于每个消息队列的时间的持续时间为邻近计算节点的集合的每个邻近计算节点估计往返时间的装置,
其中用于为每个邻近计算节点确定估计的往返时间的装置包括用于针对每个消息队列的确定的时间的持续时间的线性系统执行标准最小二乘方计算的装置。
9.如权利要求8所述的发送器计算节点,其中所述用于为每个消息队列确定时间的持续时间的装置包括用于下述操作的装置:(i)在传送来自消息队列之一的第一探测消息之前启动与所述消息队列之一关联的定时器,(ii)响应于响应于第一探测消息接收到确认而增大计数器,(iii)在增大计数器之后,响应于确定计数器不等于消息队列中的消息的总数而传送所述消息队列之一中的下一探测消息,(iv)响应于响应于所述下一探测消息接收到确认而增大计数器,(v)确定消息队列是否包括另一探测消息,(vi)停止与所述消息队列之一关联的定时器,和(vii)基于定时器在启动和停止定时器之间运行的持续时间为所述消息队列之一确定往返时间。
10.如权利要求9所述的发送器计算节点,其中用于启动和停止定时器的装置包括用于在软件中启动和停止定时器的装置。
11.如权利要求9所述的发送器计算节点,其中用于增大计数器的装置包括用于增大基于硬件的计数器的装置。
12.如权利要求8所述的发送器计算节点,其中用于确定邻近计算节点的所述多个子集的装置包括用于确定等于比邻近计算节点的集合的总数大一的子集的数量的装置。
13.如权利要求8所述的发送器计算节点,其中用于为邻近计算节点的集合的每个邻近计算节点估计往返时间的装置还包括用于估计软件开销的装置。
14.如权利要求8所述的发送器计算节点,还包括:用于根据估计的往返时间调度一个或多个作业任务的装置。
15.一种用于估计网络往返时间的方法,所述方法包括:
由发送器计算节点确定邻近计算节点的集合;
由发送器计算节点基于邻近计算节点的集合确定邻近计算节点的多个子集,其中邻近计算节点的所述多个子集中的每个子集是线性无关的;
由发送器计算节点为邻近计算节点的每个子集产生消息队列;
由发送器计算节点为每个消息队列产生针对与对应消息队列相关联的邻近计算节点的子集的每个邻近计算节点的探测消息;
由发送器计算节点将每个消息队列的每个探测消息传送给由对应探测消息指定的邻近计算节点;
由发送器计算节点响应于每个传送的探测消息接收确认;
由发送器计算节点,并且响应于已响应于每个消息队列的每个传送的探测消息接收到确认,为每个消息队列确定时间的持续时间;以及
由发送器计算节点基于每个消息队列的时间的持续时间为邻近计算节点的集合的每个邻近计算节点估计往返时间,
其中为每个邻近计算节点确定估计的往返时间包括针对每个消息队列的确定的时间的持续时间的线性系统执行标准最小二乘方计算。
16.如权利要求15所述的方法,其中为每个消息队列确定时间的持续时间包括(i)在传送来自消息队列之一的第一探测消息之前启动与所述消息队列之一关联的定时器,(ii)响应于响应于第一探测消息接收到确认而增大计数器,(iii)在增大计数器之后,响应于确定计数器不等于消息队列中的消息的总数而传送所述消息队列之一中的下一探测消息,(iv)响应于响应于所述下一探测消息接收到确认而增大计数器,(v)确定消息队列是否包括另一探测消息,(vi)停止与所述消息队列之一关联的定时器,和(vii)基于定时器在启动和停止定时器之间运行的持续时间为所述消息队列之一确定往返时间。
17.如权利要求16所述的方法,其中启动和停止定时器包括在软件中启动和停止定时器。
18.如权利要求16所述的方法,其中增大计数器包括增大基于硬件的计数器。
19.如权利要求15所述的方法,其中确定邻近计算节点的所述多个子集包括确定等于比邻近计算节点的集合的总数大一的子集的数量。
20.如权利要求15所述的方法,其中为邻近计算节点的集合的每个邻近计算节点估计往返时间还包括估计软件开销。
21.如权利要求15所述的方法,还包括:由发送器计算节点根据估计的往返时间调度一个或多个作业任务。
22.一个或多个机器可读存储介质,所述一个或多个机器可读存储介质包括存储在其上的多个指令,响应于执行所述多个指令,所述多个指令导致发送器计算节点执行如权利要求15-21中任一项所述的方法。
23.一种计算节点,包括用于执行如权利要求15-21中任一项所述的方法的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/866559 | 2015-09-25 | ||
US14/866,559 US10554568B2 (en) | 2015-09-25 | 2015-09-25 | Technologies for network round-trip time estimation |
PCT/US2016/048598 WO2017052961A1 (en) | 2015-09-25 | 2016-08-25 | Technologies for network round-trip time estimation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108028781A CN108028781A (zh) | 2018-05-11 |
CN108028781B true CN108028781B (zh) | 2022-03-29 |
Family
ID=58387296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680055561.9A Active CN108028781B (zh) | 2015-09-25 | 2016-08-25 | 用于网络往返时间估计的技术 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10554568B2 (zh) |
CN (1) | CN108028781B (zh) |
DE (1) | DE112016004319T5 (zh) |
WO (1) | WO2017052961A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10148543B2 (en) * | 2015-12-23 | 2018-12-04 | EMC IP Holding Company LLC | Connection-oriented communication devices with round trip time estimation |
CN108768778B (zh) * | 2018-05-31 | 2020-12-04 | 中国商用飞机有限责任公司北京民用飞机技术研究中心 | 一种网络时延计算方法、装置、设备及存储介质 |
US11159972B2 (en) | 2018-10-31 | 2021-10-26 | Qualcomm Incorporated | Handling of radio frequency front-end group delays for round trip time estimation |
CN111130916B (zh) * | 2018-10-31 | 2022-02-08 | 中国电信股份有限公司 | 网络质量探测方法和管理装置 |
US10848256B2 (en) * | 2018-11-08 | 2020-11-24 | Qualcomm Incorporated | Group delay calibration for carrier aggregation / multi-radio access technology |
US11385691B2 (en) * | 2020-01-30 | 2022-07-12 | Honeywell International Inc. | Method for node message synchronization |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1939003A (zh) * | 2004-01-30 | 2007-03-28 | 惠普开发有限公司 | 使用节点的位置信息选择网络中靠近另一个节点的节点 |
CN102714632A (zh) * | 2012-02-10 | 2012-10-03 | 华为技术有限公司 | 端到端覆盖网中转方法和系统 |
WO2014158407A1 (en) * | 2013-03-14 | 2014-10-02 | Cisco Technology, Inc. | Intra switch transport protocol |
CN104395776A (zh) * | 2012-06-19 | 2015-03-04 | 高通股份有限公司 | 用于移动设备定位的自适应被动扫描和/或主动探测技术 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6845091B2 (en) | 2000-03-16 | 2005-01-18 | Sri International | Mobile ad hoc extensions for the internet |
US6865510B2 (en) * | 2002-12-12 | 2005-03-08 | Ugs Corp. | Adaptive asymmetric network connectivity probing system and method |
US7843815B2 (en) * | 2005-08-19 | 2010-11-30 | Opnet Technologies, Inc. | Estimation of time-varying latency based on network trace information |
US7730119B2 (en) * | 2006-07-21 | 2010-06-01 | Sony Computer Entertainment Inc. | Sub-task processor distribution scheduling |
US9420513B1 (en) * | 2007-06-22 | 2016-08-16 | Hewlett Packard Enterprise Development Lp | Clustering approach to estimating a network metric for nodes |
US8873416B2 (en) | 2010-02-26 | 2014-10-28 | University Of Cape Town | System and method for estimating round-trip time in telecommunication networks |
JP5387483B2 (ja) * | 2010-03-31 | 2014-01-15 | 富士通株式会社 | 無線通信に用いられる装置、プログラム及び方法 |
US8577116B2 (en) * | 2012-02-01 | 2013-11-05 | Molecular Devices, Llc | Assay image acquisition system and method |
US9385933B2 (en) | 2013-02-05 | 2016-07-05 | Cisco Technology, Inc. | Remote probing for remote quality of service monitoring |
KR101535721B1 (ko) | 2013-10-30 | 2015-07-10 | 삼성에스디에스 주식회사 | 큐잉 지연 추정 방법 및 장치 |
-
2015
- 2015-09-25 US US14/866,559 patent/US10554568B2/en not_active Expired - Fee Related
-
2016
- 2016-08-25 DE DE112016004319.8T patent/DE112016004319T5/de not_active Withdrawn
- 2016-08-25 WO PCT/US2016/048598 patent/WO2017052961A1/en active Application Filing
- 2016-08-25 CN CN201680055561.9A patent/CN108028781B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1939003A (zh) * | 2004-01-30 | 2007-03-28 | 惠普开发有限公司 | 使用节点的位置信息选择网络中靠近另一个节点的节点 |
CN102714632A (zh) * | 2012-02-10 | 2012-10-03 | 华为技术有限公司 | 端到端覆盖网中转方法和系统 |
CN104395776A (zh) * | 2012-06-19 | 2015-03-04 | 高通股份有限公司 | 用于移动设备定位的自适应被动扫描和/或主动探测技术 |
WO2014158407A1 (en) * | 2013-03-14 | 2014-10-02 | Cisco Technology, Inc. | Intra switch transport protocol |
Also Published As
Publication number | Publication date |
---|---|
US10554568B2 (en) | 2020-02-04 |
US20170093731A1 (en) | 2017-03-30 |
CN108028781A (zh) | 2018-05-11 |
DE112016004319T5 (de) | 2018-06-28 |
WO2017052961A1 (en) | 2017-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108028781B (zh) | 用于网络往返时间估计的技术 | |
US10659532B2 (en) | Technologies for reducing latency variation of stored data object requests | |
Vattikonda et al. | Practical TDMA for datacenter Ethernet | |
US10135711B2 (en) | Technologies for sideband performance tracing of network traffic | |
US9893874B2 (en) | Fabric multipathing based on dynamic latency-based calculations | |
US20190044879A1 (en) | Technologies for reordering network packets on egress | |
US10389636B2 (en) | Technologies for adaptive routing using network traffic characterization | |
WO2017052973A1 (en) | Technologies for performance inspection at an endpoint node | |
US11089099B2 (en) | Technologies for managing data object requests in a storage node cluster | |
US20140304543A1 (en) | Fabric multipathing based on dynamic latency-based calculations | |
JP7394986B2 (ja) | データパケットを送信する方法、及びこの方法を実施する装置 | |
WO2015196685A1 (zh) | 时钟同步方法及装置 | |
US20170187587A1 (en) | Technologies for inline network traffic performance tracing | |
US9916178B2 (en) | Technologies for integrated thread scheduling | |
US9667722B2 (en) | Method and system for non-tagged based latency calculation | |
Popescu | Latency-driven performance in data centres | |
US9203759B2 (en) | Switch state reporting | |
WO2016202158A1 (zh) | 一种报文传输方法、装置及计算机可读存储介质 | |
WO2019109902A1 (zh) | 队列调度方法及装置、通信设备、存储介质 | |
Chertov et al. | A device-independent router model | |
US11108697B2 (en) | Technologies for controlling jitter at network packet egress | |
Suen et al. | Affordable avionic networks with Gigabit Ethernet assessing the suitability of commercial components for airborne use | |
WO2016105444A1 (en) | Technologies for synchronized sampling of counters based on a global clock | |
US10887078B2 (en) | Device, system, and method for determining a forwarding delay through a networking device | |
US20170085442A1 (en) | Technologies for aggregation-based message synchronization |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |