专利名称:会话中继设备和中继方法
技术领域:
本发明涉及一种会话中继设备和其中使用的中继方法,特别是,涉及一种用于在TCP(发送控制协议)会话之间中继数据的设备。
背景技术:
一般来说,在通信应用中,通信会话(尤其是TCP会话)建立在发送终端和接收终端之间,并且在建立的会话上进行通信。
TCP会话的通信带宽依赖于信息堵塞等级和网络的往返传播延迟时间而大幅度地变化。例如,假设发送缓冲器大小是64KB,如果往返传播延迟是30毫秒,那么TCP会话的吞吐量可计算地限制到大约20Mbps,即使有1Gbps的可用物理带宽。
同样,如果往返播延迟是30毫秒,只要网络中的丢弃率不是0.0001%或低于0.0001%,也就是说不是以每26秒或低于26秒一次的频率来丢弃分组,就不能计算达到1Gbps的吞吐量,即使能保证足够的发送缓冲器。而且,存在另外一个问题,即使一个尤其重要TCP会话需要带宽,由于与其他TCP会话的争夺也不可能保证所需的带宽。
因此,作为提高TCP会话的吞吐量的技术,一般存在以下几种方案。第一种方案是其中给TCP发送终端提供足够的发送缓冲器的方案。在该方案中,由于即使没有接收到接收确认分组(ACK分组)也增加了最大可发送数据量,所以在带宽和传播延迟的乘积(带宽延迟乘积)很大的情况下可以提高吞吐量。
同样,一般来说,该方案能够通过改变操作系统(OS)中的TCP参数来容易地增加最大数据量。例如,下面的参考1公开了一种允许发送终端具有64KB或更大的发送缓冲器的系统,并且下面的参考2公开了一种依据带宽、传播延迟等自动改变发送缓冲器的量的系统。
参考1V.Jacobson等人的“TCP Extensions for HighPerformance”,Internet Engineering Task Force,Request forcomments 1323,1992年5月。
参考2Tom Dunigan等人的“A TCP Tuning Daemon”,在SC2002学报中,2002年11月。
第二种方案是其中中继TCP会话的方案。在该方案中,会话中继设备被安装在发送终端和接收终端之间,以便在从发送终端到会话中继设备的会话和从会话中继设备到接收终端的会话之间中继数据。因此,可以提高吞吐量,因为各个会话中的带宽延迟乘积比直接在发送终端和接收终端之间进行通信的会话中的小。例如,在下面的参考3至7中公开了这第二种方案的具体例子。
参考3JP-A-11-252179参考4JP-A-2002-281104参考5JP-A-11-112576参考6JP-A-2002-312261参考7Ajay Bakre和B.R.Badrinath的“I-TCP;I-TCP;IndirectTCP for Mobile Host”,Department of Computer Science RutgersUniversity,DSC-TR-314,1994年(http//www.it.iitb.ac.in/it644/papers/i-tcp.pdf)。
第三种方案是其中改变TCP窗口流控制算法的方案。当通过分组丢弃率确定了TCP会话的带宽时,在TCP窗口流控制中,该方案在没有丢弃分组时执行增加发送带宽(也就是堵塞窗口大小)的操作,以及当检测到丢弃分组时执行减小堵塞窗口大小的操作。
因此能够通过改变TCP参数来提高TCP吞吐量,例如堵塞窗口大小的增加量和降低速率。这些系统试图通过改变TCP控制参数来提高吞吐量,例如堵塞窗口大小的增加宽度和降低速率。例如,在下面的参考8、9中公开了这第三种方案的具体例子。
参考82002年正在进行的Sally Floyd的“High-Speed TCP forLarge Congestion Windows”,Internet draftdraft-floyd-tcp-highspeed-01.txt,Internet Engineering TaskForce。
参考9Panos Gevros等人的“Analysis of a Method forDifferentiated TCP Service”,in proc.of GLOBECOM99,第1699页-1708页中,1999年。
同样,下面的参考10公开了一种当检测到堵塞一次时不减小堵塞窗口、而当多次检测到堵塞时减小堵塞窗口的系统。
参考10JP-A-11-122296第四种方案是其中通过调整排队的多个TCP会话之间的带宽来给特定会话提供高吞吐量的方案。
在该方案中,在安装在发送终端和接收终端之间的会话中继设备中给每个会话都提供一个队列,以便将每个会话的进入分组存储在与该会话相对应的队列中。
以为各个会话设置的带宽、从各个队列传送分组,并且在会话中继设备中丢弃以比设置带宽大的带宽从发送终端传送过来的分组。例如,在下面的参考11、12中公开了这第四种方案的具体例子。
参考11JP-A-10-126446参考12JP-A-10-233802第五种方案是通过在安装在发送终端和接收终端之间的会话中继设备中控制ACK(确认)分组来调整TCP会话之间的带宽,从而给特定会话提供高吞吐量。
在该方案中,通过改写在ACK分组中写入的广告窗口大小,也就是接收终端能接收的数据量变少,减少从发送终端向接收终端发送的数据量来控制带宽。
同样,该方案通过延迟ACK分组进而延迟来自发送终端的下一个数据的传送来控制带宽。作为根据该方案的系统,有一种在ATM(异步传送模式)网络上用堵塞信息改写ACK分组的系统,如在下面的参考13中公开的一样,以及一种根据视频帧的周期来延迟ACK分组的系统,如在下面的参考14中公开的一样。
参考13JP-A-2001-203697参考14JP-A-2002-271380上面描述的传统会话中继设备有一个问题,就是当使用第一种方案时必须修改终端。用户自己必须设置一个适合各个终端的各个TCP会话的缓冲大小,而且,为了自动地设置缓冲大小,必须给终端增加一个应用程序,这导致终端的管理成本增加。
当使用第二种方案时,传统的会话延迟设备具有如果网络中的分组丢弃率高的话就不能达到高吞吐量的问题。
因此,即使使用多个会话中继设备在发送终端和接收终端之间执行大量的中继,传统的会话中继设备也不能实现高吞吐量,只有在特定部分的单个站点处的分组丢弃率很高的时候。
当使用第三种方案时,传统的会话中继设备具有在一些情况下引起网络堵塞的问题。在第三种方案中,由于以高带宽来发送分组,所以即使在与具有普通控制参数的TCP相同的网络堵塞水平上,也能引起网络中的堵塞。
尤其是,更可能随着将控制参数设置得较大来提高吞吐量而出现堵塞。由于避免堵塞的控制参数的范围依据条件的变化而改变并且不能唯一地确定,所以不能保证在提高吞吐量的同时避免网络中的堵塞。另一方面,当控制参数被适度地设置得足以避免堵塞时,不可能期望提高的吞吐量。
同样,当使用第三种方案时,传统的会话中继设备具有不能明显控制吞吐量的问题。第三种方案不能唯一地确定用于目标吞吐量的控制参数,因此不能实现不依赖于传播延迟时间而向目标终端提供相当高的吞吐量,以及向特定会话提供特定吞吐量等。
而且,即使将第三种方案与前面提及的第四种方案或第五种方案组合,也必须先设置控制参数以便在任何情况下实现目标吞吐量,因为第四种方案或第五种方案只会将控制引导到吞吐量下降的方向上。在该情况中,网络非常可能被堵塞。
当单独使用第四种方案或第五种方案时,当带宽延迟乘积很大或当网络堵塞时,不能实施明显的带宽控制,因为它不能将控制引导到提高吞吐量的方向上。
当使用第三种方案和第四种方案时,传统的会话中继设备具有在一些情况下会减少发送终端和会话中继设备之间的带宽的问题。
当发送终端和会话中继设备之间的带宽少于会话中继设备和接收终端之间的带宽时,会话中继设备的接收缓冲器就频繁地被填满,使得会话中继设备向发送终端通知一个0字节的广告窗口大小。当通知0字节的广告窗口大小时,发送终端停止发送直到向其通知了1个字节或更多字节的广告窗口大小为止,由此导致发送终端的低发送带宽。
传统的会话中继设备具有一个问题,即发送终端的低发送带宽的问题也在会话中继设备和接收终端之间产生影响。
当可被接收终端处理的数据带宽低于发送终端和会话中继设备之间的带宽时,接收终端的接收缓冲器就被频繁地填满,使得接收终端向会话中继设备通知一个0字节的广告窗口大小。当通知了0字节的广告窗口大小时,会话中继设备停止发送直到向其通知了1个字节或更多字节的广告窗口大小为止,由此导致从会话中继设备的低发送带宽。
发明内容
因此本发明的一个目的是提供一种能解决上述问题的会话中继设备以及其中使用的会话中继方法,其能优化控制会话带宽,同时能避免堵塞,而且与网络堵塞状况或会话往返传播延迟时间无关。
根据本发明的会话中继设备是一种通过中继发送终端和接收终端之间的会话来控制所述发送终端和接收终端之间的通信带宽的会话中继设备,所述会话中继设备包括用于改变所述设备本身和所述接收终端之间的会话的窗口流控制的装置。
根据本发明的另一种会话中继设备是一种通过中继到所述发送终端的会话与到所述接收终端的会话之间的数据来实现发送终端和接收终端之间的通信的会话中继设备,所述设备包括用于从到所述发送终端的会话中接收数据的接收控制装置;用于向到所述接收终端的会话发送数据的发送控制装置;用于将由所述接收控制装置接收和处理的数据传送给所述发送处理装置的装置;用于观察与所述发送控制装置相关的状态的观察装置;以及用于改变所述发送控制装置的操作的改变装置。
其中根据所述观察装置的观察结果来改变所述发送控制装置的操作。
根据本发明的会话中继方法是一种用于通过中继发送终端和接收终端之间的会话来控制所述发送终端和所述接收终端之间的通信带宽的会话中继设备的会话中继方法,所述方法的特征在于包括,在所述会话中继设备侧,改变所述会话中继设备与所述接收终端之间的会话的窗口流控制的处理过程。
根据本发明的另一种会话中继方法是一种通过中继到所述发送终端的会话与到所述接收终端的会话之间的数据来实现发送终端和接收终端之间的通信的会话中继设备的会话中继方法,所述方法包括在所述会话中继设备侧,传送数据的处理过程,其中由用于从到所述发送终端的会话、到发送处理装置的会话中接收数据的接收控制装置接收和处理所述数据,并且其中的所述发送处理装置用于向到所述接收终端的会话发送数据;观察与所述发送控制装置相关的状态的处理过程;以及改变所述发送控制装置的操作的处理过程,其中根据观察结果来改变所述发送控制装置的操作。
具体来说,为了解决上述问题,本发明的会话中继设备在不改变发送终端或接收终端的情况下,通过改变会话中继设备的发送缓冲器大小、TCP(发送控制协议)控制参数等来控制吞吐量。
同样,为了解决上述问题,本发明的会话中继设备通过将TCP会话中继与会话中继设备的发送缓冲器大小的变化、TCP控制参数等相组合来控制吞吐量,而不受传播延迟时间或网络堵塞水平的影响。
另外,为了解决上述问题,在将从发送终端的会话接收的数据传送到接收终端的会话时,本发明的会话中继设备实施带宽控制,并动态地改变会话中的控制参数来基于在该会话中的接收数据量与实际发送的数据量之间的差值向接收终端进行发送。
在本发明的会话中继设备中,例如,按照当向接收终端的会话的发送缓冲器的数据量或其平均值等于或大于特定值时增加吞吐量的方向来改变控制参数,而按照当数据量或其平均值等于或小于特定值时降低吞吐量的方向来改变控制参数,由此动态地改变控制参数以实现目标带宽控制。
同样,即使按照提高吞吐量的方向来改变控制参数,吞吐量提高效果也没有出现时,或者当从丢弃率已经升高到特定值或高于所述值的事实中确定出堵塞时,本发明的会话中继设备停止改变控制参数或按照降低吞吐量的方向来改变参数。
为了解决上述问题,本发明的会话中继设备监视用于发送终端和会话中继设备之间的会话的接收缓冲器中停留的分组的数量,并向发送终端产生具有相同ACK序列号码的副本ACK,当分组的数量或其平均值等于或大于特定值时,由此降低发送终端的发送速率来防止接收终端被频繁地填满。
同样,为了尽早恢复发送,即使接收缓冲器被填满了,如果在从接收终端接收到用于确认接收到一个字节或多个字节的ACK分组时能保证在接收缓冲器中有一定量的或大量的空闲容量,本发明的会话中继设备就在那个时候发送具有一个或多个广告窗口大小的ACK分组给发送终端。
为了解决上述问题,本发明的会话中继设备监视从接收终端通知的广告窗口大小,并且如果广告窗口大小的平均值等于或大于特定值,就改变从会话中继设备到接收终端的会话的控制参数,由此降低会话中继设备的发送速率,以防止接收缓冲器被频繁地填满。
因此,如上所述,本发明能够在不引起堵塞的情况下提供优选控制会话带宽的效果,同时与网络堵塞状况或会话往返传播延迟时间无关。
图1是解释包括根据本发明的第一实施例的会话中继设备的发送系统的配置框图。
图2是解释根据本发明第一实施例的会话中继设备的配置框图。
图3是解释根据本发明第一实施例的会话中继处理过程的流程图。
图4是解释根据本发明第一实施例的会话中继处理过程的流程图。
图5是解释根据本发明第一实施例的ACK返回处理过程的流程图。
图6是解释根据本发明第一实施例的堵塞处理过程的流程图。
图7是解释根据本发明第二实施例的会话中继设备的配置框图。
图8是解释根据本发明第三实施例的会话中继设备的配置框图。
图9是解释根据本发明第四实施例的会话中继设备的配置框图。
图10是解释根据本发明第五实施例的会话中继设备的配置框图。
图11是解释根据本发明第六实施例的会话中继设备的配置框图。
图12是解释根据本发明第七实施例的会话中继设备的配置框图。
图13是解释根据本发明第八实施例的会话中继设备的配置框图。
图14是解释在本发明第八实施例中的会话中继设备(发送终端)与会话中继设备(接收终端)之间的数据流程的框图。
具体实施例方式
下面,将参照附图来描述本发明的实施例。
图1是解释发送发送系统的配置框图,所述发送系统包括根据本发明第一实施例的会话中继设备。在图1中,会话中继设备1包括会话识别单元11、会话中继单元12-1至12-N和输出控制单元13,会话中继设备1被连接到接收终端2和发送终端3。
首先,当从发送终端3向接收终端2发送数据时,会话中继单元12-1的接收会话处理单元(未示出)处理来自发送终端3的分组,并且最后,向发送终端3返回一个ACK分组。
接收会话处理单元接收的数据被发送到会话中继单元12-1的发送会话处理单元(未示出),并从这里向接收终端2发送分组。另一方面,会话中继单元12-1的发送会话处理单元处理由接收终端2返回的ACK分组。
同样,当从接收终端2向发送终端3发送数据时,会话中继单元12-2的接收会话处理单元(未示出)处理来自接收终端2的分组,并且最后,向接收终端2返回一个ACK分组。
接收会话处理单元接收的数据被发送到会话中继单元12-2的发送会话处理单元(未示出),并从这里向发送终端3发送分组。另一方面,会话中继单元12-2的发送会话处理单元处理由发送终端3返回的ACK分组。
在该实施例中,通过改变会话中继设备1的发送缓冲器大小、TCP(发送控制协议)控制参数等来控制吞吐量,不必修改发送终端3或接收终端2。
同样,在该实施例中,通过将TCP会话中继与会话中继设备1的发送缓冲器大小的改变、TCP控制参数等组合来控制吞吐量,而不受传播延迟时间或网络堵塞水平的影响。
而且,在本发明的实施例中,当来自发送终端3的会话的数据被传送到接收终端2的会话时,控制带宽,并且在进行到接收终端2的发送的会话中,基于接收到的数据量和实际发送的数据量之间的差值来为会话动态地改变控制参数。
在该实施例中,例如当针对到接收终端2的会话的发送缓冲器中的数据量或其平均值达到特定值或高于该值时,按照增加吞吐量的方向改变控制参数,而当所述数据量或其平均值低于特定值时按照降低吞吐量的方向来改变控制参数,由此动态地改变控制参数以实施目标带宽控制。
在该实施例中,当即使按照提高吞吐量的方向改变控制参数也没有出现吞吐量提高效果时,或者当从已经增加到特定值或高于特定值的丢弃率中确定出堵塞时,不改变控制参数或按照降低吞吐量的方向改变控制参数。
在该实施例中,监视发送终端3和会话中继设备1之间的会话的接收缓冲器中停留的分组数量,并且当分组数量或其平均值达到特定值或高于特定值时,将具有相同ACK序列的副本ACK传送到发送终端,由此降低发送终端3的发送速率,来防止接收缓冲器被频繁地填满。
同样,在该实施例中,为了能在即使填满接收缓冲器时尽早恢复发送,在已经从接收终端2接收到ACK分组以确定接收到一个字节或多个字节时,如果确保在接收缓冲器中有一定数量的或大量的空闲容量,就在那时将具有一个字节或多个字节的广告窗口大小的ACK分组发送给发送终端3。
在该实施例中,当广告窗口大小的平均值等于或大于特定值时,监视从接收终端2通知的广告窗口大小来改变从会话中继设备1到接收终端2的会话的控制参数,由此降低会话中继设备1的发送速率以防止接收缓冲器被频繁地填满。
图2是解释根据本发明第一实施例的会话中继设备的配置框图。在图2中,根据本发明第一实施例的会话中继设备包括会话识别单元11、会话中继单元12-1至12-N、以及输出控制单元13,所述会话中继设备连接到接收终端2和发送终端3。
会话识别单元11确定进入分组所属的会话,会话中继单元12-1至12-N在会话识别单元11和发送终端3的会话与接收终端2的会话之间进行中继。输出控制单元13将从各个会话中继单元12-1至12-N传送来的分组传送到输出线上。
会话中继单元12-1至12-N包括接收会话处理单元121-1至121-N(接收会话处理单元121-2至121-N未示出);接收缓冲器122-1至122-N(接收缓冲器122-2至122-N未示出);带宽控制单元123-1至123-N(带宽控制单元123-2至123-N未示出);发送缓冲器124-1至124-N(发送缓冲器124-2至124-N未示出);发送会话处理单元125-1至125-N(发送会话处理单元125-2至125-N未示出);发送恢复ACK(确认)产生单元126-1至126-N(发送恢复ACK产生单元126-2至126-N未示出);副本ACK产生单元127-1至127-N(副本ACK产生单元127-2至127-N未示出);分组丢弃率计算单元128-1至128-N(分组丢弃率计算单元128-2至128-N未示出);控制参数计算单元129-1至129-N(控制参数计算单元129-2至129-N未示出);以及堵塞报告信号检测单元130-1至130-N(堵塞报告信号检测单元130-2至130-N未示出)。
接收会话处理单元121-1至121-N处理用于接收来自发送终端3的数据的会话,接收缓冲器122-1至122-N暂时存储接收的数据。带宽控制单元123-1至123-N控制从接收缓冲器122-1至122-N到发送缓冲器124-1至124-N的数据移动,发送缓冲器124-1至124-N暂时存储要发送的数据。发送会话处理单元125-1至125-N处理用于向接收终端2发送数据的会话。
发送恢复ACK产生单元126-1至126-N产生用于指示发送终端3恢复发送的ACK分组,副本ACK产生单元127-1至127-N产生用于指示发送终端3降低发送速率的副本ACK分组。
分组丢弃率计算单元128-1至128-N计算到接收终端2的会话中的分组丢弃率,控制参数计算单元129-1至129-N根据停留在发送缓冲器124-1至124-N中的数据量和分组丢弃率,改变到接收终端2的会话的控制参数。堵塞报告信号检测单元130-1至130-N通知网络中的堵塞不能满足设置的带宽(未示出)。
在TCP(发送控制协议)会话中,一般在发送终端3和接收终端2之间进行双向通信。因此,在该实施例中假设将会话中继单元12-1至12-N中的两个用于一组发送终端3和接收终端2,并且将相应的会话中继单元12-1至12-N分别用于各个方向的数据通信。
因此,为多组发送终端3和接收终端2两个两个地提供会话中继单元12-1至12-N,并且每个会话中继单元12-1至12-N都执行用于将数据从来自不同发送终端3的会话中继到去往相应的接收终端2的会话的处理,或者用于将数据从来自不同接收终端2的会话中继到去往相应发送终端3的会话的处理。
在TCP会话中,可以将特定方向上的分组和相反方向上的ACK分组合成到单个分组(ACK捎带方式(piggy back))上,但是为了简化说明,在该实施例中省略对上述操作的描述。
图3和4是解释根据本发明的第一实施例的会话中继处理的流程图,图5是解释根据本发明第一实施例的ACK返回处理的流程图,图6是解释根据本发明第一实施例的堵塞处理的流程图。下面将参照这些图2至6来描述根据本发明第一实施例的会话中继设备1的操作。
当分组被引入到会话中继设备1(图3中的步骤S1)时,会话识别单元11参考分组的报头,并基于源IP(因特网协议)地址、目的地IP地址、第四层协议号码、源第四层端口号码、目的地第四层端口号码等来确定进入分组所属的会话(图3中的步骤S2)。
当进入分组是数据分组时,会话识别单元11将分组传送到相应会话中继单元12-1至12-N的接收会话处理单元121-1至121-N(图3中的步骤S3),当进入分组是ACK分组时,将其传送到相应会话中继单元12-1至12-N的发送会话处理单元125-1至125-N(图3中的步骤S3)。
当接收的数据分组具有正确的序列号码时(图3中的步骤S4),接收会话处理单元121-1至121-N重新组合从分组中接收到的数据,并在接收缓冲器122-1至122-N中存储数据(图3中的步骤S5),并且同时,返回用于通知发送终端3对数据接收和广告窗口大小的确认的ACK分组(图3中的步骤S6)。
当进入数据分组不具有正确的序列号码时(图3中的步骤S4),接收会话处理单元121-1至121-N产生副本ACK来提示发送终端3重新发送分组(图3中的步骤S8)。
由于在1994年出版的,ISBN号为0-201-63346-9(以下称作“文件1”),由Addison-Wesley编写的“TCP/IP Illustrated,卷1TheProtocols”中已经详细描述了上述处理过程,所以这里就不对此进行详细说明了。
带宽控制单元123-1至123-N控制从接收缓冲器122-1至122-N到发送缓冲器124-1至124-N的数据移动(图3中的步骤S7)。该数据移动控制包括例如根据为每个会话设置的目标带宽来控制数据移动的带宽,或者在带宽控制单元123-1至123-N中循环调度数据移动,以便所有的带宽控制单元123-1至123-N都以相等的带宽或预设的带宽率来执行数据移动。在该情况下,如果在接收缓冲器122-1至122-N中没有数据,或者在发送缓冲器124-1至124-N中没有空闲容量,带宽控制单元123-1至123-N就暂时停止数据移动。
发送会话处理单元125-1至125-N根据由此计算的堵塞窗口大小和从接收终端2通知的广告窗口大小中的较小窗口大小,对来自发送缓冲器124-1至124-N的数据执行发送处理(图4中的步骤S9)。
同样,当从接收终端2接收到ACK分组时,发送会话处理单元125-1至125-N执行数据重发处理(图4中的步骤S11),并且在ACK分组是副本ACK时(图4中的步骤S10),同时改变堵塞窗口大小(图4中的步骤S12)。
当来自接收终端2的ACK分组不是副本ACK时(图4中的步骤S10),发送会话处理单元125-1至125-N就从发送缓冲器124-1至124-N中删除数据、已经确认的接收(图4中的步骤S13),并改变堵塞窗口大小(图4中的步骤S14)。由于在文件1中也详细描述了该处理过程,所以这里不再对其进行详细描述。
如果当ACK分组返回到发送终端3时,接收缓冲器已经被填满(图5中的步骤S21),接收会话处理单元121-1至121-N就广告一个0字节的广告窗口大小(图5中的步骤S22),由此使得发送终端3一接收到该ACK分组就停止发送。
因此,在根据本实施例的会话中继设备1中,发送缓冲器122-1至122-N的空闲容量达不到特定值或低于特定值(图5中的步骤S23),副本ACK产生单元127-1至127-N立即或每次接收到分组时为发送终端3顺序发送足够数量(通常是“3”)的副本ACK分组以减小到发送终端3的堵塞窗口(图5中的步骤S24),这使得发送终端3降低数据输出速率。
同样,在根据本发明的会话中继设备1中,当接收缓冲器122-1至122-N中有一定值(MSS;Maximum Segment Size)或更多的空闲容量可用时(图5中的步骤S25、S26),立即产生一个ACK分组来提示发送终端3恢复发送(图5中的步骤S27),以便即使当向其广告了0字节的广告窗口大小时,发送终端3能尽早恢复数据发送。
因此,当通过带宽控制单元123-1至123-N将数据从接收缓冲器122-1至122-N移动到发送缓冲器124-1至124-N时,发送恢复ACK产生单元126-1至126-N就检查接收缓冲器122-1至122-N的空闲容量,并且如果空闲容量已经恢复到特定值或更多时,就产生一个用于发送到发送终端3的ACK分组。
从会话中继设备1到接收终端2的带宽依赖于发送会话处理单元125-1至125-N计算的堵塞窗口大小,并且所述带宽随着堵塞窗口变大而增加。
通过TCP窗口流控制算法计算堵塞窗口大小,其中当没有丢弃任何分组就正确接收分组时,堵塞窗口大小线性增加(图6中的步骤S31、S32),而当已经丢弃了分组时,就将堵塞窗口大小乘以等于1或要减小到小于1的一个常数(图6中的步骤S31、S33)。
在该实施例中,前者被称作堵塞窗口增加宽度,后者被称作堵塞窗口降低速率。在该实施例中,这些控制参数被动态地改变以便将用于到接收终端2的会话的带宽控制为等于设置的带宽。
由于是在从带宽控制单元123-1至123-N到发送缓冲器124-1至124-N的设置带宽内移动数据的,所以停留在发送缓冲器124-1至124-N中的数据量的增加意味着到接收终端2的会话的带宽小于设置的带宽。相反,停留的数据量的减少意味着到接收终端2的会话的带宽大于设置的带宽。
因此,在该实施例中,当停留在发送缓冲器124-1至124-N中的数据量增加到预定的某个值A或更多时(图6中的步骤S34),通过增加堵塞窗口增加宽度或减小堵塞窗口降低速率或同时使用二者来增加到接收终端的会话的带宽(图6中的步骤S35)。
同样,在该实施例中,当停留在发送缓冲器124-1至124-N中的数据量跌到另一个预定的某个值B或更小时(图6中的步骤S34),通过减小堵塞窗口增加宽度或增加堵塞窗口降低速率或同时使用二者来减少到接收终端2的会话的带宽(图6中的步骤S36)。
当确定不管怎样改变控制参数(图6中的步骤S37),由于网络中出现到接收终端2的堵塞(图6中的步骤S37),都不能满足设置的带宽,也就是当分组丢弃率计算单元128-1至128-N计算的到接收终端2的会话上的分组丢弃率等于或高于特定值时,或者当堵塞窗口增加宽度等于或大于特定值时,或者当堵塞窗口减小宽度等于或小于特定值时,或者当重发的分组被丢弃并且重发超时时,堵塞窗口增加宽度没有设置到某个值A或更多,以及堵塞窗口降低速率没有设置到某个值B或更低(图6中的步骤S38)。
在该情况下,带宽控制单元123-1至123-N通知该会话中继设备的管理者、管理系统等来自堵塞报告信号产生单元130-1至130-N的堵塞,期望重新设置所设置的带宽或重新设置路由(图6中的步骤S39)。
图7是解释根据本发明的第二实施例的会话中继设备的配置框图。在图7中,根据本发明第二实施例的会话中继设备的会话中继单元14-1至14-N与图2所示的本发明的第一实施例的配置类似,除了分别增加了平均队列长度计算单元141-1至141-N、142-1至142-N(平均队列长度计算单元141-2至141-N、142-2至142-N未示出),并且相同的附图标记表示相同的元件。同样,相同元件的操作与本发明的第一实施例的类似。
平均队列长度计算单元141-1至141-N计算停留在接收缓冲器122-1至122-N中的平均数据量,而平均队列长度计算单元142-1至142-N计算停留在发送缓冲器124-1至124-N中的平均数据量。
下面将参照图7描述根据本发明的第二实施例的会话中继设备的操作。下面的描述只给出本发明的第二实施例中与本发明的第一实施例不同的方面。
在本发明的第一实施例中,副本ACK产生单元127-1至127-N基于接收缓冲器122-1至122-N的空闲容量来确定副本ACK的产生,而在该实施例中,基于由平均队列长度计算单元141-1至141-N计算的停留在接收缓冲器中的平均数据量来确定副本ACK的产生。
同样,在本发明的第一实施例中,控制参数计算单元129-1至129-N基于停留在发送缓冲器124-1至124-N中的数据量来更新控制参数,而在该实施例中,基于由平均队列长度计算单元142-1至142-N计算的停留在发送缓冲器中的平均数据量来更新控制参数。
图8是解释根据本发明第三实施例的会话中继设备的配置框图。在图8中,根据本发明第三实施例的会话中继设备的会话中继单元15-1至15-N与图2所示的本发明的第一实施例的配置类似,除了分别增加了发送消耗时间计算单元l51-1至151-N(发送消耗时间计算单元151-2至151-N未示出),并且相同的附图标记表示相同的元件。同样,相同元件的操作与本发明的第一实施例的类似。
发送消耗时间计算单元151-1至151-N计算从发送会话处理单元125-1至125-N中开始发送数据的时间开始所消耗的时间,并将计算值传送到控制参数计算单元129-1至129-N。
下面将参照图8描述根据本发明的第三实施例的会话中继设备的操作。下面的描述只给出本发明的第三实施例中与本发明的第一实施例不同的方面。
在本发明的第一实施例中,发送会话处理单元125-1至125-N使用的控制参数是根据停留在发送缓冲器中的数据量和分组丢弃率确定的,而该实施例额外使用了从数据发送开始的消耗时间。
具体来说,为了增加到接收终端2的会话带宽,如果从数据发送开始消耗了一段较短时间,就优先于降低速率而改变堵塞窗口增加宽度来改善短数据带宽控制的跟踪特性,而如果从数据开始消耗了较长时间,就优先于增加宽度而改变堵塞窗口降低速率来稳定带宽控制。
当开始新的通信时,也就是当TCP会话的堵塞窗口低速开始操作时,将发送消耗时间计算单元151-1至151-N计算的发送消耗时间重置为0。
图9是解释根据本发明第四实施例的会话中继设备的配置框图。在图9中,根据本发明第四实施例的会话中继设备的会话中继单元16-1至16-N与图2所示的本发明的第一实施例的配置类似,除了分别增加了发送带宽计算单元161-1至161-N(发送带宽计算单元161-2至161-N未示出),以及取代带宽控制单元123-1至123-N而提供的数据传送单元162-1至162-N(数据传送单元162-2至162-N未示出),并且相同的附图标记表示相同的元件。同样,相同元件的操作与本发明的第一实施例的类似。
发送带宽计算单元161-1至161-N测量从会话中继设备1到接收终端2的数据发送带宽,并将测量值传送给控制参数计算单元129-1至129-N。
下面将参照图9描述根据本发明的第四实施例的会话中继设备的操作。下面的描述只给出本发明的第四实施例中与本发明的第一实施例不同的方面。
在本发明的第一实施例中,由带宽控制单元123-1至123-N来控制从接收缓冲器122-1至122-N到发送缓冲器124-1至124-N的数据传送,而在该实施例中,通过数据传送单元162-1至162-N立即将接收缓冲器122-1至122-N中存储的数据传送到发送缓冲器124-1至124-N。
因此,在该实施例中,在数据传送中不进行带宽控制,但是通过基于发送带宽计算单元161-1至161-N计算的会话发送带宽来改变到接收终端2的会话的控制参数以进行带宽控制。
具体来说,在该实施例中,在发送带宽计算单元161-1至161-N中计算从会话中继设备1到接收终端2的会话带宽,并且如果该带宽小于目标带宽或所有会话的(加权的)平均带宽,就通过增加堵塞窗口增加宽度或降低堵塞窗口降低速率或同时使用二者来增加到接收终端2的会话带宽。
或者,在该实施例中,通过减小堵塞窗口增加宽度或增加堵塞窗口降低速率或同时使用二者来减少到接收终端2的会话带宽。发送带宽计算单元161-1至161-N观察来自接收终端2的ACK分组,并基于字节数量、每个单位时间内已经确认的接收来计算发送带宽。
同样,在该实施例中,当从接收缓冲器122-1至122-N向发送缓冲器124-1至124-N移动数据时,数据传送单元162-1至162-N(而不是带宽控制单元123-1至123-N)检查接收缓冲器122-1至122-N的空闲容量以产生一个发送恢复ACK。
图10是解释根据本发明第五实施例的会话中继设备的配置框图。在图10中,根据本发明第五实施例的会话中继设备的会话中继单元17-1至17-N与图9所示的本发明的第四实施例的配置类似,除了删除了接收缓冲器122-1至122-N和数据传送单元162-1至162-N,从而接收会话处理单元121-1至121-N分别直接向发送缓冲器124-1至124-N中写入数据,并且相同的附图标记表示相同的元件。同样,相同元件的操作与本发明的第四实施例的类似。
下面将参照图10描述根据本发明的第五实施例的会话中继设备的操作。下面的描述只给出本发明的第五实施例中与本发明的第四实施例不同的方面。
在本发明的第四实施例中,通过接收缓冲器122-1至122-N和数据传送单元162-1至162-N将接收会话处理单元121-1至121-N接收到的数据写入到发送缓冲器124-1至124-N中,而在该实施例中,接收会话处理单元121-1至121-N接收到的数据直接写入到发送缓冲器124-1至124-N中。
从接收缓冲器122-1至122-N到发送缓冲器124-1至124-N的数据传送由数据传送单元162-1至162-N来控制,但是在该实施例中,将接收会话处理单元121-1至121-N接收到的数据立即传送到发送缓冲器124-1至124-N为此,在该实施例中,以与本发明第四实施例相同的方式,基于发送带宽计算单元161-1至161-N中计算的会话带宽,通过改变到接收终端2的会话控制参数来进行带宽控制。
同样,在该实施例中,由于数据是直接从接收会话处理单元121-1至121-N写入到发送缓冲器124-1至124-N中的,针对通知给发送终端3的广告窗口来广告发送缓冲器124-1至124-N的空闲容量。而且,在该实施例中,副本ACK产生单元127-1至127-N根据发送缓冲器124-1至124-N的空闲容量产生一个副本ACK。
而且,在该实施例中,当从到接收终端2的会话中接收到ACK分组时,为发送终端3产生发送恢复ACK。具体来说,在该实施例中,当发送缓冲器124-1至124-N被填满,以便给发送终端3广告一个0字节的广告窗口时,如果会话中继设备1从接收终端2接收到接收确认ACK时,就从发送缓冲器124-1至124-N中删除由该ACK确认的数据,使得发送缓冲器124-1至124-N中有可用的空闲容量。
在该情况下,发送会话处理单元125-1至125-N向发送恢复ACK产生单元126-1至126-N发送缓冲器容量确认信号。当接收到此信号时,发送恢复ACK产生单元126-1至126-N检查发送缓冲器容量,并且如果发送缓冲器124-1至124-N具有等于特定值或大于特定值的空闲容量,就产生通知给发送终端3的用于发送恢复的ACK。
另-方面,在本发明的第四实施例中,当数据传送单元162-1至162-N,而不是带宽控制单元123-1至123-N,从接收缓冲器122-1至122-N向发送缓冲器124-1至124-N移动数据时,检查接收缓冲器122-1至122-N的空闲容量以产生一个发送恢复ACK。
图11是解释根据本发明第六实施例的会话中继设备的配置框图。在图11中,根据本发明第六实施例的会话中继设备的会话单元18-1至18-N与图2所示的本发明的第一实施例的配置类似,除了增加了平均广告窗口计算单元181-1至181-N(平均广告窗口计算单元181-2至181-N未示出),并且相同的附图标记表示相同的元件。同样,相同元件的操作与本发明的第一实施例的类似。
下面将参照图11描述根据本发明的第六实施例的会话中继设备的操作。下面的描述只给出本发明的第六实施例中与本发明的第一实施例不同的方面。
在该实施例中,当计算出到接收终端2的会话控制参数时,控制参数计算单元129-1至129-N使用从接收终端2通知的广告窗口。具体来说,在该实施例中,一直在平均广告窗口计算单元181-1至181-N中计算从接收终端2通知的广告窗口大小的平均值,如果广告窗口大小的平均值等于或大于预定阈值,就通过减小堵塞窗口增加宽度或增加堵塞窗口降低速率或同时使用二者来减少到接收终端2的会话带宽。
图12是解释根据本发明第七实施例的会话中继设备的配置框图。在图12中,根据本发明第七实施例的会话中继设备的会话中继单元19-1至19-N与图9所示的本发明第四实施例的配置类似,除了取代发送带宽计算单元161-1至161-N而提供了平均广告窗口计算单元181-1至181-N(平均广告窗口计算单元181-2至181-N未示出),并且相同的附图标记表示相同的元件。同样,相同元件的操作与本发明的第四实施例的类似。
在上面描述的本发明第一至第六实施例中,会话中继设备1根据设置的带宽来控制发送终端3和接收终端2之间的带宽,而在该实施例中,没有提供设置的带宽,但是借助于接收终端2能接收的带宽来控制发送终端3和接收终端2之间的带宽。
下面将参照图12描述根据本发明的第七实施例的会话中继设备的操作。下面的描述只给出本发明的第七实施例中与本发明的第四实施例不同的方面。
在该实施例中,当控制参数计算单元129-1至129-N计算出到接收终端2的会话控制参数时,不根据到接收终端2的会话带宽来改变控制参数,但是根据从接收终端2通知的广告窗口大小来改变控制参数。
具体来说,在该实施例中,一直在平均广告窗口计算单元181-1至181-N中计算从接收终端2通知的广告窗口大小的平均值,如果广告窗口大小的平均值等于或大于预定阈值,就通过减小堵塞窗口增加宽度或增加堵塞窗口降低速率或同时使用二者来减少到接收终端2的会话带宽。
而且,在该实施例中,如果广告窗口大小的平均值等于或小于另一个预定阈值,就通过增加堵塞窗口增加宽度或降低堵塞窗口降低速率或同时使用二者来增加到接收终端2的会话带宽。
图13是解释根据本发明第八实施例的会话中继设备的配置框图。在图13中,根据该实施例的会话中继设备包括会话识别单元11、会话发送单元41-1至41-N,会话接收单元42-1至42-N,以及输出控制单元13。
会话识别单元11确定进入分组所属的会话,会话发送单元41-1至41-N在发送终端内部执行到接收终端的会话的数据发送处理,会话接收单元42-1至42-N在发送终端内部执行从到接收终端的会话中的数据接收处理。输出控制单元13将从会话发送单元41-1至41-N和会话接收单元42-1至42-N传送来的分组传送到输出线上。
同样,会话发送单元41-1至41-N包括发送数据产生单元417-1至417-N(发送数据产生单元417-2至417-N未示出);发送缓冲器411-1至411-N(发送缓冲器411-2至411-N未示出);发送会话处理单元412-1至412-N(发送会话处理单元412-2至412-N未示出);发送带宽计算单元416-1至416-N(发送带宽计算单元416-2至416-N未示出);分组丢弃率计算单元413-1至413-N(分组丢弃率计算单元413-2至413-N未示出);控制参数计算单元414-1至414-N(控制参数计算单元414-2至414-N未示出);以及堵塞报告信号检测单元415-1至415-N(堵塞报告信号检测单元415-2至415-N未示出)。
发送数据产生单元417-1至417-N在发送缓冲器411-1至411-N中存储来自发送终端内部的应用程序的发送数据,发送缓冲器411-1至411-N暂时存储要发送的数据。发送会话处理单元412-1至412-N处理用于向接收终端发送数据的会话。
发送带宽计算单元416-1至416-N测量到接收终端的数据发送带宽,分组丢弃率计算单元413-1至413-N计算到接收终端的会话中的分组丢弃率,控制参数计算单元414-1至414-N根据发送带宽和分组丢弃率改变到接收终端的会话控制参数。堵塞报告信号检测单元415-1至415-N通知由于网络中的堵塞将不能满足设置的带宽。
会话接收单元42-1至42-N包括接收会话处理单元421-1至421-N(接收会话处理单元421-2至421-N未示出);接收缓冲器422-1至422-N(接收缓冲器422-2至422-N未示出);接收数据处理单元425-1至425-N(接收数据处理单元425-2至425-N未示出);发送恢复ACK产生单元423-1至423-N(发送恢复ACK产生单元423-2至423-N未示出);以及副本ACK产生单元424-1至424-N(副本ACK产生单元424-2至424-N未示出)。
接收会话处理单元421-1至421-N执行从接收终端的数据接收处理,接收缓冲器422-1至422-N暂时存储接收的数据。接收数据处理单元425-1至425-N将接收的数据从接收缓冲器422-1至422-N传送到应用程序。发送恢复ACK产生单元423-1至423-N产生用于指示接收终端恢复发送的ACK分组,以及副本ACK产生单元424-1至424-N产生用于指示接收终端降低发送速率的副本ACK。
一般来说,由于在TCP会话中在发送终端和接收终端之间进行的是双向通信,其中一个会话发送单元和其中一个会话接收单元被用作该实施例中的一组发送终端和接收终端。因此,在该实施例中,会话中继设备另外还用作发送终端或接收终端。
图14是解释根据本发明第八实施例的会话中继设备(发送终端)与会话中继设备(接收终端)之间的数据流程的框图。在图14中,当从会话中继设备(发送终端)4-2向会话中继设备(接收终端)4-1发送数据时,从会话中继设备(发送终端)的会话发送单元41-1-2传送的分组在会话中继设备(接收终端)4-1的会话接收单元42-1-1中经受接收处理。结果,将产生的ACK分组返回到会话中继设备(发送终端)4-2的会话发送单元41-1-2。
另一方面,当从会话中继设备(接收终端)4-1向会话中继设备(发送终端)4-2发送数据时,从会话中继设备(接收终端)4-1的会话发送单元41-1-1传送的数据分组在会话中继设备(发送终端)4-2的会话接收单元42-1-2中经受接收处理。结果,将产生的ACK分组返回到会话中继设备(接收终端)4-]的会话发送单元41-1-1。
接着,将参照图13来描述根据本发明第八实施例的会话中继设备的操作。首先,将描述从会话中继设备(发送终端)4-2到会话中继设备(接收终端)4-1的数据传送。
将应用程序产生的发送数据通过发送数据产生单元417-1至417-N写入到发送缓冲器411-1至411-N。发送会话处理单元412-1至412-N对写入到会话中继设备(接收终端)4-1的发送缓冲器411-1至411-N中的数据执行数据发送处理。由于该数据发送处理与前面根据本发明的第一实施例所述的数据发送处理类似,所以在这里省略对其的描述。同样,由于该实施例中到会话中继设备(发送终端)4-2的会话控制参数的变化与上述所述的本发明第四实施例的类似,所以在这里也省略了对其的描述。
接着,将描述从会话中继设备(接收终端)4-1到会话中继设备(发送终端)4-2的数据传送。
接收数据处理单元425-1至425-N对从会话中继设备(接收终端)4-1发送的数据执行接收处理,并在接收缓冲器422-1至422-N中存储能正确接收的数据。由于该数据接收过程类似于前面所述的根据本发明第一实施例的数据接收过程,所以省略了对其的描述。
通过接收数据处理单元425-1至425-N来检索写入到接收缓冲器422-1至422-N中的数据,并将其传送给应用程序。
当接收缓冲器422-1至422-N的空闲容量减少到特定值或更低时,副本ACK产生单元424-1至424-N为发送终端顺序发送足够数量(通常是“3”)的副本ACK分组,以减少到发送终端的堵塞窗口,使得发送终端降低数据输出速率,其方式类似于前面所述的本发明第一实施例。
另一方面,当通过接收数据处理单元425-1至425-N将数据从接收缓冲器422-1至422-N移动到应用程序时,发送恢复ACK产生单元423-1至423-N检查接收缓冲器422-1至422-N的空闲容量,并且如果空闲容量等于或大于特定值,就产生发送给发送终端的ACK分组。
因此,在本发明中,为会话中继设备1和会话中继设备1中的接收终端2之间的会话改变窗口流控制,以便通过中继发送终端3和接收终端2之间的会话来控制发送终端3和接收终端2之间的通信带宽,由此使得可以提高它们之间的吞吐量,并实现不依赖于网络堵塞状况的带宽控制。
同样,在本发明中,可以通过在会话中继设备1中监视在针对会话中继设备1和接收终端2之间的会话的发送缓冲器中停留的分组的数量,以及基于分组的数量或分组的数量的平均值来动态改变控制参数来一直将控制参数保持在一个合适的值上。
而且,在本发明中,在发送终端3和会话中继设备1之间的会话中监视停留在接收缓冲器中的分组数量,并且当分组的数量或分组数量的平均值等于或大于特定值时,将具有相同ACK序列号码的副本ACK传送到发送终端3,以降低发送终端3的发送速率,由此使得可以防止接收缓冲器被频繁地填满。
而且,在本发明中,如果在从接收终端2接收到用于确认接收到一个字节或多个字节的ACK分组时,可以保证接收缓冲器中有一定量的或大量的空闲容量,就可以通过在那时向发送终端3发送具有一个或多个字节的广告窗口大小的ACK分组来恢复发送,即使接收缓冲器因为发送终端3和会话中继设备1之间的会话而被频繁地填满。
在本发明中,监视从接收终端2通知的广告窗口大小,以便在平均广告窗口大小等于或大于特定值时改变从会话中继设备1到接收终端2的会话控制参数,由此使得可以降低会话中继设备1的发送速率,以防止接收缓冲器因为从会话中继设备1到接收终端2的会话而被频繁地填满。
权利要求
1.一种会话中继设备,用于通过中继发送终端和接收终端之间的会话来控制所述发送终端和接收终端之间的通信带宽,所述会话中继设备的特征在于包括装置,用于改变针对所述设备本身和所述接收终端之间的会话的窗口流控制。
2.如权利要求1所述的会话中继设备,还包括装置,用于监视停留在用于所述设备本身和所述接收终端之间的会话的发送缓冲器中的分组数量;以及装置,用于基于至少停留在所述发送缓冲器中的分组数量来动态改变会话控制参数。
3.如权利要求1所述的会话中继设备,还包括装置,用于监视停留在用于所述设备本身和所述发送终端之间的会话的接收缓冲器中的分组数量;以及装置,用于当停留在所述接收缓冲器中的分组数量或其平均值等于或大于预设的特定值时,递送用于指示所述发送终端降低发送速率的信号。
4.如权利要求1所述的会话中继设备,还包括装置,用于当确保在用于从所述接收终端接收一个字节或更多的接收确认信号的所述接收缓冲器中有预设的特定量的或更多的空闲容量时,向所述发送终端发送用于广告一个或多个广告窗口大小的信号。
5.如权利要求1所述的会话中继设备,还包括装置,用于监视从所述接收终端通知的广告窗口大小;以及装置,用于当所述广告窗口大小的平均值等于或大于预设的特定值时,改变从所述设备本身到所述接收终端的会话的控制参数。
6.一种会话中继设备,用于通过中继到发送终端的会话和到接收终端的会话之间的数据来实现所述发送终端和接收终端之间的通信,所述设备特征在于包括接收控制装置,用于从到所述发送终端的会话中接收数据;发送控制装置,用于向到所述接收终端的会话发送数据;传递装置,用于将由所述接收控制装置接收并处理的数据传递给所述发送处理装置;观察装置,用于观察与所述发送控制装置相关的状态;以及改变装置,用于改变所述发送控制装置的操作,其中根据所述观察装置的观察结果来改变所述发送控制装置的操作。
7.如权利要求6所述的会话中继设备,其中所述观察装置观察发送的数据量、发送带宽、延迟、分组丢弃率、重发超时频率和停留在发送缓冲器中的数据量中的至少一个,作为与所述发送控制装置相关的状态。
8.如权利要求6所述的会话中继设备,还包括装置,用于至少根据已经预设在所述接收控制装置和所述发送控制装置之间的目标带宽和带宽分配比例来控制数据传递;以及根据在所述发送控制装置中还没有发送的数据量来改变所述发送控制装置的操作。
9.如权利要求8所述的会话中继设备,还包括装置,用于当所述发送控制装置中还没有发送的数据量或其平均值中的一个增加时,在来自所述发送控制装置的发送带宽增加的方向上改变所述发送控制装置的控制参数;以及用于当数据量和其平均值中的一个减少时,在来自所述发送控制装置的发送带宽减少的方向上改变所述发送控制装置的控制参数。
10.如权利要求6所述的会话中继设备,还包括装置,用于根据设置值与所述发送控制装置所观察到的值的比较结果,来改变所述发送控制装置的操作和控制参数中的至少一个,其中所述设置值至少包括预设的目标带宽和带宽分配比例。
11.如权利要求10所述的会话中继设备,还包括装置,用于当观察值小于设置值时,在来自所述发送控制装置的发送带宽增加的方向上改变所述发送控制装置的控制参数;以及当观察值大于设置值时,在来自所述发送控制装置的发送带宽减少的方向上改变所述发送控制装置的控制参数。
12.如权利要求9所述的会话中继设备,还包括装置,用于通过直接将由所述接收控制装置接收到的分组写入到所述发送控制装置内的发送缓冲器中来执行会话之间的中继。
13.如权利要求6所述的会话中继设备,还包括装置,用于当在所述发送控制装置中观察到的发送带宽等于或小于阈值时,或者当在所述发送控制装置中观察到的延迟、分组丢弃率、重发超时频率或停留在发送缓冲器中的数据量等于或大于预设的阈值时,在来自所述发送控制装置的发送带宽减少的方向上改变所述发送控制装置的控制参数。
14.如权利要求6所述的会话中继设备,还包括装置,用于当在所述发送控制装置中观察到的发送带宽等于或小于预设的阈值时,或者当在所述发送控制装置中观察到的延迟、分组丢弃率、重发超时频率或停留在发送缓冲器中的数据量等于或大于预设的阈值时,向外部通知堵塞。
15.如权利要求9所述的会话中继设备,还包括装置,用于根据控制参数的改变所引起的对发送带宽的改变效果,参照控制参数的改变历史和发送带宽受到控制参数的改变的历史,来停止控制参数的改变或改变控制参数的改变宽度。
16.如权利要求6所述的会话中继设备,还包括装置,用于观察从所述接收终端通知的广告窗口大小或其平均值,其中根据由所述装置观察到的值来改变所述发送控制装置的操作。
17.如权利要求16所述的会话中继设备,还包括装置,用于当所述观察值变小时,在所述发送控制装置的发送带宽增加的方向上改变所述发送控制装置的控制参数;以及当观察值变大时,在所述发送控制装置的发送带宽减少的方向上改变所述发送控制装置的控制参数。
18.如权利要求6所述的会话中继设备,还包括装置,用于计算从会话通信开始时的消耗时间;以及还包括装置,用于根据所述消耗时间来改变所述发送控制装置的操作。
19.如权利要求18所述的会话中继设备,还包括装置,用于改变所述发送控制装置的控制参数,以便在消耗时间较短时快速改变所述发送控制装置的发送带宽;以及改变所述发送控制装置的控制参数,以便在消耗时间较长时缓慢改变所述发送控制装置的发送带宽。
20.如权利要求18所述的会话中继设备,其中,根据TCP(发送控制协议),将通信的开始时间设置在会话发送已经开始执行缓慢起动操作之后的时间。
21.如权利要求6所述的会话中继设备,还包括请求装置,用于根据针对会话的接收缓冲器的空闲容量来请求减少会话的发送带宽,其中,在所述发送缓冲器的空闲容量被用光之前,所述请求装置根据所述发送缓冲器的空闲容量或其平均值来请求减少发送带宽。
22.如权利要求21所述的会话中继设备,其中,所述请求装置通过递送一个或多个用于指示发送终端降低发送速率的信号来请求减少发送带宽。
23.如权利要求6所述的会话中继设备,还包括观察装置,用于观察针对会话的接收缓冲器中的空闲容量,其中,当所述发送缓冲器中的空闲容量或其平均值增加到预定阈值或更高时,触发所述观察装置,以返回针对会话的确认信号。
24.如权利要求23所述的会话中继设备,其中,当从所述接收缓冲器中检索数据时,触发所述会话中继设备,以返回确认信号。
25.如权利要求23所述会话中继设备,其中,当从中继和发送数据(所述数据是从会话中接收到的)的会话中接收到确认信号时,触发所述会话中继设备,以便向用于接收数据的会话返回确认信号。
26.如权利要求6所述的会话中继设备,其中,所述接收控制装置终止至少TCP(发送控制协议)的第四层协议,以便执行数据接收处理,并且所述发送控制装置利用与所述接收控制装置相同的第四层协议或不同的第四层协议来执行数据发送处理。
27.一种用于会话中继设备的会话中继方法,所述会话中继设备用于通过中继发送终端和接收终端之间的会话来控制所述发送终端和接收终端之间的通信带宽,所述方法的特征在于包括以下步骤在所述会话中继设备侧上,改变针对所述会话中继设备和所述接收终端之间的会话的窗口流控制。
28.如权利要求27所述的会话中继方法,在所述会话中继设备侧,还包括以下步骤监视停留在用于所述会话中继设备和所述接收终端之间的会话的发送缓冲器中的分组数量;以及基于至少停留在所述发送缓冲器中的分组数量来动态地改变会话的控制参数。
29.如权利要求27所述的会话中继方法,在所述会话中继设备侧,还包括以下步骤监视停留在用于所述会话中继设备和所述发送终端之间的会话的接收缓冲器中的分组数量;以及当停留在所述接收缓冲器中的分组数量或其平均值等于或大于预设的特定值时,递送用于指示所述发送终端降低发送速率的信号。
30.如权利要求27所述的会话中继方法,还包括以下步骤当在用于从所述接收终端接收一个字节或更多字节的接收确认信号的所述接收缓冲器中确保有预设的特定量的或更多的空闲容量时,向所述发送终端发送用于广告一个或多个广告窗口大小的信号。
31.如权利要求27所述会话中继方法,还包括以下步骤监视从所述接收终端通知的广告窗口大小;以及当所述广告窗口大小的平均值等于或大于预设的特定值时,改变从所述会话中继设备到所述接收终端的会话的控制参数。
32.一种用于会话中继设备的会话中继方法,所述会话中继设备用于通过中继到发送终端的会话和到接收终端的会话之间的数据来实现所述发送终端和接收终端之间的通信,所述方法的特征在于,在所述会话中继设备侧上包括以下步骤将由所述接收控制装置接收并处理的数据传送给所述发送处理装置,所述接收控制装置用于从到所述发送终端的会话中接收数据,所述发送处理装置用于向到所述接收终端的会话发送数据;观察与所述发送控制装置相关的状态;以及改变所述发送控制装置的操作,其中根据所述观察结果来改变所述发送控制装置的操作。
33.如权利要求32所述的会话中继方法,其中,所述观察与所述发送控制装置相关的状态的步骤还包括以下步骤观察所发送的数据量、发送带宽、延迟、分组丢弃率、重发超时频率、以及停留在发送缓冲器中的数据量中的至少一个,作为与所述发送控制装置相关的状态。
全文摘要
带宽控制单元(123-1)控制从接收缓冲器(122-1)到发送缓冲器(124-1)的数据传送。发送恢复ACK产生单元(126-1)产生用于指示发送终端恢复发送的ACK分组,而副本ACK产生单元(127-1)产生用于指示发送终端降低发送速率的副本ACK。分组丢弃率计算单元(128-1)获得到接收终端的会话中的分组丢弃率。根据发送缓冲器中剩余的数据量和分组丢弃率,控制参数计算单元(129-1)改变到接收终端的会话的控制参数。
文档编号H04L29/06GK1836410SQ20048002338
公开日2006年9月20日 申请日期2004年7月29日 优先权日2003年8月20日
发明者下西英之, 村濑勉, 山崎康广, 长谷川洋平 申请人:日本电气株式会社