通过服务网关管理服务的方法

xiaoxiao2020-9-10  3

【知识产权代理】【专利服务】Tel:18215660330

通过服务网关管理服务的方法
【专利摘要】在激活服务时,服务网关使用服务条目的服务或服务器地址来检索服务表条目,其中,服务表条目与另一个服务条目具有相关性。添加与服务条目的相关性并将标记值设定成指示两个服务条目的相关性。在一段持续时间之后,移除与其他服务条目的相关性,并相应地改变标记值。在停用服务条目时,服务网关计算服务条目的服务或服务器地址的散列值。在将该散列值与另一个服务条目的散列值匹配之后,添加与其他服务条目的相关性。将标记值设定成指示与两个服务条目的相关性。在一段持续时间之后,移除与所述服务条目的相关性,并相应地改变标记值。
【专利说明】通过服务网关管理服务的方法

【技术领域】
[0001]本发明总体上涉及一种数据通信,并且更具体地涉及一种服务网关。

【背景技术】
[0002]诸如服务器负载均衡器、防火墙或通信量管理器的服务网关通常被部署成在客户端计算设备与应用程序服务器之间桥接服务。客户端计算设备的数量过去几年在消费者计算机、移动计算设备、智能手机和游戏设备的领域激增。
[0003]当客户端设备的数量增加时,客户端设备与应用程序服务器之间的服务会话(service sess1n)的数量也相应增加。由服务网关所使用的传统有状态会话包处理(stateful sess1n packet processing)让步于无状态包处理(stateless packetprocessing)。无状态包处理在计算方面和在存储器消耗方面更有效。其非常适合为了扩大大量的预期服务会话的服务。典型的无状态包处理方法使用散列表的形式。该表存储有预定服务器和应用信息。
[0004]同时,应用程序的数量也随着消费者和企业将新的应用程序安装在其计算设备上而迅速增加。每天安装更多的服务器,并且更多的应用程序在每小时将变得可用。为了激活服务器或服务器中的应用程序,操作者必须利用额外的服务器或应用程序信息来更新散列表。通常,更新该表指的是用激活服务器或应用程序信息替换表条目的现有服务器或应用程序信息。此表条目内容替换对使用现有表条目的正在进行的服务会话具有破坏性。任何正在进行的服务会话的数据包都不转发给合适的服务器或客户端设备。例如,如果消费者正在观看Netflix?流媒体视频,则视频流会突然停止。如果公司职工正在进行商业交易,则交易会停滞不前。职工必须重新启动交易。在最坏的情况下,职工可能需要找出已经完成了交易的哪一部分,以免重复完成的交易部分。
[0005]除了激活新服务器或应用程序之外,在维护比如备份、软件更新、硬件替换期间,经常离线采用服务器和应用程序。对应的表条目也必须被更换,因为服务器或服务器上的应用程序在表条目中不再可用。期望用第二服务器或运行相同应用程序的另一个服务器替换表条目。
[0006]无状态包处理方法是非常可取的,同时管理服务以允许添加或移除服务器或服务器上的应用程序,而不中断现有服务会话。
[0007]因此,需要一种使用无状态包处理方法通过服务网关来管理服务的方法。


【发明内容】

[0008]根据本发明的一个实施例,一种通过服务网关管理服务的方法包括:(a)接收要由服务网关激活的服务的第一服务条目,所述第一服务条目包括与第一服务相关联的第一服务地址和第一服务器地址;(b)使用第一服务条目的第一服务地址或第一服务器地址来检索服务映射表的服务表条目,所述服务表条目与第二服务条目具有相关性,所述第二服务条目包括第二服务地址和第二服务器地址;(C)向服务表条目添加与第一服务条目的相关性;(d)存储与服务表条目相关联的标记值以指示服务表条目与多个服务条目相关联;(e)将与服务表条目相关联的定时器设定为预定持续时间;(f)响应于定时器的终止,从服务表条目中移除与第二服务条目的相关性;以及(g)响应于从服务表条目中移除与第二服务的相关性,改变标记值以指示服务表条目不与多个服务条目相关联。
[0009]在本发明的一个方面,在从服务表条目中移除与第二服务条目的相关性之前,所述方法还包括:(h)通过服务网关从主机接收数据包,所述数据包包括第三服务地址;(i)将数据包的第三服务地址与第一服务条目的第一服务地址或与第二服务条目的第二服务地址进行比较;(j)响应于发现第三服务地址与第一服务地址之间,或第三服务地址与第二服务地址之间的匹配,确定与服务表条目相关联的标记值;(k)响应于确定标记值指示服务表条目与多个服务条目相关联,基于服务表条目来创建会话条目并将会话条目存储在会话表中;(I)响应于发现第三服务地址与第一服务地址之间的匹配,通过用第一服务器地址替换第三服务地址来修改数据包;(m)响应于发现第三服务地址与第二服务地址之间的匹配,通过用第二服务器地址替换第三服务地址来修改数据包;以及(η)将修改后的数据包发送至第一服务器地址或第二服务器地址。
[0010]在本发明的一个方面,在从服务表条目中移除与第二服务条目的相关性之前,所述方法还包括:(h)通过服务网关从服务器接收数据包,所述数据包包括第三服务器地址;
(i)将数据包的第三服务器地址与第一服务条目的第一服务器地址或与第二服务条目的第二服务器地址进行比较;(j)响应于发现第三服务器地址与第一服务器地址之间,或第三服务器地址与第二服务器地址之间的匹配,确定与服务表条目相关联的标记值;(k)响应于确定标记值指示服务表条目与多个服务条目相关联,基于服务表条目来创建会话条目并将会话条目存储在会话表中;(I)响应于发现第三服务器地址与第一服务器地址之间的匹配,通过用第一服务地址替换第三服务器地址来修改数据包;(m)响应于发现第三服务器地址与第二服务器地址之间的匹配,通过用第二服务地址替换第三服务器地址来修改数据包;以及(η)将修改后的数据包发送至来自数据包的主机地址。
[0011]在本发明的一个方面,接收(h)包括:(hl)从主机接收数据包;(h2)将数据包与会话表中的会话条目进行比较;(h3)响应于发现数据包与会话表中的给定会话条目之间的匹配:(h3i)通过用给定会话条目中的给定服务器地址替换第三服务地址来修改数据包;(h3ii)跳过比较⑴、确定(j)、创建(k)、修改(I)、修改(m)和发送(η);以及(h3iii)将修改后的数据包发送至给定服务器地址;以及(h4)响应于没有发现数据包与会话条目之间的匹配,执行比较(i)、确定(j)、创建(k)、修改(I)、修改(m)和发送(η)。
[0012]在本发明的一个方面,一种通过服务网关管理服务的方法,包括:(a)接收停用服务的第一服务条目的指示,所述第一服务条目包括与服务和第一服务器地址相关联的第一服务地址,所述第一服务条目与服务映射表的服务表条目相关联;(b)计算第一服务条目的第一服务地址或第一服务器地址的第一散列值;(C)确定服务映射表中的第二服务条目的第二散列值与第一散列值是否匹配,所述第二服务条目包括第二服务地址和第二服务器地址;(d)响应于确定第二散列值与第一散列值匹配,向服务表条目添加与第二服务条目的相关性;(e)存储与服务表条目相关联的标记值以指示服务表条目与多个服务条目相关联;(f)将与服务表条目相关联的定时器设定为预定持续时间;(g)响应于定时器的终止,从服务表条目中移除与第一服务条目的相关性;以及(h)响应于从服务表条目中移除与第一服务的相关性,改变标记值以指示服务表条目不与多个服务条目相关联。
[0013]与上文总结的方法对应的系统和计算机程序产品在本文中也进行了描述并要求保护。

