用于多路径通信的方法和系统的制作方法

文档序号:7889583阅读:283来源:国知局
专利名称:用于多路径通信的方法和系统的制作方法
技术领域
本发明涉及在网络的第一位置中的客户机设备和第二位置中的服务器设备之间通过诸如TCP连接的网间连接加速中继操作的方法,该网络在所述客户机设备和服务器设备之间包括多个接入点或通信路径,该方法包括由控制部件控制(host)的命令协议的使用。本发明也涉及适合于实施所述方法的系统。
当数据通过网络中的不同节点传播时,由慢速链路引起的延迟是经常出现的问题。这称为等待时间。现有技术中存在若干种熟知的用于处理高等待时间的解决方案。一种解决方案是借助于分路(split)代理系统,该系统将TCP/IP传输封装在脚本传输中,该脚本传输没有高等待时间系统中的问题。这种解决方案的一个缺点是,所增加的适当的脚本传输的健壮性限制低带宽通信路径的吞吐量。
另一种熟知的解决方案需要取消应用层服务器,以便在分路TCP连接的客户机-代理和代理-服务器部分之间交换数据,并且将到达该分路连接一端的字节流直接映射到该分路连接的另一端的序号空间。这种解决方案也限制低带宽通信路径的吞吐量。
还一个熟知的解决方案通过仅恢复实际上丢失的分组部分来防止不必要地降低TCP吞吐量,例如,仅恢复无线通信中的空中链路时间帧,而不恢复较大的TCP分组。该解决方案具有缺点,即如果预测到长的断开,则其会导致TCP源窗口的猝灭。
本发明的一个目的是处理分组交换系统中通信路径中的拥塞。
本发明的另一个目的是提供一种方法,该方法要求在通信协议中在流控制机制和拥塞控制机制之间实现一种适当的平衡。本发明的另一个目的是提供一种适合于实施这种方法的系统。
按照本发明的一个方面,借助于根据权利要求1的通过诸如TCP连接的网间连接加速中继操作的方法实现一个或多个所述目的。
基本新颖且富有创造性的概念是当一个设备在不同的接入网之间转换时,利用单个连接的适当转接来利用用于单个连接的多个接入网的带宽。所涉及的技术优点是,这允许使用所有可用于网络中的设备的硬件带宽,这些网络包括多个接入节点或通信路径。同样,当设备在不同的接入网之间转换时,连接不必中止或中断以及随后重新构成。这也增强了操作的可靠性。
根据本发明方法的一个实施例使得以下有可能例如,具有无线网卡和有线连接的膝上型计算机能够组合这两种网络的带宽,以使通过因特网流出(stream)音频/视频文件。同样,如果膝上型计算机具有例如基于有线连接的一个TCP连接,则该TCP连接能够被转移到无线接入网,而不中断该连接。
在根据本发明方法的优选实施例中,该方法包括相对于因特网上的合并/分路部件在多个接入网上监控带宽的一种操作,这些接入网对客户机设备是可用的。尤其优选地,为了最大限度地利用可用带宽,该方法也包括通过产生用于在客户机端上转换连接的控制指令来响应可用带宽中的任意改变的一种操作。这是有益的,因为这允许使用精确的算法和有效的传输、重传和转换操作。
在另一个实施例中,存在多种用于在因特网上的合并/分路部件上利用多个IP地址合并源于服务器设备的分组数据流的操作,以及用于在相反方向上对业务分路的操作。这也提供了高速业务的优点。
本发明也涉及适合于与通过网间连接加速中继操作的所述方法一同使用的分路/合并设备,而且涉及包括用于操作该分路/合并设备的指令的计算机程序。此外,本发明也涉及根据权利要求7的一种系统,该系统包括在第一位置中的服务器设备中的分路/合并装置以及因特网上的分路/合并设备,该系统适合于实施根据本发明的方法。
本发明的这些和其它的方面从参考下面描述的实施例中将是显而易见的并将结合这些实施例进行阐述。


