CN101189599A - 连接发送 - Google Patents
连接发送 Download PDFInfo
- Publication number
- CN101189599A CN101189599A CNA200680013383XA CN200680013383A CN101189599A CN 101189599 A CN101189599 A CN 101189599A CN A200680013383X A CNA200680013383X A CN A200680013383XA CN 200680013383 A CN200680013383 A CN 200680013383A CN 101189599 A CN101189599 A CN 101189599A
- Authority
- CN
- China
- Prior art keywords
- message
- network
- applicable
- server
- logic
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
与相同LAN和WAN连接的两个或多个网络通信处理器被标识成近邻。近邻网络通信处理器用于克服不对称路由,从而确保由同一网络代理来处理网络通信的相关序列。网络代理可包括在网络通信处理器中或作为独立的单元。截取由客户机进行的新连接初启的网络通信处理器分配网络代理以处理与该连接相关联的所有消息。网络通信处理器将连接信息传送至近邻网络通信处理器。该近邻网络通信处理器使用该连接信息将与该连接相关联的网络通信重定向至所分配的网络代理,藉此克服不对称路由的影响。所分配的网络代理以与它处理直接接收的网络通信相同的方式处理重定向的网络通信。
Description
相关申请的交叉引用
本申请要求于2005年3月18日提交的第60/663,366号美国临时专利申请的优先权,该申请被援引于此用于各种用途。本申请涉及于2002年10月30日提交的题为“Transaction Accelerator for Client-Server CommunicationSystems”下文称为“McCanne I”的美国专利申请第10/285,351号;以及于2003年8月12日提交的题为“Cooperative Proxy Auto-Discovery andConnection Interception”下文称为“McCanne IV”的美国专利申请第10/640,562号,它们均被援引于此用于各种用途。
发明背景
本发明涉及数据网络领域,尤其涉及改善网络性能的系统和方法。网络代理和其它类型的网络设备可用于高速缓存或存储网络数据,加速网络通信,或控制或影响客户机与服务器之间的网络通信。
如本文所使用的,“客户机”一般指作出对数据或动作的请求的计算机、计算设备、外围设备、电子设备等,而“服务器”一般指响应于由一个或多个客户机所作的对数据或动作的请求而操作的计算机、计算设备、外围设备、电子设备等。计算机或其它设备可以根据其行为的背景而被认为是客户机、服务器或两者。
如本文所使用的,请求可以是对于计算机、计算设备、外围设备、电子设备等的操作的请求和/或对于由客户机执行或控制的应用程序的请求。一个例子是运行需要存储在计算机外部的文档并使用网络文件系统客户机来通过网络向文件服务器作出请求的字处理程序的计算机。另一个例子是对于针对诸如打印服务器、处理服务器、数据库服务器、控制服务器以及设备接口服务器、I/O(输/入/输出)服务器等本身执行动作的服务器的动作的请求。
请求通常由提供所请求的数据或执行所请求的动作的响应消息,或诸如错误消息或向监视系统提醒不成功或不适当请求的警告等指示无法满足该请求的响应消息来满足。服务器还可能阻止请求、发送请求、转换请求等,然后响应或不响应该请求。通常,请求响应周期可称为“事务”,并且对于给定事务,某对象(物理、逻辑和/或虚拟)可以被称为该事务的“客户机”,而某其它对象(物理、逻辑和/或虚拟)可以被称为该事务的“服务器”。
客户机向服务器发出请求消息,服务器通常将对每一请求消息的响应消息递送回客户机。如在McCanne I和McCanne IV中所述,与一个或多个对等网络代理通信的网络代理能在两个局域网(LAN)之间的广域网上提供加速事务、减少通信量以及其它功能。通常,在这类配置中,客户机的请求被通过客户机LAN与客户机连接的客户机方网络代理截取并通过WAN递送至服务器方网络代理。服务器方网络代理通过服务器LAN将客户机请求消息递送至服务器。请求消息可以由两个代理变换或处理,使得请求消息(很可能是将来的请求消息)在居间网络上比没有使用合作网络代理时更有效地传输。通常消息可以用任何适合于在通信网络上传送信息的格式或数据结构构成,包括单个网络分组或多个网络分组。
在这些基于代理的系统中,从客户机发送的包在客户机方代理处被接收;来自客户机方代理的包在服务器方代理处被接收;而来自服务器方代理的包在服务器处被接收。在许多网络中,这些从客户机到服务器的设置也足以确保从服务器到客户机的反向通信,即,在服务器方代理处接收来自服务器的包;在客户机方代理处接收来自服务器方代理的包;而在客户机处接收来自客户机方代理的包。
然而,在某些网络环境中,这种反向通信存在更多问题。特别是,包括客户机或服务器的LAN可以具有与WAN的多个冗余连接。因此,不对称路由可引起从服务器到客户机的响应包可能遍历与由从客户机到服务器的请求包所使用的路径不同的路径的情形。在代理能重新安排客户机与服务器之间的通信而无需了解客户机或服务器或客户机或服务器的参与的情形中,绕过了代理和它们的合作设置的反向通信能使客户机和服务器之间代理的连接退化或完全失败。网络代理和不对称路由的这一问题在2001年3月的Journal ofCommunication Networks中的Knutsson,Bjorn和Peterson,Larry的“Transparent Proxy Signalling”中提到过。
因此,需要一种克服上述影响的系统和方法。还需要该系统和方法能通过合适的WAN或其它网络连接使网络通信的相关序列重定向。还需要该系统和方法在通过合适的WAN或其它网络连接重定向网络通信时保持对客户机和服务器透明。
发明简要说明
在本发明的一个实施例中,与同一LAN和WAN连接的两个或多个网络代理,例如通过包括网络代理的简明配置或通过来自其它可用信息的近邻关系的干预,被标识成近邻。作为近邻的网络代理通过按需要相互发送包来共同克服不对称路由的影响及其它影响,从而确保由同样的网络代理处理网络通信的相关序列。
在一个实施例中,例如近邻组中通过接收SYN包来截取客户机的新连接初启的的代理被认为是该连接的“所有代理(owning proxy)”。在接收到客户机的新连接初启时,所有代理首先向所有其近邻代理传达关于新连接的标识信息,然后向对方网络代理打开其在WAN上的内部连接以进一步传达客户机的新连接初启。在某些情形中,不向所有近邻代理传达信息而只向它们中的某一些传达。在这些情形中,这有助于只考虑未通知的近邻代理事实上不是近邻尽管它们有作为近邻的资格。
在一个实施例中,近邻组中的其它代理使用它们已从所有代理接收的标识信息来处理可能由于不对称路由或其它网络行为而以绕过所有代理的包。接收与标识信息相匹配的包的近邻代理可变更包的定址信息,使得它被所有代理接收。所有代理随后可能以与其处理它直接接收的包几乎相同的方式来处理包。
在一个实施例中,近邻关系可由代理或近邻代理明确地结束。当近邻关系结束时,近邻代理丢弃标识信息。在另一实施例中,近邻代理可使用标识信息来向所有代理查询相应连接的状态。近邻代理在所有代理指示连接已关闭时,或在所有代理不识别该连接时,或在所有代理无法响应时,就丢弃该信息。
附图简要说明
本发明将参照附图来说明,其中:
图1示出一个示例网络以及可能由不对称路由引起的问题。
图2A-2B示出根据本发明的实施例的示例网络和改进的网络通信流。
图3示出根据本发明的一个实施例的通过近邻网络连接来维护信息的一个例子。
图4示出根据本发明的一个实施例的初启新连接的方法。
图5示出根据本发明的一个实施例的处理与连接相关联的网络通信的方法。
在附图中,相同标号用于指示相似的构件。
具体实施方式
图1示出示例网络100以及可能由不对称路由引起的问题。图1示出广域网(WAN)130上的客户机110和服务器150之间的通信,其中该通信由两个代理客户机方代理120和服务器方代理140作为中介。在此示例网络配置中,由客户机110发送至服务器150的消息115被客户机方代理120截取。客户机方代理120向服务器方代理140发送消息135。
在某些应用中,消息135与消息115相同。在其它应用中,例如,如果客户机方代理120包括加速网络或高速缓存功能,则客户机方代理120将消息115转换成可能在包括大小、编码、成帧、定址在内的许多方面或其它方面与消息115不同的等效消息135。服务器方代理140接收消息135并将其转换成与原始消息115相同的或作为原始消息115的可接受的替代的消息145。在网络100被配置时,看不到两个代理120和140的影响:客户机110和服务器150发送和接收与在消息115被简单地直接从客户机110发送至服务器150时会出现的相同的或其可接受替代的消息。
类似的处理适用于在相反方向上发送的消息:消息155被发往客户机110但是被服务器方代理140截取。服务器方代理140向客户机方代理120发送消息165。在某些应用中,消息165是消息155的转换。消息165可以在包括大小、编码、成帧、定址在内的许多方面或其它方面与消息155不同。从消息155产生消息165的转换可完全不同于从消息115产生消息135的转换。当被客户机方代理120接收到时,消息165被转换成与原始消息155相同或作为其可接受替代的消息175。这类截取能提供的某些改进在McCanne I中示出。
在某些应用中,客户机方代理120和服务器方代理140形成一个与经由客户机方代理120和服务器方代理140从客户机110通向服务器150的消息的第一通道的关联。关于该关联的信息用于为反向发送的消息的安排一个类似的转换。
不对称路由在客户机100和服务器150之间的初始消息和后续消息通过一个或多个不同的网络代理或其它LAN至WAN连接时发生。这可在WAN 130和服务器150或客户机110之间存在冗余链路时发生。一个或多个冗余链路一般用于负载平衡以及提高可靠性。如图1所示,服务器150通过服务器方代理140和附加服务器方代理141与WAN 130连接。
在所示的例子中,如果采用常规的网络路由方案,则不能确保从服务器150到客户机110的消息将遍历与从客户机110到服务器150的消息所遍历的相同的链路,导致所谓的不对称路由。例如,使用消息115、135和145在客户机110与服务器150之间的初始通信通过服务器方代理140到达服务器150,但响应可能不是这样。
例如,消息156的返回通信可能被不同的服务器方代理141截取。服务器方代理141不知道客户机方代理120或客户机方代理120与服务器方代理140之间的关联。因此,服务器方代理141将消息156当作它所接收的没有附加信息的任何其它消息,例如让其不变地通过作为消息166。然后,消息166跨WAN130到达客户机110。在某些设置中,消息166a直接由客户机110接收,因为它被发往客户机110;在其它设置中,客户机方代理120截取所有发往客户机110的通信,但将让消息166b不变地通过发往客户机110作为消息176。在任一种情形中,最初从服务器150发往客户机110的消息156不受益于客户机方代理120和服务器方代理140之间的关联。
这类“单方”或“中途”通信意味着只有一个方向的通信能受益于由代理120、140和141执行的转换。在某些情形中,这类通信模式可能违反客户机110与150之间的通信规则,导致通信故障。当不存在第二服务器方代理141或当服务器方140、141未接收到消息156,使得它被简单地从服务器150不变地发送至客户机110时,发生类似的问题。
图2示出根据本发明的实施例的具有改进的网络通信流的示例网络。图2A示出与上述网络100类似的网络200。在本发明的一个实施例中,网络200的服务器方代理240和241已被配置成近邻,因此它们中的每一方能与另一方通信和/或意识到另一方。
由客户机210发往服务器250的消息215被客户机方代理220截取。客户机方代理220向服务器方代理240发送消息235。消息235可与消息215相同或是在包括大小、编码、成帧、定址在内的方面和/或其它方面不同的消息215的变形。
当服务器方代理240接收到消息235时,在消息235是新客户机/服务器连接的建立时采取附加步骤:在这类情形中,服务器方代理240将从消息235获取的新连接信息248提供给近邻服务器方代理241。近邻服务器方代理241存储该新连接信息248并将其与所有服务器方代理240相关联。
服务器方代理240还将消息235转换成消息245,消息245与原始消息215相同或是原始消息215的可接受替代。因此,两个代理220和240的影响是不可见的:客户机210和服务器250发送和接收与在消息215被简单地直接发送至服务器250时会出现的消息相同或是其可接受替代的消息。例如,从服务器方代理240传达至服务器250的网络通信可能具有客户机210的源地址。
对于服务器250与客户机210之间的通信,近邻服务器方代理241可接收从服务器250发往客户机210的消息246。在接收诸如来自服务器250的消息246等通信时,近邻服务器方代理241使用其存储的新连接信息248来确定消息246属于通过服务器方代理240建立的连接。当然,服务器方代理240能接收消息并直接处理它。这些消息流未在图2A中示出,但预期如图1中所示的进行。
响应于这一确定,服务器方代理241向服务器方代理240发送消息247,实际上向其处理代理“发送”连接。服务器方代理240随后处理消息247。服务器方代理240使用其与客户机方代理220的关联的信息将消息247转换成消息244,消息244进而在WAN 230上发送。客户机方代理220随后将消息244转换成消息249,其中消息249与原始消息246相同或是原始消息246的可接受替代。
消息可以用多种不同的方式在近邻网络代理之间发送。在一个实施例中,发送服务器方代理将消息的目的地址变成另一近邻服务器方代理的地址。在此实施例的一个实现中,发送代理不改变所发送的消息的源地址来使其地址匹配而是保持消息的源地址,例如服务器250。接收所发送的消息的代理保持内部相对应于其本身与消息的原始源之间的连接的连接状态。因此,对于接收从近邻代理发送的消息的代理,发送的消息看来似乎是从消息的原始源而不是从近邻代理接收的。
在另一实施例中,通过例如在近邻代理之间建立的一般路由封装(“GRE”)隧道中将整个消息封装在另一消息中,将消息从代理241发送至近邻代理。在又一实施例中,通过从原始消息中提取有效负载及目的地信息并在TCP、SCTP或代理之间的类似连接上以合适的数据结构发送此有效负载,将消息从发送代理发送至近邻代理。
通常,消息可以在包括各消息的一个或多个网络分组的检测和发送层或语义请求和响应消息的更高层或在处理的任何居间层处的近邻网络代理之间发送。
图2B示出根据本发明的一个实施例的示例网络255。网络255除了有两个客户机方网络代理之外,类似于网络200。在此例子中,网络255的客户机方代理290和291已被配置成近邻,因此它们能相互通信和/或意识到对方。
由客户机260发往服务器275的消息265被客户机方代理290截取。客户机方代理290将消息285发送至服务器方代理270。消息285可与消息265相同或是消息265在包括大小、编码、架构、定址在内的方面和/或其它方面不同的变形。
当消息265被客户机方代理290接收时,如果消息265是新客户机/服务器连接的建立,则采取附加步骤。在这类例子中,客户机方代理290向近邻客户机方代理291提供从消息265获取的新连接信息268。近邻客户机方代理291存储该新连接信息268并将其与所有客户机方代理290相关联。
服务器方代理270接收消息285并将其转换成与原始消息265相同或是其可接受替代的消息287。因此,两个代理290和270的影响是看不见的:客户机260和服务器275发送和接收与在消息265被简单地直接发送至服务器275时会出现的相同的或是其可接受替代的消息。例如,从服务器方代理270传达至服务器275的网络通信可具有客户机260的源地址。
对于服务器275与客户机260之间的通信,近邻客户机方代理291可接收来自服务器275的消息。例如,服务器275可发送针对客户机260的消息277并且服务器方代理270能截取消息277并能将其转换成可能与消息277相同或是与消息277在包括大小、编码、架构、定址在内的方面和/或其它方面不同的变形的消息288。例如,消息288可能是消息277的压缩版本。
由于广域网280的路由特性,消息288可能被客户机方代理290或291中的任何一个接收。如果消息288被先前建立的客户机方代理290接收因而“拥有”客户机方260和服务器275之间的连接,则客户机方代理290使用关于其与服务器方代理270的关联的信息以及其它预先存储的信息来将消息288转换成消息295,消息295进而被发送至客户机260。消息295与原始服务器消息277相同或是原始服务器消息277的可接受替代。
或者,如果消息288被客户机方代理291接收,则客户机方代理291使用所存储的新连接信息268来确定消息288属于通过客户机方代理290建立的连接。响应于此确定,客户机方代理291通过消息297向客户机方代理290发送消息288。客户机方代理290随后将消息297转换成消息295,消息295随后被发送至客户机260。消息295与原始服务器消息277相同或是原始服务器消息277的可接受替代。诸如发送消息等各种消息可以或可以不与转换成它们的消息具有包对包的对应。
对于其它实施例,消息可以用多种不同方式在近邻网络代理之间发送。在一个实施例中,发送客户机方代理将消息的目的地址变成另一近邻客户机方代理的地址。在此实施例的一个实现中,发送代理不改变所发送的消息的源地址来匹配其所有地址而是保持消息的源地址例如服务器275。接收所发送的消息的代理保持内部对应于它自己与消息的原始源之间的连接的连接状态。因此,对于接收从近邻代理发送的消息的代理,发送的消息看来似乎是从消息的原始源而不是从近邻代理接收的。
在另一实施例中,通过例如,在近邻代理之间建立的GRE隧道中,将整个消息封装在另一消息中,将消息从代理291发送至近邻代理。在又一实施例中,通过从原始消息中提取有效负载及目的地信息并在TCP、SCTP或代理之间的类似连接上以合适的数据结构发送此有效负载,将消息从发送代理发送至近邻代理。
如上所述,消息一般可以在包括各消息的一个或多个网络分组的检测和发送层、语义请求和响应消息的更高层或在处理的任何居间层处的近邻网络代理之间发送。
虽然图2A-2B示出近邻配置、新连接信息以及在服务器方代理或客户机方代理处发生的发送,类似的技术也可适用于客户机方和服务器方代理两者。因此,消息的客户机至服务器交换能使新连接信息发送至客户机方近邻代理,然后使新连接信息发送至服务器方近邻代理,然后使消息在服务器方代理之间发送以及随后使消息在客户机方代理之间发送。近邻代理的数量以及新连接信息的细节在客户机方以及在服务器方可不同。另外,无论连接是在客户机还是在服务器上被初启,这些技术都可以被适当的使用。
在其它实施例中,代理可能被嵌套。例如,WAN 230可能实际被实现为被客户机方代理和服务器方代理的不同集合包括的实际WAN。对于这类代理嵌套的集合,一对客户机方和服务器方代理可能在WAN的零端、一端或两端上具有非零数目的邻近代理;并且分别地,另一对客户机方和服务器方代理可以在WAN的零端、一端或两端上具有非零数目的近邻代理。这类代理嵌套可延伸至任意深度,不仅仅是上述两层。
图3示出根据本发明的一个实施例的通过近邻网络连接维持的用于传输信息的数据结构的例子300。图3示出由代理基于所接收的新连接消息所维持的近邻信息的一部分。项目301a和301b各包括目标元310和所有者元320。各项目的意思是应向相应的所有者发送在此设备处接收到的发往目标的任何通信。因此,项目301允许近邻接收发往10.3.1.10:1921的通信来代替将其发送至10.4.0.1:7810处的所有代理。项目301b指发往10.3.5.44:2044的通信也应被发送至同一所有代理。(本文中的例子使用RFC1918专用地址来避免对实际网络的任何无意的干扰;当然,公用地址可出现在数据结构中。)
图3只旨在示出所存储的信息的本质及其关系;实际数据结构可能包括其它允许快速搜索、廉价插入/删除、容纳大量信息的集合以及回收老的或未使用的项目的机制。另外,某些实施例将使用附加信息来区分诸如源地址、源端口、协议号、DSCP代码点等项目或其它可容易地从接收的通信中获得的信息。最后,某些实施例将使用图案匹配的形式或部分规范来允许紧凑地表示通信的大类别。所有这些可能的适用对于本领域的技术人员来说都是直接了当的。在图3中部分地示出的“近邻表”可以被存储在代理设备的本地存储器、执行软件代理的计算机的存储器等中。
图4示出根据本发明的一个实施例的初启新连接的方法400。此方法可以由网络中的一个或多个组件执行和/或体现在执行该方法的计算机可读指令中。在步骤410中,代理接收消息。在步骤420中,代理确定此连接是否可以被优化。某些连接由于配置规则可能是不可以优化的,或在适合客户机和服务器的网络位置中可能不能获得对应方代理。如果连接是不可优化的,则在步骤440中,代理通过该连接而不对其进行处理。在其它实施例中,方法400包括在语义请求和响应消息的更高层或在处理的任何居间层处而不是在检测和发送一个或多个包括各消息的网络分组的层处处理消息的步骤。
如果连接可被优化,则在步骤430中,代理确定它是否具有近邻。如果有,则在步骤450中,本文称为“所有者代理”的代理向其每一近邻提供新连接信息。在一个实施例中,可以使用单播、多播或广播技术与近邻代理互通新连接信息。在适当时,某些以其它方式具有近邻资格的代理可以被当作非近邻。
无论它是否具有近邻,在步骤460中,所有者代理开始与其对应方代理一起对连接通信进行优化或转换。
图5示出根据本发明的一个实施例的始于接收消息的代理的用于处理与连接相关联的网络通信的方法。在步骤510中,代理接收消息。在步骤520中,代理确定消息的目的地是否与其近邻表中的一个相匹配,诸如在图3所示的。如果消息的目的地不与近邻表中的任何项目匹配,则过程继续步骤530,在步骤530中,代理正常地处理消息。这可包括向其目的地发送消息并任选地为了调整缓存或加速网络或其它操作的目的而转换消息。
相反,如果在步骤520中确定消息与近邻表中的项目匹配,则代理可重写该消息或其等效物(步骤540)并将其发送至合适的近邻网络代理用于处理(步骤550)。发送可以使用包括地址交换、隧穿以及上述有效负载提取技术在内的各种不同技术来实现。如上所述,方法500的实施例可包括在语义请求和响应消息的更高层、在处理的任何居间层或在包括各消息的一个或多个网络分组的检测和发送层处处理包括一个或多个包的消息。消息可以是包的一部分,每个消息包括一个包,或包括多个包,具体取决于上下文。
在又一实施例中,网络代理可以动态地添加。在一个实现中,新添加的代理正常地接收和处理所有网络通信,好象它们的近邻表为空一样。因此,某些类型的网络事务将由于诸如如上所述的不对称路由的影响和其它网络影响而被干扰。客户机和服务器将通过初启新的网络连接从被干扰的网络事务恢复。新网络连接将被网络代理截取并导致新连接信息被发送至新添加的代理,从而更新其近邻表。
图6示出根据本发明的一个实施例的附加网络600。网络600被示出包括服务器方代理605、610和615的集合。可能存在其它未示出的网络组件。对于其它实施例,服务器方代理集合中的每一个可与一个或多个客户机方代理(为了简明在图6中省略)相关联。客户机方代理与服务器方代理之间的关联使得能进行提高网络性能的变换并有可能执行其它任务。在此网络配置600中,服务器方代理不必与同广域网的连接联机。
网络600包括路由器集合620。路由器的集合620中的每一个与一个或多个广域网连接。截取器模块集合625与路由器集合620连接。如下详述,截取器模块集合625适用于截取网络通信并在必要时将网络通信重定向以保持路由对称。在一个实施例中,路由器集合620中的每一个与截取器模块集合625中的一个相关联。在替换实施例中,路由器和截取器模块可以不同的比率相关联。
截取器模块的集合通过包括诸如网络交换机631、633和635等一个或多个网络交换机及其它连网设备在内的局部网络相互连接以及与服务器方代理605、610和615的集合连接。在图6中标记为“S”的一个或多个服务器的集合640也与局部网络630连接。服务器集合640向一个或多个客户机提供应用程序、信息和服务。为了简明起见,客户机从图6中省略但可与路由器620耦合。
截取器模块集合625保持客户机与服务器集合640之间网络通信的路由对称。例如,客户机向服务器发送初始消息650。初始消息650可以从客户机通过客户机方网络代理并通过广域网(未示出)传达至网络600。消息650可以针对服务器集合640中特定的一个或一般针对服务器集合640或其子集中的任何一个。
在通过路由器集合620中的路由器620(a)接收到初始消息650时,消息650被传递至相关联的截取器模块625(a)。如果需要为与此客户机的这一或者可能是后续通信保持路由对称,则截取器模块625(a)选择合适的服务器方代理来与客户机的客户机方代理相关联。截取器模块625(a)的实施例能以任何数量的方式选择服务器方代理以实现负载平衡或其它目标。示例负载平衡方案可包括循环的、基于负载的、粘滞的、使用IP地址的散列或其它消息特性的映射、或任何其它本领域公知的适合这些操作的用于操纵网络通信的负载平衡的方案。
根据此选择,截取器模块625(a)向所选择的服务器方代理发送初始消息650。另外,截取器模块625(a)向集合625的每一其它截取器模块发送新连接信息消息665并为其本身存储一份此新连接信息的副本。在一个实施例中,新连接信息消息665在网络630上使用单播、多播或广播网络协议与其它截取器模块通信。应理解可以对620(a)/625(a)以外的代理/截取器对进行类似的操作。
在一个实施例中,新连接信息消息665包括一个或多个用于将与相关客户机相关联的网络通信重定向至所选择的服务器方代理的路由表规则。在另一实施例中,路由表规则包括一个或多个用于将网络通信从相关客户机重定向至所选择的服务器方代理的规则。另外,路由表规则包括一个或多个用于将从服务器集合640中的一个或多个发往该客户机的网络通信重定向至所选择的服务器方代理的规则。
在另外的实施例中,向与给定客户机相关联的网络通信分配所选择的服务器方代理的唯一端口。在一个实施例中,使用了自动发现协议,因此客户机方代理和截取器模块学习在所选择的服务器方代理上与哪个端口连接。在另一实施例中,关于客户机方代理和/或截取器模块的一套规则定义服务器代理上适合连接的端口。
一旦集合625中的其它截取器模块已接收到新连接信息消息665,则所有与客户机相关联的网络通信将通过所选择的服务器方代理被重定向。例如,从服务器640(b)发往客户机的消息670将通过局部网络630传播。在到达截取器集合625中的一个时,接收截取器模块将消息670与其存储的客户机的新连接信息相匹配。作为响应,截取器模块将消息670重定向至先前选择的服务器方代理。所选择的服务器方代理将处理和/或转换消息670,然后通过截取器模块集合625中的任何一个截取器模块以及路由器集合620中相关联的一个路由器将所得的消息发送回客户机。在另一个实施例中,新连接信息由以类似的方式处理网络通信的路由器集合620接收。
类似地,从客户机发往服务器集合640中的一个服务器的后续消息680将由截取器集合625中的一个截取器,诸如本例中的截取器625(c)等接收。截取器模块625(c)将消息680与其存储的客户机的新连接信息相匹配。作为响应,截取器模块625(c)将消息680重定向至先前选择的服务器方代理。所选择的服务器方代理将处理和/或转换消息680,然后通过局部网络630将所得的消息发送回服务器集合640中的一个服务器。
在一个替换实施例中,某些或所有网络代理可与截取器模块集成,使得各个组合的单元包括用于处理和转换关联的网络通信的网络代理、以及用于监视网络通信、创建新连接信息并将新连接信息用于将所需的消息重定向至其它独立的网络代理或组合的截取器模块和网络代理单元的截取器模块。在本实施例中,独立的截取器模块还可用于覆盖与广域网的附加连接。
在又一实施例中,网络代理可以从网络动态地移走。近邻代理接收新连接信息并将此信息存储在近邻表中。另外,在此实施例中,近邻代理向所有者代理提供确认消息。如果所有者代理未接收从其一个或多个近邻代理返回的确认,则所有者代理认为不响应近邻代理被停用并能将与不响应近邻代理相关联的项目从其自己的近邻表中清除。
略述的流程用于每一消息明确地由接收代理或一个近邻处理的实施例。在某些实施例中,消息可以由接收代理或由其近邻之一来处理。在以有益于接收代理的方式解决这类选择的这样一个实施例中,消息处理流将包括在接收消息之后以及在检查“近邻所有权”之前用于确定该消息是否与可由接收代理处理的消息匹配的测试。如果该消息可由接收代理处理,则处理将涉及正常处理而无需检查步骤。
虽然已相对于本发明的特定实施例对其进行了讨论,但这些实施例只是本发明的示例而非限定。另外,上述系统体系结构用于示例目的。本发明可以用包括作为独立的应用程序或作为与其它应用程序集成的模块在内的许多不同的形式实现。因此,本发明的范围只由权利要求确定。
Claims (29)
1.一种系统,包括:
连接在局部网络与广域网之间的第一单元,其中所述第一单元适用于至少接收来自客户机的初始消息,并且所述第一单元包括适用于选择用于处理与初始消息相关联的后续消息的网络代理并生成用于标识所述初始消息以及与所述初始消息相关联的后续消息并重定向至所选择的网络代理的连接信息的逻辑;以及
连接在所述局部网络与广域网之间的第二单元,其中所述第二单元适用于接收消息;
其中所述第一单元包括适用于与所述第二单元互通连接信息的逻辑;以及
其中所述第二单元包括适用于使用所述连接信息来确定所接收的消息是否与所述初始消息相关联并响应于确定所接收的消息与所述初始消息相关联将所接收的消息重定向至所选择的网络代理以进行处理的逻辑。
2.如权利要求1所述的系统,其特征在于,所述第一单元和所述第二单元通过局部网络与所述客户机连接。
3.如权利要求1所述的系统,其特征在于,所述第一单元和所述第二单元通过所述广域网与所述客户机连接。
4.如权利要求1所述的系统,其特征在于,所述第一单元包括所选择的网络代理。
5.如权利要求1所述的系统,其特征在于,所选择的网络代理通过所述局部网络与所述第一单元连接。
6.如权利要求1所述的系统,其特征在于,所述第二单元适用于通过修改所接收的消息的目的地址来重定向所接收的消息。
7.如权利要求1所述的系统,其特征在于,所述第二单元适用于使用封装所接收的消息的至少一部分的隧穿协议来重定向所接收的消息。
8.如权利要求1所述的系统,其特征在于,所述第一单元适用于存储所述连接信息,并且所述第一单元包括适用于使用所述连接信息确定后来接收的消息是否与所述初始消息相关联并响应于确定所接收的消息与所述初始消息相关联将所接收的消息重定向至所选择的网络代理以进行处理的逻辑。
9.如权利要求1所述的系统,其特征在于,所选择的网络代理适用于形成与相应的网络代理的关联,所述关联适用于便于在广域网上传送消息。
10.如权利要求9所述的系统,其特征在于,所选择的网络代理适用于处理所接收的消息以产生经转换的消息,所述经转换的消息与先前由所述相应的网络代理接收的消息等效。
11.如权利要求9所述的系统,其特征在于,所选择的网络代理适用于处理所接收的消息以产生经转换的消息,所述经转换的消息针对广域网上的通信被最优化。
12.一种用于管理网络通信的设备,所述设备包括:
第一接口,适用于接收已通过局部网络的网络通信;
第二接口,适用于接收已通过广域网的网络通信;
适用于接收来自附加设备的连接信息的逻辑,其中所述连接信息包括用于标识与第一客户机的初始消息相关联的网络通信的信息以及用于指定网络代理的信息;
适用于使用所述连接信息来标识与所述初始消息相关联的网络通信的逻辑;以及
适用于使用所述连接信息来将所标识的网络通信重定向至由所述连接信息指定的网络代理的逻辑。
13.如权利要求12所述的设备,其特征在于,还包括:
适用于在通过所述第一或第二接口接收的网络通信中标识来自第二客户机的初始消息的逻辑;
适用于选择用于处理与所述第二客户机的初始消息相关联的后续消息的网络代理的逻辑;
适用于为与所述第二客户机的初始消息相关联的网络通信生成连接信息的逻辑,其中所述连接信息包括用于标识与所述第二客户机的所述初始消息相关联的网络通信的信息以及用于指定所选择的网络代理的信息;以及
适用于与至少一个附加设备互通连接信息的逻辑。
14.如权利要求13所述的设备,其特征在于,还包括:
所选择的网络代理;
适用于接收被至少一个附加设备重定向至所选择的网络代理的网络通信的逻辑;以及
适用于提供被至少一个附加设备重定向至所选择的网络代理的网络通信的逻辑。
15.如权利要求14所述的设备,其特征在于,所选择的网络代理适用于为与所述第二客户机的初始消息相关联的网络通信形成与第二网络代理的关联,其中所述关联适用于便于在广域网上传送与所述第二客户机的所述初始消息相关联的网络通信。
16.如权利要求15所述的设备,其特征在于,所选择的网络代理适用于转换与所述第二客户机的所述初始消息相关联的网络通信,其中所述经转换的网络通信等效于先前由所述第二网络代理接收到的网络通信。
17.如权利要求13所述的设备,其特征在于,所述设备适用于通过所述第一接口接收来自所述第二客户机的初始消息。
18.如权利要求13所述的设备,其特征在于,所述设备适用于通过所述第二接口接收来自所述第二客户机的初始消息。
19.如权利要求12所述的设备,其特征在于,所述适用于使用所述连接信息来将所标识的网络通信重定向至由所述连接信息指定的网络代理的逻辑包括:
适用于将所标识的网络通信的目的地址修改成由所述连接信息提供的网络代理的地址的逻辑。
20.如权利要求12所述的设备,其特征在于,所述适用于使用所述连接信息来将所标识的网络通信重定向至由所述连接信息指定的网络代理的逻辑包括:
适用于利用隧穿协议来与由所述连接信息指定的网络代理互通所标识的网络通信的逻辑。
21.在可由客户机和服务器用于在其间传输包括事务的网络中的一种用于确保所有代理具有对事务的所有需要部分的访问权,其中事务包括来自客户机的形成对服务器的客户机请求的一个或多个消息以及来自服务器的形成服务器对所述客户机的响应的一个或多个消息,其中至少一个来自所述客户机的消息可能通过所述所有代理从所述客户机传送至所述服务器,,所述所有代理是被编程为期望这类访问权的代理,所述系统包括:
在所述所有代理中的用于维持连接状态的逻辑;
在所有代理中的用于将连接状态信息传送至近邻代理的逻辑,其中连接状态信息指示由所述所有代理拥有的至少一个事务,且所述近邻代理是能够或可能期望接收作为所述所有代理拥有但没有被定向到所有代理的事务的一部分的的消息的代理;以及
至少一个具有用于跟踪事务所有权的逻辑以及用于在由所跟踪的事务所有权信息指示时将消息传送至所有代理的逻辑的近邻代理。
22.如权利要求21所述的系统,其特征在于,所述所有代理是通过网络的局域部分与至少一个客户机连接的客户机方代理。
23.如权利要求21所述的系统,其特征在于,所述所有代理是通过网络的局域部分与至少一个服务器连接的服务器方代理。
24.如权利要求21所述的系统,其特征在于,所述用于将消息传送至所有代理的近邻代理的逻辑适用于修改由所述近邻代理接收的消息的目的地址。
25.如权利要求21所述的系统,其特征在于,所述用于将消息传送至所有代理的近邻代理的逻辑适用于使用隧穿协议来封装由所述近邻代理接收的消息的至少一部分。
26.如权利要求21所述的系统,其特征在于,所述用于跟踪事务所有权的逻辑包括适用于存储所述连接状态信息的逻辑以及适用于确定由所述近邻代理接收的消息是否与由所述连接状态信息指示的事务相关联的逻辑。
27.如权利要求21所述的系统,其特征在于,还包括:
至少一个适用于形成与所述所有代理的关联的附加代理,其中所述所有代理和所述附加代理各自包括适用于便于在所述网络的至少一部分上通过所述所有代理和所述附加代理在客户机与服务器之间互通消息的逻辑。
28.如权利要求27所述的系统,其特征在于,所述所有代理适用于处理消息以产生经转换的消息,其中所述经转换的消息等效于先前由所述所有代理从所述客户机接收的消息。
29.如权利要求27所述的系统,其特征在于,所述所有代理适用于处理消息以产生经转换的消息,其中所述经转换的消息等效于先前由所述所有代理从所述服务器接收的消息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66336605P | 2005-03-18 | 2005-03-18 | |
US60/663,366 | 2005-03-18 | ||
US11/377,906 | 2006-03-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101189599A true CN101189599A (zh) | 2008-05-28 |
CN100593781C CN100593781C (zh) | 2010-03-10 |
Family
ID=39481151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680013383A Expired - Fee Related CN100593781C (zh) | 2005-03-18 | 2006-03-16 | 连接发送 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100593781C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291335A (zh) * | 2010-06-18 | 2011-12-21 | 日本电气株式会社 | 通信中继设备、通信中继系统和通信中继方法 |
CN103167022A (zh) * | 2013-02-04 | 2013-06-19 | 北京蓝汛通信技术有限责任公司 | 一种数据包传输方法、相关设备及系统 |
-
2006
- 2006-03-16 CN CN200680013383A patent/CN100593781C/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291335A (zh) * | 2010-06-18 | 2011-12-21 | 日本电气株式会社 | 通信中继设备、通信中继系统和通信中继方法 |
CN103167022A (zh) * | 2013-02-04 | 2013-06-19 | 北京蓝汛通信技术有限责任公司 | 一种数据包传输方法、相关设备及系统 |
CN103167022B (zh) * | 2013-02-04 | 2017-04-05 | 北京蓝汛通信技术有限责任公司 | 一种数据包传输方法、相关设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100593781C (zh) | 2010-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9253243B2 (en) | Systems and methods for network virtualization | |
CN104205942B (zh) | 多跳错误恢复 | |
US6466574B1 (en) | Quality of service improvement of internet real-time media transmission by transmitting redundant voice/media frames | |
JP4902635B2 (ja) | 接続転送 | |
US7102996B1 (en) | Method and system for scaling network traffic managers | |
US7653075B2 (en) | Processing communication flows in asymmetrically routed networks | |
US6665304B2 (en) | Method and apparatus for providing an integrated cluster alias address | |
CN101427549B (zh) | 用于网络设备的虚拟串列式结构 | |
US7054948B2 (en) | Collaborative host masquerading system | |
US20060146999A1 (en) | Caching engine in a messaging system | |
CN103618678A (zh) | 自适应多链路聚合的方法、装置及系统 | |
CN101124567A (zh) | 消息传递系统中的缓存引擎 | |
JP2002508123A (ja) | マルチレイヤ・ネットワーク要素用のシステムおよび方法 | |
AU2008333190B2 (en) | Method of forwarding messages over a network and system for implementing the method | |
JPS62502303A (ja) | パケット通信網の相互接続方法 | |
US6611874B1 (en) | Method for improving routing distribution within an internet and system for implementing said method | |
CN105683929A (zh) | 用于数据库和存储器感知路由器的方法和设备 | |
CN100593781C (zh) | 连接发送 | |
CN101674286B (zh) | 一种在单网络接口主机间实现多路径通信的方法 | |
WO2001027772A1 (en) | Load balancing via message source selection | |
Shantaf et al. | A comparison study of TCP/IP and named data networking protocol | |
CN117099356A (zh) | 实例-仿射业务调度 | |
WO2001073573A1 (en) | Load balancing via message source selection | |
Sinicrope et al. | SNA over Frame Relay-The Frame Relay Forum--The APPN Implementers Workshop |
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: 20100310 Termination date: 20160316 |
|
CF01 | Termination of patent right due to non-payment of annual fee |