CN113169896B - 网络度量的连续校准 - Google Patents
网络度量的连续校准 Download PDFInfo
- Publication number
- CN113169896B CN113169896B CN201980080299.7A CN201980080299A CN113169896B CN 113169896 B CN113169896 B CN 113169896B CN 201980080299 A CN201980080299 A CN 201980080299A CN 113169896 B CN113169896 B CN 113169896B
- Authority
- CN
- China
- Prior art keywords
- network
- bandwidth
- measurements
- data
- value
- 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
- 238000000034 method Methods 0.000 claims abstract description 99
- 230000000295 complement effect Effects 0.000 claims abstract description 58
- 230000010355 oscillation Effects 0.000 claims abstract description 42
- 238000007619 statistical method Methods 0.000 claims abstract description 4
- 238000005259 measurement Methods 0.000 claims description 137
- 230000006870 function Effects 0.000 claims description 19
- 230000015654 memory Effects 0.000 claims description 19
- 238000000611 regression analysis Methods 0.000 claims description 4
- 238000003860 storage Methods 0.000 description 45
- 238000004891 communication Methods 0.000 description 28
- 230000005540 biological transmission Effects 0.000 description 25
- 230000001965 increasing effect Effects 0.000 description 17
- 230000003139 buffering effect Effects 0.000 description 16
- 230000000875 corresponding effect Effects 0.000 description 12
- 229920006395 saturated elastomer Polymers 0.000 description 11
- 230000004044 response Effects 0.000 description 10
- 238000013500 data storage Methods 0.000 description 8
- 230000003068 static effect Effects 0.000 description 8
- 230000002596 correlated effect Effects 0.000 description 7
- 230000007423 decrease Effects 0.000 description 7
- 230000003247 decreasing effect Effects 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 5
- 230000001934 delay Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000009738 saturating Methods 0.000 description 3
- 230000003595 spectral effect Effects 0.000 description 3
- 238000013179 statistical model Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003094 perturbing effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
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
- 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
- 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/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
- H04L41/0897—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
-
- 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/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
-
- 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/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- 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/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- 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/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- 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/16—Threshold monitoring
-
- 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/19—Flow control; Congestion control at layers above the network layer
- H04L47/196—Integration of transport layer protocols, e.g. TCP and UDP
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
可通过作为带宽输入的函数测量第一网络特性(例如,延时或带宽输出)并执行统计分析以确定相关性来实现用于网络连接的振荡互补网络特性校准的技术。如果检测到非零相关系数,则可测量与所述第一网络特性互补的第二网络特性以确定所述第二网络特性的第一值。同样,可作为带宽输入的函数测量所述第二网络特性以确定第二相关性,如果所述第二相关性为正,则可指示如何确定所述第一网络特性的第二值。可利用所述第一值和所述第二值来确定第三网络特性(例如,用于确定带宽时延乘积的网络延时和网络容量)的第三值。
Description
相关申请的交叉引用
本申请要求于2018年12月13日提交的并且标题为“CONTINUOUS CALIBRATION OFNETWORK METRICS”的美国专利申请号16/219,865的优先权,所述专利申请的全部公开内容通过引用的方式并且出于所有目的整体并入本文。
背景技术
在数据通信中,带宽时延乘积(BDP)是指数据链路容量与数据的往返延迟时间或延时的乘积。通信信道的带宽时延乘积可等于在任何给定时间能够通过网络电路传输的最大数据量。在各种计算机系统中,确定带宽时延乘积以促进网络通信。例如,在诸如多媒体流的数据流的上下文中,确定带宽时延乘积可能是确保多媒体流的比特率不超过带宽时延乘积并且不引起网络拥塞,或者不下溢带宽时延乘积并且不为用户提供较差的结果的重要步骤。如果通过通信信道发送的数据量太高(例如,多媒体流的比特率超过带宽时延乘积),则多媒体流的接收方可能体验较差的性能,诸如定期缓冲、分组丢失、增加延时等;如果它太低,则接收方将无法从网络的全部容量中受益。
确定带宽时延乘积涉及许多挑战。即使在静态系统中,带宽输出和用于确定带宽时延乘积值的延时值的测量结果中也可能存在较高程度的方差。例如,对于静态网络配置,由于网络中的方差,第一延时测量结果和第二延时测量结果可以是不同的。即使在已知带宽时延乘积的系统中,带宽和延时测量结果也可能基于统计分布而变化。因此,在动态网络环境中(例如,在带宽时延乘积不是静态的并且由于网络条件改变而改变的情况下),对网络进行仪器检测和确定实时度量(诸如带宽时延乘积)存在困难。因此,在动态变化的网络环境中,设计可准确且稳定地测量带宽时延乘积的系统存在许多困难。
在这种情况下出现的与带宽时延乘积有关的其他问题还包括如何根据其他度量来适当地理解网络。例如,网络可包括可能由无线连接中的频谱干扰而导致随机损失或通常呈拥塞损失形式的确定性损失。其他因素也可能涉及网络排队和网络的突发容忍度,即如何在网络上处理尖峰行为。了解这些度量的挑战是来自它们的正交性。解决此问题所需要的是一种框架,所述框架允许(例如,通过利用BDP机制)连续推导这些度量或网络尺寸,同时在测量或确定它们时也能将干扰降到最低。
附图说明
将参考附图描述各种技术,在附图中:
图1示出其中可实践各种实施方案的计算环境的说明性实例;
图2示出根据至少一个实施方案的其中可通过振荡互补网络特性校准来测量网络延时和网络容量的图示的说明性实例;
图3示出根据至少一个实施方案的可用作确定带宽时延乘积的一部分的不同网络参数之间的关系的图示的说明性实例;
图4示出根据至少一个实施方案的可用作确定带宽时延乘积的一部分的不同网络参数之间的关系的图示的说明性实例;
图5示出根据一个实施方案的用于计算网络连接的带宽时延乘积的方法的说明性实例;
图6示出根据一个实施方案的用于使网络连接饱和的方法的说明性实例;
图7示出根据至少一个实施方案的可用作确定网络特性的一部分的不同网络参数之间的关系的说明性实例;
图8示出根据至少一个实施方案的其中可超过网络容量的方式传输数据的计算环境的说明性实例;并且
图9示出其中可实现各种实施方案的系统。
具体实施方式
本文描述的技术可用于实施用于确定网络的带宽时延乘积(BDP)、随机和确定性损失、网络排队、带宽尖峰容限以及网络中其他因素或尺寸的方法、机器和制造。在各种协议中,带宽时延乘积用于配置网络连接和网络上计算机系统之间的通信。例如,在基于传输控制协议(TCP)的通信中,带宽时延乘积可用于确定在服务器停止并等待接收分组的确认之前可传送多少数据。在各种情况下,确定带宽时延乘积对于以下可能很重要:例如,通过确保跨网络传输的数据速率不超过网络连接所支持的最大数据吞吐量来最大化和/或增加数据吞吐量、减少通信的缓冲或延迟。在本文中关于用户数据报协议(UDP)设想了关于带宽时延乘积的类似方面。
确定网络的带宽时延乘积在各种情况下都是有用的,并且可用来以多种方式改进计算机系统的操作。例如,在多媒体流(例如,以可变或恒定比特率的诸如电影或电视节目的多媒体流传输)的上下文中,计算机系统可确定网络的带宽时延乘积并且向内容递送网络(CDN)或流传输服务指示网络带宽时延乘积。数据提供方(例如,CDN)可接收网络带宽时延乘积,并利用它来确定如何向媒体客户端提供多媒体内容。例如,流传输服务可建立与客户端计算机系统的连接,获得网络带宽时延乘积作为建立连接的一部分,并且以不超过网络带宽时延乘积的比特率传输多媒体流。以此方式,多媒体流传输服务能够向客户端提供高质量多媒体内容,并且可减少或完全消除缓冲。例如,如果数据提供方(例如,多媒体流传输服务)以超过带宽时延乘积的速率提交数据,则客户端无法以与发送数据相同的速率来接收并处理数据。因此,可能发生缓冲或数据丢失,这在某些情况下可能导致较差的性能(例如,导致客户观看电影、进行电话会议、玩视频游戏的中断)。
根据下文更详细描述的各个方面,可使用振荡互补网络特性校准技术来测量带宽时延乘积。振荡互补网络特性校准技术可以是指其中两个互补网络特性用于确定彼此的技术。在这种情况下,术语“互补”可以是指以某种方式彼此链接的特性,例如,如果一个特性的增加与另一特性相关,则可认为这两个特性是互补的;如果一个恒定的特性与另一个增加或减少的特性相关,则可认为这两个特性是互补的;等。应当注意,这些仅仅是可如何将两个特性视为互补特性的说明性实例。一般而言,互补网络特性以某种方式链接在一起,使得可将一个特性的趋势或一组值的知识与另一网络特性的值相关。
根据下文更详细描述的各个方面,可采用以振荡速率传输应用程序数据的方法来执行对互补网络特性的监视。更一般地,根据下文更详细描述的各种系统和方法,可振荡的方式调整系统的吞吐速率以执行对互补系统特性的监视。在各种实施方案中,对所述互补网络或系统特性的监视可以是连续的或接近连续的。传输速率或吞吐量的振荡可基于致使一系列测量结果(有时称为度量)在随机误差与确定性误差之间振荡。如下文更详细地解释的,随机误差是指看起来随机的度量的分布,诸如高斯分布,并且确定性误差是指看起来与系统误差相关的误差。例如,度量中的确定性误差可能表现为具有线性相关性。通过改变系统的传输速率或吞吐量以使得发生这种振荡,可观察到互补系统特性的值。
根据下文更详细描述的各个方面,采用了使用应用程序数据的振荡传输的方法来执行对网络的连续监视,并对网络的应用程序利用进行对应的调整和优化。更一般地,将这些技术应用于系统以连续监视互补系统特性,并对系统进行对应的调整和优化。在一些情况下,对系统特性的连续监视可更积极地利用系统。例如,鉴于对系统当前状态的了解比以其他方式可获得的、本文所述的技术所缺乏的了解更多,可有可能采取通常被假定为过度利用网络或其他系统的措施。
为了确定带宽时延乘积,用于执行连续的振荡互补网络特性校准的方法可包括确定网络延时或往返延迟(RTD)时间(在整个本公开中也称为往返时间(RTT))作为振荡互补网络特性校准的第一网络特性。往返时间可以是指将数据从源计算机系统发送到目标计算机系统以及源计算机系统从目标计算机系统接收到已接收到数据的确认所花费的时间量。网络延时也可称为ping时间,尽管在本公开中,除了与应用程序数据分开的数据(其中应用程序数据可包括正在从源计算机流式传输或发送到目标计算机的数据,诸如视听数据或与应用程序功能相关的其他数据,而不是主要出于测量网络行为目的而发送的数据)之外,还可使用应用程序数据来完成ping操作。可使用各种工具和命令来测量消息的往返时间。例如,各种计算环境中的ping(或应用程序数据扰动)可通过将互联网控制消息协议(ICMP)回应请求分组从起点发送到目的地来进行操作。然而,使用ping命令本身可能引入可能影响观察到的往返时间和其他度量的失真。当执行连续监视时可能会出现这种情况,因为与ping命令相关的网络流量的量在此类情况下可能很高。因此,可使用应用程序数据代替离散探针(诸如ping命令)。
通常,由于包括网络的中间路由器正在处理的外部流量的量的网络条件的变化,网络延时可能存在一些变化。作为带宽输入的函数,当带宽输入小于或等于带宽时延乘积时,系统的延时是大体上恒定的,这是因为,基于在网络未过饱和的情况下发送的数据量,换句话说,当存在相对于带宽时延乘积上限的数据下溢时,待通过网络接收的数据分组的时间量(平均)不改变。带宽输入可以是指数据提供方通过网络传输给数据接收方的每单位时间的数据量(例如,以bit/sec表示的速率)。例如,带宽输入可以是指由内容递送网络(例如,数据提供方)通过网络向数据接收方(例如,播放多媒体流的客户计算机系统)传输的多媒体的比特率。
振荡互补网络特性校准的第二网络特性可以是带宽输出。带宽输出可以是指由数据接收方接收和/或处理的数据速率。一般来说,当网络连接不饱和时,位输入与位输出之间存在一对一关系,使得带宽输入可等于带宽输出,因为在不饱和网络连接中,有足够的容量来支持数据速率。
通过对一组网络参数执行网络条件的测量,可使用振荡互补网络特性校准来计算带宽时延乘积。例如,如上所述,待作为校准的一部分进行测量的网络参数可以是延时和带宽输入。在一个实现方式中,系统被设计为以振荡方式确定第一网络参数的值,然后确定第二网络参数的值,然后确定第一网络参数的更新值,然后确定第二网络参数的更新值等。
确定网络参数值可涉及测量互补网络参数。作为一个特定实例,需注意,当网络不饱和时,延时是恒定的或近似恒定的(例如,基于带宽输出值,在较大样本量内对延时进行的平均测量结果将不会显著不同),并且当网络过饱和时,延时增加。在本公开的其他地方,诸如结合图3,更详细地示出并描述了这种关系。作为第二实例,当网络不饱和时,带宽输入和带宽输出可正相关(例如,随着数据提供方的传输速率增加到带宽时延乘积,数据接收方接收到的数据速率也增加)。正相关可以是1:1比,使得传输数据的速率增加1KB/sec,接收数据的速率也增加1KB/sec(例如,不发生缓冲或数据丢失)。然而,当网络过饱和时,带宽输出可保持恒定,因为网络已经完全饱和,并且通过网络传输的数据无法以与数据传输相同的速率递送到数据接收方。
作为说明性实例,可通过首先使用带宽输入与带宽输出之间的相关性对网络的延时进行仪器检测和测量来确定准确的最大带宽输入(例如,确定带宽时延乘积值)。作为振荡互补网络特性校准的一部分,执行校准方法的系统可确定以KB/sec为单位的带宽输出值(例如,确定数据吞吐量),以所确定速率提交数据,然后以所述带宽输出值测量网络的延时。可通过例如提交要传输的一个或多个网络分组来测量延时。在一些实施方案中,这可能是“ping”命令,但是也可使用应用程序数据。系统可提交另外的网络分组以确定在第二略高的带宽输出值处的网络的第二延时值。实施方案可例如调整正在提交数据分组的速率或调整所提交的数据的大小。当使用应用程序数据时,实施方案可限制消息传输,其中所传输消息包括应用程序数据。可在一定范围的带宽输出值上进行另外的延时测量,这些带宽输出值的初始值和增量步长可基于统计特性确定,以便实现特定置信水平,诸如90%、95%、99%等(或更小,这取决于需求和设计)。这可表示为:1-α=0.90,诸如在先前的实例中,其中显著水平α由系统管理员选择,并且可基于所需的网络行为进行调节。可使用统计工具和算法来收集并分析一组网络延时测量结果,以检测延时与带宽输入之间的正相关性,即,在特定阈值(例如,系统可能尚未计算的最大吞吐量)之后增加带宽输入导致网络延时呈趋势增长,这种增长在统计上是显著的。可通过在收集的一组延时值上计算皮尔逊积矩相关系数r来测量相关性,如果相关系数超过阈值,则指示网络带宽过饱和。
一旦确定网络带宽过饱和,执行振荡互补网络特性校准的系统可通过测量在带宽输入值处的带宽输出来计算网络容量,对于该带宽输入值,相关系数指示网络带宽过饱和。例如,用于测量网络容量的带宽输入值可以是在用于确定相关系数r的一组值中使用的最高带宽输入值。然而,这种需求不必相同,并且如下面更详细描述的,在本公开的范围内还设想了其他实现方式。如上所述,可通过在所选择带宽输入值下进行多次带宽输出测量来计算网络容量(例如,带宽容量)。至少由于网络测量结果中可能存在方差,因此进行多个带宽输出测量结果可能会提高所计算网络容量的准确性。所述方差可能是由各种因素引起的,并且可建模或拟合为正态分布。所进行的带宽输出测量的次数可取决于所收集的数据的参数,诸如所测量的带宽输出值的标准偏差、峰度、偏度等。在一些情况下,校准方法包括进行带宽输出测量,直到所测量的平均带宽输出的置信区间具有小于阈值的范围(例如,具有小于阈值宽度的宽度)。以此方式,互补网络特性(例如,在这种情况下为网络延时)的实例被用作校准的一部分以确定网络容量。因此,可测量网络容量。
一旦确定了网络容量,振荡互补网络特性校准就可执行振荡摆幅以确定网络延时。继续上文的实例,通过作为带宽输入值的函数测量互补网络特性(例如,在这种情况下为带宽输出)并减小带宽输入值来发生振荡。如上所述,增大带宽输入直到确定网络延时与带宽之间存在正相关性。然后在测量带宽输出时减小带宽输入,直到在带宽输入与带宽输出之间检测到很强的正相关性(例如,指示当带宽输入减小时,带宽输出也在减小)。一旦检测到正相关性(例如,相关系数r超过阈值),系统就可在带宽输入值处测量网络延时,在所述带宽输入值处,系统确保网络容量不饱和(例如,相关系数r超过阈值)。在确定网络容量在特定带宽输入值处或值范围内不饱和的情况下,系统可通过获取一个或多个样本来测量网络延时。以此方式,互补网络特性(例如,在这种情况下为网络容量)的实例被用作校准的一部分以确定网络延时。因此,可测量网络延时。
通过执行这些步骤,计算机系统可连续确定带宽时延乘积,所述带宽时延乘积在大约数百毫秒或甚至更短时间内(或者在大约往返时间或者至多若干个往返时间内),其中诸如网络带宽、所测量的网络容量和延时值的方差和期望准确性的因子作为可能影响可计算带宽时延乘积的时间量的实例。对于基于宽带的连接,可使用振荡互补网络特性校准来准确地计算带宽时延乘积。
在如上所述计算了网络容量和网络延时之后,可在各种情况下利用所计算的带宽时延乘积值,诸如设置多媒体流的比特率,以便使多媒体流的数量和质量最大化,使得如果网络条件不变,则所述流将不经受正在进行的缓冲。在视频游戏的上下文中,可基于对在线玩家和观看者高质量体验的带宽时延乘积值来调整针对游戏流传输的数据(例如,包括图形数据)的带宽。在远程应用程序或软件应用程序或桌面虚拟化的上下文中,虚拟化主机可使用带宽时延乘积来确定待发送到远程客户端的数据类型和数量。在视频流传输的上下文中,带宽时延乘积可产生所需的体验质量。用例情形不仅限于游戏、软件虚拟化、视频流传输等,还对任何尝试通过网络发送数据的方案开放。因此,这些是实现方式的非详尽实例,其中可使用振荡互补网络特性校准来准确、高效且快速地计算带宽时延乘积值,以改进计算机系统、计算机网络和软件应用程序的操作。
在先前和以下的描述中,描述了各种技术。出于解释的目的,阐述了具体的配置和细节,以便提供对实现技术的可能方式的透彻理解。然而,也将显而易见的是,下文所描述的技术可在没有具体细节的情况下以不同的配置来实践。此外,可省略或简化熟知的特征以避免使所描述的技术模糊。
如本领域的技术人员根据本公开将理解的,特定实施方案可能够实现特定优点,包括以下中的一些或全部:减少数据的缓冲;增加网络的有效数据带宽;通过减少丢弃分组的速率提高网络的可靠性;更准确地测量网络连接的带宽时延乘积;等。通过改进计算机系统的数据通信能力(诸如通过增加数据带宽、减少或消除(例如,多媒体流的)缓冲、减少或消除丢弃的数据分组、它们的任何组合等),本文所述的技术可用来改进计算机系统的操作。
图1示出其中可实践各种实施方案的计算环境100的说明性实例。计算环境100可包括通过诸如互联网的网络120连接的第一计算机系统102和第二计算机系统104。第一计算机系统102和/或第二计算机系统104可包括可执行代码,所述可执行代码在由计算机系统的一个或多个处理器执行时致使一个或多个处理器使用振荡互补网络特性校准来确定带宽时延乘积,如下文更详细地描述的,诸如结合图2和图5所描述的那些。
在一个实施方案中,第一计算机系统102是任何合适的计算系统,诸如结合图9所描述的那些。第一计算机系统102例如可以是个人计算机、膝上型计算机、智能电话、嵌入式装置、物联网(IOT)装置或任何其他各种类型的计算装置。第一计算机系统102可包括被配置为使得第一计算机系统102能够例如通过网络接口卡、无线天线等与网络通信的硬件和/或软件。为了清楚起见,在一些实施方案中,第一计算机系统102可以是数据接收方,并且第二计算机系统104可以是数据提供方(其可以是上文关于计算机系统102描述的相同或相似类型的装置)。例如,第一计算机系统102可以是包括第一计算机系统102用来与第二计算机系统104通信的软件(例如,客户端代码)的个人计算机。在一个实施方案中,第一计算机系统102包括诸如视频游戏应用程序、流传输应用程序等的软件,所述软件包括致使第一计算机系统102能够与第二计算机系统104通信以接收诸如多媒体流(包括视频和/或音频)的数据的可执行代码。
第二计算机系统104可以是任何合适的计算机系统(诸如结合图9所描述的那些),并且可用可执行代码配置,所述可执行代码在被执行时允许第二计算机系统104与第一计算机系统102通信。在一个实施方案中,第二计算机系统104是诸如内容递送网络(CDN)的数据提供方或提供数据流作为服务提供方的服务的计算资源服务提供方。当然,第一计算机系统102和第二计算机系统104的功能或操作可以任何合适的方式反转或重新分配,例如,第一计算机系统102可以是数据提供方,并且第二计算机系统104可以是数据接收方。在一个实施方案中,第二计算机系统104是托管CDN的计算机服务器,并且可访问具有数据的数据存储系统。在一个实施方案中,数据可以是多媒体内容,所述多媒体内容被存储(例如,持久地存储在硬盘驱动器上)或以其他方式可被第二计算机系统访问。第二计算机系统104可使用编解码器对源多媒体内容进行编码,所述编解码器可以可变或固定比特率进行编码,所述可变或固定比特率基于使用振荡互补网络特性校准确定的带宽时延乘积值来确定和/或调整,如本文在上文和下文中所详细描述的。第一计算机系统102和/或第二计算机系统104可被配置为执行校准方法,诸如根据图5所描述的那些,如下文更详细地描述的。
在一个实施方案中,第二计算机系统104是多媒体流传输服务,其针对多媒体流传输服务的客户端(例如,第一计算机系统102)确定网络连接与客户端的带宽时延乘积并生成具有不超过带宽时延乘积的比特率或数据传送速率的多媒体流和/或向客户端提供所述多媒体流。不超过带宽时延乘积可能具有各种优势,诸如减少或消除客户端上多媒体内容的缓冲。
在一个实施方案中,第一计算机系统102和第二计算机系统104建立通信信道和/或执行握手。计算机系统可使用诸如用户数据报协议(UDP)或传输控制协议(TCP)的任何合适的协议进行通信。作为建立通信信道的一部分,一个或两个计算机系统可计算带宽时延乘积,以与另一计算机系统进行数据传送。在一个实施方案中,计算机系统(例如,多媒体流传输服务的客户端)使用振荡互补网络特性校准技术诸如以下文将更详细描述的方式来计算带宽时延乘积。
执行振荡互补网络特性校准(例如,通过结合图1所描述的计算机系统中的一者或两者)可涉及两阶段且连续的振荡网络扰动。作为第一阶段的一部分,执行校准的系统可通过在干扰网络的带宽输入时进行第一组测量结果106来干扰网络条件。在一个实施方案中,第一组测量结果是在不同带宽输入上收集的网络延时的一组测量结果。然而,所述一组测量结果不必一定要在相异且不同的带宽输入下全部进行。例如,在一些情况下,在带宽输入下进行多个测量结果并执行统计技术(诸如求平均值或平滑化)以确定合计测量结果可能是有利的。例如,可在一个带宽输入水平下进行多个延时测量结果以获得测量结果的平均值和标准偏差,以确定比单个测量结果更准确的合计测量结果。在这种情况下的准确性可以是指这样的事实,即,当信号中存在随机(例如,展开在正态分布上)时,与单个测量结果相比,多个样本平均而言可导致更准确的评估。第一组测量结果中的每一个可以是数据报、消息、分组或用于通过网络传输的任何其他适合的形式。在一些实施方案中,测量中的每一个顺序地进行,因为尝试并行进行测量可能影响其他测量(例如,影响数据管道的带宽输入)。
在一些实施方案中,当网络不饱和时,延时是恒定或近似恒定的。在一些实施方案中,当网络过饱和时,延时与带宽输入正相关(即,网络延时与带宽输入之间存在直接关系)。这可以是指带宽输入的增大与网络延时的增加呈正相关。作为振荡互补网络特性校准的一部分,在一些实施方案中,系统使用统计技术来分析第一组测量结果106,以检测所测量的网络特性与互补特性之间的第一相关性108。例如,在这种情况下,作为带宽输入的函数收集网络延时,并且使用统计技术(使用任何合适的统计技术)来确定延时与带宽输入之间的相关系数。如果相关系数为正,则意味着两个变量之间存在正相关性,并且一个变量的增大与另一个变量的增大相关;如果相关系数为负,则意味着两个变量之间存在反比关系,并且一个变量的增大往往与另一个变量的减小相关联;如果相关系数为零,则意味着一个变量的值无助于确定另一个变量的值。
带宽输入可以是指由扰动的客户端通过网络发送的致使网络饱和到特定水平的数据速率。如果速率大于网络容量,则网络过饱和;相反,如果速率小于网络容量,则网络不饱和。需注意,在一些实施方案中,网络是动态的,并且诸如容量和延时的各种网络参数可随时间推移而变化。在一些情况下,变化可能是突然的,诸如在例如消费者的宽带连接受到连接到流传输服务的家庭的另一个用户的影响,从而减少了家庭中其他装置的可用带宽量的情况下。
作为校准的一部分,系统可确定第一相关性108是否超过特定阈值。超过阈值可以是确定所计算的相关系数大于或小于特定阈值(包括或不包括阈值)。在一些实施方案中,基于诸如置信水平1-α的概率因子来选择阈值,使得假设其他概率参数是已知的(例如,先前测量的平均值和与先前振荡的标准偏差),在多次测量n之后第一相关系数超过阈值的概率等于(或大于、大于或等于等)1-α。以此方式,系统可配置参数,以确保在概率水平1-α(例如,99%的概率)上在n*L时间内进行一组测量,其中n是测量次数并且L是每次测量的延时。
如果第一相关性108超过阈值或概率,则系统可将其用作延时和带宽输入充分相关的指示,以推断出延时随着带宽输入的增大而增加。在一些实施方案中,系统使用此信息来测量第一互补网络特性110。图1所示的网络延时的互补网络特性是带宽输出。可在包括在第一组测量中的最高带宽输入值下测量带宽输出,所述带宽输出被确定为作为带宽输入的函数而增大。其他带宽输入值可用于测量带宽输出,例如,可使用高于第一组中最高带宽输入值的值,因为确定网络在带宽输入下过饱和,因此网络也会以甚至更大的值过饱和。
在一些实施方案中,系统对带宽输出进行单次测量。然而,在其他实施方案中,系统对带宽输出进行多次测量。测量结果可正态分布,并且统计技术可用作确定带宽输出的一部分。例如,当测量结果的标准偏差较大时,进行的测量次数可较多,而当标准偏差较小时,可进行较少的测量。因此,一个或多个所测量值的平均值可以是网络容量。
在确定网络容量之后,系统可通过扰动网络使其不饱和来执行振荡的第二阶段。类似于第一阶段,系统可收集第二组测量结果112。第二组测量结果可以是互补特性的测量结果,在这种情况下是带宽输出。带宽输出可作为带宽输入的函数进行测量,并且可在带宽输入的递减值上收集测量结果。在一个实施方案中,带宽输入值具有小于所确定的网络容量的值。系统可分析第二组测量结果112以确定第二相关系数114,第二相关系数是带宽输出与带宽输入之间的相关性。如果存在正相关性(例如,带宽输出的减小往往与带宽输入的减小相关联),则系统在带宽输入值下测量互补网络特性(例如,网络延时116),在一些实施方案中,所述带宽输入值被选择成小于或等于第二组中的最低带宽输入值。可使用如结合第一阶段描述的统计技术来计算网络延时。
在完成第一阶段和第二阶段(在一些实施方案中,其次序可颠倒)后,系统可能够计算另外的网络特性。例如,确定网络容量和网络延时足以确定带宽时延乘积。在一个实施方案中,带宽时延乘积用来配置通信会话,诸如基于UDP的通信会话。在完成振荡互补网络特性校准之后,由于网络条件可能已发生变化,因此可以连续方式再次执行振荡。
确定网络的带宽时延乘积在各种情况下都是有用的,并且可用来以多种方式改进计算机系统的操作。例如,在多媒体流118(例如,以可变或恒定比特率的诸如电影或电视节目的多媒体流传输)的上下文中,计算机系统可确定网络的带宽时延乘积并且向内容递送网络(CDN)或流传输服务指示网络带宽时延乘积。数据提供方(例如,CDN)可接收网络带宽时延乘积,并利用所述带宽是延乘积来确定如何向媒体客户端提供多媒体内容。例如,流传输服务可建立与客户端计算机系统的连接,获得网络带宽时延乘积作为建立连接的一部分,并且以不超过网络带宽时延乘积的比特率传输多媒体流。以此方式,多媒体流传输服务能够向客户端提供高质量多媒体内容,并且可减少或完全消除缓冲。例如,如果数据提供方(例如,多媒体流传输服务)以超过带宽时延乘积的速率提交数据,则客户端无法以与发送数据相同的速率来接收并处理数据。因此,可能发生缓冲或数据丢失,这在某些情况下可能导致较差的性能(例如,导致客户观看电影、进行电话会议、玩视频游戏的中断)。
在一个实施方案中,第一计算机系统102和第二计算机系统104各自是可操作来通过适当网络120发送和/或接收请求、消息或信息并且将信息传达回装置的用户的装置。此类客户端装置的实例包括个人计算机、蜂窝电话或其他移动电话、手持式消息传送装置、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。在一个实施方案中,网络包括任何适当网络,包括内联网、互联网、蜂窝网络、局域网、卫星网络或任何其他这种网络和/或其组合,并且用于这种系统的部件至少部分地取决于所选择的网络和/或系统的类型。用于通过这种网络进行通信的许多协议和部件是熟知的,并且本文将不再详细讨论。在一个实施方案中,通过网络进行的通信通过有线和/或无线连接及其组合来实现。在一个实施方案中,网络包括互联网和/或其他可公开寻址的通信网络。
图2示出根据至少一个实施方案的其中可通过振荡互补网络特性校准来测量网络延时和网络容量的图示200的说明性实例。结合图2所描述的技术可根据本公开的其他地方描述的实施方案来实现,诸如结合图1、图5和图9所讨论的那些实施方案。振荡可以是指上述方法:增大带宽输入以确定网络容量,然后减小带宽输入以确定网络延时,然后增大带宽输入以更新网络容量,然后减小带宽输入以更新网络延时等。此迭代方法可连续执行(例如,重复执行而无需在测量之间等待,或者通过按一定的时间表执行(诸如每隔几秒、毫秒,或者给定系统视情况而定))。
作为振荡互补网络特性校准的一部分,合适的计算机系统可获得一组延时测量结果。对于根据图2的实施方案,第一组测量结果是指网络连接的往返时间或延时。所述一组测量结果可以是在不同带宽输入下收集的延时测量结果。获得在带宽输入下的延时测量结果可使用各种技术来执行。例如,系统可通过将数据发送到对方而不用其他数据对网络施加压力来估计静态时的网络延时。在一些实施方案中,这是隐含的假设,即可在不饱和状态下测量系统的带宽。对方可接收所发送的数据并传输响应,发送数据与接收响应之间的往返时间可以是静态时的延时。在一些实施方案中,进行多次ping测量以确定统计上可靠的延时测量结果。基于延时,可对带宽输入加压力或饱和,以确定可通过网络传输多少数据。例如,考虑空管道的延时被测量为100毫秒(ms)的情况。为了测量250kb/sec的带宽输入下的延时,系统可提交共同编码250*100/1000=25kb的数据的一个或多个消息。更一般地,如果发送了初始消息并且将响应时间测量为L,则用于描述待发送以测量在特定带宽输入值下的延时的数据量的函数f()可描述为:
f(BW输入)=L*BW输入
在一些实施方案中,确定带宽输入值,确定所发送的消息的大小,并且预先添加或以其他方式传输任意数据(例如,其值与超出其大小(以字节为单位)无关的数据)。例如,如果消息的默认大小为32字节,并且带宽输入为128字节,则可在消息之前添加96字节的随机数据(96字节的0或1数组、96字节的未初始化数据等),也可在消息之后带有总大小为96字节的一个或多个数据消息。尽管可能无法读取数据的内容,但可使用传输此数据来对网络连接加压力,其中数据量由带宽输入值指定。在一些实施方案中,可通过调整发送应用程序数据的速率来对网络连接加压力。因此,除了发送任意数据(或除了发送任意数据之外),还可提高应用程序所使用的发送数据的速率。
通过用特定量的数据对网络连接加压力,系统能够确定网络连接何时达到饱和(例如,达到容量)。考虑发送消息时数据连接不饱和的情况-网络上的路由器、交换机和计算实体能够在接收到数据时提交数据,并且通过缓冲或等待网络资源变为可用而不会产生另外的延迟。然而,考虑发送消息时数据连接过饱和的情况-所述消息可能在过饱和情形下正在处理的其他数据后面排队,从而产生另外的延迟。然而,需注意,在许多系统中,延时测量结果本质上是随机的,即,延时为L的网络可能会返回不同的延时测量结果l1,l2,l3...,这些测量结正态分布在L的平均值周围。
因此,在网络延时测量结果受方差影响的系统中,至少由于两个值之间的差可能是由方差引起的,因此很难确定第一带宽输入值下的延时是否高于第二带宽输入值下的延时。然而,可使用统计技术来在置信水平(例如,90%、95%、99%,或更高)下确定延时测量结果的差异是由于基础延时信号的变化而不是由方差引起的。
返回图2,可在连续递增的带宽输入值上获得一组延时测量结果。需注意,所述组不必以单调递增或递减的次序收集,并且所述组包括在不同带宽输入值下的延时测量结果就足够了。可在短时间(例如,数百或数千毫秒)内收集测量结果,以减少进行测量时网络条件的变化机会和/或变化量。使用统计模型分析所测量的延时值。可将统计模型抽象为延时在一个轴线上并且带宽输入在第二轴线的两个变量图,以确定两个变量之间的相关系数。可通过在所收集的一组延时值上计算皮尔逊积矩相关系数r来测量相关性。如果相关系数超过指示90%、95%、99%等的置信度的阈值,则随着带宽输入增大,所测量的延时也增加,系统可确定网络过饱和。可确定网络在所述一组测量中的最高带宽输入下过饱和,尽管也可使用其他带宽输入测量。
一旦系统已确定网络在特定带宽输入值下过饱和,则系统可通过测量在带宽输入值下的带宽输出来确定网络容量。如上所述,所使用的带宽输入值可以是最高带宽输入值或另一合适的值,所述值基于相关系数至少以特定置信水平确定为过饱和,所述相关系数指示延时相对于带宽输入的增大而增加。在一个实施方案中,通过以带宽输入速率kb/sec通过网络向对方提交数据分组来实现在带宽输入值下测量带宽输出,所述分组具有使对方用对应的数据分组(例如,回应分组)进行响应的指令。例如,数据分组可被顺序地编号。系统可在传输之后的短时间段之后接收响应,然后测量接收响应的速率,从而确定带宽输出。由于已经确定网络连接在带宽输入值下过饱和,因此所测量的数据吞吐量是信道的容量。在一个实施方案中,系统传输大小为m的n个数据分组,其中n*m是经确定足以使网络过饱和并请求对方用相同大小的对应数据分组答复的数据量。系统可检测接收到第一对应分组的第一时间t1和接收到最后一个对应数据分组的最后时间tn。带宽容量可计算为:
系统可进行多次测量b1,b2...,并且使用各种统计技术来确定网络容量。例如,系统可继续收集测量结果bi,直到网络容量的置信区间在特定窗口大小内。因此,在受较大量方差的影响的网络中,可进行更多的测量以确保所计算的网络容量是准确的。
因此,以上述方式,可获得网络连接的网络容量。作为振荡互补网络特性校准的一部分,系统继而基于带宽校准网络延时。系统可进行一组带宽测量结果,这些带宽测量结果是在小于网络容量的带宽输入值的样本上收集的。系统可基于BW_in的速率发送数据,并且对方可用所述数据或相同大小的其他数据进行响应。可如上所述结合确定网络容量来测量带宽输出测量结果。因此,可收集一组成对的带宽输出和带宽输入值。
可在连续递减的带宽输入值上收集所述一组带宽测量结果,并且生成对带宽输入与带宽输出之间的关系或相关性进行建模的统计模型。在一个实施方案中,针对所述组计算相关系数。如果相关系数超过阈值(例如,指示带宽输出与带宽输入之间的强正相关性),则系统可确定网络带宽在带宽输入值下不饱和。换句话说,如果相关系数是大的正值(例如,r≈1),则意味着随着带宽输入的减小,带宽输出也趋于减小。
一旦系统已确定网络在特定带宽输入值下不饱和,则系统可通过测量在带宽输入值下的延时来确定网络延时。如上所述,所使用的带宽输入值可以是最低带宽输入值或另一合适的值,所述值基于相关系数至少以特定置信水平确定为不饱和,所述相关系数指示带宽输出值的减小归因于带宽输入的减小。在一个实施方案中,通过结合对应于带宽输入的数据速率通过网络提交数据来实现在带宽输入值下测量网络延时。例如,系统可提交大小为m的n条消息,这些消息对应于确定为使网络不饱和的带宽输入速率。然后可收集与这些消息中的一个或多个的传输相关的度量。例如,可针对一系列消息中的最后一条(即,第n个)消息收集度量(其可包括对各种系统特性的测量观察)。因此网络延时可描述为:
其中指示的时间是传输最后一条消息的时间以及接收到对所述消息的响应的时间。
一旦系统已经计算了网络容量和网络延时,系统就可以高置信度(例如,如基于系统或网络管理员可设置的统计置信水平确定的)确定带宽时延乘积。因此,带宽时延乘积可描述为:
带宽时延乘积BDP=B*D
在确定带宽时延乘积后,计算机系统可基于带宽时延乘积校准各种与计算机有关的功能性。例如,在诸如本公开中其他地方所描述的多媒体流的上下文中,计算机系统可确定网络的带宽时延乘积并且向内容递送网络(CDN)或流传输服务指示网络带宽时延乘积。数据提供方(例如,CDN)可接收网络带宽时延乘积,并且利用带宽时延乘积来确定在客户端确认接收到数据之前,在给定时间可通过网络飞行多少数据。在基于TCP的连接中,带宽时延乘积可用于校准根据确认通过连接发送的数据量。结合图2描述的技术可通过诸如结合图1描述的那些计算实体来实现。
应当注意,在本公开中描述的一些振荡互补网络特性校准技术讨论了测量网络延时作为第一步骤,由于所述技术可以适合于不同实施方案的不同组合和变化来执行,因此不必是第一步骤。例如,在一个实施方案中,系统可首先作为带宽输入的函数测量带宽输出,从期望大于系统的网络容量的初始值开始,并且执行步骤4-6以确定网络延时,然后执行步骤1-3以确定网络容量。存在各种其他合适的实现方式,并且可以循环方式应用这些步骤:振荡带宽输入以使网络连接在过饱和和不饱和之间交替,以便分别确定网络容量和网络延时。
图3示出根据至少一个实施方案的可用作确定带宽时延乘积的一部分的不同网络参数之间的关系的图示300的说明性实例。图300可用作建模的和/或在本公开的其他地方(诸如结合图1、图2和图5)描述的统计估计技术的一部分。在一个实施方案中,线(例如,水平线和斜线)是表示网络特性之间的建模关系的模型,并且点表示假设的采样测量结果的说明性实例。需注意,点的位置不一定是按比例的,并且为了清楚起见,其可仅是代表性的。
在图3中示出第一网络特性关系302,其显示延时(也称为延时时间、往返时间(RTT)、往返延迟(RTD)时间等)与特定网络条件相关的方式。一般来说,第一网络特性关系302示出当网络不饱和时,延时是恒定或近似恒定的。在网络连接经受随机损失的实施方案中,即使网络处于不饱和状态,网络也可能略微向上倾斜。延时时间的测量结果可正态分布在建模的延时值周围。在一个实施方案中,当带宽输入不饱和时,所测量RTT值(例如,由图3所示的点表示)正态分布在RTT值L周围,其中L表示当网络不经受数据分组的缓冲时预期的恒定网络延时以及当网络连接过饱和时可能出现的其他另外的延迟。然而,一旦带宽输入超过网络容量,则往返时间可能增加。这些增加可能是由各种因素引起的,诸如与路由装置中的数据排队有关的延迟、将数据存储在短期存储网络中以及从短期存储网络中检索数据等。在一些实施方案中,过多地超出网络容量会导致数据丢弃,诸如在队列、缓冲区或其他临时存储资源耗尽的情况下。
在图3中示出了第二网络特性关系304,其显示带宽输出与特定网络条件(诸如带宽输入)有关。例如,在网络不饱和的情况下,与带宽输入和带宽输出的关系可描述为或近似描述如下:
带宽输入=带宽输出
然而需注意,这种关系可假设系统中的随机损失为零。随机损失的来源可包括随机损失,诸如频谱干扰、多径干扰/损失、电离层干扰/损失和/或它们的变体。当传输介质经受随机损失时,存在非零的概率p(即,1≥p>0),即接收方未接收到通过传输介质发送的数据单位。为了解释比率为p的随机损失,可将带宽输入与带宽输出之间的关系细化为:
带宽输入=(1-p)×带宽输出其中0≤p≤1
除非另有说明,否则随机损失被假设为小于1(即,其中除非另有说明,否则通常不考虑由于随机损失而导致接收方未接收到的所有传输数据的系统)。
在一个实施方案中,确定拐点可能存在挑战,其中拐点是指网络恰好在容量内(例如,未过饱和且非不饱和)的带宽输入值。拐点也可以是指操作点、偏置点、静态点。没有带宽延迟乘积的先验知识,可能难以仅基于通过作为带宽输入值的函数测量RTT值来确定网络延时。考虑图3中的说明性实例,仅依靠RTT测量结果来确定网络延时的系统可观察到对于包括前七个测量结果的区域306,网络延时相对平坦,并且高估了在带宽时延乘积下的带宽输入值。这将导致性能下降,因为带宽输入将导致网络过饱和并高于最佳延时时间。
图4示出根据至少一个实施方案的可用作确定带宽时延乘积的一部分的不同网络参数之间的关系的图示400的说明性实例。图400可用作建模的和/或在本公开的其他地方(诸如结合图1、图2和图5)描述的统计估计技术的一部分。在一个实施方案中,线(例如,水平线和斜线)是表示网络特性之间的建模关系的模型,并且点表示假设的采样测量结果的说明性实例。需注意,点的位置不一定是按比例的,并且为了清楚起见,其可仅是代表性的。
图4示出如何利用本公开中描述的技术诸如振荡互补网络特性校准来提高计算网络参数的准确性。第一曲线图402示出用于检测网络特性的正相关性的步骤,并且第二曲线图404示出用于测量或计算互补网络特性的步骤。在一个实施方案中,系统作为带宽输入的函数收集带宽输出的测量结果406,并使用诸如回归分析的统计技术来检测带宽输出与带宽输入之间存在正相关性,以确定网络不饱和。基于此确定,系统可在带宽输入不饱和的点处收集延时的样本408。另外,系统可收集延时的测量结果410并且作为带宽输入的函数检测延时的增加。作为带宽输入的函数的延时的增加可指示网络过饱和,并且系统可收集带宽输出的样本412以确定网络容量。在一些实施方案中,样本408和/或412可以是单个测量结果。
图5示出根据一个实施方案的用于计算网络连接的带宽时延乘积的方法500的说明性实例。应当注意,计算、估计或以其他方式确定网络的带宽时延乘积是计算机技术中必不可少的问题,以克服专门在计算机网络领域中出现的问题。在整个本公开中,可能存在本文描述的技术,诸如结合根据图5描述的实施方案的缺乏非技术性和/或非计算机类比的技术。方法500(或本文描述的任何其他方法,或变体和/或其组合)中的一些或全部可在用计算机可执行指令配置的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,计算机可执行指令、一个或多个计算机程序或一个或多个应用程序)由硬件、软件或其组合来实现。代码可以例如包括可由一个或多个处理器执行的多个计算机可读指令的计算机程序的形式存储在计算机可读储存介质上。计算机可读储存介质可以是非暂时性计算机可读介质。在一些实施方案中,可用于执行方法500的至少一些计算机可读指令不是仅使用暂时性信号(例如,传播的瞬态电或电磁传输)来存储的。非暂时性计算机可读介质可在暂时性信号的收发器内包括非暂时性数据存储电路(例如,缓冲器、高速缓存和队列)。
在一个实施方案中,执行方法500的系统基于带宽输入收集502往返时间测量结果。在一个实施方案中,系统选择初始带宽输入。在一个实施方案中,基于先前确定的带宽时延乘积点、网络连接不饱和的预期带宽输入值的估计等来选择初始带宽输入。在一个实施方案中,初始带宽输入被初始化为以诸如TCP段的空消息开始,所述空消息包含包括元数据(诸如发送方和接收方信息)的报头以及所述报头之后的空数据部分。在一个实施方案中,空消息是包括空主体字段的UDP数据报。在一些实施方案中,诸如在协议或格式要求数据主体字段具有大于零的大小的情况下,可在数据主体字段中包括最小量的数据(例如,1位或1字节的数据)。往返时间测量结果的集合可包括RTT值和对应的带宽输入值的一个或多个测量结果。所收集的值可连续递增,或者也可按其他次序收集。值的集合不需要以特定的次序存储、收集或组织。
在一些实施方案中,待收集的测量结果的数量由系统或网络管理员基于统计技术以编程方式人工确定,以确保所进行的测量结果的数量足以确定超过阈值的相关系数的概率等。可将测量结果的数量确定为固定数量。可基于网络延时或估计的网络延时来确定测量结果的数量,使得收集在上限时间内执行,或者具有在足够高的上限内执行的概率。可基于能够以预定或动态确定的速率(例如,每分钟50次振荡)执行振荡来确定上限时间。
一旦收集了测量结果,系统就可使用测量结果来计算504相关系数。可使用统计技术来确定相关系数,以确定在两个变量(诸如所测量的RTT值与带宽输入值)之间存在线性拟合或关系的程度。可利用本公开中其他地方描述的技术,诸如结合图1和图2讨论的那些技术。相关系数可计算为-1与1之间的值。
系统可确定506在步骤504中计算的相关系数是否超过阈值。如果相关系数未超过阈值(例如,指示RTT与带宽输入之间存在强正相关性),则可指示没有足够的统计推断表明,RTT随着带宽输入的增大超过了收集延时的带宽输入值而增加。作为确定相关系数未超过阈值或概率的结果,系统可增大508带宽输入值以进行另一收集。可在带宽输入值的不同范围上再次重复步骤502-506,这些带宽输入值可能与先前收集的测量结果有一些重叠。可基于新的一组测量结果来计算另一个相关系数。
当系统确定相关系数超过阈值时,系统可使用基于来自所收集的测量结果的那些带宽输入值的带宽输入值来确定510网络容量。在一个实施方案中,系统使用等于来自集合的最大带宽输入值的带宽输入值。在一个实施方案中,系统使用超过最大带宽输入值的带宽输入值。可在所选择的带宽输入值下收集带宽输出的一个或多个样本,以确定网络容量。
系统可基于带宽输入收集512带宽输出测量结果。可基于先前收集的带宽输出值选择带宽输入值,使得选择用于测量的输入值与用于确定RTT与带宽输入之间的正相关性的一组测量中所包括的那些输入值不重叠。在步骤512中收集的测量结果可用于计算514指示带宽输出是否与带宽输入成比例相关的相关系数。换句话说,减小带宽输入是否趋向于导致带宽输出的减小。系统可确定516相关系数是否超过可使用在其他地方描述的原理和技术来选择的阈值。如果所测量的相关系数不是足够正,则系统可减小518带宽输入值并收集新的一组测量结果。在一些实施方案中,来自先前收集的测量结果可在随后的收集中重复使用。可重复步骤512-516。
一旦系统确定所计算的带宽输入与带宽输出之间的线性相关系数足够正,则系统可通过对带宽输入值下的一个或多个RTT值进行采样来确定520网络延时,在所述宽带输入值下,系统已确定存在足够高的统计置信度,即带宽输出与带宽输入之间存在正相关性。系统可使用统计技术收集多个样本并计算网络延时。一旦已知网络容量和网络延时,系统就可通过将网络容量和网络容量值相乘来确定522带宽时延乘积。带宽时延乘积可用于校准诸如多媒体流的数据流发送和/或接收数据的速率,从而增加了传输的数据量。对于多媒体流,结果可能是观看者基于诸如分辨率、比特率、帧速率、丢帧、缓冲等因素而体验到更高质量的视频和/或音频。
在本公开的范围内也设想了结合图5描述的方法的变化。例如,系统可首先通过执行步骤512-520来计算网络延时,然后通过执行步骤502-510来计算网络容量。在一些实施方案中,可并行执行诸如确定相关系数的统计分析的各个步骤。
在一些实施方案中,系统在确定带宽时延乘积之后,通过重复步骤502-20以使得更新所计算的带宽时延乘积值来执行连续的振荡互补网络特性校准。在动态系统中,带宽时延乘积可能会随时间推移而变化,因此,连续执行振荡互补网络特性校准可能导致对网络条件进行更准确的测量。
应当注意,虽然图5涉及用于计算带宽时延乘积的示例性方法500,但是所描述的技术可适用于其中存在可观察的互补网络特性的许多情形。更一般地,示例性方法500可适用于其中存在可观察的互补系统特性的情形。
图6示出根据一个实施方案的用于使网络连接饱和的方法600的说明性实例。应当注意,使网络饱和是在计算机技术必不可少的问题,以克服专门在计算机网络领域中出现的问题。在整个本公开中,可能存在本文描述的技术,诸如结合根据图6描述的实施方案的缺乏非技术性和/或非计算机类比的技术。方法600(或本文描述的任何其他方法,或变体和/或其组合)中的一些或全部可在用计算机可执行指令配置的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,计算机可执行指令、一个或多个计算机程序或一个或多个应用程序)由硬件、软件或其组合来实现。代码可以例如包括可由一个或多个处理器执行的多个计算机可读指令的计算机程序的形式存储在计算机可读储存介质上。计算机可读储存介质可以是非暂时性计算机可读介质。在一些实施方案中,可用于执行方法600的至少一些计算机可读指令不是仅使用暂时性信号(例如,传播的瞬态电或电磁传输)来存储的。非暂时性计算机可读介质可在暂时性信号的收发器内包括非暂时性数据存储电路(例如,缓冲器、高速缓存和队列)。
执行方法600的系统可根据结合图5描述的系统。在一个实施方案中,系统检测602延时和与带宽输入之间的正相关性。在一个实施方案中,相关性将超过阈值或概率。可根据结合图1至图5讨论的那些步骤来执行此步骤。在一个实施方案中,作为确定延时与带宽输入之间的正相关性的结果,系统可诸如通过利用结合图1至图5描述的技术来确定604网络容量。在一个实施方案中,延时与带宽输入之间的正相关性是网络过饱和的指示。
系统还可在确定网络延时之前或之后,使用结合图1至图5描述的技术来检测606带宽输出与带宽输入之间的正相关性。例如,系统可在均匀间隔开的带宽输入值下收集带宽输出的多个测量结果。带宽输出与带宽输入之间的正相关性可用于确定网络很有可能处于不饱和状态的带宽输入值,并且系统可基于网络连接不饱和的网络条件计算608网络延时。系统可基于所确定的网络容量和网络延时计算610带宽时延乘积。在一个实施方案中,然后系统通过以基于带宽时延乘积的速率和/或数量通过网络传输数据来使网络饱和612。
图7示出根据至少一个实施方案的可用作确定网络特性的一部分的不同网络参数之间的关系的图示700的说明性实例。在图3中示出第一网络特性关系302,其显示延时(也称为延时时间、往返时间(RTT)、往返延迟(RTD)时间等)与特定网络条件相关的方式。例如,关系702可根据结合图3所讨论的那些关系。
图7根据至少一个实施方案进一步示出可如何测量另外的网络参数或特性,诸如确定性损失、网络排队容量等。在一个实施方案中,第二网络特性关系704示出作为带宽输入的函数的确定性损失的模型。可根据网络损失来理解确定性损失,在这种意义上,确定性损失是可基于网络实体可控制或可管理的因素确定的损失的函数。确定性损失可与随机损失形成对比,随机损失可能是环境因素造成的,诸如频谱干扰、多径干扰/损失、电离层干扰/损失和/或它们的变体)。在一个实施方案中,确定性丢失的一个来源归因于由于网络缓冲器不能容纳那些分组而导致的丢弃的分组。例如,如果系统提交超出网络容量的数据,则网络的路由装置(诸如路由器和交换机)可能开始缓冲超出的数据,并且在另外的带宽可用时发送数据(例如,由于已经传输了其他数据)。网络数据在路由装置沿着网络的临时存储结构中的这种缓冲或存储可以是指网络排队706。继续所述实例,如果路由装置继续接收数据的速度超过了其路由或传输数据的速度,则可能耗尽高速缓存和其他类型的临时存储资源,这时可抛弃、丢弃或以其他方式丢失装置接收到的另外数据。应当注意,诸如数据的内容可能不是不可挽回地丢失,因为可例如基于发送方未从数据的预期接收方接收到确认而重新发送所述内容。数据的预期接收方可根据分组报头数据确定。
当路由装置沿着网络的排队容量已经耗尽时,可抛弃另外的数据的传输。沿着网络的前述装置可包括或不包括预期的接收方装置。在一些实施方案中,重影708是指对作为带宽输入的函数的往返时间或延时进行建模。当网络过饱和并且网络排队容量耗尽时,接收到的分组的延时可以是恒定或近似恒定的,因为通过网络推送了另外的带宽-这可能是因为另外的数据只是在沿着网络的某个点处被抛弃了而已。然而,这种平坦性可能导致基于依赖于检测RTT与带宽输入之间的正相关性的技术来确定网络是否过饱和的困难。在各种实施方案中,对RTT进行修改或归一化以解释丢弃的分组-例如,丢弃的分组可通过包括惩罚来将其计入测量结果,当使用统计技术(诸如回归分析)对所述惩罚进行分析时,所述惩罚将所收集的RTT值调整为更高。因此,即使当网络连接过饱和并且网络排队容量耗尽时,仍可检测到正相关性,至少是因为增大的带宽输入超过所述点将导致另外的丢弃的分组,这将增大惩罚因子。惩罚可如下建模:
RTT所调整的=RTT所测量的+r*P其中0<r≤1,0<P
其中RTT所调整的是指用于确定相关系数的RTT值,RTT所调整的是指所测量的网络延时,r是指数据丢失的速率,P是指惩罚因子。在一些实施方案中,r是指确定性丢失的速率,并且在网络排队容量未耗尽时被建模为零或近似零。可结合在本公开的其他地方所描述的实施方案(诸如结合图1至图6、图8和图9所讨论的那些实施方案)来利用图7所描述的技术。例如,结合图2和/或图5,用于测量网络延时的步骤可包括基于测量的数据丢失量添加大于或等于零的惩罚因子的另外的步骤。在一些实施方案中,当网络由于可用网络排队容量不饱和和/或过饱和时,确定性损失被建模为零或近似零。在一些实施方案中,用于振荡互补网络特性校准的技术(诸如结合所讨论的那些技术)可用来作为带宽输入的函数测量延时和确定性损失。
图8示出根据至少一个实施方案的其中可超过网络容量的方式传输数据的计算环境800的说明性实例。计算环境800可包括通过诸如互联网的网络连接的第一计算机系统802和第二计算机系统804。可利用一个或多个路由装置806将第一计算机系统802与第二计算机系统804连接。第一计算机系统802和/或第二计算机系统804可以本公开中其他地方所描述的方式来配置,诸如结合图2和图5所描述的那些方式。在一个实施方案中,第一计算机系统102是数据提供方计算机系统,并且第二计算机是数据接收方计算机系统。
在在一个实施方案中,路由装置806是用可执行代码配置的计算机系统,诸如路由器或交换机,所述可执行代码在由装置的一个或多个处理器运行时致使所述一个或多个处理器接收和发射数据。路由装置可包括对数据进行编码的表,所述路由装置用于通过诸如互联网的网络路由数据。路由装置806可包括分配给诸如队列808的临时存储结构的存储器,尽管可利用任何合适的数据结构来实现诸如数组、向量、列表、堆栈等的临时存储结构。在一个实施方案中,诸如互联网的网络包括多个路由装置,并且排队容量可以是指网络的路由装置能够共同存储的临时存储容量的量。
诸如第一计算机系统802的计算机系统可利用技术(诸如结合图2描述的那些技术)来确定网络的带宽容量。诸如第一计算机系统802的计算机系统可利用技术(诸如结合图7描述的那些技术)来确定网络的排队容量。在一些实施方案中,系统确定可跨网络突发的数据量。突发可包括等于网络容量加上排队容量的数据量的传输。在一个实施方案中,超过网络容量但不超过将导致网络队列耗尽的速率(这可能导致数据丢弃)。
在一个实施方案中,第一计算机系统802执行本文所述的技术(诸如振荡互补网络特性校准810),所述技术用于确定网络特性,诸如网络延时、网络容量和网络排队容量。系统可利用此信息来确定待发送的数据量。在一些实施方案中,数据可以是可变比特率多媒体流812,其比特率是基于由振荡互补网络特性校准确定的带宽时延乘积来确定的。在一个实施方案中,数据包括多媒体内容。待发送的数据量可大于网络容量,并且比网络容量超出小于网络上的排队容量的量。随着网络连接饱和,路由装置将另外的数据临时存储在一个或多个队列中,当网络容量再次可用时,这些数据被传输。以此方式,在一些实施方案中,第一计算机系统802确定用于传输超出网络容量的数据的速率,以所确定的速率传输数据,并且第二计算机系统804接收所有传输的数据而不会丢失任何数据。
图9示出用于实现根据一个实施方案的各方面的示例性系统900的各方面。如将了解的,尽管出于解释目的使用了基于web的系统,但是可视情况使用不同的系统来实现各种实施方案。在一个实施方案中,系统包括电子客户端装置902,所述电子客户端装置902包括可操作来通过适当网络904发送和/或接收请求、消息或信息并且将信息传达回装置的用户的任何适当装置。此类客户端装置的实例包括个人计算机、蜂窝电话或其他移动电话、手持式消息传送装置、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。在一个实施方案中,网络包括任何适当网络,包括内联网、互联网、蜂窝网络、局域网、卫星网络或任何其他这种网络和/或其组合,并且用于这种系统的部件至少部分地取决于所选择的网络和/或系统的类型。用于通过这种网络进行通信的许多协议和部件是熟知的,并且本文将不再详细讨论。在一个实施方案中,通过网络进行的通信通过有线和/或无线连接及其组合来实现。在一个实施方案中,网络包括互联网和/或其他公共可寻址通信网络,因为系统包括用于接收请求并且响应于所述请求而提供内容的web服务器906,但是对于其他网络来说,可使用服务类似目的的替代装置,如本领域普通技术人员所显而易见的。在一个实施方案中,web服务器906是从电子客户端装置902发送的通信端点。替代地,应用程序服务器908是端点。这样,观察到的网络特性可描述电子客户端装置902与通信端点之间的路径的网络条件。
在一个实施方案中,电子客户端装置902根据本公开中描述的技术来执行网络特性校准918。例如,在电子客户端装置902上执行的应用程序可使用上述振荡技术来发送应用程序数据,并且从而执行对网络条件的连续、半连续或偶然的监视。
在一个实施方案中,说明性系统包括至少一个应用程序服务器908和数据存储区910,并且应当理解,可存在可链接起来或以其他方式配置的若干应用程序服务器、层或其他元件、方法或部件,它们可交互以执行诸如从适当数据存储区获得数据的任务。在一个实施方案中,服务器被实现为硬件装置、虚拟计算机系统、在计算机系统上执行的编程模块和/或配置有硬件和/或软件以接收并响应通过网络进行的通信(例如,web服务应用编程接口(API)请求)的其他装置。如本文所使用的,除非另外说明或从上下文中清楚地看出,否则术语“数据存储区”是指能够存储、访问并检索数据的任何装置或装置组合,所述装置或装置组合可包括在任何标准、分布式、虚拟或集群式系统中的任何组合和任何数量的数据服务器、数据库、数据存储装置和数据存储介质。在一个实施方案中,数据存储区与块级和/或对象级接口通信。应用程序服务器可包括任何适当的硬件、软件和固件,所述硬件、软件和固件用于根据需要与数据存储区集成以执行客户端装置的一个或多个应用程序的各方面,从而处置应用程序的数据访问和业务逻辑中的一些或全部。
在一个实施方案中,应用程序服务器与数据存储区协作来提供访问控制服务,并且生成包括但不限于文本、图形、音频、视频和/或其他内容的内容,所述内容由web服务器以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、级联样式表(“CSS”)、JavaScript对象表示法(JSON)和/或另一种适当的客户端侧结构化语言或其他结构化语言的形式提供给与客户端装置相关联的用户。在一个实施方案中,传输到客户端装置的内容由客户端装置处理以便以一种或多种形式提供内容,所述形式包括但不限于用户可通过听觉、视觉和/或通过其他感觉来感知的形式。在一个实施方案中,对所有请求和响应的处置以及在客户端装置902与应用程序服务器908之间的内容递送在此实例中由web服务器使用PHP:超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML、JSON和/或另一种适当的客户端侧结构化语言来处置。在一个实施方案中,在本文中被描述为由单个装置执行的操作由形成分布式和/或虚拟系统的多个装置共同执行。在一个实施方案中,客户端装置902和应用程序服务器908通过网络904进行通信。客户端装置902和/或应用程序服务器908可通过利用结合图1、图5和图6描述的技术来执行振荡互补网络特性校准,以确定客户端装置902与应用程序服务器908之间的网络连接的带宽时延乘积。带宽时延乘积可指示在不增加跨网络904传输的数据的延时的情况下可跨网络传输的数据量。在一个实施方案中,客户端装置902计算带宽时延乘积并根据所确定的带宽时延乘积发送和/或接收数据920的量或速率。在一个实施方案中,数据920是根据不超过带宽时延乘积的比特率从应用程序服务器908传输到客户端装置902的多媒体流的多媒体段。
在一个实施方案中,数据存储区910包括用于存储与本公开的特定方面相关的数据的若干单独的数据表、数据库、数据文档、动态数据存储方案和/或其他数据存储机构和介质。在一个实施方案中,示出的数据存储区包括用于存储产生数据912和用户信息916的机构,所述产生数据912和用户信息916用来为产生侧提供内容。数据存储区还被示出为包括用于存储日志数据914的机构,所述日志数据914在一个实施方案中用于报告、计算资源管理、分析或其他此类目的。在一个实施方案中,诸如页面图像信息和访问权信息(例如,访问控制策略或其他权限编码)的其他方面存储在数据存储区中、视情况位于上文列出的机构中的任一者中或位于数据存储区910中的另外机构中。
在一个实施方案中,数据存储区910可通过与其相关联的逻辑来操作,以便从应用程序服务器908接收指令并且响应于所述指令获得数据、更新数据或以其他方式处理数据,并且应用程序服务器908响应于所接收的指令提供静态数据、动态数据或静态数据与动态数据的组合。在一个实施方案中,诸如在web日志(博客)、购物应用程序、新闻服务以及其他此类应用程序中使用的数据的动态数据由如本文所描述的服务器侧结构化语言生成或者由在应用程序服务器上操作或在其控制下的内容管理系统(“CMS”)提供。在一个实施方案中,用户通过由用户操作的装置提交对某种类型的项目的搜索请求。在此实例中,数据存储区访问用户信息以验证用户的身份,访问目录详细信息以获得有关所述类型的项目的信息,并且将信息诸如以用户通过用户装置902上的浏览器查看的网页上的结果列表的形式返回给用户。继续实例,在浏览器的专用页面或窗口中查看感兴趣的特定项目的信息。然而,应注意,本公开的实施方案不一定限于网页的上下文,而是更一般地适用于以一般方式处理请求,其中请求不一定是对内容的请求。示例性请求包括管理由系统900和/或另一系统托管的计算资源和/或与其交互(诸如,以用于启动、终止、删除、修改、读取和/或以其他方式访问此类计算资源)的请求。
在一个实施方案中,每个服务器通常包括提供用于所述服务器的一般管理和操作的可执行程序指令的操作系统,并且包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在被服务器的处理器执行的情况下(即,由于被执行而)致使服务器或以其他方式允许服务器执行其预期功能。
在一个实施方案中,系统900是利用若干计算机系统和部件的分布式和/或虚拟计算系统,所述计算机系统和部件使用一个或多个计算机网络或直接连接通过通信链路(例如,传输控制协议(TCP)连接和/或传输层安全(TLS)或其他受密码保护的通信会话)互连。然而,本领域普通技术人员将了解,这种系统可在具有比图9中示出的部件更少或更多数量的部件的系统中操作。因此,对图9中的系统900的描述应被视为在本质上是说明性的且不限于本公开的范围。
各种实施方案还可在广泛多种操作环境中实现,在一些情况下,所述操作环境可包括可用来操作多个应用程序中的任一者的一个或多个用户计算机、计算装置或处理装置。在一个实施方案中,用户或客户端装置包括以下各项中的任一者:多个计算机,诸如运行标准操作系统的台式计算机、膝上型计算机或平板计算机,以及运行移动软件并且能够支持多种联网协议和消息传送协议的蜂窝(移动)、无线和手持式装置,并且这种系统还包括运行多种可商购获得的操作系统和用于诸如开发和数据库管理的目的的其他已知应用程序中的任一者的多个工作站。在一个实施方案中,这些装置还包括其他电子装置,诸如虚拟终端、瘦客户端、游戏系统和能够通过网络进行通信的其他装置,以及虚拟装置,诸如虚拟机、管理程序,以及利用操作系统级虚拟化的软件容器和能够通过网络进行通信的支持虚拟化的其他虚拟装置或非虚拟装置。
在一个实施方案中,系统利用本领域技术人员可能熟悉的至少一种网络来支持使用多种可商购获得的协议中的任一种进行通信,所述协议诸如传输控制协议/互联网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各层中操作的协议、文件传输协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、公共互联网文件系统(“CIFS”)以及其他协议。在一个实施方案中,网络是局域网、广域网、虚拟专用网络、互联网、内联网、外联网、公共交换电话网、红外网络、无线网络、卫星网络以及其任何组合。在一个实施方案中,面向连接的协议用来在网络端点之间通信,使得面向连接的协议(有时称为基于连接的协议)能够以有序流传输数据。在一个实施方案中,面向连接的协议可以是可靠的或不可靠的。例如,TCP协议是可靠的面向连接的协议。异步传输模式(“ATM”)和帧中继是不可靠的面向连接的协议。面向连接的协议与在不保证排序的情况下传输分组的面向分组的协议(诸如UDP)形成对比。
在一个实施方案中,诸如所描绘的电子通信装置902、web服务器906和/或应用程序服务器908的计算装置可包括通过总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)、至少一个输出装置(例如,显示装置、打印机或扬声器)、至少一个存储装置(诸如硬盘驱动器、光学存储装置和固态存储装置(诸如随机存取存储器(“RAM”)或只读存储器(“ROM”)))、以及可移动媒体装置、存储卡、闪存卡等、以及其各种组合。
在一个实施方案中,这种装置还包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网络卡(无线或有线)、红外通信装置等)以及如上文所描述的工作存储器,其中计算机可读存储介质读取器与计算机可读存储介质连接或被配置来接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移动存储装置以及用于暂时和/或更永久地包含、存储、传输并检索计算机可读信息的存储介质。在一个实施方案中,系统和各种装置通常还包括位于至少一个工作存储器装置内的多个软件应用程序、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用程序或web浏览器。在一个实施方案中,使用定制硬件,且/或在硬件、软件(包括便携式软件,诸如小应用程序)或这两者中实现特定元件。在一个实施方案中,采用与诸如网络输入/输出装置的其他计算装置的连接。
在一个实施方案中,用于包含代码或代码的部分的存储介质和计算机可读介质包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,诸如但不限于在用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实现的易失性和非易失性、可移动和不可移动的介质,包括RAM、ROM、电可擦可编程只读存储器(“EEPROM”)、快闪存储器或其他存储器技术、光盘只读存储器(“CD-ROM”)、数字通用光盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储装置,或能够用来存储期望的信息且可由系统装置访问的任何其他介质。基于本文所提供的公开内容和教示内容,本领域普通技术人员将了解实现各种实施方案的其他方式和/或方法。
因此,应当以说明性意义而不是限制性意义来理解本说明书和附图。然而,将显而易见的是,在不脱离如权利要求所阐述的本发明的更宽广精神和范围的情况下,可对本发明做出各种修改和改变。
其他变型也在本公开的精神内。因此,虽然所公开的技术可容许各种修改和替代构造,但在附图中已示出并且在上文中已经详细描述所示的其特定实施方案。然而,应理解,并不意图将本发明局限于所公开的一种或多种具体形式,而是相反地,本发明意图涵盖落在如所附权利要求中所限定的本发明的精神和范围内的所有修改、替代构造和等效物。
除非本文另外指出或明显地与上下文矛盾,否则在描述所公开的实施方案的上下文中(尤其是在以下权利要求的上下文中)对术语“一个(a和an)”和“所述(the)”以及类似指称对象的使用应解释为涵盖单数和复数两者。类似地,除非明确地矛盾或与上下文矛盾,否则对术语“或”的使用应解释为意指“和/或”。除非另外指出,否则术语“包含”、“具有”、“包括”和“含有”应解释为开放式术语(即,意指“包括但不限于”)。当无修饰并且指代物理连接时,术语“连接的”应解释为部分地或全部地容纳在内、附接到、或连结在一起,即使存在介入物。除非本文另外指出,否则本文中对值范围的列举仅仅意图用作单独提及落在所述范围内的每个单独值的速记方法,并且如同在本文中单独叙述地那样将每个单独值并入本说明书中。除非另外指出或与上下文矛盾,否则术语“集”(例如,“项目集”)或“子集”的使用应解释为包括一个或多个成员的非空集合。另外,除非另外指出或与上下文矛盾,否则术语对应集的“子集”不一定指对应集的真子集,而是子集和对应集可相等。
除非另外具体说明或以其他方式明显地与上下文矛盾,否则连接性语言,诸如形式为“A、B、和C中的至少一者”或“A、B和C中的至少一者”的短语(即,有或没有牛筋逗号的同一短语),是在通常使用的上下文情况下另外理解为表述项目、术语等可以是:A或B或C,A和B和C的集的任何非空子集,或包含至少一个A、至少一个B或至少一个C的不与上下文矛盾或不以其他方式排除的任何集。例如,在具有三个成员的集的说明性实例中,连接性短语“A、B、和C中的至少一者”和“A、B和C中的至少一者”是指以下集中的任一者:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C},以及在不明确地矛盾或不与上下文矛盾的情况下,具有{A}、{B}和/或{C}作为子集的任何集(例如,具有多个“A”的集)。因此,这种连接性语言通常不意图暗示特定实施方案要求A中的至少一个、B中的至少一个以及C中的至少一个都存在。类似地,除非明确说明或从上下文中清楚地看出不同的含义,否则诸如“A、B、或C中的至少一者”和“A、B或C中的至少一者”的短语与“A、B、和C中的至少一者”和“A、B和C中的至少一者”所指相同,是指以下集中的任一者:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}。另外,除非另外指出或与上下文矛盾,否则术语“多个”指示呈多个的状态(例如,“多个项目”指示多个项目)。多个项目的数量为至少两个,但如果明确地指出或通过上下文指出,则可更多。此外,除非另有说明或从上下文可清楚地看出,否则短语“基于”是指“至少部分地基于”而不是“仅基于”。
除非本文中另外指出或以其他方式明显地与上下文矛盾,否则可按任何合适的顺序来执行本文中所描述的过程的操作。在一个实施方案中,诸如本文所描述的方法(或其变型和/或组合)的方法是在配置有可执行指令的一个或多个计算机系统的控制下执行,并且被实现为共同在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)、由硬件实现或其组合。在一个实施方案中,代码例如以计算机程序的形式存储在计算机可读储存介质上,所述计算机程序包括可由一个或多个处理器执行的多个指令。在一个实施方案中,计算机可读存储介质是非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质不包括暂时性信号(例如,传播瞬变的电或电磁传输)但在暂时性信号的收发器内包括非暂时性数据存储电路(例如,缓冲区、高速缓存和队列)。在一个实施方案中,代码(例如,可执行代码或源代码)存储在一个或多个非暂时性计算机可读存储介质的集合上,所述一个或多个非暂时性计算机可读存储介质上存储有可执行指令,所述可执行指令在由计算机系统的一个或多个处理器执行时(即,由于被执行而)致使计算机系统执行本文所描述的操作。在一个实施方案中,非暂时性计算机可读存储介质的集合包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的单独非暂时性存储介质中的一个或多个不含所有代码,而多个非暂时性计算机可读存储介质共同存储所有代码。在一个实施方案中,可执行指令被执行以使得由不同的处理器执行不同的指令,例如,非暂时性计算机可读存储介质存储指令,并且主CPU执行一些指令,而图形处理器单元执行其他指令。在一个实施方案中,计算机系统的不同部件具有单独的处理器,并且不同的处理器执行指令的不同子集。
因此,在一个实施方案中,计算机系统被配置来实现一个或多个服务,所述一个或多个服务单独地或共同地执行本文所描述的方法的操作,并且此类计算机系统被配置有使得能够执行所述操作的适用的硬件和/或软件。另外,实现本公开的实施方案的计算机系统是单个装置,并且在另一个实施方案中,是包括多个装置的分布式计算机系统,所述多个装置以不同方式操作,使得分布式计算机系统执行本文所描述的操作并且使得单个装置不执行所有操作。
本文所提供的任何以及所有实例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本发明的实施方案,并且除非另外要求,否则不会对本发明的范围应用限制。本说明书中的语言不应解释为将任何非要求保护的要素指示为实践本发明所必需。
另外,可鉴于以下条款对本公开的实施方案进行描述:
1.一种计算机实现的方法,其包括通过以下方式确定第一计算实体与第二计算实体之间的网络连接的带宽时延乘积:
传输第一多个消息以基于带宽输入测量所述网络连接的往返时间;
基于所述第一多个消息计算第一相关系数;
基于所述第一相关系数超过第一阈值,计算所述网络连接的网络容量;
传输第二多个消息以基于带宽输入测量所述网络连接的带宽输出;
基于所述第二多个消息计算第二相关系数;
基于所述第二相关系数超过第二阈值,计算所述网络连接的网络延时;以及
基于所述网络容量和所述网络延时计算所述带宽时延乘积。
2.如条款1所述的计算机实现的方法,其中所述方法还包括:使数据流以围绕所述带宽时延乘积振荡的速率跨所述网络连接传输。
3.如条款2所述的计算机实现的方法,其中所述数据流包括多媒体内容。
4.如条款1-3中任一项所述的计算机实现的方法,其中所述第一多个消息和所述第二多个消息包括应用程序数据。
5.一种系统,其包括:
一个或多个处理器;以及
存储器,所述存储器存储计算机可执行指令,所述计算机可执行指令在被执行时致使所述一个或多个处理器:
在所述系统的溢出状态期间,确定往返数据点的第一线性相关性;
测量在所述溢出状态期间的带宽;
在所述系统的下溢状态期间,确定带宽数据点的第二相关性;
测量在所述下溢状态期间的往返时间;
确定所述带宽和所述往返时间,直到选定带宽时延乘积度量;并且
在所述系统的所述溢出状态与所述下溢状态之间连续振荡。
6.如条款5所述的系统,其中所述带宽时延乘积度量是在大约若干个往返时间内计算的。
7.如条款5或6所述的系统,其中所述存储器存储其他计算机可执行指令,所述计算机可执行指令在被执行时致使所述一个或多个处理器:
收集与所述溢出状态和所述下溢状态相对应的带宽输出的多个测量结果;并且
通过至少对所述多个测量结果执行统计分析来确定所述带宽时延乘积度量。
8.如条款7所述的系统,其中所述存储器存储其他计算机可执行指令,所述计算机可执行指令在被执行时致使所述一个或多个处理器:
计算所述多个测量结果的置信区间;并且
确定所述置信区间具有不超过阈值宽度的范围。
9.如条款5-8中任一项所述的系统,其中所述存储器存储其他计算机可执行指令,所述计算机可执行指令在被执行时致使所述一个或多个处理器:
收集多个测量结果,其中所述多个测量结果中的每个测量结果基于所述溢出状态或所述下溢状态中的至少一者来测量往返时间值;并且
对所述多个测量结果执行统计回归分析以确定正相关性。
10.如条款9所述的系统,其中所述多个测量结果包括在不同带宽输入值下进行的测量结果。
11.如条款5-10中任一项所述的系统,其中所述连续振荡致使度量在随机误差与确定性误差之间表现出振荡。
12.如条款5-11中任一项所述的系统,其中所述存储器存储其他计算机可执行指令,所述计算机可执行指令在被执行时致使所述一个或多个处理器作为带宽输入的函数获得带宽输出的单个测量结果。
13.一种非暂时性计算机可读存储介质,其包括可执行指令,所述可执行指令由于被计算机系统的一个或多个处理器执行而致使所述计算机系统至少:
基于对网络连接上的第一网络特性的第一多个测量结果确定第二网络特性的第一值,所述第二网络特性与所述第一网络特性互补;
基于对所述网络连接上的所述第二网络特性的第二多个测量结果确定所述第一网络特性的第二值;并且
基于所述第一值和所述第二值确定所述网络连接的第三网络特性的第三值;并且
致使根据所述第三值通过所述网络连接传送数据。
14.如条款13所述的非暂时性计算机可读存储介质,其中所述第一网络特性是往返时间,并且所述第二网络特性是带宽输出。
15.如条款13或14所述的非暂时性计算机可读存储介质,其中所述第一网络特性和所述第二网络特性是互补的网络特性。
16.如条款13至15中任一项所述的非暂时性计算机可读存储介质,其中:
所述第一网络特性是往返时间;
所述第二网络特性是确定性损失;并且
所述第三网络特性是与所述网络连接相关联的排队容量。
17.如条款16所述的非暂时性计算机可读存储介质,其中用于基于对所述网络连接上的所述第一网络特性的第一多个测量结果确定所述第二网络特性的所述第一值的指令包括下述指令:在由所述一个或多个处理器执行时,所述指令致使所述计算机系统基于与测量结果相关联的损失率对所述测量结果应用惩罚因子。
18.如条款17所述的非暂时性计算机可读存储介质,其中所述损失率是确定性损失率。
19.如条款13-18中任一项所述的非暂时性计算机可读存储介质,其中所述指令包括如下指令:在由所述一个或多个处理器执行时所述指令进一步致使所述计算机系统通过至少以下方式来更新所述第三值:
基于对所述网络连接上的所述第一网络特性的第三多个测量结果确定所述第二网络特性的第四值;
基于对所述网络连接上的所述第二网络特性的第四多个测量结果确定所述第一网络特性的第五值;以及
基于所述第四值和所述第五值更新所述第三值。
20.如条款13-19中任一项所述的非暂时性计算机可读存储介质,其中所述网络连接对于所述第一多个测量结果是不饱和的,并且对于所述第二多个测量结果是过饱和的。
本文中描述了本公开的实施方案,包括发明人已知用于执行本发明的最佳模式。在阅读上述描述后,这些实施方案的变型对于本领域普通技术人员可变得显而易见。发明人希望技术人员视情况采用此类变型,并且发明人意图以不同于如本文具体描述的方式来实践本公开的实施方案。因此,经适用的法律许可,本公开的范围包括在所附的权利要求中叙述的主题的所有修改和等效物。此外,除非本文另外指出或以其他方式明显地与上下文矛盾,否则本公开的范围涵盖在其所有可能变型中的上述要素的任何组合。
本文所引用的所有参考文献(包括出版物、专利申请和专利)特此引用方式并入,其程度如同每个参考文献都单独地且具体地被指示为以引用方式并入并且其全部内容在本文中进行阐述一样。
Claims (15)
1.一种用于网络度量的连续校准的系统,其包括:
一个或多个处理器;以及
存储器,所述存储器存储计算机可执行指令,所述计算机可执行指令在被执行时致使所述一个或多个处理器:
在所述系统的不饱和状态期间,确定往返时间数据点和对应的带宽输入数据点之间的第一线性相关性;
在所述系统的过饱和状态期间,确定带宽输出数据点和对应的带宽输入数据点之间的第二相关性;
测量所述带宽输出数据点和所述往返时间数据点,直到确定所述第一线性相关性或所述第二相关性的正相关性;
在确定所述正相关性后,计算带宽时延乘积度量;以及
在所述系统的所述过饱和状态与所述不饱和状态之间振荡;
其中,在第一带宽输入值和第二带宽输入值之间校准所述过饱和状态和所述不饱和状态之间的振荡,以部分地确定所述第一线性相关性或所述第二相关性的所述正相关性。
2.如权利要求1所述的系统,其中所述带宽时延乘积度量是在若干个往返时间内计算的。
3.如权利要求1所述的系统,其中所述存储器存储其他计算机可执行指令,所述计算机可执行指令在被执行时致使所述一个或多个处理器:
收集与所述过饱和状态和所述不饱和状态相对应的所述带宽输出数据点的第二多个测量结果;并且
通过至少对所述第二多个测量结果执行统计分析来确定所述带宽时延乘积度量。
4.如权利要求3所述的系统,其中所述存储器存储其他计算机可执行指令,所述计算机可执行指令在被执行时致使所述一个或多个处理器:
计算所述第二多个测量结果的置信区间;并且
确定所述置信区间具有不超过阈值宽度的范围。
5.如权利要求1至4中任一项所述的系统,其中所述存储器存储其他计算机可执行指令,所述计算机可执行指令在被执行时致使所述一个或多个处理器:
收集第一多个测量结果,其中所述第一多个测量结果中的每个测量结果基于所述不饱和状态或所述过饱和状态中的至少一者来测量往返时间值;并且
对所述第一多个测量结果执行统计回归分析以确定正相关性。
6.如权利要求5所述的系统,其中所述第一多个测量结果包括在包括所述第一带宽输入值和所述第二带宽输入值的不同带宽输入值下进行的测量结果,以用于校准所述过饱和状态和所述不饱和状态之间的所述振荡。
7.如权利要求1至4中任一项所述的系统,其中所述振荡致使度量在随机误差与确定性误差之间振荡。
8.如权利要求1至4中任一项所述的系统,其中所述存储器存储其他计算机可执行指令,所述计算机可执行指令在被执行时致使所述一个或多个处理器作为带宽输入的函数获得带宽输出的单个测量结果。
9.一种用于网络度量的连续校准的方法,其包括:
基于对网络连接上的第一网络特性的第一多个测量结果,在所述网络连接的过饱和状态期间,确定第二网络特性的第一值,所述第二网络特性与所述第一网络特性互补;
基于对所述网络连接上的所述第二网络特性的第二多个测量结果,在所述网络连接的不饱和状态期间,确定所述第一网络特性的第二值;
基于所述第一值和所述第二值确定所述网络连接的第三网络特性的第三值;以及
致使根据所述第三值通过所述网络连接传送数据;
其中,所述网络连接在所述过饱和状态和所述不饱和状态之间振荡,以及,在第一带宽输入值和第二带宽输入值之间校准振荡,以部分地确定所述第一网络特性或所述第二网络特性。
10.如权利要求9所述的方法,其中所述第一网络特性是往返时间,并且所述第二网络特性是带宽输出。
11.如权利要求9所述的方法,其中所述第一网络特性和所述第二网络特性是互补的网络特性,用于在所述第一带宽输入值和所述第二带宽输入值之间校准所述第一网络特性或所述第二网络特性。
12.如权利要求9或11所述的方法,其中:
所述第一网络特性是往返时间;
所述第二网络特性是确定性损失;并且
所述第三网络特性是与所述网络连接相关联的排队容量。
13.如权利要求9至11中任一项所述的方法,其中所述基于对网络连接上的第一网络特性的第一多个测量结果,在所述网络连接的过饱和状态期间,确定第二网络特性的第一值,包括:基于与所述第一多个测量结果相关联的损失率对所述第一多个测量结果应用惩罚因子。
14.如权利要求13所述的方法,其中所述损失率是确定性损失率。
15.如权利要求9至11中任一项所述的方法,其还包括:通过至少以下方式来更新所述第三值:
基于对所述网络连接上的所述第一网络特性的第三多个测量结果确定所述第二网络特性的第四值;
基于对所述网络连接上的所述第二网络特性的第四多个测量结果确定所述第一网络特性的第五值;以及
基于所述第四值和所述第五值更新所述第三值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/219,865 US11252097B2 (en) | 2018-12-13 | 2018-12-13 | Continuous calibration of network metrics |
US16/219,865 | 2018-12-13 | ||
PCT/US2019/066070 WO2020123865A1 (en) | 2018-12-13 | 2019-12-12 | Continuous calibration of network metrics |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113169896A CN113169896A (zh) | 2021-07-23 |
CN113169896B true CN113169896B (zh) | 2024-02-27 |
Family
ID=69160375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980080299.7A Active CN113169896B (zh) | 2018-12-13 | 2019-12-12 | 网络度量的连续校准 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11252097B2 (zh) |
EP (1) | EP3895377A1 (zh) |
CN (1) | CN113169896B (zh) |
WO (1) | WO2020123865A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11522913B1 (en) * | 2019-09-03 | 2022-12-06 | Rapid7, Inc. | Simplifying networking setup complexity for security agents |
EP3952410A1 (en) * | 2020-08-05 | 2022-02-09 | Sandvine Corporation | Method and system for managing mobile network congestion |
US11355139B2 (en) * | 2020-09-22 | 2022-06-07 | International Business Machines Corporation | Real-time vs non-real time audio streaming |
CN112653634A (zh) * | 2020-12-10 | 2021-04-13 | 苏州浪潮智能科技有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
CN112714041B (zh) * | 2020-12-21 | 2022-05-31 | 北京信而泰科技股份有限公司 | Tte交换机容量测试方法、装置及计算机可读介质 |
US20220276906A1 (en) * | 2021-02-26 | 2022-09-01 | Google Llc | Controlling System Load Based On Memory Bandwidth |
CN113965944A (zh) * | 2021-09-14 | 2022-01-21 | 中国船舶重工集团公司第七一六研究所 | 保证系统控制性能的使延迟确定性最大化的方法及系统 |
CN114006764B (zh) * | 2021-11-02 | 2023-09-26 | 北京天融信网络安全技术有限公司 | 一种基于超融合系统的安全网元的部署方法和装置 |
US20230300671A1 (en) * | 2022-03-18 | 2023-09-21 | Qualcomm Incorporated | Downlink congestion control optimization |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101133599A (zh) * | 2004-12-24 | 2008-02-27 | 阿斯帕拉公司 | 批量数据传输 |
US7573886B1 (en) * | 2004-07-06 | 2009-08-11 | Sun Microsystems, Inc. | System and method for adaptive bandwidth determination |
Family Cites Families (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6836564B2 (en) | 2000-04-28 | 2004-12-28 | Denso Corporation | Image data compressing method and apparatus which compress image data separately by modifying color |
US6766376B2 (en) | 2000-09-12 | 2004-07-20 | Sn Acquisition, L.L.C | Streaming media buffering system |
US6801604B2 (en) | 2001-06-25 | 2004-10-05 | International Business Machines Corporation | Universal IP-based and scalable architectures across conversational applications using web services for speech and audio processing resources |
US7133368B2 (en) * | 2002-02-01 | 2006-11-07 | Microsoft Corporation | Peer-to-peer method of quality of service (QoS) probing and analysis and infrastructure employing same |
US20040154460A1 (en) | 2003-02-07 | 2004-08-12 | Nokia Corporation | Method and apparatus for enabling music error recovery over lossy channels |
US20070110074A1 (en) | 2004-06-04 | 2007-05-17 | Bob Bradley | System and Method for Synchronizing Media Presentation at Multiple Recipients |
US7400322B1 (en) | 2004-06-24 | 2008-07-15 | Julian Michael Urbach | Viewport-based desktop rendering engine |
JP2006115470A (ja) | 2004-09-16 | 2006-04-27 | Ntt Docomo Inc | 映像評価装置、フレームレート決定装置、映像処理装置、映像評価方法、および映像評価プログラム |
JP4575124B2 (ja) | 2004-11-29 | 2010-11-04 | オリンパス株式会社 | 画像表示装置 |
US7516255B1 (en) | 2005-03-30 | 2009-04-07 | Teradici Corporation | Method and apparatus for providing a low-latency connection between a data processor and a remote graphical user interface over a network |
WO2006126974A1 (en) | 2005-04-11 | 2006-11-30 | Tubitak Bilten | Optimal video adaptation for resource constrained mobile devices based on subjective utility models |
US7720654B2 (en) * | 2005-10-15 | 2010-05-18 | Micron Technology, Inc. | Generation and manipulation of realistic signals for circuit and system verification |
US8606966B2 (en) | 2006-08-28 | 2013-12-10 | Allot Communications Ltd. | Network adaptation of digital content |
JP2008131569A (ja) | 2006-11-24 | 2008-06-05 | Sony Corp | 画像情報伝送システム、画像情報送信装置、画像情報受信装置、画像情報伝送方法、画像情報送信方法、画像情報受信方法 |
CN101779234A (zh) | 2007-01-04 | 2010-07-14 | 米克罗恩技术公司 | 数字显示器 |
US8630346B2 (en) | 2007-02-20 | 2014-01-14 | Samsung Electronics Co., Ltd | System and method for introducing virtual zero motion vector candidates in areas of a video sequence involving overlays |
US9176598B2 (en) | 2007-05-08 | 2015-11-03 | Thinkoptics, Inc. | Free-space multi-dimensional absolute pointer with improved performance |
EP2149873A4 (en) | 2007-05-28 | 2011-04-13 | Sharp Kk | IMAGE DISPLAY DEVICE |
US20090100493A1 (en) | 2007-10-16 | 2009-04-16 | At&T Knowledge Ventures, Lp. | System and Method for Display Format Detection at Set Top Box Device |
US20090210817A1 (en) | 2008-02-15 | 2009-08-20 | Microsoft Corporation | Mechanism for increasing remote desktop responsiveness |
KR101489301B1 (ko) | 2008-03-20 | 2015-02-06 | 삼성전자주식회사 | 가상환경 시스템 및 그의 구동방법 |
SG189800A1 (en) | 2008-04-17 | 2013-05-31 | Shilat Optronics Ltd | Intrusion warning system |
US8456380B2 (en) | 2008-05-15 | 2013-06-04 | International Business Machines Corporation | Processing computer graphics generated by a remote computer for streaming to a client computer |
US7885270B2 (en) | 2008-05-15 | 2011-02-08 | Verlvue, Inc. | Statistical multiplexing of compressed video streams |
US20100046623A1 (en) | 2008-08-19 | 2010-02-25 | Chen Xuemin Sherman | Method and system for motion-compensated frame-rate up-conversion for both compressed and decompressed video bitstreams |
JP2010122609A (ja) | 2008-11-21 | 2010-06-03 | Canon Inc | 表示制御装置及び表示制御方法 |
US8452586B2 (en) | 2008-12-02 | 2013-05-28 | Soundhound, Inc. | Identifying music from peaks of a reference sound fingerprint |
US20100164839A1 (en) | 2008-12-31 | 2010-07-01 | Lyons Kenton M | Peer-to-peer dynamically appendable logical displays |
US8179466B2 (en) | 2009-03-11 | 2012-05-15 | Eastman Kodak Company | Capture of video with motion-speed determination and variable capture rate |
US8405770B2 (en) | 2009-03-12 | 2013-03-26 | Intellectual Ventures Fund 83 Llc | Display of video with motion |
US20100256344A1 (en) | 2009-04-03 | 2010-10-07 | University Of Southern California | Surface modification of nanosensor platforms to increase sensitivity and reproducibility |
US8559755B2 (en) | 2009-04-07 | 2013-10-15 | Citrix Systems, Inc. | Methods and systems for prioritizing dirty regions within an image |
JP4620163B2 (ja) | 2009-06-30 | 2011-01-26 | 株式会社東芝 | 静止字幕検出装置、静止字幕を含む画像を表示する映像機器、および静止字幕を含んだ画像の処理方法 |
JP5315162B2 (ja) | 2009-08-05 | 2013-10-16 | 株式会社日立製作所 | 映像処理装置及び映像処理方法 |
CN102668558B (zh) | 2009-12-24 | 2016-09-07 | 英特尔公司 | 无线显示编码器架构 |
US8468455B2 (en) | 2010-02-24 | 2013-06-18 | Novell, Inc. | System and method for providing virtual desktop extensions on a client desktop |
US20110228984A1 (en) | 2010-03-17 | 2011-09-22 | Lighthaus Logic Inc. | Systems, methods and articles for video analysis |
US8438175B2 (en) | 2010-03-17 | 2013-05-07 | Lighthaus Logic Inc. | Systems, methods and articles for video analysis reporting |
US20170365237A1 (en) | 2010-06-17 | 2017-12-21 | Thincl, Inc. | Processing a Plurality of Threads of a Single Instruction Multiple Data Group |
US9210213B2 (en) | 2011-03-03 | 2015-12-08 | Citrix Systems, Inc. | Reverse seamless integration between local and remote computing environments |
US8866701B2 (en) | 2011-03-03 | 2014-10-21 | Citrix Systems, Inc. | Transparent user interface integration between local and remote computing environments |
WO2012138660A2 (en) | 2011-04-07 | 2012-10-11 | Activevideo Networks, Inc. | Reduction of latency in video distribution networks using adaptive bit rates |
US8774043B2 (en) | 2011-06-08 | 2014-07-08 | Citrix Systems, Inc. | Methods and apparatus for using a layered gear to analyze and manage real-time network quality of service transmission for mobile devices on public networks |
US9548936B2 (en) * | 2011-06-30 | 2017-01-17 | The Chinese University Of Hong Kong | Method and system for improved TCP performance over mobile data networks |
JP5488548B2 (ja) | 2011-08-04 | 2014-05-14 | カシオ計算機株式会社 | 画像処理装置、画像処理方法及びプログラム |
US9542148B2 (en) | 2011-08-24 | 2017-01-10 | Lenovo (Singapore) Pte. Ltd. | Adapting a user interface of a remote desktop host |
US9020476B2 (en) | 2011-09-12 | 2015-04-28 | Leipzig Technology, Llc | System and method for remote care and monitoring using a mobile device |
US9268517B2 (en) | 2011-12-07 | 2016-02-23 | Adobe Systems Incorporated | Methods and systems for establishing, hosting and managing a screen sharing session involving a virtual environment |
US8959431B2 (en) | 2012-01-16 | 2015-02-17 | Microsoft Corporation | Low resolution placeholder content for document navigation |
TWI462075B (zh) | 2012-01-20 | 2014-11-21 | Hung Ta Liu | 一種驅動方法及使用該方法之顯示裝置 |
US9185307B2 (en) | 2012-02-21 | 2015-11-10 | Semiconductor Components Industries, Llc | Detecting transient signals using stacked-chip imaging systems |
US9423994B2 (en) | 2012-02-22 | 2016-08-23 | Citrix Systems, Inc. | Hierarchical display |
WO2013187047A1 (ja) | 2012-06-13 | 2013-12-19 | パナソニック株式会社 | 物体検出装置 |
US20140043349A1 (en) | 2012-08-08 | 2014-02-13 | Qualcomm Mems Technologies, Inc. | Display element change detection for selective line update |
US20140188977A1 (en) | 2012-12-28 | 2014-07-03 | Futurewei Technologies, Inc. | Appratus, method for deploying applications in a virtual desktop interface system |
US9172740B1 (en) | 2013-01-15 | 2015-10-27 | Google Inc. | Adjustable buffer remote access |
US9311692B1 (en) | 2013-01-25 | 2016-04-12 | Google Inc. | Scalable buffer remote access |
US8977945B2 (en) | 2013-03-12 | 2015-03-10 | Intel Corporation | Techniques for transmitting video content to a wirelessly docked device having a display |
US9547466B2 (en) | 2013-05-29 | 2017-01-17 | Vmware, Inc. | Systems and methods for using screen sampling to detect display changes |
JP2015001549A (ja) | 2013-06-13 | 2015-01-05 | ソニー株式会社 | 信号出力装置、信号出力方法、及び映像表示装置 |
US9401128B1 (en) | 2013-09-20 | 2016-07-26 | Google Inc. | Dynamic update of display pixels |
EP3054664B1 (en) | 2013-09-30 | 2022-06-29 | Nikon Corporation | Electronic device, method for controlling electronic device, and control program |
JP6375607B2 (ja) | 2013-09-30 | 2018-08-22 | 株式会社ニコン | 電子機器、電子機器の制御方法、及び制御プログラム |
US9609338B2 (en) | 2013-10-25 | 2017-03-28 | Microsoft Technology Licensing, Llc | Layered video encoding and decoding |
EP3103218A4 (en) * | 2014-02-04 | 2017-09-06 | Distrix Networks Ltd. | Bandwidth and latency estimation in a communication network |
US9578106B2 (en) | 2014-02-26 | 2017-02-21 | Avaya Inc. | System and method for binding a virtual desktop infrastructure host and media soft client together |
US9712749B2 (en) | 2014-02-27 | 2017-07-18 | Google Technology Holdings LLC | Electronic device having multiple sides |
CA2844724A1 (en) | 2014-03-04 | 2015-09-04 | Guest Tek Interactive Entertainment Ltd. | Leveraging push notification capabilities of mobile app to send event-triggered invitations to upgrade service offered by hospitality establishment |
US10033936B2 (en) | 2014-03-31 | 2018-07-24 | Sony Corporation | Control apparatus, control method, and imaging apparatus |
US10033509B2 (en) | 2014-05-20 | 2018-07-24 | Satixfy Israel Ltd. | Method and system for satellite communication |
WO2016009637A1 (ja) | 2014-07-17 | 2016-01-21 | パナソニックIpマネジメント株式会社 | 認識データ生成装置、画像認識装置および認識データ生成方法 |
US9607650B2 (en) | 2014-11-02 | 2017-03-28 | W. Leo Hoarty | Systems and methods for reducing audio distortion during playback of phonograph records using multiple tonearm geometries |
EP3040726A1 (en) | 2014-12-29 | 2016-07-06 | General Electric Company | Method and system to determine vehicle speed |
US10122640B2 (en) | 2015-01-26 | 2018-11-06 | LiveQoS Inc. | Minimal buffer network arbiter |
US9870192B2 (en) | 2015-02-19 | 2018-01-16 | Citrix Systems, Inc. | Systems and methods for providing adapted multi-monitor topology support in a virtualization environment |
US10319317B2 (en) | 2015-08-31 | 2019-06-11 | Sharp Kabushiki Kaisha | Display control device, display device, method for controlling display control device, and storage medium |
US10298841B2 (en) | 2015-11-20 | 2019-05-21 | Sony Corporation | Device and method for generating a panoramic image |
GB201601140D0 (en) | 2016-01-21 | 2016-03-09 | Oxehealth Ltd | Method and apparatus for estimating heart rate |
US20170279757A1 (en) | 2016-03-22 | 2017-09-28 | Facebook, Inc. | Systems and methods for identifying matching content |
US10404963B1 (en) | 2016-05-03 | 2019-09-03 | David Gerald Kenrick | System for processing 2D content for 3D viewing |
CN105979159B (zh) | 2016-07-21 | 2019-01-25 | 上海小蚁科技有限公司 | 设备的同步方法和同步系统 |
US10969583B2 (en) | 2017-02-24 | 2021-04-06 | Zoll Medical Corporation | Augmented reality information system for use with a medical device |
US10346715B2 (en) | 2017-04-07 | 2019-07-09 | GM Global Technology Operations LLC | Camera misalignment determination methods and systems |
US10567537B2 (en) | 2017-05-15 | 2020-02-18 | Citrix Systems, Inc. | Optimizing web applications using a rendering engine |
US11328185B2 (en) | 2017-06-30 | 2022-05-10 | California Institute Of Technology | Noninvasive, label-free, in vivo flow cytometry using speckle correlation technique |
US10810414B2 (en) | 2017-07-06 | 2020-10-20 | Wisconsin Alumni Research Foundation | Movement monitoring system |
US10807000B2 (en) | 2017-08-15 | 2020-10-20 | Igt | Concurrent gaming with gaze detection |
US11457239B2 (en) | 2017-11-09 | 2022-09-27 | Google Llc | Block artefact reduction |
US20190156785A1 (en) | 2017-11-20 | 2019-05-23 | Qualcomm Incorporated | Method and apparatus for refresh rate regions on video-mode display panels |
US10331394B1 (en) | 2017-12-21 | 2019-06-25 | Logmein, Inc. | Manipulating shared screen content |
KR102531128B1 (ko) | 2018-02-23 | 2023-05-10 | 삼성전자주식회사 | 카메라를 이용하여 복수의 프레임 레이트에 따라 영상을 촬영하는 전자 장치 및 그 작동 방법 |
US10678929B2 (en) | 2018-03-09 | 2020-06-09 | Citrix Systems, Inc. | Systems and methods for embedding data in remote session displays |
US20190302881A1 (en) | 2018-03-29 | 2019-10-03 | Omnivision Technologies, Inc. | Display device and methods of operation |
US10630976B2 (en) | 2018-08-17 | 2020-04-21 | Qualcomm Incorporated | Display refresh blocks determination for video coding |
-
2018
- 2018-12-13 US US16/219,865 patent/US11252097B2/en active Active
-
2019
- 2019-12-12 WO PCT/US2019/066070 patent/WO2020123865A1/en unknown
- 2019-12-12 CN CN201980080299.7A patent/CN113169896B/zh active Active
- 2019-12-12 EP EP19836355.8A patent/EP3895377A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7573886B1 (en) * | 2004-07-06 | 2009-08-11 | Sun Microsystems, Inc. | System and method for adaptive bandwidth determination |
CN101133599A (zh) * | 2004-12-24 | 2008-02-27 | 阿斯帕拉公司 | 批量数据传输 |
Also Published As
Publication number | Publication date |
---|---|
EP3895377A1 (en) | 2021-10-20 |
US11252097B2 (en) | 2022-02-15 |
WO2020123865A1 (en) | 2020-06-18 |
CN113169896A (zh) | 2021-07-23 |
US20200195567A1 (en) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113169896B (zh) | 网络度量的连续校准 | |
US20230237117A1 (en) | Method and system for detecting slow page load | |
US9584380B2 (en) | Method and system for detecting slow page load | |
CN110875915B (zh) | 数据传输方法及装置 | |
US11496403B2 (en) | Modifying the congestion control algorithm applied to a connection based on request characteristics | |
WO2018112877A1 (zh) | 路径计算和访问请求分发方法、装置及系统 | |
US10554727B2 (en) | Method and apparatus for controlling multi-connection for data transmission rate improvement | |
US9432296B2 (en) | Systems and methods for initializing packet transfers | |
EP3560152B1 (en) | Determining the bandwidth of a communication link | |
EP2928145A1 (en) | Method for estimating a bandwidth associated with a connection between a client terminal and at least one server, corresponding client terminal | |
Cleland et al. | FedComm: Understanding communication protocols for edge-based federated learning | |
US11368400B2 (en) | Continuously calibrated network system | |
CN113439416B (zh) | 连续校准的网络系统 | |
Simoens et al. | Upstream bandwidth optimization of thin client protocols through latency‐aware adaptive user event buffering | |
US11356326B2 (en) | Continuously calibrated network system | |
Ben Ameur et al. | Performance evaluation of TcpHas: TCP for HTTP adaptive streaming | |
WO2020179508A1 (ja) | Web品質推定装置及びプログラム | |
US10931553B1 (en) | Evaluating network speed by multiple parallel data exchanges between a client device and multiple servers via the network | |
CN117294584A (zh) | 一种故障定位方法、装置、电子设备及存储介质 | |
CN115622880A (zh) | 网络配置方法、装置、设备和存储介质 | |
CN116962258A (zh) | 一种带宽探测方法、装置、系统、设备及存储介质 | |
Zubaydi et al. | Experimental Analysis and Optimization Approach of Self-Clocked Rate Adaptation for Multimedia Congestion Control Algorithm in Emulated 5G Environment | |
CN117692392A (zh) | 重传超时时长确定方法、装置、电子设备及存储介质 | |
CN115150283A (zh) | 网络带宽探测方法、装置、计算机设备和存储介质 |
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 |