CN100581157C - 将第七层负载平衡器的工作负荷转移至服务器端来处理的方法 - Google Patents

将第七层负载平衡器的工作负荷转移至服务器端来处理的方法 Download PDF

Info

Publication number
CN100581157C
CN100581157C CN03123193A CN03123193A CN100581157C CN 100581157 C CN100581157 C CN 100581157C CN 03123193 A CN03123193 A CN 03123193A CN 03123193 A CN03123193 A CN 03123193A CN 100581157 C CN100581157 C CN 100581157C
Authority
CN
China
Prior art keywords
server
packet filter
terminating machine
layer
load balancer
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.)
Expired - Fee Related
Application number
CN03123193A
Other languages
English (en)
Other versions
CN1538705A (zh
Inventor
蔡品再
林盈达
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.)
Accton Technology Corp
Original Assignee
Accton Technology Corp
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 Accton Technology Corp filed Critical Accton Technology Corp
Priority to CN03123193A priority Critical patent/CN100581157C/zh
Publication of CN1538705A publication Critical patent/CN1538705A/zh
Application granted granted Critical
Publication of CN100581157C publication Critical patent/CN100581157C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

一种将第七层负载平衡器的工作负荷转移至服务器端来处理的方法,当一第七层负载平衡器接收到由一终端机传送来的同步封包时,会将该同步封包直接传送至预先选取的一服务器以建立该终端机与该服务器之间的一传输控制协议状态,而使由该服务器所回传的数据不需要再通过该第七层负载平衡器交换路径,封包过滤器还会在接收到一重置封包后将其保留一预定时间,而该封包过滤器还会在接收到包含有一Session数据的一Cookie时,改写该Cookie的名称。借此,本发明解决了第七层负载平衡器的处理能力瓶颈问题;以及能够支持持续联机功能;并且,可根据联机要求内容,进行对多个服务器的路径交换时能同时支持Session一贯性功能。

Description

