CN1149793C - 用于数据流控制的方法和设备 - Google Patents
用于数据流控制的方法和设备 Download PDFInfo
- Publication number
- CN1149793C CN1149793C CNB998068543A CN99806854A CN1149793C CN 1149793 C CN1149793 C CN 1149793C CN B998068543 A CNB998068543 A CN B998068543A CN 99806854 A CN99806854 A CN 99806854A CN 1149793 C CN1149793 C CN 1149793C
- Authority
- CN
- China
- Prior art keywords
- value
- data
- link
- window
- bandwidth
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000008569 process Effects 0.000 claims abstract description 17
- 230000005540 biological transmission Effects 0.000 claims description 36
- 238000004891 communication Methods 0.000 claims description 31
- 230000000694 effects Effects 0.000 claims description 12
- 238000012986 modification Methods 0.000 description 14
- 230000004048 modification Effects 0.000 description 14
- 230000008901 benefit Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 238000005259 measurement Methods 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 238000012790 confirmation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005728 strengthening Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000233805 Phoenix Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000452 restraining effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- 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/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- 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]
Abstract
在分组交换连接中控制从发送端到接收端的数据量流的方法和设备,所述分组交换连接由多个通过路由器连接起来的链路组成,所述方法包括:控制所述的发送端以便根据所述数据量确定要发送的数据序列,自动确定分别与一个或者多个所述链路相关联的一个或者多个带宽值,并且在控制从发送端到接收端的序列流的过程中采用所述一个或者多个带宽值。因此便实现了可以直接考虑连接特性的流控制。
Description
技术领域
本发明涉及在分组交换连接中的数据流控制的方法和设备。
背景技术
所谓的因特网是一种包括多个不同的服务层的通信网络。最低层是硬件层,其上添加了不同功能的软件层。作为实例,所谓的万维网(WWW)是在由所谓的因特网协议(IP)提供的基本因特网层之上的一层。
因特网是一个分组交换网络,这里信息的基本结构是由因特网协议IP决定的。协议是一组规则,预定通信中的两方都必须遵守它们从而才能进行所述的通信。因特网协议IP规范了编址,即它确保在两个通信点之间的路由器能够发送数据分组给它们的目的地。IP分组由包含涉及正被发送的数据信息的分组头和包含数据本身的分组主体组成。
为了协助通信的两端之间数据的可靠传输,提供了另外一种协议,即传输控制协议(TCP)。TCP得到要被发送的数据,并将它分成给定的段。每个段有一个号码,因此可以由接收端来确认对给定段的接收,并且接收端可以以正确的顺序把信息放置在一起。TCP用它自己的分组头来承载它自己被这个协议所使用的信息。通过将TCP分组放入IP分组中来在因特网上发送它们,即TCP分组被封装在(更低一层的)IP分组中。这便是为什么穿越因特网的分组传送经常被称为TCP/IP的原因。
图2显示了数据100的分组主体,它被分成8个等长的数据段,分别被编号为1到8。作为实例,分组主体100的长度可以为8192字节,因此每个数据段将包含1024字节。必须指出的是实际需要发送的信息长度通常在7168字节与上面提及的8192字节之间,并且最后的数据段8将简单地用所谓的填充字符填满以便因此而得到等长的数据段。单个数据段的精确长度并不固定为上面所选的示例的1024字节,而是将由发送系统根据给定的制约因素,例如特定链路所允许的最大传输单元(MTU)来进行适当地选择。
TCP用来控制数据段的流的方法是“滑动窗口”的方法。这个概念在例如1994年由Addison Wesley出版的W.R.Stevens所写的“TCP/IP Illustrated(TCP/IP说明)”一书的第1卷第20和21章中进行了描述。
术语“窗口”描述了字节的数量,或者更一般地描述了以数据单元表示的数据量。根据TCP,接收端发送一个被称为“通告的”或者提供的窗口给发送端以响应来自发送端的用以启动通信的分组。不允许TCP发送端有明显多于由通告的窗口定义的数目的未确认分组。应当注意接收端在每一个应答消息或分组中发送通告的窗口。
通告的窗口通常与接收端一方的输入缓冲容量一致。因此,通告的窗口的功能是防止较快的发送端使较慢的接收端的输入缓冲溢出。
滑动窗口控制机制将在后面参考(说明图2中所示的发送数据量100的实例的)图3和4、以及参考说明滑动窗口控制原理的图5和6来进行解释。
图3说明了一个图2中所示的8个数据段的传输的实例,图中发送端被显示在左手边而接收端被显示在右手边。正如下面将更详细解释的,每个箭头都指示分组的发送,而双线的箭头相应于包含数据段的分组。各个分组的发送由参考号S1到S20说明,其中每个来自任何一方的发送行为也被称为一个段。这表示,一个包含图2的数据的分组通常将包含一个数据段。时间的方向是从上到下。
应当注意图3中显示的序列是为了解释流控制而进行了简化的,并且因此并不是所有的分组都带有一个参考号,因为这些涉及通信的其它方面。同样的一些带有参考号的段还带有更多的数据,但是这种辅助数据再一次涉及通信中流控制以外的其它方面,此处不再做说明。符号X:Y(Z)的意思是被发送的是字节号X到Y,它们总共组成Z。Ack X的意思是确认已接收最多达到号X的字节,并且Win X的意思是通告一个X字节的窗口。
发送端和接收端之间的段S1到S3涉及通信的建立,并且除了接收端宣布在段S2中的一个4096字节的窗口外对其将不做进一步的解释。发送端在段S4到S7中发送前三个数据段1到3,即字节1到1025、1025到2049和2049到3073。接收端在S7中确认已接收最多达到2049的字节,此处S7再一次通告了4096的窗口。为什么接收端不确认最多达到3073的原因对于解释流控制并不重要。有可能是,例如这个数据段在接收方的处理被延迟。接收端在段S8中确认最多达到3073的接收和通告一个3073的窗口。这样做的理由对于流控制的解释同样是不重要的。有可能是,例如在接收端的输入缓冲中仍旧有延迟,并且因此要用减小的窗口来防止溢出。发送端在段S9中发送又一个数据段,即字节3073到4097。这些在又通告一个4096窗口的段S10中得到确认。接着发送端在段S11到S13中发送三个数据段,即字节4097到5121、5121到6145和6145到7169。在段S14中,接收端只确认最多达到字节6145,但是继续通告一个4096的窗口。在段S15中,发送端发送最后的包含字节7169到8193的数据段,而接收端在段S16中确认最多达到8193的所有字节的接收。剩下的S17到S20的交换与流控制无关。
正如所见的,并不是每一个数据段都需要单独地进行确认,接收端也可以用一个确认消息来确认最多达到给定的段的多个数据段的接收。
图5显示了基于滑动窗口的流控制的原理。号码1到11指的是数据段,例如这些可以是图2中所示的数据段,或者也可以简单地是给定数目的字节。至于基于窗口的流控制的解释,重要的仅仅是要注意窗口200覆盖了一定数量的数据,这里处于左边界201和右边界202之间的控制窗口覆盖了数据段4到9。在图5的实例中,控制窗口是通告的窗口。(另一种控制窗口将在稍后描述。)窗口200的左边界的位置由已经(由发送端)发送和(由接收端)确认的数据段的数目决定。在图5中,这意味着数据段1到3已经被发送和被确认。
尽管上面的数据流是连同段序列的实例来进行解释的,应该注意TCP是一个面向流的协议,因此序列基础是以字节为单位的。因此来自接收端的确认消息并不表示接收到的段,更确切地说它们表示该序列数据中最多达到哪一个字节已经被接收。
发送端计算可用的窗口,即可以被发送的数据量,也就是整个窗口尺寸和已经发送但还未确认的数据量之间的差值。在图5中,从分界203到右边界202的可用窗口覆盖了数据段7到9。因此,这些数据可以被发送。在右边界202之外的数据段,即10、11等等要直到因窗口移动而覆盖到它们时才能被发送。窗口的移动将在后面解释。
图6显示了及时调整窗口的原理。由于接收端确认数据,所以在一段时间后窗口向右移动。两个边界201和202的相关移动增大或者减小了窗口的尺寸。通常用三个不同的术语来描述这种移动:左边界201向右移动被称为窗口关闭,右边界202向右移动被称为窗口打开,以及右边界202向左移动被称为窗口缩小。边界201、202的移动是由根据已经发送和确认多少数据而确定的左边界201位置,和由从给定的左边界201开始的、可确定右边界202的通告的窗口尺寸来控制。可能要注意的是左边界不向左移动,并且如果接收到一个暗示将左边界向左移动的确认(ACK),那么它应该是重复的ACK并且因而要被丢弃。
如果左边界201到达右边界202,那么作为结果的窗口200被称为零窗口。这使得发送端停止发送任何数据。
上面描述的流控制的原理参考图4说明,图4为图3中给定的实例解释了滑动窗口流控制。图的上部显示了图2的数据段,并且下面的条和箭头代表和说明了流控制窗口响应于发送端数据的发送和接收端的确认的及时移动和改变。正如所见的,发送端不必发送占满整个窗口的数据。每个来自接收端的确认将窗口向右滑动。窗口的尺寸可以如所示的由于从段S7到S8的改变而减小,但是窗口的右边界一定不能向左移动。同样,在发送确认之前接收端不必等待窗口被填满。
在上面的描述中,确定流控制的窗口是来自窗口的通告的或者提供的窗口。换句话说,通告的窗口是接收端用来影响流控制的工具,而流控制本身是自然地由发送端来执行的。正如已经提到的,接收端使用通告的窗口来防止其输入缓冲溢出。所以通告的窗口的尺寸通常是由接收过程来控制的。
除了较快的发送端会引起较慢的接收端溢出的问题外,还存在在网络上可能出现拥塞的问题。这是一个不会出现在连接的接收端而出现在发送和接收端之间的问题。正如公知的,在因特网上典型的连接是通过其它起路由器作用的组成部分来建立的,并且这些路由器可以由很多不同类型的硬件来连接,此处这样的在路由器之间的连接通常被称为链路。换句话说,从发送端去往接收端的分组将由路由器引导通过链路到达另一个路由器,直到它到达接收端。拥塞是在给定的链路没有大到足以(没有足够的传输容量)处理要通过所述链路发送的数据量时出现的。这可以在例如当数据在一个有大容量(“大管道”,例如快速的局域网)的链路上到达而从一个有较低容量(“小管道”,例如较慢的广域网)的链路离开时发生,或者在当多个输入流到达其输出容量小于输入总和的路由器时发生。
图7显示了拥塞的实例。在这个图中,包含有与图2中所示的相似数据段并且由此而带有号码1到8的分组通过有大的传输容量的链路300到达路由器R1。由R1向其中发送分组的链路301要小于链路300。应该注意分组由阴影线的区域代表,此处区域相应于分组的大小。这意味着在链路301处所示的分组3或者4的区域等于链路300中的分组5或者6的区域,或者等于链路302中的1和2的区域。正如所见的,R1起到了“瓶颈”的作用,因为它不能用象分组到达链路300时一样快的速度将分组发送到链路301。正如从图中也可见的,路由器R2仅仅能用象分组从低容量链路301到来时一样快的速度将分组放入链路302中。因此,最低容量的链路决定了分组的间距。
应该注意在图7的实例中假定接收端已经通告了一个相当于8个段的尺寸的窗口,因此发送端用象链路300接收8个段一样快的速度来发送所有8个段。还假定路由器R1有足够大的缓冲器来存储进入的分组直到它们能被发送出去。然而,这个后面的假定通常不能被实现,因此拥塞将会导致分组的丢弃,而这又意味着分组必须被重发,即传输中存在问题。
为了考虑拥塞,TCP中的数据流控制不仅根据上面描述的通告的窗口、而且根据所谓的拥塞窗口来执行。拥塞窗口是由被称为缓慢启动的例行程序以后面的方式来使用的。当建立一个新的连接时,拥塞窗口被初始化为一个数据段。在每次由发送端接收到确认时,拥塞窗口就增加一个段。上面解释的滑动窗口控制(参见图5和6)是利用通告的窗口或者拥塞的窗口中任何较小的一个来执行的。换句话说,如果拥塞窗口小于通告的窗口,那么图5中所示的控制窗口200将是拥塞窗口而不是通告的窗口。确定控制窗口的左边界的位置的过程恰恰是与结合图4、5和6的上面描述相同地执行的,而右边界的位置是由通告的和拥塞的窗口中最小的一个来确定的。
通告的窗口是由接收端来确定的,而拥塞窗口是由发送端来确定的。所以拥塞窗口是由发送端采用的流控制,而通告的窗口是由接收端采用的流控制。前者是基于发送端对可察觉的网络拥塞的估计,而后者则与接收端的可用缓冲空间的数量有关。
当通过使用上述的缓慢启动和拥塞窗口来执行滑动窗口流控制时,发送端通过发送一个段或者分组并且等待相应的确认ACK来启动。当接收到那个ACK时,拥塞窗口从一增加到二,并且可以发送两个段。通常,每个接收到的ACK使窗口增加一。所以,当这两个段中的每一个都被确认时,拥塞窗口就增加到四等等。这就导致了一个指数式的增加。应该注意指数式的增加并不是根据正常的时间,而是根据所谓的往返行程时间RTT的。RTT是在发送给定字节和接收相应确认消息之间经过的时间。正如结合图7来进行解释的,由于这个指数式的增加,拥塞窗口的尺寸可能会很快地增加到一个导致拥塞的值,尽管这个值仍旧小于通告的窗口。
拥塞通常会导致分组丢失,这可能会因为在通信中出现超时(在分组被发送时,一个超时时钟开始计时,并且如果没有在预先设定的时间间隔内接收到确认,则会发布一个超时)或者接收到重复的ACK而被注意到。
为了处理这个问题,提出了一种避免拥塞的方法,该方法在例如由W.R.Stevens所著的上面提及的书的第21.6章中描述。根据这种通常是与上述的缓慢启动方法一起实施的方法,保留了一个拥塞窗口值和缓慢启动门限值。拥塞窗口最初被设置为一个段而门限值被设置成允许的最大窗口尺寸(典型情况是65535字节)。控制窗口被选成通告的窗口和拥塞窗口中的最小者。当拥塞出现并且这个因发生超时而被注意到时,当前控制窗口的一半被存储作为门限值并且拥塞窗口被设置成一个段。超时是这样一种功能:根据它,定时器测量从发送分组开始的时间,并且如果在一个预定的时间间隔内没有接收到确认则发布一个超时警告。接着,一直采用缓慢启动方法(带有它的在窗口尺寸上的指数式的增加)直到控制窗口尺寸达到门限值,此后拥塞避免方法开始工作,它指示拥塞窗口以拥塞窗口的倒数值来递增,这导致拥塞窗口尺寸的线性增加。
另一种拥塞的指示是重复的确认的接收,此后拥塞窗口被设置成当前控制窗口的一半并且使用拥塞避免方法。关于TCP的超时和重复的确认以及对其的反应都是公知的,因此不需要做进一步的解释。
作为上述情况的结果,由TCP执行的基本流控制导致要由发送端为更多的带宽而持续探测。带宽被定义成数据传输的速率,即以每时间单位的数据为单位给出,例如比特/秒。这种用于带宽的持续探测,即便它是根据上述的使得拥塞窗口在一个特定点之后仅仅线性增加的拥塞避免方法来实现,仍会有这种结果,即:只要接收端通告了一个足够大的窗口,拥塞仍然会出现。
应该注意这个问题不限于TCP,它会出现在任何采用滑动窗口流控制的系统中。
EP-0 454 364 A2显示了有两个窗口的高速传输协议。该协议包括两个用于控制信息量的窗口,第一窗口被称为网络窗口,它被用于限制网络中的数据以便使网络缓冲资源可以被经济地确定大小,以及还以一种这样的方式来使用,以使得在通过网络传输的多个分组中不会有非常多的丢失,第二窗口被称为接收端流控制窗口并且通常要大于第一窗口。第二窗口被用于确保分组在接收端不被丢弃或者丢失。这个文件提到:通常第一窗口将被设置成所谓的带宽延迟乘积的值,这个值被定义为往返延迟与互连的发送端和接收端的网络带宽的乘积。术语带宽延迟乘积对于未确认的数据的量是同义的。
从EP-0 693 840 A1可知一种使用逐段流控制的系统,这里源端站在已建立的到目的端站的连接上定期地发送出控制信元,此处控制信元具有指示离散传输速率的标记的速率域。在一个周期的更新过程中,沿着源端站和目的端站之间连接的每个交换机都为该连接计算可用带宽。在每个控制信元的标记的速率域中的值被与当前分配的可用带宽进行比较,并且如果在给定交换机中当前分配的可用带宽要小于该域中已有的值,则它被写入标记的速率域。然后控制信元返回过程运行,并且在源端站,返回的控制信元触发对允许的传输速率的更新,这样使得允许的传输速率等于离散的传输速率之一。所以,这个文件描述了一种速率控制的方法。
1996年IEEE第十五次关于计算机和通信的国际凤凰城年会于1996年3月27日-29日在Scottsdale召开,在其1996年3月27日第15次会议的论文集第239-245(XP000594795)页中发表了Miloucheva,I.等人的题为“在多媒体高速路上用于可靠传输和流控制的协议机制”的文章,其中描述了诸如缓慢启动和拥塞避免的TCP中的特定例行程序和技术。
发明内容
本发明的目的是克服上面提及的问题并且提供用于流控制的改进的方法和设备。
这个目的通过在独立权利要求中描述的方法和设备来解决。有利的实施方案在独立权利要求中描述。
根据本发明,在一个要发送多个数据的连接中,流控制直接利用所述连接上的信息,即一个或者多个与形成所述连接的链路相关联的带宽值。这样,流控制可以直接适用于网络中的状况。
在数据发送期间,最好所述的一个或多个带宽值不是仅仅被一次确定而是被几次确定,如此则一个或多个带宽值被更新并且流控制被动态地适用于沿着连接的状况。
根据本发明的优选实施方案,在一个使用滑动窗口流控制的系统中,窗口尺寸的计算依赖于所述的带宽,并且所述的窗口尺寸在确定所述的滑动窗口流控制的控制窗口的过程中被采用。
在确定控制窗口的过程中采用所述的窗口尺寸意味着例如该窗口可被直接用作该控制窗口的尺寸,或者可与其它可用的窗口尺寸值相比较(例如一个拥塞窗口尺寸和一个根据TCP而得知的通告的窗口尺寸),并且控制窗口的尺寸根据这个比较来确定,例如可用窗口尺寸的最小者被选定。
以上述方式定义窗口的基本结果是:这个也被称为瓶颈窗口的新窗口考虑了连接中的一个链路可能会成为分组传输的瓶颈,并且在滑动窗口流控制期间考虑瓶颈窗口,可以使那些为了确定所述的瓶颈窗口而考虑其带宽的所述链路之一上的拥塞最小。
根据另一个优选实施方案,瓶颈窗口是通过如下过程来确定的:获取考虑中的每个链路的相应带宽值,确定所述多个带宽值中的最小值,确定表征在发送给定字节和在接收所述连接的另一端已经接收到所述给定字节的确认之间所经过的时间的时间值,并且计算该时间值和该最小带宽值的乘积作为瓶颈窗口。
所述时间值最好是在分组要发往的方向上、给定分组交换连接的往返时间值。
根据另一个优选实施方案,与链路相关联的带宽值是所述链路的物理带宽,即在给定的时间点可以通过所述链路发送的数据总量。根据另一个优选实施方案,与链路相关联的带宽值是所述链路上可以用于分组交换连接的实际带宽值。后一个实施方案考虑了可能在一个链路上运行一个以上连接的情况。
根据又一个优选实施方案,仅考虑一个带宽值,即接入链路的可用带宽。接入链路是处于分组交换连接一端的设备和沿着分组交换连接的下一个路由器之间的链路。这个实施方案使得瓶颈链路是基于接入链路的带宽而定义的,因此在所述接入链路上出现拥塞的可能性减小。被测量的接入链路可以是在连接中起发送端作用的设备的接入链路,也可以是起接收端作用的设备的接入链路。
这个实施方案最好是能使接入链路的带宽是由通过所述接入链路来控制链路层的部分提供。举一个例子,如果处在分组交换连接一端的设备是一台个人计算机并且接入链路是去往因特网提供商的调制解调器链路,那么链路层就通过一个合适的诸如SLIP(串行线因特网协议)、PPP(点对点协议)或者RLP(无线链路协议,结合GSM使用)的链路协议来建立,并且控制链路层的部分是管理个人计算机和调制解调器之间交换的驱动程序。举另一个例子,接入链路可以是诸如ISDN线路或者数字蜂窝电话网络中的连接的数字电话链路,那么此处驱动程序不控制调制解调器,而控制一个适当的适配器设备,例如一个ISDN适配器卡。
这个最后的实施方案的优点在于它很容易实施,因为它可以在分组交换网络的任何组成部分中实施而不必改变网络或者改变管理该网络的协议,并且如果接入链路包含无线传输部分(例如一个蜂窝电话上的接入链路),则它尤其有效,因为如果这样,则接入链路通常就是瓶颈链路,即在形成分组交换连接的所有链路中给发送端提供最低带宽的链路。换句话说,在这种情况下如果在接入链路上避免了拥塞(这在本发明的上面的实施方案中可以确保),则在整个分组交换连接中拥塞的出现可以彻底避免。
根据另一个实施方案,分别确定两个带宽值,即发送端和接收端的接入链路的带宽值。这样可以减小在这些链路中的一个链路上拥塞的出现。
本发明提供了针对上面提及的拥塞避免问题的一个简单、有效并且灵活的解决办法,并且该办法可以应用于任何通信系统中。
它尤其可以应用于使用滑动窗口流控制的系统。正如已经提及的,流控制可以通过单独使用瓶颈窗口、或者通过组合使用瓶颈窗口与给定系统的已知窗口来进行。例如,当将本发明应用于TCP时,这个协议可以改变以使流控制仅仅用瓶颈窗口来进行,或者瓶颈窗口的使用可以被添加到已知窗口(即拥塞窗口和通告的窗口)的使用上,例如通过确定通告的窗口、拥塞窗口和瓶颈窗口的最小者作为控制窗口。
在后一种情况中,即当通过将瓶颈窗口添加到现有的一个或多个窗口中,并且接着从这些窗口中挑选控制窗口来应用本发明时,本发明还提供有附带的优点,即常规传输协议(例如TCP)不必进行改变而本发明仍将有效,即便它仅仅在连接的一端实施。换句话说,在这后一种情况中,与标准传输协议的现有实施方案的兼容性可以保留,而同时仍有增强性能的好处。
通过定义一种要用于滑动窗口流控制中的新窗口(即瓶颈窗口),本发明的优选实施方案有别于现有技术中展开的概念,在现有技术中,现有窗口(通告的窗口、拥塞窗口)与诸如上述拥塞避免算法的新算法一起使用。与其不同,通过定义(考虑了关于形成分组交换连接的链路中各个链路的带宽的本地信息的)瓶颈窗口,本发明实现了一种简单并且高度灵活的方法,这里对这个瓶颈窗口的单独使用或者结合已知窗口的使用比已知解决办法更为有效地避免了拥塞。
附图说明
这些和其它的优点将在对本发明的优选实施方案的后续描述中变得更加清晰,所述优选实施方案将结合附图进行描述,其中:
图1显示了说明本发明的基本实施方案的流程图;
图2显示了一组要被发送的数据段的实例;
图3显示了根据TCP发送图2中所示数据段的分组交换的实例;
图4解释了在图3所示的通信流控制过程中控制窗口的移动和调整;
图5是一个显示滑动窗口流控制的原理的示意性说明;
图6是一个控制窗口的边界如何移动的示意性说明;
图7是一个用于解释在沿着通信路径的链路上出现拥塞的示意性表示;以及
图8显示了说明用于确定瓶颈窗口的优选实施方案的流程图。
具体实施方式
大多数下面给出的实例将结合根据TCP的通信来解释。由于本发明可以与根据TCP的流控制的已知单元进行组合,所以先前的描述形成了本发明的公开内容的一部分。然而应该注意的是,本发明不限于被应用于TCP,它可能被应用于任何使用滑动窗口流控制的通信系统中。
在诸如因特网的分组交换网络的两个通信方之间,连接通常由多个单个的链路组成,这里所述链路是通过路由器连接的。例如一台个人计算机可能通过快速LAN连接到一个服务器,而服务器又通过一个慢的WAN连接到因特网的另一个组成部分(也被称为因特网协议对等体,或IP对等体),并且这个其它的因特网组成部分再通过快速LAN连接到接收端。所述LAN和WAN组成了链路,而服务器是路由器,即根据包含在分组中的路由信息将分组按路由发往它们的目的地的设备。这种情形相应于图7中示意性地显示的内容,这里第一LAN可以是链路300、第一服务器是路由器R1、WAN是链路301、其它的因特网组成部分是路由器R2以及第二LAN是链路302。另一个实例可以是个人计算机通过一个慢的调制解调器链路连接到因特网服务器,该服务器通过专用卫星链路连接到另一个IP对等体以及这个IP对等体再通过一个慢的调制解调器链路连接到接收端。
图1说明了根据本发明的流控制方法的基本实施方案。在两个通信方之间的分组交换连接中数据流被控制,此处所述连接由多个通过路由器连接的链路组成。一个实例是在因特网上的TCP/IP连接。在连接中,有数据要发送的一方是发送端,而另一方是接收端。在第一步骤St10中,为发送端确定要发送的数据序列(例如电子邮件)。这意味着要被发送的数据的数据单元(例如字节)序列被确定。
在又一个步骤St20中,与要通过其发送数据的连接中的至少一条链路相关联的带宽值被自动确定。这可以以相当多的不同方式来进行。例如,连接中的一方或者两方可以监测在数据要发送的方向(即在从发送端到接收端的方向)上的连接中的一条或者多条链路的带宽值。一种可能性是使得沿着连接的路由器将这些带宽值添加到被发送给接收端的分组,或者更好地是添加到被返回给发送端的确认分组中。另一种可能性是使一方或者两方中的链路层驱动程序适合监测那一方的接入链路的带宽值。接入链路是连接一方与到另一方的连接中的下一个路由器的链路。与链路相关联的带宽值可以是任何的指示给出所述链路每时间单元可以承载多少数据的值。例如,这可以是链路的物理带宽值,即链路的总带宽,或者更好地,这可以是在那条链路上可以即刻用于所述连接的带宽。
最后,所述数据序列流通过采用所述带宽值来控制。这意味着来自发送端的数据流通过自动考虑一个或者多个带宽值来控制,因此拥塞可以被最小化。这可以例如在一个使用基于滑动窗口的流控制的系统中通过以下方式实现:从一个或者多个带宽值中确定窗口值并且接着将所述窗口值用作控制窗口,或者从其中包含所述窗口值的一组值中挑选控制窗口。这样,本发明实现了一个其中数据流自动地根据直接表征连接的参数来控制的系统。
应该注意,控制所述流的硬件可以以适当的或者期望的方式(例如在一种同时控制连接中的双方的设备中)提供,但是根据本发明的控制最好被直接包含在连接中的一方或者两方中。本发明的一个重要优点是,根据优选实施方案,它可以仅在连接的一方中实施并且仍然能够为整个连接实现一个改进的流控制。
图8显示了本发明的方法的优选实施方案的流程图。在第一步骤St1中沿着连接的一个或者多个与链路相关联的带宽值被确定。带宽被定义为每时间单位的数据量,例如比特/秒。应该注意,连接中的链路是那些在分组要被发送或者正在被发送的方向上的、在发送端和接收端之间建立路径的链路。这是由于以下事实,即分组所要沿着的其从发送端发送到接收端的路径或者连接不必与分组所要沿着的其从接收端发送到发送端的路径相同。
用于确定哪个带宽要与给定链路相关联的机制对于本发明而言并不重要,并且它可以以任何适当的方式来选择。根据本发明的优选实施方案,与给定链路相关联的值是相应于所述链路的物理连接的带宽。举一个例子,如果链路是由一个传输速率达28800比特/秒的调制解调器形成,那么相关联的带宽是28800比特/秒。应该注意,物理带宽可以是一条特定链路可以提供的绝对的最大带宽(这样该值对于给定链路是常数),或者它可以是在主要条件下的最大带宽。当链路是由无线通信给出时,这个不同是很重要的,因为在这种情况下,该绝对最大值是理想无线条件下的值,而该主要的最大值是由瞬时条件决定的值。
应该注意,这样定义的这条物理链路带宽独立于有多少带宽实际可用于考虑之中的连接。正如在本领域中公知的,给定的链路可以承载一个以上的连接,这里总(即物理)带宽的一部分可以用于每个连接。因此,根据本发明的另一个优选实施方案,与给定链路相关联的带宽值是所述链路当前可用于连接的带宽。
在该实施方案中,其中与链路相关联的带宽值是当前可用带宽,确定这个值的一种可能性是对作为分组传输基础的基本协议(例如在因特网的分组交换的情况中的IP)的修改,以使得连接中的每条链路将这个信息添加到被发送的分组中,成为发送给接收端的数据分组,或者添加到由接收端发送给发送端的确认分组中。然而,就本发明而言,任何适当的确定当前可用带宽的方法都可以被使用,因为本发明并不依赖它。
在该实施方案中,其中物理链路带宽被用作相关联的带宽,确定这些值的一种可能性是再对作为基础的网络层传输协议进行修改,以使得链路提供这个信息给发送端或者接收端(再例如IP)。然而还可能使用本发明的方法而不修改作为基础的传输协议。一种可能性是:相关的带宽信息不是通过修改基本传输协议(例如TCP)来提供,而是通过使用适当地修改的链路层协议(例如SLIP、PPP或者RLP)或者最好仅仅是通过一个用于这样一种链路层协议修改的驱动程序来提供。当仅修改链路层协议的驱动程序时,本发明提供了不需要改变任何一个涉及到的协议的优点,所以绝对没有与已建立的系统的兼容性问题,并且本发明可以被引入到网络的任何一个组成部分中而不必改变网络其余部分中的任何事物。
链路层协议管理一条特定链路上的通信中的两方之间的通信,其中所述链路形成连接部分。一个典型的实例是从个人计算机通过一条到服务器的调制解调器链路接入因特网。因而在个人计算机和起路由器作用的服务器之间的通信将根据用于这样的链路的诸如SLIP(串行线路因特网协议)或者PPP(点对点协议)的特定协议来进行。这些协议封装了较低等级分组,即TCP/IP分组。这些协议和封装在本领域是公知的,并且在例如上面提及的由W.R.Stevens所著的说明TCP/IP的书中描述。所以此处不必重复细节。
用于根据链路层协议来实行通信的驱动程序于是可以提供关于相应链路的物理带宽的信息。
通过使用物理带宽而不修改基本的作为基础的传输协议(例如TCP/IP)来实施本发明的优点在于:本发明可以被集成到现有系统中而没有兼容性问题,同时仍然有增强性能的好处。而且,本发明可以仅在通信的一方中实施而仍然有效。这意味着本发明一般可应用于任何使用滑动窗口流控制的系统中,而不必修改那个系统的作为基础的传输协议。这是超越现有技术的一个很大的优点,因为所有公知的解决办法都需要对通信双方进行修改或者在网络中安装传输层状态。
现在返回到图8的描述中,在步骤St1中确定的带宽值代表它们所关联的链路每时间单位可以处理的数据量。
在下一个步骤St2中,在步骤St1中已确定的带宽值中的最小值将被确定。如果只有一个值被确定,那么这个值自然地就是最小值。然而最好在步骤St1中确定一个以上的带宽值,因此在步骤St2中选择的最小值代表在步骤St1中考虑的链路中有最低传输速度的链路的带宽。尽管最好考虑所有形成连接的链路,但是正如还将进一步解释的,这并不意味着必需如此。
在下一个步骤St3,一个表征沿着在发送方向(即从发送端到接收端的方向)的分组交换延迟的时间值被确定。这个特征时间值一般与所谓的连接的往返时间(RTT)相关联。在给定方向上RTT被定义为在那个方向上发送字节和接收所述字节的直接确认之间所经过的时间。当以图3所示的分组交换为例时,RTT是在发送端发送段S1和接收到段S2中的确认之间所经过的时间。换句话说,RTT是接收对消息的应答和发送所述消息的时间之间的差值,或者更特别地,是发送一个带有特别的序列号的字节和接收包含那个序列号的确认的时间之间的差值。
应该注意,在本实施方案中,上面提及的特征时间值应被理解为任何表示沿着分组交换连接的延迟时间的值,即上面提及的发送出分组和接收到相应确认之间的时间差值。所以,RTT或者任何从RTT导出的值都适合作为所述的特征时间值。
RTT的确定可以以任何适当的方式来完成。一种特定的可能性是从上面提及的由W.R.Stevens所著的说明TCP/IP的书的第21.3章中可知的。其中公开的方法不限于TCP,它可以被适当地应用于任何将滑动窗口流控制用于分组传输的系统。一种可选方法从例如由V.Jacobson、R.Braden、D.Borman于1997年2月所提出的网络工作组因特网-草案中可知。
在最简单的情况下,特征时间值可以通过监测发送出有特定序列号的段和接收包含在另一端接收所述段的确认的分组之间经历的时间而被简单地直接确定为瞬时RTT,所述监测例如借助一个合适的时钟电路,它在发送出一个段时启动,而在接收到相应的确认分组时输出一个表示已经经过的时间的值。这个输出值被存储为瞬时RTT。这样一种确定在单独地确认每个各别的分组或者段、(即具有一一对应的数据段和确认消息的)控制协议中是完全合适的。
然而,在也可以发送累积的确认消息的协议中,例如在TCP的情况下(参见图3中的S7,它确认最多达到2049字节的接收,即首先的两个数据段S4和S5),最好根据RTT来将步骤St3的特征时间值确定为平滑的量值。在这种情况下,瞬时RTT如上面表示地进行测量,即发送出带有特定序列号的段和接收到包含所述序列号的确认(它也可以包含其它的序列号)之间的时间延迟。这个时间值由M表示。接着一个被表示为R的估计量用下面的低通滤波器来更新:
R←αR+(1-α)M,
这里α是平滑因子,在TCP中它的推荐值为0.9。然后R的瞬时值可以被用作步骤St3的特征时间值。
特征时间值更为优选的是通过平均该测量值M来测量。这在每次的M的测量中通过计算差错值Err和更新平均值A来以下面的方式完成:
Err=M-A,
A←A+gErr,
这里g是用于确定该平均的增益值。通常g是0.125。然后A的瞬时值可以被用作步骤St3的特征时间值。
最后,在步骤St4中,步骤St2中确定的最小带宽值和步骤St3中确定的特征时间值的乘积被计算出来,并且这个乘积被定义为瓶颈窗口。根据本发明,接着这个瓶颈窗口可以被用于滑动窗口流控制。这种精确的运用对于本发明不是必需的,即将瓶颈窗口用作(如结合图5和6描述的滑动窗口流控制中的)控制窗口所遵循的条件或者要求不是必需的。
根据一个实施方案,瓶颈窗口被恒定地用作控制窗口,即整个流控制是以瓶颈窗口为基础来执行。
根据另一个实施方案,瓶颈窗口与已知的通告的窗口一起使用,这里控制窗口被选成瓶颈窗口和通告的窗口中的最小者。还根据另一个实施方案,瓶颈窗口与已知的通告的窗口和已知的拥塞窗口一起使用,这里控制窗口被选成通告的、拥塞和瓶颈窗口中的最小者。
根据最简单的实施方案,瓶颈窗口的值在启动发送已编号的数据序列(例如图2所示)之前仅自动计算一次。然而,根据优选实施方案,瓶颈窗口的值在发送段期间被确定几次,因此瓶颈窗口一直被更新并且正确地反映了分组交换连接的瞬时传输状态。瓶颈窗口的这种测量和更新可以在每次又有一些段要被发送时、或者周期性地在给定时间期间、或者固定地进行,即实施本发明方法的设备在确定瓶颈窗口的过程中以可能的最快速率进行循环,这意味着在每次当一个确定瓶颈窗口的循环已经完成时就启动对新瓶颈窗口的确定。
如果瓶颈窗口以上述方式动态地调整,这是因为在步骤St1到St3中遇到的不同的参数趋向于在时间上可变化,正如可用于连接的瞬时带宽值可能由于网络上业务量的变化而变化,则即使分组交换连接的属性改变,发送端在被考虑的链路上所引起的对于所述连接的拥塞也可以被最小化。
应该注意,术语“拥塞”一般被用于指示在链路上的完全的拥塞,即由途经所述链路的所有业务量(所有连接的)引起的拥塞。可以理解的是,本发明仅仅可以直接地影响在被考虑的连接上的全部拥塞中由发送端引起的部分,即发送端引起的拥塞。然而,使这种作用最小化也会自然地使全部的拥塞最小化。
由本发明定义的瓶颈窗口是一个使特定链路上和所有其他有大于所述特定链路带宽的链路上的拥塞最小化的装置。这是现有技术不能实现的。换句话说,如上述可见,瓶颈窗口根据与步骤St3中确定的最小带宽相关联的链路来定义。瓶颈窗口的使用使得在所述链路上拥塞的出现最小化。正如上面已经谈到的,在步骤St1中考虑的链路最好是连接中所有的链路。在这种情况下,瓶颈窗口相应于那些能形成绝对地提供最低带宽的连接的链路中的链路。然而,本发明在步骤St1中考虑更少的链路时也起作用,因为拥塞于是可以至少在那些被考虑的链路上被安全地最小化,这是现有技术不能保证的事情。
当本发明在一个作为具有滑动窗口流控制的分组交换连接中一方的设备中付诸实施时,如果所述设备是发送端,那么如上所述它可简单地确定发送方向的瓶颈窗口并且适当地将其用于流控制。如果这一方是接收端,那么它确定在它的接收方向上的瓶颈窗口并且发送这个信息给发送端。例如,在一个其中仅仅有接收端根据本发明操作的TCP连接中,接收端可以确定在它的接收方向上的瓶颈窗口,并且接着通告瓶颈窗口和它根据标准TCP(例如输入缓冲器极限值)所要通告的窗口中的最小者作为给TCP发送端的通告的窗口。这样尽管发送端没有以任何方式修改,它也可以根据本发明操作。这样,本发明有很大的优点:它能够被集成到任何现有系统而没有任何兼容问题,同时仍然保留改进的性能的好处。
本发明可以在被设计成发送端的设备或者在被设计成接收端的设备中实施,但是通常将在一个既可作发送端又可作接收端的设备中实施,这依赖于数据是否要从所述设备发送,或者由所述设备接收。
如果本发明根据图8所示的实施方案在起发送端作用的设备中实施,则可以执行控制以使得该设备为链路适当地确定一个或者多个带宽值(图8中步骤St1)以及接着确定最小值(步骤St2)。上面提及的与步骤St1和St2有关的任何可能性都可以被用到。延迟指示值的确定(步骤St3)也可以如上述那样,例如直接通过测量在发送字节和接收包含所述字节的确认之间所经过的时间来执行。然后可以在所述发送端计算最小带宽值和延迟指示值的乘积并且将其作为瓶颈窗口适当地用于流控制中。
如果在另一方面,本发明根据图8所示的实施方案在起接收端作用的设备中实施,则可以再执行控制以使得设备为链路适当地确定一个或者多个带宽值(图8中步骤St1)以及接着确定最小值(步骤St2)。上面提及的与步骤St1和St2有关的任何可能性都可以被再一次用到。在从发送端到接收端的方向上的延迟指示值的确定可以以合适的方式来执行。一种可能性是由接收端发送出一个专用的连接延迟时间测量消息给发送端,并且测量直到一个相应的确认被返回的时间。这使得连接中的接收端和发送端都必需根据支持这样的延迟时间测量消息的协议来操作。在一个优选实施方案中,这样的协议不是必需的,因为接收端可以独立地确定延迟指示值。仅仅假定在发送端和接收端之间给出了一个确认数据接收的系统。那么接收端将通过测量发送确认ACK(n)和接收一个包含字节号n+1的段之间的差值来确定连接的RTT,其中ACK(n)指的是对由发送端发送的序列中包括和达到字节号n的所有字节的确认。这样确定的值可以被直接用于计算瓶颈窗口,或者可以执行类似于上面解释的与值R和A相关的平滑和/或平均。接着可以以任何适当的方式(例如,如上面已经解释的以通告的窗口的形式)向发送端提供瓶颈窗口。
根据本发明的另一个将在后面描述的实施方案,本发明被应用于TCP通信,并且后面的定义将被用到。应该注意,TCP从其被提到的意义来说指的是在因特网上使用的传输控制协议,在这个意义上来说,这个协议的例如根据任何占主导地位的标准的所有过去的、现在的以及将来的变化方案和实施都被包括在内。
其中实施TCP协议并且形成TCP连接的一端的通信设备被称作“TCP对等体”。每个TCP对等体可以作为一个TCP发送端或者TCP接收端或者同时作为两端来运行。根据本发明修改的TCP对等体被称为“修改的TCP对等体”,在另外的情况下它被称为“标准的TCP对等体”。因此术语“修改的TCP发送端”、“修改的TCP接收端”、“标准的TCP发送端”、“标准的TCP发送端”也被使用。如果没有限定“修改的”或者“标准的”,则相关的术语指的是这两种情况。为了便于解释,标准的TCP对等体被假定为根据上面提到的由W.R.Stevens所著的TCP/IP说明的书中的第一卷来实施,但是只要满足结合这个实施方案提出的假设和前提条件,则这个实施方案对于任何TCP的变化都是可应用的。
根据这个实施方案,修改的TCP对等体是对标准的TCP对等体的遵从标准的修改,即修改的TCP对等体的操作与当前的TCP协议标准是一致的,这保证了与现有TCP实施的后向兼容性。
术语“最大链路带宽”(MLB)指的是相应于那条链路的物理连接的带宽,它在所述链路上对发送端而言是可得到的。
修改的TCP对等体针对一个TCP连接的特定方向(发送或者接收)而考虑的所有MLB中的最小者被称为相关方向的“MinMLB”。应该注意,由于用于发送方向的链路路径不必与用于接收方向的链路路径相同,所以对于TCP对等体的发送或者接收方向而言MinMLB可以不同。而且,应该注意,如上定义的MinMLB不是在一个方向上组成TCP连接的所有链路的所有MLB中的最小者。在很多情况下,修改的TCP对等体不会考虑所有的MLB,这是例如因为它不必需如此或者它们对它而言是未知的。MinMLB可以随时间变化,这是例如由于已知的MLB值的变化,或者又考虑了一个新的以前没有考虑的MLB,而这个新的MLB要低于以前的MinMLB。
用于给定方向(发送或者接收)的术语“瓶颈窗口”被用于在那个方向上的当前MinMLB和在那个方向上的当前RTT的乘积。由于有了MinMLB,所以TCP对等体的发送和接收方向的瓶颈窗口可以不同。
根据本实施方案,修改的TCP发送端被限制,使得它不能比它的发送方向的当前MinMLB更快地发送,并且修改的TCP接收端将控制相应的TCP发送端以使得它不能比它的接收方向的修改的TCP接收端的当前MinMLB更快地发送。后者等同于说:不允许相应的TCP发送端比它的发送方向的当前MinMLB更快地发送。
不比MinMLB更快地发送意味着将不允许TCP发送端具有显著地多于由它的发送方向的瓶颈窗口给出的限定值的未确认分组。修改的TCP发送端将连续跟踪它的发送方向的当前MinMLB和当前RTT。修改的TCP接收端将连续跟踪它的接收方向的当前MinMLB和当前RTT,即跟踪相应的TCP发送端的发送方向的瓶颈窗口。
根据本实施方案,修改的TCP发送端中的流控制是通过它的发送方向的瓶颈窗口来补充的,即在确定要使用的控制窗口中,瓶颈窗口与通告的窗口和拥塞窗口一起使用。三个窗口中的最小者被选作控制窗口,这意味着修改的TCP发送端可能没有显著多于它的发送方向的通告的窗口、拥塞窗口和瓶颈窗口中的最小者的未确认分组。而且根据本实施方案,修改的TCP接收端确定它的接收方向的瓶颈窗口,并且接着通告瓶颈窗口和它将根据标准TCP通告的窗口(例如输入缓冲限制)中的最小者作为给TCP发送端的通告的窗口。
如果实施方案在起发送端作用的设备中实施,则在发送方向用于确定瓶颈窗口的RTT的确定可以通过监测发送出有特定序列号的字节和接收到来自接收端有关所述字节的接收确认之间经历的时间、从而测量出瞬时的RTT来实现。这个值被称为M。然后在每次的M的测量中以下面的方式计算差错值Err和更新平均值A:
Err=M-A,
A←A+gErr,
这里g是用于确定所述平均的增益值。通常g是0.125。然后A的瞬时值被用作用于计算瓶颈窗口的RTT值。
如果实施方案在起接收端作用的设备中实施,则在发送方向(即从发送端向接收端的方向)被用于确定瓶颈窗口的RTT的确定可以通过以一种修改的方式测量瞬时RTT来实现。
被再一次称为M的当前RTT值可通过监测由接收端发送出确认接收到所有包含和多达字节号n的确认ACK(n)与由接收端接收到包含字节号n+1的TCP段之间经历的时间来确定。被采用的RTT值再一次以下面的方式被确定作为A:
Err=M-A,
A←A+gErr。
由于在相反方向的情况与发送方向的情况不同,当包含字节号n的段在TCP发送端被延迟时(例如因为应用还没有释放它),问题就出现了。在这种情况下,测量的瞬时RTT M就不能被用于更新值A,即这样的M的值应该被跳过。跳过的决定是以由接收端接收的TCP分组的分组间到达时间为基础来完成的。换句话说,根据本实施方案,修改的接收端测量分组间到达的时间值和瞬时RTT,并且将到达时间与一个门限比较,并且如果到达时间超过了所述门限,则测量的瞬时值RTT不被用于更新前面提及的公式中的A。
根据本实施方案,根据本发明运行的设备(假设它是作为发送端或是作为接收端)把MinMLB确定为它的暂时可用于该设备的接入链路的带宽。只有一个MLB被确定,它自动地等于MinMLB。由于接入链路被用在两个方向上,即发送和接收,所以在这种情况中不需要在发送和接收方向之间进行区别。接入链路是将设备连接到沿着所述连接的下一个路由器的链路。根据这个实施方案,可用带宽由链路层驱动程序提供。链路层驱动程序保持一个考虑最近已经过去的情况的运行的吞吐量量度,即它测量一些时间段内的数据吞吐量(以字节计)并且用测量的吞吐量除以所述时间段的长度,以便因此连续地测定带宽为所述的吞吐量和时间段的长度的商。这是连续地完成的,即在一个时间段内的一次测量结束后,下一次测量便开始了。另一种可能性是在给定数量的已经经过的时间(例如几秒)期间取运行的平均值。这种功能可以在设备的链路层驱动程序中通过适当地实施所用的链路层协议(例如SLIP、PPP或者RLP)来实施。修改实施意味着标准协议完全保留,因而与任何标准的实施方案的通信都被保留,即可兼容,但是那个上面提及的带宽确定的特定功能被添加到根据本发明的本实施方案来操作的设备实现中。
用于提高TCP性能的常规技术需要在TCP的双向通信路径的两个端点(即发送端和接收端)修改实施方案。因此,为了使这样一种技术成功,请求与其通信的那些主机的所有现有的TCP实施方案都将必须升级。在因特网服务器广泛分布的今天,这将是不现实的。其他提高TCP性能的方法需要维持网络中每个TCP流的状态,从而导致网络中每个流都需要资源的缺点。
上面的实施方案的优点是:通过只修改端到端TCP连接的一方而在发送和接收方向上同时提高TCP性能。
Claims (32)
1.一种在分组交换连接中控制从发送端到接收端的数据量流的方法,所述分组交换连接由多个通过路由器连接起来的链路组成,包括:
控制所述发送端以便根据所述数据量确定要被发送的数据序列;
自动确定分别与一个或者多个所述链路相关联的一个或者多个带宽值;以及
在控制从所述发送端到所述接收端的所述序列流的过程中采用所述一个或者多个带宽值。
2.权利要求1的方法,其特征在于所述一个或者多个带宽值在发送所述序列期间被确定一次以上。
3.权利要求1的方法,其特征在于所述一个或者多个带宽值在发送所述序列期间被按规则的时间间隔确定。
4.权利要求1的方法,其特征在于所述一个或者多个带宽值在发送所述序列期间被连续确定。
5.权利要求1的方法,其特征在于所述一个或者多个带宽值在每次发送新分组之前被确定。
6.权利要求1到5之一的方法,其特征在于:
在接收端通过向发送端返回指示已经接收到所述序列中最多达到哪个位置的数据的消息来确认数据的接收;
在一个时间点在所述发送端中控制所述序列的发送以使得只有一些或者所有在数据窗口中的数据能够在所述时间点发送,所述数据窗口由有关所述序列的第一和第二限定值定义,所述第一限定值根据已经发送和确认的数据量来确定,从而使得已经发送和确认的所述数据量落在所述窗口之外,并且所述第二限定值通过将数据窗口尺寸添加到所述第一限定值来确定;以及
在确定所述数据窗口尺寸值的过程中采用所述一个或者多个带宽值。
7.权利要求6的方法,其特征在于以下步骤:
-确定与所述序列要被发送的方向上的所述多个链路相关联的所述一个或者多个带宽值;
-确定所述一个或者多个带宽值的最小值;
-确定表征在由发送端发送给定字节和接收对给定字节已经由接收端接收到的确认之间经过的时间量的时间值,用于所述连接的所述时间值在所述序列要被发送的方向上被确定;以及
-确定将所述一个或者多个带宽值的所述最小值与所述时间值的乘积作为与链路有关的数据量值,它在确定所述数据窗口尺寸值的过程中被采用。
8.权利要求7的方法,其特征在于所述与链路有关的数据量值被用作所述数据窗口尺寸值。
9.权利要求7的方法,其特征在于所述数据窗口尺寸值通过从一组数据量值中挑选最小值来确定,所述与链路有关的数据量值处于所述组中。
10.权利要求9的方法,其特征在于所述分组交换连接根据TCP建立,并且所述数据窗口尺寸值是从由通告的窗口、拥塞窗口和所述与链路有关的数据量值组成的组中挑选的。
11.权利要求7的方法,其特征在于所述分组交换连接根据TCP建立,并且所述时间值被确定为在序列要被发送的方向上用于所述连接的往返时间的函数。
12.权利要求1的方法,其特征在于与链路相关联的带宽值是所述链路的物理带宽。
13.权利要求1的方法,其特征在于与链路相关联的带宽值是所述链路中在从发送端到接收端的方向上所述连接当前可用的带宽。
14.权利要求1的方法,其特征在于所述带宽值包括至少一个与所述发送端的接入链路和所述接收端的接入链路相关联的带宽值,所述发送端的接入链路是将所述发送端与沿着所述序列要被发送的方向上的所述分组交换连接的下一个路由器相连接的链路,并且所述接收端的接入链路是将所述接收端与沿着与所述序列要发送的相反方向的所述分组交换连接的下一个路由器相连接的链路。
15.权利要求14的方法,其特征在于与接入链路相关联的所述带宽值是由在所述发送端和所述接收端中的一方或者两方中用于所述接入链路的链路层驱动程序提供的。
16.一种用于在分组交换连接中控制从发送端到接收端的数据量流的设备,所述分组交换连接由多个通过路由器连接起来的链路组成,包括:
一种用于根据所述数据量确定要被发送的数据序列的确定装置;
一种用于自动确定分别与一个或者多个所述链路相关联的一个或者多个带宽值的装置;以及
一种用于在控制从所述发送端到所述接收端的所述序列流的过程中采用所述一个或者多个带宽值的装置。
17.一种用于在分组交换连接上发送和接收数据的通信设备,所述分组交换连接由多个通过路由器连接起来的链路组成,包括:
用于控制所述通信设备的控制装置,该控制装置被配置为:
当该通信设备起发送端作用用于在所述连接上发送一定数量的数据时,使得要被发送的数据序列根据所述数据量来确定,在所述序列要被发送的方向上自动确定分别与一个或者多个所述链路相关联的带宽值,并且所述一个或者多个带宽值被用于控制来自所述发送端的所述序列流的过程中;以及
当该通信设备起接收端作用用于在所述连接上从所述连接的另一端的通信方接收数据时,使得在从所述方到所述设备的方向上自动确定分别与一个或者多个所述链路相关联的带宽值,并且一个消息被发送给所述方以使得所述一个或者多个带宽值可以由所述方用于控制所述数据流的过程中。
18.权利要求17的设备,其特征在于所述控制装置被配置为:当所述设备起发送端作用时,使得所述一个或者多个带宽值在发送所述序列期间被确定一次以上,并且当所述设备起接收端作用时,使得所述一个或者多个带宽值在接收所述数据期间被确定一次以上。
19.权利要求17的设备,其特征在于所述控制装置被配置为:当所述设备起发送端作用时,使得所述一个或者多个带宽值在发送所述序列期间按规则的时间间隔被确定,并且当所述设备起接收端作用时,使得所述一个或者多个带宽值在接收所述数据期间按规则的时间间隔被确定。
20.权利要求17的设备,其特征在于所述控制装置被配置为:当所述设备起发送端作用时,使得所述一个或者多个带宽值在发送所述序列期间被连续确定,并且当所述设备起接收端作用时,使得所述一个或者多个带宽值在接收所述数据期间被连续确定。
21.权利要求17到20之一的设备,其特征在于用于在所述连接上发送数据的协议可以使接收端通过向所述字节的发送端返回指示已经接收到最多达到哪个字节的数据的消息来确认一个字节序列的接收,并且在一个时间点对要发送序列的发送被这样执行以使得在数据窗口内的只有一些或者所有数据可以在所述时间点发送,所述数据窗口由有关要被发送的序列的第一和第二限定值定义,所述第一限定值根据已经发送和确认的数据量来确定,从而使得已经发送和确认的所述数据量落在所述窗口之外,并且所述第二限定值通过将数据窗口尺寸值添加到所述第一限定值来确定;
当所述设备起发送端作用时,所述的控制装置在确定所述数据窗口尺寸值的过程中使用所述一个或者多个带宽值;以及
当所述设备起接收端作用时,所述控制装置在所述一个或者多个带宽值的基础上确定数据量值,所述数据量值在所述连接中被发送给所述方,从而使得所述数据量值可以被用于确定所述方中的所述数据窗口尺寸值的过程中。
22.权利要求21的设备,其特征在于所述控制装置被配置为完成以下操作:
当所述设备起发送端作用时,确定与在所述数据序列要被发送的方向上的所述多个链路相关联的所述一个或者多个带宽值,确定所述一个或者多个带宽值的最小值,确定表征在由所述发送端发送给定字节和接收在连接的另一端已经接收到所述给定字节的确认之间经过的时间量的时间值,以及确定将所述一个或者多个带宽值的所述最小值和所述时间值的乘积作为与链路有关的数据量值,它在确定所述数据窗口尺寸值的过程中被采用。
23.权利要求22的设备,其特征在于所述分组交换连接根据TCP建立,并且所述时间值被确定为在该序列要被发送的方向上用于所述连接的往返时间的函数。
24.权利要求21的设备,其特征在于所述控制装置被配置为完成以下操作:
当它起接收端作用时,确定与在数据要被发送的方向上的所述多个链路相关联的所述一个或者多个带宽值,确定所述一个或者多个带宽值的最小值,确定表征在由所述接收端发送包含特定字节的给定确认消息和接收从所述连接中的在所述连接的另一端的一方发送的所述数据序列中的下一个字节之间经过的时间量的时间值,以及确定将所述一个或者多个带宽值的所述最小值和所述时间值的乘积作为与链路有关的数据量值,它被发送给所述方以便在由所述方确定所述数据窗口尺寸值的过程中被采用。
25.权利要求22的设备,其特征在于所述与链路有关的数据量值被用作所述数据窗口尺寸值。
26.权利要求22的设备,其特征在于所述数据窗口尺寸值通过从一组数据量值中挑选最小值来确定,所述与链路有关的数据量值处于所述组中。
27.权利要求26的设备,其特征在于所述分组交换连接根据TCP建立,并且当所述设备起发送端作用时,所述控制装置起作用使得所述数据窗口尺寸值从由通告的窗口、拥塞窗口和所述与链路有关的数据量值组成的组中挑选。
28.权利要求26的设备,其特征在于所述分组交换连接根据TCP建立,并且当所述设备起接收端作用时,所述控制装置起作用使得所述与链路有关的数据量值被作为通告的窗口发送给所述连接中的所述方。
29.权利要求17的设备,其特征在于与链路相关联的带宽值是所述链路的物理带宽。
30.权利要求17的设备,其特征在于与链路相关联的带宽值是在所述数据要被发送的方向上的所述链路中所述连接当前可用的带宽。
31.权利要求17的设备,其特征在于所述带宽值包括与所述设备的接入链路相关联的带宽值,所述接入链路是将所述设备与沿着所述分组交换连接的下一个路由器相连接的链路。
32.权利要求31的设备,其特征在于具有一个链路层驱动程序装置,并且与所述接入链路相关联的所述带宽值是由所述链路层驱动程序装置提供的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP98105859.7 | 1998-03-31 | ||
EP98105859A EP0948168A1 (en) | 1998-03-31 | 1998-03-31 | Method and device for data flow control |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1303557A CN1303557A (zh) | 2001-07-11 |
CN1149793C true CN1149793C (zh) | 2004-05-12 |
Family
ID=8231691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB998068543A Expired - Fee Related CN1149793C (zh) | 1998-03-31 | 1999-03-30 | 用于数据流控制的方法和设备 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6754228B1 (zh) |
EP (2) | EP0948168A1 (zh) |
JP (1) | JP4738594B2 (zh) |
CN (1) | CN1149793C (zh) |
AU (1) | AU752032B2 (zh) |
CA (1) | CA2326488C (zh) |
DE (1) | DE69922180T2 (zh) |
IL (1) | IL138303A (zh) |
WO (1) | WO1999050998A1 (zh) |
Families Citing this family (148)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085227B1 (en) * | 2001-05-11 | 2006-08-01 | Cisco Technology, Inc. | Method for testing congestion avoidance on high speed networks |
AU1940199A (en) * | 1997-12-24 | 1999-07-19 | America Online, Inc. | Asynchronous data protocol |
US6788704B1 (en) * | 1999-08-05 | 2004-09-07 | Intel Corporation | Network adapter with TCP windowing support |
JP3391316B2 (ja) | 1999-10-22 | 2003-03-31 | 日本電気株式会社 | ネットワークシステム |
US6996067B1 (en) * | 1999-12-07 | 2006-02-07 | Verizon Services Corp. | Apparatus for and method of providing and measuring data throughput to and from a packet data network |
US8380854B2 (en) | 2000-03-21 | 2013-02-19 | F5 Networks, Inc. | Simplified method for processing multiple connections from the same client |
US7343413B2 (en) | 2000-03-21 | 2008-03-11 | F5 Networks, Inc. | Method and system for optimizing a network by independently scaling control segments and data flow |
GB2361386B (en) * | 2000-04-13 | 2003-10-01 | Nokia Networks Oy | Improvements in or relating to wireless LAN`s |
US7499453B2 (en) * | 2000-05-19 | 2009-03-03 | Cisco Technology, Inc. | Apparatus and methods for incorporating bandwidth forecasting and dynamic bandwidth allocation into a broadband communication system |
US7274667B2 (en) * | 2000-05-19 | 2007-09-25 | Scientific-Atlanta, Inc. | Monitoring and allocating access across a shared communications medium |
US6791945B1 (en) * | 2000-09-15 | 2004-09-14 | Motorola, Inc. | Time out threshold shaping for wireless TCP communications |
US7304948B1 (en) * | 2000-12-29 | 2007-12-04 | Nortel Networks Limited | Congestion control for signalling transport protocols |
US7542419B2 (en) * | 2001-04-02 | 2009-06-02 | International Business Machines Corporation | Method and apparatus for managing aggregate bandwidth at a server |
US7069375B2 (en) | 2001-05-17 | 2006-06-27 | Decru, Inc. | Stream-oriented interconnect for networked computer storage |
US7023876B2 (en) * | 2001-07-09 | 2006-04-04 | Quantum Corporation | Point-to-point protocol |
US7020716B2 (en) * | 2001-08-31 | 2006-03-28 | Adaptec, Inc. | Method and system for verifying the hardware implementation of TCP/IP |
US8370517B2 (en) * | 2001-09-27 | 2013-02-05 | International Business Machines Corporation | Conserving energy in a data processing network |
FR2831742B1 (fr) * | 2001-10-25 | 2004-02-27 | Cit Alcatel | Procede de transmission de paquets par l'intermediaire d'un reseau de telecommunications utilisant le protocole ip |
US7237007B2 (en) * | 2001-12-05 | 2007-06-26 | Qualcomm Incorporated | Method and system for flow control between a base station controller and a base transceiver station |
EP1324544A1 (en) | 2001-12-26 | 2003-07-02 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for controlling traffic load between media gateway controllers and proxies |
ATE460801T1 (de) * | 2002-01-03 | 2010-03-15 | Innovative Sonic Ltd | Mechanismus zur vermeidung eines datenstromabbruchs in drahtlosen hochgeschwindigkeits-kommunikationssystemen mittels eines zeitschalters |
DE60236138D1 (de) * | 2002-01-03 | 2010-06-10 | Innovative Sonic Ltd | Fenster-basierende Blockadevermeidung für ein drahtloses Hochgeschwindigkeits-Kommunikationssystem |
WO2003081873A1 (en) * | 2002-03-22 | 2003-10-02 | Nokia Corporation | Method, system and device for controlling a transmission window size |
WO2003090417A1 (en) * | 2002-04-19 | 2003-10-30 | Telefonaktiebolaget L M Ericsson (Publ) | Method and devices for adaptative proxying of flows |
AT411948B (de) * | 2002-06-13 | 2004-07-26 | Fts Computertechnik Gmbh | Kommunikationsverfahren und apparat zur übertragung von zeitgesteuerten und ereignisgesteuerten ethernet nachrichten |
DE60212104T2 (de) * | 2002-06-18 | 2006-10-19 | Matsushita Electric Industrial Co., Ltd., Kadoma | Auf Empfänger basierte Umlaufzeitmessung in TCP |
EP1383281A1 (en) * | 2002-07-19 | 2004-01-21 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Method for calculating a transmission window size |
US7802008B2 (en) | 2002-08-12 | 2010-09-21 | Matsushita Electric Industrial Co., Ltd. | Quality of service management in network gateways |
SE0203104D0 (en) * | 2002-10-18 | 2002-10-18 | Ericsson Telefon Ab L M | Method and apparatus for network initiated rate control for P2C services in a mobile system |
US7630305B2 (en) | 2003-07-29 | 2009-12-08 | Orbital Data Corporation | TCP selective acknowledgements for communicating delivered and missed data packets |
US8233392B2 (en) | 2003-07-29 | 2012-07-31 | Citrix Systems, Inc. | Transaction boundary detection for reduction in timeout penalties |
US7616638B2 (en) | 2003-07-29 | 2009-11-10 | Orbital Data Corporation | Wavefront detection and disambiguation of acknowledgments |
US8270423B2 (en) | 2003-07-29 | 2012-09-18 | Citrix Systems, Inc. | Systems and methods of using packet boundaries for reduction in timeout prevention |
US7680143B2 (en) * | 2002-12-12 | 2010-03-16 | Rpx Corporation | Methods and apparatus for combining session acceleration techniques for media oriented negotiation acceleration |
US7206316B2 (en) | 2002-12-12 | 2007-04-17 | Dilithium Networks Pty Ltd. | Methods and system for fast session establishment between equipment using H.324 and related telecommunications protocols |
US20070266161A1 (en) * | 2002-12-12 | 2007-11-15 | Dilithium Networks Pty Ltd. | Methods and system for fast session establishment between equipment using h.324 and related telecommunications protocols |
US7139279B2 (en) * | 2002-12-12 | 2006-11-21 | Dilithium Networks Pty Ltd. | Methods and system for fast session establishment between equipment using H.324 and related telecommunications protocols |
US7336607B2 (en) * | 2002-12-27 | 2008-02-26 | Lucent Technologies Inc. | Methods and apparatus for flow control based packet aggregation in a communication network |
US20060224769A1 (en) * | 2003-03-20 | 2006-10-05 | Benny Moonen | Method and transmitter for transmitting data packets |
SE0301053D0 (sv) * | 2003-04-07 | 2003-04-07 | Ericsson Telefon Ab L M | Method and system in a communications network |
JP2005012260A (ja) * | 2003-06-16 | 2005-01-13 | Matsushita Electric Ind Co Ltd | データ伝送の制御方法 |
US8437284B2 (en) | 2003-07-29 | 2013-05-07 | Citrix Systems, Inc. | Systems and methods for additional retransmissions of dropped packets |
US7656799B2 (en) * | 2003-07-29 | 2010-02-02 | Citrix Systems, Inc. | Flow control system architecture |
US8432800B2 (en) | 2003-07-29 | 2013-04-30 | Citrix Systems, Inc. | Systems and methods for stochastic-based quality of service |
US8238241B2 (en) | 2003-07-29 | 2012-08-07 | Citrix Systems, Inc. | Automatic detection and window virtualization for flow control |
ITBA20030039A1 (it) * | 2003-08-29 | 2005-02-28 | Grieco Luigi Alfredo | Controllo di congestione rate-based del traffico entrante |
KR100548134B1 (ko) * | 2003-10-31 | 2006-02-02 | 삼성전자주식회사 | 무선 네트워크 환경에서의 tcp의 데이터 전송효율을향상시킬 수 있는 통신시스템 및 그 방법 |
KR20070001918A (ko) * | 2003-12-05 | 2007-01-04 | 제이에스알 가부시끼가이샤 | 유전체 막 형성용 조성물의 제조 방법, 유전체 막 형성용조성물, 및 유전체 막 및 그의 형성 방법 |
KR101022471B1 (ko) * | 2004-01-17 | 2011-03-16 | 삼성전자주식회사 | 멀티미디어 데이터를 기록한 정보저장매체, 그 재생방법및 재생장치 |
CA2529313C (en) * | 2004-02-09 | 2008-07-15 | Research In Motion Limited | Methods and apparatus for controlling wireless network operations associated with a flow control process |
FI20040737A0 (fi) * | 2004-05-31 | 2004-05-31 | Nokia Corp | Menetelmä yhteydellisen tiedonsiirtoprotokollan toteuttamiseksi langattomissa verkoissa |
US7512072B2 (en) * | 2005-09-15 | 2009-03-31 | International Business Machines Corporation | TCP/IP method FPR determining the expected size of conjestion windows |
WO2007044884A1 (en) * | 2005-10-11 | 2007-04-19 | Dilithium Networks Pty Ltd. | Methods and system for fast session establishment for h.324 and related telecommunications terminals |
US7496038B2 (en) * | 2005-12-12 | 2009-02-24 | International Business Machines Corporation | Method for faster detection and retransmission of lost TCP segments |
AU2007212001A1 (en) * | 2006-02-07 | 2007-08-16 | Asankya Networks, Inc. | Systems and methods of improving performance of transport protocols |
US8315274B2 (en) * | 2006-03-29 | 2012-11-20 | Honeywell International Inc. | System and method for supporting synchronous system communications and operations |
CN100466625C (zh) * | 2006-09-07 | 2009-03-04 | 华为技术有限公司 | 一种实现业务流量控制的方法及系统 |
US8477608B2 (en) | 2006-10-26 | 2013-07-02 | Unwired Planet, Llc | Method and receiver for controlling the conformance of a data flow in a communication system to a traffic definition |
US8654638B2 (en) * | 2006-12-19 | 2014-02-18 | Marcin Godlewski | Dynamically adjusting bandwidth usage among subscriber streams |
US7757017B2 (en) * | 2007-05-15 | 2010-07-13 | International Business Machines Corporation | Adjusting direction of data flow between I/O bridges and I/O hubs based on real time traffic levels |
US8116337B2 (en) * | 2007-07-27 | 2012-02-14 | Marcin Godlewski | Bandwidth requests transmitted according to priority in a centrally managed network |
WO2009016618A2 (en) * | 2007-08-02 | 2009-02-05 | Celtro Ltd. | Method and system for identifying udp communications |
CN101483558B (zh) * | 2008-01-10 | 2012-07-04 | 华为技术有限公司 | 网络设备接入分组交换网络的方法、系统及装置 |
US8806053B1 (en) | 2008-04-29 | 2014-08-12 | F5 Networks, Inc. | Methods and systems for optimizing network traffic using preemptive acknowledgment signals |
US8024417B2 (en) * | 2008-06-04 | 2011-09-20 | Microsoft Corporation | Simple flow control protocol over RDMA |
US20100008248A1 (en) * | 2008-07-08 | 2010-01-14 | Barry Constantine | Network tester for real-time measuring of tcp throughput |
CN101651612A (zh) * | 2008-08-15 | 2010-02-17 | 深圳富泰宏精密工业有限公司 | 数据传输系统与方法 |
TWI463835B (zh) * | 2008-08-29 | 2014-12-01 | Chi Mei Comm Systems Inc | 資料傳輸系統與方法 |
US8589579B2 (en) * | 2008-10-08 | 2013-11-19 | Citrix Systems, Inc. | Systems and methods for real-time endpoint application flow control with network structure component |
US8566444B1 (en) | 2008-10-30 | 2013-10-22 | F5 Networks, Inc. | Methods and system for simultaneous multiple rules checking |
AU2009337511A1 (en) * | 2009-01-16 | 2011-09-08 | Mainline Net Holdings Limited | Maximizing bandwidth utilization in networks with high latencies and packet drops using transmission control protocol |
US8351434B1 (en) * | 2009-02-06 | 2013-01-08 | Olympus Corporation | Methods and systems for data communication over wireless communication channels |
US8340099B2 (en) * | 2009-07-15 | 2012-12-25 | Microsoft Corporation | Control of background data transfers |
US10157280B2 (en) | 2009-09-23 | 2018-12-18 | F5 Networks, Inc. | System and method for identifying security breach attempts of a website |
US9313047B2 (en) | 2009-11-06 | 2016-04-12 | F5 Networks, Inc. | Handling high throughput and low latency network data packets in a traffic management device |
US8868961B1 (en) | 2009-11-06 | 2014-10-21 | F5 Networks, Inc. | Methods for acquiring hyper transport timing and devices thereof |
US10721269B1 (en) | 2009-11-06 | 2020-07-21 | F5 Networks, Inc. | Methods and system for returning requests with javascript for clients before passing a request to a server |
US9141625B1 (en) | 2010-06-22 | 2015-09-22 | F5 Networks, Inc. | Methods for preserving flow state during virtual machine migration and devices thereof |
US10015286B1 (en) | 2010-06-23 | 2018-07-03 | F5 Networks, Inc. | System and method for proxying HTTP single sign on across network domains |
US8908545B1 (en) | 2010-07-08 | 2014-12-09 | F5 Networks, Inc. | System and method for handling TCP performance in network access with driver initiated application tunnel |
US8347100B1 (en) | 2010-07-14 | 2013-01-01 | F5 Networks, Inc. | Methods for DNSSEC proxying and deployment amelioration and systems thereof |
CA2806729A1 (en) * | 2010-08-06 | 2012-02-09 | Acquire Media Ventures Inc. | Method and system for pacing, ack'ing, timing, and handicapping (path) for simultaneous receipt of documents |
US9083760B1 (en) | 2010-08-09 | 2015-07-14 | F5 Networks, Inc. | Dynamic cloning and reservation of detached idle connections |
US8630174B1 (en) | 2010-09-14 | 2014-01-14 | F5 Networks, Inc. | System and method for post shaping TCP packetization |
US8886981B1 (en) | 2010-09-15 | 2014-11-11 | F5 Networks, Inc. | Systems and methods for idle driven scheduling |
US8463909B1 (en) | 2010-09-15 | 2013-06-11 | F5 Networks, Inc. | Systems and methods for managing server resources |
US8804504B1 (en) | 2010-09-16 | 2014-08-12 | F5 Networks, Inc. | System and method for reducing CPU load in processing PPP packets on a SSL-VPN tunneling device |
US8959571B2 (en) | 2010-10-29 | 2015-02-17 | F5 Networks, Inc. | Automated policy builder |
EP2633667B1 (en) | 2010-10-29 | 2017-09-06 | F5 Networks, Inc | System and method for on the fly protocol conversion in obtaining policy enforcement information |
US8639835B2 (en) * | 2010-11-29 | 2014-01-28 | Verizon Patent And Licensing Inc. | TCP window size performance optimization in wireless networks |
US8627467B2 (en) | 2011-01-14 | 2014-01-07 | F5 Networks, Inc. | System and method for selectively storing web objects in a cache memory based on policy decisions |
US10135831B2 (en) | 2011-01-28 | 2018-11-20 | F5 Networks, Inc. | System and method for combining an access control system with a traffic management system |
US8824687B2 (en) * | 2011-05-04 | 2014-09-02 | Acquire Media Ventures, Inc. | Method and system for pacing, acking, timing, and handicapping (path) for simultaneous receipt of documents employing encryption |
US9246819B1 (en) | 2011-06-20 | 2016-01-26 | F5 Networks, Inc. | System and method for performing message-based load balancing |
US9270766B2 (en) | 2011-12-30 | 2016-02-23 | F5 Networks, Inc. | Methods for identifying network traffic characteristics to correlate and manage one or more subsequent flows and devices thereof |
US9380635B2 (en) | 2012-01-09 | 2016-06-28 | Google Technology Holdings LLC | Dynamic TCP layer optimization for real-time field performance |
US10230566B1 (en) | 2012-02-17 | 2019-03-12 | F5 Networks, Inc. | Methods for dynamically constructing a service principal name and devices thereof |
US9231879B1 (en) | 2012-02-20 | 2016-01-05 | F5 Networks, Inc. | Methods for policy-based network traffic queue management and devices thereof |
US9172753B1 (en) | 2012-02-20 | 2015-10-27 | F5 Networks, Inc. | Methods for optimizing HTTP header based authentication and devices thereof |
WO2013163648A2 (en) | 2012-04-27 | 2013-10-31 | F5 Networks, Inc. | Methods for optimizing service of content requests and devices thereof |
US9338095B2 (en) | 2012-05-01 | 2016-05-10 | F5 Networks, Inc. | Data flow segment optimized for hot flows |
US9525632B1 (en) | 2012-05-01 | 2016-12-20 | F5 Networks, Inc. | Minimize recycle SYN issues for split TCP hot flows to improve system reliability and performance |
US9154423B1 (en) | 2012-05-01 | 2015-10-06 | F5 Networks, Inc. | Minimize SYN-flood issues with flow cache while maintaining performance |
US9203771B1 (en) | 2012-07-23 | 2015-12-01 | F5 Networks, Inc. | Hot service flow hardware offloads based on service priority and resource usage |
JP5998923B2 (ja) * | 2012-12-28 | 2016-09-28 | 富士通株式会社 | プログラム、情報処理装置、及び通信方法 |
US10375155B1 (en) | 2013-02-19 | 2019-08-06 | F5 Networks, Inc. | System and method for achieving hardware acceleration for asymmetric flow connections |
US10291472B2 (en) | 2015-07-29 | 2019-05-14 | AppFormix, Inc. | Assessment of operational states of a computing environment |
US9385959B2 (en) | 2013-09-26 | 2016-07-05 | Acelio, Inc. | System and method for improving TCP performance in virtualized environments |
US10355997B2 (en) | 2013-09-26 | 2019-07-16 | Appformix Inc. | System and method for improving TCP performance in virtualized environments |
US10581687B2 (en) | 2013-09-26 | 2020-03-03 | Appformix Inc. | Real-time cloud-infrastructure policy implementation and management |
US10187317B1 (en) | 2013-11-15 | 2019-01-22 | F5 Networks, Inc. | Methods for traffic rate control and devices thereof |
US9237467B2 (en) | 2013-11-27 | 2016-01-12 | At&T Intellectual Property I, L.P. | Adaptive pacing of media content delivery over a wireless network |
EP2887595B8 (en) * | 2013-12-23 | 2019-10-16 | Rohde & Schwarz GmbH & Co. KG | Method and node for retransmitting data packets in a tcp connection |
US10015143B1 (en) | 2014-06-05 | 2018-07-03 | F5 Networks, Inc. | Methods for securing one or more license entitlement grants and devices thereof |
US11838851B1 (en) | 2014-07-15 | 2023-12-05 | F5, Inc. | Methods for managing L7 traffic classification and devices thereof |
US10122630B1 (en) | 2014-08-15 | 2018-11-06 | F5 Networks, Inc. | Methods for network traffic presteering and devices thereof |
US9906454B2 (en) * | 2014-09-17 | 2018-02-27 | AppFormix, Inc. | System and method for providing quality of service to data center applications by controlling the rate at which data packets are transmitted |
US10182013B1 (en) | 2014-12-01 | 2019-01-15 | F5 Networks, Inc. | Methods for managing progressive image delivery and devices thereof |
US11895138B1 (en) | 2015-02-02 | 2024-02-06 | F5, Inc. | Methods for improving web scanner accuracy and devices thereof |
US10834065B1 (en) | 2015-03-31 | 2020-11-10 | F5 Networks, Inc. | Methods for SSL protected NTLM re-authentication and devices thereof |
US11350254B1 (en) | 2015-05-05 | 2022-05-31 | F5, Inc. | Methods for enforcing compliance policies and devices thereof |
US10505818B1 (en) | 2015-05-05 | 2019-12-10 | F5 Networks. Inc. | Methods for analyzing and load balancing based on server health and devices thereof |
US11757946B1 (en) | 2015-12-22 | 2023-09-12 | F5, Inc. | Methods for analyzing network traffic and enforcing network policies and devices thereof |
US10404698B1 (en) | 2016-01-15 | 2019-09-03 | F5 Networks, Inc. | Methods for adaptive organization of web application access points in webtops and devices thereof |
US11178150B1 (en) | 2016-01-20 | 2021-11-16 | F5 Networks, Inc. | Methods for enforcing access control list based on managed application and devices thereof |
US10797888B1 (en) | 2016-01-20 | 2020-10-06 | F5 Networks, Inc. | Methods for secured SCEP enrollment for client devices and devices thereof |
US10791088B1 (en) | 2016-06-17 | 2020-09-29 | F5 Networks, Inc. | Methods for disaggregating subscribers via DHCP address translation and devices thereof |
US11063758B1 (en) | 2016-11-01 | 2021-07-13 | F5 Networks, Inc. | Methods for facilitating cipher selection and devices thereof |
US10505792B1 (en) | 2016-11-02 | 2019-12-10 | F5 Networks, Inc. | Methods for facilitating network traffic analytics and devices thereof |
CA3048055A1 (en) * | 2016-12-21 | 2018-06-28 | Dejero Labs Inc. | Packet transmission system and method |
US10320677B2 (en) | 2017-01-02 | 2019-06-11 | Microsoft Technology Licensing, Llc | Flow control and congestion management for acceleration components configured to accelerate a service |
US10326696B2 (en) | 2017-01-02 | 2019-06-18 | Microsoft Technology Licensing, Llc | Transmission of messages by acceleration components configured to accelerate a service |
US10334055B2 (en) * | 2017-02-01 | 2019-06-25 | International Business Machines Corporation | Communication layer with dynamic multi-session management |
US11496438B1 (en) | 2017-02-07 | 2022-11-08 | F5, Inc. | Methods for improved network security using asymmetric traffic delivery and devices thereof |
US10791119B1 (en) | 2017-03-14 | 2020-09-29 | F5 Networks, Inc. | Methods for temporal password injection and devices thereof |
US10812266B1 (en) | 2017-03-17 | 2020-10-20 | F5 Networks, Inc. | Methods for managing security tokens based on security violations and devices thereof |
US11068314B2 (en) | 2017-03-29 | 2021-07-20 | Juniper Networks, Inc. | Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment |
US10868742B2 (en) | 2017-03-29 | 2020-12-15 | Juniper Networks, Inc. | Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control |
US10931662B1 (en) | 2017-04-10 | 2021-02-23 | F5 Networks, Inc. | Methods for ephemeral authentication screening and devices thereof |
US11323327B1 (en) | 2017-04-19 | 2022-05-03 | Juniper Networks, Inc. | Virtualization infrastructure element monitoring and policy control in a cloud environment using profiles |
US10972453B1 (en) | 2017-05-03 | 2021-04-06 | F5 Networks, Inc. | Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof |
US11122042B1 (en) | 2017-05-12 | 2021-09-14 | F5 Networks, Inc. | Methods for dynamically managing user access control and devices thereof |
US11343237B1 (en) | 2017-05-12 | 2022-05-24 | F5, Inc. | Methods for managing a federated identity environment using security and access control data and devices thereof |
US11122083B1 (en) | 2017-09-08 | 2021-09-14 | F5 Networks, Inc. | Methods for managing network connections based on DNS data and network policies and devices thereof |
US11658995B1 (en) | 2018-03-20 | 2023-05-23 | F5, Inc. | Methods for dynamically mitigating network attacks and devices thereof |
US11044200B1 (en) | 2018-07-06 | 2021-06-22 | F5 Networks, Inc. | Methods for service stitching using a packet header and devices thereof |
CN110995606B (zh) * | 2019-12-20 | 2022-02-22 | 迈普通信技术股份有限公司 | 一种拥塞分析方法及装置 |
CN114629841B (zh) * | 2020-11-27 | 2023-05-16 | 华为技术有限公司 | 通信方法、装置及系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5130986A (en) * | 1990-04-27 | 1992-07-14 | At&T Bell Laboratories | High speed transport protocol with two windows |
US5063562A (en) * | 1990-05-23 | 1991-11-05 | International Business Machines Corporation | Flow control for high speed networks |
JP2870569B2 (ja) * | 1993-03-22 | 1999-03-17 | 富士通株式会社 | フレームリレー交換装置における輻輳処理方式および輻輳処理回路 |
US5734825A (en) * | 1994-07-18 | 1998-03-31 | Digital Equipment Corporation | Traffic control system having distributed rate calculation and link by link flow control |
JP3388511B2 (ja) * | 1996-02-19 | 2003-03-24 | 日本電信電話株式会社 | 輻輳制御方法 |
US5966381A (en) * | 1996-03-20 | 1999-10-12 | Sun Microsystems, Inc. | Method and apparatus for explicit rate flow control in ATM networks |
JPH1023064A (ja) * | 1996-07-01 | 1998-01-23 | Nippon Telegr & Teleph Corp <Ntt> | 自律分散型トラヒックフロー制御法 |
US6252851B1 (en) * | 1997-03-27 | 2001-06-26 | Massachusetts Institute Of Technology | Method for regulating TCP flow over heterogeneous networks |
US6320846B1 (en) * | 1997-08-05 | 2001-11-20 | Hi/Fm, Inc. | Method and apparatus for controlling network bandwidth |
US6438101B1 (en) * | 1997-12-23 | 2002-08-20 | At&T Corp. | Method and apparatus for managing congestion within an internetwork using window adaptation |
US6370114B1 (en) * | 1997-12-31 | 2002-04-09 | Nortel Networks Limited | Apparatus and method for optimizing congestion control information in a multi-protocol network |
US6219713B1 (en) * | 1998-07-07 | 2001-04-17 | Nokia Telecommunications, Oy | Method and apparatus for adjustment of TCP sliding window with information about network conditions |
-
1998
- 1998-03-31 EP EP98105859A patent/EP0948168A1/en not_active Withdrawn
-
1999
- 1999-03-30 AU AU36029/99A patent/AU752032B2/en not_active Ceased
- 1999-03-30 CA CA002326488A patent/CA2326488C/en not_active Expired - Lifetime
- 1999-03-30 IL IL13830399A patent/IL138303A/xx not_active IP Right Cessation
- 1999-03-30 DE DE69922180T patent/DE69922180T2/de not_active Expired - Lifetime
- 1999-03-30 US US09/281,428 patent/US6754228B1/en not_active Expired - Lifetime
- 1999-03-30 CN CNB998068543A patent/CN1149793C/zh not_active Expired - Fee Related
- 1999-03-30 EP EP99917924A patent/EP1070407B1/en not_active Expired - Lifetime
- 1999-03-30 WO PCT/EP1999/002184 patent/WO1999050998A1/en active IP Right Grant
- 1999-03-30 JP JP2000541802A patent/JP4738594B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO1999050998A1 (en) | 1999-10-07 |
CA2326488C (en) | 2008-08-12 |
EP1070407A1 (en) | 2001-01-24 |
JP2002510904A (ja) | 2002-04-09 |
CA2326488A1 (en) | 1999-10-07 |
AU3602999A (en) | 1999-10-18 |
US6754228B1 (en) | 2004-06-22 |
AU752032B2 (en) | 2002-09-05 |
JP4738594B2 (ja) | 2011-08-03 |
DE69922180D1 (de) | 2004-12-30 |
DE69922180T2 (de) | 2005-12-01 |
EP0948168A1 (en) | 1999-10-06 |
IL138303A (en) | 2005-09-25 |
IL138303A0 (en) | 2001-10-31 |
CN1303557A (zh) | 2001-07-11 |
EP1070407B1 (en) | 2004-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1149793C (zh) | 用于数据流控制的方法和设备 | |
CN1297118C (zh) | 带宽监控设备 | |
US7801145B2 (en) | Method for transmitting network packets | |
RU2409898C2 (ru) | Гибкая схема сегментации для систем связи | |
CN1227854C (zh) | 用于蜂窝电信的链路层确认和重发 | |
US7293100B2 (en) | Methods and apparatus for partially reordering data packets | |
US7724750B2 (en) | Expedited data transmission in packet based network | |
US8638796B2 (en) | Re-ordering segments of a large number of segmented service flows | |
US20040208183A1 (en) | Scheduler and method for scheduling transmissions in a communication network | |
CN1478345A (zh) | 分组交换通信网络内的使用漏桶算法的流量控制 | |
US10715442B2 (en) | Congestion control | |
CN102355462A (zh) | 一种实现tcp传输的方法及装置 | |
US20020176361A1 (en) | End-to-end traffic management and adaptive multi-hop multimedia transmission | |
WO2000002395A2 (en) | Method and apparatus for adjustment of tcp sliding window with information about network conditions | |
CN101933298A (zh) | 无线通信系统中通过多条链路进行的分组传输 | |
WO2003092227A1 (en) | Bit rate control method and device | |
US20150288609A1 (en) | Deadline-aware network protocol | |
US10986030B2 (en) | Congestion control | |
CN1633796A (zh) | 针对广播或无线网络修改tcp/ip | |
CN1736063A (zh) | 分组网络中表示几种不同阻塞原因的阻塞通知方法及设备 | |
CN114124826B (zh) | 拥塞位置可感知的低时延数据中心网络传输系统及方法 | |
US11570117B2 (en) | Congestion control | |
CN1353367A (zh) | 一种基于随机早期检测的逐节拥塞控制方法 | |
JPH11215480A (ja) | 映像通信システム及び映像送信装置及び映像受信装置及びそれらの制御方法及び記憶媒体 | |
EP1744496B1 (en) | Control of background transfers |
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: 20040512 Termination date: 20150330 |
|
EXPY | Termination of patent right or utility model |