计算机系统的制作方法

文档序号:6558405阅读:236来源:国知局
专利名称:计算机系统的制作方法
技术领域
本发明涉及具备数据包传送装置的计算机系统,特别涉及使用URL交换机(URL switch)的传送控制。
背景技术
在因特网上提供的各种服务大多在流型通信协议的TCP上实现(参照非特许文献1)。例如,万维网(World-Wide Web)使用TCP上的协议即超文本传输协议(Hypertext Transport Protocol,HTTP,参照非特许文献2)。
在HTTP协议中,按以下的顺序从服务器取得内容。首先,客户终端对服务器确立TCP连接。在流的开头包含所请求的内容的URL。服务器通过解释该URL来识别用户所请求的内容,将与所识别的URL对应的内容返回给客户终端。
如果为大规模的系统,则服务器需要处理来自多个用户的请求。为了应对该大量的处理,有时分散到多个服务器中进行处理。此时,在服务器与客户终端之间的通信路径上设置负荷分散装置,由该负荷分散装置分配来自用户的处理。负荷分散装置(URL交换机)识别客户终端所请求的URL来决定传送目的地。
URL交换机的动作如下。
URL交换机代理客户终端向服务器连接的TCP连接进行终端。URL交换机提取客户终端所发送的内容的URL。接着,决定对应于所提取的URL的传送目的地。
例如,如果是用来负荷分散的URL交换机,则从多个服务器中选择保存有该内容的服务器。URL交换机在与所选择的服务器之间设定连接,传送来自客户终端的请求。然后,URL交换机对在客户终端与服务器之间交换的数据包进行中继。
利用该动作,通过URL交换机将来自客户终端的请求传送给适当的服务器。
非特许文献1IETF,RFC793,“Transmission Control Protocol”,1981年9月非特许文献2IETF,RFC2616,“Hypertext Transfer Protocol-HTTP/1.1”,1999年6月非特许文献3Z.Genova and K.Christensen,“Using signaturesto improve URL routing.”,In proceedings of IEEE InternationalPerformance,Computing,and Communications Conference,2002年4月,p.45-52URL交换机的动作的第1特征是从所接收的请求中提取URL。此外,第2特征是通过以所提取的URL作为键标(Key)的表检索(或者某种运算)来决定传送目的地。为了使URL交换机的传送目的地判别处理高速化,需要使上述2个处理高速化。
在以往的方法中,URL交换机从请求中提取URL,以URL作为键标来选择传送目的地。在来自客户终端的请求中包含的URL的长度是不为一定的可变长度,一般为50字节左右。为了提取该URL、并根据该URL检索(或运算)表,需要较大的处理能力、存储容量。即,在该方法中难以实现高速且经济的处理。
此外,为了减小由URL交换机保存的表,提出了在表的检索键中采用URL的散列值的方法(参照非特许文献3)。根据该方法,URL交换机从请求数据包中提取URL,根据所提取的URL计算散列值,以散列值作为键标检索表。

发明内容
本发明的目的是通过用多个装置对传送目的地决定处理进行分割处理,来削减URL交换机的计算量及存储容量。
本发明是具有多个服务器和数据包传送装置的计算机系统,上述各服务器与上述数据包传送装置连接,上述数据包传送装置经由因特网与客户终端连接,上述数据包传送装置接收内容请求,提取包含在上述所接收的内容请求中的散列值,基于上述所提取的散列值,来决定将上述内容请求的传送目的地设为上述多个服务器中的哪个服务器,所述内容请求包括根据从上述客户终端所请求的内容的可变长度的标识符所计算出的固定长度的散列值。
即,在本发明的计算机系统的一实施方式中,根据有关客户终端所请求的内容的URL,生成固定长度的值,将该值包含在请求中。并且,URL交换机提取放入请求中的固定长度的值,根据该值决定对请求的处理。
根据本发明,通过使由URL交换机进行的处理简略化,能够提高URL交换机的性能。此外,通过使URL交换机的处理高速化,能够对用户提供更高品质的服务。


