会话中继设备和中继方法

文档序号:7607557阅读:155来源:国知局
专利名称:会话中继设备和中继方法
技术领域
本发明涉及一种会话中继设备及用于所述会话中继设备的会话中继方法,尤其涉及一种用于在TCP(传输控制协议)会话期间中继数据的设备。
背景技术
通常,在通信应用中,在发送终端和接收终端之间建立通信会话,并基于所建立的会话进行通信。然而,当发送终端和接收终端之间的传播延迟时间非常长时,或当横跨例如有线网络和无线网络的不同特性的网络进行通信时,发送终端和接收终端之间的通信吞吐量降低。
作为解决该问题的方法,存在如以下文献1-3中所披露的系统。在该系统中,代替以单个会话在发送终端和接收终端之间进行通信,在发送终端和接收终端之间安装了中继设备。然后,通过在两个会话之间中继数据来进行通信,即,从传输终端到中继设备的会话和从中继设备到接收终端的会话。
文献1JP-A-11-252179文献2JP-A-2002-281104文献3Bakre and B.R.Badrinath,”I-TCP;Indirect TCP for MobileHost”,Department of Computer Science Rutgers University,DSC-TR-314,1994(http//www.it.iibt.ac.in/it644/papers/i-tcp.pdf)公知以下中继设备是有效的具有较大的发送缓冲器,以便即使传播延迟时间非常长也可以防止吞吐量降低。然而,当包括较大的发送缓冲器时,以突发方式传送分组,尤其当TCP会话开始变慢时,这引起网络拥塞,结果导致较低的吞吐量。
作为解决这种问题的方法,在下面的文献4中披露了一种方法,调整按照以下方式传送的分组时间间隔不以突发方式传送来自TCP会话的分组文献4A.Aagarwal,S.Savage和T.Anderson,“Understanding thePerformance of TCP Pacing”,in proceedings of IEEE INFOCOM’2000此外,作为另一种方法,将来自TCP会话的输出分组设置在队列中,并由调度器控制传送,由此可以按照任意带宽来传送分组,以便限制另一个TCP会话的吞吐量,还改进了特定会话的吞吐量。
为了中继会话,最常见问题在于TCP会话的处理中处理负荷通常很高,因此难以进行快速中继处理。此外,当对来自TCP会话中的分组传输时间间隔进行调整时,处理负荷甚至变得更高。
作为加速TCP会话的处理的系统,存在如下所述的系统。作为第一系统,该系统通过使用用于OS(操作系统)内核和应用程序之间的数据传输的零拷贝的方法来减少中继设备的处理负荷。在第一系统中,当数据在实际执行数据发送/接收处理的内核程序和执行数据中继处理的应用程序之间传输时,通过页映射来执行虚拟数据移动,而无需执行物理数据拷贝。
作为第二系统,当执行中继处理时该系统仅进行重发控制。在第二系统中,在中继设备中没有终止会话,而是在发送和接收终端之间设置一个会话。然后,在中继设备中,当将来自发送终端的接收分组传送到接收终端时,不仅传送分组,此外还将分组保存在中继设备中。
中继设备监视从接收终端返回到发送终端的ACK(肯定应答)分组,当检测到中继设备和接收终端之间的丢弃分组时,将保存的分组传送到接收终端,以防止来自发送终端的分组重发,并防止由于丢弃分组导致发送终端和接收终端之间较低的吞吐量。
在第二系统中,在会话之间没有执行中继处理,仅执行重发处理,因此与执行中继处理的情况相比,能够减轻中继设备上的负荷。
作为第三系统,该系统仅针对需要中继的会话执行中继处理,对不需要中继的会话不执行中继处理,从而减轻了中继设备上的处理负荷。例如,作为该系统的演示,如下面文献5所述,该系统测量会话的吞吐量,如果执行中继处理,则仅针对能够提高吞吐量的选定会话执行中继处理。
文献5JP-A-11-112576此外,作为前述的系统,如下面文献6所公开的,当发送HTTP(超文本传送协议)请求时,系统不执行中继处理,而是仅当传送数据时执行中继处理。
文献6JP-A-2002-312261在前述传统的会话中继系统中,第一系统除了数据拷贝之外还存在处理负荷高的问题。当根据TCP调节(pacing)系统或调度器进行传送控制时,除了TCP处理负荷之外,还增加了分组传输控制负荷,导致较高的整体负荷。
此外,当针对例如iSCSI(网络小型计算机系统接口)的上层协议以及TCP会话中继执行中继处理时,根据上层的拥塞控制进一步添加了分组传送控制,仍然导致较高的处理负荷。具体地,当存在要中继的大量会话时,需要更高的处理负荷用于进行会话之间的分组传送控制。
此外,在传统的会话中继系统中,第一系统具有分组长度受限的问题。为了根据页映射在TCP层和应用之间移动虚拟数据,CPU(中央处理单元)的页大小必须与分组长度匹配。
通常,会话中继设备独立于发送和接收终端存在,不能预先针对发送终端和接收终端的使用来假定分组长度,因此,通过消除使用不同于带宽控制设备的页大小的分组长度的这些发送和接收终端的拷贝,不能预期处理负荷的减少。
另一方面,在传统的会话中继系统中,第二系统的问题在于,由于除了丢弃分组之外的因素导致不能改进吞吐量的减少。当执行会话中继处理时,会话中继设备响应从发送终端接收到的分组,立即向发送终端返回ACK分组,其思想在于意欲确认接收。然而,在该第二系统中,接收终端简单地向发送终端返回ACK分组,而会话中继设备自身不返回ACK分组。由于这个原因,第二系统在传播延迟较大的环境中提供了较小的吞吐量改进效果。
此外,在传统的会话中继系统中,第三系统存在的问题在于,当存在必须要中继的大量会话时,不会减少处理负荷。

发明内容
因此,本发明的一个目的是提供一种能够解决上述问题会话的中继设备,即使当存在要中继的大量会话并进行分组传送控制时,也能够以高速实现会话之间的中继处理,以及一种用于所述会话中继设备的会话中继方法。
根据本发明的一种会话中继设备是一种用于执行会话中继处理的会话中继设备,所述会话中继处理包括在多个层上的拥塞控制处理和分组传输控制处理,其中多个层中的每一个仅创建拥塞控制信息,以及将分组传输控制处理集中到IP(因特网协议)层的调度器。
根据本发明的另一种会话中继设备是一种会话中继设备,用于通过在到发送终端的会话和到接收终端的会话之间中继数据来实现接收终端和发送终端之间的通信,所述会话中继设备包括接收会话处理装置,用于从到发送终端的会话接收数据;发送会话处理装置,用于发送数据至到接收终端的会话;发送缓冲器,用于临时存储传送到发送终端的数据;分组调度器,用于控制来自发送缓冲器的分组传送;以及传送控制装置,用于响应分组调度器的控制,控制存储在发送缓冲器中的数据的传送,其中,发送会话处理装置计算在层上允许传送的数据量,以及分组调度器基于所计算的数据量来控制分组传送。
根据本发明的另一种会话中继设备是一种会话中继设备,用于通过在到发送终端的会话和到接收终端的会话之间中继数据来实现在发送终端和接收终端之间的通信,所述会话中继设备包括与多个层相对应设置的接收会话处理装置,用于从到发送终端的会话接收数据;与多个层相对应设置的发送会话处理装置,用于发送数据至到接收终端的会话;发送缓冲器,用于临时存储传送到发送终端的数据;以及分组调度器,用于控制来自发送缓冲器的分组的传送,
其中,每个发送会话控制装置计算相关层上允许传送的数据量,以及分组调度器基于所有多个层共同允许的数据量来控制分组传送。
根据本发明的一种会话中继方法是一种用于会话中继设备执行会话中继处理的会话中继方法,所述会话中继处理包括在多个层上的拥塞控制处理和分组传输控制处理,多个层中的每一个仅仅创建拥塞控制信息,分组传输控制处理集中在IP(网络协议)层上的调度器中。
根据本发明的另一种会话中继方法是一种用于会话中继设备的会话中继方法,用于通过在到发送终端的会话和到接收终端的会话之间中继数据来实现在接收终端和发送终端之间的通信,在会话中继设备侧,所述方法包括接收会话处理,从到发送终端会话接收数据;发送会话处理,发送数据至到接收终端的会话,在发送缓冲器中临时存储传送到发送终端的数据的处理;在分组调度器中控制来自发送缓冲器的分组传送的处理;在传送控制装置中,响应分组调度器的控制,控制存储在发送缓冲器中的数据传输的处理,其中,发送会话处理计算在层上允许传送的数据量,以及分组调度器基于所计算的数据量来控制分组传送。
根据本发明的另一种会话中继方法是一种用于会话中继设备的会话中继方法,用于通过在到发送终端的会话和到接收终端的会话之间中继数据来实现发送终端和接收终端之间的通信,在会话中继设备侧,所述方法包括接收会话处理,用于在多个层的每一个从到发送终端的会话接收数据;发送会话处理,用于在多个层的每一个发送数据至到接收终端的会话;在发送缓冲器中临时存储传送到发送终端的数据的处理;在分组调度器中,控制来自发送缓冲器的分组传输的处理,其中每个发送会话控制处理计算相关层上允许传送的数据量,以及分组调度器基于所有多个层共同允许的数据量来控制分组传送。
具体地,本发明的会话中继设备不控制TCP(传输控制协议)层上的分组传送,而是仅产生TCP层上用于分组传送的控制信息,并且在IP层上使用分组调度器来控制分组传送。
此外,在本发明的会话中继设备中,即使涉及例如iSCSI(因特网小型计算机系统接口)的高级层协议的拥塞控制,也单独在高级层中建立控制信息,并使用IP层上的分组调度器,用于实际分组传送控制。
按照这种方式,在本发明的会话中继设备中,因为集成多个层上的数据传送,可以减少涉及分组传送的处理负荷。
此外,在本发明的会话中继设备中,由于没有将数据拷贝到应用程序,不需要包括涉及页映射的数据传送。具体地,直接将接收到的分组存储在IP层的发送缓冲器中,而不需要存储在TCP层或其它高级层或应用的接收缓冲器中,或者不需要存储在TCP层或者其它高级层或者应用的发送缓冲器中。由于这个原因,在本发明的会话中继设备中,在会话中继设备中没有出现数据移动,因此不需要包括涉及页映射的数据移动。
此外,在本发明的会话中继设备中,由于不仅针对分组重发控制来执行中继处理,还每次完全终止会话以执行完全中继处理,可以改进除丢弃分组之外的因素所导致的吞吐量降低。
在本发明的会话中继设备中,能够以高速执行会话之间的中继处理,因此,即使当存在大量要中继的会话时,也能以高速执行处理。


图1是示出了根据本发明第一实施例、包括会话中继设备的传输系统配置的方框图。
图2是示出了根据本发明第一实施例的会话中继设备配置的方框图。
图3是示出了图2中的分组调度器配置的方框图。
图4是示出了根据本发明第一实施例的会话中继设备操作的流程图。
图5是示出了根据本发明第一实施例的会话中继设备操作的流程图。
图6是示出了在图3所示的分组调度器操作的流程图。
图7是示出了发送等待字节数的示意图。
图8是示出了根据本发明第二实施方例的分组调度器配置的方框图。
图9是示出了根据本发明第三实施例的会话中继设备配置的方框图。
图10是示出了根据本发明第四实施例的会话中继设备配置的方框图。
图11是示出了在本发明的第四实施例中发送等待字节数的示意图。
图12是示出了根据本发明第五实施例的会话中继设备配置的方框图。
图13是示出了根据本发明第五实施例的会话中继设备(发送终端)和会话中继设备(接收终端)之间的数据流的框图。
具体实施例方式
接下来,将参考附图来描述本发明的具体实施例。
(第一实施例)图1是示出了根据本发明第一实施例、包括会话中继设备1的发送系统配置的方框图。在图1中,根据本实施例的会话中继设备1包括会话标识单元11、会话中继单元12-1-12-N以及传送控制单元14,所述会话中继设备与接收终端2和发送终端3相连。
首先,当将数据从发送终端3发送到接收终端2时,由会话中继单元12-1的接收会话处理单元(未示出)处理来自发送终端3的数据分组,结果,向发送终端3返回ACK(肯定应答)分组。
将由会话中继单元12-1的接收会话处理单元接收的数据发送到会话中继单元12-1的发送会话处理单元(未示出),并且将数据分组从这里发送到接收终端2。另一方面,由接收终端2返回的ACK分组由会话中继单元12-1的发送会话处理单元处理。
同样,当将数据从接收终端2发送到发送终端3时,由会话中继单元12-2的接收会话处理单元(未示出)处理来自接收终端2的数据分组,结果,向接收终端2返回ACK分组。
将由会话中继单元12-2的接收会话处理单元接收的数据发送到会话中继单元12-2的发送会话处理单元(未示出),从这里将数据分组发送至发送终端3。另一方面,由会话中继单元12-2的发送会话处理单元(未示出)来处理发送终端3返回的ACK分组。
图2是示出了根据本发明第一实施例的会话中继设备配置的方框图。在图2中,会话中继设备1包括会话标识单元11、会话中继单元12-1-12-N、分组调度器13、和传送控制单元14。
会话标识单元11确定输入分组所属的会话。会话中继单元12-1-12-N在与发送终端3的会话和与接收终端2的会话之间中继分组。分组调度器13控制来自每个会话中继单元12-1-12-N的分组输出。传送控制单元14根据来自分组调度器13的指令来传送来自每个会话中继单元12-1-12-N的分组。
而会话中继单元12-1包括发送会话处理单元121-1,用于处理会话以便将数据发送到接收终端2;发送缓冲器122-1,用于存储接收到的数据,直到发送结束为止;以及接收会话处理单元123-1,用于处理会话以接收来自发送终端3的数据。尽管没有示出,会话中继单元12-2-12-N的配置与前面描述的会话中继单元12-1的配置相同。
图3是示出了图2中分组调度器13配置的方框图。在图3中,分组调度器13包括列表分配单元131、状态更新单元132、状态变化保存单元133、复位控制单元134、发送可用列表135、和发送等待列表136。
发送可用列表135具有能够传送会话的会话标识符,而发送等待列表136具有等待发送的会话的标识符。列表分配单元13将数据分组会话的标识符或已经针对其接收到ACK分配的会话的标识符分配给发送可用列表135或发送等待列表136。
状态更新单元132从发送可用列表135检索会话的标识符以通知传输控制单元14,并且更新会话的状态。状态变化保存单元133具有每个会话的状态,而复位控制单元134将由发送等待列表136管理的会话的标识符传送到发送可用列表135。
在TCP(传输控制协议)会话中,通常在发送终端3和接收终端2之间进行双向通信。因此,假定在本实施例中两个会话中继单元用于一组发送终端3和接收终端2,并且对应的会话中继单元分别用于各自方向中的数据通信。
因此,向多组发送终端3和接收终端2两个一组地提供会话中继单元12-1-12-N,并且每个会话中继单元12-1-12-N执行处理以便将数据从发送终端3的会话中继到对应接收终端2的会话,或将数据从接收终端2的会话中继到对应发送终端3的会话。
在TCP会话中,可以将特定方向的数据分组和相反方向的ACK分组集成到一个单独分组(ACK的顺利返回(piggy back)),但是在本实施例中省略对该操作的描述以简化描述。
图4和5是示出了根据本发明第一实施例的会话中继设备1操作的流程图,图6是示出了图3中分组调度器13操作的流程图。将参照图1到6来描述根据本发明第一实施例的会话中继设备1的操作。
当分组提供到根据本实施例的会话中继设备1时(图4中步骤S1),会话标识单元11参考分组的报头,并根据源IP(因特网协议)地址、目的IP地址、第四层协议号、源第四层端口号、目的第四层端口号等,确定该分组所属的会话(图4中步骤S2)。
当分组是数据分组时(图4中步骤S3),会话标识单元11将分组传送给对应会话中继单元12-1-12-N的接收会话处理单元123-1-123-N(接收会话处理单元123-2-123-N未示出)(图4中步骤S4)。
另一方面,当分组是ACK分组时(图4中步骤S3),会话标识单元11将分组传送给对应会话中继单元12-1-12-N的发送会话处理单元121-1-121-N(发送会话处理单元121-2-121-N未示出)(图4中步骤S10)。
接收会话处理单元123-1-123-N按照序列号对应用到其中的数据分组进行分类,以便存储在发送缓冲器122-1-122-N(发送缓冲器122-2-122-N未示出)中(图4中步骤S5)。此外,当接收到的数据分组具有正确序列号时(图4中步骤S6),即,当序列号与之前按顺序接收到数据的最后一个序列号连续时,接收会话处理单元123-1-123-N通过传送控制单元14返回ACK分组,以便通知发送终端3数据接收的肯定应答和广告窗口(advertisement window)尺寸(图4中步骤S7)。
此外,接收会话处理单元123-1-123-N根据最后一个顺序接收分组的序列号来返回ACK分组(复制ACK分组),并且通知发送终端3分组没有到达。
由于TCP/IP IIIustrated,Volume 1The Protocols,Addison-Wesley,1994,ISBN 0-201-63346-9(下文中称为“文献7”)中详细描述了前述处理,因此此处不再详细描述。
在产生ACK分组之后,立即从传送控制单元14将其传送,或存储在相反方向的对应会话的发送缓冲器122-1-122-N中,并且响应来自分组调度器13的指令,与相反方向的会话的数据分组一起传送。
此外,接收会话处理单元123-1-123-N向分组调度器13通知最后一个顺序接收数据的序列号(图4中步骤S8)。
发送会话处理单元121-1-121-N根据应用的ACK分组来改变拥塞窗口大小(图4中步骤S9),并且如果ACK分组不是复制ACK,从发送缓冲器122-1-122-N中擦除已经确认了其接收的数据(图5中步骤S12,S13),或如果是复制ACK,则重发数据(图5中步骤S12,S11)。由于在前述文献7中已经详细描述了该处理,此处不再详细描述。
发送会话处理单元121-1-121-N向分组调度器13通知在接收的ACK分组和更新的拥塞窗口中描述的广告窗口(图5中步骤S15)。此外,当重发超时时(图5中步骤S14),发送会话处理单元121-1-121-N还通知已经确认其接收的分组的最后序列号(图5中步骤S16)。
在本实施例中,只有当分组调度器13命令分组的传送时才传送分组,因此,当接收到复制ACK时,不立即重发分组,而是将要重发的分组序列号作为分组简单地存储,随后传输分组。
根据来自分组调度器13的指令来执行来自发送缓冲器122-1-122-N的分组的传送。当从分组调度器13命令分组的传送时,传送控制单元14在输出线上检索来自发送缓冲器122-1-122-N的分组,并且向分组调度器13通知已传送分组的分组长度。
从发送缓冲器122-1-122-N传输的分组是具有以下特征的分组已经存储了其序列号用于执行重发处理,或该分组具有未发送分组的最小序列号。
当感兴趣会话不是TCP会话时,接收会话处理单元123-1-123-N按照会话到达的顺序将接收到的分组简单地存储在发送缓冲器122-1-122-N中。发送会话处理单元121-1-121-N不接收ACK分组而是向分组调度器13通知发送缓冲器122-1-122-N的队列长度,作为广告窗口和拥塞窗口,从而只要将分组存储在发送缓冲器122-1-122-N中,就连续地请求分组调度器13传送分组。
基于逐个的会话,分组调度器13在状态变化保存单元133中具有3个参数,即,分配权重、可发送字节数和发送等待字节数。
分配权重是分配给会话的权重。分组调度器13以固定周期复位或在每次不再有分组可以在其中发送的会话时复位(图6中S26,S27),可以在一个复位周期期间被发送的字节数是分配权重。
可发送字节数是从当前时间到下一次复位期间可以发送的字节的数目,并且具有等于分配权重的初始值(图6中步骤S21),当每次传输分组时,将可发送字节数递减分组长度(图6中步骤S22,23)。
在TCP会话的情况下,发送等待字节数是通过从TCP层允许发送的序列号中减去分组调度器13已经发送的序列号而得到的数值,并且由min(最后一个顺序接收数据的序列号+1,由接收终端表示的广告窗口,会话的拥塞窗口)—已发送的序列号来表示。对于不是TCP会话的情况,发送等待字节数是发送缓冲器122-1-122-N中的队列长度。
图7是示出了发送等待字节数的示意图。在图7中,由发送可用列表135管理分组可以在其中传送的会话的标识符,即,所述会话具有均等于一或MSS(最大段尺寸)或更大的可发送字节数和发送等待字节数,(图6中S24,S25),同时由发送等待列表1 36管理在复位可发送字节数之后分组可以在其中进行传送的会话的标识符,即,所述会话具有等于一或MSS或更多的发送等待字节数,但是具有等于一或小于MSS的可发送字节数(图6中步骤S27-S29)。
接下来,将参考图3来描述分组调度器13的操作。当接收到最后一个顺序接收的来自发送终端3的分组的序列号、从接收终端2接收到的广告窗口以及来自会话中继单元12-1-12-N的更新拥塞窗口时,列表分配单元131按照图7所示的方式来更新发送等待字节数。
此外,当传送控制单元14中的重发定时器超时时,列表分配单元131还将已发送序列号返回给确认序列号的接收,并更新发送等待字节数。当更新前发送等待字节数是一或小于MSS时,不由发送可用列表135或发送等待列表136来管理会话的标识符,因此,根据更新的发送等待字节数以及可发送字节数,列表分配单元131重新将会话的标识符存储在发送可用列表135或发送等待列表136中。
状态更新单元132从发送可用列表135的顶部检索发送可用会话的标识符,并将此通知传送控制单元14以便传送分组。随后,状态更新单元132将已传送分组的长度与已发送序列号相加,然后更新发送等待字节数,并从可发送字节数中减去已传送分组的长度。
状态更新单元132根据发送等待字节数和可发送字节数,再次将会话的标识符存储在发送可用列表135或发送等待列表136中。具体地,当发送等待字节数和可发送字节数都等于一或MSS或更多时,状态更新单元132将标识符存储在发送可用列表135中,并且当发送等待字节数是一或MSS或更多并且可发送字节数是一或小于MSS时,将标识符存储在发送等待列表136中。
当发送可用列表135变为空时,状态更新单元132复位所有会话的可发送字节数,即,将分配权重与可发送字节数相加。如果可发送字节数等于或大于分配权重,使可发送字节数等于分配权重的值[可发送字节数=min(可发送字节数+分配权重,分配权重)]。
因为该处理使得将处于发送等待状态的所有会话改变为发送可用状态,将由发送等待列表136管理的会话均移动到发送可用列表135。
如果可发送字节数不是一或小于MSS,并且如果在执行该复位处理之前,与会话相关的发送缓冲器122-1-122-N中具有等待发送的数据,则假定为以下状态来自会话的输出带宽具有空间,但是在发送会话处理单元121-1-121-N中TCP控制停止了发送。
在该事件中,为了保持为未来发送恢复准备的带宽,即使可发送字节数和分配权重之和超过分配权重,也将可发送字节数最多保持为一个特定数值[可发送字节数=min(可发送字节数+分配等待,可发送字节数的上限值)]。
如上所述,在本实施例中,在接收时,只有当被存储在发送缓冲器122-1-122-N时,以及在发送时,只有从发送缓冲器122-1-122-N中被检索时,中继的分组才移动,因此数据移动需要较小的开销。此外,由于由使用来自TCP层的信息的分组调度器来控制分组传送,可以传送分组,同时与从发送会话处理单元121-1-121-N直接传送分组相比,能够进行具有较少处理负荷的带宽控制。
(第二实施例)根据本发明第二实施例的会话中继设备的配置与在图2中示出的根据本发明第一实施例的会话中继设备1的配置相似。
图8是示出了根据本发明第二实施例的分组调度器配置的方框图。在图8中,除了增加分配权重改变单元161和控制参数改变单元162以外,根据本发明第二实施例的分组调度器16在配置上与图3中示出的本发明第一实施例相似,相同的组件由相同的参考数字表示。此外,相同组件的操作与本发明的第一实施例相似。
下面将参考图8来描述根据本发明第二实施例的分组调度器16的操作。这里,只给出不同于根据本发明第一实施例的分组调度器13的方面的描述。
在根据本实施例的会话中继设备中,分组调度器16中的控制参数改变单元162根据设置为分配权重的带宽动态地改变用于会话的TCP控制参数的数值。具体地,当会话的可发送字节数不大于之前设置的、大于分配权重的数值时,控制参数改变单元162确定受限于TCP控制的数据传送,并改变用于会话的TCP控制参数的数值,以便会话能够通过较宽的带宽来传送数据。
然而,即使当TCP控制参数改变不会导致会话的数据输出带宽增加、或当在特定频率或更高频率处发生重发超时,也可以停止TCP参数的改变从而防止网络的拥塞。
此外,当会话的可发送字节数小于另一个之前设置值时,改变用于会话的TCP控制参数的值,以便通过TCP控制将数据传送减少到基于分组调度器16的分配权重的带宽。
前一种情况涉及在非拥塞期间将拥塞窗口增加较大的宽度,或在拥塞期间减少拥塞窗口减少速率,而后一种情况涉及与前一种情况相反的处理。
此外,在根据本实施例的会话中继设备中,分组调度单元16中的权重改变单元161根据用于当前可用于发送的带宽来动态的改变分配权重。具体地,如果会话的可发送字节数不大于之前设置的、大于分配权重的数值,则分配权重改变单元161确定不能在已经基于分配权重设置的带宽下传送数据,并临时减少分配权重。
之后,当可发送字节数变得小于之前设置的另一个值时,分配权重改变单元161在原始值之后增加分配权重。此外,根据从会话中继单元12-1-12-N通知的、用于会话的拥塞窗口和往返传播延迟的测量值,分配权重改变单元161计算能够发送会话的带宽。
此外,如果该计算值与基于分配权重的带宽设置相差特定阈值或更多,则分配权重改变单元161临时改变分配权重,以便基于分配权重的带宽设置值等于上述计算值。
(第三实施例)图9是示出了根据本发明第三实施例的会话中继设备配置的方框图。在图9中,除了在会话中继单元15-1-15-N中设置接收速率控制单元151-1-151-N(接收速率控制单元151-2-151-N未示出)之外,根据本发明第三实施例的中继会话设备在配置上与在图1中示出的根据本发明第一实施例的会话中继设备相似,相同的组件由相同的参考数字表示。此外,相同组件的操作与本发明第一实施例中相似。接收速率控制单元151-1-151-N控制来自发送终端3的接收速率。
当参考图9描述根据本发明第三实施例的会话中继设备操作时,这里仅仅给出与上述本发明第一实施例不同方面的描述。
在根据本实施例的会话中继设备中,当发送缓冲器122-1-122-N中的空闲容量耗尽时,接收会话处理单元123-1-123-N向发送终端3通知广告窗口大小为零,发送终端响应对此进行响应,停止发送数据。
在本发明的第一实施例中,即使一段时间之后发送缓冲器122-1-122-N的空闲容量可用,也不能传送用于恢复发送的ACK,直到发送终端3传送用于窗口测试的分组为止。
在本实施例中,另一方面,当分组调度器13命令传送分组时,接收速率控制单元151-1测试分组传送之后发送缓冲器122-1-122-N的空闲容量,当空闲容量是一或MSS或更多时,产生用于发送终端3的ACK分组,以提示发送终端快速恢复发送。
此外,当发送缓冲器122-1-122-N空闲容量或其平均容量增加到之前设置的特定值或更高时,接收速率控制单元151-1-151-N命令发送终端3减少发送带宽,以便防止发送缓冲器122-1-122-N中空闲容量的耗尽。
例如,通过以下操作可以实现上述处理利用复制ACK来代替返回到发送侧的ACK分组、丢弃接收到的分组、在ACK分组中设置ECN(显示拥塞通知)比特、延迟ACK分组、临时重写ACK的广告窗口以使其变小等。
(第四实施例)图10是示出了根据本发明第四实施例的会话中继设备配置的框图。在图10中,除会话中继单元配备了发送iSCSI(因特网小型计算机系统接口)控制单元171-1-171-N(发送iSCSI控制单元171-2-171-N未示出)和接收iSCSI控制单元172-1-172-N(接收iSCSI控制单元172-2-172-N未示出)之外,根据本发明第四实施例的会话中继设备在配置上与根据本发明第三实施例的会话中继设备是相似的,相同的组件由相同的参考数字表示。此外,相同组件的操作与根据本发明的第三实施例的会话中继设备相似。
发送iSCSI控制单元171-1-171-N将用于iSCSI层的拥塞控制信息反映为到接收终端2的发射速率。接收iSCSI控制单元172-1-172-N将用于iSCSI层的拥塞控制信息反映为来自发送终端3的接收速率。
以下将参考图10来描述根据本发明的第四实施例的会话中继设备的操作。这里仅给出本发明第四实施例和本发明第三实施例之间不同方面的描述。
在iSCSI层上,将R2T(准备传输)分组从接收终端2发送到发送终端3,用于向接收终端2通知可以接收的数据量以便执行发送终端3和接收终端2之间的传输控制。
然后,在本实施例中,当发送iSCSI控制单元171-1-171-N接收到来自接收终端2的R2T分组时,不将该R2T分组发送到接收终端2,而是将在接收到R2T分组时传送的最后一个数据的序列号存储在根据本实施例的会话中继设备中。
发送iSCSI控制单元171-1-171-N将本次接收的R2T分组的可传送的数据量与上次存储的序列号相加,并向分组调度器13通知总和,作为可以在iSCSI层上传送的数据量。
分组调度器13将发送等待字节数定义为TCP层上允许发送数据量和iSCSI层上允许数据量的最小值。具体地,如图11所示,发送等待字节数=min(顺序接收数据的最后一个单元的序列号+1,接收终端表示的广告窗口,会话的拥塞窗口,当最后一次接收R2T分组时的序列号+本次接收的R2T分组的发送数据量)-已发送序列号。
当分组调度器1 3命令分组传送时,接收iSCSI控制单元172-1-172-N在分组传送后测试用于空闲容量的发送缓冲器122-1-122-N,如果它等于或大于之前定义的特定值或更多,则将发送缓冲器的空闲容量作为R2T分组发送到发送终端3。
如上所述,并不针对发送终端3和接收终端2之间的iSCSI层进行拥塞控制,而是由会话中继设备中继用于iSCSI层的拥塞控制,因此与当中继TCP会话时相似,也可以在iSCSI层上实现吞吐量的改进。
(第五实施例)图12是示出了根据本发明第五实施例的会话中继设备配置的框图。在图12中,根据本发明的第五实施例的会话中继设备包括会话标识单元11、会话发送单元41-1-41-N、会话接收单元42-1-42-N、分组调度器13、和传送控制单元14。
会话标识单元11确定输入分组所属的会话,会话发送单元41-1-41-N针对到接收终端的会话中的数据执行发送处理,会话接收单元42-1-42-N针对来自接收终端的会话的数据执行接收处理。
分组调度器13控制来自每个会话发送单元41-1-41-N的分组传送。传送控制单元14基于来自分组调度器13的指令传送来自每个会话发送单元41-1-41-N的分组。
会话发送单元41-1-41-N包括发送会话处理单元411-1-411-N(发送会话处理单元411-2-411-N未示出)、发送数据产生单元412-1-412-N(发送数据产生单元412-2-412-N未示出)和发送缓冲器413-1-413-N(发送缓冲器413-2-413-N未示出)。
发送数据产生单元413-1-413-N在发送缓冲器413-1-413-N中存储来自应用程序的发送数据。发送缓冲器5-6-1临时存储要发送的数据。发送会话处理单元411-1-411-N处理用于发送数据到接收终端的会话。
会话接收单元42-1-42-N包括接收会话处理单元421-1-421-N(接收会话处理单元421-2-421-N未示出)、接收缓冲器422-1-422-N(接收缓冲器422-2-422-N未示出)和接收数据处理单元423-1-423-N.。
接收会话处理单元421-1-421-N针对来自接收终端的数据执行接收处理,而接收缓冲器422-1-422-N临时存储接收到的数据。接收数据处理单元423-1-423-N将来自接收缓冲器5-14-1的接收数据传送到应用程序。
通常,在TCP会话中,由于在发送终端和接收终端之间进行双向通信,会话发送单元41-1-41-N之一和会话接收单元42-1-42-N之一用于一组发送终端和接收终端。在本实施例中,会话中继设备还充当发送终端或接收终端。
图13是示出了根据本发明第五实施例的会话中继设备(发送终端)和会话中继设备(接收终端)之间的数据流的方框图。在图13中,当将数据从会话中继设备(发送终端)4-2发送到会话中继设备(接收终端)4-1时,在会话中继设备(接收终端)4-1的会话接收单元42-1-1中对从会话中继设备(发送终端4-2)的会话发送单元41-1-2传送的数据进行接收处理。结果,将所产生的ACK分组返回会话中继设备(发送终端)4-2的会话发送单元41-1-2。
另一方面,当将数据从会话中继设备(接收终端)4-1发送到会话中继设备(发送终端)4-2时,在会话中继设备(发送终端)4-2的会话接收单元42-1-2中对从会话中继设备(接收终端)4-1的会话发送单元41-1-1传送的数据进行接收处理。结果,将所产生的ACK分组返回会话中继设备(接收终端)4-1的会话发送单元41-1-1。
接下来,将参考图12来描述本发明第五实施例的操作。首先,将给出从发送终端到接收终端的数据传输的描述。
发送数据产生单元412-1-412-N将由应用程序产生的发送数据写入到发送缓冲器413-1-413-N。发送会话处理单元411-1-411-N处理从发送缓冲器413-1-413-N发送到接收终端的数据。由于该处理与之前提到的本发明第一实施例相似,在此省略描述。
这里,为了计算发送等待字节数,分组调度器13使用从应用程序接收数据的最后一个单元的序列号来代替顺序接收的最后一个数据的序列号。
接下来,将给出从接收终端到发送终端的数据传输的描述。接收会话处理单元421-1-42-1N针对从接收终端发送的数据执行接收处理,并将正确接收的数据存储在发送缓冲器422-1-422-N中。
除了将数据存储在接收缓冲器中来代替存储在发送缓冲器中之外,接收处理与之前所述的本发明第一实施例相似。因此这里省略描述。由接收数据处理单元423-1-423-N检索写入到接收缓冲器422-1-422-N的数据,并传送到应用程序。
因此,在本发明中,对于层的拥塞控制处理,针对多个层中的每一层来执行拥塞控制信息的创建,并且将分组传送控制处理集中到IP层上的调度器,这能够高速实现会话中继处理。
此外,通过将用于多个层的接收缓冲器和发送缓冲器集中在用于IP层的发送缓冲器以消除缓冲器之间的数据移动,本发明能够以较高的速度实现会话中继处理。
权利要求
1.一种用于执行会话中继处理的会话中继设备,所述会话中继处理包括在多个层上的拥塞控制处理和分组传送控制处理,其特征在于多个层中的每个层仅创建拥塞控制信息,分组传送控制处理集中在在IP(因特网协议)层上的调度器中。
2.根据权利要求1的会话中继设备,其中,与多个层相对应的接收缓冲器和发送缓冲器集中在与IP层相对应的发送缓冲器中。
3.一种会话中继设备,用于通过在到所述发送终端的会话和到所述接收终端的会话之间中继数据来实现接收终端和发送终端之间的通信,其特征在于包括接收会话处理装置,用于从到发送终端的会话接收数据;发送会话处理装置,用于发送数据至到所述接收终端的会话;发送缓冲器,用于临时存储传送到所述发送终端的数据;分组调度器,用于控制来自所述发送缓冲器的分组传送;以及传送控制装置,用于响应所述分组调度器的控制,控制存储在所述发送缓冲器中的数据的传送,其中所述发送会话处理装置计算允许在层上传送的数据量,所述分组调度器基于计算的数据量来控制分组传送。
4.根据权利要求3的会话中继设备,其中所述接收会话处理装置对于来自TCP(传输控制协议)会话的数据执行接收处理,所述发送会话处理装置处理用于传送到TCP会话的数据,并向所述分组调度器通知由TCP窗口流控制确定的、能够被传送的数据量,以及所述分组调度器基于通知的数据量来执行调度处理。
5.根据权利要求3的会话中继设备,其中,所述分组调度器基于通信资源分配策略来确定传送分组的会话,以控制来自每个会话的数据传送,所述通信资源分配策略至少包括分配给会话的带宽和带宽比、从所述分组会话处理装置通知的可发送数据量、以及存储在所述发送缓冲器中的数据量。
6.根据权利要求3的会话中继设备,其中,所述分组调度器还包括累积装置,用于累积在每个会话中未使用的通信资源,并且当需要通信资源时,利用累积在所述累积装置中的通信资源进行通信。
7.根据权利要求6的中继会话设备,其中,所述发送缓冲器包含要传送的数据,利用来自所述传送控制装置的允许传送数据量的限制,所述分组调度器仅累积空闲的通信资源的带宽。
8.根据权利要求3的会话中继设备,还包括用于动态地改变发送会话的控制参数的装置,其中根据来自所述分组调度器的数据发送情况来改变控制参数。
9.根据权利要求8的会话中继设备,其中,当会话的空闲带宽增加时,按照来自会话的输出带宽减少的趋势来改变会话的控制参数,当会话的空闲带宽减少时,按照来自会话的输出带宽增加的趋势来改变会话的控制参数,当控制参数的改变引起拥塞时,停止控制参数的改变。
10.根据权利要求9的会话中继设备,还包括用于动态地改变已分配通信资源量的装置,所述已分配的通信资源至少包括分配给每个会话的带宽和带宽比,其中根据来自所述分组调度器的数据传输情况和从所述传送控制装置通知的用于通信的可用数据量来改变控制参数。
11.根据权利要求10的会话中继设备,其中,当会话的空闲资源增加时,分配给会话的资源减少,当会话的空闲资源减少时,分配给会话的资源增加其被定义为上限值的初始值,分配的资源根据从所述传送控制装置通知的可发送数据量或其平均值增加或减少。
12.根据权利要求3的会话中继设备,包括发送速率控制装置,用于控制发送控制信息,所述发送控制信息至少包括带宽、发送的可用性、以及用于控制来自发送终端的会话的控制发送处理的可发送数据量,其中根据所述发送缓冲器的空闲容量和来自所述分组调度器的信息来改变或产生到所述发送终端的发送控制信息。
13.根据权利要求12的会话中继设备,还包括用于从所述分组调度器接收分组传送信息的装置以及用于针对由传送的分组改变的空闲容量来检查所述发送缓冲器的装置,其中在已经传送分组之后,当所述发送缓冲器的空闲容量增加到特定数量或更多时,将调度确认分组发送到所述发送终端以提示所述发送终端恢复发送。
14.根据权利要求12的会话中继设备,还包括用于检查所述发送缓冲器空闲容量和其平均容量中至少一个的装置,其中命令所述发送终端根据空闲容量来减少发送带宽。
15.一种会话中继设备,通过在到发送终端的会话和到接收终端的会话之间中继数据来实现发送终端和接收终端之间的通信,其特征在于包括与多个层相对应设置的接收会话处理装置,用于接收从到所述发送终端的会话接收数据;与多个层相对应设置的发送会话处理装置,用于发送数据至到接收终端的会话;发送缓冲器,用于临时存储被传送到所述发送终端的数据;以及分组调度器,用于控制来自所述发送缓冲器的数据分组的传送,其中每一个所述发送会话控制装置计算允许在相关层传送的数据量,所述分组调度器基于所有多个层共同允许的数据量来控制分组传送。
16.根据权利要求15的会话中继设备,其中,所述层包括iSCSI(因特网小型计算机系统接口)层,作为实现拥塞控制的层之一,基于在iSCSI层从所述接收终端接收的可接收数据量来确定可发送数据量。
17.根据权利要求15的会话中继设备,还包括用于从所述分组调度器接收分组传送信息的装置,针对由所传送的分组改变的空闲容量来检查所述发送缓冲器的装置,其中在已经传送分组之后,当所述发送缓冲器的空闲容量增加到特定数量或更多时,针对所述发送终端产生可接收的数据量以提示所述发送终端恢复发送。
18.根据权利要求3的会话中继设备,其中,所述接收会话处理装置将接收到的分组直接存储在所述发送缓冲器中,并且直接从所述发送缓冲器传送分组。
19.根据权利要求3的会话中继设备,其中将来自应用程序的数据写入所述发送缓冲器,并且将接收到的数据传送到应用程序。
20.一种用于会话中继设备实现会话中继处理的会话中继方法,所述会话中继处理包括在多个层上的拥塞控制处理和分组传送控制处理,其特征在于多个层的每一层仅创建拥塞控制信息,以及分组传送控制处理集中在IP(因特网协议)层调度器的调度器中。
21.根据权利要求20的会话中继方法,其中将与多个层相对应的接收缓冲器和发送缓冲器集中在与IP层相对应的发送缓冲器中。
22.一种会话中继方法,通过在到发送终端的会话和到接收终端的会话之间中继数据来实现接收终端和发送终端之间的通信,其特征在于在所述会话中继设备侧,所述方法包括接收会话步骤,从到所述发送终端的会话接收数据;以及发送会话步骤,发送数据至到所述接收终端的会话;临时将传送到所述发送终端的数据存储到发送缓冲器的步骤;在分组调度器控制来自所述发送缓冲器的分组传送的步骤;以及响应传送控制装置中所述分组调度器的控制,控制存储在所述发送缓冲器中的数据传送的步骤,其中所述发送会话处理计算允许在层上传送的数据量,以及所述分组调度器基于所计算数据量来控制分组传送。
23.根据权利要求22的会话中继方法,包括步骤针对来自TCP(传输控制协议)会话的数据来执行接收处理,其中所述发送会话步骤处理用于传送到TCP会话的数据,以及向所述分组调度器通知由TCP窗口流控制确定的、能够传送的数据量,由此所述分组调度器基于所通知的数据量来实现调度处理。
24.根据权利要求22的会话中继方法,还包括,所述分组调度器基于通信资源分配策略来确定分组在哪个会话中被传送的步骤,以控制来自每个会话的数据传送,所述通信资源分配策略至少包括分配给会话的带宽和带宽比、从所述发送会话处理装置通知的可发送数据量、以及存储在所述发送缓冲器中的数据量。
25.根据权利要求22的会话中继方法,其中所述分组调度器还包括累积装置,用于累积在每个会话中未使用的通信资源,以及所述方法还包括步骤当所述分组调度器中需要通信资源时,使用在所述累积装置中累积的通信资源进行通信。
26.根据权利要求25的会话中继方法,还包括累积步骤,利用所述分组调度器,通过来自所述传送控制装置的允许传送的数据量的限制,仅仅空闲通信资源的带宽,其中所述发送缓冲器包含要传送的数据。
27.根据权利要求22的会话中继方法,还包括步骤利用动态地改变控制参数的装置,根据来自所述分组调度器的数据传送情况来改变发送会话的控制参数。
28.根据权利要求27的会话中继方法,还包括步骤当会话的空闲带宽增加时,按照会话的输出带宽减少的趋势来改变会话的控制参数,当会话的空闲带宽减少时,按照会话的输出带宽增加的趋势来改变会话的控制参数,以及当改变控制参数引起拥塞时,停止控制参数的改变。
29.根据权利要求28的会话中继方法,还包括步骤利用用于动态地改变已分配的通信资源量的装置,根据来自所述分组调度器的数据传送情况和从所述传送控制装置通知的可用于通信的数据量来改变控制参数,所述通信资源至少包括分配给每个会话的带宽和带宽比。
30.根据权利要求29的会话中继方法,还包括步骤当会话的空闲带宽增加时,减少分配给会话的资源,当会话的空闲资源减少时,随着定义为上限的初始值来增加分配给会话的资源,以及根据从所述传送控制装置通知的可发送数据量或其平均值来增加或减少所分配的资源。
31.根据权利要求22至29之一的会话中继方法,还包括步骤根据所述发送缓冲器的空闲容量和来自所述分组调度器的信息,通过用于控制发送控制信息的发送速率控制装置来改变或产生到所述发送终端的发送控制信息,所述发送控制信息至少包括带宽、发送的可用性、以及针对来自所述发送终端的会话来控制发送处理的可发送数据量。
32.根据权利要求31的会话中继方法,还包括步骤在已经传送分组之后,当所述发缓冲器的空闲容量增加到特定数量或更多时,将调度确认分组发送到发送终端以提示发送终端恢复发送。
33.根据权利要求31的会话中继方法,还包括步骤根据由检查所述发送缓冲器的空闲容量及其平均值中至少一个的装置所检查的空闲容量,命令所述发送终端减少发送带宽。
34.一种用于会话中继设备的会话中继方法,通过在到所述发送终端的会话和到所述接收终端的会话之间中继数据来实现发送终端和接收终端之间的通信,其特征在于在所述会话中继设备侧,所述方法包括接收会话步骤,在多个层中的每一个从到所述发送终端的会话接收数据;发送会话步骤,在多个层中的每一个发送数据至到所述接收终端的会话;在发送缓冲器中临时存储传送到所述发送终端的数据的步骤;以及在分组调度器控制来自所述发送缓冲器的分组的传送的步骤,其中,每个发送会话处理计算在相关层上允许传送的数据量,所述分组调度器基于所有多个层共同允许的数据量来控制分组传送。
35.根据权利要求34的会话中继方法,其中所述层包括iSCSI(因特网小型计算机系统接口)层作为用于实施拥塞控制的层之一,所述方法还包括步骤在iSCSI层上根据来自所述接收终端的可接收数据量来确定可发送的数据量。
36.根据权利要求34的会话中继方法,还包括步骤在已经传送分组之后,当所述发送缓冲器的空闲容量增加到特定数量或更多时,针对所述发送终端产生可接收的数据量以提示发送终端恢复发送。
37.根据权利要求22的会话中继方法,其中,所述接收会话步骤还包括步骤在所述发送缓冲器中直接存储接收到的分组以及从所述发送缓冲器直接传送分组。
38.根据权利要求22的会话中继方法,还包括步骤将来自应用程序的数据写入所述发送缓冲器的,并将接收到的数据传送到应用程序。
全文摘要
会话标识单元(11)确定输入分组所属的会话,同时,会话中继单元(12-1-12-N)在与发送终端的会话和与接收终端的会话之间进行中继。分组调度器(13)命令和控制来自每个会话中继单元(12-1-12-N)的分组的传送,传送控制单元(14)基于命令传送来自每个会话中继(12-1-12-N)的分组。在会话中继单元(12-1)中,发送会话处理单元(121-1)处理用于将数据发送到接收终端的会话,发送缓冲器(122-1)存储接收的数据,直到发送的结束为止。接收会话处理单元(123-1)处理用于从发送终端接收数据的会话。
文档编号H04L12/56GK1836411SQ20048002338
公开日2006年9月20日 申请日期2004年7月26日 优先权日2003年8月20日
发明者下西英之, 村濑勉, 山崎康广, 长谷川洋平 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1