将第七层负载平衡器的工作负荷转移至服务器端来处理的方法
技术领域
本发明涉及一种将第七层负载平衡器的工作负荷转移至服务器端来处理的方法,尤其涉及一种预先选取一服务器以建立一传输控制协议状态而将第七层负载平衡器的工作负荷转移至该服务器端来处理的方法。
背景技术
随着上网人数不断剧增,以及宽频网络的普及,许多大型的互联网内容供应商(ICP)所面临的最大挑战就是来自于用户的巨大数量的联机要求(Connection Request),单一服务器早已无法满足这样庞大的需求,所以应这一问题所衍生出来的其中一个良好的解决方案即为服务器群技术(Server FarmTechnology),这一技术已经发展了许多年,过去使用第四层负载平衡器(Layer4Load Balancer)来进行对于联机要求的最佳路径的选取,然而第四层负载平衡器存在有一十分严重的缺陷,即其不具有检测来自于用户的联机要求的内容的能力,即第四层负载平衡器无法根据联机要求的内容来进行路径交换,这样的特性在现代的电子商务服务应用中将有可能造成路径交换错误的产生。
因此为解决上述问题,现有技术中有许多利用第七层负载平衡器(Layer 7Load Balancer)进行路径交换。第七层负载平衡器(例如一网页交换器,WebSwitch)的最重要的特征在于其具备有能够检测来自于用户的联机要求的内容并根据该内容进行路径交换的功能。然而现有技术所使用的各种第七层负载平衡器技术中,仍然存在有许多不同的缺点:其一为网页交换器的数据处理上限,由于每当一客户端的终端机(Terminal)要送出一联机要求时,其必须由该网页交换器通过三次握手方式(Three-Way Handshaking)对该终端机建立一传输控制协议状态(Transmission Control Protocol State,TCP State)以及该网页交换器对该终端机所要存取的一服务器还须建立另一传输控制协议状态,才能将该联机要求送至该服务器,而该服务器也须通过这一方式才能将数据回传至该终端机,因此当有许多联机要求通过一网页交换器进行联机时,该网页交换器则必须维持相对应数量的传输控制协议状态以满足所有终端机的需求,然而网页交换器所能维持的传输控制协议状态数量有一上限,因此如果有非常大量的联机要求,则网页交换器的处理能力便很容易成为瓶颈,为解决这一问题,现有技术通常使用传输控制协议交递(TCP Handoff)的方法,将传输控制协议状态转移至后端服务器处理,以减轻该网页交换器的工作负荷,但是由于传输控制协议交递技术必须利用一特殊的通讯协议才能将传输控制协议状态转移至后端服务器,因此势必需要将服务器的操作系统核心(Operating System Kernel,OS Kernel)进行相对应的修改,这将耗费服务器系统非常大的维护成本,因此并不是一个实用的技术。
现有技术中所使用的各种第七层负载平衡器技术的另一缺点在于,其不易支持持续联机(Keep-Alive Connection)的功能,所谓持续联机即该终端机利用相同的传输控制协议状态所构成的联机来传送多个要求至该服务器以减少进行三次握手的工作负荷,然而对于根据联机要求的内容进行路径交换的一第七层负载平衡器来说,这是非常难以做到的,因为该联机中的多个要求有可能必须被指定到不同的服务器。举例来说,如上述利用传输控制协议交递技术的网页交换器,当一客户端的终端机送出一要求至该网页交换器后,该网页交换器将该要求传送到一第一服务器,此时则该第一服务器会具备有这一联机的传输控制协议状态,但若该终端机所送出的第二个要求的内容显示该终端机要存取一第二服务器,此时该网页交换器将无法直接把该第二个要求传送至该第二服务器,因为该第二服务器并不具备有该联机的传输控制协议状态。若该网页交换器要利用该传输控制协议状态将该第二个要求传送至该第二服务器,则该网页交换器必须要求该第一服务器将该传输控制协议状态转移至该第二服务器,这种技术即称为多重交递技术(Multiple Handoff),然而多重交递技术在实际操作中非常难以实现,所以目前市面上的产品多不使用传输控制协议中的持续联机的功能。
最后,现有所使用的各种第七层负载平衡器技术还存在另一个问题,那就是支持服务器端语言对话(Session)机制一贯性(Server Side Language’s SessionPersistence)的功能,现今许多网站会使用服务器端的描述指令(Script),例如PHP,ASP以及JSP等,来建立如动态内容、数据库问卷或者购物车等的应用,这些Script会在一特定期间内在该服务器中提供应用层的一Session来储存用户信息及程序参数,现有技术通常使用附加Cookie的方法来实现此一Session机制,当该服务器启始一Session时,其会在送出的数据中附加上一特殊的Cookie,在此称之为Session Cookie,该Session Cookie包含有一名称以及一辨识值,其中每一辨识值对应至该服务器中独特的一Session,举例来说,一PHP的Session Cookie可以为“PHPSESSID=IUHBCXDEDSDFHJMLJHGBVCRXNBNJBGGCRDL”,其中位于等号前面的即为该名称,而位于等号后面的则为该辨识值,而在接下来由该用户所送出的要求中均会附加上该SessionCookie,则该服务器即可利用该辨识值来分辨相对应于该用户的该Session。然而在一个根据联机要求的内容来进行路径交换的第七层负载平衡器技术中,该Session时常需要使用多个不同的传输控制协议联机以存取该网站的数据(即对多个不同的服务器进行存取),但是由于不同的服务器针对每一Session所附加的Session Cookie均相同,这将会造成第七层负载平衡器无法利用Session Cookie中的信息进行路径交换,或者造成服务器存取错误。现有技术中有利用如预先定义法(Pre-Definition)、或者自动Cookie插入法(AutomaticCookie Insertion)等方法,但是这些方法却有须改写操作系统核心或者须改变封包长度的缺点。
综上可知,所述现有技术的各种第七层负载平衡器技术,在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明主要目的在于提供一种预先选取一服务器,以建立一传输控制协议状态而将第七层负载平衡器的工作负荷转移至该服务器端来处理的方法,使用将第七层负载平衡器的工作负荷转移至服务器端处理的直接路由技术,以解决上述现有技术中第七层负载平衡器的处理能力成为瓶颈的问题。
本发明的另一主要目的在于,利用服务器端的一封包过滤器将来自于一第七层负载平衡器的重置封包保留一段预定时间,以解决上述现有第七层负载平衡器技术不易支持持续联机功能的问题。
本发明的另一主要目的在于,利用改写Cookie名称的方法以解决上述现有第七层负载平衡器技术无法在根据联机要求的内容,进行对多个服务器的路径交换时达到同时支持Session一贯性功能的问题。
为了实现上述目的,本发明提供一种将第七层负载平衡器的工作负荷转移至服务器端来处理的方法,其应用于一网络系统,该网络系统包含有一终端机,其可在要送出一联机要求前输出一同步封包;一第七层负载平衡器,电连接于该终端机,用来根据该联机要求的内容进行路径交换;以及至少一服务器,电连接于该第七层负载平衡器,该服务器包含有一实际服务器,用来处理及储存数据,以及一封包过滤器,用来处理传送至该服务器的联机要求及处理自该服务器传送出去的数据;该方法包含有以下步骤:利用该终端机送出一第一同步封包至该第七层负载平衡器;在该第七层负载平衡器接收到该第一同步封包后,传送该第一同步封包至预先选取的第一服务器的封包过滤器。
本发明在一第七层负载平衡器从一终端机接受到一同步封包时,直接将该同步封包传送给一预先选取的服务器,而由该服务器与该终端机进行联机,借此将该第七层负载平衡器的工作负荷转移至该服务器,并在每一服务器中包含有一封包过滤器,用来保留来自于该第七层负载平衡器的重置封包,以减少因联机中断而必须重新进行三次握手以建立传输控制协议状态的工作负荷,该封包过滤器还可用来改写从该服务器传送出及传送至该服务器的数据中所附加的Cookie的名称,以使得在根据联机要求的内容进行对多个服务器的路径交换时能达到同时支持Session一贯性的功能。
为了实现上述目的,本发明提供一种将第七层负载平衡器的工作负荷转移至服务器端来处理的方法,其应用于一网络系统,该网络系统包含:一终端机,一第七层负载平衡器,以及至少一服务器,该服务器包含一实际服务器,以及一封包过滤器,该方法至少包含以下步骤:
一服务器的实际服务器通过该服务器的封包过滤器与该终端机进行三次握手,建立其与该终端机之间的一传输控制协议状态;
该终端机送出一联机要求至该第七层负载平衡器;
该第七层负载平衡器检测该联机要求的内容;
该服务器的封包过滤器将该联机要求的序号转换后传送给该服务器的实际服务器;以及
该终端机通过该传输控制协议状态对该服务器的实际服务器进行数据存取;
其中进行三次握手建立该传输控制协议状态的步骤中还包含以下步骤:
该终端机送出一同步封包至该第七层负载平衡器;
该第七层负载平衡器传送该同步封包至该服务器的封包过滤器;
该服务器的封包过滤器直接传送该同步封包至该服务器的实际服务器;
该服务器的封包过滤器接收来自该服务器的实际服务器的一同步确认封包,并将该同步确认封包直接传送至该终端机;
该终端机传送一确认封包至该第七层负载平衡器;
该第七层负载平衡器将该确认封包传送至该封包过滤器;以及
该封包过滤器传送该确认封包至该服务器的实际服务器。
本发明还提供一种将第七层负载平衡器的工作负荷转移至服务器端来处理的方法,其应用于一网络系统,该网络系统包含:一终端机,一第七层负载平衡器,以及至少一服务器,该服务器包含一实际服务器,以及一封包过滤器,该方法至少包含以下步骤:
一第一服务器的实际服务器通过该第一服务器的封包过滤器与该终端机进行三次握手,建立其与该终端机之间的一第一传输控制协议状态;
该终端机送出一第一联机要求至该第七层负载平衡器;
该第七层负载平衡器检测该第一联机要求的内容;
该第七层负载平衡器将该第一联机要求传送至一第二服务器的封包过滤器,同时传送一重置封包至该第一服务器的封包过滤器;
该第二服务器的实际服务器通过该第二服务器的封包过滤器与该终端机进行三次握手,建立其与该终端机之间的一第二传输控制协议状态;
该第二服务器的封包过滤器将该第一联机要求传送至该第二服务器的实际服务器;以及
该终端机通过该第二传输控制协议状态对该第二服务器的实际服务器进行数据存取;
其中该第一服务器的实际服务器通过该第一服务器的封包过滤器与该终端机进行三次握手,建立其与该终端机之间的该第一传输控制协议状态的步骤中还包含以下步骤:
该终端机送出一第一同步封包至该第七层负载平衡器;
该第七层负载平衡器传送该第一同步封包至预先选取的第一服务器的封包过滤器;
该第一服务器的封包过滤器直接传送该第一同步封包至该第一服务器的实际服务器;
该第一服务器的封包过滤器接收来自该第一服务器的实际服务器的一第一同步确认封包,并将该同步确认封包直接传送至该终端机;
该终端机传送一确认封包至该第七层负载平衡器;
该第七层负载平衡器将该确认封包传送至该封包过滤器;
该封包过滤器传送该确认封包至该服务器的实际服务器;
建立其与该终端机之间的该第一传输控制协议状态;
其中该第二服务器的实际服务器通过该第二服务器的封包过滤器与该终端机进行三次握手,建立其与该终端机之间的该第二传输控制协议状态的步骤中还包含以下步骤:
该第二服务器的封包过滤器传送一第二同步封包至该第二服务器的实际服务器;
该第二服务器的实际服务器传送一第二同步确认封包至该第二服务器的封包过滤器;
该第二服务器的封包过滤器传送一确认封包至该第二服务器的实际服务器;
建立其与该终端机之间的该第二传输控制协议状态;
以及其中该第二服务器的封包过滤器将该第一联机要求传送至该第二服务器的实际服务器的步骤中还包含以下步骤:
当该第二传输控制协议状态建立后,该第二服务器的封包过滤器会将序号转换后的该第一联机要求传送至该第二服务器的实际服务器;
该第二服务器的实际服务器会依照该第一联机要求的内容将该终端机所需要的数据传送至该第二服务器的封包过滤器,而该第二服务器的封包过滤器则会将序号转换后的该数据在越过该第七层负载平衡器的情况下直接传送至该终端机;
该终端机在接下来所送出的封包均会被该第七层负载平衡器传送至该第二服务器;
该第二服务器的封包过滤器会将序号转换后的该封包传送至该第二服务器的实际服务器。
附图简要说明
下面结合附图,通过对本发明的较佳实施例的详细描述,将使本发明的技术方案及其他有益效果显而易见。
附图中,
图1为本发明的方法中一网络系统的系统原理图;
图2为本发明的方法中预先选取一服务器以建立联机且预选正确时的流程图;
图3为本发明的方法中预先选取一服务器以建立联机却预选错误时的流程图;
图4为本发明的方法中一服务器已建立一联机但一联机要求要存取另一服务器的流程图;
图5为图4中另一联机要求要存取原先已建立一联机的该服务器的流程图;
图6为本发明的方法中改写Cookie名称的示意图;
图7为本发明的方法中在数据及要求中附加Cookie的流程图;
图8为本发明的方法中一数据附加有多个Cookie以进行路径交换的流程图。
具体实施方式
下文,将详细描述本发明。
请参阅图1,图1显示本发明的将第七层负载平衡器的工作负荷转移至服务器端来处理的方法中的一网络系统10,网络系统10包含有一终端机12,一第七层负载平衡器14,及至少一服务器16,而服务器16则包含有一封包过滤器18以及一实际服务器20。其中终端机12为一客户端的用户接口,可依照用户的需求送出联机要求以及相对应于该联机要求的各种封包,并接收来自于服务器的数据及封包;第七层负载平衡器14则如前所述,能够检测未自于用户的联机要求的内容并根据该内容进行路径交换;而服务器16的封包过滤器18通常会以服务器16中的一软件程序的形式(例如一防火墙)存在而发挥其功能,所有传送至服务器16而要由实际服务器20处理的数据均须先进入封包过滤器18,而所有要自服务器16传送出去的数据还须先由实际服务器20进入封包过滤器18。然而,以软件程序的形式实现封包过滤器18仅为本发明的较佳实施例,其它能够到达相同目的而符合本发明的精神的应用,也属于本发明的涵盖范围。接下来将详细说明本发明的方法的各个步骤。
请参阅图2,图2显示本发明的方法中当第七层负载平衡器14接收到来自于一终端机12的一第一同步封包(SYN Packet)时,第七层负载平衡器14预先选取一服务器以建立联机且预选正确时的流程图,此处将该预先选取的服务器设为一第一服务器16a,该方法包含下列步骤:
步骤21:第七层负载平衡器14接收到来自于终端机12的该第一同步封包后,直接将该第一同步封包传送至预先选取的该第一服务器16a的封包过滤器18a;
步骤22:封包过滤器18a会在不改变序号(Sequence Number)(如图2所示该序号为CSEQ)的情况下,将该第一同步封包传送至第一服务器16a的实际服务器20a;
步骤23:实际服务器20a在接收到该第一同步封包后,会送出一第一同步确认封包(SYN-ACK Packet)至封包过滤器18a,此时封包过滤器18a会建立一数据结构用来储存该第一同步确认封包的序号(如图2所示,该序号为RSEQ),以在接下来的步骤进行序号转换,并将序号转换后的该第一同步确认封包(如图2所示,此时该序号为WSEQ)直接传送至终端机12;
步骤24:终端机12在接收到该第一同步确认封包后,会送出一第一确认封包(ACK Packet)至第七层负载平衡器14,而第七层负载平衡器14会直接将该第一确认封包传送至封包过滤器18a;
步骤25:封包过滤器18a会利用该数据结构转换该第一确认封包的序号(如图2所示),再将该第一确认封包传送至实际服务器20a,如此即完成了三次握手,而实际服务器20a会建立终端机12及实际服务器20a之间的一第一传输控制协议状态;
步骤26:当该第一传输控制协议状态建立后,终端机12会送出一第一联机要求至第七层负载平衡器14,而第七层负载平衡器14则会检测该第一联机要求的内容,若其内容显示该第一联机要求要存取第一服务器16a,则第七层负载平衡器14会将该第一联机要求传送至封包过滤器18a;
步骤27:封包过滤器18a会将对该第一联机要求进行序号转换,并将序号转换后的该第一联机要求传送至实际服务器20a;
步骤28:实际服务器20a会依照该第一联机要求的内容将终端机所需要的数据传送至封包过滤器18a,而封包过滤器18a则会将序号转换后的该数据在越过(Bypass)第七层负载平衡器14的情况下直接传送至终端机12;
步骤29:终端机12在接下来所送出的封包均会被第七层负载平衡器14传送至第一服务器16a;
步骤30:封包过滤器18a会将序号转换后的该封包传送至实际服务器20a。
现在请参阅图3,图3显示本发明的方法中当第七层负载平衡器14接收到来自于一终端机12的一第一同步封包时,第七层负载平衡器14预先选取一服务器以建立联机却预选错误时的流程图,请注意,图3也包含有图2的步骤21至步骤25的动作,重复的部份在此不再贽述,该方法还包含下列步骤:
步骤31:当该第一传输控制协议状态建立后,终端机12会送出一第一联机要求至第七层负载平衡器14,而第七层负载平衡器14则会检测该第一联机要求的内容;
步骤32:若该第一联机要求的内容显示该第一联机要求要存取一第二服务器16b,则第七层负载平衡器14会传送一重置封包(RST Packet)至该第一服务器16a的封包过滤器18a;
步骤33:同时第七层负载平衡器14也会将该第一联机要求传送至第二服务器16b的封包过滤器18b;
步骤34:封包过滤器18b接收到该第一联机要求后,会送出一第二同步封包至第二服务器16b的实际服务器20b,该第二同步封包的序号与该第一同步封包的序号相同(CSEQ);
步骤35:实际服务器20b在接收到该第二同步封包后,会送出一第二同步确认封包至封包过滤器18b,此时封包过滤器18b会建立一数据结构用来储存该第二同步确认封包的序号(RSEQ),以在接下来的步骤进行序号转换;
步骤36:同时封包过滤器18b会送出一第二确认封包至实际服务器20b,如此即完成了三次握手而实际服务器20b会建立终端机12及实际服务器20b之间的一第二传输控制协议状态;
步骤37:当该第二传输控制协议状态建立后,封包过滤器18b会将序号转换后的该第一联机要求传送至实际服务器20b;
步骤38:实际服务器20b会依照该第一联机要求的内容将终端机12所需要的数据传送至封包过滤器18b,而封包过滤器18b则会将序号转换后的该数据在越过第七层负载平衡器14的情况下直接传送至终端机12;
步骤39:终端机12在接下来所送出的封包均会被第七层负载平衡器14传送至第二服务器16b;
步骤40:封包过滤器18b会将序号转换后的该封包传送至实际服务器20b。
综上可知,本实施例中当第七层负载平衡器14接收到该第一同步封包后,会将该第一同步封包直接传送至预先选取的一第一服务器16a,并由第一服务器16a利用该第一同步封包的HTTP标头(HTTP Header)中的信息来建立终端机12及实际服务器20a之间的传输控制协议状态,在这种原理下,原本由第七层负载平衡器14所处理的工作负荷现在均转移至预先选取的第一服务器16a来进行处理,而第七层负载平衡器14仅负责检测数据内容并依其内容传送该数据,且所有自第一服务器16a回传至终端机12的封包及数据均不会通过第七层负载平衡器14,因而大大地减少了第七层负载平衡器14的工作负荷,使得第七层负载平衡器14不再成为数据流量的瓶颈。以上将第七层负载平衡器14的路径交换工作转移(Migrate)至服务器16的封包过滤器18处理而使第七层负载平衡器14的工作负荷大为减少的技术,称为直接路由(DirectRouting)。
请参阅图4,图4中显示本发明的方法中一服务器已建立一联机但一联机要求要存取另一服务器的流程图,此处将该已建立联机的服务器设为上述的第二服务器16b,将该联机要求设为一第二联机要求,而将该第二联机要求所要存取的另一服务器设为一第三服务器16c,则该方法包含有如图4中所示的步骤41至步骤50,由于步骤41至步骤50的动作与上述的步骤31至步骤40的动作十分类似(如图3及图4所示),故不再重复叙述。当该已建立联机的服务器(此处为第二服务器16b)接收到该重置封包后,封包过滤器18b会先将该重置封包保留(Stall)一预定时间(在本实施例中该预定时间为15秒),若在该预定时间内封包过滤器18b并未接收到任何联机要求,则封包过滤器18b会将该重置封包传送到实际服务器20b,而当实际服务器20b接收到该重置封包后,即会将该已建立的联机中断。现在请参阅图5,图5中显示图4中当另一联机要求要存取原先已建立一联机的第二服务器的流程图,所图5中的步骤包含有图4的步骤41至步骤50的动作,重复的部份在此不再贽述,该方法还包含有下列步骤:
步骤51:当第七层负载平衡器14接收到一第三联机要求,并在检测其内容后发现该第三联机要求要存取原先已建立联机的第二服务器16b;
步骤52:则第七层负载平衡器14会传送一重置封包至该第三服务器16c;
步骤53:同时第七层负载平衡器14会将该第三联机要求传送至第二服务器16b;
步骤54:当封包过滤器18b接收到该第三联机要求时,若实际服务器20b仍然维持原先已建立的联机,则封包过滤器18b会利用该联机将序号转换后的该第三联机要求传送至实际服务器20b,如图5所示,否则,封包过滤器18b会与实际服务器20b进行三次握手以重新建立联机,如前面步骤所述;
步骤55:实际服务器20b会依照该第三联机要求的内容将终端机所需要的数据传送至封包过滤器18b,而封包过滤器18b则会将序号转换后的该数据在越过第七层负载平衡器14的情况下直接传送至终端机12;
步骤56:终端机12在接下来所送出的封包均会被第七层负载平衡器14传送至第二服务器16b;
步骤57:封包过滤器18b会将序号转换后的该封包传送至实际服务器20b。
综合图4及图5的流程图所述可知,当封包过滤器18b接收到该重置封包后,其会将该重置封包保留一预定时间,而不同于现有技术中当服务器接收到一重置封包后会立即将已建立的联机中断,由于在该预定时间之中用户会利用终端机12再次送出要存取第二服务器16b的机率很大,所以在这种原理下,因联机中断而必须重新进行三次握手以建立传输控制协议状态的工作负荷量将大为减少。
请参阅图6,图6中显示本发明的方法中改写Cookie名称的一较佳实施例的示意图,假设当一服务器16启始一Session时,其在送出的数据中附加上的Session Cookie为如同先前所述的“PHPSESSID=IUHBCXDEDSDFHJMLJHGBVCRXNBNJBGGCRDL”(如图6中所示的原始Cookie),用来提供该服务器16分辨相对应于该用户的该Session,本发明的方法为了在该Session使用多个不同的传输控制协议联机存取该网站的数据时,不会因为Session Cookie具有相同的名称,而发生在不同的服务器16中将先前附加的Session Cookie覆盖而导致第七层负载平衡器14无法根据该Session Cookie进行路径交换,或者造成服务器存取错误,该服务器16的封包过滤器18会在每一附加有该Session Cookie的数据要通过封包过滤器18传送出去时,将该Session Cookie的名称进行如图6中显示的改写Cookie,在本实施例中封包过滤器18对该Session Cookie的名称的前八个字符进行改写,其中最前面二个字符为一组关键字用来标识该Cookie为带有路径交换信息的一特殊Cookie,接下来三个字符则用来标识该服务器16所储存的数据内容种类,而最后三个字符则用来标识该Cookie是由该服务器16所附加上的。值得注意的是,图6中所示该Session Cookie的名称的修改仅为本发明的较佳实施例,其它能够达到相同目的而符合本发明所揭露的精神的其它应用,也属于本发明的涵盖范围。接下来将详细说明本发明的方法中改写Cookie名称的步骤。
请参阅图7及图8,图7中显示本发明的方法中一服务器16在启始一Session时,其封包过滤器18在传送出去的数据中附加Session Cookie的流程图,其包含下列步骤:
步骤58:当一服务器16启始一Session时,实际服务器20会在传送出去的数据的HTTP标头(HTTP Header)中附加上一Session Cookie,例如上述的“PHPSESSID=IUHB...DL”;
步骤59:当封包过滤器18接收到包含有该Session Cookie的该数据时,会检测该数据的HTTP标头,并将该Session Cookie的名称中的前八个字符改写成相对应于服务器16的一独特的固定字符串,举例来说,如图7中所示的“DR0189C1”,然后再将Cookie名称改写后的该数据在越过第七层负载平衡器14的情况下直接传送至终端机12;
步骤60:接下来由终端机12所送出的联机要求中均会附加上经过名称改写后的该Cookie“DR0189C1D=IUHB...DL”;
步骤61:当第七层负载平衡器14接收到该联机要求后,会检测该联机要求的内容以得知终端机12要存取何种类型的数据内容,举例来说,若终端机12要存取的数据内容种类为“0x018”,则第七层负载平衡器14会检测该联机要求的HTTP标头以搜寻名称的前五个字符为“DR018”的Cookie,若此一特殊的Cookie存在于该联机要求的HTTP标头中,则第七层负载平衡器14会从该的名称中辨认出其所对应的服务器16,然后即将该联机要求传送至该服务器16,若该Cookie并不存在于该联机要求的HTTP标头中,则第七层负载平衡器14会如前所述根据该联机要求的内容进行路径交换,如前面步骤所述;
步骤62:当封包过滤器18接收到该联机要求时,会检测该联机要求的HTTP标头以找出名称前八个字符为“DR0189C1”的该Cookie,并将该八个字符还原成“PHPSESSI”,然后再将Cookie名称还原后的该联机要求传送至实际服务器20;
步骤63:当实际服务器20接收到该联机要求后,即可根据该辨识值分辨相对应于该用户的该Session。
而如图8中显示当该用户利用终端机12送出了多个存取不同数据内容种类的联机要求后,接下来终端机12所送出的联机要求将会带有多个通过不同的服务器16所附加上并改写其名称的特殊Cookie,如图8所示,则该方法包含有下列步骤:
步骤64:终端机12所送出至第七层负载平衡器14的联机要求会附加有多个名称及辨识值均不同的特殊Cookie;
步骤65:当第七层负载平衡器14接收到该联机要求后,会检测该联机要求的内容以得知终端机12要存取何种类型的数据内容,举例来说,若终端机12要存取的数据内容种类为“0x002”,而该种类代表储存于目录“/news/today”中的PHP文件,则第七层负载平衡器14会检测该联机要求的HTTP标头以搜寻名称的前五个字符为“DR002”的Cookie,而第七层负载平衡器14则会从该Cookie的名称中辨认出其所对应的服务器16,然后即将该联机要求传送至该服务器16;
步骤66:当封包过滤器18接收到该联机要求时,会检测该联机要求的HTTP标头以找出名称前八个字符为“DR002C11”的该Cookie,并将该八个字符还原成“PHPSESSI”,然后再将Cookie名称还原后的该联机要求传送至实际服务器20;
步骤67:当实际服务器20接收到该联机要求后,即可根据该辨识值分辨相对应于该用户的该Session。
综合图7及图8的流程图所述可知,当一服务器16启始一Session后,实际服务器20会在传送出去的数据中附加上一Session Cookie,而封包过滤器18则会对该Cookie的名称进行改写,通过如此的设计,本发明的方法即可利用实现该Session机制的该Cookie来携带路径交换的信息,同时也能保有原先该Cookie所具有的供服务器16分辨相对应于用户的该Session的功能。
本发明使用直接路由的技术,将原本由第七层负载平衡器所承担的工作负荷转移至服务器端来处理,使得第七层负载平衡器不再成为流量瓶颈;另外,本发明利用封包过滤器将重置封包保留一段预定期间,减少了因联机中断而必须重新进行三次握手以建立传输控制协议状态的工作负荷量而增强了网络系统的持续联机特性;最后,本发明又利用改写Cookie名称的方法,使得该网络系统能在进行根据联机要求的内容进行路径交换的同时仍然能够保持Session机制的一贯性,通过上述三项特征本发明能够大大地增进路径交换的效率。
可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术方案和技术构思作出其他各种相应的改变和变形,而所有这些改变和变形都应属于本发明后附的权利要求的保护范围。