【专利附图】

【附图说明】
[0014]图1示出了根据本发明的主机与多个服务地址之间的无状态服务网关的实施例。
[0015]图2示出了根据本发明的管理用于无状态服务网关的服务映射表的实施例。
[0016]图3a_图3f示出了根据本发明的数据包处理方法的实施例。
[0017]图4示出了根据本发明的添加服务条目的过程的实施例。
[0018]图5示出了根据本发明的移除服务条目的过程的实施例。

【具体实施方式】
[0019]以下描述的呈现使得本领域技术人员可以制造和使用本发明,并且以下描述被提供在专利申请和其要求的内容中。对实施例的多种修改对于本领域技术人员是容易显而易见的,并且在此处的一般原理可以被应用于其他实施例。因此,本发明并不旨在被限制于所示的实施例,而是应被授予与本文所描述的原理及特征相一致的最广范围。
[0020]本发明可以采用整个为硬件的实施例的形式、整个为软件的实施例或者包含硬件元件和软件元件两者的实施例。在优选的实施例中,本发明以软件实施,其包括但不限于固件、常驻软件、微代码等。
[0021 ] 此外,本发明可以采用从提供计算机或任何指令执行系统使用或与其连接的程序码的计算机可用或计算机可读介质可访问的计算机程序产品的形式。为了说明的目的,计算机可用或计算机可读介质可以是任何可包含、存储、通信、传播或传输指令执行系统、装置或设备使用或与其连接的eh程序的装置。
[0022]介质可以是电子、磁、光、电磁、红夕卜、或半导体系统(或装置或设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机软磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前实例包括压缩盘-只读存储器(CD-ROM)、压缩盘-读 / 写(CD-R/W)和 DVD。
[0023]适用于存储和/或执行程序代码的数据处理系统将包括至少一个处理器,所述处理器直接或间接通过系统总线间接耦接到存储元件。存储元件可以包括在程序代码实际执行期间使用的本地存储器、大容量存储装置以及为了减少在执行期间必须从大容量存储装置中检索代码的次数而为至少一些程序代码提供临时存储的高速缓冲存储器。
[0024]输入/输出或者I/O设备(包括但不限于键盘、显示器、点设备等)可以直接或者通过居间的I/o控制器耦接到系统。
[0025]网络适配器也可以耦接到系统,以使得数据处理系统能够成为通过居间的专用网络或公共网络耦接到其他数据处理系统或者远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅仅是当前可用的网络适配器类型中的一些。
[0026]附图中的流程图和框图示出了根据本发明的各个实施例的系统、方法和计算机程序产品的可以实施的架构、功能和操作。在这点上,流程图或框图中的每个块可代表模块、片段或者代码的部分,其包括用于实施特定的局部功能的一个或多个可执行指令。还应该注意,在一些可替代的实施中,块中标注的功能可以不以附图中标注的顺序发生。例如,根据所涉及的功能,连续示出的两个块事实上可以基本上同时执行,或者块有时可以以相反的顺序来执行。还应该注意,框图和/或流程图说明中的每个块,以及框图和/或流程图说明中的块的组合可以由执行特定功能或动作的基于专用硬件的系统,或者由专用硬件和计算机指令的组合来实施。
[0027]在本文中使用的术语仅仅是出于描述特定实施例的目的,其并不旨在限制本发明。如在本文中所使用的,单数形式“一个(a)”、“一个(an)和“该”旨在同样包括复数形式,除非上下文明确指出。应该进一步理解的是,当在本说明书中使用时,术语“包括(comprises) ”和/或“包括(comprising) ”规定了阐述的特征、整数、步骤、操作、元件和/或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
[0028]在图1所示的实施例中,服务网关110处理主机100与服务器210之间的服务会话302。在一个实施例中,服务会话302是Web服务会话比如HTTP (超文本传输协议)会话、安全HTTP会话、文件传送协议(FTP)会话、文件传送会话、会话发起协议(SIP)会话、基于Web技术的会话、视频或音频流会话、Web会议会话、或通过因特网、公司网络、数据中心网络或网络云的任何会话。服务会话302包括主机100与服务器210之间的多个数据包。服务会话302通过数据网络153进行传输。
[0029]主机100是具有网络接入能力的计算设备。在一个实施例中,主机100是工作站、台式个人计算机或者膝上型个人计算机。在一个实施例中,主机100是个人数据助理(PDA)、平板PC、智能手机、或者蜂窝手机。在一个实施例中,主机100是机顶盒、因特网媒体浏览器、因特网媒体播放器、智能传感器、智能医疗设备、网顶盒(net-top box)、联网电视机、联网DVR、联网蓝光播放器或媒体中心。
[0030]服务网关110操作性地耦接到处理器113和计算机可读介质114。计算机可读介质114存储计算机可读程序代码,当由处理器113执行时,该程序代码实施如本文中所描述的本发明的各个实施例。在一些实施例中,服务网关I1被实施为服务器负载均衡器、应用传输控制器、服务传输平台、通信量管理器、安全网关、防火墙系统的组件、虚拟专用网络(VPN)的组件、视频服务器的负载均衡器、或将负载分配给一个或多个服务器的网关。
[0031]服务器210操作性地耦接到处理器213和计算机可读介质214。计算机可读介质214存储计算机可读程序代码,该程序代码当由处理器213执行时,实现如本文描述的本发明的各个实施例。在一些实施例中,计算机可读程序代码将服务器210实现为Web服务器、文件服务器、视频服务器、数据库服务器、应用程序服务器、语音系统、会议服务器、媒体网关、SIP服务器、远程访问服务器、VPN服务器、媒体中心、向主机100提供网络或应用服务的应用程序服务器或网络服务器。
[0032]在一个实施例中,数据网络153是网际协议(IP)网络。在一个实施例中,数据网络153是公司数据网络、区域公司数据网络。在一个实施例中,数据网络153是因特网服务提供商网络。在一个实施例中,数据网络153是住宅数据网络。在一个实施例中,数据网络153包括诸如以太网的有线网络。一个实施例中,数据网络153包括诸如WiFi网络的无线网络、或者蜂窝网络。在一个实施例中,数据网络153驻留于数据中心,或者连接到网络或应用网络云。
[0033]在一个实施例中,服务会话302包括来自主机100的数据包304。数据包304包括服务地址331。在一个实施例中,服务地址331包括IP地址。在一个实施例中,服务地址331包括应用层地址或传输层端口号,比如传输控制协议(TCP)端口号或用户数据报协议(UDP)端口号。服务地址331与服务网关110相关联,使得服务会话302的服务数据包304由服务网关110处理。在一个实施例中,服务地址331包括服务数据包304的目的地IP地址,并且任选包括服务数据包304的目的地传输层端口号。
[0034]服务网关110确定与从服务数据包304获取的服务地址331相关联的服务器地址310。在一个实施例中,服务器地址310包括服务器210的网络地址或IP地址。在一个实施例中,服务器地址310包括应用层地址,比如服务器210的TCP端口号或UDP端口号。
[0035]基于服务器地址310,服务器网关110通过用服务器地址310替换服务地址331来修改服务数据包304。服务网关110将修改后的服务数据包304发送至服务器210。
[0036]在一个实施例中,服务网关110从服务器210接收服务会话302的数据包308。服务网关110处理数据包308。数据包308包括服务器地址310。服务网关110确定与从服务数据包308获取的服务器地址310相关联的服务地址331。服务网关110通过用服务地址331替换服务器地址310修改数据包308。服务网关110将修改后的数据包308发送至主机100。
[0037]在一个实施例中,服务网关110包括存储装置400和存储在存储装置400中的服务映射表412(未示出)。在一个实施例中,存储装置400是驻留于服务网关110中的存储器模块。在一个实施例中,服务网关110包括网络处理模块(未示出),其包括现场可编程门阵列(FPGA)、网络处理器、专用集成电路(ASIC)。存储装置400与网络处理模块相关联。存储装置400的实例在该实施例中包括内容可寻址存储器(CAM)、三态内容可寻址存储器(TCAM)、静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。
[0038]图2示出了根据本发明的服务网关110的管理服务映射表412的实施例。在一个实施例中,服务网关110包括服务条目511和服务条目514。服务条目511包括服务地址331和服务器地址310,使服务地址331和服务器地址310相关联。服务条目514包括服务地址334和服务器地址340,使服务地址334和服务器地址340相关联。服务器地址310不同于服务器地址340。服务器地址310与服务器210相关联并且服务器地址340与服务器240相关联。在一个实施例中,服务器210与服务器240相同。服务器地址310与不同于关联到服务器地址340的服务器软件应用程序的服务器软件应用程序相关联。在一个实施例中,服务器地址310和服务器地址340与相同的服务器软件应用程序相关联,而服务器210不同于服务器240。在一个实施例中,服务器地址310和服务器地址340彼此不相关。
[0039]在一个实施例中,服务映射表412包括与服务条目511相关联的服务表条目420。服务网关110可以将服务表条目420从与服务条目511相关联修改成与服务条目514相关联。
[0040]在一个实施例中,对于主机100使用与服务条目514相关联的服务,服务网关110激活服务条目514。服务网关110选择服务表条目420以激活服务条目514,其中,服务表条目420还与服务条目511具有相关性。下面将参照图4进一步描述确定服务表条目420以便激活服务条目514的过程。
[0041]在一个实施例中,为了停用与服务条目511相关联的服务,服务网关110从服务表条目420中移除服务条目511。服务网关110选择服务条目514以替换服务表条目420中的服务条目511。下面将参照图5进一步描述选择服务条目514以替换服务表条目420中的服务条目511的过程。
[0042]在一个实施例中,服务网关110修改服务表条目420以包括与第二服务条目514的相关性。服务表条目420因此与服务条目511和服务条目514都相关联。在一个实施例中,服务网关110将更改标记427存储在服务表条目420中。在一个实施例中,服务表条目420包括更改标记427并且服务网关110将更改标记427修改为“真”以指示服务表条目420包括两个服务条目相关性。服务表条目420与两个服务条目的相关性指示一个服务条目将被移除并且将用其他服务条目替换将与服务表条目420保持相关联。
[0043]在一个实施例中,服务网关110连接至时钟119。服务网关110包括定时器117。服务网关I1将定时器117设定为预定时间段比如10分钟、5秒、2分钟或I小时。服务网关110设定定时器117并同时将服务条目514存储到服务表条目420中。服务网关110检查时钟119以确定定时器117是否终止。当定时器117终止时,服务网关110将标记427更改成“假”或从服务表条目420中移除标记427。服务网关110还从服务表条目420中移除与服务条目511的相关性。下面将参照图4和图5进一步描述定时器117的用途。
[0044]图3a -图3f示出了根据本发明的使用服务映射表进行的服务网关的数据包处理的实施例。
[0045]在图3a中所示的一个实施例中,服务网关110包括用于存储主机与服务器之间的会话的信息的会话表452。会话表452被存储在存储装置400中。
[0046]服务映射表412包括服务表条目420和服务表条目423。服务表条目420包括标记427,该标记在这里具有“假”的值。服务表条目420与服务条目511相关联。服务条目511存储与服务器210相关联的服务地址331和服务器地址310。
[0047]服务表条目423包括标记429,该标记在这里具有“真”的值。服务表条目423与服务条目514和服务条目516相关联。服务条目514包括与服务器240相关联的服务地址334和服务器地址340。服务条目516存储与服务器260相关联的服务地址336和服务器地址360。
[0048]在一个实施例中,服务网关110从主机100接收数据包304。服务网关110从数据包304获取服务地址338。服务网关110将服务地址338与服务映射表412进行比较,并发现与服务表条目420匹配。
[0049]在一个实施例中,服务映射表412包括多个服务表条目。服务表条目420通过表索引430来编索引。在一个实施例中,服务映射表412具有1000个条目并且表索引430具有O与999之间的整数值。在一个实施例中,表索引430具有I与1000之间的值。在一个实施例中,表索引局域55与4897之间的值,或-7与198024之间的值。在一个实施例中,表索引430具有非整数值。
[0050]在一个实施例中,服务网关110包括散列函数H函数(HFunc) 701。服务网关110使用H函数701将服务地址338与服务映射表412进行比较。
[0051]服务网关110将H函数701应用到服务地址338以获取散列值H值711。服务网关110将H值(HValue) 711与服务映射表412进行比较以发现与表索引430匹配。服务网关110使用表索引430检索服务表条目420。在一个实施例中,H值711具有与表索引430相同的值。
[0052]散列函数H函数701的实例包括CRC校验和函数和气体校验和函数;使用逐位元运算子比如逐位元与运算子、逐位元或运算子、逐位元与非运算子和逐位元(bit-wise)异或运算子的组合的散列函数;MD5散列函数和其他加密散列函数;Jenkins散列函数和其他非加密散列函数;在服务网关110的FPGA、ASIC或集成电路板中实现的基于硬件的散列函数;以及其他类型的散列函数或表查找函数。通常,这些散列函数是简单的并且可以通过服务网关110快速计算。
[0053]服务网关110检查服务表条目420的标记427。标记427具有值“假”。服务网关110通过用服务器地址310替换服务地址338来修改数据包304。服务网关110将修改或的数据包304发送至服务器210,其与服务器地址310相关联。
[0054]在一个实施例中,假设与服务条目514相关联的服务用与服务条目516相关联的服务替换,即,服务条目514用服务表条目423中的服务条目516替换。服务网关110将服务地址338与服务表条目423进行比较并发现相关联服务条目514的服务地址338与服务地址334之间的匹配。作为响应,服务网关110将服务表条目423的标记429确定为“真”。服务网关110基于服务表条目423来创建会话条目454。现在参照图3b,在一个实施例中,服务网关110使用服务表条目423的相关联服务条目514来创建会话条目454。服务网关110从服务条目514获取服务器地址340,并将服务地址338和服务器地址340存储到会话条目454中。在一个实施例中,服务网关110从数据包304获取主机地址108并将主机地址108存储到会话条目454。主机地址108与主机100相关联。在一个实施例中,主机地址108包括主机100的IP地址或网络地址。在一个实施例中,主机地址108还包括主机100的应用层地址、TCP端口号或UDP端口号。服务网关110将会话条目454存储到会话表452中。服务网关110使用会话条目454来处理数据包304。服务网关110通过用会话条目454的服务器地址340替换服务地址338来修改数据包304。服务网关110将修改后的数据包304发送至服务器240。
[0055]在一个实施例中,服务网关110将服务地址338与服务表条目423进行比较并发现与服务表条目423的相关联服务条目516 (新的相关联服务条目)的服务地址336匹配的服务地址338。服务网关110将服务表条目423的标记429确定为“真”。现在参照图3c,服务网关110使用服务条目516来创建会话条目454。服务网关110将服务条目516的服务地址338和服务器地址360存储到会话条目454中。在一个实施例中,服务网关110将主机地址108存储到会话条目454中。服务网关110通过用服务器地址360替换服务地址338来修改数据包304并将所修改的数据包304发送至服务器260。
[0056]在一个实施例中,服务网关110检查数据包304是否包括会话请求。例如,数据包304包括TCP SYN数据包。服务网关110使用服务表条目423的新的相关联服务条目516来创建会话条目454,如上文参照图3c所述。
[0057]在一个实施例中,服务网关110在将数据包304与服务映射表412进行比较之前将数据包304与会话表452进行比较。在一个实施例中,服务网关110将数据包304的服务地址338与会话表452匹配。在一个实施例中,服务网关110还获取数据包304的主机地址108,并将服务地址338和主机地址108与会话表452进行比较。在实施例中,服务网关110发现与会话条目420的匹配。服务网关110通过用会话条目420的服务器地址替换数据包304的服务地址来修改数据包304,并将修改后的数据包304发送至会话条目420的服务器地址的相关联服务器。
[0058]在一个实施例中,服务网关110没有发现数据包304与会话表452之间的匹配。作为响应,服务网关110继续进行以将数据包304与服务映射表412进行比较,如上所述。
[0059]现在参照图3d,在一个实施例中,服务网关110从服务器接收数据包308。在一个实施例中,服务网关I1从服务器210接收数据包。服务网关110获取数据包308的服务器地址310,将服务器地址310与服务表412进行比较,并发现与服务表条目420的匹配。在一个实施例中,服务网关110将散列函数H函数701应用于服务器地址310以获取H值715。服务网关110将H值715与服务映射表412进行比较并发现与表索引430的匹配。服务网关110使用表索引430来检索服务表条目420。服务网关110将服务表条目420的标记427检查为“假”。服务网关110通过用服务表条目420的服务条目511的服务地址331替换服务器地址310来修改数据包308。服务网关110将修改后的数据包308发送至主机100。
[0060]在一个实施例中,服务网关110从服务器240接收数据包348。服务网关110获取数据包348的服务器地址340,并将服务器地址340与服务映射表412进行比较。服务网关110发现与服务表条目423的匹配。服务网关110将服务表条目423的标记429检查为“真”。作为响应,参照图3e,服务网关110使用服务器地址340和服务表条目423来创建会话条目464(图3e)。服务网关110将服务器地址340存储在会话条目464中。服务网关110进一步检查并确定服务器地址340与服务表条目423的现有相关联服务条目514匹配。服务网关110使会话条目464关联到会话条目464中的服务条目514的服务地址334。服务网关110将会话条目464存储到会话表452中。在一个实施例中,服务网关110从数据包348中提取主机地址108并还将主机地址108存储到会话条目464中。
[0061]服务网关110通过用服务地址331替换服务器地址340来修改数据包348,并将修改后的数据包348发送至主机100,其与主机地址108相关联。
[0062]在一个实施例中,服务网关110从服务器260接收数据包349。服务网关110获取数据包349的服务器地址360,并将服务器地址360与服务表条目423进行比较。服务网关110发现与服务表条目423的匹配。服务网关110将服务表条目423的标记429检查为“真”。服务网关110进一步确定数据包349的服务器地址360与服务条目516的服务器地址360匹配,该服务条目516与服务表条目423相关联。现在参照图3f,服务网关110使用服务器地址360和服务条目516来创建会话条目466。服务网关110将服务条目516的服务器地址360和服务地址336存储到会话条目466中。服务网关110将会话条目466存储到会话表452中。在一个实施例中,服务网关110从数据包349中提取主机地址108并将主机地址108存储到会话条目466中。
[0063]服务网关110通过用服务地址336替换服务器地址360来修改数据包349,并将修改后的数据包349发送至与主机地址108对应的主机100。
[0064]在一个实施例中,服务网关110在将数据包349与服务映射表412进行比较之前将数据包349与会话表452进行比较。服务网关110获取数据包308的服务器地址360,并将服务器地址360与会话表452进行比较。在一个实施例中,服务网关110还获取数据包308的主机地址108并将服务器地址360与主机地址108 —起与会话表452匹配。在实施例中,服务网关110发现与会话条目466的匹配。服务网关110通过用会话条目466的服务地址336替换数据包304的服务器地址360来修改数据包308,并将修改后的数据包349发送至关联到主机地址108的主机100。
[0065]在一个实施例中,服务网关110没有发现数据包308与会话表452之间的匹配。服务网关110继续进行以将数据包308与服务映射表412进行比较,如上所述。
[0066]在一个实施例中,服务网关110使用利用从服务器260接收的数据包308创建的会话条目466来将后续主机侧会话数据包与会话表452进行比较。在一个实施例中,服务网关110使用利用从主机100接收的数据包304创建的会话条目454来将后续服务器侧会话数据包与会话表452进行比较。
[0067]图4示出了根据本发明的激活服务条目的过程的实施例。在一个实施例中,服务映射表412包括通过表索引430来编入索引的服务表条目420。服务表条目420与服务条目511相关联。
[0068]服务网关110包括散列函数H函数702。在一个实施例中,H函数702与H函数701相同。在一个实施例中,H函数702与H函数701不同。
[0069]在一个实施例中,服务网关110激活服务条目514,该服务条目包括服务地址334和服务器地址340。在一个实施例中,服务网关110从用户130接收服务条目514。在一个实施例中,用户130是网络管理员或网络管理系统。在一个实施例中,服务网关从预定配置接收服务条目514,该配置从存储装置中检索或从网络远端接收。
[0070]服务网关110将散列函数H函数702应用于服务条目514以获取散列值H值712。在一个实施例中,将H函数702应用于服务地址334。在一个实施例中,将H函数702应用于服务器地址340。在一个实施例中,将H函数702应用于服务地址334和服务器地址340。服务网关110计算散列值H值712。在一个实施例中,散列值H值712与服务映射表412的表索引430匹配。服务网关110使用表索引430来检索服务表条目420。服务网关110向服务表条目420添加与服务条目514的相关性,以使得服务表条目420与服务条目511和服务条目514相关联。在一个实施例中,服务网关110将更改标记427存储到服务表条目420中或将更改标记427值设定为“真”。
[0071]在一个实施例中,服务网关110设定激活或服务条目514的定时器117。当定时器117终止时,服务网关110从服务表条目420中移除与服务条目511的相关性。服务网关110从服务表条目420中移除更改标记427或将标记427的值更改为“假”。服务表条目420保持与服务条目514的相关性。通过设定定时器117,与服务条目511有关的现有连接可以被迁移至会话表452,如上所述,在从服务表条目420中移除服务条目511之前,减少对现有会话连接的破坏。
[0072]图5示出了停用服务条目511的过程。服务映射表412包括与服务条目511相关联的服务表条目420。服务映射表412还包括与不同于服务条目511的服务条目514相关联的第二服务表条目423,比如停用命令或请求。服务网关110接收停用指示172以停用服务条目511。在一个实施例中,服务网关110从用户130接收指示172。在一个实施例中,服务网关110从预定配置接收指示172,该配置从存储装置中检索或通过数据网络远程检索。
[0073]指示172包括服务条目511。服务条目511包括服务地址331和服务器地址310。服务网关I1从指示172获取服务条目511。
[0074]在一个实施例中,服务网关110通过将H函数702应用于服务条目511来计算散列值H值712。在一个实施例中,服务网关110将H函数702应用于服务条目511的服务地址331。在一个实施例中,服务网关110将H函数702应用于服务条目511的服务器地址310。在一个实施例中,服务网关将H函数702应用于服务地址331和服务器地址310。月艮务网关110将H值712与服务映射表412进行比较并发现与表索引430的匹配。服务网关110使用表索引430从服务映射表412检索服务表条目420。
[0075]在一个实施例中,服务网关110将服务条目511与服务映射表412进行比较。在一个实施例中,服务网关110将服务条目511的服务地址331与服务映射条目420的服务地址331进行比较并发现匹配。在一个实施例中,服务网关110将服务条目511的服务器地址310与服务映射条目420的服务器地址310进行比较并发现匹配。在一个实施例中,服务网关110将服务条目511的服务地址331和服务器地址310进行比较并发现与服务表条目420的匹配。服务网关110确定匹配的服务表条目420的表索引。
[0076]服务网关110继续选择用于服务表条目412的替换服务条目514。在一个实施例中,在从服务映射表412中选择服务条目514时,服务网关110选择服务表条目423并且将散列函数H函数702应用于服务表条目423的服务条目514。服务网关110通过将H函数702应用于服务条目514来计算散列值H值713。服务网关110将H值713与表索引430进行比较并发现匹配。服务网关110向服务表条目420添加与服务条目511的相关性,使得服务表条目420与服务条目511和服务条目514相关联。在一个实施例中,服务网关110将更改标记427存储到服务表条目420中或将更改标记427设定为“真”。在一个实施例中,服务网关110通过将散列函数H函数702应用于服务映射表412中的一个或多个服务条目来选择服务条目514。
[0077]在一个实施例中,服务网关110设定定时器117以激活服务条目514。当定时器终止时,服务网关I1从服务表条目420中移除与服务条目511的相关性。服务网关110从服务表条目420中移除更改标记427或将标记427的值更改为“假”。服务表条目420保持与服务条目514的相关性。
[0078]在一个实施例中,服务表条目420包括预定替换的相关性服务条目514。在一个实施例中,服务网关I1通过从存储器或通过数据网络远程检索服务表条目420的替代相关性服务条目514来选择服务条目514。
[0079]尽管本发明已根据所示的实施例进行了描述,但是本领域普通技术人员将容易认识到可以对实施例作变形,并且这些变形也在本发明的精神和范围内。因此,本领域普通技术人员在不背离所附权利要求书的精神和范围的情况下可以进行各种变形。
【权利要求】
1.一种用于通过服务网关管理服务的方法,包括: (a)通过所述服务网关获取第一服务条目和第二服务条目,所述第一服务条目包括第一服务地址和第一服务器地址,所述第二服务条目包括第二服务地址和第二服务器地址; (b)获取服务映射表的服务表条目,所述服务表条目与所述第二服务条目具有相关性; (C)将与所述第一服务条目的相关性添加至所述服务表条目; (d)存储与所述服务表条目相关联的标记值以指示所述服务表条目与多个服务条目相关联; (e)将与所述服务表条目相关联的定时器设定为预定持续时间;以及 (f)响应于所述定时器的终止,从所述服务表条目移除与所述第二服务条目的相关性。
2.根据权利要求1所述的方法,其中,在从所述服务表条目移除(f)与所述第二服务条目的相关性之前,所述方法进一步包括: (g)通过所述服务网关从主机接收数据包,所述数据包包括第三服务地址; (h)将所述数据包的所述第三服务地址与所述第一服务条目的所述第一服务地址或与所述第二服务条目的所述第二服务地址进行比较; (i)响应于发现所述第三服务地址与所述第一服务地址之间,或所述第三服务地址与所述第二服务地址之间的匹配,确定与所述服务表条目相关联的所述标记值; U)响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,基于所述服务表条目来创建会话条目并且将所述会话条目存储在会话表中; (k)响应于发现所述第三服务地址与所述第一服务地址之间的匹配,通过利用所述第一服务器地址替换所述第三服务地址来修改所述数据包; (I)响应于发现所述第三服务地址与所述第二服务地址之间的匹配,通过利用所述第二服务器地址替换所述第三服务地址来修改所述数据包;以及 (m)将修改后的数据包发送至所述第一服务器地址或所述第二服务器地址。
3.根据权利要求2所述的方法,其中,所述创建(j)包括: (jD响应于发现所述第三服务地址与所述第一服务地址之间的匹配,并且响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,将所述第一服务条目的所述第一服务器地址和所述数据包的所述第三服务地址存储在所述会话条目中;以及 (J2)响应于发现所述第三服务地址与所述第二服务地址之间的匹配,并且响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,将所述第二服务条目的所述第二服务器地址和所述数据包的所述第三服务地址存储在所述会话条目中。
4.根据权利要求2所述的方法,其中,所述接收(g)包括: (gl)从所述主机接收所述数据包; (g2)将所述数据包与所述会话表中的会话条目进行比较; (g3)响应于发现所述数据包与所述会话表中的给定会话条目之间的匹配: (g3i)通过利用所述给定会话条目中的给定服务器地址替换所述第三服务地址来修改所述数据包; (g3ii)跳过所述比较(h)、所述确定⑴、所述创建(j)、所述修改(k)、所述修改⑴和所述发送(m);以及 (g3iii)将修改后的数据包发送至所述给定服务器地址,以及 (g4)响应于没有发现所述数据包与所述会话条目之间的匹配,执行所述比较(h)、所述确定(i)、所述创建(j)、所述修改(k)、所述修改(I)和所述发送(m)。
5.根据权利要求1所述的方法,其中,在从所述服务表条目移除(f)与所述第二服务条目的相关性之前,所述方法进一步包括: (g)通过所述服务网关从服务器接收数据包,所述数据包包括第三服务器地址; (h)将所述数据包的所述第三服务器地址与所述第一服务条目的所述第一服务器地址或与所述第二服务条目的所述第二服务器地址进行比较; (i)响应于发现所述第三服务器地址与所述第一服务器地址之间,或所述第三服务器地址与所述第二服务器地址之间的匹配,确定与所述服务表条目相关联的所述标记值; (j)响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,基于所述服务表条目来创建会话条目并且将所述会话条目存储在会话表中; (k)响应于发现所述第三服务器地址与所述第一服务器地址之间的匹配,通过利用所述第一服务地址替换所述第三服务器地址来修改所述数据包; (I)响应于发现所述第三服务器地址与所述第二服务器地址之间的匹配,通过利用所述第二服务地址替换所述第三服务器地址来修改所述数据包;以及(m)将修改后的数据包发送至来自所述数据包的主机地址。
6.根据权利要求5所述的方法,其中,所述创建(j)包括: (jl)响应于发现所述第三服务器地址与所述第一服务器地址之间的匹配,并且响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,将所述第一服务条目的所述第一服务地址和所述数据包的所述第三服务器地址存储在所述会话条目中;以及(J2)响应于发现所述第三服务器地址与所述第二服务器地址之间的匹配,并且响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,将所述第二服务条目的所述第二服务地址和所述数据包的所述第三服务地址存储在所述会话条目中。
7.根据权利要求5所述的方法,其中,所述接收(g)包括: (gl)从所述服务器接收所述数据包; (g2)将所述数据包与所述会话表中的会话条目进行比较; (g3)响应于发现所述数据包与所述会话表中的给定会话条目之间的匹配: (g3i)通过利用所述给定会话条目中的给定服务地址替换所述第三服务器地址来修改所述数据包; (g3ii)跳过所述比较(h)、所述确定⑴、所述创建(j)、所述修改(k)、所述修改⑴和所述发送(m);以及 (g3iii)将修改后的数据包发送至所述主机地址,以及 (g4)响应于没有发现所述数据包与所述会话条目之间的匹配,执行所述比较(h)、所述确定(i)、所述创建(j)、所述修改(k)、所述修改(I)和所述发送(m)。
8.根据权利要求1所述的方法,其中,所述获取(a)包括: (al)接收用于将被所述服务网关激活的服务的所述第一服务条目;以及(a2)使用所述第一服务条目的所述第一服务地址或所述第一服务器地址来检索所述服务映射表的所述服务表条目。
9.根据权利要求1所述的方法,其中,所述获取(a)包括: (al)接收用于将被所述服务网关停用的服务的所述第二服务条目;以及 (a2)通过所述服务网关使用所述第二服务条目来检索所述第一服务条目。
10.根据权利要求9所述的方法,其中,所述接收(al)、所述检索(a2)和所述添加(C)包括: (ali)通过所述服务网关接收停用所述第二服务条目的指示; (alii)计算用于所述第二服务条目的所述第二服务地址或所述第二服务器地址的第一散列值; (a2i)确定所述服务映射表中的所述第一服务条目的第二散列值是否与所述第一散列值相匹配;以及 (Cl)响应于确定所述第二散列值与所述第一散列值相匹配,将与所述第一服务条目的相关性添加至所述服务表条目。
11.一种用于管理服务的计算机程序产品,所述计算机程序产品包括: 计算机可读存储介质,具有随其包含的计算机可读程序代码,所述计算机可读程序代码被配置为: (a)获取第一服务条目和第二服务条目,所述第一服务条目包括第一服务地址和第一服务器地址,所述第二服务条目包括第二服务地址和第二服务器地址; (b)获取服务映射表的服务表条目,所述服务表条目具有与所述第二服务条目的相关性; (C)将与所述第一服务条目的相关性添加至所述服务表条目; (d)存储与所述服务表条目相关联的标记值以指示所述服务表条目与多个服务条目相关联; (e)将与所述服务表条目相关联的定时器设定为预定持续时间;以及 (f)响应于所述定时器的终止,从所述服务表条目移除与所述第二服务条目的相关性。
12.根据权利要求11所述的计算机程序产品,其中,所述计算机可读程序代码的方法进一步被配置为在从所述服务表条目移除(f)与所述第二服务条目的相关性之前: (g)通过所述服务网关从主机接收数据包,所述数据包包括第三服务地址; (h)将所述数据包的所述第三服务地址与所述第一服务条目的所述第一服务地址或与所述第二服务条目的所述第二服务地址进行比较; (i)响应于发现所述第三服务地址与所述第一服务地址之间,或所述第三服务地址与所述第二服务地址之间的匹配,确定与所述服务表条目相关联的所述标记值; (j)响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,基于所述服务表条目来创建会话条目并且将所述会话条目存储在会话表中; (k)响应于发现所述第三服务地址与所述第一服务地址之间的匹配,通过利用所述第一服务器地址替换所述第三服务地址来修改所述数据包; (I)响应于发现所述第三服务地址与所述第二服务地址之间的匹配,通过利用所述第二服务器地址替换所述第三服务地址来修改所述数据包;以及 (m)将修改后的数据包发送至所述第一服务器地址或所述第二服务器地址。
13.根据权利要求12所述的计算机程序产品,其中,所述创建(j)包括: (jl)响应于发现所述第三服务地址与所述第一服务地址之间的匹配,并且响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,将所述第一服务条目的所述第一服务器地址和所述数据包的所述第三服务地址存储在所述会话条目中;以及 (J2)响应于发现所述第三服务地址与所述第二服务地址之间的匹配,并且响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,将所述第二服务条目的所述第二服务器地址和所述数据包的所述第三服务地址存储在所述会话条目中。
14.根据权利要求12所述的计算机程序产品,其中,所述接收(g)包括: (gl)从所述主机接收所述数据包; (g2)将所述数据包与所述会话表中的会话条目进行比较; (g3)响应于发现所述数据包与所述会话表中的给定会话条目之间的匹配: (g3i)通过利用所述给定会话条目中的给定服务器地址替换所述第三服务地址来修改所述数据包; (g3ii)跳过所述比较(h)、所述确定⑴、所述创建(j)、所述修改(k)、所述修改⑴和所述发送(m);以及 (g3iii)将修改后的数据包发送至所述给定服务器地址,以及 (g4)响应于没有发现所述数据包与所述会话条目之间的匹配,执行所述比较(h)、所述确定(i)、所述创建(j)、所述修改(k)、所述修改(I)和所述发送(m)。
15.根据权利要求11所述的计算机程序产品,其中,所述计算机可读程序代码的方法进一步被配置为在从所述服务表条目移除与所述第二服务条目的相关性之前: (g)通过所述服务网关从服务器接收数据包,所述数据包包括第三服务器地址; (h)将所述数据包的所述第三服务器地址与所述第一服务条目的所述第一服务器地址或与所述第二服务条目的所述第二服务器地址进行比较; (i)响应于发现所述第三服务器地址与所述第一服务器地址之间,或所述第三服务器地址与所述第二服务器地址之间的匹配,确定与所述服务表条目相关联的所述标记值; (j)响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,基于所述服务表条目来创建会话条目并且将所述会话条目存储在会话表中; (k)响应于发现所述第三服务器地址与所述第一服务器地址之间的匹配,通过利用所述第一服务地址替换所述第三服务器地址来修改所述数据包; (I)响应于发现所述第三服务器地址与所述第二服务器地址之间的匹配,通过利用所述第二服务地址替换所述第三服务器地址来修改所述数据包;以及(m)将修改后的数据包发送至来自所述数据包的主机地址。
16.根据权利要求15所述的计算机程序产品,其中,所述创建(j)包括: (kl)响应于发现所述第三服务器地址与所述第一服务器地址之间的匹配,并且响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,将所述第一服务条目的所述第一服务地址和所述数据包的所述第三服务器地址存储在所述会话条目中;以及(k2)响应于发现所述第三服务器地址与所述第二服务器地址之间的匹配,并且响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,将所述第二服务条目的所述第二服务地址和所述数据包的所述第三服务地址存储在所述会话条目中。
17.根据权利要求15所述的计算机程序产品,其中,所述接收(g)包括: (gl)从所述服务器接收所述数据包; (g2)将所述数据包与所述会话表中的会话条目进行比较; (g3)响应于发现所述数据包与所述会话表中的给定会话条目之间的匹配: (g3i)通过利用所述给定会话条目中的给定服务地址替换所述第三服务器地址来修改所述数据包; (g3ii)跳过所述比较(h)、所述确定⑴、所述创建(j)、所述修改(k)、所述修改⑴和所述发送(m);以及 (g3iii)将修改后的数据包发送至所述主机地址,以及 (g4)响应于没有发现所述数据包与所述会话条目之间的匹配,执行所述比较(h)、所述确定(i)、所述创建(j)、所述修改(k)、所述修改(I)和所述发送(m)。
18.根据权利要求11所述的计算机程序产品,其中,所述获取(a)包括: (al)接收用于将被所述服务网关激活的服务的所述第一服务条目;以及 (a2)使用所述第一服务条目的所述第一服务地址或所述第一服务器地址来检索所述服务映射表的所述服务表条目。
19.根据权利要求11所述的计算机程序产品,其中,所述获取(a)包括: (al)接收用于将被所述服务网关停用的服务的所述第二服务条目;以及 (a2)通过所述服务网关使用所述第二服务条目来检索所述第一服务条目。
20.根据权利要求19所述的计算机程序产品,其中,所述接收(al)、所述检索(a2)和所述添加(C)包括: (ali)通过所述服务网关接收停用所述第二服务条目的指示; (alii)计算用于所述第二服务条目的所述第二服务地址或所述第二服务器地址的第一散列值; (a2i)确定所述服务映射表中的所述第一服务条目的第二散列值是否与所述第一散列值相匹配;以及 (Cl)响应于确定所述第二散列值与所述第一散列值相匹配,将与所述第一服务条目的相关性添加至所述服务表条目。
21.—种系统,包括: 处理器;以及 计算机可读存储介质,具有随其包含的、用于通过处理器执行的计算机可读程序代码,所述计算机可读程序代码被配置为 (a)获取第一服务条目和第二服务条目,所述第一服务条目包括第一服务地址和第一服务器地址,所述第二服务条目包括第二服务地址和第二服务器地址; (b)获取服务映射表的服务表条目,所述服务表条目具有与所述第二服务条目的相关性; (C)将与所述第一服务条目的相关性添加至所述服务表条目; (d)存储与所述服务表条目相关联的标记值以指示所述服务表条目与多个服务条目相关联; (e)将与所述服务表条目相关联的定时器设定为预定持续时间; (f)响应于所述定时器的终止,从所述服务表条目移除与所述第二服务条目的相关性;以及 (g)响应于从所述服务表条目移除与所述第二服务条目的相关性,改变所述标记值以指示所述服务表条目不与所述多个服务条目相关联。
22.根据权利要求21所述的系统,其中,所述计算机可读程序代码的方法进一步被配置为在从所述服务表条目移除(f)与所述第二服务条目的相关性之前: (g)通过所述服务网关从主机接收数据包,所述数据包包括第三服务地址; (h)将所述数据包的所述第三服务地址与所述第一服务条目的所述第一服务地址或与所述第二服务条目的所述第二服务地址进行比较; (i)响应于发现所述第三服务地址与所述第一服务地址之间,或所述第三服务地址与所述第二服务地址之间的匹配,确定与所述服务表条目相关联的所述标记值; (j)响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,基于所述服务表条目来创建会话条目并且将所述会话条目存储在会话表中; (k)响应于发现所述第三服务地址与所述第一服务地址之间的匹配,通过利用所述第一服务器地址替换所述第三服务地址来修改所述数据包; (I)响应于发现所述第三服务地址与所述第二服务地址之间的匹配,通过利用所述第二服务器地址替换所述第三服务地址来修改所述数据包;以及 (m)将修改后的数据包发送至所述第一服务器地址或所述第二服务器地址。
23.根据权利要求22所述的系统,其中,所述创建(j)包括: (jl)响应于发现所述第三服务地址与所述第一服务地址之间的匹配,并且响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,将所述第一服务条目的所述第一服务器地址和所述数据包的所述第三服务地址存储在所述会话条目中;以及 (J2)响应于发现所述第三服务地址与所述第二服务地址之间的匹配,并且响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,将所述第二服务条目的所述第二服务器地址和所述数据包的所述第三服务地址存储在所述会话条目中。
24.根据权利要求22所述的系统,其中,所述接收(g)包括: (gl)从所述主机接收所述数据包; (g2)将所述数据包与所述会话表中的会话条目进行比较; (g3)响应于发现所述数据包与所述会话表中的给定会话条目之间的匹配: (g3i)通过利用所述给定会话条目中的给定服务器地址替换所述第三服务地址来修改所述数据包; (g3ii)跳过所述比较(h)、所述确定⑴、所述创建(j)、所述修改(k)、所述修改⑴和所述发送(m);以及 (g3iii)将修改后的数据包发送至所述给定服务器地址,以及 (g4)响应于没有发现所述数据包与所述会话条目之间的匹配,执行所述比较(h)、所述确定(i)、所述创建(j)、所述修改(k)、所述修改(I)和所述发送(m)。
25.根据权利要求21所述的系统,其中,所述计算机可读程序代码的方法进一步被配置为在从所述服务表条目移除与所述第二服务条目的相关性之前: (g)通过所述服务网关从服务器接收数据包,所述数据包包括第三服务器地址; (h)将所述数据包的所述第三服务器地址与所述第一服务条目的所述第一服务器地址或与所述第二服务条目的所述第二服务器地址进行比较; (i)响应于发现所述第三服务器地址与所述第一服务器地址之间,或所述第三服务器地址与所述第二服务器地址之间的匹配,确定与所述服务表条目相关联的所述标记值; (j)响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,基于所述服务表条目来创建会话条目并且将所述会话条目存储在会话表中; (k)响应于发现所述第三服务器地址与所述第一服务器地址之间的匹配,通过利用所述第一服务地址替换所述第三服务器地址来修改所述数据包; (I)响应于发现所述第三服务器地址与所述第二服务器地址之间的匹配,通过利用所述第二服务地址替换所述第三服务器地址来修改所述数据包;以及(m)将修改后的数据包发送至来自所述数据包的主机地址。
26.根据权利要求25所述的系统,其中,所述创建(k)包括: (kl)响应于发现所述第三服务器地址与所述第一服务器地址之间的匹配,并且响应于确定指示所述服务表条目与所述多个服务条目相关联的所述标记值,将所述第一服务条目的所述第一服务地址和所述数据包的所述第三服务器地址存储在所述会话条目中;以及(k2)响应于发现所述第三服务器地址与所述第二服务器地址之间的匹配,并且响应于确定指示所述服务表条目与所述多个服务条目相关联所述标记值,将所述第二服务条目的所述第二服务地址和所述数据包的所述第三服务地址存储在所述会话条目中。
27.根据权利要求25所述的系统,其中,所述接收(h)包括: (hi)从所述服务器接收所述数据包; (h2)将所述数据包与所述会话表中的会话条目进行比较; (h3)响应于发现所述数据包与所述会话表中的给定会话条目之间的匹配: (h3i)通过利用所述给定会话条目中的给定服务地址替换所述第三服务器地址来修改所述数据包; (h3ii)跳过所述比较⑴、所述确定(j)、所述创建(k)、所述修改⑴、所述修改(m)和所述发送(η);以及 (h3iii)将修改后的数据包发送至所述主机地址,以及 (h4)响应于没有发现所述数据包与所述会话条目之间的匹配,执行所述比较(i)、所述确定(j)、所述创建(k)、所述修改(I)、所述修改(m)和所述发送(η)。
28.根据权利要求21所述的系统,其中,所述获取(a)包括: (al)接收用于将被所述服务网关激活的服务的所述第一服务条目;以及(a2)使用所述第一服务条目的所述第一服务地址或所述第一服务器地址来检索所述服务映射表的所述服务表条目。
29.根据权利要求21所述的系统,其中,所述获取(a)包括: (al)接收用于将被所述服务网关停用的服务的所述第二服务条目;以及 (a2)通过所述服务网关使用所述第二服务条目来检索所述第一服务条目。
30.根据权利要求29所述的系统,其中,所述接收(al)、所述检索(a2)和所述添加(C)包括: (ali)通过所述服务网关接收停用所述第二服务条目的指示; (alii)计算用于所述第二服务条目的所述第二服务地址或所述第二服务器地址的第一散列值; (a2i)确定所述服务映射表中的所述第一服务条目的第二散列值是否与所述第一散列值相匹配;以及 (Cl)响应于确定所述第二散列值与所述第一散列值相匹配,将与所述第一服务条目的相关性添加至所述服务表条目。
【文档编号】H04L12/70GK104137491SQ201280070122
【公开日】2014年11月5日 申请日期:2012年12月12日 优先权日:2011年12月23日
【发明者】拉贾库玛·亚兰, 徐飞龙, 里施·桑帕特 申请人:瑞科网信科技有限公司

最新回复(0)