CN101292475B - 自适应带宽控制的方法和装置 - Google Patents

自适应带宽控制的方法和装置 Download PDF

Info

Publication number
CN101292475B
CN101292475B CN2006800390152A CN200680039015A CN101292475B CN 101292475 B CN101292475 B CN 101292475B CN 2006800390152 A CN2006800390152 A CN 2006800390152A CN 200680039015 A CN200680039015 A CN 200680039015A CN 101292475 B CN101292475 B CN 101292475B
Authority
CN
China
Prior art keywords
data
gateway
gateways
different
parameter group
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
CN2006800390152A
Other languages
English (en)
Other versions
CN101292475A (zh
Inventor
S·埃利奥特
C·V·拉扎罗
T·特兰
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101292475A publication Critical patent/CN101292475A/zh
Application granted granted Critical
Publication of CN101292475B publication Critical patent/CN101292475B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/821Prioritising resource allocation or reservation requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Abstract

一种计算机实现的方法、装置和计算机可用程序代码,用于在多个网关(304、306、308)处接收来自源(302)的数据以使用选定优先级进行分发。使用所述选定优先级将所述数据从所述多个网关传输到多个接收器(310、320、330)。所述多个网关中的每个网关都具有自适应带宽控制过程和用于控制所述自适应带宽控制过程的相应参数组以便以所述选定优先级发送数据。当为所述多个网关中的不同网关的参数组设置了不同的值时,从每个网关进行的具有所述选定优先级的数据传输对所述不同网关处的具有所述选定优先级的其他业务具有不同的影响。

Description

自适应带宽控制的方法和装置
相关申请的交叉引用 
本发明与以下同日申请的受让给同一受让人的专利申请相关:“Method and Apparatus for Adaptive Bandwidth Control with User Settings”,序号为11/256261,代理人案号AUS920050797US1;以及“Method and Apparatus for Adaptive Bandwidth Control with a Bandwidth Guarantee”,序号为11/256260,代理人案号AUS920050798US1;以上申请在此引入作为参考。 
技术领域
本发明一般地涉及改进的数据处理系统。具体地说,本发明涉及用于传输数据的计算机实现的方法和装置。更具体地说,本发明涉及自适应地控制用于传输数据的带宽的计算机实现的方法、装置和计算机可用程序代码。 
背景技术
随着因特网和网络的普遍使用,商业通信发生了革命性的变化。网络通常被用于传输数据。许多分布式应用利用大型后台传输来改进服务质量。使用这些类型的后台传输,用户无需等待这些传输完成即可执行其他操作。包括诸如数据备份、预取、企业数据分发、因特网内容分发以及对等存储之类的大量应用和服务都采用后台传输。这些和其他类型的应用增加了网络带宽消耗。这些服务中的某些服务潜在地具有无限的带宽需求,其中使用不断增加的带宽可以逐渐提供更佳的服务。 
这些类型的应用所具有的一个问题是多数网络只有有限的带宽可用于传输数据。有些应用执行关键性功能,而其他应用则执行非关键性功能。通常,后台传输是非关键性的并且可以使用所有可用的带宽,这使得关键性的网络业务变慢。 
自适应带宽控制已被用于自动适应网络状况以降低对网络的影响。目前,已采用了不同的自适应带宽控制过程和算法来控制不同应用所使用的带宽量以避免拥塞。当前可用的自适应带宽控制过程考虑了服务器或客户端计算机上的本地接口级别处的网络状况,但是无法考虑数据传输中可能存在的其他状况。 
因此,具有一种自适应地控制数据传输中的带宽使用的改进的计算机实现的方法、装置和计算机可用程序代码是有利的。 
发明内容
本发明提供了一种计算机实现的方法、装置和计算机可用程序代码,用于在多个网关处接收来自源的数据以使用选定优先级进行分发。使用所述选定优先级将所述数据从所述多个网关传输到多个接收器。所述多个网关中的每个网关都具有自适应带宽控制过程和用于控制所述自适应带宽控制过程的相应参数组以便以所述选定优先级发送数据。当为所述多个网关中的不同网关的参数组设置了不同的值时,从每个网关进行的具有所述选定优先级的数据传输对所述不同网关处的具有所述选定优先级的其他业务具有不同的影响。 
所述参数组可以包括阈值、β参数和最大等待时间。可以为所述多个网关中的特定网关配置所述参数组,其中所述特定网关的所述参数组可以不同于所述多个网关中的其他网关的参数组。所述自适应带宽控制过程考虑了从所述多个网关中的一个网关到所述分发的接收器的路径中的拥塞。此外,所述相应参数组对于所述多个网关中的不同网关可以是不同的。在示例性实例中,所述数据包括数据文件、应用更新以及病毒修补程序之一。 
附图说明
现在仅通过实例的方式参考附图描述本发明的一个或多个实施例,这些附图是: 
图1是其中可实现本发明的各方面的数据处理系统网络的图形表示; 
图2是其中可实现本发明的各方面的数据处理系统的方块图; 
图3是示出根据本发明的示例性实施例的其中可以使用不同的优先级进行分发的实例网络数据处理系统的示意图; 
图4是示出根据本发明的示例性实施例的自适应带宽控制中使用的组件的示意图; 
图5是根据本发明的示例性实施例的传输控制协议/网际协议(TCP/IP)以及类似协议的示意图; 
图6是示出根据本发明的示例性实施例在提供自适应带宽控制的过程中使用的软件过程和组件的示意图; 
图7是示出根据本发明的示例性实施例的用于使用优先级将分发内容从自适应发送器发送到接收器的网络的示意图; 
图8是示出根据本发明的示例性实施例的网络中带宽使用的示意图; 
图9是根据本发明的示例性实施例的配置参数的用户设置的过程的流程图; 
图10是根据本发明的示例性实施例的发送线程的过程的流程图; 
图11是根据本发明的示例性实施例的分组嗅探线程的过程的流程图; 
图12是根据本发明的示例性实施例的拥塞控制线程的过程的流程图; 
图13是根据本发明的示例性实施例的执行自适应带宽控制的过程的流程图;以及 
图14是根据本发明的示例性实施例的定制将分发内容发送到客户的接收器的过程的流程图。 
具体实施方式
图1-2是其中可实现本发明的实施例的数据处理环境的示意图。应该理解,图1-2只是示例性的,并非旨在断言或暗示对其中可实现本发明的 各方面或实施例的环境的任何限制。可以在不偏离本发明的精神和范围的情况下对所示环境做出许多修改。 
现在参考附图,图1示出了其中可实现本发明的各方面的数据处理系统网络的图形表示。网络数据处理系统100是其中可实现本发明的实施例的计算机网络。网络数据处理系统100包含网络102,网络102是用于提供网络数据处理系统100内相互连接的各种设备与计算机之间的通信链路的介质。网络102可以包括诸如有线、无线通信链路或光缆之类的连接。 
在所示实例中,服务器104和服务器106连同存储单元108一起与网络102相连。此外,客户端110、112和114与网络102相连。这些客户端110、112和114可以例如是个人计算机或网络计算机。在所示实例中,服务器104向客户端110、112和114提供诸如引导文件、操作系统映像,以及应用之类的数据。在此实例中,客户端110、112和114是服务器104的客户端。网络数据处理系统100可以包括其他服务器、客户端以及其他未示出的设备。 
在所示实例中,网络数据处理系统100是因特网,同时网络102代表全球范围内使用传输控制协议/网际协议(TCP/IP)协议集来相互通信的网络和网关的集合。在因特网的核心是主节点或主机之间的高速数据通信线路的主干,它包括数以千计的商业、政府、教育以及其他路由数据和消息的计算机系统。当然,网络数据处理系统100也可以被实现为许多不同类型的网络,诸如例如企业内部互联网、局域网(LAN)或广域网(WAN)。图1旨在作为一个实例,并非旨在作为对本发明的不同实施例的体系结构限制。 
现在参考图2,它是其中可实现本发明的各方面的数据处理系统的方块图。数据处理系统200是计算机(如图1中的服务器104或客户端110)的实例,在所述计算机中可以找到实现本发明的实施例的过程的计算机可用代码或指令。 
在所示实例中,数据处理系统200采用包括北桥及存储器控制器中心(MCH)202和南桥及输入/输出(I/O)控制器中心(ICH)204的中心架构。 处理单元206、主存储器208以及图形处理器210与北桥及存储器控制器中心202相连。图形处理器210可以通过加速图形端口(AGP)与北桥及存储器控制器中心202相连。 
在所示实例中,局域网(LAN)适配器212与南桥及I/O控制器中心(ICH)204相连。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动器(HDD)226、光盘驱动器230、通用串口总线(USB)端口以及其他通信端口232,以及PCI/PCIe设备234通过总线238和总线240与南桥及I/O控制器中心(ICH)204相连。PCI/PCIe设备可以例如包括用于笔记本计算机的以太网适配器、插入卡和PC卡。PCI使用卡总线控制器,而PCIe则不使用。ROM 224可以例如是闪速二进制输入/输出系统(BIOS)。 
硬盘驱动器226和光盘驱动器230通过总线240与南桥及I/O控制器中心204相连。硬盘驱动器226和光盘驱动器230可以例如使用集成驱动电子设备(IDE)或串行高级技术连接(SATA)接口。超级I/O(SIO)设备236可以与南桥及I/O控制器中心204相连。操作系统在处理单元206上运行并对图2中的数据处理系统200内的各种组件进行协调和控制。作为客户端,操作系统可以是诸如 
Figure S2006800390152D00051
XP(Microsoft和Windows是Microsoft Corporation在美国和/或其他国家/地区的商标)之类的商用操作系统。诸如JavaTM编程系统之类的面向对象的编程系统可以与操作系统一起运行并从数据处理系统200上执行的Java程序或应用提供对操作系统的调用(Java是Sun Microsystems,Inc.在美国和/或其他国家/地区的商标)。 
作为服务器,数据处理系统200可以例如是运行高级交互执行(AIX)操作系统或LINUX操作系统的IBM eServer pSeries计算机系统(eServer、pSeries和AIX是国际商业机器公司在美国和/或其他国家/地区的商标,而Linux是Linus Torvalds在美国和/或其他国家/地区的商标)。数据处理系统200可以是在处理单元206中包含多个处理器的对称多处理器(SMP)系统。备选地,可以采用单处理器系统。 
操作系统、面向对象的编程系统以及应用或程序的指令位于诸如硬盘驱动器226之类的存储设备上,并且可以被载入主存储器208以便由处理单元206执行。本发明的实施例的过程由处理单元206使用计算机可用程序代码执行,所述代码可以位于诸如主存储器208、只读存储器224之类的存储器内或一个或多个外围设备226和230内。 
本领域的技术人员将理解,图1-2中的硬件可以根据实施方式而所有变化。除了图1-2中所示的硬件或代替图1-2中所示的硬件,还可以使用诸如闪存、等同的非易失性存储器或光盘驱动器之类的其他内部硬件或外围设备。同样,本发明的过程可应用于多处理器数据处理系统。 
在某些示例性实例中,数据处理系统200可以是个人数字助理(PDA),所述PDA可以配备有闪存以提供非易失性存储器来存储操作系统文件和/或由用户生成的数据。 
总线系统可以包括一条或多条总线,例如图2中示出的总线238或总线240。当然,也可以使用提供与结构或架构连接的不同组件或设备之间的数据传输的任何类型的通信结构或架构来实现总线系统。通信单元可以包括一个或多个用于发送和接收数据的设备,例如图2中的调制解调器222或网络适配器212。存储器可以例如是主存储器208、只读存储器224或在图2中的北桥及存储器控制器中心202中找到的高速缓存。图1-2中所示的实例和上述实例并非旨在暗示架构限制。例如,除了PDA形式以外,数据处理系统200还可以是平板电脑、膝上型计算机或电话设备。 
本发明提供了计算机实现的方法、装置和计算机可用程序代码以便自适应地控制在传输数据时所用的带宽。本发明的各方面认识到当前使用的自适应带宽控制过程无法考虑客户端处的网络状况以外的网络状况。本发明的各方面认识到不同的网络具有不同的特征,所述特征可以影响数据的传输。本发明的各方面提供了不同的机制来考虑这些类型的因素。本发明的各方面都提供了设置参数的功能,以控制如何在网络上发送各个数据分组以用于自适应带宽控制。 
本发明的各方面认识到当前可用的数据传输系统在后台模式中运行太 慢并且完成所需的时间太长。本发明的各方面还认识到存在大量客户希望自适应功能的情况,并且在特定情况下不希望分发时间太长。例如,病毒修补程序或更新的分发对于应用的更新非常重要。因此,本发明的各方面提供了根据每次分发设置优先级的功能。在这些示例性实例中,设置了三种不同的优先级:高、中和低。这些实例中的优先级是自适应优先级,其中诸如高优先级之类的选定优先级改变了自适应带宽控制过程的行为方式。例如,可以先以低优先级发送软件更新,然后以高优先级发送病毒修补程序。因此,可以根据不同分发的重要性为这些分发指定不同的优先级。具有不同优先级的分发为自适应带宽控制过程提供了不同的参数组,以便根据特定的选定优先级改变该过程的行为。 
此外,还可以根据每个网关来设置不同优先级的配置。在这些实例中,网关是用作一组设备的管道的设备或数据处理系统。例如,网关可以用作局域网或广域网的门户或入口。此外,网关还可以用作到无线网络的连接。网关还被认为是管理一组客户端。 
虽然这些示例性实例面向自适应带宽控制,但是本发明的各方面也可以应用于将大量数据发送到一个或多个目标数据处理系统的任何类型的传输。 
现在参考图3,其是示出根据本发明的示例性实施例的其中可以使用不同的优先级进行分发的实例网络数据处理系统的示意图。在此实例中,网络数据处理系统300包含源302,所述源302与网关304、306和308相连。网关304通过路由器318提供了到客户端310、312、314和316的连接。网关306通过卫星路由器328提供了到客户端320、322、324和326的连接。网关308提供了到客户端330、332、334和336的连接。在这些实例中,这些客户端是通过诸如无线连接、拨号连接、电缆调制解调器或某些其他类似连接系统之类的各种方式与网关308连接的膝上型计算机。 
网络300是图1中的网络数据处理系统100内包含的网络的实例。具体地说,可以使用与图2中的数据处理系统200类似的数据处理系统来实现不同的客户端和网关。 
在此实例中,网关304管理高安全的局域网服务器。换言之,客户端310、312、314和316是服务器数据处理系统。网关306管理位于不同分店的销售点系统。网关308用于管理采用便携式计算机形式的客户端。 
管理员338可以使用不同的设置发送分发内容。在这些实例中,分发是指将任何种类的数据发送到一个或多个端点或接收器。例如,分发内容可以是应用的更新、动态链接库更新、病毒修补程序或定义更新,或者是数据文件。在此示例性实例中,可以使用高、中、低这三种优先级级别中的一种优先级来发送分发内容。当然,取决于特定的实施方式,还可以实现其他数量的优先级级别。为了说明本发明的一个实施例,采用了三种不同的优先级级别。 
因此,管理员338可以将一种分发内容发送到网关304、306和308以便使用诸如高优先级之类的优先级级别分发到客户端。管理员338然后可以使用诸如中优先级之类的不同优先级将后续的分发内容发送到网关304、306和308。以此方式,可以为不同的分发指定不同的优先级以便根据与特定分发关联的重要性来传输到接收器。因此,更重要的分发内容可以更快地到达客户端,尽管此类分发会使用更多的带宽。对于较低优先级的分发,此类分发将使用较少的带宽并且分发所需的时间较长。 
进而,本发明的各方面为选定优先级提供了根据选定优先级级别在不同的网关处使用不同数量的带宽的能力。换言之,对于选定优先级级别,两个网关可以在网络状况相同的情况下使用不同数量的带宽来传输数据。在这些示例性实例中,通过调整在这些网关上执行的自适应带宽控制过程内的参数以便将分发内容发送到不同的客户端,来根据每个网关调整选定优先级级别的不同影响。 
例如,网关304可以在将高优先级分发内容发送到客户端310、312、314和316时使用百分之七十的带宽。网关306可以在将具有高优先级的相同分发内容传输到客户端320、322、324和326时使用百分之五十的带宽。在网关308,在将相同的分发内容发送到客户端330、332、334和336时,以高优先级发送的相同的分发内容最多只能使用百分之三十的带宽。 
对网关所访问的特定网络内的带宽使用的实际影响通过调整在这些网关上执行的自适应带宽控制过程内的参数来调整。可以在初始设置网关时预先配置这些网关中的每个网关。此外,可以根据网络中的变化或管理员338所确定的其他变化来更改这些参数。这些变化可以通过下文中讨论的用户定义的设置来管理。 
现在参考图4,它是示出根据本发明的示例性实施例的自适应带宽控制中使用的组件的示意图。在此实例中,自适应发送器400将数据发送到接收器402、404和406。在此示例性实例中,自适应发送器400可以是诸如图3中的网关304之类的网关。具体地说,可以使用在图2的数据处理系统200中找到的硬件将自适应发送器400实现为图1中的服务器106。接收器402、404和406可以是诸如图3中的客户端310、312和314之类的客户端。还可以使用诸如图2中的数据处理系统200之类的数据处理系统实现这些接收器。通过将分组408发送到诸如路由器410之类的路由装置来发送数据。路由器410是用于根据在分组408内找到的路由数据将分组408路由或发送到适当接收器的设备。当路由器410被迫处理太多的分组时,它被称为缓冲(backlogged)路由器。换言之,缓冲路由器是在其队列中具有最大负荷或最多分组的路由器。发送器与接收器之间可以没有路由器或具有多个路由器。发送器是分组的源,而接收器是确认的源。当这些接收器接收分组408时,它们将确认412返回到自适应发送器400。在此实例中,确认是常规TCP/IP通信的一部分。 
在这些示例性实例中,自适应发送器400可以实现为诸如图1中的服务器104之类的数据处理系统中的过程。接收器402、404、406是在诸如图1中的客户端108、110和112之类的接收设备上执行的过程。具体地说,这些不同的过程可以在诸如图2中的数据处理系统200之类的数据处理系统上实现。 
自适应发送器400跟踪发送到每个接收器的分组408。还跟踪确认412的接收并将其用于确定诸如往返时间之类的参数。往返时间是从发送分组到收到确认之间的时间。在此实例中,往返时间基于自适应发送器400的 角度。 
此外,此信息用于标识块。块在发送任意分组时开始;将保留块中所有分组的统计数据直到接收器确认了开始块的初始分组。当返回任意分组的确认时,自适应发送器400将计算该分组块的统计信息。换言之,块中可以存在一个或多个分组,具体取决于在返回块开头中的任意分组的确认之前发送了多少分组。此外,自适应发送器400还标识窗口。窗口是在未收到确认的情况下网络中已发送的分组数。 
进而,自适应发送器400还估计路由器410中的分组数。使用当前的往返时间确定此信息以计算预期的未确认分组数与实际的未确认分组数。例如,如果基于当前的往返时间,网络上应存在五个分组并且自适应发送器400标识了八个未确认的分组,则自适应发送器400可以估计路由器410上存在三个分组。 
自适应发送器400通过当尝试在路由器410上保留选定数目的分组时增加或减小预期窗口大小来控制速度。较大的窗口传输速度较快,因为相对于其他网络业务,路由器410将花费更多的时间来处理自适应分组。以此方式,自适应发送器400可以调整路由器410的α和β参数。α是一个整数,其指示了在窗口中增加一个分组之前,每个连接在路由器410中的最小分组数。β是一个整数,其指示了在窗口中减少一个分组之前,每个连接在缓冲路由器中的最大分组数。这些参数允许通过根据α和β值调整窗口来小幅提高和降低速度。另一参数(即阈值)允许在块中百分之五十的分组满足该阈值的条件时快速降低速度。在此实例中,阈值是从基本往返时间到最大往返时间的时间的可配置百分比。 
现在参考图5,它是根据本发明的示例性实施例的传输控制协议/网际协议(TCP/IP)以及类似协议的示意图。TCP/IP以及类似的协议由通信架构500使用。在此实例中,通信架构500是一个四层系统。此架构包括应用层502、传输层504、网络层506以及链路层508。每个层都负责处理各种通信任务。链路层508还被称为数据链路层或网络接口层并且通常包括操作系统中的设备驱动程序以及计算机中的相应网络接口卡。该层处理与 所使用的网络介质(例如光缆或以太网电缆)进行物理连接的所有硬件细节。 
网络层506还被称为因特网层并处理网络周围的数据分组的移动。例如,网络层506处理通过网络传输的各个数据分组的路由。TCP/IP套件中的网络层506由多种协议组成,其中包括网际协议(IP)、网际控制消息协议(ICMP)以及网际组管理协议(IGMP)。 
接下来,传输层504提供网络层506与应用层508之间的接口来帮助在两个主机之间传输数据。传输层504涉及例如以下操作:为之下的网络层将来自应用层的数据分为适当大小的块,确认收到的分组以及设置超时以确保另一端确认所发送的分组。在TCP/IP协议套件中,存在两种明显不同的传输协议:TCP和用户数据报协议(UDP)。TCP提供可靠服务以确保在两个主机之间正确传输数据,其中包括遗失检测和重传服务。 
相反,UDP通过只是将称为数据报的数据分组从一个主机发送到另一个主机(而不提供任何保证数据正确传输的机制)来为应用层提供简单得多的服务。当使用UDP时,应用层必须执行可靠性功能。 
应用层502处理特定应用的细节。对于几乎所有的实施方式都存在许多通用的TCP/IP应用,其中包括用于远程登录的Telnet;文件传输协议(FTP);用于电子邮件的简单邮件传输协议(SMTP);以及简单网络管理协议(SNMP)。 
本发明的各方面在应用层502实现以便通过允许用户输入用户设置的方式来自适应地控制数据传输。以此方式,用户可以更改不同的设置以控制如何在网络上发送分组以用于自适应带宽控制。通过允许从应用级别输入用户设置,用户可以针对自适应带宽控制过程通常没有考虑的不同网络类型和不同网络状态进行更改。以此方式,可以考虑客户端上的状况之外的状况。例如,本发明的各方面允许用户根据因素的确定来更改设置,所述因素包括到接收器的路径中的跃点数和到接收器的路径中的具有大量业务或拥塞的链路数。 
尽管在应用层上实现了本发明的示例性实例,但是也可以在其他层上 实现其他过程。例如,可以在传输层504或网络层506内实现本发明的各方面,具体取决于特定的实施方式。 
现在参考图6,它是示出根据本发明的示例性实施例在提供自适应带宽控制的过程中使用的软件过程和组件的示意图。在此实例中,自适应发送器600是图4中的自适应发送器400内的过程的更详细示例。在此示例性实例中,自适应发送器600包含三个线程。发送线程602、拥塞控制线程604和分组嗅探线程606是用于自适应地将数据发送到一个或多个接收器的组件。发送线程602用于通过调用套接字来发送数据。套接字是将应用连接到诸如TCP/IP堆栈中的TCP/IP协议之类的网络协议的软件对象。 
发送线程602将请求608发送到拥塞控制线程604以询问发送线程602可以发送多少数据,拥塞控制线程604返回应答610,告知可以发送多少数据。发送线程602使用应答610发送要传输的分组612。这些分组存储在缓冲路由器队列614中,直到缓冲路由器将分组路由到它们的目的地。缓冲路由器队列614位于诸如图4中的路由器410之类的缓冲路由器上。当收到分组时,会将确认616返回到自适应发送器600。 
拥塞控制线程604通过执行自适应带宽控制过程来确定要发送的数据量。这些示例中的拥塞控制线程604使用自适应带宽控制过程来自适应地确定用于在网络上传输数据分组的传输率以响应网络状态的改变。这些网络状况包括例如除了自适应发送器处理的数据传输以外,还由于各种其他数据传输所导致的网络上的拥塞量。换言之,发送数据的速率将根据网络状况而改变。拥塞控制线程604根据用户设置的不同参数来确定不同的加快或减缓速率以维持最小的网络影响。 
使用下面的图7示出了网络状况的一个实例。在FTP服务器752将数据发送到FTP客户端754之前,路由器746的状况为闲置。这种情况允许自适应发送器700即使在优先级很低时也能以非常高的速度发送到接收器或端点。但是,FTP服务器752一开始将数据发送到FTP客户端754,路由器746就会变得拥塞。然后,自适应带宽控制过程将根据其优先级做出反应。在低优先级,自适应带宽控制过程将降低到几乎不发送任何数据的速 度,并且将对FTP分发具有最小的影响。在高优先级,该过程将以非常快的速度发送并导致FTP分发的速度降低。 
下面是自适应分发如何对网络状况做出反应的另一实例。一家银行安装了单个路由器来管理银行内10个系统的网络连接。银行通过此路由器连接到中央站点(其管理全国的300家银行)。在凌晨六点(银行开门之前),银行没有一个人,并且网络(具体地说,银行的单个路由器)处于闲置状态。此时,从中央站点以低优先级发送非常大的自适应分发。由于所述分发是银行路由器上的唯一业务,因此该分发开始加速达到使用百分之百的路由器带宽。这种情况持续到早上八点,此时客户开始使用银行中还必须与所述单个路由器共享网络的ATM以及贷款处理系统。所述自适应分发将立即发现有其他业务通过缓慢的链路(在这种情况下指银行的路由器)。由于自适应分发处于低优先级,因此它将变慢以使用非常小百分比的路由器带宽,从而对ATM和贷款处理业务具有最小影响。在下午五点,所述自适应分发仍在进行。当银行关门时,贷款处理业务减少。所述自适应分发将发觉网络负荷减小并在有更多带宽可用时继续加速。 
返回参考图6,此过程使用队列618中的信息。具体地说,分组嗅探线程606从网络中捕获分组和确认并将分组信息620和确认信息622放入队列618。分组嗅探线程606过滤分组和确认以将拥塞控制线程604所需的相应数据放入队列618。备选地,可以将所有分组和确认放入队列618以便由拥塞控制线程604进行处理。队列618中的信息由拥塞控制线程604用于标识参数,例如从发送分组到收到该分组的确认为止的往返时间。可以由拥塞控制线程604通过队列618中的信息标识和维护的其他参数包括块、窗口以及缓冲路由器中的分组。 
进而,本发明的各方面包括可用于设置用户定义的参数626的用户接口624。用户接口624由参数线程628提供。通常,将在系统上首次建立自适应过程时设置参数。可以通过用户接口624和参数线程628修改这些参数。用户定义的参数626存储在诸如盘之类的非易失性存储器中。稍后可以在启动自适应带宽过程时读取这些参数。在此示例性实例中,这些参 数包括一组参数,其中不同的值用于不同的优先级。在示例性实例中,根据分发的优先级级别改变的参数组包括阈值、β参数和最大等待时间。尽管用户可以为不同的优先级级别输入不同的值,但是这些参数可以被直接设置以便由自适应发送器600使用。用户接口624允许用户选择或输入不同的参数以便由拥塞控制线程604在执行自适应带宽控制过程时使用。 
在这些示例性实例中,本发明的各方面允许用户为五个参数输入或选择值。这五个参数包括阈值、往返时间最大变化、β参数、往返时间平滑以及最大等待时间。往返时间最大变化是用于限制当前测量的往返时间相对于先前计算的往返时间的变化量的参数。所述过程跟踪当前的往返时间、最大往返时间以及基本往返时间。 
拥塞控制线程在每个套接字的基础上并且按顺序跟踪往返时间。如果某个分组的往返时间为10,而第二个分组的往返时间为20,则第二个分组的往返时间受1.5倍往返时间最大变化值的限制。即使实际的往返时间为20,也将往返时间值记录为10乘以1.5,即15(10×1.5=15)。然后,之后的分组的往返时间最多为1.5乘以15(1.5×15),15是为第二个分组记录的往返时间。 
网络通常具有一定的随机性。此参数允许自适应带宽控制过程忽略过大或过小的往返时间,但是仍允许较大的往返时间,前提是这些较大的往返时间的出现频率足够高。此参数允许用户配置容许多少变化。 
这些实例中的往返时间平滑参数是一个整数,其用于指示往返时间测量值应由指数衰减平滑的程度。通过将先前测量值进行平均来执行指数衰减。当自适应带宽控制过程过度补偿往返时间中的波动而行为不规律时,此参数可以有所帮助。平滑通常在考虑最大变化参数之前发生。 
最大等待时间是指示在放弃并重置之前连接为了发送将等待的最大往返时间的倍数的参数。有时确认会在网络上丢失,从而导致发送器等待很长一段时间才能发送其他数据。这是一个重置值,用于在发送数据之前经过了太长时间的情况下重置自适应带宽控制过程。对于阈值参数,当分组的往返时间在套接字上发送时,时间往往落入选定的范围内。当网络处于 闲置时尤其如此。 
阈值是从最小往返时间到最大往返时间的路程百分比。例如,百分之二十的阈值表示阈值处于从基本往返时间到最大往返时间的路程的百分之二十。根据网络类型,往返时间具有或多或少的变化。不同的变化通常需要不同的阈值。例如,运行正常的局域网的往返时间变化非常小,从而允许较低的阈值。广域网的往返时间变化较大。对于此类网络,需要较高的阈值。用户可以配置此特定参数以考虑在发送数据时可能遇到的不同类型的网络。对于阈值参数,当分组的往返时间在套接字上发送时,时间往往落入选定的范围内。当网络闲置时尤其如此。 
如果分组的往返时间比阈值慢,则认为该分组很慢。如果认为块中百分之五十的分组很慢,则可以将窗口缩小一半,从而显著降低分发的速度。因此,允许用户配置该值使得可以考虑不同的网络类型和状况。 
本发明的各方面通过修改示例性实例中的三个参数来更改优先级。这些实例中针对不同优先级修改的参数包括阈值、β参数和最大等待时间。 
现在参考图7,它是示出根据本发明的示例性实施例的使用优先级将分发内容从自适应发送器发送到接收器的网络的示意图。在此实例中,自适应发送器700通过网络702将分发内容发送到客户端704、706、708、710、712、714、716、718、720、722、724、726、728、730、732、734、736、738、740和742。750、748、746和744是路由器。746是缓冲路由器。这些客户端与路由器744相连,路由器744又与路由器746相连。路由器746与路由器748相连。自适应发送器700通过服务器750与网络702相连。在此实例中,网络702包含二十个跃点。除了分发内容之外,文件传输协议(FTP)服务器752还可以将数据发送到FTP客户端754。在此实例中,FTP服务器752将数据发送到FTP客户端754,同时将分发内容从自适应发送器700发送到客户端。示例性实例导致FTP服务器产生导致路由器746处的链路拥塞的高业务需求。通过设置优先级,自适应发送器700可以在将分发内容发送到这些客户端时使用不同的带宽量。 
现在参考图8,它是示出根据本发明的示例性实施例的网络中带宽使 用的示意图。图8中的图示出了在诸如图7中示出的网络之类的网络传输数据时使用的网络带宽百分比。在此实例中,线802示出了用于不同类型分发的带宽量。在部分804中,仅示出了从图7中的FTP服务器752到FTP客户端754的FTP传输。在此分发中使用了百分之百的带宽。在为从图7中的自适应发送器700到客户端的分发设置了低优先级的情况下,图7中的路由器744分配大约百分之八十的带宽以用于部分806中示出的FTP传输。对于中等优先级,部分808中示出了使用大约百分之五十的带宽以用于FTP传输。如可以看到的,随着优先级增加,会将较少的带宽分配给FTP传输,而将较多的带宽分配给自适应发送器执行的分发。在部分810中,将高优先级给予到客户端的分发。如可以看到的,FTP传输降低到大约百分之三十带宽的水平。在部分812中,不使用自适应带宽控制过程。因此,在此特定部分中不使用任何所述的拥塞控制。 
现在参考图9,它是根据本发明的示例性实施例的配置参数的用户设置的过程的流程图。图9中示出的过程可以在图6中的参数线程628中实现。此过程用于允许用户定义或更改在自适应带宽控制中使用的参数。在这些实例中,所述参数包括阈值、往返时间最大变化、往返时间平滑、最大等待时间和β参数。具体地说,图9中示出的过程可用于设置不同网关的参数以便在诸如高、中、低之类的不同优先级级别中使用。在这些实例中,高优先级可以设置β值等于7,阈值等于99以及最大等待时间等于20。中优先级可以设置β值等于5,阈值等于40以及最大等待时间等于30。对于低优先级,设置β值等于3,阈值等于25以及最大等待时间等于40。这些特定设置是用于不同优先级级别的设置。可以通过所提供的用户接口来设置这些设置。 
进而,在这些示例性实例中,本发明的各方面还考虑了从来自网关的任何路由器或服务器到端点的影响。通过在自适应带宽控制过程中使用往返时间来提供此能力。 
通过呈现用户设置开始过程(步骤900)。可以在诸如图6中的用户接口624之类的用户接口中呈现这些设置。然后过程接收用户输入(步骤 902)。判定用户输入是否更改了参数中的设置(步骤904)。如果用户输入更改了设置,则使用新的设置替换原有设置(步骤906)。之后,过程返回步骤900以将这些设置呈现给用户。 
再次参考步骤904,如果用户输入未改变设置,则判定用户输入是否结束更改用户设置的过程(步骤908)。如果用户输入未结束此过程,则所述过程将返回步骤900。否则,将保存用户设置(步骤910)且之后过程终止。在这些实例中,将这些设置保存为图6中的用户定义的参数626。 
接下来参考图10,它是根据本发明的示例性实施例的发送线程的过程的流程图。图10中示出的过程可以在诸如图6中的发送线程602之类的发送线程中实现。 
通过发送有关可以将多少数据发送到拥塞控制线程的请求来开始此过程(步骤1000)。然后过程接收应答(步骤1002)。此应答包含作为拥塞控制线程所执行的自适应带宽控制过程的结果而可以发送的数据量。响应于接收到应答,过程发送对套接字的调用以便仅发送可接受的数据量(步骤1004)。随后,判定是否存在更多要发送的数据(步骤1006)。如果有更多的数据,则过程返回步骤1000。否则,过程终止。 
接下来参考图11,它是根据本发明的示例性实施例的分组嗅探线程的过程的流程图。图11中示出的过程可以在图6的分组嗅探线程606中实现。 
通过判定是否检测到分组来开始此过程(步骤1100)。如果检测到分组,则过程从分组提取分组标识符和时间戳(步骤1102)。然后过程将数据存储到队列中(步骤1104)。该队列可以由拥塞控制线程访问以便可以在确定往返时间和执行自适应带宽控制过程中使用所述数据。 
再次参考步骤1100,如果未检测到分组,则判定是否检测到确认(步骤1106)。如果未检测到确认,则过程返回步骤1100。如果在步骤1106中检测到确认,则提取确认的分组标识符和时间戳(步骤1108)。如上所述,过程然后继续到步骤1104。 
现在参考图12,它是根据本发明的示例性实施例的拥塞控制线程的过程的流程图,在此实例中,图12中示出的过程可以在图6的拥塞控制线程 604中实现。 
通过接收来自发送线程的请求开始此过程(步骤1200)。在这些实例中,拥塞控制线程所使用的自适应控制过程位于网关中。每个网关都针对用于优先级的不同参数具有自己的值。当发送线程开始发送分发内容时,发送线程将这些值与当前分发优先级一起传递给拥塞控制线程。拥塞控制线程将使用与当前分发优先级对应的值。可以在首次请求发送分发内容时在步骤1200中接收此信息。此请求将请求确定可以发送多少数据。之后,将从队列中取出数据(步骤1202)。此数据包括到达时间和分组标识符。然后,从队列中的数据确定往返时间(步骤1204)。然后根据分发的优先级获取参数(步骤1206)。这些参数来自图6中的用户定义的参数626。具体地说,用户定义的参数用于与选定优先级关联的特定参数组。在这些示例性实例中,针对不同优先级的具有不同设置的参数包括β参数、阈值和最大等待时间。然后,所述过程执行自适应带宽控制过程(步骤1208)。此过程可以例如是拥塞控制线程中包含的步骤。备选地,线程可以在步骤1208中调用函数或外部过程。然后过程获取结果(步骤1210),返回包含可以发送的数据量的应答(步骤1212),随后过程终止。 
现在参考图13,它是根据本发明的示例性实施例的执行自适应带宽控制的过程的流程图。图13中的过程是图12中的步骤1208的更详细描述。 
通过确定最小往返时间和最大往返时间来开始此过程(步骤1300)。随后,确定窗口(步骤1302)。然后过程确定每个确认的高于和低于阈值的分组数(步骤1304)。接下来,过程判定块中是否有百分之五十的分组高于阈值(步骤1306)。如果块中百分之五十的分组不高于阈值,将计算预期吞吐量(步骤1308)。在步骤1308中,将按照如下方式计算预期吞吐量: 
E ← W min RTT
E是预期吞吐量,W是窗口,minRTT是从通过队列获取的往返时间中所见的最小往返时间。随后,过程确定实际的吞吐量(步骤1310)。该实际吞 吐量使用以下公式来确定: 
A ← W observedRTT
A是实际吞吐量,W是窗口,observedRTT是使用发送分组和收到确认之间的时间差来测量的值。结果,预期吞吐量基于最小往返时间,因为预期在闲置网络上发送分组所用的时间始终为最小往返时间。实际吞吐量基于当前的网络状态,其中当前往返时间大于最小往返时间。在这些实例中,最小往返时间与基本往返时间相同。然后过程计算在缓冲路由器上的分组数(步骤1312)。使用以下公式估算实际的分组数: 
                Diff←(E-A)·minRTT 
Diff是缓冲路由器上的分组数,E是预期的吞吐量,A是实际吞吐量,minRTT是所见的最小往返时间。 
接下来,判定缓冲路由器上的分组数是否小于α值(步骤1314)。如上所述,α是一个整数,其指示在窗口中增加一个分组之前,每个连接在缓冲路由器中应存在的最小分组数。如果缓冲路由器上的分组数小于α值,则过程将窗口大小增加1(步骤1322)。此后,过程指示可以发送窗口大小的数据(步骤1318),然后过程终止。 
再次参考步骤1314,如果缓冲路由器上的分组数不小于α值,则判定分组数是否大于β值(步骤1316)。如果分组数大于β值,则将窗口大小减少1(步骤1324)。然后,过程按照上文所述继续到步骤1318。否则,过程继续到步骤1318而不更改窗口大小。 
再次参考步骤1306,如果块中有百分之五十的分组高于阈值,则将窗口缩小一半(步骤1320)。过程按照上文所述继续到步骤1318。 
上面图13中所示的过程基于对当前可用的带宽控制算法的修改,所述算法如Venkataramani等人的“TCP Nice:A Mechnism for BackgroundTransfers”(ACM SIGOPS Operating System Review,Vol.36,Issue SIWinter 2002,pp.1-15,其在此引入作为参考)中所述的Nice算法。 
本发明的各方面确定了多个影响图13中所述的自适应带宽控制过程 的实现的参数。下面列出了这些参数及其描述: 
NICE_ALPHA-指示在窗口增大之前每个连接在缓冲路由器中的最小分组数的整数。默认值为1。NICE_BAES_DISCARD-指示每个连接要丢弃的初始基本RTT测量数的整数。原因是当首次开始分发并且网络尚未过度饱和时,最初执行的基本RTT测量可能过低。默认值为3。 
NICE_BAES_SCALE-指定应用于由nice维护的全域最小RTT(v-baseRTT)的缩放因子的浮点数。如果网络偶尔允许不规则的短RTT,则将此参数设置为诸如1.1之类的较小正数将会有所帮助。默认值为0.0。 
NICE_BELOW_ONE-提供v_cwnd_below_one的下限的整数,它是对于小窗口,连接可以闲置的最大RTT数。默认值为48。 
NICE_BETA-指示在窗口缩小之前每个连接在缓冲路由器中的最大分组数的整数。这是β参数的默认值。默认值基于优先级。 
NICE_CLAMP-当设置箝位时,将窗口(snd_cwnd)的大小限制为多于网络中当前存在的分组数的数量不超过四。默认值已设置。 
NICE_COND-当设置时,发送线程等待由确认线程发信号通知的状况,而不是等待任意长的时间。默认值未设置。 
NICE_COND_RTX_Q-当设置时,拥塞线程将每个出站分组的估算添加或更新到用于计算RTT的rtx_q。拥塞线程的优点是它对出站时间的估算很准确,但是可能丢弃分组。默认值已设置。 
NICE_DYNAMIC_MSS-当设置时,自适应带宽控制过程将从MSS的低值开始,然后在每次嗅探到具有更大MSS的出站分组时增大该值。通过这种方式,MSS应能够快速逼近用于连接的MSS。默认值已设置。 
NICE_FAST-指定每个自适应带宽控制过程套接字将要处于快速启动阶段的毫秒数的整数。快速启动阶段越长,maxRTT的估算就越准确。但是,将此参数设置为较大的值会导致自适应带宽控制过程被实际禁用所述长度的时间。默认值为5000=5秒。 
NICE_FAST_RETURN-当设置时,快速启动阶段在第一次send()失败时退出,并显示错误EWOULDBLOCK。这可最大程度上缩短快速启动模式 花费的时间,其不影响网关,因为填充套接字的出站队列将非常快。默认值已设置。 
NICE_INTERFACE-将由nice所使用的接口(网卡标识符)。此时,自适应带宽控制过程无法动态地确定正确的接口。因此,如果接口不是第一个活动的接口,则需要手动进行设置。通常应设置为诸如“eth1”之类的值。默认值未设置。 
NICE_MAX_MULT-指定作为baseRTT倍数的maxRTT的最小值的浮点数。当设置时,它应有助于避免maxRTT的值过低以及所伴随的低吞吐量。默认值为0.0。 
NICE_MIN_MSS-指示要使用的最小MSS的整数。为了增加效率,考虑NICE_DEFAULT_MSS而忽略操作系统所提供的低值。默认值为1000。 
NICE_MIN_PACKET-指定一次应发送的最小数据量的整数。其与NICE_MIN_SEND不同,因为如果ok_to_send小于指定的值,它会被设置为0。这是为了避免出现拥塞控制线程持续告知发送线程发送诸如1字节之类的非常小的值的情况。通过将该值设置为10,拥塞控制线程将一直等待,直到可以发送至少10个字节(在计算指定10之前将一直返回0)。默认值为0。 
NICE_MIN_SEND-指定ok_to_send的最小值的整数,其表示拥塞控制线程将始终告知发送线程至少发送此数量的数据。通过将此参数设置为10,则即使自适应计算指定3,拥塞控制线程也会返回10。默认值为0。 
NICE_NANO_FIXED-指定内部回调函数select_delay()在被使用时暂停的微秒数的整数。 
当回调设置为select_delay()之外的值时,NICE_NANO_FIXED没有任何影响。当未设置时,根据需要多长时间才能有足够的空间发送上一个块的吞吐量(由上一个块中最快的分组的RTT和块大小确定)所指示的分组来动态地计算延迟。当设置为1234时,不调用nanosleep():未设置-动态地计算延迟,0-使用值0调用nanosleep(),在某些系统上可以延迟10ms,1234不调用nanosleep(),其他-使用指定的微秒数调用nanosleep(), 默认值为0。 
NICE_PCAP_TIMEOUT-指示在返回捕获的分组列表之前操作系统应等待的时长的整数。该变量对Linux系统没有影响,因为Linux系统只等待直至一个分组可用而不考虑花费的时间。在诸如Solaris之类的该变量具有影响的系统上,需要在当超时设置得很低时获取准确的RTT与当网络闲置时浪费CPU时间之间进行权衡。默认值为10ms(Solaris上支持的最低的值)。 
NICE_QUEUE_LIMIT-指定由嗅探线程写入并由拥塞线程读取的分组队列的最大长度的整数。队列越长,nice的响应性越弱,因为拥塞线程正在处理由分组通过队列所需的时间而导致延迟的信息。默认值为10。 
NICE_RTT_MAX_CHANGE-指示允许基本RTT和最大RTT相对于先前值变化的最大量的整数。当设置时,自适应带宽控制过程应更能容忍虚假的RTT极值。默认值为1.5。 
NICE_RTT_MIN_STDS-指示高于基本RTT的标准差的最小数的整数。RTT必须被认为高于基本RTT。默认值为0。 
NICE_RTT_SMOOTHING-指示RTT(往返时间)测量值应按指数衰减平滑的程度的整数,指数衰减通过将先前测量值进行平均来完成。当nice过度补偿RTT中的每个波动而行为不规律时,此参数会有用。默认值为50。 
NICE_RTT_STD_SMOOTH-与NICE_RTT_SMOOTHING类似的整数,但是用于标准差。标准差基于最近的RTT测量值的加权平均。默认值为0。 
NICE_SEND_RTX_Q-当设置时,发送线程将每个出站分组的估算添加或更新到用于计算RTT的rtx_q。发送线程的优点是它不会丢弃分组,但是对出站时间的估算可能不准确。默认值已设置。 
NICE_THROUGHPUT_AVG-指示要将多少最近分组包括在吞吐量计算中的整数。较大的值将导致吞吐量的计算更准确,但代价是响应性减弱。默认值为20。 
NICE_THROUGHPUT_START-指示必须在开始计算吞吐量之前发送的最小分组数的整数。这是为了考虑最初为空的慢链路队列,所以在套接字前 面部分的吞吐量不是套接字典型的吞吐量并应被忽略。默认值为100。 
NICE_WAIT_BASE-指示在放弃并重置snd_nxt和snd_una之前连接为了发送将等待的v_baseRTT(全局最小RTT)的倍数的整数。该值加上计算出的超时就是NICE_WAIT_MAX。默认值为0。 
NICE_WAIT_MAX-指示在放弃并重置之前连接为了发送将等待的v_maxRTT(全局最大RTT)的倍数的整数。默认值基于优先级。 
现在参考图14,它是根据本发明的示例性实施例的定制将分发内容发送到客户的接收器的过程的流程图。图14中所示的过程是用于为希望在其网络内安装定制分发系统的客户提供解决方案的过程。 
通过接收客户请求开始此过程(步骤1400)。该请求包括生成解决方案所需的信息。例如,客户网络内的网关的标识包含在请求中。此外,还可以包括通过网关访问的不同客户端的特征。另外,客户端发送不同类型的分发内容的要求也包括在示例性实例中。响应于接收到该请求,将分析客户端参数以便将分发内容发送到端点(步骤1402)。 
在此分析中,将确定用于不同优先级的参数的设置(步骤1404)。在这些示例性实例中,优先级包括阈值、β参数和最大等待时间。确定的参数可以用于各种优先级级别。例如,所示的实例使用三种优先级:高、中和低。取决于客户请求,可以使用不同数量的优先级级别,例如两种或四种级别。针对特定优先级级别生成的参数可以随不同的网关而有所不同,具体取决于客户端的请求和网关所在的网络的特征。 
此后,生成每个网关的自适应带宽控制的代码(步骤1406)。此代码被封装以便可以安装在特定网关处。此代码包括自适应带宽控制过程和该特定网关的参数。此代码还包括在网关上安装和设置自适应带宽控制过程所需的可执行文件。然后,将代码发送给客户(步骤1408)以便分发。以此方式,客户可以从响应请求的企业或其他供应商接收定制的分发系统。 
因此,本发明的各方面提供了用于调整数据传输速率的计算机实现的方法、装置和计算机可用程序代码。本发明的各方面在应用级别上接收用户输入以选择参数值。这些用户定义的参数在自适应带宽控制过程中使用 以确定可以通过网络发送到目的地的分组数。本发明的各方面允许用户根据不同的网络状况和特征来定义参数。以此方式,本发明的各方面允许根据变化的网络类型和状况来自适应地发送数据。 
本发明可以采取完全硬件实施例、完全软件实施例或同时包含硬件和软件元素的实施例的形式。在优选实施例中,本发明以软件实现,所述软件包括但不限于固件、驻留软件、微代码等。 
此外,本发明可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,所述计算机可用或计算机可读介质提供了可以被计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合的程序代码。出于在此说明的目的,计算机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结合的程序的有形装置。 
所述介质可以是电、磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前实例包括光盘-只读存储器(CD-ROM)、光盘-读/写(CR-R/W)和DVD。 
适于存储和/或执行程序代码的数据处理系统将包括至少一个通过系统总线直接或间接连接到存储器元件的处理器。所述存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速缓冲存储器。 
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接或通过中间I/O控制器与系统相连。 
网络适配器接口也可以被连接到系统,以使所述数据处理系统能够通过中间专用或公共网络变得与其他数据处理系统或远程打印机或存储设备相连。调制解调器、电缆调制解调器以及以太网卡只是少数几种当前可用的网络适配器类型。 
出于示例和说明目的给出了对本发明的描述,并且所述描述并非旨在是穷举的或是将本发明限于所公开的形式。对于本领域的技术人员来说,许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理、实际应用,并且当适合于所构想的特定使用时,使得本领域的其他技术人员能够理解本发明的具有各种修改的各种实施例。 

Claims (8)

1.一种用于自适应地控制数据传输的计算机实现的方法,所述计算机实现的方法包括:
为多个网关中的特定网关配置参数组,其中所述特定网关的参数组不同于所述多个网关中的其他网关的参数组;
在多个网关处接收来自源的数据以使用选定优先级进行分发;以及
使用所述选定优先级将所述数据从所述多个网关传输到多个接收器,其中所述多个网关中的每个网关都具有自适应带宽控制过程和用于控制所述自适应带宽控制过程的相应参数组以便以所述选定优先级发送数据,其中所述自适应带宽控制过程考虑了从所述多个网关中的一个网关到所述分发的接收器的路径中的拥塞,并且其中当为所述多个网关中的不同网关的参数组设置了不同的值时,从每个网关进行的具有所述选定优先级的数据传输使用的带宽不同于所述多个网关中的不同网关进行的具有所述选定优先级的数据传输使用的带宽。
2.根据权利要求1所述的计算机实现的方法,其中所述参数组包括阈值、β参数和最大等待时间。
3.根据权利要求1所述的计算机实现的方法,其中所述数据包括数据文件、应用更新以及病毒修补程序之一。
4.一种用于自适应地控制数据传输的计算机实现的装置,所述计算机实现的装置包括:
用于为多个网关中的特定网关配置参数组的模块,其中所述特定网关的参数组不同于所述多个网关中的其他网关的参数组;
用于在多个网关处接收来自源的数据以使用选定优先级进行分发的模块;以及
用于使用所述选定优先级将所述数据从所述多个网关传输到多个接收器的模块,其中所述多个网关中的每个网关都具有自适应带宽控制过程和用于控制所述自适应带宽控制过程的相应参数组以便以所述选定优先级发送数据,其中所述自适应带宽控制过程考虑了从所述多个网关中的一个网关到所述分发的接收器的路径中的拥塞,并且其中当为所述多个网关中的不同网关的参数组设置了不同的值时,从每个网关进行的具有所述选定优先级的数据传输使用的带宽不同于所述多个网关中的不同网关进行的具有所述选定优先级的数据传输使用的带宽。
5.根据权利要求4所述的计算机实现的装置,其中所述参数组包括阈值、β参数和最大等待时间。
6.根据权利要求4所述的计算机实现的装置,其中所述数据包括数据文件、应用更新以及病毒修补程序之一。
7.一种用于向客户端提供定制的数据传输的方法,所述方法包括:
从客户端接收对定制的数据传输的请求,其中所述请求包括网络特征和网关标识;
生成定制参数组,其中根据所述网关标识和所述网络特征将每个参数组分配给网关;
将所述定制参数组发送给所述客户端以与计算机可用程序代码一起使用,以便执行以下操作:在多个网关处接收来自源的数据以使用选定优先级进行分发;以及使用所述选定优先级将所述数据从所述多个网关传输到多个接收器,其中所述多个网关中的每个网关都具有自适应带宽控制过程和用于控制所述自适应带宽控制过程的相应参数组以便以所述选定优先级发送数据,并且其中当为所述多个网关中的不同网关的参数组设置了不同的值时,从每个网关进行的具有所述选定优先级的数据传输使用的带宽不同于所述多个网关中的不同网关进行的具有所述选定优先级的数据传输使用的带宽。
8.根据权利要求7所述的方法,其中所述发送步骤进一步包括与所述定制参数组一起发送所述计算机可用程序代码。
CN2006800390152A 2005-10-21 2006-10-05 自适应带宽控制的方法和装置 Expired - Fee Related CN101292475B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/256,259 2005-10-21
US11/256,259 US7558271B2 (en) 2005-10-21 2005-10-21 Method and apparatus for adaptive bandwidth control with defined priorities for different networks
PCT/EP2006/067094 WO2007045561A1 (en) 2005-10-21 2006-10-05 Adaptive bandwidth control

Publications (2)

Publication Number Publication Date
CN101292475A CN101292475A (zh) 2008-10-22
CN101292475B true CN101292475B (zh) 2012-05-02

Family

ID=37508272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800390152A Expired - Fee Related CN101292475B (zh) 2005-10-21 2006-10-05 自适应带宽控制的方法和装置

Country Status (11)

Country Link
US (5) US7558271B2 (zh)
EP (1) EP1946497B1 (zh)
JP (1) JP4848425B2 (zh)
KR (1) KR100992035B1 (zh)
CN (1) CN101292475B (zh)
AT (1) ATE504138T1 (zh)
BR (1) BRPI0617705B1 (zh)
CA (1) CA2626718C (zh)
DE (1) DE602006021045D1 (zh)
TW (1) TWI422187B (zh)
WO (1) WO2007045561A1 (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4919608B2 (ja) * 2005-03-02 2012-04-18 株式会社日立製作所 パケット転送装置
US20070091922A1 (en) * 2005-10-21 2007-04-26 Steven Elliot Method and apparatus for adaptive bandwidth control with a bandwidth guarantee
US7474614B2 (en) * 2005-10-21 2009-01-06 International Business Machines Corporation Method and apparatus for adaptive bandwidth control with user settings
US7558271B2 (en) * 2005-10-21 2009-07-07 International Business Machines Corporation Method and apparatus for adaptive bandwidth control with defined priorities for different networks
US8937957B2 (en) * 2006-02-10 2015-01-20 Alcatel Lucent Intelligent media gateway selection for multimedia communication sessions
US8862680B2 (en) * 2006-05-01 2014-10-14 The Boeing Company Methods and systems for data prioritization
TWI314688B (en) * 2006-06-09 2009-09-11 Asustek Comp Inc Computer and main circuit board thereof
US8635380B2 (en) * 2007-12-20 2014-01-21 Intel Corporation Method, system and apparatus for handling events for partitions in a socket with sub-socket partitioning
US8370508B2 (en) * 2007-12-20 2013-02-05 Intel Corporation Method, system and apparatus for main memory access subsystem usage to different partitions in a socket with sub-socket partitioning
US8706924B2 (en) * 2008-08-14 2014-04-22 Via Technologies, Inc. PCI-express data link transmitter employing a plurality of dynamically selectable data transmission priority rules
EP2438716B1 (en) * 2009-06-03 2013-03-06 Telefonaktiebolaget LM Ericsson (publ) Congestion-based traffic metering
US9178822B2 (en) 2009-07-17 2015-11-03 Koninklijke Kpn N.V. Congestion control in a telecommunications network
US8966110B2 (en) * 2009-09-14 2015-02-24 International Business Machines Corporation Dynamic bandwidth throttling
US9019854B2 (en) * 2010-04-26 2015-04-28 Telefonaktiebolaget L M Ericsson (Publ) Method for setting and adjusting a parameter dependent on a round trip time
US8972551B1 (en) * 2010-04-27 2015-03-03 Amazon Technologies, Inc. Prioritizing service requests
US9183109B2 (en) * 2010-05-25 2015-11-10 Intel Corporation Method and system for analyzing the performance of multi-threaded applications
US9125068B2 (en) 2010-06-04 2015-09-01 Ixia Methods, systems, and computer readable media for simulating realistic movement of user equipment in a long term evolution (LTE) network
US8351325B2 (en) 2010-08-18 2013-01-08 Yr20 Method and system for layer-2 pseudo-wire rapid-deployment service over unknown internet protocol networks
US9154979B2 (en) * 2011-12-14 2015-10-06 Ixia Scalable architecture for long term evolution (LTE) multiple user equipment (multi-UE) simulation
US9204325B2 (en) 2011-12-20 2015-12-01 Ixia Methods, systems, and computer readable media for reducing the impact of false downlink control information (DCI) detection in long term evolution (LTE) physical downlink control channel (PDCCH) data
US9071995B2 (en) 2012-01-17 2015-06-30 Ixia Methods, systems, and computer readable media for long term evolution (LTE) uplink data processing
CN103312740B (zh) * 2012-03-09 2018-04-17 腾讯科技(深圳)有限公司 一种p2p网络策略的生成方法和装置
US9131000B2 (en) 2012-04-13 2015-09-08 Ixia Methods, systems, and computer readable media for heuristics-based adaptive protocol parsing
US20140101424A1 (en) * 2012-10-05 2014-04-10 Cisco Technology, Inc. Cooperative Boot Techniques for an Enterprise Computing System
US9559906B2 (en) * 2013-01-11 2017-01-31 Microsoft Technology Licensing, Llc Server load management
US9198065B2 (en) 2013-03-15 2015-11-24 Ixia Methods, systems, and computer readable media for utilizing adaptive symbol processing in a multiple user equipment (multi-UE) simulator
US9065811B2 (en) * 2013-04-04 2015-06-23 Ericsson Television Inc. Methods, apparatus, and computer program products for communicating content files based on destination priority
EP3132640B1 (en) * 2014-04-14 2018-07-04 Hughes Network Systems, LLC Apparatus and method for a bandwidth allocation approach in a shared bandwidth communications system
CN106164880B (zh) * 2014-04-16 2020-03-27 歌乐株式会社 数据传输系统、控制服务器以及数据传输方法
JP6507882B2 (ja) * 2015-06-26 2019-05-08 セイコーエプソン株式会社 ネットワークシステム、及び、ネットワークシステムの制御方法
CN105162717B (zh) * 2015-09-21 2018-11-09 中国人民解放军国防科学技术大学 一种用于rdss卫星通信系统入站流量的控制方法及系统
US10405365B2 (en) * 2015-12-16 2019-09-03 At&T Intellectual Property I, L.P. Method and apparatus for web browsing on multihomed mobile devices
FR3067148B1 (fr) * 2017-05-30 2021-09-17 Electricite De France Mise a jour de logiciels metiers et/ou de configurations d'equipements d'un reseau de distribution electrique
CN107633032A (zh) * 2017-09-07 2018-01-26 中山市明阳电器有限公司 一种智能网关的数据处理方法
US10504274B2 (en) * 2018-01-05 2019-12-10 Microsoft Technology Licensing, Llc Fusing, texturing, and rendering views of dynamic three-dimensional models
CN110868364B (zh) * 2018-08-28 2023-04-18 阿里巴巴集团控股有限公司 一种带宽隔离装置及方法
CN109587718B (zh) * 2018-12-19 2020-02-07 江山雷钧智能制造技术有限公司 一种基于移动终端定位的区域路由器控制系统
CN109561481B (zh) * 2018-12-21 2021-05-07 惠州Tcl移动通信有限公司 一种数据发送方法、终端和存储介质
US11301232B2 (en) 2019-05-29 2022-04-12 Microsoft Technology Licensing, Llc Update management service for enterprise computing environments
CN110177056B (zh) * 2019-06-06 2023-03-24 杭州商湾网络科技有限公司 一种自动适应的带宽控制方法
US11915045B2 (en) * 2021-06-18 2024-02-27 International Business Machines Corporation Adjusting store gather window duration in a data processing system supporting simultaneous multithreading

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002052768A2 (en) * 2000-12-22 2002-07-04 Radiance Technologies, Inc. System and method for scheduling and executing data transfers over a network
WO2002063891A1 (en) * 2001-02-06 2002-08-15 Harris Corporation Managing burst profile characteristics in tdm systems
CN1529471A (zh) * 2003-10-17 2004-09-15 北京邮电大学 在无线局域网中保证高优先级用户的带宽的实现方法
CN1588827A (zh) * 2004-08-12 2005-03-02 上海交通大学 光突发交换中的自适应信道预留和搜索方法

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05260045A (ja) 1992-01-14 1993-10-08 Ricoh Co Ltd デ−タ端末装置の通信方法
WO1996027965A1 (en) 1995-03-08 1996-09-12 Oxford Brookes University Broadband swithing network
FI972718A0 (fi) * 1996-07-02 1997-06-24 More Magic Software Mms Oy Foerfaranden och arrangemang foer distribution av ett anvaendargraenssnitt
US6961341B1 (en) 1996-07-02 2005-11-01 Microsoft Corporation Adaptive bandwidth throttling for network services
US6088578A (en) 1998-03-26 2000-07-11 Nortel Networks Corporation Burst request method and apparatus for CDMA high speed data
US6366761B1 (en) 1998-10-06 2002-04-02 Teledesic Llc Priority-based bandwidth allocation and bandwidth-on-demand in a low-earth-orbit satellite data communication network
EP1077559A1 (en) 1999-08-17 2001-02-21 Telefonaktiebolaget Lm Ericsson Method and device for determining a time-parameter
US20050259682A1 (en) * 2000-02-03 2005-11-24 Yuval Yosef Broadcast system
JP2002044136A (ja) * 2000-07-25 2002-02-08 Hitachi Ltd マルチプロトコルネットワーク用のフロー制御装置
US20020078164A1 (en) 2000-12-13 2002-06-20 Marnetics Ltd. System and method for data transfer acceleration in a TCP network environment
US6747994B2 (en) * 2001-10-17 2004-06-08 Qualcomm, Incorporated Selecting optimal transmit formats for transmissions over allocated time durations
GB0216728D0 (en) 2002-07-18 2002-08-28 British Telecomm Network resource control
US7418494B2 (en) * 2002-07-25 2008-08-26 Intellectual Ventures Holding 40 Llc Method and system for background replication of data objects
JP3917042B2 (ja) 2002-08-23 2007-05-23 東日本電信電話株式会社 フレーム転送ネットワークにおけるフレーム送信速度制御方法およびフレーム転送装置に接続されるユーザ端末
JP3828481B2 (ja) 2002-10-30 2006-10-04 株式会社日立コミュニケーションテクノロジー データフレーム伝送システム
US6947409B2 (en) * 2003-03-17 2005-09-20 Sony Corporation Bandwidth management of virtual networks on a shared network
JP4223901B2 (ja) * 2003-09-03 2009-02-12 富士通株式会社 通信中継方法及び装置
US20070008884A1 (en) * 2003-10-08 2007-01-11 Bob Tang Immediate ready implementation of virtually congestion free guarantedd service capable network
US20050108444A1 (en) 2003-11-19 2005-05-19 Flauaus Gary R. Method of detecting and monitoring fabric congestion
JP3853784B2 (ja) * 2003-12-19 2006-12-06 エヌ・ティ・ティ・アドバンステクノロジ株式会社 データ通信管理方法
US7688746B2 (en) 2003-12-29 2010-03-30 Intel Corporation Method and system for dynamic resource allocation
EP1610502B1 (en) * 2004-06-21 2011-08-03 Panasonic Corporation Adaptive and scalable QOS architecture for single-bearer multicast/broadcast services
US8125910B2 (en) 2004-06-25 2012-02-28 Nec Corporation Communication system
US7796517B2 (en) 2004-06-28 2010-09-14 Minghua Chen Optimization of streaming data throughput in unreliable networks
US7423977B1 (en) 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
WO2006092645A1 (en) * 2005-03-03 2006-09-08 Telefonaktiebolaget Lm Ericsson (Publ) Ip multiservice network and method for making resource reservations for priority traffic
JP4335859B2 (ja) 2005-09-15 2009-09-30 株式会社日立エルジーデータストレージ 情報記録再生装置及び情報再生装置
US8259566B2 (en) * 2005-09-20 2012-09-04 Qualcomm Incorporated Adaptive quality of service policy for dynamic networks
ATE511258T1 (de) 2005-09-30 2011-06-15 Research In Motion Ltd Verfahren und vorrichtungen zum dynamischen justieren einer datenpaket-fenstergrösse für die datenpaketübertragung in einem drahtlosen kommunikationsnetz
US20070091922A1 (en) 2005-10-21 2007-04-26 Steven Elliot Method and apparatus for adaptive bandwidth control with a bandwidth guarantee
US7474614B2 (en) 2005-10-21 2009-01-06 International Business Machines Corporation Method and apparatus for adaptive bandwidth control with user settings
US7558271B2 (en) 2005-10-21 2009-07-07 International Business Machines Corporation Method and apparatus for adaptive bandwidth control with defined priorities for different networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002052768A2 (en) * 2000-12-22 2002-07-04 Radiance Technologies, Inc. System and method for scheduling and executing data transfers over a network
WO2002063891A1 (en) * 2001-02-06 2002-08-15 Harris Corporation Managing burst profile characteristics in tdm systems
CN1498461A (zh) * 2001-02-06 2004-05-19 ���﹫˾ 用于动态带宽分配的系统和方法
CN1529471A (zh) * 2003-10-17 2004-09-15 北京邮电大学 在无线局域网中保证高优先级用户的带宽的实现方法
CN1588827A (zh) * 2004-08-12 2005-03-02 上海交通大学 光突发交换中的自适应信道预留和搜索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BRAKMO L S ET AL.TCP TEGAS: NEW TECHNIQUES FOR CONGESTION DETECTION AND AVOIDANCE.《computer communication review》.1994,第24卷(第4期),24-35. *

Also Published As

Publication number Publication date
ATE504138T1 (de) 2011-04-15
US7558271B2 (en) 2009-07-07
WO2007045561A1 (en) 2007-04-26
US8094681B2 (en) 2012-01-10
US20120075993A1 (en) 2012-03-29
US20080240156A1 (en) 2008-10-02
US20070091921A1 (en) 2007-04-26
TW200729850A (en) 2007-08-01
US20100223395A1 (en) 2010-09-02
JP4848425B2 (ja) 2011-12-28
EP1946497A1 (en) 2008-07-23
CN101292475A (zh) 2008-10-22
KR100992035B1 (ko) 2010-11-05
BRPI0617705B1 (pt) 2019-07-16
EP1946497B1 (en) 2011-03-30
BRPI0617705A2 (pt) 2011-08-02
US8811424B2 (en) 2014-08-19
US20140355432A1 (en) 2014-12-04
KR20080068810A (ko) 2008-07-24
US8284796B2 (en) 2012-10-09
TWI422187B (zh) 2014-01-01
JP2009513046A (ja) 2009-03-26
CA2626718A1 (en) 2007-04-26
CA2626718C (en) 2014-09-09
DE602006021045D1 (de) 2011-05-12
US9985908B2 (en) 2018-05-29

Similar Documents

Publication Publication Date Title
CN101292475B (zh) 自适应带宽控制的方法和装置
CN1953351B (zh) 用于数据传输的自适应控制的方法和装置
CN102201977B (zh) 批量数据传输
US7016971B1 (en) Congestion management in a distributed computer system multiplying current variable injection rate with a constant to set new variable injection rate at source node
US7028204B2 (en) Method and apparatus for ethernet prioritized device clock synchronization
CN1953457A (zh) 自适应带宽控制的方法和系统
WO2000072169A1 (en) Congestion management in distributed computer system
US20140281019A1 (en) Network Transmission Adjustment Based On Application-Provided Transmission Metadata
WO2020247287A1 (en) Latency prediction and network message microtiming
US7613821B1 (en) Arrangement for reducing application execution based on a determined lack of flow control credits for a network channel
US7818447B1 (en) End-to-end broadcast based flow control in a switch fabric
US20240311333A1 (en) Hardware RDMA Transport Including New Hole and Received After a Hole Acknowledgements
Almasi Latency Optimization in Datacenters using Adaptive Transport and Reliable Training
Aweya et al. Weighted proportional window control of TCP traffic
Ramachandra et al. Information Feedback Based Architecture for Handling the Scalability Issues in the Reusable Cloud Components

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120502

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