一种在应用层交换中提高服务器响应速度的系统及方法

文档序号:6561118阅读:250来源:国知局
专利名称:一种在应用层交换中提高服务器响应速度的系统及方法
技术领域
本发明涉及一种网络服务器响应速度的技术,特别是指一种在应用层交换中加速服务器响应速度的系统及其实现方法。


图1所示,其工作原理是根据一个数据流的第一个报文和所设置的负载均衡策略选择一个真实的服务器,对于该流的后续报文则根据其五元组(源目的地址、源目的端口号和协议号)来进行转发,使得同一个流的报文始终由同一个服务器来处理。由于采用负载均衡策略,交换机可以根据服务器的忙闲状况或运行处理速度快慢等因素,全面考虑该数据流的分配方向。故此,该技术能够有效地完成不同服务器之间的流量分担,使得服务器的扩充十分容易。
但是在这种工作模式下,要求每台服务器都能提供用户所有要访问的内容,造成了大量的冗余;同时,所有服务器所存储的内容的同步也需要额外进行考虑,因此出现了应用层交换技术。
应用层交换技术就是根据连接中的应用层信息,比如统一资源定位(URL)、Cookie等信息来进行交换,可以实现将不同内容的请求导向到不同的服务器上,从而实现不同内容的独立维护。例如静态的超文本链接标示语言(HTML)页面可以存贮在速度慢但容量大的服务器上,而动态生成的计算机图形接口(CGI)页面则由速度快的服务器来进行处理。如图2所示,至少包括三个服务器组,文件数据可以分类由不同的服务器组进行处理,比如jpg类文件和gif类图形文件可由服务器组1处理;bin类文件、cgi类图形接口文件以及exe类执行文件可由服务器组2处理;而html类文件数据则由服务器组3处理。
由于连接建立过程中的报文中并不包含有应用层信息,所以在服务器与客户端建立连接时,交换机必须先冒充服务器与客户建立连接,得到应用层信息之后,才能确定将该连接请求发送给哪一个真实的服务器,然后,交换机再与此真实服务器建立连接,转发客户的请求。因此,该工作过程的实际处理流程如图3所示1)首先,由交换机冒充服务器接收客户端所发的TCP同步信号TCPSYN,该信号表示客户请求建立一个TCP连接;然后,交换机替代服务器向客户端回送同步应答信号SYN ACK,确认连接建立;客户端收到SYNACK之后,再向冒充服务器--交换机送一个收到确认的信号ACK;经过上述三次握手之后,连接建立,客户端即发送应用层请求给冒充服务器--交换机。
2)当交换机收到客户发的应用层请求后,从请求中提出应用层信息,以确定客户的该请求实际应该发给哪个真实的服务器,然后交换机向目的服务器发TCP同步信号TCP SYN,请求建立一个TCP连接;该服务器向交换机回送同步应答信号SYN ACK,确认连接建立;交换机收到SYN ACK之后,再向目的服务器送一个收到确认的信号ACK;经过握手后,连接建立,交换机即将客户端发出的应用层请求转发给目的服务器,而后,客户端即可与真实的目的服务器直接通信,发送数据。
该方法的优点在于可以将不同的内容放置在不同的服务器上,提高了服务器的利用率,并且对特定的内容只要在少数几台服务器之间进行同步刷新,便于进行内容的维护。但从图上可以看出,由于每次根据应用层信息选中一个真实的服务器之后需要实时地发起与真实服务器的连接,这样,客户端发出应用层请求之后,需要等待交换机冒充客户与服务器建立连接,并转发服务器所回应的应答,因而得到服务器响应的时间大大增加,不能够满足提高用户访问速度的要求。
本发明的另一目的在于提供一种在应用层交换中提高服务器响应速度的方法,使其能大大缩短客户端与服务器之间连接建立的时间,快速地转发应用层请求,从而使得服务器的响应时间明显缩短,进而提高对用户的服务质量。
本发明的技术方案具体是这样实现的一种在应用层交换中提高服务器响应速度的系统,至少包括用于内容识别和报文交换的URL识别模块;用于检测所连接服务器的健康状况和负载程度的服务器健康性检测模块;用于实现交换机冒充服务器接收客户端所发信号的TCP哄骗模块;关键在于还包括一个服务器端连接储备模块,用来预先与服务器建立连接,并通过已建立好的连接对服务器的健康状况和负载程度进行检测;服务器端连接储备模块同时连接服务器健康性检测模块、TCP哄骗模块和服务器端口处理模块;TCP哄骗模块还同时与URL识别模块及客户端口处理模块相连。
所述的与服务器建立连接是与每一台服务器建立一个以上的连接。该服务器端连接储备模块根据每台服务器健康状况的检测结果预先设置该服务器连接储备数目的阈值。所述的服务器健康状况检测是指检测目的服务器是否可用。
一种在应用层交换中提高服务器响应速度的方法,该方法至少包括以下的步骤a.由应用层交换系统中的服务器连接储备模块与每台服务器建立连接;b.当客户端发起请求时,交换机首先与客户端建立连接,在收到客户端发送的应用层请求之后,从应用层请求中提取出应用层信息,确定该客户所选定的目的服务器,然后利用与该目的服务器已建立好的连接转发客户端信息给服务器,并将服务器的应答转发给客户。
所述服务器连接储备模块与服务器建立连接进一步包括以下步骤a.与每一台服务器建立一个以上的连接,之后等待定时器事件的触发;b.对每一台服务器进行健康性检测,根据健康状况的检测结果设定每一台服务器连接储备数目的阈值;c.实时检测每台服务器当前的连接储备数目是否低于预先设定的阈值,如果当前检测的服务器的连接储备数目低于所设定的阈值,则服务器连接储备模块与该服务器建立一个以上的新连接,然后返回步骤c;否则,等待定时器事件触发,进入步骤b。
所述的定时器事件是指定时检查交换机与服务器之间的连接储备情况。所述的连接储备数目阈值小于所建立的连接数。所述的服务器健康状况是指检测目的服务器是否可用。所检测的目的服务器不可用时,连接储备数目阈值设为零;所检测的目的服务器可用时,连接储备数目阈值根据该服务器所能支持的连接数决定。
由上述技术方案可以看出,本发明的关键在于在现有的实现系统中添加一个服务器连接储备模块,从而建立一种交换机与服务器之间的连接储备机制,使交换机预先与各服务器之间建立连接的储备,通过这些连接储备,交换机可以迅速地将客户的应用层请求转发给特定的服务器进行处理,从而缩短了服务器响应时间。
通过本发明的方法,不仅能够得到更快速的服务器响应,而且更容易实现服务器健康状况及负载情况的检测,提高了用户服务质量。
本发明主要应用于一个应用层交换系统中,如图4所示,该系统至少包括用于内容识别和报文交换的URL识别模块;用于检测所连接服务器的健康状况和负载程度的服务器健康性检测模块;用来实现交换机冒充服务器接收客户端所发信号的TCP哄骗模块;重要的是,该系统还包括一个服务器端连接储备模块,用来事先与服务器建立连接,并通过这些连接对服务器的健康状况和负载情况进行检测。其中,TCP哄骗模块与客户端口处理模块相连,用来接收客户信息;而服务器端连接储备模块与服务器端口处理模块相连,用来建立与服务器间的连接,TCP哄骗模块还与服务器端连接储备模块和URL识别模块相连,服务器端连接储备模块还与服务器健康性检测模块相连。所传输的报文从客户端口处理模块进入,经过上述URL识别模块、TCP哄骗模块、服务器健康性检测模块以及服务器端连接储备模决的识别、确认、处理、确定导向后,从服务器端口处理模块输出至相应的目的服务器。该系统既包括软件的实现方式,也包括以硬件实现的方式,比如采用可编程逻辑处理芯片。
本发明中服务器连接储备模块具体的工作实现流程如图5所示,至少包括以下的步骤a.服务器连接储备模块与每一台服务器建立若干个连接,连接的数目可根据实际运行情况或客户对不同资源需求的比率而定,连接建立后作为储备资源,当交换机需要与某台服务器建立连接时,则提供一个相应服务器的连接。连接建立好后,连接储备模块等待定时器事件的触发,该定时事件是用来定时检查交换机与服务器之间的连接储备情况。
b.对每一台服务器进行健康性实时检测,并根据健康状况的检测结果来确定每一台服务器连接储备数目的阈值。其中,该阈值是指决定是否需要建立一批新连接的判断基准值,低于该值则需要马上建立一批新连接,否则不需要;健康状况检测是指检测每台服务器是否可用,如果可用,则根据该服务器所能支持的连接数来确定阈值,如果不可用,则阈值设置为零;该储备数目是指当前已建立可供使用的连接的数目。
c.根据定时事件检测结果判断每一台服务器的连接储备数目是否已低于所设定的阈值,如果是,则与该服务器建立一批新连接,以备使用,然后回到步骤c;否则,仍等待定时器事件的触发,进入步骤b。
通过上述模块结构及其工作流程,交换机即可与服务器预先建立的一系列连接,交换机可以及时获知服务器的健康状况和负载程度,从而可以确定最适合处理请求的服务器,更重要的是由于交换机储备了与服务器的连接,所以在确定真实服务器之后,客户的应用层请求就可以通过已经建立的连接立即发送给真实服务器,而无需长时间的等待。其处理流程参见图6所示1)首先,交换机发TCP SYN信号给服务器,经过服务器回应的SYNACK信号以及交换机收到SYN ACK后回复的ACK信号,使交换机可与每一台服务器建立多个连接;2)然后,当有客户提出连接请求和应用层请求时,只需要经过与交换机之间的握手、确认,交换机便可立即将用户的应用层请求通过已有的连接转发给服务器。
可见,交换机得到客户的应用层请求之后,能马上通过预先建立的连接将请求转发到选定的服务器,并将服务器的应答转发给客户,中间省去了与服务器三次握手建立连接的过程,因而大大提高了服务器对客户的响应时间。而且,交换机可以通过预先与服务器建立的连接事先检测服务器的健康状况和负载程度,如果所需连接的服务器健康状况有问题,可在客户提出请求时马上告知,或是将请求导向其他有同等功能的服务器,从而避免浪费客户的时间,以保证为客户提供最好的服务。
另外,交换机还可以根据实时检测当前服务器的负载情况,对客户的请求进行均横分配,以保证能为客户提供最快最好的服务。
权利要求
1.一种在应用层交换中提高服务器响应速度的系统,至少包括用于内容识别和报文交换的URL识别模块;用于检测所连接服务器的健康状况和负载程度的服务器健康性检测模块;用于实现交换机冒充服务器接收客户端所发信号的TCP哄骗模块;其特征在于还包括一个服务器端连接储备模块,用来预先与服务器建立连接,并通过已建立好的连接对服务器的健康状况和负载程度进行检测;服务器端连接储备模块同时连接服务器健康性检测模块、TCP哄骗模块和服务器端口处理模块;TCP哄骗模块还同时与URL识别模块及客户端口处理模块相连。
2.根据权利要求1所述的提高服务器响应速度的系统,其特征在于所述的与服务器建立连接是与每一台服务器建立一个以上的连接。
3.根据权利要求1所述的提高服务器响应速度的系统,其特征在于所述的服务器端连接储备模块根据每台服务器健康状况的检测结果预先设置该服务器连接储备数目的阈值。
4.根据权利要求1所述的提高服务器响应速度的系统,其特征在于所述的服务器健康状况检测是指检测目的服务器是否可用。
5.一种在应用层交换中提高服务器响应速度的方法,其特征在于该方法至少包括以下的步骤a.由应用层交换系统中的服务器连接储备模块与每台服务器建立连接;当客户端发起请求时,交换机首先与客户端建立连接,在收到客户端发送的应用层请求之后,从应用层请求中提取出应用层信息,确定该客户所选定的目的服务器,然后利用与该目的服务器已建立好的连接转发客户端信息给服务器,并将服务器的应答转发给客户。
6.根据权利要求5所述的提高服务器响应速度的方法,其特征在于所述服务器连接储备模块与服务器建立连接进一步包括以下步骤a.与每一台服务器建立一个以上的连接,之后等待定时器事件的触发;b.对每一台服务器进行健康性检测,根据健康状况的检测结果设定每一台服务器连接储备数目的阈值;c.实时检测每台服务器当前的连接储备数目是否低于预先设定的阈值,如果当前检测的服务器的连接储备数目低于所设定的阈值,则服务器连接储备模块与该服务器建立一个以上的新连接,然后返回步骤c;否则,等待定时器事件触发,进入步骤b。
7.根据权利要求6所述的提高服务器响应速度的方法,其特征在于所述的连接储备数目阈值小于所建立的连接数。
8.根据权利要求6所述的提高服务器响应速度的方法,其特征在于所述的服务器健康状况是指检测目的服务器是否可用。
9.根据权利要求6或8所述的提高服务器响应速度的方法,其特征在于所检测的目的服务器不可用时,连接储备数目阈值设为零;所检测的目的服务器可用时,连接储备数目阈值根据该服务器所能支持的连接数决定。
10.根据权利要求6所述的提高服务器响应速度的方法,其特征在于所述的定时器事件是指定时检查交换机与服务器之间的连接储备情况。
全文摘要
本发明公开了一种在应用层交换中提高服务器响应速度的系统,至少包括用于内容识别和报文交换的URL识别模块;用于检测所连接服务器的健康状况和负载程度的服务器健康性检测模块;用于实现交换机冒充服务器接收客户端所发信号的TCP哄骗模块;关键在于还包括一个服务器端连接储备模块,用来预先与服务器建立连接,并通过已建立好的连接对服务器的健康状况和负载程度进行检测;服务器端连接储备模块同时连接服务器健康性检测模块、TCP哄骗模块和服务器端口处理模块。该系统能支持客户端与服务器之间的快速连接及应用层请求的转发,使得服务器的响应时间大大降低。本发明同时还公开了一种在应用层交换中提高服务器响应速度的方法。
文档编号G06F13/14GK1400535SQ0112373
公开日2003年3月5日 申请日期2001年7月26日 优先权日2001年7月26日
发明者张俭锋 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1