Claims (6)

1、一种将第七层负载平衡器的工作负荷转移至服务器端来处理的方法,其应用于一网络系统,其特征在于,该网络系统包含:一终端机,一第七层负载平衡器,以及至少一服务器,该服务器包含一实际服务器,以及一封包过滤器,该方法至少包含以下步骤:
一服务器的实际服务器通过该服务器的封包过滤器与该终端机进行三次握手,建立其与该终端机之间的一传输控制协议状态;
该终端机送出一联机要求至该第七层负载平衡器;
该第七层负载平衡器检测该联机要求的内容;
该服务器的封包过滤器将该联机要求的序号转换后传送给该服务器的实际服务器;以及
该终端机通过该传输控制协议状态对该服务器的实际服务器进行数据存取;
其中进行三次握手建立该传输控制协议状态的步骤中还包含以下步骤:
该终端机送出一同步封包至该第七层负载平衡器;
该第七层负载平衡器传送该同步封包至该服务器的封包过滤器;
该服务器的封包过滤器直接传送该同步封包至该服务器的实际服务器;
该服务器的封包过滤器接收来自该服务器的实际服务器的一同步确认封包,并将该同步确认封包直接传送至该终端机;
该终端机传送一确认封包至该第七层负载平衡器;
该第七层负载平衡器将该确认封包传送至该封包过滤器;以及
该封包过滤器传送该确认封包至该服务器的实际服务器。
2、一种将第七层负载平衡器的工作负荷转移至服务器端来处理的方法,其应用于一网络系统,其特征在于,该网络系统包含:一终端机,一第七层负载平衡器,以及至少一服务器,该服务器包含一实际服务器,以及一封包过滤器,该方法至少包含以下步骤:
一第一服务器的实际服务器通过该第一服务器的封包过滤器与该终端机进行三次握手,建立其与该终端机之间的一第一传输控制协议状态;
该终端机送出一第一联机要求至该第七层负载平衡器;
该第七层负载平衡器检测该第一联机要求的内容;
该第七层负载平衡器将该第一联机要求传送至一第二服务器的封包过滤器,同时传送一重置封包至该第一服务器的封包过滤器;
该第二服务器的实际服务器通过该第二服务器的封包过滤器与该终端机进行三次握手,建立其与该终端机之间的一第二传输控制协议状态;
该第二服务器的封包过滤器将该第一联机要求传送至该第二服务器的实际服务器;以及
该终端机通过该第二传输控制协议状态对该第二服务器的实际服务器进行数据存取;
其中该第一服务器的实际服务器通过该第一服务器的封包过滤器与该终端机进行三次握手,建立其与该终端机之间的该第一传输控制协议状态的步骤中还包含以下步骤:
该终端机送出一第一同步封包至该第七层负载平衡器;
该第七层负载平衡器传送该第一同步封包至预先选取的第一服务器的封包过滤器;
该第一服务器的封包过滤器直接传送该第一同步封包至该第一服务器的实际服务器;
该第一服务器的封包过滤器接收来自该第一服务器的实际服务器的一第一同步确认封包,并将该同步确认封包直接传送至该终端机;
该终端机传送一确认封包至该第七层负载平衡器;
该第七层负载平衡器将该确认封包传送至该封包过滤器;
该封包过滤器传送该确认封包至该服务器的实际服务器;
建立其与该终端机之间的该第一传输控制协议状态;
其中该第二服务器的实际服务器通过该第二服务器的封包过滤器与该终端机进行三次握手,建立其与该终端机之间的该第二传输控制协议状态的步骤中还包含以下步骤:
该第二服务器的封包过滤器传送一第二同步封包至该第二服务器的实际服务器;
该第二服务器的实际服务器传送一第二同步确认封包至该第二服务器的封包过滤器;
该第二服务器的封包过滤器传送一确认封包至该第二服务器的实际服务器;
建立其与该终端机之间的该第二传输控制协议状态;
以及其中该第二服务器的封包过滤器将该第一联机要求传送至该第二服务器的实际服务器的步骤中还包含以下步骤:
当该第二传输控制协议状态建立后,该第二服务器的封包过滤器会将序号转换后的该第一联机要求传送至该第二服务器的实际服务器;
该第二服务器的实际服务器会依照该第一联机要求的内容将该终端机所需要的数据传送至该第二服务器的封包过滤器,而该第二服务器的封包过滤器则会将序号转换后的该数据在越过该第七层负载平衡器的情况下直接传送至该终端机;
该终端机在接下来所送出的封包均会被该第七层负载平衡器传送至该第二服务器;
该第二服务器的封包过滤器会将序号转换后的该封包传送至该第二服务器的实际服务器。
3、根据权利要求2所述的将第七层负载平衡器的工作负荷转移至服务器来处理的方法,其特征在于,当该终端机送出一第二联机要求要存取一第三服务器时,还包含以下步骤:
该第七层负载平衡器传送该第二联机要求至一第三服务器的封包过滤器;
传送一重置封包至该已联机的第二服务器的封包过滤器;
该第三服务器的封包过滤器送出一第三同步封包至该第三服务器的实际服务器;
该第三服务器的实际服务器通过该第三服务器的封包过滤器与该终端机进行三次握手,建立其与该终端机之间的一第三传输控制协议状态;
该第三服务器的封包过滤器传送该第二联机要求至该第三服务器的实际服务器;以及
该终端机通过该第三传输控制协议状态对该第三服务器的实际服务器进行数据存取。
4、根据权利要求2或3所述的将第七层负载平衡器的工作负荷转移至服务器端来处理的方法,其特征在于,当该已建立联机的服务器的封包过滤器接收到该重置封包后,会先将该重置封包保留一段预定时间,若在该预定时间内该服务器的封包过滤器并未接收到任何联机要求,则将该重置封包传送到该服务器的实际服务器。
5、根据权利要求1或2所述的将第七层负载平衡器的工作负荷转移至服务器端来处理的方法,其特征在于,当一服务器的实际服务器要传送包含有Session信息的一数据至该终端机时,该服务器的实际服务器附加一用来储存该Session信息的Cookie至该数据中,并由该服务器的封包过滤器修改该数据的该Cookie的名称,以使得该终端机会在接下来传送出去的联机要求中附加该名称被修改后的Cookie。
6、根据权利要求5所述的将第七层负载平衡器的工作负荷转移至服务器端来处理的方法,其特征在于,在该第七层负载平衡器接收到附加有该被修改名称的Cookie的联机要求后会检测该联机要求的内容及该Cookie,并传送该联机要求到相对应于该Cookie的服务器的封包过滤器。
CN03123193A 2003-04-18 2003-04-18 将第七层负载平衡器的工作负荷转移至服务器端来处理的方法 Expired - Fee Related CN100581157C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN03123193A CN100581157C (zh) 2003-04-18 2003-04-18 将第七层负载平衡器的工作负荷转移至服务器端来处理的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN03123193A CN100581157C (zh) 2003-04-18 2003-04-18 将第七层负载平衡器的工作负荷转移至服务器端来处理的方法