图1是第1实施方式的计算机系统的框图。
图2是第1实施方式的客户终端的框图。
图3是第1实施方式的代理服务器的框图。
图4是第1实施方式的URL交换机的框图。
图5是第1实施方式的传送目的地选择表的说明图。
图6是第1实施方式的内容请求数据包的说明图。
图7是第1实施方式的客户终端的内容请求处理的流程图。
图8是第1实施方式的URL交换机的通话中继处理的流程图。
图9是第1实施方式的内容传送的顺序图。
图10是第2实施方式的计算机系统的框图。
图11是第2实施方式的高速缓存服务器的框图。
图12是第2实施方式的内容数据库的说明图。
图13是第2实施方式的URL交换机的框图。
图14是第2实施方式的传送目的地选择表的说明图。
图15是第2实施方式的高速缓存控制服务器的框图。
图16是第2实施方式的高速缓存所在地数据库的说明图。
图17是第2实施方式的来自客户终端的内容请求数据包的说明图。
图18是第2实施方式的来自高速缓存服务器的内容请求数据包的说明图。
图19是第2实施方式的高速缓存服务器的内容请求处理的流程图。
图20是第2实施方式的URL交换机的内容请求处理的流程图。
图21是第2实施方式的高速缓存控制服务器的内容请求处理的流程图。
图22是第2实施方式的内容传送的顺序图。
图23是第2实施方式的内容传送的顺序图。
图24是第3实施方式的TCP的报头格式的说明图。
图25是第3实施方式的客户终端的内容请求处理的流程图。
图26是第3实施方式的URL交换机的通话中继处理的流程图。
图27是第3实施方式的内容传送的顺序图。
具体实施例方式
在本说明书中说明将本发明应用在Web服务器的负荷分散中的实施方式。
在Web服务器的负荷分散中,通过将对同一站点的内容请求分散给多个服务器进行处理,来削减每1台服务器的负荷,缩短应答时间。各服务器分担内容的提供,在本发明的实施方式中,设为根据散列值决定担当的服务器。
在以往的包含URL交换机的计算机系统中,URL交换机提取在内容请求数据包中包含的URL,并计算所提取的URL的散列值后,决定内容请求的传送目的地。与此相对,在本发明的实施方式中,将散列值的计算分散到客户终端等中,能够使URL交换机中的URL提取处理简略化。
为了计算散列值而使用的散列函数有多种。例如MD5是根据任意的长度的数据计算128位的散列值的函数,广泛地用于因特网上的数据认证等中。MD5在IETF,RFC 1321,“The MD5 Message-DigestAlgorithm”中有记载。
此外,CRC32是根据任意的长度的数据计算32位的散列值的函数,主要用于数据的错误检测。CRC32在ISO,IS3309,“ISOInformation Processing Systems-Data Communication High-Level DataLink Control Procedure-Frame Structure”中有记载。
(实施方式1)图1是表示第1实施方式的计算机系统的结构的框图。
第1实施方式的计算机系统具有客户终端101-1~101-n、网络102及服务器组104。
在服务器组104中包括多个Web服务器104-1~104-m以及URL交换机105。Web服务器104-1等是对客户终端101-1等提供内容的计算机。URL交换机105是解析从客户终端101-1等发送的内容请求(URL)、将内容请求分配给Web服务器104-1~104-m的负荷分散装置。
网络102连接客户终端101-1等与服务器组104,例如可以通过TCP/IP协议通信。
客户终端101-1等是通过HTTP协议对Web服务器104-1等请求内容的计算机。另外,也可以如客户终端101-n那样,在与网络102之间设置代理服务器103。
另外,在本实施方式中,如后述那样,在利用HTTP协议的内容请求中包含URL的散列值。URL交换机105根据散列值决定内容请求的传送目的地。
图2是表示第1实施方式的客户终端101-1的结构的框图。另外,在图2中,表示了客户终端101-1的结构,但其他客户终端101-2~101-n也具有相同的结构。
客户终端101-1是具备网络接口201、CPU202、存储器203以及二次存储装置204的计算机。这些客户终端101-1内的各结构相互间由内部总线205连接。
网络接口201与网络102连接。由此,客户终端101-1经由网络102在与URL交换机105之间收发数据及控制信号。另外,虽然图示了一个网络接口,但也可以具备2个以上的网络接口。
CPU202执行存储在存储器203中的各种程序,控制客户终端101-1。
在存储器203中存储有处理程序。处理程序包括散列值计算处理子程序206及内容请求子程序207。
散列值计算处理子程序206对于有关内容请求的URL计算固定长度的散列值。例如利用CRC32计算散列值。内容请求子程序207生成包含由散列值计算处理子程序206计算的散列值的内容请求。
另外,如客户终端101-n那样,在存在于向Web服务器104-1等的路径的中途的代理服务器103中计算散列值的情况下,也可以不具备散列值计算处理子程序206。
二次存储装置204是在客户终端101-1的电源断开时也保存存储内容的硬盘装置。
图3是表示第1实施方式的代理服务器103的框图。
代理服务器103是具备网络接口301-1、301-2、CPU302、存储器303以及二次存储装置304的计算机。这些103内的各结构相互间由内部总线305连接。
网络接口301-1与网络102连接。此外,网络接口301-2与客户终端101-n连接。
CPU302执行存储在存储器303中的各种程序,控制代理服务器103。
在存储器303中存储有处理程序。处理程序包括散列值计算处理子程序306及内容请求子程序307。
散列值计算处理子程序306基于与从客户终端101-n发送来的内容请求有关的URL,计算固定长度的散列值。内容请求子程序307生成包含由散列值计算处理子程序306计算的散列值的内容请求。
二次存储装置304是在代理服务器103的电源断开时也保存存储内容的硬盘装置。
图4是表示第1实施方式的URL交换机105的框图。
URL交换机105是具备网络接口401-1~401-m+1、数据包处理装置402及存储器403的计算机。这些URL交换机105内的各结构相互间由内部总线404连接。
网络接口401-1与网络102连接。此外,网络接口401-2~401-m+1与Web服务器104-1~104-m连接。
数据包处理装置402是将输入的数据包传送给规定的目的地的网络处理器。
在存储器403中存储有处理程序。处理程序包括散列值提取处理子程序405及传送目的地决定处理子程序406。在存储器403中设有暂时存储URL交换机105所收发的数据包的缓存。此外,在存储器403中存储有传送目的地选择表407。
散列值提取处理子程序405从由客户终端101-n等发送来的内容请求中提取散列值。传送目的地决定处理子程序406以由散列值提取处理子程序405提取的散列值作为键标,检索传送目的地选择表407,决定内容请求的传送目的地。
传送目的地选择表407保存散列值与传送目的地的对应关系。
图5是第1实施方式的传送目的地选择表407的结构的说明图。
传送目的地选择表407包含URL的散列值4071、和传送目的地的Web服务器的IP地址4072。
URL的散列值4071是根据有关内容请求的URL所计算的固定长度的散列值。传送目的地4072是与作为该散列值的计算源的URL相对应的Web服务器的IP地址。即,是作为包括该散列值的内容请求的传送目的地的Web服务器的IP地址。
URL交换机105以包含在从客户终端101-1等接收的内容请求中的散列值作为键标,检索传送目的地选择表407,来确定传送目的地的Web服务器。
图6是第1实施方式的内容请求数据包的说明图。
在来自客户终端101-1的内容请求数据包中设有X-Hash报头。在X-Hash报头中保存有对应该URL的散列值(例如0123ABCD)。
接收到该内容请求数据包的URL交换机105从X-Hash报头中提取散列值,决定内容请求数据包的传送目的地。
接着说明内容请求的顺序。
图7是第1实施方式的客户终端101的内容请求处理的流程图。
客户终端101如果决定了请求内容的URL,则通过散列值计算处理子程序306,计算URL的散列值(步骤701)。
接着,将计算出的散列值保存在内容请求的报头(X-Hash报头)中,生成内容请求数据包(步骤702)。
接着,在与Web服务器104-1等之间确立通话(步骤703)。具体而言,客户终端101-1与URL交换机105连接,在与URL交换机105之间确立通话。
接着,对URL交换机105发送在步骤702生成的内容请求数据包(步骤704)。然后,经由URL交换机105从Web服务器104-1等接收内容(步骤705)。
图8是第1实施方式的URL交换机105的通话中继处理的流程图。该通话中继处理是在接收到来自客户终端101-1等的内容请求后执行的。
URL交换机105如果接收到来自客户终端101的内容请求数据包,则判断该内容请求数据包内有无X-Hash报头(步骤801)。
结果,在存在X-Hash报头的情况下,从X-Hash报头中提取散列值(步骤802)。该散列值提取处理是比提取URL简单的处理。这是因为,与提取可变长度的字符串(URL)的处理相比,提取固定长度的值(散列值)的处理较简单。
接着,以所提取的散列值作为键标检索传送目的地选择表407(步骤803),判断是否存在对应的条目(步骤804)。
结果,在发现了对应条目的情况下,将检索到的条目的Web服务器104-1决定为传送目的地,在与所决定的Web服务器104-1之间确立通话(步骤805)。
然后,将来自客户终端101-1的内容请求发送给传送目的地Web服务器104-1(步骤806)。
接着,中继该通话直到客户终端101-1与Web服务器104-1之间的通话被切断(步骤807)。
在步骤801中不存在X-Hash报头的情况下,或者在步骤804中没有发现对应的条目的情况下,将预先设定的Web服务器决定为传送目的地,在与所决定的服务器之间确立通话(步骤808)。然后,将来自客户终端的内容请求发送给传送目的地服务器(步骤806)。
被传送了不存在X-Hash报头的内容请求的Web服务器根据从客户终端101-1发送的URL求出散列值,将内容请求传送给适当的Web服务器。在这种情况下,与URL交换机分开地,Web服务器也具有图5所示的传送目的地选择表407,根据该传送目的地选择表407检索适当的Web服务器。由此,即使在存在来自不能放入X-Hash报头的客户终端101-1的内容请求的情况下,也能够正确地将负荷分散。另外,被传送了内容请求的Web服务器也可以按照通常的顺序解析URL,将内容请求传送给适当的Web服务器。
这样,通过URL交换机105中继通话,将来自客户终端101的内容请求传送给适当的服务器104。
图9是第1实施方式的内容传送的顺序图。
客户终端101-1为了确立与URL交换机105之间的通话而进行TCP的3次握手(3-way handshake)(图7的步骤703)。
具体而言,客户终端101-1对URL交换机105发送SYN数据包,请求确立客户终端101-1与URL交换机105之间的通话。URL交换机105接收到SYN数据包后,如果能够确立通话,则发送SYN,ACK数据包。客户终端101-1如果接收到SYN,ACK数据包,则发送ACK数据包。通过该数据包的交换,确立客户终端101-1与URL交换机105之间的通话。
接着,客户终端101-1发送内容请求数据包(图7的步骤704)。URL交换机105如果接收到内容请求数据包,则从接收到的数据包中提取散列值(图8的步骤802),决定传送目的地(图8的步骤803)。
接着,确立所决定的传送目的地Web服务器104-1与URL交换机105之间的通话(步骤805)。然后,对确立了通话的Web服务器104-1发送来自客户终端101-1的内容请求数据包(图8的步骤806)。
Web服务器104-1如果接收到内容请求数据包,则发送OK数据包。URL交换机105将Web服务器104-1所发送的OK数据包传送给客户终端101-1。并且,Web服务器104-1发送内容。
然后,Web服务器104-1如果结束了内容的发送,则发送FIN数据包,请求通话的结束。URL交换机将Web服务器104-1发送的FIN数据包传送给客户终端101-1。
客户终端101-1如果接收到FIN数据包,则结束与Web服务器104-1之间的通话,发送FIN,ACK数据包。Web服务器104-1如果接收到FIN,ACK数据包,则发送ACK数据包。通过该数据包的交换,结束客户终端101-1与Web服务器104-1之间的通话。
如以上说明那样,在第1实施方式中,通过客户终端根据URL求出散列值,使URL交换机中的标识符提取、计算处理简单化。由此,能够削减需要安装在URL交换机中的程序量及价格,能够实现高速的负荷分散。
即,在第1实施方式中,使来自客户的内容请求的传送目的地决定处理中的URL提取处理简略化。因此,在客户终端中根据URL生成固定长度的散列值,将该值包含在内容请求中。由此,URL交换机应提取的值从可变长度的较长的字符串变为固定长度的较短的字符串。由此,能够减轻URL交换机的处理。
此外,通过使在URL交换机的传送目的地决定处理中使用的数据从URL变为散列值,数据量从大约50字节减少为几个字节。由此,能够削减URL交换机的存储容量。
(实施方式2)接着说明将本发明应用在具备分散高速缓存的计算机系统中的例子。
高速缓存服务器设在客户终端和内容服务器(原始服务器)之间。高速缓存服务器代理服务器对来自客户终端的内容请求进行应答,由此进行向客户终端的应答时间的缩短、内容服务器的负荷降低、以及高速缓存服务器与内容服务器之间的通信量的削减。
高速缓存服务器通过收容更多的客户终端,增加从多个客户终端所请求的共用的内容的存储量,来提高高速缓存的命中率。
但是,由于来自多个客户终端的内容请求集中在高速缓存服务器中,所以高速缓存服务器的处理性能成为瓶颈。为了解决这个问题,通过用多个高速缓存服务器分担客户终端、并且使被高速缓存的内容共有,来实现内容的存储量的增大、和服务器的瓶颈消除这两者。
作为这种分散型高速缓存,考虑2种方法。
第1方法是被分散的多个高速缓存服务器彼此直接通信、来交换相互的所高速缓存的内容的信息的方法。该方法作为因特网高速缓存协议(Internet Cache Protocol),在RFC2186、“Internet Cache Protocol(ICP)”中有详细的记载。
第2方法是由控制服务器对被高速缓存的内容的信息进行集中管理、各高速缓存服务器按照控制服务器的指示来取得内容的方法。这种分散高速缓存控制方法在例如日本特开2005-10970号公报中有记载。
第1方法与第2方法相比较,多个高速缓存服务器相互通信。即,第1方法中,高速缓存服务器间的通信与服务器台数的平方成比例增加。由此,第1方法的可量测性(scalability)较低。
另一方面,在第2方法中,与高速缓存的有无有关的询问集中在控制服务器中。为了解决这个问题,将控制服务器的处理转移到利用URL交换机的专用设备中,来卸载(offload)控制服务器。因此,需要采用网络处理器等为数据包处理特制的设备,来使数据包处理高效化。
但是,在专用于数据包处理的设备中,仅限于对数据包进行的处理。例如,虽然能够高速地提取在特定位置存在的固定长度的信息,但不能高速地处理URL那样的可变长度的字符串。
为了解决这个问题,在第2实施方式中,在从高速缓存服务器向控制服务器的内容请求数据包中放入URL的散列值。由此,在专用于数据包处理的设备中也能够高速地进行与URL的解析同等的处理。
在第2实施方式中,与实施例1同样,在URL的散列计算中利用CRC32。
图10是第2实施方式的计算机系统的结构的框图。
第2实施方式的计算机系统具有高速缓存服务器1001-1~1001-2、客户终端1002-1~1002-4、网络1003-1~1003-2、URL交换机1004、原始服务器1005-1~1005-2、网络1006、网络1007、以及高速缓存控制服务器1008。
客户终端1002-1等是通过HTTP协议对原始服务器1005-1等请求内容的计算机。客户终端1002-1等具有与上述的第1实施方式的客户终端101-1相同的结构(参照图2)。
高速缓存服务器1001-1、1001-2存储客户终端1002-1等从原始服务器1005-1等取得的内容。
URL交换机1004是对来自客户终端1002-1等的内容请求数据包进行解析、判断是否存储有高速缓存、并分配内容请求的负荷分散装置。在第2实施方式的计算机系统中,由于URL的散列值包含在内容请求数据包中,所以URL交换机1004利用该URL的散列值判断高速缓存的有无。
原始服务器1005-1及1005-2是对客户终端1002-1等提供内容的计算机。
各高速缓存服务器1001-1、1001-2经由网络1003-1等与一个以上的客户终端1002-1等连接。URL交换机1004经由网络1006与高速缓存服务器1001-1等和URL交换机1004连接。此外,URL交换机1004和原始服务器1005-1等经由网络1007连接。在URL交换机1004上连接着高速缓存控制服务器1008。这些网络1003-1、1003-2、1006、及1007例如能够通过TCP/IP协议通信。
图11是表示第2实施方式的高速缓存服务器1001-1的结构的框图。另外,在图11中表示了高速缓存服务器1001-1的结构,而其他高速缓存服务器1001-2也具有相同的结构。
高速缓存服务器1001-1是具备接口1101-1及1101-2、CPU1102、存储器1103及二次存储装置1104的计算机装置。这些高速缓存服务器1001-1内的各结构相互由内部总线1105连接。
接口1101-1与客户终端侧的网络1003连接。接口1101-2与其他的高速缓存服务器及URL交换机连接。
CPU1102执行存储在存储器1103中的各种程序,控制高速缓存服务器。
在存储器1103中存储有处理程序。处理程序包括高速缓存有无判断处理子程序1106、散列值计算处理子程序1107、内容请求处理子程序1108及内容注册处理子程序1109。
高速缓存有无判断处理子程序1106检索保存在二次存储装置1104内的内容数据库1110,判断用户所请求的内容是否保存在该高速缓存服务器中。
散列值计算处理子程序1107根据于从客户终端1002-1等发送的内容请求有关的URL,计算固定长度的散列值。
内容请求处理子程序1108在从客户终端1002-1等请求的内容没有保存在该高速缓存服务器中时对高速缓存控制服务器1008请求内容。
内容注册处理子程序1109经由URL交换机1004从原始服务器1005-1等中、或直接从其他高速缓存服务器1001-2中取得内容。接着,将该内容保持在该高速缓存的内容数据库1110中。
二次存储装置1104是即使在高速缓存服务器1001-1的电源断开时也保持存储内容的硬盘装置,保存有内容数据库1110。
内容数据库1110保存着内容与该内容的URL的对应关系。
图12是第2实施方式的内容数据库1110的结构的说明图。
内容数据库1110包括URL11101、和内容11102。
URL11101是表示该内容保存在原始服务器中的位置的URL。内容11102是内容的数据本身。
高速缓存服务器1001-1以包含在从客户终端1002-1等接收到的内容请求中的URL作为键标,检索内容数据库1110,判断在该高速缓存服务器中是否保存着内容。
图13是第2实施方式的URL交换机1004的结构的框图。
URL交换机1004是具备网络接口1201-1~1201-3、数据包处理装置1202及存储器1203的计算机。这些各结构相互由内部总线1204连接。
网络接口1201-1与网络1006连接。网络接口1201-2与高速缓存控制服务器1008连接。此外,网络接口1201-3与网络1007连接。
数据包处理装置1202是将所输入的数据包传送给规定的目的地的网络处理器。
在存储器1203中存储有处理程序。处理程序包括散列值提取处理子程序1205、传送目的地处理子程序1206及散列值注册处理子程序1207。在存储器1203中设置有暂时保存URL交换机1004所收发的数据包的缓存。此外,在存储器1203中存储有传送目的地选择表1208。
散列值提取处理子程序1205从由客户终端1002-1等发送来的内容请求中提取散列值。传送目的地处理子程序1206以由散列值提取处理子程序1205提取的散列值作为键标,检索传送目的地选择表1208,决定内容请求的传送目的地。散列值注册处理子程序1207受理对传送目的地选择表1208的散列值的注册请求及删除请求。
传送目的地选择表1208保存散列值与传送目的地的对应关系。
图14是第2实施方式的传送目的地选择表1208的结构的说明图。
传送目的地选择表1208包含保存在系统内的高速缓存服务器中的所有的高速缓存的数据。各数据包括URL的散列值12081和传送目的地的高速缓存控制服务器的IP地址12082。
URL的散列值12081是根据与内容请求有关的URL计算的固定长度的散列值。传送目的地12082是对保存有与作为该散列值的计算源的URL相对应的高速缓存的高速缓存服务器进行控制的高速缓存控制服务器的IP地址。即,传送目的地12082是作为该散列值所包含的内容请求的传送目的地的高速缓存控制服务器的IP地址。
URL交换机1004以包含在从高速缓存服务器1001-1等接收到的内容请求中的散列值作为键标,检索高速缓存控制服务器1008,确定传送目的地的高速缓存控制服务器。
图15是表示第2实施方式的高速缓存控制服务器1008的结构的框图。
高速缓存控制服务器1008是具备网络接口1301、CPU1302、存储器1303及二次存储装置1304的计算机。这些各结构相互由内部总线1306连接。
网络接口1301与URL交换机1004连接。
CPU1302执行保存在存储器1303中的各种程序,控制控制服务器。
在存储器1303中存储着处理程序。处理程序包括高速缓存有无判断处理子程序1307、内容传送指示处理子程序1308及URL注册处理子程序1309。
高速缓存有无判断处理子程序1307从由URL交换机发送来的内容请求数据包中提取URL,检索高速缓存所在地数据库1305,决定保存有高速缓存的高速缓存服务器。
内容传送指示处理子程序1308对保存有高速缓存的高速缓存服务器指示内容的传送。
URL注册处理子程序1309将高速缓存服务器所取得的内容的信息注册在高速缓存所在地数据库中。
二次存储装置1304是即使在代理服务器103的电源断开时也保持存储内容的硬盘装置,保存有高速缓存所在地数据库1305。
传送目的地选择表1208保存URL的散列值与内容请求的传送目的地的对应关系。
图16是第2实施方式的高速缓存所在地数据库1305的结构的说明图。
高速缓存所在地数据库1305包含URL13051、和保存高速缓存的高速缓存服务器的IP地址13052。
URL13051是表示该内容保存在原始服务器中的位置的URL。高速缓存服务器13052是保存有该内容的高速缓存服务器的IP地址。高速缓存控制服务器1008以包含在从高速缓存服务器1001-1等接收到的内容请求中的URL作为键标,检索高速缓存所在地数据库1305,判断内容保存在哪个高速缓存服务器中。
图17、图18是第2实施方式的内容请求数据包的说明图。
图17表示来自客户终端1002的内容请求数据包。在内容请求数据包中包含有所请求的内容的URL。
高速缓存服务器1001-1如果接收到来自客户终端1002的内容请求数据包,则从接收到的数据包中提取URL。具体而言,从Referer报头中提取“http//www.example.com/”,从GET报头中提取“index.html”。接着,将它们合成,得到URL“http//www.example.com/index.html”。
图18表示来自高速缓存服务器1001-1的内容请求数据包。
来自高速缓存服务器1001-1的内容请求数据包在来自客户终端1002-1的内容请求数据包(图17)中追加了X-Hash报头。在X-Hash报头中保存有对应该URL的散列值(例如0123ABCD)。
接收到该内容请求数据包的URL交换机1005从X-Hash报头中提取散列值,决定内容请求数据包的发送目的地。
此外,高速缓存控制服务器1008如果从高速缓存服务器1001-1等接收到内容请求数据包,则从接收到的数据包中提取RUL,得到“http//www.example.com/index.html”。
接着说明内容请求的顺序。
图19是第2实施方式的高速缓存服务器1001-1的内容请求处理的流程图。
首先,高速缓存服务器1001如果接收到来自客户终端1002-1的内容请求数据包(图17),则提取包含在内容请求数据包中的内容的URL(步骤1501)。接着,以所提取的URL作为键标,检索内容数据库1110(步骤1502)。判断是否存在对应的内容(步骤1503)。
结果,在客户终端1002-1所请求的内容存在于内容数据库1110中的情况下,从内容数据库1110中取得内容,将所取得的内容发送给客户终端1002-1(步骤1504)。
另一方面,在内容数据库1110中不存在该内容的情况下,高速缓存服务器1001利用散列值计算处理子程序1107,根据请求的内容的URL计算散列值(步骤1505)。接着,生成将所计算的散列值保存在内容请求的报头(X-Hash报头)中的内容请求数据包,将所生成的内容请求数据包发送给原始服务器1005-1(步骤1506)。该内容请求经过URL交换机1004。
对于该内容请求,存在2种应答。第一应答是从原始服务器1005-1传送的数据包。在这种情况下,高速缓存服务器1001-1从原始服务器1005-1接收内容(步骤1508)。
另一方面,第二应答是从其他高速缓存服务器1001-2传送的内容。在这种情况下,请求源高速缓存服务器1001-1从高速缓存控制服务器1008对内容从其他高速缓存服务器1001-2被传送的消息进行接收,然后从其他高速缓存服务器1001-2接收内容(步骤1511)。
请求源高速缓存服务器1001-1接收到内容后,将接收到的内容传送给客户终端1002-1(步骤1509)。然后,将内容注册在内容数据库1110中(步骤1510)。接着,将在该高速缓存中追加了内容的情况发送给高速缓存控制服务器1008(步骤1512)。
图20是第2实施方式的URL交换机1004的内容请求处理的流程图。
URL交换机1004设置在高速缓存服务器1001-1等和原始服务器1005-1等之间。由此,URL交换机1004能够捕捉从高速缓存服务器1001-1向原始服务器1005的内容请求数据包(图18)。
URL交换机1004如果捕捉到从高速缓存服务器1001向原始服务器1005的内容请求数据包,则从所捕捉到的数据包中提取URL的散列值(步骤1601)。接着,以所提取的散列值作为键标,检索传送目的地选择表1208(步骤1602),判断是否存在对应的条目(步骤1603)。
结果,在传送目的地选择表中存在对应的条目的情况下,在某个高速缓存服务器中存在该内容。由此,将记载在检索到的条目中的控制服务器决定为传送目的地,将内容请求数据包传送给所决定的控制服务器(步骤1604)。
另一方面,在不存在对应的条目的情况下,在哪个高速缓存服务器中都不存在该内容。由此,URL交换机将内容请求数据包向原始服务器1005-1传送(步骤1605)。由于从高速缓存服务器1001发送来的内容请求数据包的目的地是原始服务器1005-1,所以URL交换机1004不需要取得原始服务器1005-1的IP地址。
图21是第2实施方式的高速缓存控制服务器1008的内容请求处理的流程图。
控制服务器1008如果接收到从URL交换机1004传送来的内容请求数据包,则从内容请求数据包中提取内容的URL(步骤1701)。接着,以所提取的URL作为键标,检索高速缓存所在地数据库1305(步骤1702),判断是否存在对应的条目(步骤1703)。
在存在与该URL对应的条目的情况下,在其他高速缓存服务器中存在该内容。由此,对请求源高速缓存服务器1001-1应答内容从其他高速缓存服务器1001-2被传送的消息。接着,选择包含在检索到的条目中的高速缓存服务器1001-2,指示将该URL的内容对请求源的高速缓存服务器1001-1传送(步骤1704)。
另一方面,在不存在与该URL对应的条目的情况下,是利用URL交换机1004的高速缓存的有无判断发生了错误。在URL交换机1004中,由于是根据散列值判断高速缓存的有无,所以能够产生散列值的冲突。
因此,在高速缓存所在地数据库1305中不存在条目的情况下,高速缓存控制服务器1008将内容请求数据包传送给请求源原始服务器1005-1,取得内容(步骤1705)。
接着,将从原始服务器1005-1得到的内容应答给高速缓存服务器1001-1(步骤1706)。接着,请求源高速缓存服务器1001-1将内容传送给客户终端1002-1,将该内容保存在高速缓存中。
图22、图23是第2实施方式的内容传送的顺序图。
图22表示从高速缓存服务器被请求的内容在哪个高速缓存服务器中都不存在的情况的顺序。
高速缓存服务器1001-1如果从客户终端接收到内容请求数据包,则为了确立与URL交换机1004之间的通话而进行TCP的3次握手。
具体而言,高速缓存服务器1001-1对URL交换机1004发送SYN数据包,请求确立高速缓存服务器1001-1与URL交换机1004之间的通话。URL交换机1004接收到SYN数据包后,如果能够确立通话,则发送SYN,ACK数据包。高速缓存服务器1001-1如果接收到SYN,ACK数据包,则发送ACK数据包。通过该数据包的交换,确立高速缓存服务器1001-1与URL交换机1004之间的通话。
接着,高速缓存服务器1001-1如果接收到从客户终端接收的内容请求数据包,则在接收到的数据包中追加URL的X-Hash值,发送给URL交换机1004(图19的步骤1506)。URL交换机1004如果接收到内容请求数据包,则从接收到的数据包中提取散列值(图20的步骤1601),决定传送目的地(图20的步骤1602)。
在图22所示的情况下,由于在传送目的地选择表1208中不存在对应的条目(由于所请求的内容不存在于高速缓存服务器中),所以将内容请求数据包传送给原始服务器1005-1。因此,确立URL交换机1004与原始服务器1005-1之间的通话。然后,URL交换机1004对确立了通话的原始服务器1005-1发送来自客户终端的内容请求数据包(图20的步骤1605)。
原始服务器1005-1如果接收到内容请求数据包,则发送OK数据包。URL交换机1004将原始服务器1005-1所发送的OK数据包传送给高速缓存服务器1001-1。并且,原始服务器1005-1发送内容。
然后,如果内容的发送结束,则原始服务器1005-1发送FIN数据包。URL交换机1004将原始服务器1005-1所发送的FIN数据包传送给高速缓存服务器1001-1。
高速缓存服务器1001-1如果接收到FIN数据包,则结束与原始服务器1005-1之间的通话,发送FIN,ACK数据包。原始服务器1005-1如果接收到FIN,ACK数据包,则发送ACK数据包。通过该数据包的交换,结束高速缓存服务器1001-1与原始服务器1005-1之间的通话。
然后,高速缓存服务器1001-1将所传送的内容的URL发送给高速缓存控制服务器1008。高速缓存控制服务器1008将接收到的URL追加到高速缓存所在地数据库1305中。
然后,高速缓存控制服务器1008计算接收到的URL的散列值,将所计算的散列值发送给URL交换机1004。URL交换机1004将传送来的散列值与计算出该散列值的高速缓存控制服务器1008相对应,追加到传送目的地选择表1208中。
图23表示在其他高速缓存服务器中保存有请求的内容的情况的顺序。
请求源高速缓存服务器1001-1如果从客户终端接收到内容请求数据包,则为了确立与URL交换机1004之间的通话而进行TCP的3次握手。该顺序与图22所示的相同。
接着,请求源高速缓存服务器1001-1如果接收到从客户终端接收的内容请求数据包,则在所接收到的数据包中追加URL的X-Hash值,发送给URL交换机1004(图19的步骤1506)。URL交换机1004如果接收到内容请求数据包,则从接收到的数据包中提取散列值(图20的步骤1601),决定传送目的地(图20的步骤1602)。
在图23所示的情况下,由于在传送目的地选择表1208中存在对应的条目(由于所请求的内容存在于高速缓存服务器中),所以从其他的高速缓存服务器1001-2取得内容。因此,确立URL交换机1004与高速缓存控制服务器1008之间的通话。然后,URL交换机1004对高速缓存控制服务器1008发送来自客户终端的内容请求数据包(图20的步骤1604)。
高速缓存控制服务器1008如果接收到内容请求数据包,则检索高速缓存所在地数据库1305,确定保存请求数据包的高速缓存服务器1001-2(图21的步骤1702)。接着,指示对所确定的高速缓存服务器1001-2传送数据包(图21的步骤1704)。
保存请求内容的高速缓存服务器1001-2将内容发送给请求源高速缓存服务器1001-1。
然后,如果内容的发送结束,则高速缓存控制服务器1008发送FIN数据包。URL交换机1004将高速缓存控制服务器1008发送的FIN数据包传送给高速缓存服务器1001-1。
高速缓存服务器1001-1如果接收到FIN数据包,则结束与高速缓存控制服务器1008之间的通话,发送FIN,ACK数据包。高速缓存控制服务器1008如果接收到FIN,ACK数据包,则发送ACK数据包。通过该数据包的交换,结束高速缓存服务器1001-1与高速缓存控制服务器1008之间的通话。
然后,高速缓存服务器1001-1将传送来的内容的URL发送给高速缓存控制服务器1008。高速缓存控制服务器1008将接收到的URL追加到高速缓存所在地数据库1305中。
如以上说明那样,在第2实施方式中,在URL交换机1004中利用URL的散列值判断传送目的地。由此,能够将以往施加在控制服务器上的负荷卸载到URL交换机1004中。
此外,由于在高速缓存服务器1001-1中求出URL的散列值,URL交换机1004利用该散列值判断有无高速缓存,所以能够减轻URL交换机1004的处理负荷。此外,与第1实施方式同样,通过URL交换机1004提取散列值来代替URL的提取,能够使URL交换机1004中的处理简单化。
(实施方式3)在第1及第2实施方式中,在确立了服务器与客户端之间的通话后被交换的数据包中放入了散列值。在以下说明的第3实施方式中,使用在TCP通话确立时放入了散列值的数据包。
图24是第3实施方式的TCP的报头格式的说明图。
在TCP的通话确立时所发送的数据包中,在TCP报头的控制字段中设定有表示通话确立请求的SYN标志。在第3实施方式中,在SYN数据包的TCP选项串中放入所请求的数据包的URL的散列值。
因此,为了实现第3实施方式,需要对安装在客户终端中的已有的TCP协议栈进行改造。由此,希望根据利用方式而分开使用第1及第2实施方式的方法、和第3实施方式的方法。
另外,第3实施方式可以适用于第1实施方式的计算机系统(图1)及第2实施方式的计算机系统(图10)的任一个中。
接着,对于将第3实施方式应用在第1实施方式的计算机系统(图1)中的情况下的内容请求的顺序进行说明。
图25是第3实施方式的客户终端101-1的内容请求处理的流程图。
客户终端101-1如果决定了请求的内容的URL,则计算URL的散列值(步骤711)。
接着,将所计算的散列值保存在TCP SYN数据包的TCP选项串中,生成SYN数据包(步骤712)。
接着,客户终端101-1发送放入了URL的散列值的SYN数据包,在与Web服务器104-1等之间确立通话(步骤713)。
然后,对URL交换机105发送内容请求数据包(步骤714)。然后,经由URL交换机105从服务器104-1接收内容(步骤715)。
图26是第3实施方式的URL交换机105的通话中继处理的流程图。该通话中继处理是在接收到来自客户终端101-1的TCP SYN数据包后执行的。
URL交换机105如果接收到来自客户终端101-1的SYN数据包,则判断在该SYN数据包内是否放入了散列值(步骤811)。
结果,在SYN数据包中存在散列值的情况下,从SYN数据包中提取散列值(步骤812)。
接着,以所提取的散列值作为键标,检索传送目的地检索表407(步骤813),判断是否存在对应的条目(步骤814)。
结果,在发现了对应条目的情况下,URL交换机105将检索到的条目的Web服务器104-1决定为传送目的地(步骤815)。
然后,将来自客户终端101-1的SYN数据包发送给传送目的地服务器,确立客户终端101-1与Web服务器104-1之间的通话(步骤816)。
接着,中继该内容直到客户终端101-1与Web服务器104-1之间的通话被切断(步骤817)。
在步骤811中在SYN数据包中不存在散列值的情况下,或者在步骤814中没有发现对应的条目的情况下,将预先设定的Web服务器104-1决定为传送目的地(步骤818)。然后,将来自客户终端101-1的SYN数据包发送给传送目的地服务器,确立客户终端101-1与Web服务器104-1之间的通话(步骤816)。
图27是第3实施方式的内容传送的顺序图。
客户终端101-1为了确立与Web服务器104-1之间的通话而进行TCP的3次握手。
具体而言,客户终端101-1对Web服务器104-1发送放入了URL的散列值的SYN数据包(图25的步骤713)。URL交换机105对从客户终端101-1向Web服务器104-1的SYN数据包进行捕捉。
接着,URL交换机105从捕捉到的SYN数据包中提取散列值(图26的步骤812),决定SYN数据包的传送目的地(图26的步骤813~815、818)。接着,将SYN数据包发送给所决定的传送目的地服务器(图26的步骤816),请求确立客户终端101-1与URL交换机105之间的通话。
URL交换机105然后中继客户终端101-1交换的数据包。
Web服务器104-1接收到SYN数据包后,如果能够确立通话,则发送SYN,ACK数据包。客户终端101-1如果接收到SYN,ACK数据包,则发送ACK数据包。通过该数据包的交换,确立客户终端101-1与URL交换机105之间的通话。
接着,客户终端101-1发送内容请求数据包。URL交换机105将接收到的内容请求数据包发送给确立了通话的Web服务器104-1。
Web服务器104-1如果接收到内容请求数据包,则发送OK数据包。URL交换机105将Web服务器104-1所发送的OK数据包传送给客户终端101-1。并且,Web服务器104-1发送内容。
然后,Web服务器104-1如果结束了内容的发送,则发送FIN数据包。URL交换机105将Web服务器104-1发送来的FIN数据包传送给客户终端101-1。
客户终端101-1如果接收到FIN数据包,则结束与Web服务器104-1之间的通话,发送FIN,ACK数据包。Web服务器104-1如果接收到FIN,ACK数据包,则发送ACK数据包。通过该数据包的交换,结束客户终端101-1与Web服务器104-1之间的通话。
如以上说明那样,在第3实施方式中,在SYN数据包的TCP选项串中放入所请求的内容的URL的散列值。由此,URL交换机105根据TCP选项串中的散列值,能够在通话确立处理的时刻决定流的传送目的地的服务器。
此外,TCP的报头的解析比包含在TCP流内的数据中的散列值的提取更简单。由此,能够使URL交换机105中的处理变得更简略。
权利要求
1.一种计算机系统,具有多个服务器和数据包传送装置,其特征在于,上述各服务器与上述数据包传送装置连接;上述数据包传送装置经由因特网与客户终端连接;上述数据包传送装置接收包括根据从上述客户终端请求的内容的可变长度的标识符所计算出的固定长度的散列值的内容请求,提取包含在上述所接收的内容请求中的散列值,基于上述所提取的散列值,来决定将上述内容请求的传送目的地设为上述多个服务器中的哪个服务器。
2.如权利要求1所述的计算机系统,其特征在于,上述客户终端根据请求所涉及的内容的可变长度的标识符,来计算固定长度的散列值,将上述所计算出的散列值保存在内容请求中,将上述内容请求发送给数据包传送装置。
3.如权利要求1所述的计算机系统,其特征在于,具有接收来自上述客户终端的内容请求的代理服务器;上述代理服务器与上述数据包传送装置及上述客户终端连接;上述客户终端将包含请求所涉及的内容的可变长度的标识符的内容请求发送给上述代理服务器;上述代理服务器从所接收到的内容请求中提取请求所涉及的内容的可变长度的标识符,根据上述所提取的标识符来计算固定长度的散列值,将上述所计算出的散列值保存在内容请求中,将上述内容请求发送给数据包传送装置。
4.如权利要求3所述的计算机系统,其特征在于,上述代理服务器具有接口部,从上述客户终端接收内容请求;处理器,根据该请求所涉及的内容的可变长度的标识符来计算固定长度的散列值,将上述所计算出的散列值保存在内容请求中。
5.如权利要求1所述的计算机系统,其特征在于,上述客户终端具有处理器,所述处理器根据请求所涉及的内容的可变长度的标识符,来计算固定长度的散列值,将上述所计算出的散列值写入请求数据包内。
6.如权利要求1所述的计算机系统,其特征在于,上述数据包传送装置具有处理器,提取包含在上述内容请求中的固定长度的散列值;存储有传送目的地选择信息的存储部,所述传送目的地选择信息包含与上述内容的可变长度的标识符对应的散列值和上述内容请求的传送目的地之间的对应。
7.如权利要求6所述的计算机系统,其特征在于,在上述数据包传送装置中,上述处理器根据上述所提取的散列值及上述传送目的地选择信息,来决定上述内容请求的传送目的地,将数据包传送给上述所决定的传送目的地。
8.如权利要求6所述的计算机系统,其特征在于,上述处理器从HTTP的报头中提取上述散列值。
9.如权利要求6所述的计算机系统,其特征在于,上述处理器从通话确立请求数据包中提取上述散列值。
10.如权利要求1所述的计算机系统,其特征在于,上述数据包传送装置接收通话确立请求来代替上述内容请求,所述通话确立请求包括根据从上述客户终端所请求的内容的可变长度的标识符所计算出的固定长度的散列值,提取包含在上述所接收到的通话确立请求中的散列值,根据上述所提取的散列值,来决定将上述通话确立请求的传送目的地设为上述多个服务器中的哪个服务器。
11.一种计算机系统,包含数据包传送装置、原始服务器、高速缓存服务器、及控制服务器,其特征在于,上述原始服务器将内容提供给客户终端;上述高速缓存服务器存储从上述原始服务器所提供的内容;上述控制服务器管理存储在上述高速缓存服务器中的内容;上述数据包传送装置接收包括根据从上述客户终端所请求的内容的可变长度的标识符所计算出的固定长度的散列值的内容请求,基于包含在上述所接收到的内容请求中的散列值,将该内容请求分配给上述原始服务器或者上述控制服务器。
12.如权利要求11所述的计算机系统,其特征在于,上述控制服务器具有对上述高速缓存服务器所存储的内容的信息进行存储的高速缓存所在地信息。
13.如权利要求11所述的计算机系统,其特征在于,上述高速缓存服务器具有接口部,从上述客户终端接收内容请求;处理器,根据该请求所涉及的内容的可变长度的标识符,来输出固定长度的散列值,将上述所计算出的散列值保存在内容请求中。
全文摘要
本发明涉及具备数据包传送装置的计算机系统,目的是通过将传送目的地决定处理由多个装置分割处理,来削减URL交换机的计算量及存储容量。在具备多个服务器和数据包传送装置的计算机系统中,上述各服务器与上述数据包传送装置连接,上述数据包传送装置经由网络与客户终端连接,上述数据包传送装置对包括根据从上述客户终端被请求的内容的可变长度的标识符所计算的固定长度的散列值的内容请求进行接收,提取包含在上述所接收的内容请求中的散列值,根据上述提取的散列值决定将上述内容请求的传送目的地设为上述多个服务器中的哪个服务器。
文档编号G06F1/00GK1855825SQ20061007771
公开日2006年11月1日 申请日期2006年4月26日 优先权日2005年4月27日
发明者东村邦彦, 片冈干雄, 山本淳二, 铃木敏明 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1