图1描述了用于与根据本发明的方法一同使用的某些硬件和软件部件的基本配置;图2描述了在客户机设备和服务器设备之间的代理连接1、在与客户机设备协同操作的分路/合并设备和因特网上的合并/分路部件之间的特殊连接2,3、以及在合并/分路部件和服务器设备之间的连接4的示意图,其中这些连接1-4工作在应用根据本发明的方法期间;图3描述了根据图1的硬件和软件部件的详细配置;和图4描述了根据图3的详细配置的图2的覆盖图。
图1示出了连接到多个接入网的客户机设备100。图3进一步详细地示出了图1的配置。客户机设备100由控制一个命令协议104的部件102控制。在该方案中存在两个网络接入网1(AN1)和接入网2(AN2);网络的数目能够被一般化为N。这两个接入网给设备100提供接入到全球因特网。客户机设备100具有在接入网AN1上的IP地址IP1和在接入网AN2上的IP地址IP2。
客户机设备100与两个部件相互作用。首先,有一个分路/合并部件130。例如通过在可用的接入网上访问在Windows下的WinsockAPI或Java中的java.net分组或Unix中的Berkeley套接字,该(软件)设备130分路来自使用例如TCP的应用106的消息138。同样,它将来自接入网的输入消息620合并到单个数据流中。为了应用106运行在客户机设备100上,经过使用代理装置108,就好像存在单个TCP连接。其次,具有一个分路/合并部件200,该部件相对于第一位置是外部的,并且被连接到因特网300。该部件200是一个合并先前的分路数据流(140)的因特网主机(例如,一个专门的web服务器;然而,其可能是与这里所示出的部件相类似的部件(对等网络)),并且朝着该连接的第二位置中的服务器端发送此信息(500)。同样,发送到在第二位置中的设备400的任何信息(500)能够在可用的接入网上被分路。该因特网分路器/合并器200具有单个IP地址IP3。例如,为了负载均衡和/或可靠性,存在其它可能的实施方案,借此,该因特网分路器/合并器200能够被复制或者倍增。单个设备能够使用多个因特网分路器/合并器;然而,对于单个连接来说,当从具有IP3的因特网分路器/合并器设备到例如具有IP4的普通web站点的普通连接要求在两个端点上单个IP地址时,其仅能使用单个连接。
因此,该方法要求启动在因特网上客户机设备100和服务器设备400之间的连接1;在多个可用接入网AN1,AN2上创建至因特网上的合并/分路部件200的特殊连接2,3;创建在因特网上的合并/分路部件200和第二位置的服务器设备400之间的连接4;对来自运行在第一位置自身中的客户机设备100上的应用106的业务138分路;经过因特网利用多个IP地址IP1,IP2来发送源自客户机设备100的分路的数据分组140;当合适时重传未确认分组,或者如果合适的话将重传协议从一个接入网转换到另一个接入网;在因特网上的合并/分路部件200上利用多个IP地址,合并源自客户机设备100的分组数据流140;和将合并数据流500传送到第二位置中的服务器设备400。从服务器设备400到客户机设备100的任何业务600以相反的功能顺序遵循上面的步骤。
仅在连接的客户机端上示出了分路器/合并器设备130。应当清楚,这样一种设备也能够在该连接的服务器端上提供。
分路器/合并器设备130在可用的连接2,3上依赖于经过每一个这些连接的传输的进展来对输出业务140分路。客户机设备100包括用于监控在所述的独立的通信路径110,120上的可利用的任何带宽的装置148(见图3);以及用于响应可用带宽中的任何改变的装置150(见图3)。后一个装置150产生由装置144(见图3)用于在客户机端上转换连接的控制指令(见图3),以最大限度地使用可用带宽。如果存在输入和输出业务,则分路器/合并器设备130以及合并/分路部件200的功能是对称的和镜像的。如果分路器/合并器设备130例如被配置在执行端口转发的防火墙或者网关中,则能够透明地实施本发明的实施例。因特网web站点能够起到合并器的作用,所以第二位置中的服务器设备不知道在第一位置中的分路器/合并器设备130的操作。分路器/合并器设备130和合并/分路部件200分别能够被配置用于处理单向业务或者双向业务。
图2示出了覆盖在图1中所示的硬件和软件部件上的多个连接的建立。在这种情况下,在外部分路/合并设备200(具有IP地址IP3)中的一个应用启动客户机设备100和因特网主机400(具有IP地址IP4)之间的连接。该连接表示为连接1。连接1被如下建立。内部分路器/合并器设备130在所有可用的接入网(110,120)上创建一个到因特网分路/合并部件200(具有IP地址IP3)的特殊连接。这导致连接2和3。这些连接是特殊的,由于它们以下面方式不同于普通的连接。首先,最初地一个标题被传送到至少包括目标IP地址(IP4)的因特网合并器/分路器200(具有IP3)。其次,改变重传协议,以允许在接入网2(AN2)上重传接入网1(AN1)上丢失的分组。这类似于在IP级上使用的路由选择协议。一个简单的解决方案是使用普通的连接,并且在这种比特流中定义下面的子结构<分组ID,有用负载><分组ID,有用负载>...
图3进一步详细地示出了根据图1的硬件和软件部件。分路器/合并器130包括用于与连接1相互操作的装置132;用于在接入网AN1和AN2上创建特殊连接2,3的装置134;用于将它从应用106接收的业务138分路为分路数据分组140的装置136,该应用106在客户机设备100上运行;用于经过IP1和IP2发送数据分组140到合并/分路部件200上的装置142;以及用于在AN1和AN2之间转换服务中的重传协议的装置144。合并/分路部件200包括用于将它接收的数据分组140合并到数据流500中的装置210;以及用于将合并数据流500传送到服务器设备400的装置220。为了双向业务,部件200可以选择性地包括用于从服务器设备400接收数据流600的装置230;用于将数据流600分路为分路数据分组620的装置240;用于发送分组620到分路器/合并器设备130上的装置250;以及用于在AN1和AN2之间转换服务中的重传协议的装置260。部件200的发送和接收装置能够替换地在因特网上被配置为装置310和320,甚至与之相结合,这一点是清楚的。为了双向业务,分路器/合并器设备130包括装置146,该装置用于接收由合并/分路部件200发送给它的分组(500,如果在单个数据流中;或者620,如果在被分路的数据流中)。设备130也包括装置154,用于合并任何其可以接收的任何分路数据流620。
图4给出了硬件和软件部件以及如上所述起作用的相同的硬件和软件之间连接的一个完整的视图。
由于分组在多个接入网上被发送,所以在第二或者另一连接上的分组ID能够跳过分组(其已经在第一网络上被发送),以及一个分组ID能够到达两个网络(如果它被重传&稍后被传递)。作为选择,UDP分组能够被用于创建任何特殊的可能被要求的协议。这将要求已经在TCP中出现的多种功能的重新执行。
借助于下面的例子示出了涉及分路和合并算法的本发明的方面。
用于分路器的一种可能的算法如下1.采用TCP数据流的N比特,创建分组=<x,有用负载>
2.在缓冲器中存储分组x3.在接入网n上发送分组x(其中,网络n上的TCP连接当前不在重传/或被中断/或正忙)4.转到1,采用接下来N比特,以及分组ID=x+1+通过接入网1...n的至TCP重传协议的改变
->如果来自分组x的数据被重传/不能被传送,则激活以下程序重传(分组x,接入网n)1.从缓冲器中检索分组x,在不同的接入网k上重传2.取消接入网n上的重传->如果来自分组x的数据成功被发送(在TCP中被确认)接收(分组x)分组x的一个空闲缓冲器用于合并器的一种可能的算法如下1.从TCP数据流中接收N个比特,重新构建分组=<x,有用负载>
2.如果(具有较低x的分组未被传送)缓冲分组3.否则3.1将有用负载传递到下一级,增加已传送的数目x3.2检查被缓存的分组x+1(如果找到的话,返回到3.1,否则结束)所要求的分路器/合并器缓冲算法类似于普通的TCP自身的缓冲机制。主要的不同是分组从不同的IP地址被接收。
下面的操作涉及在具有IP3的部件200和用于因特网合并器的具有IP4的设备400以及用于部件200中的合并器的使用TCP的应用之间的TCP连接。合适的算法被认为对于本领域的普通技术人员来说是熟知的。
一旦该因特网合并器/分路器200重新构建由设备中的应用106发送的比特数据流(的首部),则它创建一个TCP连接4(这是一个普通的TCP连接),并且接下来将该比特数据流发送到具有IP4的设备400(在该例子中为web站点)。该web站点400将接收该比特数据流,将其当作一个来自具有IP地址IP3的因特网主机的普通TCP连接来对待。它将利用它自己的比特数据流来响应,并且将该数据流发送到因特网合并器/分路器200。该因特网合并器/分路器200将此比特数据流划分为分组(参见上面描述的分路器功能),并且通过合适的可用接入网发送它。
因此,在从第二位置的设备400朝向外部因特网合并器/分路器200的通信中镜像这些操作。
最后,在第一位置中的设备100合并源自第二位置的设备400的输入分组,并且将得到的比特数据流发送到应用106。应用106将其当作一个普通的到IP4的TCP连接来对待。作为选择,一个接口能够被附加,以便分路器知道的应用能够控制TCP连接是否使用该分路器(参见上面),或者该TCP连接是否使用单个网络。
本领域的普通技术人员应当清楚,分路器对所使用的IP地址的影响类似于NAT变换在第二位置中的web站点400操作,就好像其与IP3进行通信,同时在第一位置中的应用106自身将进行操作,就好像其使用IP1或者IP2进行通信。作为选择,通常在TCP API中出现的“获得本地IP地址”方法可以将IP3返回给该应用,以便web站点400和应用106操作,就好像它们在IP3和IP4之间进行通信。另一个选择是将IP1,IP2和IP3返回到应用106。如果应用106选择IP1/IP2,则其使用这些特殊的接入网;如果其选择IP3,则它使用分路器200(并且不要求NAT)。可能存在一种特殊的接口,其允许该应用查询IP地址的细节例如,附近的网络的类型。
消息序列的一个实施例包括如下1.<Internal>应用命令从IP1到IP4的TCP连接2.设备分路器在AN1,AN2上开通到因特网合并器的TCP+连接3.因特网合并器开通到IP4的TCP连接(不考虑TCP协议的确认)4.<Internal>应用通过TCP连接发送N个比特5.<Internal>分路器缓存N个比特6.设备分路器在AN1上发送分组<1,0...N/2比特>(现在假定AN1丢失了该分组,并且在长时间超时之后重传)7.设备分路器在AN2上发送分组<2,N/2...N比特>
(当分路器在发送分组2时,AN1没有确认分组1。假定分组2到达&被确认)8.因特网分路器接收分组2&缓存它9.设备分路器在AN2上发送分组<1,0...N/2比特>
10.因特网分路器接收分组1,在TCP连接上发送比特0...N到IP4。
如果随后接入网2(AN2)失败或者缓慢并且接入网1(AN1)可用,就会出现类似的消息序列,并且该消息再一次到达,就好像存在单个连接。
最后,本发明也扩展为计算机程序,尤其扩展到在一个载体上或在载体中的计算机程序,其适合于实现本发明。程序160可以是源代码、目标代码、诸如部分被编译的介于源代码和目标代码中间的代码的形式,或者任何适合于被使用在根据本发明的过程的执行中的其它形式。这种载体可以是任何能够携带该程序的实体或者设备。例如,该载体可以包括一个存储媒体,或者其可以是诸如电或光信号这样的可传输载体,这些信号可以经由电或光缆、或者通过无线电或者通过别的方式来传送。当该程序在一个可以直接通过电缆或者其他设备或装置传送的信号中被具体化时,该载体可以通过这种电缆或者其他设备装置来构成。作为选择,该载体可以是一个其中嵌入该程序的集成电路,该集成电路适合于执行相关的处理步骤或用于相关的处理步骤的程序中。
上面所述的一般的新颖的和创造性的概念能够在防止阻塞的通信路径中使用多个网络。相关的优点是网络的等待时间将是低的,以及当不需要首先与因特网上的合并/分路部件相互作用时带宽增加,以及在有用负载中具有其自己的IP地址的协议将不会中断。
权利要求
1.在网络的第一位置中的客户机设备和第二位置中的服务器设备之间通过诸如TCP连接的网间连接加速中继操作的一种方法,该网络包括在所述客户机设备和服务器设备之间的多个接入点或通信路径,该方法包括由控制部件控制的命令协议的使用,从而该方法包括下列操作启动在因特网上该客户机设备和服务器设备之间的连接;在多个可用的接入网上创建到因特网上的合并/分路部件的特殊连接;在因特网上的合并/分路部件和第二位置中的服务器设备之间创建连接;分路来自运行在第一位置自身中的客户机设备上的应用的业务;通过因特网利用多个IP地址发送源自该客户机设备的分路的数据分组;在合适时重传未确认的分组,或者如果合适的话将重传协议从一个接入网转换到另一个接入网;在因特网上的合并/分路部件上利用多个IP地址合并源自该客户机设备的分组数据流;和将合并的数据流发送到第二位置中的服务器设备;从而从服务器设备到客户机设备的任何业务以相反的功能顺序遵循上面的步骤。
2.根据权利要求1的通过网间连接加速中继操作的方法,从而该方法进一步包括以下操作相对于因特网上的合并/分路部件,通过可用于该客户机设备的多个接入网来监控带宽,以及通过产生用于转换在客户机端上的连接的控制指令来响应可用带宽的任何改变,以最大限度地使用可用带宽。
3.根据权利要求1的通过网间连接加速中继操作的方法,从而具有多个操作用于在因特网上的合并/分路部件上利用多个IP地址合并源自该服务器设备的分组数据流以及用于在相反的方向上分路业务。
4.一种分路/合并设备,适合于在根据权利要求1的加速中继操作的方法中与第一位置中的客户机设备或者与第二位置中的服务器设备一同使用,从而该分路/合并设备包括用于与因特网上在客户机设备和服务器设备之间的连接协同工作的装置;用于在该分路/合并设备本身和因特网上的合并/分路设备部件之间利用多个可用接入网创建特殊连接的装置;用于将来自运行在第一位置中的客户机设备上的一个应用的业务分路为分路的数据分组的装置;用于将分路的数据分组利用多个IP地址通过因特网发送到因特网上的合并/分路部件的装置;用于将重传协议从一个接入网转换到另一个接入网的的装置;用于将在该合并/分路部件上接收的分路数据分组合并为一个合并数据流的装置;用于将合并数据流传送到第二位置中的服务器设备的装置;用于从第二位置中的服务器设备接收数据流的可选择装置;用于将数据流分路为分路数据分组的可选择装置;用于将分路数据分组利用多个IP地址通过因特网发送到该分路/合并设备的可选择装置;用于将重传协议从一个接入网转换到另一个接入网的的可选择装置;用于接收由合并/分路部件经过因特网发送到该分路/合并设备的分组的装置;和用于合并由合并/分路部件发送到该分路/合并设备的任何分路分组数据流的装置。
5.根据权利要求4的分路/合并设备,从而该设备进一步包括用于相对于因特网上的合并/分路部件通过客户机设备可用的多个接入网来监控带宽的装置;和用于通过生成用于转换客户机上的连接的控制指令来响应可用带宽的任何改变以最大限度地使用可用带宽的装置。
6.一种包括指令的计算机程序,所述指令至少包括定义将被执行的有关如下的处理过程或者功能的代码分路来自运行在第一位置本身中的客户机设备上的一个应用的业务,和相对于因特网上的合并/分路部件,监控客户机设备可用的所有接入网上的带宽,以引起已经或者正被连接到传输硬件的可编程处理设备变得可用于执行根据权利要求1的转换连接的方法的分路/合并和转换操作。
7.用于在网络的第一位置中的客户机设备和第二位置中的服务器设备之间通过诸如TCP连接的网间连接加速中继操作的一种系统,该网络包括在所述客户机设备和服务器设备之间的多个接入点或信道,该系统包括在其客户机端上用于代理所述客户机设备和服务器设备之间的连接的装置;用于将代理连接创建为用于不同通信路径的多个独立连接的装置;和用于在所述不同的通信路径上为这些独立连接选择路由的装置;以及中间或者在其服务器端上用于分别地通过所述多个不同的通信路径接收业务和/或通过所述不同的通信路径发送业务的装置;用于分别地将所述业务合并为一个合并数据流并通过单个连接传送该合并数据流和/或将业务分路为不同数据流的装置;和用于分别地传送合并业务到该服务器设备和传送从该服务器设备接收的业务到所述装置以便由后者通过所述不同的通信路径作为在合适时被分路为业务的单个数据流进行传送。
8.根据权利要求7的系统,该系统进一步包括用于监控在所述独立通信路径上可用的任何带宽的装置;和用于响应于可用带宽中的任何改变的装置,所述装置产生由装置用于转换客户机端上的TCP连接的控制指令,以最大限度地使用可用带宽。
全文摘要
本发明涉及用于处理网络拥塞的方法和系统(1000)。第一网间连接设备(100)可以具有可用于经过网络(AN1;AN2)接入第二设备(400)的若干路径(110;120)。第一设备例如可以具有总是可操作的低带宽连接和/或仅在该设备在其停放(docking)站中时是可操作的高带宽连接。本发明的基本概念实施在代理诸如TCP连接的连接(1)的分路器/合并器设备(130),将该连接(1)分路为多个可用的独立连接(2,3),以及在这多个连接上为分组(140)选择路由到外部分路器/合并器部件(200)。根据沿着每个这些连接(2,3)的传输进程,分路器/合并器设备(130;134;142;144;152)在可用的连接上划分这些分组。如果既有输入业务(620;140,600)又有输出业务(140;500,620),则分路器/合并器部件(130;200)的功能是对称的和镜像的。
文档编号H04L12/56GK1643870SQ03805926
公开日2005年7月20日 申请日期2003年2月12日 优先权日2002年3月14日
发明者M·P·博德拉恩德 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1