CN1543157B - 基于端对端测量对网络上数据流准入的控制 - Google Patents

基于端对端测量对网络上数据流准入的控制 Download PDF

Info

Publication number
CN1543157B
CN1543157B CN2004100286414A CN200410028641A CN1543157B CN 1543157 B CN1543157 B CN 1543157B CN 2004100286414 A CN2004100286414 A CN 2004100286414A CN 200410028641 A CN200410028641 A CN 200410028641A CN 1543157 B CN1543157 B CN 1543157B
Authority
CN
China
Prior art keywords
data
computer system
grouping
receiving
behavior
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.)
Expired - Fee Related
Application number
CN2004100286414A
Other languages
English (en)
Other versions
CN1543157A (zh
Inventor
A·基斯迪
C·休特马
A·杜比
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1543157A publication Critical patent/CN1543157A/zh
Application granted granted Critical
Publication of CN1543157B publication Critical patent/CN1543157B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Radio Relay Systems (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Communication Control (AREA)

Abstract

从较被动的测试到较主动的测试的一系列测试中的适当判决控制了数据流到网络数据路径上的准入。较被动的测试包括杂乱模态和分组对测试。当较被动测试的结果指明数据流使网络数据路径转变为拥塞状态的似然性降低时,可以主动地探测网络数据路径从而对拥塞的似然性作出更准确的判决。以诊断数据传输速率发送一列诊断数据分组,显著降低了造成拥塞的机会。以所请求的应用传输数据速率发送一列目标数据分组。在特定延迟阈值内接收到的目标数据分组数目与在延迟阈值内接收到的诊断数据分组数目相比较。

Description

基于端对端测量对网络上数据流准入的控制
(1)技术领域
本发明一般涉及网络通信技术,尤其涉及用于控制数据流到网络上的准入的机制。
(2)背景技术
通过允许一台计算机或设备(这里都称为“计算系统”)在网络上用电子数据与另一计算系统进行通信,计算机网络提高了传递和访问信息的能力。当在计算系统间传递电子数据时,电子消息通常会通过对电子数据执行操作的协议栈。开放式系统互连(“OSI”)模型是用于实现协议栈的网络框架的示例。
OSI模型把用于传递电子数据的操作分成7个不同的“层”,每层都用于在数据传输进程中执行特定的操作。虽然协议栈可能实现每一层,然而许多协议栈仅仅实现用于在网络间传递电子数据的选择性的层。当从计算系统发出电子数据时,电子数据从应用层始发,并且被向下传递到中间的较低层,然后转递到网络上。当从网络接收到电子数据时,电子数据进入物理层并且被向上传递至较高的中间层,然后最终在应用层处被接收。
最上层应用层负责支持应用程序和终端用户进程。大多数协议栈所结合的中间层是传输层,传输层的最小功能是把应用数据多路复用到传输层分段内用于传递至较低层,并且用于把传输层分段多路分解成应用数据用于传递至应用程序。用户数据表协议(“UDP”)是在传输层处实现的协议示例,传输层稍微多用于多路复用/多路分解数据,用于应用程序和网络间的兼容传输。传输层处实现的另一公共协议是传输控制协议(“TCP”),它是一面向连接的协议,也能向应用层提供端对端的差错恢复、重新排序和流程控制的特性。
即使在适当配置的网络上,由于不利的网络条件也会随时发生网络数据丢失,不利网络条件比如:硬件组件故障、软件差错、链路噪声或干扰、网络拥塞等等。在许多情况下,不利网络条件的出现对希望在网络上发送电子数据的用户来说会是未知的。而且,即使用户知道了不利网络条件,纠正这些不利条件通常也不在用户的控制范围。因此,当在网络上传输电子数据时总是可能存在数据丢失。幸运的是,TCP的特性可以补偿并纠正从许多不利网络条件产生的数据丢失。因而,当期望可靠的数据传输时,TCP是极端有用的,比如当传输带有文本和图形的Web页面时。
然而,为了实现TCP的特性,必须为每个TCP连接维持某些状态信息,比如:接收和发送缓冲区、拥塞控制参数以及顺序和应答数参数。状态信息的维护消耗计算系统资源(如系统内存),使这些资源对于也可能使用这些资源的用户处理不可用。因此,当可靠的数据传输并不关键时,应用程序在网络上发送电子数据时可以使用UDP来保存计算系统资源。
UDP尤其适用于在计算系统间把音频和视频数据(下文中成为“A/V数据”)作为稳定且连续的流(通常被成为“流化”)而进行传输。由于A/V数据的输出一般包括刷新前面接收到的A/V数据,因此从A/V数据流中丢失某些A/V数据(比如许多网络中的固有数据丢失)并不关键。例如,当未接收到视频帧的视频数据时,显示屏会显示瞬间闪烁,但在接收到更新后的视频数据时被刷新。因而,UDP经常用于在本地网络(Home Network)、局域网和广域网中的计算系统间传输A/V数据流。
不幸的是,UDP没有用于拥塞控制的内建机制。因此,利用UDP来发送A/V数据流的计算系统一般不能检测出A/V数据流的传输何时由于网络拥塞而降级。同样,使用UDP来发送A/V数据流的计算系统一般不能检测出A/V数据流何时造成使其他A/V数据流降级的网络拥塞。因此,可能把一个A/V数据流发送到具有其他现有A/V数据流的网络上,从而使所有A/V数据流的质量降级。
例如,当10兆比特每秒(“Mbps”)的以太网集线器正在支持现有的6Mbps高清晰电视数据流、并且开始另一个6Mbps的高清晰电视数据流时,两个数据流都会遭受高延迟、抖动和分组丢失。而且,由于UDP的传输速度仅受应用程序产生数据以及资源性能(CPU、时钟速率等)的限制,因此使许多A/V数据流在任何给定时间以高数据传输速率发送数据是不寻常的。虽然TCP具有拥塞控制机制,但是TCP拥塞控制机制并不很好地适用于实时应用,比如发送A/V数据流的那些应用。当发送计算系统和接收机计算系统间的一个或多个数据链路变得过度拥塞时,TCP拥塞控制机制降低了数据传输速率。然而,数据传输速率的降低会使实时应用显著降级,这会容忍某些分组丢失,但要求最小的数据传输速率。
此外,当网络变得拥塞时,一个A/V数据流可以获得不成比例的带宽量(通常被称为“以太网俘获效应”)。因此,较新的A/V数据流可能从现有的A/V数据流“接管”带宽。这会使现有A/V数据流的现有用户不满意。较新A/V数据流的始发用户可能还没有积极地希望使现有A/V数据流降级。然而,始发用户无法确定网络是否会在开始较新的A/V流之前支持两个A/V流。
而且,网络管理员没有任何机制能限制A/V数据流或者限制A/V数据流所消耗的网络带宽量。许多网络固有地给A/V数据流比其他数据类型更高的优先级,这是由于一般不能恢复从A/V数据流丢失的数据。因此,当网络链路上发生拥塞时,A/V数据流可以得到由于较高的优先级而产生的带宽。拥塞期间给A/V数据流的带宽会降低对其他非流化数据可用的带宽,引起非流化数据传输的降级。例如,当没有足够的带宽容量来适当地发送A/V数据流和Web页面两者时,A/V数据流的传输会延迟、或甚至阻止Web页面的传输。
因此,用于控制到网络上的数据流传输的系统、方法和计算机程序产品会是有利的。
(3)发明内容
本发明的原理克服了现有技术的上述问题,本发明解决了用于控制到网络上的数据流输入的方法、系统和计算机程序产品。发送计算系统是可以通过具有一条或多条数据链路的网络数据路径连接到接收计算系统的网络,所述一条或多条数据链路包括至少一条发送端数据链路和一条接收端数据链路。发送计算系统从一应用程序接收所请求的应用数据传输速率,所述应用程序请求把应用数据流从发送计算系统传递至接收计算系统。
发送计算系统被动地检测发送端数据负载。发送端数据负载是从可接受的发送端数据链路容量中减去的,例如10兆比特每秒(“Mbps”),以计算可用的发送端带宽。当可用的发送端带宽大于所请求的应用数据传输速率时,可用的发送端带宽被视为足以接收应用数据流。根据网络配置,发送端计算机系统还向接收端计算机系统发送指令以计算可用的接收端带宽。当可用的接收端带宽大于所请求的应用数据传输速率时,可用的接收端带宽被视为足以接收应用数据流。根据需要响应于可用的发送端带宽,可用的接收端带宽是足够的,发送端计算机系统启动更主动的测试。
发送端计算机系统向接收计算机系统发出第一分组对数据分组,随后发出第二分组对数据分组,两者都是通过网络数据路径。接收计算机系统在第一接收时间接收第一分组对数据,在第二接收时间接收第二分组对数据分组。至少根据第一接收时间和第二接收时间内的差异来估计网络数据路径的瓶颈带宽。当瓶颈带宽大于所请求的应用数据传输速率时,可用的网络数据路径被视为足以接收应用数据流。响应于可用网络数据路径带宽是足够的,发送计算机系统启动更主动的测试。
发送计算机系统标识参数,用于配置数据分组列以所请求的应用数据传输速率来模拟发出应用数据流。发送计算机系统按照所标识的参数临时地发出数据分组列以模拟应用数据流的发送。接收计算机系统至少接收分组列中的某些数据分组。接收计算机系统计算的是,数据分组列未造成网络数据路径转变为拥塞状态。
在某些实施例中,发送计算机系统最初以所估计瓶颈带宽的指定小部分(如一百分之一)把一列诊断数据分组发送到网络数据路径上。所估计瓶颈带宽的指定小部分请求一诊断数据传输速率,该速率大大降低了在网络数据路径上引起拥塞的似然性。接收计算机系统至少接收某些诊断数据分组。从接收到的诊断数据分组中,接收计算机系统标识了延迟的诊断数据分组(如,那些在指定时间阈值后接收到的诊断数据分组)的数目。
然后,发送计算机系统临时以所请求的应用数据传输速率把一列目标数据分组发送到网络数据路径上。临时发送该列目标数据分组以模拟应用数据流的传输,其方式是大大降低了在网络数据路径上引起拥塞的似然性。接收计算机系统至少接收某些目标数据分组。从接收到的目标数据分组中,接收计算机系统标识延迟的目标数据分组(如,那些在指定时间阈值后接收到的目标数据分组)的数目。
接收计算机系统把延迟的目标数据分组数目与延迟的诊断数据分组数目相比较。当延迟的目标分组数目在延迟的诊断数据分组数目的指定延迟分组阈值内时,确定该应用数据流不会造成网络数据路径上的拥塞。接收计算机系统把比较结果发送至发送计算机系统。因而,发送计算机系统把应用数据流发送到网络数据路径上。
下面的描述中将提出本发明的附加特性和优点,部分特性和优点将从描述中明显可见,或者可以通过实践本发明而得知。本发明的特性和优点可以通过在所附权利要求中特别指出的指令和组合来实现和获得。从下面的描述和所附权利要求中,本发明的这些及其他特性将变得更为明显,或者可以通过下面提出的本发明的实践而得知。
(4)附图说明
为了描述可以获得本发明的上述及其他优点和特性的方式,下面将参照特定实施例给出对上面简述的发明更具体的描述,实施例是在附图中说明了。这些附图仅仅是发明的典型实施例,因此不应被视为限制其范围,本发明可以通过使用附图来更具体地描述和说明,附图中:
图1说明了按照本发明原理的适当工作环境。
图2说明了便于控制到网络上的数据流准入的网络结构示例。
图3A和3B说明了用于估计发送计算机系统可以向接收计算机系统传递应用数据流而不使网络数据路径拥塞的方法的示例流程图。
图4说明了用于根据所标识的队列延迟来估计网络数据路径拥塞的似然性的方法示例流程图。
图5说明了在10兆比特每秒的以太网链路上队列延迟相对所提供负载的示例图。
图6A说明了接收到的数据分组百分比相对与接收延迟阈值的偏差的示例图,指出数据流会使被探测网络数据路径拥塞的降低的似然性。
图6B说明了接收到的数据分组百分比相对与接收延迟阈值的偏差的示例图,指出数据流会使被探测网络数据路径拥塞的增加的似然性。
(5)具体实施方式
本发明的原理提供了到网络上的数据流准入的控制。一系列测试中的适当判决控制了数据流到网络数据路径上的准入,所述一系列测试从较被动的测试转变为较主动的测试。较被动的测试包括在网络数据路径的发送端数据链路处的杂乱模态测量,根据需要也可以在网络数据路径的接收端数据链路处。当发送端数据链路和/或接收端数据链路没有足够的可用带宽来支持应用数据流时,测试停止,且应用数据流不被发送到网络上。相反,当发送到数据链路和接收端数据链路没有足够的可用带宽来支持应用数据流时,执行较主动的测试,例如分组对测试和/或主动网络探测。
适当时,执行分组对测试来计算网络数据路径的瓶颈带宽。当瓶颈带宽不足以支持应用数据流时,测试停止,且应用数据流不被发送到网络上。另一方面当瓶颈带宽足以支持应用数据流时,执行较主动的测试,例如主动网络探测。
适当时,主动地探测网络数据路径(如通过发送数据分组列)来标识应用数据流在网络数据路径上造成拥塞的似然性,如果应用数据流曾被发送到网络数据路径上。当标识出造成拥塞的增加的似然性时,不把应用数据流传递到网络数据路径上。另一方面当标识出造成拥塞的降低的似然性时,可以把应用数据流传递到网络数据路径上。
本发明范围内的实施例包括计算机可读媒介,所述计算机可读媒介上传递或者在其上存储计算机可执行指令或数据结构。这种计算机可读媒介可以是任何可用的媒介,它可由通用或专用计算机系统来访问。例如但非限制,这种计算机可读媒介可以包括像RAM、ROM、EPROM、CD-ROM这样的物理存储媒介,或其他光盘存储器、磁盘存储器或其他磁性存储设备,或者可用于传递或存储期望的程序代码装置的任何其他媒介,所述期望程序代码装置的形式为:计算机可执行指令、计算机可读指令或数据结果,它们可由通用或专用计算机系统所访问。
在该描述和所附权利要求中,“网络”被定义为允许在计算机系统和/或模块间传输电子数据的一条或多条数据链路。当在网络或另一通信连接(或硬线、或是硬线或无线的组合)上向计算机系统传递或提供信息时,连接被适当地视为计算机可读媒介。这样,任何这样的连接都被适当地称为计算机可读媒介。上述的组合也应被包括在计算机可读媒介的范围内。计算机可读指令包括例如:使通用计算机系统或专用计算机系统执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如像汇编语言这样的二进制、中间格式,或甚至是源代码。
在该描述和所附权利要求中,“计算机系统”被定义为一个或多个软件模块、一个或多个硬件模块、或者它们的组合,它们一起工作以执行对电子数据的操作。例如,计算机系统的定义包括个人电脑的硬件组件、以及软件模块、以及个人电脑的操作系统。模块的物理布局并不重要。计算机系统可以包括通过网络耦合的一个或多个计算机。同样,计算机系统可以包括单个物理设备(比如移动电话或个人数字助理“PDA”),其中内部模块(比如存储器和处理器)工作在一起以执行对电子数据的操作。
在该描述和所附权利要求中,“数据流”被定义为在稳定和连续的流内被传输的数据,以使部分被传输的数据可以在它们被接收时被输出(即使在数据流完成前被接收)。数据流可以是音频和/或视频数据流(如音频/视频“A/V”数据流),它从发送计算机系统被传递,用于在接收计算机系统处输出。数据流可以是实况数据流,比如实况无线电或电视广播数据的数据流。同样,当把发送计算机系统处存储的文件传递至接收计算机系统时会产生数据流,比如当选择存储的运动图像专家组(“MPEG”)文件时产生的数据流。在输出数据后,包括在数据流内的数据可以被保存在接收计算机系统处,或者不被保存。数据流可以用多种协议或协议的组合来传输,比如用户数据报协议(“UDP”)、实时传输协议(“RTP”)以及实时流化协议(“RTSP”)。
在该描述和所附权利要求中,“数据传输速率”被定义为数据被传输到(或被传递到)网络上、通过数据链路、或从数据链路被接收的速度。数据传输速率可以以多种不同的单位被测量,例如兆比特每秒(“Mbps”)或兆字节每秒(“MBps”)例如,应用模块202可以以2Mbps的数据传输速率把音频数据流(经过数据链路272和271)发送到计算机系统221。在把数据流发送到数据链路上之前,应用模块可以指出数据流到网络探测模块的所估计的峰值数据传输速率。
在该描述和所附权利要求中,“数据集线器”被定义为一计算机系统,它作为其他计算机系统的公共连接点(或有线或无线)而工作,并且通过把接收到的数据分组发出集线器的所有端口而在相连的计算机系统间传输电子数据。也就是,当在数据集线器的一个端口处接收端数据分组时,数据集线器就把该分组复制到数据集线器的所有其他端口。结果,从与数据集线器相连的一条数据链路接收到的数据分组随后被传递至与数据集线器相连的所有其他数据链路。例如,通过数据链路271在数据集线器250处接收到的数据分组会随后被发送到数据链路271、272、273和277。
在该描述和所附权利要求中,“数据转换器”被定义为一计算机系统,它作为其他计算机系统的公共连接点(或有线或无线)而工作,并且通过从对应于数据分组内包括的目标地址的端口中发出接收到的数据分组而在相连的计算机系统间传输电子数据。也就是,当在数据转换器的一个端口处接收到的数据分组时,数据转换器就读取该数据分组的目标地址(如因特网协议(“IP”)),并把该数据分组发送到对应于目标地址的端口。结果,从一条数据链路接收到的数据分组随后被传递到与目标地址相关的目标计算机系统较近的数据链路。
与目标计算机系统较近的数据链路可以是连接到目标计算机系统的数据链路。例如,数据转换器255可以接收一数据分组,该数据分组具有对应于计算机系统251的目标地址。因而,数据转换器255可以把该数据分组发送到数据链路279上。另一方面与目标计算机系统较近的数据链路可以是发送计算机系统和目标计算机系统之间的中间数据链路。例如,计算机系统211可以向与计算机系统241相关的目标地址发送一数据分组。因而,数据集线器250把该数据分组重复到数据链路277(以及数据链路271、272和273)上。数据转换器255可以从数据链路277接收数据分组,并且读取数据分组的目标地址。因而,数据转换器255可以向数据链路278发送数据分组(在数据转换器260可以从数据链路278接收数据分组并把数据分组发送到数据链路276之后)。
本领域的技术人员会理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实现,包括:个人电脑、膝上型电脑、手提设备、多处理器系统、基于微处理器的或可编程的用户电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机等等。本发明还可以在分布式系统环境中实现,其中通过网络相连的(或通过硬线数据链路、无线数据链路、或通过硬线和无线数据链路的组合)本地和远程计算机都执行任务。在分布式系统环境中,程序模块可以位于本地和远程地存储设备中。
图1和下列讨论视图提供对其中可实现本发明的适当计算环境的简要、通用的描述。尽管不需要,然而本发明会以计算机可执行指令的一般上下文来描述,比如被计算机系统执行的程序模块。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。计算机可执行指令、相关数据结构和程序模块代表用于执行这里公开方法行为的程序代码装置。
参照图1,用于实现本发明的示例性系统包括形式为计算机120的通用计算设备,包括:处理单元121、系统存储器122、及把包括系统存储器122在内的各种系统组件耦合至处理单元121的系统总线123。处理单元121可以执行为实现计算机系统120的特征而被设计的计算机可执行指令,所述特征包括本发明的特征。系统总线123可能是多种类型总线结构的任一种,包括存储器总线或存储控制器、外围设备总线、及使用任一多种总线结构的本地总线。系统存储器包括只读存储器(“ROM”)124和随机存取存储器(“RAM”)125。基本输入/输出系统(“BIOS”)126可以被存储在ROM 124内,该系统126包含帮助在计算机系统120内的元件间传递信息的基本例程。
计算机系统120还可以包括:磁性硬盘驱动器127,用于在磁性硬盘139间读写;磁盘驱动器128,用于在可移动磁盘129间读写;以及光盘驱动器130,用于在可移动光盘131间读写,可移动光盘131如CD-ROM或其他光学媒介。磁性硬盘驱动器127、磁盘驱动器128和光盘驱动器130分别通过硬盘驱动器接口132、磁盘驱动器接口133和光盘驱动器接口134与系统总线123相连。驱动器及其相关的计算机可读媒介为计算机系统120的计算机可执行指令、数据结构、程序模块以及其他数据提供非易失性的存储。尽管这里所述的示例环境采用了磁性硬盘139、可移动磁盘129和可移动光盘131,然而也可以使用其他类型的计算机可读媒介来存储数据,包括磁带、闪存卡、数字化视频光盘、贝努力(Bernoulli)盒带、RAM、ROM等等。
程序代码装置包括可被存储在硬盘139、磁盘129、光盘131、ROM 124或RAM125上的一个或多个程序模块,包括操作系统135、一个或多个应用程序136、其他程序模块137和程序数据138。用户可以通过键盘140、指示设备142或其他输入设备(未示出)把指令或信息输入到计算机系统120中,其他输入设备如:麦克风、游戏杆、扫描仪等等。这些及其他输入设备可以通过与系统总线123耦合的输入/输出接口146而连接到处理单元121。输入/输出接口146逻辑地表示多种不同接口的任一种,比如串行端口接口、PS/2接口、并行端口接口、通用串行总线(“USB”)接口、或者电气和电子工程师协会(“IEEE”)1394接口(即FireWire接口)、或者甚至可以逻辑地表示不同接口的组合。
监视器147或其他显示设备也通过视频接口148连接到系统总线123。扬声器169或其他音频输出设备也通过音频接口149连接到系统总线123。其他外部输出设备(未示出),比如打印机,也可以连接到计算机系统120。
计算机系统120可连接到网络,比如办公室或企业计算机网络、本地网络、内联网和/或因特网。计算机系统120可以在这种网络上与外部源交换数据,比如远程计算机系统、远程应用程序和/或远程数据库。
计算机系统120包括网络接口153,计算机系统120通过该接口从外部源接收数据以及/或者把数据发送到外部源。如图1所示,网络接口153便于通过数据链路151与远程计算机系统的数据交换。网络接口153可以逻辑地表示一个或多个软件和/或硬件模块,比如网络接口和相应的网络驱动器接口规范(“NDIS”)栈。数据链路151表示网络的一部分(如以太网分段),远程计算机183表示网络的一个节点。例如,远程计算机183可以是向计算机系统120发送数据流的发送计算机系统。另一方面远程计算机系统183可以是接收从计算机系统120发出的数据流的接收计算机系统。
同样,计算机系统120包括输入/输出接口146,计算机系统120通过该接口从外部源接收数据以及/或者向外部源发送数据。输入/输出接口146通过数据链路159耦合到调制解调器154(如标准调制解调器、电缆调制解调器或数字用户线(“DSL”)调制解调器),计算机系统120通过数据链路159从外部源接收时间以及/或者向外部源发送数据。如图1所示,输入/输出接口146和调制解调器154便于通过数据链路152与远程计算机系统193交换数据。数据链路152表示网络的一部分,远程计算机系统193表示网络的一个节点。例如,远程计算机系统193可以是向计算机系统120发送数据流的发送计算机系统。另一方面远程计算机系统193可以是接收从计算机系统120发出的数据流的接收计算机系统。
尽管图1表示出本发明的适当工作环境,然而可以在能实现本发明的任何系统中采用本发明的原理,所述系统根据需要可作适当修改。图1所述的环境仅仅是说明性的,决不是表示其中可实现本发明原理的多种环境的一小部分。
按照本发明,应用模块、网络接口模块和探测模块以及相关的数据可以被存储在与计算机系统120相关的任一计算机可读媒介上,或从该媒介被访问,所述相关数据包括数据分组、传输参数和数据流。例如,这种模块的部分以及相关程序数据的部分可以被包括在操作系统135、应用程序136、程序模块137和/或程序数据138内,用于存储在系统存储器122中。
当如磁性硬盘139这样的大容量存储设备耦合到计算机系统120时,这些程序模块和相关的程序数据也可以被存储在大容量存储设备中。在网络化环境中,关于计算机系统120描述的程序模块或其部分可以被存储在远程存储设备中,比如与远程计算机系统183和/或远程计算机系统193相关的系统存储器和/或大容量存储设备。这种模块的执行可以在前述的分布式环境中执行。
图2说明了便于控制到网络上的数据流准入的网络结构200的示例。网络结构200内包括计算机系统201、211、221、231、241和251。计算机系统201、211和221分别通过相应的数据链路272、273和271连接到数据集线器250。计算机系统201、211和221包括相应的网络接口模块203、213和223,分别用于发送电子数据和接收电子数据。
数据集线器250通过数据链路277连接到数据转换器255。同样,计算机系统251通过数据链路279连接到数据转换器255。计算机系统251包括用于发送电子数据和接收电子数据的网络接口模块253。数据转换器255通过数据链路278连接到数据转换器260。计算机系统231和241分别通过相应的数据链路275和276连接到数据转换器260。计算机系统231和241包括相应的网络接口模块233和243,分别用于把电子数据发送到数据转换器260和从数据转换器260接收电子数据。
数据流(如UDP数据流)可以在网络结构200内的计算机系统间被传递,以及在网络结构200内的计算机系统和网络结构200外的计算机系统(未示出)之间被传递。网络结构200内的计算机系统可以由于一个计算机系统处的发送应用程序请求把数据流传输到另一计算机系统处的相应接收应用程序而传输数据流。例如,应用模块212可以请求把应用数据流传递到应用模块242。因而,网络接口模块213可以把一数据流发送到数据链路273上,所述数据流包含适当的应用数据并且具有对应于计算机系统241的目标地址(如IP地址)。网络接口模块243可以从数据链路276接收所发出的数据流,并且使所包含的应用数据被传递至应用242。
非流化数据也可以在网络接口200内的计算机系统间被传递,以及在网络结构200内的计算机系统和网络结构200外的计算机系统间被传递。例如,计算机系统251可以是以非流化方式把数据传递到其他计算机系统的服务器。当另一计算机系统请求存储在计算机系统251处的文件时,网络接口模块253可以通过发送数据分组而进行应答,所述数据分组包含所请求的文件并且具有请求计算机系统的目标地址。例如,应用模块222可以是请求存储在计算机系统251处存储的Web页面的Web浏览器。因而,计算机系统251可以通过把所请求的Web页面发送到数据链路279上用于传递至计算机系统221而进行应答。通过向计算机系统221发送包括Web页面的HTTP消息(如,作为一个或多个传输控制协议(“TCP”)分段),网络接口模块253可以便于所请求Web页面的传输。网络接口模块223可以从数据链路271接收该Web页面,并且把该Web页面传递至应用模块222。
因而,网络结构200内的数据链路会经受由于在数据链路间传递流化和非流化数据而产生的变化的数据负载。当数据被发送到数据链路上时,消耗了某部分数据链路的带宽,从而减少了数据链路的可用带宽。另一方面当从数据链路删除数据时(如在文件传输完成或数据流结束后),适当某部分数据链路的带宽,从而增加了数据链路的可用带宽。
图3A和3B说明了方法300的示例流程图,该方法300用于估计发送计算机系统可以把应用数据流传递至结束计算机系统而不使网络数据路径拥塞。方法300会参照网络结构200内所述的计算机系统来描述。
方法300包括接收所请求的应用数据传输速率的行为(行为301)。行为301包括从一应用接收所请求的应用数据传输速率,所述应用请求把应用数据流从发送计算机系统传递至接收计算机系统。例如,探测模块204可以接收应用数据流的应用数据传输速率,使得应用模块202正在请求从计算机系统201被传递至计算机系统221或计算机系统231。所请求的应用数据传输速率可以是在数据流传输期间所使用的峰值数据传输速率。
方法300包括用于执行杂乱模态测量的功能性面向结果的步骤(步骤312)。步骤312可以包括用于实现执行杂乱模态测量的结果的任何相应行为。然而,在所述的图3示例中,步骤312包括被动地检测发送端数据负载的相应行为(行为302)。行为302可以包括被动地检测发送端数据链路上的发送端数据负载。
发送端计算机系统可以是要发送数据流的发送计算机系统。例如,响应于从应用模块202接收所请求的应用数据速率,探测模块204可以配置网络接口模块203来接收通过数据链路272传输的所有数据分组。至少根据接收数据分组的频率以及所接收数据分组的大小,探测模块204可以估计数据链路272上的数据负载。由于计算机系统201连接到数据集线器250,因此从数据链路271、272、273和277上发送的所有数据分组中计算出数据链路272上的数据负载。例如,计算机系统211可以以3Mbps向计算机系统211传输第一数据流,并且以2Mbps向数据转换器传输第二数据流(如用于传递至计算机系统231)。因而,数据链路272上的数据负载至少会是5Mbps。
或者,发送端计算机系统可以是与发送计算机系统一起连到公共数据集线器的计算机系统。例如,当计算机系统201(发送计算机系统)要通过数据路径291向计算机系统231发送一数据流时,探测模块204可以向探测模块224发送一指令,以被动地检测发送端数据负载。因而,探测模块224可以配置网络接口模块223来接收通过数据链路271传输的所有数据分组。由于数据集线器250从所有连接的数据链路向所有其他连接的数据链路(数据链路271、272、273和277)发送数据分组,因此数据链路271上的数据负载会类似于数据链路272上的数据负载。
数据负载的被动检测可以发生,而无须把任何数据分组发送到数据链路上。例如,探测模块240可以检测数据链路272上的数据负载,而不把任何数据分组发送到数据链路272上。因而,大大减少了数据链路272上数据负载的被动检测会使通过数据集线器250传递的其他数据降级的机会。
步骤312还包括计算发送端数据链路上的可用带宽容量为足够的相应行为(行为303)。行为303可以包括:根据所检测的发送端数据负载计算发送端数据链路上的可用带宽容量足以以所请求的应用数据传输速率接收数据流。数据链路的可用带宽容量可以按照公式1计算:
Available_Link_Bandwidth=[(Acceptable_Loading)·(Link_Capacity)]-Data_Link_Load
公式1
Acceptable_Loading是可以按照网络管理员或用户的希望而选择的值,用于表示数据流会消耗的可用带宽百分比。当希望允许数据流的降低的可用带宽时,可以降低Acceptable_Loading值。例如,当希望为数据流使用30%的数据链路容量时,可以选择值为“.3”的Acceptable_Loading。另一方面当希望允许数据流增加的可用带宽时,可以增加Acceptable_Loading值。例如,当希望为数据流使用90%的数据链路容量时,可以把Acceptable_Loading值设为“.9”。当希望为数据流利用数据链路的全部容量时,可以把Acceptable_Loading值设为“1”。可以选择Acceptable_Loading值为数据流使用尽可能多的数据链路容量,而不使数据链路变得拥塞。另一方面可以选择Acceptable_Loading值来保存某些数量的可用带宽,用于非流化数据的传输。
Link_Capacity是表示数据链路(如数据链路272)的额定数据容量(如单位为Mbps)的值。Link_Capacity可以根据用于实现数据链路的技术而改变,比如,以太网(IEEE 802.3标准)或无线(IEEE 802.11标准)。而且,特定技术的实现会有不同的额定数据容量。以太网数据链路会有10Mbps、100Mbps或1000Mbps(千兆比特)的额定数据容量。类似地,IEEE 802.11数据链路会有11Mbps、5.5Mbps、2Mbps或1Mbps的额定数据容量。然而应该理解,本发明不限于所述的网络技术和额定数据容量。对于本领域技术人员显而易见的是,在审阅了本说明后,除了所述的那些以外,在实践本发明时可以使用多种网络技术和额定数据容量。
Data_Link_Load是表示数据链路上的数据负载的值,例如发送(或接收)端数据链路上被动检测到的发送(接收)端数据负载。
公式1的值可以按照公式1的算术运算被组合以计算Available_Link_Bandwidth值。也就是,从Acceptable_Loading值与Link_Capacity值的乘积中减去Data_Link_Load值。例如,数据链路272可以有10Mbps的Link_Capacity以及2Mbps的Data_Link_Load值。而且,网络结构200的网络管理员或用户也许已经为数据链路272选择Acceptable_Loading值“7”。因此在该例中,数据链路272的Available_Link_Bandwidth值会等于[(.7)·(10Mbps)]-2Mbps,即5Mbps。
当为发送端数据链路计算的Available_Link_Bandwidth值小于所请求的应用数据传输速率时,发送端数据链路被视为没有足够的可用带宽容量支持所请求的应用数据速率下的应用数据流。参照刚才的例子,数据链路272不会被视为具有足够的可用带宽以任何大于5Mbps的数据速率来接收应用数据流。允许数据以大于数据链路链路容量的总数据传输速率(即数据链路上所有数据负载的总和)被传输通过数据链路大大增加了在数据链路上造成拥塞的似然性。因而,当数据链路没有足够的可用带宽容量来支持所请求的应用数据速率时,应用数据流不被发送到数据链路上并且会终止测试。作为有利的结果,防止会增加拥塞数据链路似然性的数据流被发送到数据链路上。
另一方面当为发送端数据链路计算的Available_Link_Bandwidth值大于(或等于)所请求的应用数据传输速率时,发送端数据链路被视为具有足够的可用带宽容量来支持所请求的应用数据速率下的应用数据流。参照刚才的例子,数据链路272会被视为具有足够的可用带宽来支持小于或等于5Mbps的任何应用数据速率下的应用数据流。允许数据以小于或等于数据链路链路容量的总数据传输速率被传输通过数据链路大大降低了在数据链路上造成拥塞的似然性。因而,当数据链路可以支持所请求的应用数据速率时,可以执行较主动的测试,比如分组对测试和/或主动网络探测,来更准确地确定应用数据流在网络数据路径上造成拥塞的似然性。
根据网络配置,发送端计算机系统还可以向接收端计算机系统发送指令,以被动地检测接收端数据负载(行为304)。发送端数据链路(如数据链路272)和接收端数据链路(如数据链路271)连接到相同的数据集线器(如数据集线器250)并且具有相同的Link_Capacity和Acceptable_Loading值。因而,为发送端数据链路和接收端数据链路两者计算Available_Local_Bandwidth会被视为是冗余的。因此在这些网络配置中,发送计算机系统不会向接收端计算机系统发送指令。例如,当应用模块202请求把数据流发送到应用模块222时,探测模块204不会向探测模块224发送指令。
另一方面发送端数据链路(如数据链路272)和接收端数据链路(如数据链路271)处在由转换器分开的网络数据路径(如数据路径291)的端点处并且/或者具有不同的Link_Capacity和/或具有不同的Acceptable_Loading值。因而,为发送端数据链路和接收端数据链路两者计算Available_Local_Bandwidth不会被视为是冗余的。因此在这些网络配置中,发送计算机系统可以向接收端计算机系统发送指令。例如,当应用模块202请求把数据流发送到应用模块232时,探测模块204可以向探测模块234发送指令。
适当时,方法300包括使接收计算机系统参与杂乱模态测量的功能性面向结果的步骤(步骤324)。步骤324可以包括实现参与杂乱模态测量的结果的任何相应行为。然而,在图3所述的示例中,步骤324包括接收端计算机系统被动地检测接收端数据负载的相应行为(行为314)。行为314可以包括被动地检测接收端数据链路上的接收端数据负载。接收端计算机系统可以是要接收数据流的接收计算机系统。例如,当计算机系统231要通过数据路径291从计算机系统201接收数据流时,探测模块232可以配置网络接口模块233来接收通过数据链路275传输的所有数据分组。
或者,接收端计算机系统可以是与接收计算机系统一起连到公共数据集线器的计算机系统。例如,当计算机系统231(发送计算机系统)要通过数据路径291向计算机系统201(接收计算机系统)发送数据流时,探测模块234可以向探测模块224发送一指令来被动地检测接收端数据负载。因而,探测模块224可以配置网络接口模块223来接收通过数据链路271传输的所有数据分组。由于数据集线器250把数据分组从所有相连的数据链路复制到所有其他相连的链路(数据链路271、272、273和277),因此271上的数据负载会类似于数据链路272上的数据负载。
步骤324包括计算可用的接收端带宽容量的相应行为(行为315)。行为315可以包括接收端计算机系统根据所检测的接收端数据负载来计算接收端数据链路上可用的带宽容量。接收端计算机系统可以按照公式1来计算接收端数据负载。方法300包括向发送计算机系统指出可用的接收端带宽容量的行为(行为316)。行为316可以包括接收端计算机系统向发送计算机系统指出接收端数据链路的可用带宽。例如,当计算机系统231要从计算机系统201接收数据流时,计算机系统231可以向计算机系统201指出数据链路275的可用带宽容量。
方法300包括发送端计算机系统接收一指示的行为,该指示指明接收端数据链路上的可用带宽容量是足够的(行为305)。行为305可以包括从接收端计算机系统接收对接收端数据链路上的可用带宽容量的指示。当为接收端数据链路计算的Available_Link_Bandwidth值(如按照公式1)小于所请求的应用数据传输速率时,接收端数据链路被视为没有足够的可用带宽容量指示所请求应用数据速率下的应用数据流。因而,适当时,不发送应用数据流并且终止测试。另一方面当为接收端数据链路计算的Available_Link_Bandwidth值大于(或等于)所请求的应用数据传输速率时,接收端数据链路被视为有足够的可用带宽容量指示所请求应用数据速率下的应用数据流。因而,适当时,执行较主动的测试,比如分组对测试和/或主动网络探测,以更准确地确定在网络数据路径上造成拥塞的应用数据流的似然性。
方法300包括用于启动分组对测试的功能性面向结果的步骤(步骤313)。步骤313可以包括用于实现启动分组对测试的结果的任何相应的行为。然而,在图3所述的示例中,步骤313包括发送第一分组对数据分组的相应行为(行为306)。行为306可以包括:发送端计算机系统把第一分组对数据分组发送到网络数据路径上,用于传递至接收端计算机系统。例如,计算机系统201启动与计算机系统231的分组对测试。因而,计算机系统201可以把第一分组对数据分组发送到数据路径291上,用于传递至计算机系统231。
步骤313还包括随后发送第二分组对数据分组的相应行为(行为307)。行为307可以包括:发送端计算机系统把相应的第二分组对数据分组发送到网络数据路径上,用于传递至接收端计算机系统。第二分组对数据分组与第一分组对数据分组的大小类似,或甚至大小相同。传输时间间隔(如异步发送指令之间的时间间隔)会分开第一分组对数据分组和第二分组对数据分组的传输。传输时间间隔的值可以足够小,以便大大增加分组对数据分组在网络数据路径的瓶颈处排队的似然性。
或者,可以从中间发送计算机系统发出分组对数据分组。例如,发送端杂乱模态测量的结果可以指示,发送端数据链路具有足够的可用带宽容量来支持应用数据流。这样,经过发送端数据链路发送分组对数据分组可能是冗余的。例如,当指明数据链路272(并因此数据链路277)具有足够的可用容量带宽来支持应用数据流时,可以从数据转换器255发出分组对数据分组。
方法300包括使接收端计算机系统参与分组对测试的功能性面向结果的步骤(步骤325)。步骤325可以包括用于实现参与分组对测试的结果的相应行为。然而,在图3所述的示例中,步骤325包括接收第一分组对数据分组的相应行为(步骤317)。步骤317可以包括:接收端计算机系统在第一接收时间从网络数据路径接收第一分组对数据分组。步骤325还包括接收第二分组对数据分组的相应行为(行为318)。行为318可以包括:接收端计算机系统在第二接收时间从网络数据路径接收第二分组对数据分组。
或者,可以在中间接收计算机系统处接收分组对数据分组。例如,接收端杂乱模态测量的结果可以指出接收端数据链路具有足够的可用带宽来接收应用数据流。这样,经过接收端数据链路接收分组对数据分组会是冗余的。例如,当指出数据链路275具有足够的可用带宽来接收应用数据流时,可以在数据转换器260处接收分组对数据分组。
步骤325包括计算瓶颈链路的可用带宽容量的相应行为(行为319)。行为319可以包括至少根据第一接收时间和第二接收时间之间的差异,计算网络数据路径的瓶颈数据链路上可用的带宽容量。尽管方法300中所述的发生在接收端,然而接收端或中间接收计算机系统可以向发送端或中间发送计算机系统发送瓶颈数据(包括第一和第二接收时间),后者根据接收到的瓶颈数据来计算瓶颈带宽。
网络数据路径的瓶颈带宽可以通过公式2来估计:
Bottleneck_Bandwidth=Packet_Size/(Second_Recept_Time-First_Recept_Time)
公式2
Packet_Size是表示第一分组对数据分组和第二分组对数据分组的大小的值。当第一分组对数据分组和第二分组对数据分组大小不同时,该值可以表示第一分组对数据分组的大小和第二分组对数据分组大小的平均。First_Recept_Time是表示在接收端或中间接收计算机系统处接收到第一数据对数据分组的时间的值。类似地,Second_Recept_Time是表示在接收端或中间接收计算机系统处接收到第二数据对数据分组的时间的值。
公式2的值可以按照公式2的算术运算被组合以计算Bottleneck_Bandwidth值。也就是,Packet_size值被除以First_Recept_Time值与Second_Recept_Time值之差。例如,计算机系统231可以在09:56:05.234(First_Recept_Time值)通过数据路径291接收第一数据对分组数据,其Packet_Size值为32768比特(4096字节)。随后,计算机系统231可以在09:56:05.250(Second_Recept_Time值)通过数据路径291接收第二数据对分组数据,其Packet_Size值为32768比特。因此在该例中,所估计的Bottleneck_Bandwidth值会等于32768比特/(.250秒-.234秒),即约为2Mbps。
发送端或中间发送计算机系统在恒定大小的、背对背数据分组(每个分组都隔开恒定的分组对传输时间间隔)的分组对的列内包括第一和第二分组对数据分组,该分组对的列在网络数据路径上被发送到接收端或中间接收计算机系统。分组对列的传输可以用来实现多种不同分组对算法的任一种,比如仅有接收机的分组对(“ROPP”)算法、基于接收机的分组对(“RBPP”)算法、以及基于发送方的分组对(“SBPP”)算法,用于计算网络数据路径的瓶颈带宽。可以实现这些分组对算法(或任何其他分组对算法)的任一种来计算数据路径291的瓶颈带宽值。探测模块,比如探测模块204、224和/或234可以用适当的功能来配置,用于实现分组对算法。可以使用分组对滤波技术,比如直方图,来提高分组对算法的准确性。
在某些实施例中,中间发送计算机系统向中间接收计算机系统发送至少第一和第二分组对数据分组。例如,杂乱模态测量的结果可以指出,发送端数据链路和接收端数据链路两者都有足够的可用带宽容量来支持应用数据流。这样,在这些数据链路上发送和接收分组对数据分组会是冗余的。例如,当指出数据链路271和数据链路276有足够的可用带宽容量来支持应用数据流时,分组对数据分组可以从数据转换器255被发送到数据转换器260。因而,数据转换器255或数据转换器260可以计算数据链路278的瓶颈带宽。
方法300包括向发送计算机系统支持可用的瓶颈带宽的行为(行为320)。行为320可以包括:接收端或中间接收计算机系统向发送端或中间发送计算机系统支持可用的瓶颈带宽容量。方法300包括接收一指示的行为,指明瓶颈数据链路上的可用带宽容量是足够的(行为308)。行为308可以包括:发送端或中间发送计算机系统接收一指示,指明瓶颈数据链路的可用的带宽容量足以支持所请求的应用数据传输速率下的数据流。
在某些实施例中,特定的瓶颈负载值(如.2,.7等)限制了数据流可以消耗的瓶颈带宽容量。可以按照网络管理员或用户的需求来选择特定的瓶颈负载值。当希望允许数据流减少的瓶颈带宽时,可以降低特定的瓶颈负载值。例如,为了允许数据流的20%的网络数据路径的瓶颈带宽,Bottleneck_Bandwidth值可以与特定的瓶颈负载值“.2”相乘以计算Available_Bottleneck_Bandwidth值。
另一方面当希望允许数据流的增加的瓶颈带宽时,可以增加特定的瓶颈负载值。例如,为了允许数据流的70%的网络数据路径的瓶颈带宽,Bottleneck_Bandwidth值可以与特定的瓶颈负载值“.7”相乘以计算Available_Bottleneck_Bandwidth值。当希望允许数据流的全部网络数据瓶颈带宽时,可以把特定的瓶颈负载值设为“1”。可以选择特定的瓶颈负载值来使用尽可能多的瓶颈带宽,而不使网络数据路径变得拥塞。另一方面可以选择特定的瓶颈负载值来保存一定数量的瓶颈带宽,用于非流化数据的传输。
当所计算的Bottleneck_Bandwidth值(或者适当时所计算的Available_Bottleneck_Bandwidth值)小于所请求的应用数据传输速率时,网络数据路径被视为没有足够的可用带宽容量来支持所请求应用数据传输速率下的应用数据流。因而,应用数据流不被发送到网络数据路径上,并且终止测试。作为有利的结果,防止具有拥塞网络数据路径的增加的似然性的数据流被发送到网络数据路径上。
另一方面当为网络数据路径计算的Bottleneck_Bandwidth值(或者适当时所计算的Available_Bottleneck_Bandwidth值)大于(或等于)所请求的应用数据传输速率时,网络数据路径被视为有足够的可用带宽容量来支持所请求应用数据传输速率下的应用数据流。因而,可以执行较主动的测试,比如主动网络探测,以更准确地确定应用数据流在网络数据路径上造成拥塞的似然性。
方法300包括用于主动探测网络数据路径的功能性面向结果的步骤(步骤314)。步骤314可以包括用于实现主动探测网络数据路径的结果的任何相应行为。然而,在图3所述的示例中,步骤314包括标识传输参数来模拟应用数据流的相应行为(行为309)。行为309可以包括标识传输参数的发送计算机系统,用于配置数据分组的列,来模拟以所请求的应用数据传输速率发送应用数据流。
例如,发送计算机系统可以标识探测数据分组大小值、每列分组值、探测数据分组间隔值、以及探测列间隔值。探测数据分组大小值表示包括在探测数据分组列内的探测数据分组的大小(如,以比特或字节为单位)。例如,4096的探测数据分组大小值会表示探测数据分组列内包括的探测数据分组要具有4096比特或4096字节(32768比特)的大小。每列分组值表示要包括在一列探测数据分组内的探测数据分组的数目。例如,每列分组值10会表示在一列探测数据分组内要包括10个探测数据分组。探测数据分组间隔值表示一列探测数据分组内的连续探测数据分组传输间的时间间隔(如,以毫秒为单位)。例如,探测数据分组间隔值1会表示一列探测数据分组内的探测数据分组要每1毫秒被发送一次。
探测列间隔值表示一系列探测数据分组列的连续列之间的时间间隔(如,以毫秒为单位)。例如,探测列间隔值90会表示探测数据分组的连续列要每90毫秒被发送一次。把探测数据分组的连续列隔开一个探测列间隔值会潜在地降低数据集线器和数据转换器处的捕获效应(因为允许排队的数据分组在最少的探测列间隔时间被传递)。这降低了使其他数据(或是数据流或是非流化数据)降级的任何探测数据分组列被发送到网络数据路径上的似然性。
步骤314包括按照所标识的传输参数临时发出一列分组的相应行为(行为310)。行为310可以包括:发送计算机系统按照所标识的传输参数临时发出一列探测数据分组,以模拟应用数据流到网络数据路径上的传输。例如,探测模块204可以临时把一列探测数据分组发送到数据路径291上,以模拟以所请求的应用数据传输速率发送应用数据流。
方法300包括用于参与网络数据路径的主动探测的功能性面向结果的步骤(步骤326)。步骤326可以包括用于实现参与网络数据路径的主动探测的结果的任何相应行为。然而,在图3所述的示例中,步骤326包括从一列探测分组接收探测分组,模拟应用数据传输速率下的应用数据流的相应行为(行为321)。行为321可以包括:接收计算机系统至少接收发送计算机系统曾发送到网络数据路径上的一列探测数据分组内的某些探测数据分组,以模拟所请求应用数据传输速率下的应用数据流。例如,探测模块234可以从探测模块204发出的一列探测数据分组接收探测数据分组。
步骤326包括计算一列探测数据分组未造成网络数据路径拥塞的相应行为(行为322)。行为322可以包括:计算端计算机系统计算出该列探测数据分组未使网络数据链路的任一数据链路转变为拥塞状态。例如,探测模块234可以计算:从探测模块204接收到的一列探测分组未使数据路径291的任何数据链路(即数据链路272、277、278和275)转变为拥塞状态。
方法300包括向发送计算机系统支持该列探测分组未造成网络数据路径拥塞的行为(行为323)。行为323可以包括:接收端计算机系统向发送端计算机系统指示探测数据分组列未造成网络数据路径的任何数据链路转变为拥塞状态。例如,探测模块234可以向探测模块204指示,数据路径291上接收到的一列探测数据分组未使数据路径291拥塞。
方法300包括接收一指示的行为,该行为指明探测数据分组列未造成网络数据路径拥塞(行为311)。行为311可以包括:发送端计算机系统从接收端计算机系统接收一指示,指明了探测数据分组列未造成网络数据路径的任何数据链路转变成拥塞状态。例如,探测模块204可以从探测模块234接收一指示,指明探测数据分组列未使数据路径291拥塞。
在某些实施例中,通过比较与变化的数据传输速率下发送的数据分组列相关的排队延迟,确定了数据流使网络数据路径拥塞的似然性。图4说明了用于根据所标识的排队延迟估计拥塞似然性的方法400的示例流程图。图5说明了在10Mbps以太网链路上,排队延迟相对所提供的负载的示例图500。图6A说明了接收到的数据分组百分比相对与接收时间延迟阈值的偏差的示例图600,指明了数据流会造成被探测的网络数据路径转变为拥塞状态的减少的似然性。图6B说明了接收到的数据分组百分比相对与接收时间延迟阈值的偏差的示例图650,指明了数据流会造成被探测的网络数据路径转变为拥塞状态的增加的似然性。方法400会参照网络结构200以及图500、600和650中描述的计算机系统来进行描述。
在示例图500中,排队延迟在纵轴(“Y轴”)上表示,所提供的负载在横轴(“X轴”)上表示。图500说明了在特定的所提供的负载(如4Mbps)下,在链路容量为10Mbps的以太网链路上传播的数据分组会遭受特定的排队延迟(如小于2毫秒)。随着所提供负载的增加,排队延迟保持相对恒定,直到所提供的负载转变到拐点区域501内。然后在拐点区域501内的某些所提供的负载处,排队延迟开始显著增加。
例如,排队延迟在所提供的负载为7Mbps(排队延迟小于2毫秒)和9Mbps(排队延迟约为10毫秒)之间增加了不止5倍。因此图500说明了,即使当所提供的负载低于链路容量时也会发生增加的排队延迟。当增加了排队延迟时,数据分组在以太网链路上保持增加的时间段,可能使以太网链路转变为拥塞状态。因而,以太网链路不适用于数据流,即使所提供的负载低于链路容量。应该理解,尽管图5说明了10Mbps以太网链路上的排队延迟相对所提供的负载,然而随着所提供的负载增加,多种其他类型的数据链路,比如100Mbps以太网链路和IEEE 802.11链路,会遭受类似的排队延迟的增加。
参照图4,方法400包括发送一列诊断数据分组的行为(行为401)。行为401可以包括:发送计算机系统在瓶颈带宽值(如由分组对测试所估计的)的特定小部分(如百分之一)把一列诊断分组发送到网络数据路径上。例如,探测模块204可以在数据路径291的瓶颈带宽的一小部分(如一百分之一或五十分之一)把一列诊断数据分组发送到数据路径291上。瓶颈带宽的特定小部分表示了一个诊断数据速率,它显著地降低了使网络数据路径拥塞或者使网络数据路径上发送的数据降级的似然性。例如,在瓶颈带宽为5Mbps的网络数据路径上发送一列诊断数据分组时可以使用50千比特每秒(“Kbps”)的诊断数据速率。发送计算机系统可以在每个诊断数据分组内包括一个时标,指示发送该诊断数据分组的时间。
方法400包括至少接收某些诊断数据分组的行为(行为404)。行为404可以包括:接收计算机系统至少接收某些诊断数据分组,这些诊断数据分组包括在从发送计算机系统被发送到接收计算机系统的一列诊断数据分组内。例如,探测模块234可以接收从探测模块204发送的一列诊断数据分组内的至少某些诊断数据分组。
方法400包括从接收到的诊断数据分组中标识被延迟的诊断数据分组的数目的行为(行为405)。例如,探测模块可以从自探测模块204接收到的诊断数据分组中标识出被延迟的诊断数据分组。当为数据分组计算的排队延迟大于特定的接收时间延迟阈值时,数据分组被视为“被延迟的”。排队延迟可以按照公式3计算:
QDi=Transit_Time_For_Packeti-Minimum_Tran_Time_Over_All_Received_Packets
公式3
Transit_Time_For_Packeti是表示特定的接收到的数据分组的通过(即在电线上)时间的值。Transit_Time_For_Packeti等于接收到数据分组的时间减去发出数据分组的时间之差。当接收到数据分组时,RTime_Pack是可用于表示接收时间的值。发出数据分组的时间可以从数据分组内包括的时标来标识。当接收到来自一列数据分组的数据分组时,标识并适当地表示每个接收到的数据分组的发送时间和接收时间。为每个接收到的数据分组计算通过时间Transit_Time_For_Packet,Minimum_Tran_Time_Over_All_Received_Packets是表示所有计算的通过时间中最小通过时间的值。
公式3内的值可以按照公式3的算术运算被组合以计算QDi值,该值表示特定数据分组的排队延迟。减去Minimum_Tran_Time_Over_All_Received_Packets值使QDi值标准化,并且补偿了发送和接收端计算机系统处时钟值之差。因而,即使数据分组的通过时间由于时钟的不准确性而不准确或是否定的,仍然可以使用公式3。表1说明了八个数据分组的可能的发送和接收时间(作为小时:分钟:秒)的示例:
数据分组#    发送计算机处的发送时间    接收计算机处的接收时间    视在通过时间
1            12:10:01.004              12:10:06.057              00:05.053秒
2            12:10:01.006              12:10:06.059              00:05.053秒
3            12:10:01.008              12:10:06.060              00:05.052秒
4            12:10:01.010              12:10:06.063              00:05.053秒
5            12:10:01.012              12:10:06.068              00:05.056秒
6            12:10:01.014              12:10:06.068              00:05.054秒
7            12:10:01.016              12:10:06.070              00:05.054秒
8            12:10:01.018              12:10:06.073              00:05.055秒
表1
如表1所示,对于八个数据分组而言,数据分组3与Minimum_Tran_Time_Over_All_Received_Packets值5.052秒相关联。通过时间的列被标为“视在通过时间”,这是因为时钟不准确性使通过时间看上去与实际通过时间很不同。接收延迟阈值实际上可以是管理员或用户适当选择的任何阈值。在某些实施例中,接收延迟阈值等于发送时间间隔(如在异步发送之间)。表1中,发送时间间隔为2毫秒。
按照公式3,通过得到分组的视在通过时间减去5.052之差,可以计算每个数据分组的QDi。例如,分组7的QDi会是5.054秒-5.052秒,即2毫秒。分组7不会被视为被延迟的分组,因为2毫秒的QDi小于或等于2毫秒的发送时间间隔。相反,分组5的QDi会是4毫秒,并且会被视为被延迟的分组,因为4毫秒大于2毫秒。
方法400包括至少接收某些目标数据分组的行为(行为406)。行为406可以包括:接收计算机系统至少接收某些数据分组,这些数据分组被包括在从发送计算机系统被发送到接收计算机系统的目标数据分组列中。例如,探测模块234可以接收从探测模块204发送的一列目标数据分组中的至少某些目标数据分组。
方法400包括从接收到的目标数据分组中标识出被延迟的目标数据分组的行为(行为407)。例如,探测模块234可以从自探测模块204接收到的目标数据分组中标识出被延迟的目标数据分组。探测模块234可以按照公式3标识出被延迟的目标数据分组。
方法400包括把被延迟的目标数据分组数目与被延迟的诊断数据分组数目相比较的行为(行为408)。行为408可以包括:接收计算机系统把被延迟的目标数据分组数目与被延迟的诊断数据分组数目相比较以确定目标数据分组列是否在网络数据路径上造成拥塞。例如,探测模块234可以把从探测模块204发送的多个被延迟的目标数据分组与从探测模块204发送的多个被延迟的诊断数据分组相比较。
当被延迟的目标数据分组数目在被延迟的诊断数据分组数目的特定延迟分组阈值内时,应用数据流的传递会造成被探测网络数据路径转变为拥塞状态的似然性降低。延迟分组阈值可以是多个数据分组或是数据分组的百分比,并且可以变化以表示应用数据流使网络拥塞的较保守或较不保守的估计。
例如,当希望数据流不会造成网络拥塞的较保守的估计时,可以设定较小的延迟分组阈值,比如3%。因而,为了一列目标数据分组指示网络数据路径拥塞降低的似然性,在接收延迟阈值内接收到的目标数据分组数目只能比在接收延迟阈值内接收到的诊断数据分组数目少3%。另一方面当希望数据流不会造成网络拥塞的较不保守的估计时,可以设定较大的延迟分组阈值,比如12%。因而,为了一列目标数据分组指示网络数据路径拥塞降低的似然性,在接收延迟阈值内接收到的目标数据分组数目只能比在接收延迟阈值内接收到的诊断数据分组数目少12%。
参照图6A,示例图600说明了在被探测网络数据路径的延迟阈值601内接收到的目标数据分组和诊断数据分组的百分比。被延迟小于延迟阈值601的数据分组(诊断和目标两者)被视为具有可接受的延迟。另一方面被延迟大于接收时间阈值601的数据分组被视为具有不可接受的延迟。在示例图600中,接收到的分组的百分比表示在纵轴(“Y轴”)上,与接收延迟阈值601的时间差表示在横轴(“X轴”)上。示例图600说明了以下步骤的结果:主动地探测数据负载为4Mbps的网络数据路径(如数据路径291)以确定所估计的数据传输速率为2Mbps的数据流是否会使网络数据路径转变为拥塞状态。
诊断列的Y截距表示在接收延迟阈值601内接收到的诊断数据分组的百分比。如图所示,在可接受的延迟内接收到约百分之九十的诊断数据分组。目标列的Y截距表示在接收延迟阈值601内接收到的目标数据分组的百分比。如图所示,在可接受的延迟内接收到约百分之九十的目标数据分组。由于在可接受的延迟内接收到近似的目标数据分组和诊断数据分组的百分比,因此目标数据分组的百分比大概被视为在诊断数据分组百分比的延迟分组阈值内。因此,示例图600指明,应用数据传输速率为2Mbps的数据流大概不会使被探测的网络数据路径拥塞。因而,可以允许把2Mbps数据流发送到被探测的网络数据路径上。
当被延迟的目标数据分组数目不在被延迟的诊断数据分组数目的特定延迟分组阈值内时,应用数据流的传递使被探测的网络数据路径转变为拥塞状态的似然性增加。参照图6B,示例图650说明了从被探测的网络数据路径在接收延迟阈值601内接收到的目标数据分组和诊断数据分组的百分比。被延迟小于延迟阈值601的数据分组(诊断和目标两者)被视为具有可接受的延迟。另一方面被延迟大于接收时间阈值601的数据分组被视为具有不可接受的延迟。在示例图650中,接收到的分组的百分比表示在纵轴(“Y轴”)上,与接收延迟阈值601的时间差表示在横轴(“X轴”)上。示例图650说明了以下步骤的结果:主动地探测数据负载为4Mbps的网络数据路径(如数据路径291)以确定所估计的数据传输速率为7Mbps的数据流是否会使网络数据路径转变为拥塞状态。
诊断列的Y截距表示在接收延迟阈值601内接收到的诊断数据分组的数目。如图所示,在延迟阈值601内接收到约百分之九十的诊断数据分组。目标列的Y截距表示在延迟阈值601内接收到的目标数据分组的数目。如图所示,在延迟阈值601内接收到约百分之五十的目标数据分组。由于在可接受的延迟内接收到目标数据分组百分比和诊断数据分组百分比显著地不同,因此目标数据分组的百分比大概不被视为在诊断数据分组百分比的延迟分组阈值内。因此,示例图650指明,应用数据传输速率为7Mbps的数据流大概会使被探测的网络数据路径拥塞。因而,防止把使网络数据路径拥塞的似然性增加的数据流发送到网络数据路径上。
根据网络数据路径(如数据链路为10Mbps、100Mbps等)的配置,在可接受延迟内(如在接收延迟阈值601之前)接收到的目标数据分组的特定百分比,在独立观察时,可以不必要提供可靠的拥塞指示。例如,在10Mbps网络数据链路上,在延迟阈值内接收75%的目标数据分组会被视为不指示拥塞的接收百分比。另一方面在100Mbps的网络数据链路上,在延迟阈值内接收75%的目标数据分组会被视为指示拥塞的接收百分比。然而,发送和/或接收端计算机系统也许不能在发送一列目标数据分组之前得知网络数据路径的配置。例如,发送端和接收端计算机系统可以由一条或多条中间数据链路(包括瓶颈链路)分开。
如前所述,可以在显著降低使网络数据路径拥塞的似然性的数据速率下发送诊断分组列。因而,当网络数据路径大概不拥塞时,可以使用一列诊断分组来标识网络数据路径的被延迟分组的可接受阈值。而且,即使当发送端和接收端计算机系统事先不知道网络数据路径的配置时也可以标识被延迟分组的可接受阈值。结果,不需要发送端和接收端计算机系统在确定是否可以把数据流发送到网络数据路径上之前知道网络数据路径配置。而且,通过把被延迟的目标数据分组的百分比与被延迟分组的可接受阈值相比较(与仅根据网络数据路径的配置作出判决相反),可以作出更可靠的判决。
方法400包括发送比较结果的行为(行为409)。行为409可以包括:接收计算机系统向发送计算机系统发送目标数据分组与诊断数据分组的排队延迟的比较结果。例如,探测模块234可以向探测模块234发送比较结果。方法400包括接收比较结果的行为(行为403)。行为403可以包括:发送计算机系统从接收计算机系统接收目标数据分组与诊断数据分组的排队延迟的比较结果。例如,探测模块204可以从探测模块234接收比较结果。当结果适当时,应用模块202就以所请求的应用数据速率把应用数据流发送到应用232。
在某些实施例中,在发出一列诊断数据分组后,从发送计算机系统向接收计算机系统发送一列中间诊断数据分组。该列中间诊断数据分组以中间诊断数据速率被发送,所述中间诊断数据速率大于诊断数据速率但小于所请求的应用数据速率。当所请求的应用数据速率与诊断数据速率相比较大时,在诊断数据速率和所请求的应用数据速率之间的某一中间诊断数据速率处确定可能的拥塞是有利的。例如,网络数据路径的Available_Bottleneck_Bandwidth值会使70Mbps。因而,可以选择700Kbps的诊断数据速率。当所请求的应用数据传输速率为60Mbps时,在700Kbps和60Mbps之间的中间诊断数据速率处确定可能的拥塞是有利的,例如在20或30Mbps处。
接收到的中间诊断数据分组的排队延迟与接收到的诊断分组的排队延迟相比较。当被延迟的中间诊断数据分组的数目不在被延迟的诊断数据分组数目的特定延迟分组阈值内时,以中间诊断数据速率传递数据流会使被探测的网络数据路径转变为拥塞状态的似然性增加。结果,较高所请求应用数据速率下的数据流大概也会使被探测的网络数据路径转变为拥塞状态。因而,主动探测会终止,而不以所请求的应用数据传输速率进行主动探测。作为有利的结果,防止使被探测网络数据路径拥塞的似然性增加的数据被发送到被探测的网络数据路径上。
另一方面,当被延迟的中间诊断数据分组的数目在被延迟的诊断数据分组的特定延迟分组阈值内时,以中间诊断数据速率传递数据流会使被探测的网络数据路径转变为拥塞状态的似然性减小。因而,主动探测会以所请求的应用数据传输速率继续。
可能发送一系列数据分组(诊断、中间诊断或目标)列来主动地探测网络数据路径,以便提高关于潜在网络路径拥塞的判决可靠性。起初,发送一个序列的诊断分组列,以标识与显著降低拥塞网络数据路径的似然性的数据传输速率相关联的排队延迟。随后,在适当时,发送一个序列的中间诊断数据分组列,以标识与中间诊断数据传输速率相关联的排队延迟。然后,发送一个序列的目标数据分组列,以标识与所请求的应用数据传输速率相关联的排队延迟。
序列内的每个数据分组列都可以由一个探测列间隔来分开。可以选择探测列间隔来减少被探测网络数据路径上的捕获效应。例如,以1毫秒探测数据分组间隔发送的10个数据分组的列(即,总发送时间为10毫秒)可以由90毫秒的探测列间隔分开。这样,100毫秒的间隔分开了数据分组列的一个序列内连续列的发送起始。这有效地把用于探测网络数据路径的负载降低到所请求的应用数据速率的10%。
网络管理员或用户可以按照期望的可靠性和效率在一个序列的列内选择列数目。当期望较高的可靠性时,可以增加序列内的列数目,从而为排队延迟的计算提供了附加采样。另一方面,当期望较高的效率时,可以减少序列内的列数目,从而减少用于完成对网络数据路径的探测的时间。
在某些实施例中,探测模块(如探测模块204、224或234)在计算机系统处提供了一个用户界面,使得网络管理员或用户可以为这里描述的参数选择并且/或者输入期望的值。用户界面可能提供参数值列表,它们可以由网络管理员或用户用输入设备来选择。类似地用户界面可能提供标记的字段,其中网络管理员或用户可以用输入设备输入值。例如,网络管理员或用户可以通过用户界面来选择或输入期望的Acceptable_Loading值,用于使发送端和/或接收端数据链路以及期望的指定瓶颈负载限制对数据流可用的带宽。同样,网络管理员或用户可以选择或输入参数,用于配置数据分组列和数据分组列的序列,用于主动地探测网络数据路径。
本发明可以包含在其他特定形式中,而不背离其精神或基本特征。所述实施例要被视为仅仅是说明性的而不是限制性的。因此,本发明的范围是由所附权利要求指出,而不是由上述描述指出。在权利要求的等价物的意义和范围内的所有变化都被包含在其范围内。

Claims (18)

1.一种在发送计算机系统中用于确定从发送计算机系统向接收计算机系统传递应用数据流而不造成包括在计算机网络数据路径内的任何数据链路拥塞的方法,所述发送计算机系统通过计算机网络数据路径与接收计算机系统进行网络相连,所述计算机网络数据路径至少包括发送端数据链路和接收端数据链路,所述方法包括:
接收所请求的应用数据传输速率的行为,发送计算机系统从一应用接收所请求的应用数据传输速率,所述行为请求把应用数据流从发送计算机系统传递至接收计算机系统,所述所请求的应用数据传输速率表示会在应用数据流传递期间被消耗的带宽的估计;
被动检测发送端数据负载的行为,发送计算机系统被动地检测发送端数据链路上的发送端数据负载;
计算发送端数据链路上的可用带宽容量是足够的行为,发送计算机系统根据发送端数据负载计算发送端数据链路上的可用带宽容量,所述可用带宽容量足够支持所请求的应用数据传输速率下的数据流;
发送第一分组对数据分组的行为,发送计算机系统把第一分组对数据分组发送到计算机网络数据路径上,用于传递至接收计算机系统或中间计算机系统;
发送第二分组对数据分组的行为,在发送第一分组对数据分组后,发送计算机系统把相应的第二分组对数据分组发送到计算机网络数据路径上,用于传递至接收计算机系统或中间计算机系统,所述第二分组对数据分组的大小与第一分组对数据分组的大小相同;
接收指明瓶颈数据链路上的可用带宽容量是足够的指示的行为,发送计算机系统从接收计算系统接收指示,所述指示指明了计算机网络数据路径上的瓶颈数据链路上的可用带宽容量足够以所请求的应用数据传输速率来接收数据流;
标识传输参数以模拟应用数据流的行为,发送计算机系统标识传输参数来配置探测数据分组列,模拟以所请求的应用数据传输速率来发送应用数据流;
按照所标识的传输参数临时发送分组列的行为,发送计算机系统按照所标识的传输参数临时发送一列探测数据分组,以模拟应用数据流到计算机网络数据路径上的传输;以及
接收分组列未引起计算机网络数据路径拥塞的指示的行为,发送计算机系统从接收计算系统接收指示,所述指示指明了探测数据分组列未造成计算机网络数据路径的任何数据链路转变为拥塞状态。
2.如权利要求1所述的方法,其特征在于,所述接收所请求的应用数据传输速率的行为包括:由应用数据传输速率来估计要在通用数据报协议数据流传递期间被消耗的带宽的行为,其中所述所请求的应用数据传输速率表示要在应用数据流传递期间被消耗的带宽的估计。
3.如权利要求1所述的方法,其特征在于,所述计算发送端数据链路上的可用带宽容量是足够的行为包括:根据用户选择的可接受的负载值计算发送端数据链路上的可用带宽容量的行为。
4.如权利要求1所述的方法,其特征在于,所述标识传输参数以模拟应用数据流的行为包括:标识在用户界面处输入的用户选择的传输参数的行为。
5.如权利要求1所述的方法,还包括:
在被动地检测发送端数据负载的同时,发送计算机系统向接收端计算机系统发送一指令来被动地检测接收端数据负载的行为。
6.如权利要求5所述的方法,还包括:
在权利要求5所述的发送一指令的行为之后,接收指明了接收端数据链路上的可用带宽容量是足够的指示的行为,发送计算机系统从接收计算系统接收一指示,所述指示指明了接收端数据链路上的可用带宽容量足够支持所请求的应用数据传输速率下的数据流。
7.如权利要求1所述的方法,还包括:
在接收所请求的应用数据传输速率后,发送计算机系统以所请求的应用数据传输速率把应用数据流发送到计算机网络数据路径上的行为。
8.如权利要求1所述的方法,其特征在于,所述发送端数据链路和接收端数据链路是相同的数据链路。
9.一种在发送计算机系统中用于确定从发送计算机系统向接收计算机系统传递应用数据流而不造成包括在计算机网络数据路径内的任何数据链路拥塞的方法,所述发送计算机系统通过计算机网络数据路径与接收计算机系统进行网络相连,所述计算机网络数据路径至少包括发送端数据链路和接收端数据链路,所述方法包括:
接收所请求的应用数据传输速率的行为,发送计算机系统从一应用接收所请求的应用数据传输速率,所述行为请求把应用数据流从发送计算机系统传递至接收计算机系统,所述所请求的应用数据传输速率表示会在应用数据流传递期间被消耗的带宽的估计;
用于执行杂乱模态测量的步骤,发送计算机系统在所述步骤中确定发送端数据链路是否具有足够的可用带宽来接收应用数据流;
用于启动分组对测试的步骤,发送计算机系统在所述步骤中确定计算机网络数据路径的瓶颈数据路径是否具有足够的可用带宽容量来接收应用数据流,所述启动分组对测试的步骤包括发送第一分组对数据分组的行为和随后发送第二分组对数据分组的行为;
接收指明瓶颈数据链路上的可用带宽容量是足够的指示的行为,发送计算机系统从接收计算系统接收一指示,所述指示指明了瓶颈数据链路上的可用带宽容量足够以所请求的应用数据传输速率来接收数据流;
主动探测网络数据路径的步骤,当应用数据流被传递到计算机网络数据路径上时,发送计算机系统用一列探测数据分组主动地探测计算机网络数据路径,以确定该计算机网络数据路径是否会转变为拥塞状态;以及
接收分组列未引起计算机网络数据路径拥塞的指示的行为,发送计算机系统从接收计算系统接收指示,所述指示指明了探测数据分组列未造成计算机网络数据路径的任何数据链路转变为拥塞状态。
10.一种在接收计算机系统中用于确定从发送计算机系统向接收计算机系统传递应用数据流而不造成包括在计算机网络数据路径内的任何数据链路拥塞的方法,所述接收计算机系统通过计算机网络数据路径与发送计算机系统进行网络相连,所述计算机网络数据路径至少包括发送端数据链路和接收端数据链路,所述方法包括:
接收计算机系统被动地检测接收端数据链路上的接收端数据负载的行为;
接收计算机系统根据接收端数据负载计算接收端数据链路上的可用带宽容量的行为;
接收计算机系统向发送计算机系统指示接收端数据链路上的可用带宽容量的行为;
接收计算机系统在第一接收时间从计算机网络数据路径接收第一分组对数据分组的行为;
接收计算机系统在第二接收时间从计算机网络数据路径接收第二分组对数据分组的行为;
接收计算机系统至少根据第一接收时间和第二接收时间之差,计算计算机网络数据路径的瓶颈数据链路上的可用带宽容量的行为;
接收计算机系统向发送计算机系统指示瓶颈数据链路上的可用带宽容量的行为;
接收计算机系统在发送计算机系统发送到计算机网络数据路径上的一列探测数据分组内,至少接收某些探测数据分组从而以一应用数据传输速率模拟应用数据流的行为;
接收计算机系统计算该列探测数据分组未造成计算机网络数据路径的任何数据链路转变为拥塞状态的行为;以及
接收计算机系统向发送计算机系统指示该列探测数据分组未造成计算机网络数据路径的任何数据链路转变为拥塞状态的行为。
11.如权利要求10所述的方法,其特征在于,所述根据接收端数据负载计算接收端数据链路上的可用带宽容量的行为包括:根据用户选择的可接受负载值计算接收端数据链路上的可用带宽容量的行为。
12.如权利要求10所述的方法,其特征在于,所述至少根据第一接收时间和第二接收时间之差计算瓶颈数据链路上的可用带宽容量的行为包括:根据按分组对算法发送的一列分组对数据分组内包括的多个分组对数据分组的接收时间来计算瓶颈带宽的行为。
13.如权利要求10所述的方法,还包括:
在被动地检测接收端数据链路上的接收端数据负载的行为之前,接收计算机系统从发送计算机系统接收指示以被动地检测接收端数据负载的行为。
14.如权利要求10所述的方法,还包括:
当所计算的接收端可用带宽大于所请求的应用数据传输速率,接收计算机系统以所请求的应用数据传输速率从计算机网络数据路径接收应用数据流的行为。
15.如权利要求10所述的方法,其特征在于,所述发送端数据链路和接收端数据链路是相同的数据链路。
16.一种在接收计算机系统中用于确定从发送计算机系统向接收计算机系统传递应用数据流而不造成包括在计算机网络数据路径内的任何数据链路拥塞的方法,所述接收计算机系统通过计算机网络数据路径与发送计算机系统进行网络相连,所述计算机网络数据路径至少包括发送端数据链路和接收端数据链路,所述方法包括:
接收计算机系统参与杂乱模态测量以确定接收端数据链路上的可用带宽容量的步骤;
接收计算机系统向发送计算机系统指示接收端数据链路上的可用带宽容量的行为;
接收计算机系统参与分组对测试以确定计算机网络数据路径的瓶颈数据路径上的可用带宽容量的步骤,所述分组对测试接收第一分组对数据分组的行为,随后接收第二分组对数据分组的行为,以及基于接收第一分组对和第二分组对的时间差计算瓶颈链路的可用带宽容量的行为;
接收计算机系统向发送计算机系统指示瓶颈数据链路上的可用带宽容量的行为;
接收计算机系统参与计算机网络数据路径的主动探测以确定传递应用数据流不会造成计算机网络数据路径的任何数据链路转变为拥塞状态的步骤;以及
接收计算机系统向发送计算机系统指示用于主动探测的探测数据分组不会造成计算机网络数据路径的任何数据链路转变为拥塞状态的行为。
17.用于发送计算机系统中的一种系统,所述发送计算机系统通过计算机网络数据路径与接收计算机系统进行网络相连,所述计算机网络路径至少包括发送端数据链路和接收端数据链路,所述用于发送计算机系统中的系统用于实现一种方法,所述方法用于确定从发送计算机系统向接收计算机系统传递应用数据流,而不造成包括在计算机网络数据路径内的任何数据链路拥塞,所述系统包括:
用于从一应用接收所请求的应用数据传输速率的装置,所述装置请求把应用数据流从发送计算机系统传递至接收计算机系统,所述所请求的应用数据传输速率表示会在应用数据流传递期间被消耗的带宽的估计;
用于被动地检测发送端数据链路上的发送端数据负载的装置;
用于根据发送端数据负载计算发送端数据链路上的可用带宽容量足以以所请求的应用数据传输速率支持数据流的装置;
用于把第一分组对数据分组发送到计算机网络数据路径上用于传递至接收计算机系统或中间计算机系统的装置;
用于在发送第一分组对数据分组后,把相应的第二分组对数据分组发送到计算机网络数据路径上用于传递至接收计算机系统或中间计算机系统的装置,所述第二分组对数据分组的大小与第一分组对数据分组的大小相同;
用于接收一指示的装置,所述指示指明了计算机网络数据路径的瓶颈数据路径上的可用带宽容量足以以所请求的应用数据传输速率接收数据流;
用于标识传输参数的装置,所述传输参数用于配置探测数据分组列来模拟以所请求的应用数据传输速率发送应用数据流;
按照所标识的传输参数临时发送一列探测数据分组以模拟应用数据流到计算机网络数据路径上的传输的装置;以及
用于接收一指示的装置,所述指示指明了该列探测数据分组未造成计算机网络数据路径的任何数据链路转变为拥塞状态。
18.用于接收计算机系统中的一种系统,所述接收计算机系统通过计算机网络数据路径与发送计算机系统进行网络相连,所述计算机网络路径至少包括接收端数据链路和发送端数据链路,所述用于接收计算机系统中的系统用于实现一种方法,所述方法用于确定从发送计算机系统向接收计算机系统传递应用数据流,而不造成计算机网络数据路径内包括的任何数据链路拥塞,所述系统包括:
用于被动地检测接收端数据链路上的接收端数据负载的装置;
用于根据接收端数据负载计算接收端数据链路上的可用带宽容量的装置;
用于向发送计算机系统指示接收端数据链路上的可用带宽容量的装置;
用于在第一接收时间从计算机网络数据路径接收第一分组对数据分组的装置;
用于在第二接收时间从计算机网络数据路径接收第二分组对数据分组的装置;
用于至少根据第一接收时间和第二接收时间之间的差异,计算计算机网络数据路径的瓶颈数据链路上的可用带宽容量的装置;
用于向发送计算机系统指示瓶颈数据链路上的可用带宽容量的装置;
用于接收一列探测数据分组内的至少某些探测数据分组以模拟应用数据传输速率下的应用数据流的装置,所述一列探测数据分组是发送计算机系统发送到计算机网络数据路径上的;
用于计算该列探测数据分组未造成计算机网络数据路径上的任何数据链路转变为拥塞状态的装置;以及
用于向发送计算机系统指示该列探测数据分组未造成计算机网络数据路径上的任何数据链路转变为拥塞状态的装置。
CN2004100286414A 2003-03-03 2004-03-03 基于端对端测量对网络上数据流准入的控制 Expired - Fee Related CN1543157B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/378,532 US7239611B2 (en) 2003-03-03 2003-03-03 Controlling admission of data streams onto a network based on end-to-end measurements
US10/378,532 2003-03-03

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2010102571555A Division CN101917304B (zh) 2003-03-03 2004-03-03 基于端对端测量对网络上数据流准入的控制

Publications (2)

Publication Number Publication Date
CN1543157A CN1543157A (zh) 2004-11-03
CN1543157B true CN1543157B (zh) 2010-11-03

Family

ID=32824757

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2010102571555A Expired - Fee Related CN101917304B (zh) 2003-03-03 2004-03-03 基于端对端测量对网络上数据流准入的控制
CN2004100286414A Expired - Fee Related CN1543157B (zh) 2003-03-03 2004-03-03 基于端对端测量对网络上数据流准入的控制

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2010102571555A Expired - Fee Related CN101917304B (zh) 2003-03-03 2004-03-03 基于端对端测量对网络上数据流准入的控制

Country Status (8)

Country Link
US (1) US7239611B2 (zh)
EP (1) EP1455490B1 (zh)
JP (1) JP4491257B2 (zh)
KR (1) KR101137164B1 (zh)
CN (2) CN101917304B (zh)
AT (1) ATE450956T1 (zh)
DE (1) DE602004024348D1 (zh)
HK (1) HK1069494A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108880754A (zh) * 2018-06-25 2018-11-23 西安电子科技大学 基于分级冗余机制的低时延信令、数据无线传输方法

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7792982B2 (en) * 2003-01-07 2010-09-07 Microsoft Corporation System and method for distributing streaming content through cooperative networking
US6944144B2 (en) * 2003-02-28 2005-09-13 Microsoft Corporation Vertical roaming in wireless networks through improved quality of service measures
US6982949B2 (en) * 2003-02-28 2006-01-03 Microsoft Corporation Vertical roaming in wireless networks through improved wireless network cell boundary detection
US7336617B1 (en) * 2003-08-01 2008-02-26 Verizon Laboratories Inc. Bit-field-encoded resource record for determining a transmission path in a communications network
US7366097B2 (en) * 2003-10-20 2008-04-29 Microsoft Corporation Increasing the accuracy and efficiency of admission control for data streams
US7652995B2 (en) * 2003-12-19 2010-01-26 International Business Machines Corporation Autonomic reassociation of clients in a wireless local area network
CN100583785C (zh) * 2004-02-06 2010-01-20 阿派伦特网络股份有限公司 用于表征基于分组的网络的端对端路径的方法和设备
ES2621019T3 (es) * 2004-03-01 2017-06-30 Bae Systems Plc Mejoras en el control de llamadas o relacionadas con el mismo
US7426181B1 (en) * 2004-03-26 2008-09-16 Packeteer, Inc. Slow-start adaptive mechanisms to improve efficiency of bandwidth allocation
US8355400B2 (en) * 2004-08-06 2013-01-15 Lantiq Deutschland Gmbh System and method for transmitting information over a plurality of communication links
US7730519B2 (en) * 2004-09-17 2010-06-01 At&T Intellectual Property I, L.P. Detection of encrypted packet streams using feedback probing
US7760638B2 (en) * 2004-11-29 2010-07-20 Nec Corporation High-throughput communication system, communication terminal, session relay, and communication protocol
CN100409647C (zh) * 2005-01-18 2008-08-06 广州泰思管理科技有限公司 数据流协议转换和传输装置
US7545749B2 (en) * 2005-02-15 2009-06-09 Microsoft Corporation High-accuracy packet pair for network bottleneck bandwidth measurement
CN100446479C (zh) * 2005-03-10 2008-12-24 同济大学 一种基于网络紧链路定位的端到端可用带宽测量的方法
US7675856B2 (en) * 2005-03-24 2010-03-09 Microsoft Corporation Bandwidth estimation in broadband access networks
US7613138B2 (en) * 2005-05-23 2009-11-03 Microsoft Corporation Separating control and data in wireless networks
US20070058705A1 (en) * 2005-09-13 2007-03-15 Sbc Knowledge Ventures, L.P. System and method to transmit a data stream
JP4606338B2 (ja) * 2006-01-30 2011-01-05 富士通株式会社 検出方法及び検出装置
JP5046316B2 (ja) * 2006-03-10 2012-10-10 富士通株式会社 ネットワーク管理方法、プログラム及びシステム
US7747734B2 (en) * 2006-03-29 2010-06-29 International Business Machines Corporation Apparatus, system, and method for error assessment over a communication link
JP2010506457A (ja) 2006-09-28 2010-02-25 クゥアルコム・インコーポレイテッド 通信システムにおけるサービス品質を決定するための方法および装置
CN101523809B (zh) 2006-09-28 2012-09-05 高通股份有限公司 用于确定通信链路质量的方法和装置
US8867377B2 (en) * 2007-10-11 2014-10-21 Cisco Technology, Inc. Dynamic selection between active and passive probing in computer network
US8149719B2 (en) * 2008-02-13 2012-04-03 Embarq Holdings Company, Llc System and method for marking live test packets
CN101242618B (zh) * 2008-03-04 2011-12-07 中兴通讯股份有限公司 一种通讯通道上通讯状态的实时检测方法
US20100265833A1 (en) * 2009-04-16 2010-10-21 Ou Frank Y Network bandwidth determination
SG166701A1 (en) * 2009-05-29 2010-12-29 Yokogawa Electric Corp Method and system for regulating bandwidth
US8199655B2 (en) * 2009-08-21 2012-06-12 Verizon Patent And Licensing Inc. Optimized layer-2 network switching systems and methods
US8661118B2 (en) 2010-03-08 2014-02-25 Microsoft Corporation Detection of end-to-end transport quality
JP5515978B2 (ja) * 2010-03-31 2014-06-11 ソニー株式会社 通信装置、通信方法およびプログラム
CN102104426B (zh) * 2010-12-24 2013-11-20 安凯 一种漫射激光通信码速率的自适应确定方法
US8773993B2 (en) 2011-01-31 2014-07-08 Apple Inc. Adaptive bandwidth estimation
JP6107666B2 (ja) * 2012-01-25 2017-04-05 日本電気株式会社 可用帯域探索範囲制御方法および可用帯域探索範囲制御システム
US10002027B2 (en) 2012-07-11 2018-06-19 Empire Technology Development Llc Network congestion reduction
US9185578B2 (en) 2012-08-24 2015-11-10 Ascom Network Testing Ab Systems and methods for measuring available bandwidth in mobile telecommunications networks
US9215181B2 (en) 2012-11-06 2015-12-15 Comcast Cable Communications, Llc Systems and methods for managing a network
US10142236B2 (en) 2013-03-14 2018-11-27 Comcast Cable Communications, Llc Systems and methods for managing a packet network
US10122639B2 (en) * 2013-10-30 2018-11-06 Comcast Cable Communications, Llc Systems and methods for managing a network
KR101488133B1 (ko) * 2014-02-19 2015-02-04 포항공과대학교 산학협력단 단말을 위한 에너지 효율적인 가용대역폭 측정 방법 및 장치
CN106233666B (zh) * 2014-04-23 2019-12-10 西门子公司 根据opc ua标准诊断网络中的传输故障的方法和装置
WO2016010192A1 (ko) * 2014-07-17 2016-01-21 주식회사 케이티 엑세스 네트워크에서 인터넷을 제공하기 위한 네트워크 관리 장치 및 이를 이용한 네트워크 관리 방법
WO2016010193A1 (ko) * 2014-07-17 2016-01-21 주식회사 케이티 엑세스 네트워크에서 인터넷을 제공하기 위한 네트워크 관리 장치 및 이를 이용한 네트워크 관리 방법
US9729448B2 (en) * 2015-01-22 2017-08-08 International Business Machines Corporation Congestion detection using a differentiated packet pair
US9747343B2 (en) * 2015-02-19 2017-08-29 International Business Machines Corporation Algorithmic changing in a streaming environment
KR101593504B1 (ko) * 2015-07-29 2016-02-19 한국해양과학기술원 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜
US20170324642A1 (en) * 2016-05-04 2017-11-09 Microsoft Technology Licensing, Llc Initial and periodic slowdowns for background connections
US10873520B2 (en) 2018-07-02 2020-12-22 Hewlett Packard Enterprise Development Lp Packet batching identification

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0827307A2 (en) * 1996-08-22 1998-03-04 International Business Machines Corporation Adaptive rate-based congestion control in packet networks
CN1228660A (zh) * 1998-03-06 1999-09-15 富士通株式会社 采用负载预测的系统优化装置
EP1026855A2 (en) * 1999-02-04 2000-08-09 Fujitsu Limited Measuring network communication performance

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464176A (en) * 1982-06-04 1984-08-07 Mallinckrodt, Inc. Blood vessel catheter for medicine delivery and method of manufacture
AU671040B2 (en) * 1993-09-20 1996-08-08 Motorola Mobility, Inc. Dynamic rate adjustment for overload control in communication networks
US5627970A (en) 1994-08-08 1997-05-06 Lucent Technologies Inc. Methods and apparatus for achieving and maintaining optimum transmission rates and preventing data loss in a processing system nework
JP2776301B2 (ja) * 1994-08-30 1998-07-16 日本電気株式会社 回線予約装置および方法、回線予約受付装置および方法
EP0867101B1 (en) * 1995-12-13 2004-11-10 International Business Machines Corporation Connection admission control in high-speed packet switched networks
US5864678A (en) * 1996-05-08 1999-01-26 Apple Computer, Inc. System for detecting and reporting data flow imbalance between computers using grab rate outflow rate arrival rate and play rate
JP3585700B2 (ja) 1997-05-30 2004-11-04 日本電信電話株式会社 アプリケーションによるip品質保証サービスのパラメータ決定方法及びip品質保証サービスのパラメータ決定プログラムを記録した記録媒体
US6075769A (en) * 1997-11-26 2000-06-13 Cisco Systems, Inc. Method and apparatus for network flow control
CA2240596A1 (en) 1997-11-28 1999-05-28 Newbridge Networks Corporation Controlling atm layer transfer characteristics based on physical layer dynamic rate adaptation
US6222824B1 (en) * 1998-04-24 2001-04-24 International Business Machines Corporation Statistical call admission control
KR100587432B1 (ko) * 1998-11-02 2006-06-09 코닌클리케 필립스 일렉트로닉스 엔.브이. 통신 노드를 포함하는 통신 시스템 및 통신 방법
US6917590B1 (en) * 1998-11-13 2005-07-12 Sprint Communications Company L.P. Method and system for connection admission control
US6498782B1 (en) * 1999-02-03 2002-12-24 International Business Machines Corporation Communications methods and gigabit ethernet communications adapter providing quality of service and receiver connection speed differentiation
AU3188800A (en) 1999-03-15 2000-10-04 Vocaltec Communications Ltd. Flow control method and apparatus
WO2001020918A2 (en) 1999-09-17 2001-03-22 Mercury Interactive Corporation Server and network performance monitoring
US6430160B1 (en) * 2000-02-29 2002-08-06 Verizon Laboratories Inc. Estimating data delays from poisson probe delays
US20020034162A1 (en) * 2000-06-30 2002-03-21 Brinkerhoff Kenneth W. Technique for implementing fractional interval times for fine granularity bandwidth allocation
US7200111B2 (en) 2000-08-31 2007-04-03 The Regents Of The University Of California Method for improving TCP performance over wireless links
US7130268B2 (en) * 2000-10-17 2006-10-31 Saverio Mascolo End-to-end bandwidth estimation for congestion control in packet switching networks
US6895235B2 (en) 2001-06-05 2005-05-17 Telcordia Technologies, Inc. Adaptive load and coverage management system and method
US7012893B2 (en) 2001-06-12 2006-03-14 Smartpackets, Inc. Adaptive control of data packet size in networks
US7151749B2 (en) 2001-06-14 2006-12-19 Microsoft Corporation Method and System for providing adaptive bandwidth control for real-time communication
US7274661B2 (en) * 2001-09-17 2007-09-25 Altera Corporation Flow control method for quality streaming of audio/video/media over packet networks
US7088677B1 (en) * 2002-03-01 2006-08-08 Bellsouth Intellectual Property Corporation System and method for delay-based congestion detection and connection admission control
JP3964751B2 (ja) * 2002-07-15 2007-08-22 日本電信電話株式会社 ネットワーク品質推定制御方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0827307A2 (en) * 1996-08-22 1998-03-04 International Business Machines Corporation Adaptive rate-based congestion control in packet networks
CN1228660A (zh) * 1998-03-06 1999-09-15 富士通株式会社 采用负载预测的系统优化装置
EP1026855A2 (en) * 1999-02-04 2000-08-09 Fujitsu Limited Measuring network communication performance

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108880754A (zh) * 2018-06-25 2018-11-23 西安电子科技大学 基于分级冗余机制的低时延信令、数据无线传输方法
CN108880754B (zh) * 2018-06-25 2020-04-10 西安电子科技大学 基于分级冗余机制的低时延信令、数据无线传输方法

Also Published As

Publication number Publication date
KR101137164B1 (ko) 2012-04-23
HK1069494A1 (en) 2005-05-20
ATE450956T1 (de) 2009-12-15
DE602004024348D1 (de) 2010-01-14
EP1455490A2 (en) 2004-09-08
CN1543157A (zh) 2004-11-03
US7239611B2 (en) 2007-07-03
CN101917304B (zh) 2012-03-21
EP1455490B1 (en) 2009-12-02
CN101917304A (zh) 2010-12-15
JP4491257B2 (ja) 2010-06-30
US20040174815A1 (en) 2004-09-09
JP2004266840A (ja) 2004-09-24
KR20040078559A (ko) 2004-09-10
EP1455490A3 (en) 2004-12-08

Similar Documents

Publication Publication Date Title
CN1543157B (zh) 基于端对端测量对网络上数据流准入的控制
US7676570B2 (en) Determining client latencies over a network
Spring et al. Using PlanetLab for network research: myths, realities, and best practices
US6711137B1 (en) System and method for analyzing and tuning a communications network
US6442141B1 (en) Network delay and loss simulator
CN111670562A (zh) 用于宽带通信链路性能监控的系统和方法
JP4348124B2 (ja) QoSを推定する方法および通信装置
EP2288086A1 (en) Network monitoring device, bus system monitoring device, method and program
US20130016620A1 (en) Network Transmission Capacity Measurement
CN113169896A (zh) 网络度量的连续校准
CN111355667B (zh) 数据传输方法、装置、系统及计算机可读存储介质
US7689686B2 (en) Active probing for sustainable capacity estimation of networked dataflows
CN110199505B (zh) 确定通信链路的带宽
US7366097B2 (en) Increasing the accuracy and efficiency of admission control for data streams
Javadtalab et al. Continuous one-way detection of available bandwidth changes for video streaming over best-effort networks
Pásztor Accurate active measurement in the Internet and its applications
US11368400B2 (en) Continuously calibrated network system
US20050102391A1 (en) Method and apparatus providing an asymmetric ping procedure
US20100246422A1 (en) Network device and method of measuring upstream bandwidth employed thereby
Lopes et al. A multi-layer probing approach for video over 5G in vehicular scenarios
CN115150283B (zh) 网络带宽探测方法、装置、计算机设备和存储介质
CN113439416B (zh) 连续校准的网络系统
US11356326B2 (en) Continuously calibrated network system
Santander End-to-end available bandwidth estimation and monitoring
CN117834934A (zh) 推流节点的调度方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150424

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150424

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101103

Termination date: 20200303