CN1953457A - 自适应带宽控制的方法和系统 - Google Patents
自适应带宽控制的方法和系统 Download PDFInfo
- Publication number
- CN1953457A CN1953457A CNA2006101281987A CN200610128198A CN1953457A CN 1953457 A CN1953457 A CN 1953457A CN A2006101281987 A CNA2006101281987 A CN A2006101281987A CN 200610128198 A CN200610128198 A CN 200610128198A CN 1953457 A CN1953457 A CN 1953457A
- Authority
- CN
- China
- Prior art keywords
- data
- network
- grouping
- user
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种计算机实现的方法、设备和计算机可用程序代码,用来接收用于对应用层处的设定进行定义的用户输入,以便形成所接收设定的集合。使用所接收的设定来执行自适应带宽控制处理,以便识别出用于经由网络传输数据分组的传输速率。使用识别出的传输速率来经由所述网络传输所述数据分组。
Description
技术领域
本发明总体上涉及一种改善的数据处理系统,具体来讲,涉及一种用于传送数据的计算机实现的方法和设备。更具体地,本发明涉及一种用于自适应地控制用于传送数据的带宽的计算机实现的方法、设备和计算机可用程序代码。
背景技术
随着网络和因特网的普遍使用,商业通信已经发生革命。网络通常用于传送数据。许多分布式应用利用较大后台传送来改进服务质量。采用这些类型的后台传送,不要求用户等待这些传送在执行其它动作之前完成。包括例如数据备份、预取、企业数据发布、因特网内容发布和对等存储的大量应用和服务都采用后台传送。这些以及其它类型的应用增加了网络带宽的消耗。这些服务中的一些可能具有无限的带宽需求,其中越来越多带宽的使用提供越来越好的服务。
采用这些类型应用的一个问题在于:大部分网络只具有有限带宽量可用于传送数据。某些应用执行关键的功能,而其它应用执行非关键的功能。通常,后台传送是非关键的,并且可能使用所有可用带宽,这使关键性网络业务量减速。
已经采用了自适应带宽控制来自动适应于网络条件以便减少对网络的影响。目前,采用不同的自适应带宽控制处理和算法来控制由不同应用使用的带宽量,以避免拥塞。目前可用的自适应带宽控制处理考虑到服务器或客户端计算机上的本机接口级的网络条件,而无法考虑到传送数据时可能存在的其它条件。
因此,提供一种改进的计算机实现的方法、设备和计算机可用程序代码来自适应地控制传送数据处理中带宽的利用率,这是十分有益的。
发明内容
本发明提供了一种计算机实现的方法、设备和计算机可用程序代码,用来接收用于对应用层处的设定进行定义的用户输入,以便形成所接收设定的集合。自适应带宽控制处理是使用所接收的设定来执行的,以便识别出用于经由网络传输数据分组的传输速率。所述数据分组是使用识别出的传输速率来经由所述网络传输的。
附图说明
在所附权利要求书中阐明了本发明的新颖性特征。然而,当结合附图阅读并参照如下对例示性实施例的详细说明时,将会更好的理解本发明本身及其优选的使用方式、其它目标和优点,其中:
图1是可以实现本发明各方面的数据处理系统的网络的图示;
图2是可以实现本发明各方面的数据处理系统的框图;
图3是例示了根据本发明例示性实施例的用于自适应带宽控制的组件的图;
图4是根据本发明例示性实施例的传输控制协议/因特网协议(TCP/IP)和类似协议的图;
图5是例示了根据本发明例示性实施例的用于提供自适应带宽控制的软件处理和组件的图;
图6A和6B是根据本发明例示性实施例的用户设置阈值级别的示例;
图7是根据本发明例示性实施例的用于配置用户参数设定的处理的流程图;
图8是根据本发明例示性实施例的发送线程的处理的流程图;
图9是根据本发明例示性实施例的分组探测(sniffing)线程的处理的流程图;
图10是根据本发明例示性实施例的拥塞控制线程的处理的流程图;并且
图11是根据本发明例示性实施例的执行自适应带宽控制的处理的流程图。
具体实施方式
图1-2被提供为可以实现本发明实施例的数据处理环境的示例图。应该理解的是,就可以实现本发明实施例的各方面或实施例的环境而言,图1-2仅仅是例示性的,并非意在施加或者暗含任何限制。在不脱离本发明的精神和范围的情况下,可以对所示环境作出许多修改。
现在参考附图,图1描述了可以实现本发明各方面的数据处理系统的网络的图示。网络数据处理系统100是一种可以实现本发明实施例的计算机网络。网络数据处理系统100包含网络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控制器集线器204连接。音频适配器216、键盘以及鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动器(HDD)226、CD-ROM驱动器230、通用串行总线(USB)端口和其它通信端口232以及PCI/PCIe装置234经由总线238和总线240与南桥及I/O控制器集线器204连接。PCI/PCIe设备可以包括例如以太网适配器、附加卡和笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM224可以是例如闪存二进制输入/输出系统(BIOS)。
硬盘驱动器226和CD-ROM驱动器230经由总线240与南桥及I/O控制器集线器204连接。硬盘驱动器226和CD-ROM驱动器230例如可以使用电子集成驱动器(IDE)或者串行高级技术配件(SATA)接口。Super I/O(SIO)装置236可以连接至南桥及I/O控制器集线器204。
操作系统在处理单元206上运行,并且用来协调和提供对图2中数据处理系统200内的各种组件的控制。作为客户端,操作系统可以是可以购买到的操作系统,诸如MicrosoftWindowsXP(Microsoft和Windows是位于美国、其它国家或者它们两者中的微软公司的商标)。诸如JavaTM程序设计系统的面向对象编程系统可以与所述操作系统一起共同运行,并且提供从在数据处理系统200上执行的Java程序或者应用对所述操作系统的调用(Java是位于美国、其它国家或它们两者中的Sun Microsystems公司的商标)。
作为服务器,数据处理系统200可以是例如运行高级交互执行程序(AIX)操作系统或者LINUX操作系统的IBM eServerTM pSeries计算机系统(eServer、pSeries和AIX是位于美国、其它国家或它们两者中的国际商业机器公司的商标,而Linux是位于美国、其它国家或它们两者中的Linus Torvalds的商标)。数据处理系统200可以是对称多处理器(SMP)系统,其在处理单元206中包括多个处理器。或者,也可以采用单个处理器系统。
操作系统、面向对象编程系统以及应用或者程序的指令位于存储装置上,诸如硬盘驱动器226上,并且可以被载入主存储器208以便由处理单元206执行。本发明实施例的处理是由处理单元206使用计算机可用程序代码来执行的,所述计算机可用程序代码可以位于存储器中,诸如主存储器208、只读存储器224中,或者位于一个或多个外围设备226和230中。
本领域普通技术人员将理解的是,图1-2中的硬件可以根据实现方式而改变。诸如闪存、等效的非易失性存储器或者光盘驱动器等等的其它内部硬件或者外围设备均可附加于图1-2中所示的硬件或者代替所述硬件。同时,本发明的处理可以应用于多处理器数据处理系统。
在某些例示性示例中,数据处理系统200可以是个人数字助理(PDA),对其配置闪存,以便提供非易失性存储器来存储操作系统文件和/或用户生成的数据。
总线系统可以由一条或多条总线组成,诸如图2所示的总线238或者总线240。当然,总线系统可以使用任何类型的通信结构或者体系结构来实现,所述任何类型的通信结构或者体系结构是针对附属于所述结构或者体系结构的不同组件或者装置之间的数据传送提供的。通信单元可以包括用于发送和接收数据的一个或多个装置,诸如图2的调制解调器222或者网络适配器212。存储器例如可以是例如图2中的主存储器208、只读存储器224,或者北桥及存储器控制器集线器202中找到的高速缓存。图1-2中所示的示例和上述示例不意味着隐含对体系结构的限制。例如,除采取PDA的形式以外,数据处理系统200还可以是触摸屏计算机、膝上型计算机或者电话装置。
本发明提供了一种用于自适应地控制用于传送数据的带宽的计算机实现的方法、设备和计算机可用程序代码。本发明的各方面意识到目前使用的自适应带宽控制处理无法考虑到客户端处的那些网络条件以外的网络条件。本发明的各方面意识到不同网络具有不同特征,这会影响数据传送。本发明的各方面提供了不同机构来顾及这些类型的因素。本发明的各方面提供了设定参数以便控制如何在网络上发送单个数据分组以用于自适应带宽控制的能力。在应用级别上设置这些参数,以便允许用户基于特定条件来配置各种设定,所述特定条件可能存在于特定类型的通过其要发送数据分组的网络或者网络集合。虽然这些例示性示例致力于自适应带宽控制,但是本发明的各方面可以应用于任何类型的向着一个或多个目标数据处理系统的大批数据的传送。
现在转向图3,该图示出了根据本发明的例示性实施例的用于自适应带宽控制的组件。在此示例中,自适应发送器300向接收器302、304和306发送数据。所述数据由发送分组308发送到路由机构,诸如路由器310。路由器310是用来基于在分组308中找到的路由数据来向适当的接收器路由或者发送分组308的装置。当路由器310不得不处理太多分组时,将其称为积压(backlog)路由器。换言之,所述积压路由器是其队列中具有最多负载或者最大分组数的路由器。在发送器和接收器之间可以存在零个或更多个路由器。所述发送器是分组的源,而接收器是确认的源。当这些接收器接收到分组308时,它们向自适应发送器300返回确认312。在此示例中,所述确认是常规TCP/IP通信的一部分。
在这些例示性的示例中,自适应发送器300可以实现为数据处理系统中的处理,诸如图1中的服务器104。接收器302、304和306是可以在接收装置上执行的处理,诸如图1中的客户端108、110和112。特别的是,这些不同的处理可以在诸如图2中的数据处理系统200的数据处理系统上实现。
自适应发送器300跟踪发送到每一接收器的分组308。确认312的接收也被跟踪并且用来识别诸如往返时间的参数。往返时间是从发送分组开始到接收到确认为止的时间。在此示例中,所述往返时间基于自适应发送器300的角度。
另外,此信息用来识别块。当发送任意分组时,块开始;为块中的所有分组保留统计数据,直到作为所述块的起始的初始分组被接收器确认为止。当任意分组的确认被返回时,自适应发送器300为该块分组计算统计量。换言之,根据在所述块开始时任意分组的确认被返回之前、有多少分组被发送,一个或更多个分组可以存在于块中。另外,自适应发送器300还识别窗口。窗口是在没有接收到确认的情况下已经发送的网络中的分组数目。
此外,自适应发送器300还估计位于路由器310中的分组数目。此信息是使用当前往返时间来确定的,以便计算未确认分组的期望数目与未确认分组的实际数目。例如,如果因为当前往返时间而在网络上应该存在五个分组,而由自适应发送器300识别出八个未确认分组,那么自适应发送器300可以估计出有三个分组位于路由器310上。
自适应发送器300通过增大或者减小期望的窗口大小来控制速度,同时试图在路由器310上保留所选数目的分组。因为与其它网络业务量相比,在处理自适应分组的处理中路由器310花费更多时间,所以大窗口更为激进(aggresssive)。依照此方式,自适应发送器300可以调整路由器310的α和β参数。α是如下整数,其表明在窗口增大一个分组之前每一连接的路由器310中的最小分组数目。β是如下整数,其表明在窗口减去一个分组以前每一连接的积压路由器中的最大分组数目。这些参数通过基于α和β调节所述窗口来让速度较小地增大或减小。当块中百分之五十的分组满足此阈值条件时,其它参数、阈值使得速度迅速下降。在此示例中,阈值是从基础往返时间到最大往返时间的差值的可配置百分比。
转向图4,该图示出了根据本发明例示性实施例的传输控制协议/互联网协议(TCP/IP)和类似协议。TCP/IP和类似协议由通信体系结构400来利用。在此示例中,通信体系结构400是4层系统。该体系结构包括应用层402、传输层404、网络层406和链路层408。每一层负责处理各种通信任务。链路层408也被称为数据链路层或者网络接口层,并且通常在操作系统中包括设备驱动程序,并在计算机中包括相应的网络接口卡。此层处理与所使用的网络介质物理相接的所有硬件细节,其中所述网络介质诸如是光缆或者以太网电缆。
网络层406也被称为Internet层,并且处理数据分组在网络中的移动。例如,网络层406处理经由网络传送的各种数据分组的路由。TCP/IP组中的网络层406由多个协议组成,包括因特网协议(IP)、因特网控制信息协议(ICMP)和因特网组管理协议(IGMP)。
接下来,传输层404在网络层406和应用层402之间提供接口,其便于在两个主机计算机之间传送数据。传输层404涉及如下事情,诸如把从应用传递给它的数据划分为适当大小的块以用于下面的网络层,确认所接收的分组并且设置超时以便确定另一端确认了已发送的分组。在TCP/IP协议组中,存在两个明显不同的传输协议,TCP和用户数据报协议(UDP)。TCP提供可靠的服务以便确保数据在两个主机之间正确地传输,所述服务包括漏码检测和重传服务。
相反地,UDP向应用层提供非常简单的服务,即仅仅从一个主机向另一个主机发送被称为数据报的数据分组,而不提供任何机构来确保数据被正确地传送。当使用UDP时,应用层必须执行可靠性功能。
应用层402处理特定应用的细节。对于几乎每一实现方式而言都存在许多常见的TCP/IP应用,包括用于远程登录的Telnet;文件传送协议(FTP);用于电子邮件的简单邮件传送协议(SMTP);和简单网络管理协议(SNMP)。
在这些例示性的示例中,本发明的各方面在应用层402中被实现,以便依照允许由用户输入用户设定的方式来自适应地控制数据传送。依照此方式,用户可以改变不同的设定以控制如何在网络上发送分组以用于自适应带宽控制。通过允许从应用级别输入用户设定,用户可以对通常没有被自适应带宽控制处理所考虑的不同类型的网络和不同的网络条件作出改变。依照此方式,可以考虑除了客户端上的那些条件之外的条件。例如,本发明的各方面允许用户基于对某些因素的识别来改变设定,所述因素诸如是通向接收器的路径中的跳数和通向接收器路径中的具有大量业务量或拥塞的链路的数目。
现在转向图5,该图示出了根据本发明的例示性实施例的用于提供自适应带宽控制的软件处理和组件。在此示例中,自适应发送器500是图3中的自适应发送器300内的处理的更加详细的图示。在此例示性的示例中,自适应发送器500包含三个线程。发送线程502、拥塞控制线程504和分组探测线程506是用于向一个或更多个接收器自适应地发送数据的组件。发送线程502用来通过对套接字进行调用来发送数据。套接字是用于将应用连接到网络协议的软件对象,所述网络协议诸如是TCP/IP栈中的TCP/IP协议。发送线程502向拥塞控制线程504发送请求508来询问发送线程502可以发送多少数据。拥塞控制线程504返回应答510,告知可以发送多少数据。发送线程502使用应答510来发送分组512以便传输。这些分组被存储在积压路由器队列514中,直到积压路由器把分组路由到其目的地为止。积压路由器队列514位于积压路由器上,诸如图3中的路由器310上。当接收到分组时,把确认516返回到自适应发送器500。
拥塞控制线程504通过执行自适应带宽控制处理来识别要发送的数据量。这些示例中的拥塞控制线程504响应于网络条件方面的改变,使用自适应带宽控制处理来自适应地识别经由网络传输数据分组的传输速率。这些网络条件包括例如因由自适应发送器处理的那些传输以外的各种其它数据传输导致的网络上的拥塞量。换言之,可以发送数据的速率依照网络条件而改变。拥塞控制线程504识别不同的速率,这些速率基于由用户设定的不同参数而加速或者减速以保持最小网络影响。此处理使用位于队列518中的信息。特别的是,分组探测线程506从网络中抓取分组和确认,并且把分组信息520和确认信息522置于队列518中。分组探测线程506过滤所述分组和确认以便把拥塞控制线程504所需的适当数据置于队列518中。或者,可以把整个分组和确认置于队列518中以便由拥塞控制线程504处理。队列518中的信息由拥塞控制线程504使用以便识别参数,所述参数诸如是从发送分组开始到接收到分组确认为止的往返时间。可以由拥塞控制线程504从队列518中的信息中识别出并且维护的其它参数包括块、窗口和积压路由器中的分组。
此外,本发明的各方面包括用户接口524,其可用来设置用户定义的参数526。用户接口524由参数线程528提供。通常,当在系统上首次建立自适应处理时,设置所述参数。这些参数可以经由用户接口524和参数线程528来改变。把用户定义的参数526存储在诸如盘的非易失性存储器中。当自适应带宽处理启动时,可以随后读取这些参数。在执行自适应带宽控制处理时,用户接口524允许用户选择或者输入各种参数以供拥塞控制线程504使用。
在这些例示性的示例中,本发明的各方面允许用户输入或者选择五个参数的值。这五个参数包括阈值、往返时间最大变化、β、往返时间平滑和最大等待时间。往返时间最大变化是用于限制目前测量的往返时间相对于先前测量的往返时间的改变量的参数。所述处理跟踪当前往返时间、最大往返时间和基础往返时间。
拥塞控制线程对于每一套接字和序列跟踪所述往返时间。如果一个分组的往返时间为十,而第二分组的往返时间为二十,那么第二分组的往返时间受限于往返时间最大变化值一点五(1.5)。即便实际往返时间是二十,往返时间值也被记录为十乘以一点五,等于十五(10×1.5=15)。那么,后续分组可以具有至多一点五乘以十五(1.5×15)的往返时间,所述十五是为第二分组记录的。
网络通常具有一定量的随机性。此参数允许自适应带宽控制处理忽略过大或者过小的往返时间,但如果较大往返时间经常出现的话,也允许较大往返时间。此参数允许用户配置所容许的改变程度。
在此示例中,所述往返时间平滑参数是用于表明往返时间测量结果应该被指数级衰减所平滑的程度。所述指数级衰减是通过对先前测量结果取平均值来执行的。在自适应带宽控制处理因对往返时间波动的过度补偿而不规律地工作的情况下,此参数是十分有帮助的。所述平滑通常是在考虑最大改变参数以前进行的。
最大等待时间是表明在放弃并且重置之前,连接将等待发送的时间是最大往返时间的多少倍的参数。有时确认会在网络上丢失,这致使所述发送器在发送另外的数据之前等待很长时间。如果在发送数据之前已经过去了太多时间,那么最大等待时间作为重置值用于重置自适应带宽控制的处理。
所述阈值是从最小往返时间到最大往返时间的差值的百分比。例如,百分之二十的阈值指的是阈值是从基础往返时间到最大往返时间的差值的百分之二十。根据网络的类型,往返时间将具有更大或更小的变化。不同的变化通常要求不同的阈值。例如,性能良好的局域网将具有极少的往返时间变化,由此允许低阈值。广域网将具有更高的往返时间变化。采用此类型的网络,要求更高的阈值。这种特定的参数是用户可配置的,以便考虑在发送数据时可能遇到的不同类型的网络。相对于该阈值参数,当在套接字上发送分组的往返时间时,所述时间倾向于属于所选择的范围。当所述网络空闲时,这种情况尤其如此。
如果分组的往返时间慢于所述阈值,那么认为此分组较慢。如果块中的百分之五十的分组被认为是较慢,那么所述窗口可以被切成两半,这极大地降低了发布速度。因此,允许用户配置此值把不同网络类型和条件都考虑进来了。
现在转向图6A和6B,该图示出了根据本发明例示性实施例的用户设置阈值级别的示例。在图6A中,最小往返时间是四十万,最大往返时间是九十万。在这些示例中,所述往返时间以微秒为单位。
在此特定示例中,依照这样一种方式来设置阈值600,其中大多数往返时间出现在阈值600以上。在此示例中,所述阈值被设置为值八。因此,自适应带宽控制处理认为网络将被淹没(flooded),这意味着在网络上存在过多的业务量,而实际上所述网络是空闲的,而只不过具有大量噪声。在此示例中,淹没指的是存在太多的业务量。例如过多的分组存在于积压路由器上,这可能是由不同情况引起的,诸如在自适应带宽处理正在发送数据的同时,太多人员发送电子邮件消息或者察看网页。因此,相对于在没有认为所述网络被淹没的情况下所使用的速度,数据被极慢地发送。在此示例中,具有大于阈值的往返时间的分组被认为是较慢的。下面在图6B中,将阈值602设置为更高级别,以至于使大多数往返时间出现在阈值以下。在此示例中,所述阈值602被设置为值二十。
现在转向图7,该图示出了根据本发明的例示性实施例的用于配置用户参数设定的处理的流程图。图7中示出的处理可以在图5的发送线程502中实现。此处理用来允许用户定义或者改变用于自适应带宽控制的参数。在这些示例中,所述参数是阈值、往返时间最大变化、往返时间平滑、最大等待时间和β。
所述处理从提供用户设定开始(步骤700)。这些设定可以存在于用户接口中,诸如图5中的用户接口524。然后,所述处理接收用户输入(步骤702)。确定用户输入是否改变参数的设定(步骤704)。如果用户输入改变设定,那么把旧的设定替换为新设定(步骤706)。此后,所述处理返回到步骤700以便把这些设定呈现给用户。
再次参考步骤704,如果用户输入没有改变设定,那么确定用户输入是否将要结束改变用户设定的处理(步骤708)。如果所述用户输入没有要结束处理,那么所述处理返回到步骤700。否则,保存用户设定(步骤710),此后终止所述处理。在这些示例中,把这些设定保存为如图5所示的用户定义的参数526。
接着转向图8,该图示出了根据本发明的例示性实施例的发送线程的处理的流程图。图8中示出的处理可以在发送线程(诸如图5中的发送线程502)中实现。
所述处理开始于发送对于多少数据可以被发送给拥塞控制线程的请求(步骤800)。然后,所述处理接收应答(步骤802)。此应答包含可以发送的数据量,其作为拥塞控制线程所执行的自适应带宽控制处理的结果。响应于所述应答的接收,所述处理发送对于套接字的调用,以便只发送容许的数据量(步骤804)。此后,确定是否存在更多数据待发送(步骤806)。如果存在更多数据,那么所述处理返回到步骤800。否则,所述处理终止。
接着转向图9,该图示出了根据本发明的例示性实施例的分组探测线程的处理的流程图。图9中示出的处理可以在图5的分组探测线程506中实现。
通过确定是否已经检测到分组来开始所述处理(步骤900)。如果已经检测到分组,那么所述处理从所述分组中提取分组标识符以及时间戳(步骤902)。然后,所述处理把数据存储在队列中(步骤904)。此队列可由拥塞控制线程访问,以便所述数据可以用于确定往返时间并且执行自适应带宽控制处理。
再次参考步骤900,如果没有检测到分组,那么确定是否已经检测到确认(步骤906)。如果未检测到确认,那么所述处理返回到步骤900。如果已经在步骤906中检测到确认,那么提取用于所述确认的分组标识符和时间戳(步骤908)。然后,所述处理进行到如上所述的步骤904。
现在转向图10,该图示出了根据本发明的例示性实施例的拥塞控制线程的处理的流程图。在这些示例中,图10中示出的处理可以在图5的拥塞控制线程504中实现。
所述处理开始于接收来自发送线程的请求(步骤1000)。此请求要求识别有多少数据可能被发送。此后,从所述队列中取出数据(步骤1002)。此数据包括到达时间和分组标识符。此后,从所述队列中的数据中识别出往返时间(步骤1004)。然后获得用户定义的参数(步骤1006)。这些参数来自图5中的用户定义的参数526。此后,所述处理执行自适应带宽控制处理(步骤1008)。此处理例如可以是拥塞控制线程内包含的步骤。或者,在步骤1008中,所述线程可以调用函数或者外部进程。然后,所述处理获得结果(步骤1010),并且返回具有可发送数据量的应答(步骤1012),此后所述处理终止。
接着转向图11,该图示出了根据本发明的例示性实施例的执行自适应带宽控制处理的流程图。图11中所示的处理是图10中步骤1008的更加详细的描述。
所述处理开始于识别最小往返时间和最大往返时间(步骤1100)。此后,识别所述窗口(步骤1102)。然后,所述处理识别每一确认中超过和低于阈值的分组的数目(步骤1104)。接下来,所述处理确定块中是否有百分之五十的分组超出阈值(步骤1106)。如果块中百分之五十的分组没有超过阈值,那么计算期望的吞吐量(步骤1108)。在步骤1108,期望的吞吐量如下计算:
E是期望的吞吐量,W是窗口,而minRTT是根据从队列中获得的往返时间来看的最小往返时间。此后,所述处理识别实际吞吐量(步骤1110)。此实际吞吐量使用如下公式来识别:
A是实际吞吐量,W是窗口,而observedRTT是使用从发送分组到接收到确认的时间差而测量的值。因此,期望的吞吐量取决于最小往返时间,因为对于空闲网络期望最小往返时间总是发送分组的结果值。实际吞吐量取决于当前网络条件,其中当前往返时间大于最小往返时间。在这些示例中,最小往返时间与基础往返时间相同。然后,所述处理计算积压路由器上的分组数目(步骤1112)。分组的实际数目使用如下公式来估计:
Diff←(E-A)·minRTT
Diff是积压路由器上的分组数目,E是期望的吞吐量,A是实际吞吐量,而minRTT是最小往返时间。
接下来,确定积压路由器上的分组数目是否小于α(步骤1114)。如上所述,α是如下整数,其表明在窗口增大一个分组之前对于每一连接的应该存在于积压路由器中的分组数目。如果积压路由器上的分组数目小于α,那么所述处理使窗口加1(步骤1122)。此后,所述处理表明能够发送达到窗口大小的数据(步骤1118),此后处理终止。
再次参考步骤1114,如果积压路由器上的分组数目不小于α,那么确定分组数目是否大于β(步骤1116)。如果分组数目大于β,那么窗口大小减1(步骤1124)。然后,所述处理进行到如上所述的步骤1118。否则,在不改变窗口大小的情况下,所述处理进行到步骤1118。
返回参考步骤1106,如果块中百分之五十的分组超出阈值,那么窗口被减小一半(步骤1120)。然后,所述处理进行到如上所述的步骤1118。
上面图11中示出的处理是基于对目前可用带宽控制算法的修改,诸如在Venkataramani等人于ACM SIGOPS Operating SystemsReview,Vol.36,Issue SI Winter 2002,pp.1-15中的“TCP Nice:AMechanism for Background Transfers”中描述的Nice算法,通过参考将该篇文献的内容引入于此。
本发明的各方面已经认识到对图10中所述的自适应带宽控制处理的实现具有影响的多个参数。这些参数及其描述列出如下:
NICE_ALPHA——表明在增大窗口以前对于每一连接的积压路由器中最小分组数目的整数。默认值是1。NICE_BASE_DlSCARD——表明对于每一连接要丢弃的初始基础RTT测量数目的整数。理由是当首次起动发布并且网络尚未饱和时,最初可能做出不合理的低的基础RTT测量。默认值是3。
NICE_BASE_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_CONG_RTX_Q——当设置时,cong扩展线程将对rtx_q增加对每一输出分组的估计或利用该估计对rtx_q进行更新;其用来计算RTT。所述cong线程具有如下好处,即:其对输出时间的估计是十分准确的,但是它会丢掉分组。默认为设置。
NICE_DYNAMIC_MSS——当设置时,自适应带宽控制处理将开始于MSS的低值,并且每当探测到输出分组具有较大MSS时增大它。这样,所述MSS应该快速地接近于用于连接的MSS。默认为设置。
NICE_FAST——指定对于每一自适应带宽控制处理,套接字将要出现在快速起动阶段的毫秒数目的整数。快速起动阶段越长,对maxRTT的估计的准确性越高。然而,将其设置为较大值令自适应带宽控制处理在该时间量内事实上被禁止。默认值是5000=5秒。
NICE_FAST_RETURN——当设置时,快速起动阶段将由于具有EWOULDBLOCK错误的first failed send()而退出。其将使得在快速起动模式中花费的时间量最少,这将不会让步于(yield to)网关,因为填充套接字输出队列应该非常快。默认为设置。
NICE_INTERFACE——要由nice使用的接口(网卡标识符)。这时,自适应带宽控制处理不能动态地确定正确的接口。因此,如果不是第一有效接口,那么必需人工地设置接口。通常其往往被设置为类似于“eth1”等。默认为未设置。
NICE_MAX_MULT——指定maxRTT最小值为baseRTT倍数的浮点数。当设置时,它应该有助于防止maxRTT的不合理的低值,以及倾向于与该低值一起出现的较低吞吐量。默认值是0.0。
NICE_MIN_MSS——表明待使用的最小MSS的整数。为了效率,考虑到NICE_DEFAULT_MSS,忽略了由操作系统提供的较低值。默认值是1000。
NICE_MIN_PACKET——指定单次应该发送的最小数据量的整数。其与NICE_MIN_SEND的不同之处在于如果ok_to_send小于所指定的值,则将其设置为0值。这样做避免了拥塞控制线程持续告知发送线程发送类似1字节的非常小的值的情况。通过将该值设置为10,拥塞控制线程将等待,直到至少10字节可以被发送(返回0,直到计算指定10为止)。默认值是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——nanosleep()以值0被调用,其可以是某些系统上的10毫秒之久的延迟;1234——不调用nanosleep();其它——以所指定的毫秒数调用nanosleep(),默认值是0。
NICE_PCAP_TIMEOUT——表明在返回所获取的分组列表之前、操作系统应该等待多久的整数。此变量对Linux系统没有影响,这是因为Linux系统只等到一个分组可利用为止,而不管需要花多久。在此变量具有影响的系统上,诸如Solaris上,在将超时设置为低时获得准确RTT与网络空闲时消耗的CPU时间之间存在权衡。默认值是10毫秒(Solaris上最低支持的值)。
NICE_QUEUE_LIMIT——指定由cong线程从中读取的由探测线程写入的分组队列最大长度的整数。队列越长,nice的响应性就越差,因为cong线程正在作用于这样的信息,所述信息被延迟分组所花费的经过队列的时间。默认值是10。
NICE_RTT_MAX_CHANGE——表明允许基础RTT和maxRTT相对于先前值被改变的最大量的整数。当设置时,自适应带宽控制处理应该更为容忍非常极端的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添加对每一输出分组的估计或用该估计来更新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)的多少倍的整数。默认值取决于优先级。
由此,本发明的各方面提供了一种计算机实现的方法、设备和计算机可用程序代码来调节数据传送速率。本发明的各方面接收用户输入以便基于应用程序级别来选择参数值。这些用户定义的参数用于自适应带宽控制处理,以便识别可以经由网络送到目的地的分组数目。本发明的各方面允许用户基于不同网络条件和特性来定义参数。依照此方式,本发明的各方面允许基于网络类型和条件的改变来自适应地发送数据。
本发明可以采取全部硬件实现、全部软件实现或者包含硬件和软件元素两者的实现的形式。在优选的实施例中,本发明是以软件实现的,其包括但不局限于固件、常驻软件、微代码等等。
此外,本发明可以采取计算机程序产品的形式,可从计算机可用或者计算机可读介质访问,该介质提供程序代码以供计算机或者任何指令执行系统来使用或者与其结合使用。出于描述的目的,计算机可用或者计算机可读介质可以是任何有形的设备,其可以包含、存储、通信、传播或者传送程序,以供或者结合指令执行系统、设备和装置使用。
所述介质可以是电子的、磁性的、光学的、电磁的、红外的或者半导体系统(或者设备或器件)或者传播介质。计算机可读介质的示例包括半导体或者固态存储器、磁带、可移除的计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括只读光盘存储器(CD-ROM)、读/写光盘(CD-R/W)和DVD。
适合于存储和/或执行程序代码的数据处理系统将包括至少一个处理器,所述处理器经由系统总线直接或者间接地耦合到存储元件。所述存储元件可以包括在程序代码实际执行期间采用的本地存储器,大容量存储设备和高速缓冲存储器,其用于提供至少某些程序代码的临时存储,以便减少执行期间必须从大容量存储设备检索代码的次数。
输入/输出或者I/O设备(包括但不限于键盘、显示器、指示设备等等)可以直接或者经由中间I/O控制器耦合至所述系统。
网络适配器也可以耦合至所述系统,以便能够使数据处理系统通过中间私有或者公共网络来耦合至其它数据处理系统或者远程打印机或者存储设备。调制解调器、电缆调制解调器和以太网卡只是目前可用的网络适配器类型的一小部分。
已经出于例示和描述的目的呈现了对本发明的描述,但这不意味着把本发明穷举于或者限制于所公开的形式。许多修改和变化对于本领域普通技术人员将是显而易见的。选择并且描述这些实施例是为了更好地解释本发明的原理和实际应用,并且为了使本领域普通技术人员能够通过各种实施例而理解本发明,本发明具有适用于所设想的特定用途的各种修改。
Claims (13)
1.一种用于在传输数据时自适应地控制带宽的计算机实现的方法,所述计算机实现的方法包括如下步骤:
接收步骤,接收用于对应用层处的设定进行定义的用户输入,以便形成所接收设定的集合;
执行步骤,使用所接收的设定来执行自适应带宽控制处理,以便响应于网络条件的改变来自适应地识别用于经由网络传输数据分组的传输速率;以及
传输步骤,使用所述传输速率,经由所述网络来传输所述数据分组。
2.如权利要求1所述的计算机实现的方法,其中所述执行步骤是通过拥塞控制线程执行的。
3.如权利要求1所述的计算机实现的方法,其中所述传输步骤是通过发送线程执行的。
4.如权利要求1所述的计算机实现的方法,其中用户定义的参数包括:第一值,用于指定用来确定块是否被认为拥塞的阈值水平;第二值,用于限制当前往返时间相对于先前测量的往返时间的改变量;第三值,表明缩小窗口之前对于每一连接的积压路由器中的分组最大数目;第四值,表明对于往返时间测量的平滑;第五值,表明在重置自适应带宽控制处理之前,一连接等待确认所用的最大往返时间的倍数。
5.如权利要求1所述的计算机实现的方法,还包括:
收集所述数据分组的往返时间数据,其中所述往返时间数据是由自适应带宽控制处理使用的。
6.如权利要求1所述的计算机实现的方法,其中所述传输步骤包括:
以如下方式传输所述数据分组:使路由器上的数据分组数目大于α而小于β。
7.如权利要求1所述的计算机实现的方法,其中所述用户输入是使用用户接口接收的。
8.一种数据处理系统,包括:
总线;
连接至所述总线的通信单元;
连接至所述总线的存储器,其中所述存储器包括计算机可用程序代码集合;以及
连接至所述总线的处理器单元,其中所述处理器单元执行所述计算机可用程序代码集合,以便接收对应用层处的设定进行定义的用户输入来形成所接收设定的集合;使用所接收的设定来执行自适应带宽控制处理,以便响应于网络条件的改变来自适应地识别用于经由网络传输数据分组的传输速率;并且使用所述传输速率来经由网络传输数据分组。
9.如权利要求8所述的数据处理系统,其中所述处理器单元还执行计算机可用程序代码,以便使用所述传输速率来经由网络传输数据分组,该传输是由发送线程执行的。
10.如权利要求8所述的数据处理系统,其中用户定义的参数包括:第一值,用于指定用来确定块是否被认为拥塞的阈值水平;第二值,用于限制当前往返时间相对于先前测量的往返时间的改变量;第三值,表明缩小窗口之前对于每一连接的积压路由器中的分组最大数目;第四值,表明对于往返时间测量的平滑;第五值,表明在重置自适应带宽控制处理之前,一连接等待确认所用的最大往返时间倍数。
11.如权利要求8所述的数据处理系统,其中所述处理器单元还执行计算机可用程序代码,以便收集所述数据分组的往返时间数据,其中所述往返时间数据是由自适应带宽控制处理使用的。
12.如权利要求8所述的数据处理系统,其中所述处理器单元还执行计算机可用程序代码来以如下方式传输所述数据分组:使路由器上的数据分组数目大于α而小于β。
13.如权利要求8所述的数据处理系统,其中所述用户输入是使用用户接口接收的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/256,261 | 2005-10-21 | ||
US11/256,261 US7474614B2 (en) | 2005-10-21 | 2005-10-21 | Method and apparatus for adaptive bandwidth control with user settings |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1953457A true CN1953457A (zh) | 2007-04-25 |
Family
ID=37985331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006101281987A Pending CN1953457A (zh) | 2005-10-21 | 2006-09-06 | 自适应带宽控制的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7474614B2 (zh) |
CN (1) | CN1953457A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737292A (zh) * | 2018-04-18 | 2018-11-02 | 千寻位置网络有限公司 | 一种批量消息的发送方法及系统、服务器 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US20070091922A1 (en) * | 2005-10-21 | 2007-04-26 | Steven Elliot | Method and apparatus for adaptive bandwidth control with a bandwidth guarantee |
US8312120B2 (en) | 2006-08-22 | 2012-11-13 | Citrix Systems, Inc. | Systems and methods for providing dynamic spillover of virtual servers based on bandwidth |
US8493858B2 (en) * | 2006-08-22 | 2013-07-23 | Citrix Systems, Inc | Systems and methods for providing dynamic connection spillover among virtual servers |
US8966110B2 (en) * | 2009-09-14 | 2015-02-24 | International Business Machines Corporation | Dynamic bandwidth throttling |
US8274882B2 (en) | 2009-12-08 | 2012-09-25 | At&T Intellectual Property I, Lp | Bulk data transport in a network |
GB2478277B (en) * | 2010-02-25 | 2012-07-25 | Skype Ltd | Controlling packet transmission |
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 |
US9716285B2 (en) | 2011-01-19 | 2017-07-25 | Audi Ag | Porous nano-fiber mats to reinforce proton conducting membranes for PEM applications |
CN104301290B (zh) * | 2013-07-15 | 2018-11-09 | 联想(北京)有限公司 | 一种信息处理的方法及电子设备 |
CN110730105B (zh) * | 2015-05-29 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 图片数据传输方法、装置、设备及存储介质 |
US10592279B2 (en) * | 2016-06-23 | 2020-03-17 | Advanced Micro Devices, Inc. | Multi-processor apparatus and method of detection and acceleration of lagging tasks |
WO2020231944A1 (en) * | 2019-05-10 | 2020-11-19 | Clevernet, Inc. | Automatic communication network control |
CN113300971A (zh) * | 2021-02-05 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据处理系统及方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996027965A1 (en) | 1995-03-08 | 1996-09-12 | Oxford Brookes University | Broadband swithing network |
US6961341B1 (en) | 1996-07-02 | 2005-11-01 | Microsoft Corporation | Adaptive bandwidth throttling for network services |
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 |
US20020078164A1 (en) | 2000-12-13 | 2002-06-20 | Marnetics Ltd. | System and method for data transfer acceleration in a TCP network environment |
US7065586B2 (en) | 2000-12-22 | 2006-06-20 | Radiance Technologies, Inc. | System and method for scheduling and executing data transfers over a network |
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 |
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 |
US7688746B2 (en) | 2003-12-29 | 2010-03-30 | Intel Corporation | Method and system for dynamic resource allocation |
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 |
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 |
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 |
-
2005
- 2005-10-21 US US11/256,261 patent/US7474614B2/en active Active
-
2006
- 2006-09-06 CN CNA2006101281987A patent/CN1953457A/zh active Pending
-
2008
- 2008-06-13 US US12/138,982 patent/US7953113B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737292A (zh) * | 2018-04-18 | 2018-11-02 | 千寻位置网络有限公司 | 一种批量消息的发送方法及系统、服务器 |
Also Published As
Publication number | Publication date |
---|---|
US20080247419A1 (en) | 2008-10-09 |
US7953113B2 (en) | 2011-05-31 |
US20070091923A1 (en) | 2007-04-26 |
US7474614B2 (en) | 2009-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1953457A (zh) | 自适应带宽控制的方法和系统 | |
CN101292475B (zh) | 自适应带宽控制的方法和装置 | |
US8493859B2 (en) | Method and apparatus for adaptive bandwidth control with a bandwidth guarantee | |
CN102201977B (zh) | 批量数据传输 | |
US11418446B2 (en) | Technologies for congestion control for IP-routable RDMA over converged ethernet | |
US11558302B2 (en) | Data transmission method and apparatus | |
EP3806366B1 (en) | Method for controlling retransmission, communication interface, and electronic device | |
CN103141050B (zh) | 快速通道互联系统中数据包重传方法、节点 | |
CN113141314A (zh) | 一种拥塞控制方法及设备 | |
CN104780117A (zh) | 一种网络拥塞信息的获取方法和装置 | |
EP1744495B1 (en) | Round trip time estimation | |
US20070168823A1 (en) | Method and apparatus for preventing network outages | |
US20230131398A1 (en) | Managing proxy throughput between paired transport layer connections | |
CN117835388A (zh) | 基于积分的传感器数据传输方法、装置、设备和存储介质 | |
WO2017041569A1 (zh) | 业务数据传输方法及装置 | |
GB2360669A (en) | Improvements in or relating to internet access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20070425 |