Publications (2)

Publication Number Publication Date
CN1538705A CN1538705A (zh) 2004-10-20
CN100581157C true CN100581157C (zh) 2010-01-13

Family

ID=34321233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN03123193A Expired - Fee Related CN100581157C (zh) 2003-04-18 2003-04-18 将第七层负载平衡器的工作负荷转移至服务器端来处理的方法

Country Status (1)

Country Link
CN (1) CN100581157C (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069903B2 (en) * 2013-04-16 2018-09-04 Amazon Technologies, Inc. Distributed load balancer
US10581962B2 (en) * 2017-11-01 2020-03-03 Alibaba Group Holding Limited Direct communication between physical server and storage service

Also Published As

Publication number Publication date
CN1538705A (zh) 2004-10-20

Similar Documents

Publication Publication Date Title
US5931913A (en) Methods, system and computer program products for establishing a session between a host and a terminal using a reduced protocol
CN105337961B (zh) 和客户端进行通信的方法以及服务器
CN101783771A (zh) 一种实现负载均衡持续性的方法和设备
US7102996B1 (en) Method and system for scaling network traffic managers
US8838802B2 (en) Proximity routing for session based applications using anycast
US7072965B2 (en) Communication distribution controlling method and apparatus having improved response performance
CN102272747B (zh) 用于管理远程用户界面的状态信息的方法和装置
CN102904903B (zh) 通信系统和通信方法
KR100354369B1 (ko) 정보 처리 방법, 정보 처리 장치, 정보 처리 프로그램을 격납하는 기억 매체
CN102047242A (zh) 内容管理
CN102045409B (zh) 网络穿透方法及网络通讯系统
CN108390950A (zh) 一种消息推送方法、装置及设备
JP4076117B2 (ja) ネットワークコンテンツの同期表示方法
CN1595890B (zh) 与预订通知服务的虚拟连接
CN1906890B (zh) 用于支持事务的方法和装置
CN1631018B (zh) 在网络中获取信息的方法和装置
CN100581157C (zh) 将第七层负载平衡器的工作负荷转移至服务器端来处理的方法
JPH10233772A (ja) 情報処理装置及びその方法
WO2002021749A2 (en) Providing a personalized web page by accessing different servers
KR100429059B1 (ko) 클라이언트간 데이터 직접 통신을 이용한 다자간웹브라우저 동기화 방법 및 시스템
JP2000224260A (ja) 通信制御装置
Chika et al. Financial stock application using websocket in Real Time Application
CN1972285A (zh) 用于生成统一资源定位符的拦截器组件和方法
CN101291273A (zh) 一种网页间通信的方法、系统及在音乐搜索中的应用
CN113132477A (zh) 一种浏览器终端与设备的实时传输交互方法及系统

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: 20100113

Termination date: 20190418

CF01 Termination of patent right due to non-payment of annual fee