CN1466840A - 虚拟ip框架和接口方法 - Google Patents

虚拟ip框架和接口方法 Download PDF

Info

Publication number
CN1466840A
CN1466840A CNA018163785A CN01816378A CN1466840A CN 1466840 A CN1466840 A CN 1466840A CN A018163785 A CNA018163785 A CN A018163785A CN 01816378 A CN01816378 A CN 01816378A CN 1466840 A CN1466840 A CN 1466840A
Authority
CN
China
Prior art keywords
packet
sectionalizer
combiner
framework
fragments
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
Application number
CNA018163785A
Other languages
English (en)
Other versions
CN1214595C (zh
Inventor
A����ά
A·贝利维奥
P·安德松
A·弗兰岑
L·亨纳特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN1466840A publication Critical patent/CN1466840A/zh
Application granted granted Critical
Publication of CN1214595C publication Critical patent/CN1214595C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Control Of Electric Motors In General (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Sewage (AREA)

Abstract

一种接口方法和虚拟IP框架(10)。最佳实施例在TP级工作,由此使所述框架能够与运行于TP之上的任何应用配合工作。在多个网络终端(21)中接收输入数据分组和分组片段,为此,路由选择进程为外部路由器提供地址。每个网络终端与多个转发进程(11a-11n)之一相关,并且每个转发进程连接到多个分段器/合并器(12a-12n)。每个转发进程选择单个分段器/合并器来接收具有共同源地址的所有输入数据。然后把输入分组和分组片段发送到所选的分段器/合并器,其中如果需要就将它们重新组装。所选的分段器/合并器标识有效应用服务器(14-17)并向其发送重新组装的输入数据分组。

Description

虚拟IP框架和接口方法
发明背景
本发明的技术领域
本发明涉及通信系统,更具体地说,涉及虚拟因特网协议(IP)框架和接口方法,它提供在多个服务器和分组数据网、如因特网之间的容错和可扩展接口。
相关技术的描述
现在许多公司通过在因特网上进行的商务来构建大部分或全部的收入流。因此,这些公司需要具有极高可靠性的接入和交换技术。如果这些公司失去因特网接入甚至很短的时间,他们会损失大量收入。因此,提高因特网接入技术的容错性是很有必要的。此外,这些类型的公司需要考虑到其数据业务需求增长的网络接入技术。如果他们需要例如获得更大的带宽,他们要求能够容易地做到这一点。因此,也需要一种提供可扩展性的解决方案。
IP领域中现有的不同技术都有各种问题或限制。仅针对容错的系统一般无法与强调可扩展性的系统结合以同时满足两种要求,因为强调可扩展性的系统部分不是容错的,这对整个系统的容错性有负面影响。一般,一种要求对另一种要求进行折衷。
当客户机接入万维网服务器时,例如,浏览器首先得到统一资源定位器(URL)的名称,利用域名服务器(DNS)将其转换成唯一IP地址。唯一IP地址使客户机能够到达服务器,服务器将处理其超文本传送协议(HTTP)请求。因此需要一种将单个IP地址提供给客户机的解决方案。该方案应当提供可扩展性和容错性,并且不应当对客户机强加任何附加要求。此外,该方案不应专门受限于HTTP业务或TCP业务。最好是所述方案可适用于所有类型的IP业务。
市面上现有循环DNS,提供一定程度的可扩展性。循环DNS每次为相同的URL名提供不同的IP地址。DNS可以使用任何算法来平衡不同服务器之间的负载。可以增加额外的服务器,并且DNS将把负载分配到大量服务器上。但是,循环DNS方案具有如下限制:客户机必须作出DNS请求,以便确保平衡分配。客户机能够缓存IP地址,并且对于以后的接入,可以使用缓存的IP地址而不是从DNS获取新IP地址。这可能损害可扩展性特征,因为无论何时客户机缓存DNS所返回的IP地址,循环DNS都无法保证分配。如果客户机缓存服务器IP地址而服务器后来产生错误,则系统的容错性也会受到不利影响。因此,客户机的行为限制了可扩展性和容错性。最好是提供对客户机没有约束的可扩展性和容错性。因此,循环DNS是不够的。
另一方案是为每条消息选择到焦点的路由,焦点将分组重定向到不同的终端主机。WO 99/33227中说明了这种类型的方案,其中采用了网络流交换机(NFS)。但是,这种方案不允许系统容量增加,因为NFS是一个限制因素。NFS的实现类似于具有网卡和由CPU控制的因特网控制器的标准路由器,业务量在CPU和卡之间传输。因此,CPU中的容量限制可能限制整个系统容量。NFS也是大大降低系统的容错性的单故障点。
在EP 0 865 180 A2中,描述了把请求分配给多个服务器的两种备选方案,但是没有一种备选方案提供可扩展性。在一种备选方案中,用调度器来为呼入业务定向。路由器请求调度器确定哪个服务器应当处理该业务。调度器是单点,当其容量被完全利用时,就无法增加额外的服务器。调度器还为数据选择路由,所以它是单故障点,从而降低了系统的容错性。另一种备选方案采用通过总线进行广播。但是,如果总线带宽有限,则系统的可扩展性同样受到限制。
另一种称作LocalDirector的产品还提供单焦点,它确保在分组到达终端主机之前正确的分组重组。LocalDirector用作VIP终端并且将请求转发给实际的终端主机,这是采用如下方式之一进行的:
1.MAC地址转换。所有终端主机支持VIP终端。LocalDirector利用这个终端主机的MAC地址向特定的终端主机发送IP数据报。然后终端主机可以直接向始发端反方向发送。
2.隧道技术。在另一协议层将IP数据报封装,以便将它们转发给终端主机。终端主机必须支持这种封装。然后,终端主机可以直接向始发端反向发送或通过LocalDirector。
3.网络地址转换(NAT)。LocalDirector修改IP信头,用目标终端主机的实际IP地址代替VIP地址。终端主机必须向LocalDirector反向发送。
诸如LocalDirector之类的实现存在的问题是它们采用“热待机”技术来解决容错问题。热待机系统维持一套完整功能的辅助系统,该辅助系统准备在主系统出现故障时接管。这满足了容错性,但是没有满足可扩展性,因为主或辅助系统的容量限制了系统容量。因此,采用LocalDirector的体系结构不能满足可扩展性要求。
为了克服现有方案的缺点,最好是具有虚拟IP(VIP)框架,它提供多个服务器与分组数据网、如因特网之间的容错和可扩展接口。此外,框架具有对客户机、应用设计者以及现有网络基础设施的有限影响。最终,框架可用于多种协议。本发明提供这样一种框架。
发明概述
本发明是提供服务器与网络接口的高容错性和线性可扩展性的接口方法和框架。所述框架对于客户机和服务器是透明的,并且对外围的网络基础设施影响最小。此外,由于最佳实施例在IP级工作,本发明可以通过在IP之上运行的任何应用程序来工作。
因此,一方面,本发明是实现多个应用服务器与分组数据网(PDN)之间接口的容错和可扩展方法。对于输入消息,所述方法通过在多个网络终端中接收来自PDN的输入数据分组和分组片段而开始。每个网络终端与多个转发进程其中之一相关,每个转发进程连接到多个分段器/合并器。然后,每个转发进程选择单个分段器/合并器来接收具有共同源地址的所有输入数据分组和分组片段。然后,向所选择的分段器/合并器发送具有共同源地址的输入数据分组和分组片段,其中输入数据分组是由从转发进程接收的输入分组片段重新组装的。每个分段器/合并器又连接到多个应用服务器,所选的分段器/合并器识别一个有效应用服务器以接收重新组装的输入数据分组。然后,所选的分段器/合并器向有效应用服务器发送重新组装的输入数据分组。
对于输出消息,所述方法在有效的应用服务器从多个分段器/合并器中选择一个分段器/合并器时开始。然后,从有效应用服务器向所选的分段器/合并器发送输出数据分组,并且由所选的分段器/合并器从多个转发进程中识别单个转发进程。然后,所选的分段器/合并器向所识别的转发进程发送输出数据分组,其中所识别的转发进程将输出数据分组与网络终端相联。然后,从相联的网络终端向PDN发送输出数据分组。
另一方面,本发明是用于提供容错和可扩展接口的框架,它从PDN接收输入数据分组和分组片段并将重新组装的分组传送到多个应用服务器。所述框架包括从PDN接收输入数据分组和分组片段的多个网络终端以及多个与这些网络终端相关的转发进程。每个转发进程包括用于从多个合并器中识别单个合并器以接收具有共同源地址的所有输入数据分组和分组片段的装置。每个合并器包括用于从输入分组片段中重新组装输入数据分组的装置以及用于识别有效应用服务器以接收重新组装的输入数据分组的装置。多个进程间通信(IPC)链路连接每个合并器与每个应用服务器,并且多个IPC链路连接每个分段器与每个转发进程。所述框架还可包括路由选择进程,它包含可用来到达特定客户机IP地址的VIP转发器列表。所述路由选择进程为PDN中的外部路由器提供网络终端地址。
又一方面,本发明是用于提供容错和可扩展接口的框架,它从多个应用服务器接收输出数据分组并将输出数据分组和分组片段传送到PDN。多个IPC链路将各应用服务器连接到多个分段器。始发数据分组的应用服务器选择分段器并将输出数据分组发送到所选择的分段器。每个分段器包括用于将输出数据分组分段成输出分组片段的装置以及用于从多个转发进程中识别一个转发进程的装置。路由选择进程可用来向分段器提供有关输出数据分组的输出路由选择信息。多个IPC链路连接各个分段器与各个转发进程,而且所选择的分段器向所识别的转发进程发送输出数据分组和分组片段,以便转发到网络终端。然后所述网络终端将输出数据分组和分组片段提供给PDN。
附图简介
参照下列各图,结合所附说明,本领域的技术人员可以更好地理解本发明并且更加明白其大量的目的和优点,图中:
图1是本发明的虚拟IP(VIP)框架的简化框图;
图2A和2B是说明当在VIP框架中从分组数据网接收输入消息时、本发明的方法的最佳实施例的步骤的流程图;
图3是说明用于维护将IPC端口与VIP地址/服务器套接字组合相联系的更新列表的步骤的流程图;以及
图4是说明当从VIP框架向分组数据网发送输出消息时、本发明的方法的最佳实施例的步骤的流程图。
实施例的详细描述
本发明是在多个服务器与分组数据网(PDN)之间提供容错和可扩展接口的框架。该框架可与多种协议一起使用,并且对用户和PDN的现有基础设施的影响有限。在最佳实施例中,所述框架是虚拟IP(VIP)框架,可与因特网协议(IP)之上运行的任何更高级的协议一起使用。例如,VIP框架可用于与因特网的接口,服务器在因特网协议(IP)之上运行的传输控制协议(TCP)、用户数据报协议(UDP)、文件传送协议(FTP)或者超文本传送协议(HTTP)上运行。因此,本发明设计成在IP级运行,同时提供容错性和可扩展性。这样,所述方案可用于所有运行于IP之上的其它应用。
此外,所述框架对于该框架以外的进程是透明的,并且客户机和服务器都不知道VIP框架。在该框架之上的应用继续照常运行,并且应用设计者继续使用来自操作系统的相同应用程序接口(API)来打开套接字、关闭套接字、读取数据等等。应用对于它们以下的协议层看不出差异。从网络的观点来看,外部路由器将该框架视为只不过是更多路由器并且照常与该框架接口。
通过VIP框架,可以启动所需数量的万维网服务器来处理业务需求,所有的万维网服务器服务于相同的VIP地址。因此,集中在VIP框架中定义VIP地址,以供所有服务器使用。但是,所述框架能够支持一个以上的VIP地址,并且能够主持一个以上的网站。因此,在路由选择进程中设置局部路由选择表,它包含可用来到达特定客户机IP地址的VIP转发器11的列表。
当启动万维网服务器时,软件使用来自操作系统的API来打开用作收听端口的TCP服务器套接字。API中使用的IP地址可被设置成“全部”可用IP地址或者可被明确地设置。在诸如Jigsaw(万维网服务器平台)的程序中,有各服务器的配置文件,告诉软件当打开这个服务器套接字时使用哪个IP地址。Jigsaw提供样本HTTP1-1实现和在Java中实现的先进体系结构之上的各种特征。另一种API使服务器能够发现在特定主机上可以服务于哪个IP地址。因此,通过这种API使所支持的VIP地址的列表在该框架中的所有处理器上可用。这样,VIP服务器套接字可以在框架中的任何处理器上启动。
VIP框架还使网络容量能够通过添加更多网卡而得到扩展。重要的是注意:网络容量增加不应被服务器容量增加限制着。换言之,服务器软件的存储单元应当与网络接口卡的存储单元脱开联系。因此,与先有技术的系统不同,先有技术的系统假定IP栈终止于TCP服务器套接字所有者驻留的同一处理器上,在VIP框架中,IP栈不必在应用要服务于请求的同一处理器上终止。
图1是本发明的虚拟IP(VIP)框架10的简化框图。VIP框架提供分布式IP栈,它包括三种基本进程类型:VIP转发、分段/合并以及路由选择。这些被表示成多个VIP转发器11a到11n、多个分段器/合并器12a到12n以及路由选择进程13。路由选择进程包括局部路由选择表,其中含有可用来到达特定客户机IP地址的VIP转发器11的列表。路由选择进程包含对所有处理器是公共/全局的、但也可通过路由选择进程的局部示例用在各处理器上的信息。图中用八边形表示这些进程;黑色圆圈表示网络接口卡、如重新为IP分组选择路由的以太网卡;三角形表示采用内部进程间通信(IPC)协议的接口。还可利用执行相同功能的其它协议。
多种万维网服务器、如HTTP-1(14)、HTTP-2(15)、HTTP-3(16)以及HTTP-4(17)可通过IPC连接到分段器/合并器12。HTTP-1和HTTP-2表示成分别运行于分开的处理器18和19上,而HTTP-3和HTTP-4表示成运行于相同的处理器20上。虽然只表示了四个服务器,但是所述框架是可扩展的,可以添加更多的服务器以便增加系统容量。此外,虽然仅表示了HTTP服务器,但是在顶部的应用可包括运行于IP上的任何服务器应用,诸如万维网服务器或用于文件传送的FTP服务器。
VIP转发器与网络终端、如以太网卡相关,后者连接到多个外部路由器22-24。外部路由器又连接到分组数据网(PDN)25、如企业内部网或因特网。每个外部路由器可以连接到任何以太网卡(以及相关的VIP转发器);每个VIP转发器可以连接到任何分段器/合并器;以及每个分段器/合并器可以连接到任何服务器。例如,所画的实线表示从外部路由器23到VIP转发器11a、到分段器/合并器12a以及到HTTP-2服务器15的连接。
对于每个物理上具有连接到因特网的网络终端(例如以太网卡)的处理器,VIP转发进程驻留在该处理器上。实际上,用作VIP终端的每个卡具有相应的VIP转发进程。卡可在运行时为VIP终端配置。每个VIP终端可以端接路由选择进程13中定义的所有IP地址。或者可以指定某些VIP终端仅端接特定的VIP地址。
应当指出,网络终端21被配备IP地址,该地址是局部(按处理器)定义的,与这种终端是否用于某个VIP地址无关。采用例如路由选择信息协议(RIP),路由选择进程13通知外部路由器22-24关于哪些终端支持VIP地址。本发明的可扩展性部分来自以下事实:可以有多个物理终端、如可能在多个不同处理器上的以太网卡。通常,一个IP地址表示一个卡或IP终端。通常,对于每个以太网地址,指定不同的IP地址。本发明也是如此。外部路由器将各个卡视为不同的地址。所以,VIP框架将外部路由器看作如网络中的其它路由器一样,它们按照需要为数据选择路由。一旦数据进入框架中,以太网层接收数据并且验证其层-1信息。当数据进入IP栈时,该栈是分布式的。
图2A和2B是说明当在VIP框架10中从PDN 25接收输入消息时、本发明的方法的最佳实施例的步骤的流程图。首先参照图2A,在步骤31,分组/片段从PDN(企业内部网/因特网)25到达外部路由器22-24。如上所述并且如步骤32中所说明的,路由选择进程13通知外部路由器哪个终端支持这些分组中指明的VIP地址。在步骤33,把分组/片段发送到支持的网络终端21及其相关的VIP转发器11。但是,由于分组可能已被分段(分割成较小的帧),各片段可能采取不同的路由进入VIP框架。所接收的片段必须在它们向上送到TCP和应用层之前被合并(重新组装)。分组的重新组装必须在共同的位置发生。重新组装无法由任何单个VIP转发进程来执行,因为该进程可能不知道所有分段的帧。因此,输入分组的重新组装在分段器/合并器级12执行。
利用例如IPC把VIP转发器11接收的所有分组转发到预定的分段器/合并器12,即使分组不需要任何重新组装(合并),也是如此。为了避免在框架中制造瓶颈,本发明创建分段器/合并器进程的多个示例并且它们总是激活的。例如,框架可包括256个进程示例。这些分段器/合并器进程示例分布在框架中,并且运行在多个处理器上。例如可能在两个处理器中的每个上运行128个示例,4个处理器中的每个上运行64个示例,或者在极端情况下,256个处理器中的每个上运行1个示例。数字256仅作为举例,在实践中,可以有更多或更少数目的示例。如果需要,可以增加或减小该数目。
来自相同源的所有IP分组(包括各个分组片段)包含相同的源IP地址。在步骤34,源IP地址用于确定性函数计算中,以便确定哪个分段器/合并器示例12要用来重新组装分组。通过确定性函数计算,在步骤35中,所有来自特定源IP地址的分组总是被发送到相同的分段器/合并器进程示例。所有VIP转发进程示例11利用这个相同的确定性函数;因此,确保所有来自特定源IP地址的分组到达相同的分段器/合并器。在最佳实施例中,确定性函数将完整源地址的值混编成0到n-1之间的值(其中n是分段器/合并器示例的数目)。或者,完整源地址、目的地址或者目的端口可用作该函数的输入,只要能得到可预测结果。
如果分段器/合并器示例出现故障,则在同一处理器或框架中另一处理器上自动重新启动它。如果VIP转发示例出现故障,则自动在同一处理器上重新启动它。路由选择进程13更新外部路由器22-24,使得如果故障持续下去,则排除失效的VIP转发示例。因此,所述框架同时提供了容错性和线性可扩展容量增加。
在步骤36,如果需要的话,分段器/合并器12重新组装各分组。一旦IP分组被重新组装,则可以被向上发送到应用服务器。但是,由于VIP框架可以与多种应用服务器一起工作,所以分段器/合并器进程12必须首先为目的VIP地址识别有效应用服务器。在步骤37,分段器/合并器从分组中提取目的VIP地址。然后,此处理转到图2B,步骤41,这里,分段器/合并器维护将IPC端口与VIP地址/服务器套接字组合相联系的更新的服务器套接字列表,下面结合图3来更详细地说明这种处理。在步骤42,分段器/合并器从服务器套接字列表中识别一个或多个有效应用服务器。如是在步骤43中确定识别了一个以上的有效应用服务器,则处理转到步骤44,这时分段器/合并器利用诸如循环选择或负载平衡之类的处理来选择单个服务器。然后,处理转到步骤45,这时分段器/合并器利用IPC将重新组装的分组发送到所选的服务器。
现在参照图3,图中表示了一个说明用于维护将IPC端口与VIP地址/服务器套接字组合相联系的更新列表的步骤的流程图。在步骤51,注意到所有分段器/合并器在框架内公布IPC端口名称。当在步骤52中服务器使用API打开用于一个VIP地址的服务器套接字(例如80)时,系统调用确定它是用于一个VIP地址的套接字。在步骤53,框架请求分段器/合并器之一用这个新的服务器套接字来更新IPC端口列表。对于VIP地址/服务器套接字的相同组合,可能有许多IPC端口。因此,在步骤54,服务器套接字列表是分布的并且在所有分段器/合并器之间共享。当来自任何源IP地址的分组到达一个分段器/合并器时,处理从分组中抽取目的VIP地址和目的套接字(例如80)。然后,分段器/合并器通过服务器套接字列表找到有效的应用服务器。如果多个服务器可服务于这个VIP地址和服务器套接字组合,则分段器/合并器选择其中之一。例如,如果有六个不同的处理器,FTP服务器为此VIP地址运行于其上,则分段器/合并器选择其中之一。所述选择可基于循环选择或者可提升为考虑处理器负载、延迟或其它因素。一旦进行连接,用于此连接的所有其它分组都返回到该服务器并且完成其事务处理。
图4是说明当输出消息从VIP框架发送到PDN时、本发明的方法的最佳实施例的步骤的流程图。当应用服务器、如HTTP-2 15需要建立其本身和远程客户机之间的套接字时,它首先在步骤61中打开客户机套接字。这个客户机套接字由应用与用作远程IP地址的重新组装点的分段器/合并器12a之间的受监控IPC链路来表示。在步骤62中可以通过相同的确定性函数来识别分段器/合并器,该函数由VIP转发器用来针对输入消息识别分段器/合并器。在步骤63,系统调用确定哪个分段器/合并器用于这个特定远程IP地址并且请求分段器/合并器建立IPC受监控链路。
一旦建立IPC受监控链路,服务器和客户机可以使用新的客户机套接字来互相通信。如上所述,发到服务器的客户机分组通过任何VIP转发器11到达该框架中,并且通过客户机特定的分段器/合并器12和受监控IPC链路转发到服务器应用。在步骤64中,发到客户机的服务器分组经由受监控IPC链路从应用服务器以隧道技术传送到分段器/合并器12。在步骤65,分段器/合并器在需要时将分组分段,并且在步骤66,使用路由选择进程13中的路由选择表来确定应当使用哪个输出路由。路由选择表是局部表,它包括可用来到达特定客户机IP地址的VIP转发器11的列表。例如,对于内部网可能有第一个路由,对于外部网可能有另一路由。路由选择进程可以集中在单个处理器上,或者可以是分布式的,即路由选择进程运行于多个处理器上。路由选择进程可能返回VIP转发器列表,或者可能返回由循环或负载平衡程序选择的特定VIP转发器。为了使局部可用的VIP转发器列入优先地位,用于局部可用的VIP转发器的路由选择表条目具有较低的METRIC值。在步骤67,分组通过网络终端21和外部路由器22-24传送到PDN 25。
从以上描述中可以看出,VIP框架使外部实体可以将整个框架视为单个IP地址,同时提供高度的可扩展性和容错性。对于可扩展性,可以在VIP框架中任何层添加额外的进程。如果存在大量事务,则例如可以添加更多的服务器而不影响VIP框架的实现。如果有足够多的服务器,但是带宽存在问题,则可以添加更多的VIP转发器。如果到路由器的中继线的容量超过,则可以添加另一中继线而不必改变任何VIP框架基础设施。
对于容错性,可以绕过失效的进程来选择路由,因为存在多个处理器上运行的各进程的大量示例。在VIP转发层,在端口上的以太网卡与路由器之间有物理连接。如果VIP转发进程11失效,则可以绕过失效的进程将输出消息送到外部路由器22-24。对于输入消息,外部路由器检测故障并且将分组发送到可工作的VIP转发进程。在分段器-合并器级,进程的每个示例在VIP框架中具有唯一的“名称地址”。因此,例如运行在处理器1或15上的这个进程的特定示例总是可以找到。如果示例失效并且随后被重新启动,则它具有相同的身份。因为它具有唯一身份,所以把消息返送回同一示例。
同样对容错性起作用的是以下事实:所有状态依赖关系已被限制或排除。也就是说,如果消息为某一事务进入客户机和服务器位置、比如分段器-合并器和HTTP服务器中的两个进程之间,并且分段器-合并器进程失效,则服务器在几秒内发回消息,说明它具有悬挂的事务。当消息回来时,失效的分段器-合并器进程已经重新启动,或者在相同处理器上或者在VIP框架中的不同处理器上。分段器-合并器则继续该事务处理并且开始把分组转发到任何在分段器-合并器失效时激活的进程上。因此,信息未保存在分段器-合并器中;它是无国籍的。
这样,风险仅限于丢失事务,这是在进程失效时建立的。但是,诸如TCP之类的协议具有纠错机制并且如果片段丢失就重新进行传输尝试。但是,本发明不限于TCP或进行重传尝试的其它协议。例如,UDP本质上不具有重传能力,因为不必要保证传输的发送。在这种情况下,VIP框架与协议要求是一致的。
因此,框架的优点包括服务器的线性可扩展性、网络接口的线性可扩展性以及高容错性。框架对于客户机和服务器是透明的,并且对外围PDN基础设施具有最小的影响。此外,由于最佳实施例在IP级工作,所以可以在(UDP、HTTP、FTP等)上运行许多不同的应用。应当指出,本发明不限于第二代IPv4,而且还可用于第三代IPv6。
另外,本发明不限于IP。它也可以用于其它协议,只要它们采用标识消息的信头和包含消息内容的部分。例如,在电信中,采用7号信令系统(SS7)协议,并且本发明可通过SS7来实现以提供电信网络中的容错性和可扩展性,不必修改成千上万的互相产生业务量的节点。
所述框架可以在应用特定层以下的协议栈中的任何级实现。最佳实施例是在IP层实现的,以便拓宽本发明的适用性并且向运行于IP上的所有协议提供好处。如果想向特定应用或协议、如HTTP提供好处,所述框架可以在更高级实现。
因此,可以相信,从上述描述中可以明白本发明的操作和结构。虽然所示和所描述的框架和方法的特征是最佳的,但是,容易理解,只要不背离如以下权利要求中定义的本发明的范围,可以进行各种变化和修改。

Claims (17)

1.一种用于在多个应用服务器与分组数据网(PDN)之间提供容错和可扩展接口的框架,所述框架包括:
多个网络终端,接收来自所述PDN的输入数据分组和分组片段,并且向所述PDN发送输出数据分组和分组片段;
多个分段器/合并器,向所述应用服务器发送输入数据分组并且从所述应用服务器接收输出数据分组,各个所述分段器/合并器包括:
用于将输入分组片段重新组装成输入数据分组的装置;
用于从所述多个应用服务器中识别有效应用服务器以接收所述重新组装的输入数据分组的装置;
用于将输出数据分组分段成输出分组片段的装置;以及
用于从多个转发进程中识别一个转发进程以接收输出数据分组和分组片段的装置;
多个转发进程,每个转发进程与多个网络终端之一相联系,每个所述转发进程包括用于从多个分段器/合并器中识别单个分段器/合并器以接收所有具有共同源地址的输入数据分组和分组片段的装置;
在各转发进程与各分段器/合并器之间的多个进程间通信(IPC)链路;以及
在各分段器/合并器与各个应用服务器之间的多个IPC链路。
2.如权利要求1所述的框架,其特征在于,所述框架是在应用服务器级以下的任何协议级实现的。
3.如权利要求2所述的框架,其特征在于,所述框架是在因特网协议(IP)级实现的,而且所述框架是虚拟IP(VIP)框架,它支持运行IP协议所支持的任何协议的应用服务器。
4.如权利要求3所述的框架,其特征在于,所述PDN是因特网,而所述网络终端是以太网卡。
5.如权利要求2所述的框架,其特征在于,所述框架是支持运行SS7所支持的任何协议的应用服务器的7号信令系统(SS7)框架。
6.如权利要求1所述的框架,其特征在于,所述分段器/合并器使所述应用服务器能够打开和关闭套接字并且发送和接收数据分组,而不用修改应用服务器。
7.如权利要求1所述的框架,其特征在于还包括路由选择进程,所述进程包括所述框架中的地址表并且为PDN中的外部路由器提供所述网络终端的地址。
8.如权利要求7所述的框架,其特征在于,所述路由选择进程中的表为特定网络终端指定特定框架地址。
9.如权利要求7所述的框架,其特征在于,所述网络终端与所述PDN中的外部路由器进行通信,并且对外部路由器而言看上去像是附加的网络路由器。
10.如权利要求7所述的框架,其特征在于,所述路由选择进程包括路由选择表,它为分段器/合并器提供有关输出数据分组的输出路由选择信息。
11.如权利要求10所述的框架,其特征在于,所述输出路由选择信息包括所述多个转发进程之一的身份,其中所述分段器/合并器应当发送输出数据分组和分组片段。
12.一种用于提供容错和可扩展接口的框架,它从分组数据网(PDN)接收输入数据分组和分组片段并且将重新组装的分组传送给多个应用服务器,所述框架包括:
多个网络终端,从所述PDN接收输入数据分组和分组片段;
多个合并器,向所述应用服务器发送输入数据分组,每个所述合并器包括:
用于从输入分组片段中重新组装输入数据分组的装置;以及
用于从多个应用服务器识别有效应用服务器以便接收所述重新组装的输入数据分组的装置;
多个转发进程,每个转发进程与多个网络终端之一相联系,每个所述转发进程包括用于从多个合并器中识别单个合并器以接收所有具有共同源地址的输入数据分组和分组片段的装置;
在各转发进程与各分段器/合并器之间的多个进程间通信(IPC)链路;以及
在各分段器/合并器与各个应用服务器之间的多个IPC链路。
13.一种用于提供容错和可扩展接口的框架,它从多个应用服务器接收输出数据分组并且将输出数据分组和分组片段传送给分组数据网(PDN),所述框架包括:
多个转发进程,
多个分段器,从所述应用服务器接收输出数据分组,每个所述分段器包括:
用于将输出数据分组分成输出分组片段的装置;以及
用于从多个转发进程识别一个转发进程以便将输出数据分组和分组片段转发到网络终端的装置;
多个网络终端,把输出数据分组和分组片段发送给所述PDN,每个所述网络终端与所述多个转发进程之一相联系;
在各分段器与各应用服务器之间的多个进程间通信(IPC)链路;以及
在各分段器与各转发进程之间的多个IPC链路。
14.一种实现多个应用服务器与分组数据网(PDN)之间接口的容错和可扩展方法,所述方法包括以下步骤:
在多个网络终端中从所述PDN接收输入数据分组和分组片段;
将每个所述网络终端与多个转发进程其中之一相联系;
将每个转发进程与多个分段器/合并器相连;
通过每个转发进程来选择单个分段器/合并器以接收所有具有共同源地址的输入数据分组和分组片段;
把所述具有共同源地址的输入数据分组和分组片段发送到所选的分段器/合并器;
由所选的分段器/合并器把从所述转发进程接收的输入分组片段重新组装成输入数据分组;
把每个所述分段器/合并器连接到多个应用服务器;
由所选的分段器/合并器从所述多个应用服务器中识别一个有效应用服务器以接收所述重新组装的输入数据分组;以及
从所选的分段器/合并器向所述有效应用服务器发送所述重新组装的输入数据分组。
15.如权利要求14所述的容错和可扩展方法,其特征在于还包括以下步骤:
由所述有效应用服务器从所述多个分段器/合并器中选择一个分段器/合并器;
从所述有效应用服务器向所选的分段器/合并器发送输出数据分组;
由所选的分段器/合并器从所述多个转发进程中识别单个转发进程;
从所选的分段器/合并器向所述识别的转发进程发送所述输出数据分组;
由所述识别的转发进程将所述输出数据分组与网络终端相联系;以及
从所述相联系的网络终端向所述PDN发送所述输出数据分组。
16.如权利要求15所述的容错和可扩展方法,其特征在于还包括通过所述选择的分段器/合并器将所述输出数据分组分成输出分组片段。
17.如权利要求16所述的容错和可扩展方法,其特征在于,将所述输出数据分组从所选的分段器/合并器发送到所识别的转发进程的步骤还包括把输出分组片段从所选的分段器/合并器发送到所识别的转发进程。
CNB018163785A 2000-09-28 2001-09-26 虚拟ip框架和接口方法 Expired - Lifetime CN1214595C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/675,035 US6731598B1 (en) 2000-09-28 2000-09-28 Virtual IP framework and interfacing method
US09/675035 2000-09-28

Publications (2)

Publication Number Publication Date
CN1466840A true CN1466840A (zh) 2004-01-07
CN1214595C CN1214595C (zh) 2005-08-10

Family

ID=24708802

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018163785A Expired - Lifetime CN1214595C (zh) 2000-09-28 2001-09-26 虚拟ip框架和接口方法

Country Status (8)

Country Link
US (1) US6731598B1 (zh)
EP (1) EP1320977B1 (zh)
JP (1) JP2004510394A (zh)
CN (1) CN1214595C (zh)
AT (1) ATE424081T1 (zh)
AU (1) AU2001295309A1 (zh)
DE (1) DE60137782D1 (zh)
WO (1) WO2002028048A2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1708139B (zh) * 2004-06-11 2010-08-11 华为技术有限公司 虚拟交换机系统
CN101035082B (zh) * 2007-04-28 2010-09-22 杭州华三通信技术有限公司 分片报文重组方法及接口板
CN101026622B (zh) * 2007-01-12 2010-10-06 华为技术有限公司 分布式系统对象请求传输方法、设备和分布式系统
CN101178652B (zh) * 2006-11-07 2010-10-13 国际商业机器公司 简化单个操作系统中软件实体之间ip通信的方法和系统
CN101099352B (zh) * 2005-02-19 2012-07-04 思科技术公司 用于为虚拟专用网过量预订边缘节点的技术
CN113268316A (zh) * 2021-04-19 2021-08-17 广东荟萃网络科技有限公司 基于地址转换的多活动进程数据交换系统及其工作方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3557998B2 (ja) * 2000-04-28 2004-08-25 日本電気株式会社 フラグメンテーション処理デバイスおよびこれを用いたフラグメンテーション処理装置
SE0004178D0 (sv) * 2000-11-14 2000-11-14 Ericsson Telefon Ab L M Network requested packet data protocol context activation
AU2002239208A1 (en) 2002-03-22 2003-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Reducing transmission time for data packets controlled by a link layer protocol comprising a fragmenting/defragmenting capability
US8051176B2 (en) 2002-11-07 2011-11-01 Hewlett-Packard Development Company, L.P. Method and system for predicting connections in a computer network
US7647384B2 (en) * 2002-11-07 2010-01-12 Hewlett-Packard Development Company, L.P. Method and system for managing fragmented information packets in a computer network
ES2244903T3 (es) * 2003-05-23 2005-12-16 Alcatel Metodo y sistema para crear un meta-modelo independiente del protocolo en un sistema de gestion de red en una red de telecomunicaciones.
US20050165932A1 (en) * 2004-01-22 2005-07-28 International Business Machines Corporation Redirecting client connection requests among sockets providing a same service
US7633855B2 (en) 2005-11-03 2009-12-15 Cisco Technology, Inc. System and method for resolving address conflicts in a network
CN101267280B (zh) * 2008-04-18 2011-01-26 清华大学 用于片上网络的一种基于学习的自适应容错方法
CN101510901B (zh) * 2009-02-19 2011-11-16 杭州华三通信技术有限公司 一种分布式设备间的通信方法、通信设备和通信系统
WO2012007793A1 (en) 2010-07-13 2012-01-19 Telefonaktiebolaget L M Ericsson (Publ) Systems and methods recovering from the failure of a server load balancer
EP2803178B1 (en) 2012-01-12 2018-04-11 Telefonaktiebolaget LM Ericsson (publ) Systems and methods for scalable and resilient load balancing
CN103809952B (zh) * 2012-11-14 2018-07-27 腾讯科技(深圳)有限公司 一种网络平台展示富文本消息的方法和装置
US10757166B2 (en) * 2018-11-20 2020-08-25 International Business Machines Corporation Passive re-assembly of HTTP2 fragmented segments

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6865610B2 (en) * 1995-12-08 2005-03-08 Microsoft Corporation Wire protocol for a media server system
US6073176A (en) * 1996-07-29 2000-06-06 Cisco Technology, Inc. Dynamic bidding protocol for conducting multilink sessions through different physical termination points
US6470389B1 (en) 1997-03-14 2002-10-22 Lucent Technologies Inc. Hosting a network service on a cluster of servers using a single-address image
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US6266335B1 (en) 1997-12-19 2001-07-24 Cyberiq Systems Cross-platform server clustering using a network flow switch
GB2338870A (en) 1998-06-01 1999-12-29 Chen Yong Cong Network of distributed, non-permanent, and human interactive web servers
US6373838B1 (en) * 1998-06-29 2002-04-16 Cisco Technology, Inc. Dial access stack architecture
US20020010866A1 (en) * 1999-12-16 2002-01-24 Mccullough David J. Method and apparatus for improving peer-to-peer bandwidth between remote networks by combining multiple connections which use arbitrary data paths

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1708139B (zh) * 2004-06-11 2010-08-11 华为技术有限公司 虚拟交换机系统
CN101099352B (zh) * 2005-02-19 2012-07-04 思科技术公司 用于为虚拟专用网过量预订边缘节点的技术
CN101178652B (zh) * 2006-11-07 2010-10-13 国际商业机器公司 简化单个操作系统中软件实体之间ip通信的方法和系统
CN101026622B (zh) * 2007-01-12 2010-10-06 华为技术有限公司 分布式系统对象请求传输方法、设备和分布式系统
CN101035082B (zh) * 2007-04-28 2010-09-22 杭州华三通信技术有限公司 分片报文重组方法及接口板
CN113268316A (zh) * 2021-04-19 2021-08-17 广东荟萃网络科技有限公司 基于地址转换的多活动进程数据交换系统及其工作方法

Also Published As

Publication number Publication date
AU2001295309A1 (en) 2002-04-08
ATE424081T1 (de) 2009-03-15
US6731598B1 (en) 2004-05-04
JP2004510394A (ja) 2004-04-02
CN1214595C (zh) 2005-08-10
EP1320977A2 (en) 2003-06-25
EP1320977B1 (en) 2009-02-25
WO2002028048A2 (en) 2002-04-04
DE60137782D1 (de) 2009-04-09
WO2002028048A3 (en) 2002-09-19

Similar Documents

Publication Publication Date Title
CN1214595C (zh) 虚拟ip框架和接口方法
US11522734B2 (en) Method for controlling a remote service access path and relevant device
US7577164B2 (en) Network architecture and methods for transparent on-line cross-sessional encoding and transport of network communications data
US6032193A (en) Computer system having virtual circuit address altered by local computer to switch to different physical data link to increase data transmission bandwidth
US7346702B2 (en) System and method for highly scalable high-speed content-based filtering and load balancing in interconnected fabrics
EP1234246B1 (en) System and method for network access without reconfiguration
US8406240B2 (en) Packet fragmentation prevention
US7292571B2 (en) Load balancing with direct terminal response
US8130755B2 (en) Load balancing with direct terminal response
US7542476B2 (en) Method and system for manipulating IP packets in virtual private networks
US20040260745A1 (en) Load balancer performance using affinity modification
US20060123130A1 (en) Decoupling TCP/IP processing in system area networks with call filtering
WO2007033363A2 (en) System and method for providing packet connectivity between heterogeneous networks
US20030149792A1 (en) System and method for transmission of data through multiple streams
CN101060533A (zh) 一种提高vgmp协议可靠性的方法、系统及装置
US20090106436A1 (en) Methods and systems for offload processing
US20090052446A1 (en) Communications Interface
WO2003034670A1 (en) A method and apparatus for transferring data packets in ip routers
Kerdlapanan et al. Content-based load balancing with multicast and TCP-handoff
CN1722702A (zh) 提高设备转发性能的报文交互方法
CN117099356A (zh) 实例-仿射业务调度
Wang et al. Web Server Clustering with Single-IP Image: Design and Implementation
Warabino et al. Overhead reduction of Internet Indirection Infrastructure (i3) for future mobile and wireless communications

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
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20050810