專利名稱:一種在應用層交換中提高服務器響應速度的系統(tǒng)及方法
技術領域:
本發(fā)明涉及一種網(wǎng)絡服務器響應速度的技術,特別是指一種在應用層交換中加速服務器響應速度的系統(tǒng)及其實現(xiàn)方法。
如
圖1所示,其工作原理是根據(jù)一個數(shù)據(jù)流的第一個報文和所設置的負載均衡策略選擇一個真實的服務器,對于該流的后續(xù)報文則根據(jù)其五元組(源目的地址、源目的端口號和協(xié)議號)來進行轉發(fā),使得同一個流的報文始終由同一個服務器來處理。由于采用負載均衡策略,交換機可以根據(jù)服務器的忙閑狀況或運行處理速度快慢等因素,全面考慮該數(shù)據(jù)流的分配方向。故此,該技術能夠有效地完成不同服務器之間的流量分擔,使得服務器的擴充十分容易。
但是在這種工作模式下,要求每臺服務器都能提供用戶所有要訪問的內(nèi)容,造成了大量的冗余;同時,所有服務器所存儲的內(nèi)容的同步也需要額外進行考慮,因此出現(xiàn)了應用層交換技術。
應用層交換技術就是根據(jù)連接中的應用層信息,比如統(tǒng)一資源定位(URL)、Cookie等信息來進行交換,可以實現(xiàn)將不同內(nèi)容的請求導向到不同的服務器上,從而實現(xiàn)不同內(nèi)容的獨立維護。例如靜態(tài)的超文本鏈接標示語言(HTML)頁面可以存貯在速度慢但容量大的服務器上,而動態(tài)生成的計算機圖形接口(CGI)頁面則由速度快的服務器來進行處理。如圖2所示,至少包括三個服務器組,文件數(shù)據(jù)可以分類由不同的服務器組進行處理,比如jpg類文件和gif類圖形文件可由服務器組1處理;bin類文件、cgi類圖形接口文件以及exe類執(zhí)行文件可由服務器組2處理;而html類文件數(shù)據(jù)則由服務器組3處理。
由于連接建立過程中的報文中并不包含有應用層信息,所以在服務器與客戶端建立連接時,交換機必須先冒充服務器與客戶建立連接,得到應用層信息之后,才能確定將該連接請求發(fā)送給哪一個真實的服務器,然后,交換機再與此真實服務器建立連接,轉發(fā)客戶的請求。因此,該工作過程的實際處理流程如圖3所示1)首先,由交換機冒充服務器接收客戶端所發(fā)的TCP同步信號TCPSYN,該信號表示客戶請求建立一個TCP連接;然后,交換機替代服務器向客戶端回送同步應答信號SYN ACK,確認連接建立;客戶端收到SYNACK之后,再向冒充服務器--交換機送一個收到確認的信號ACK;經(jīng)過上述三次握手之后,連接建立,客戶端即發(fā)送應用層請求給冒充服務器--交換機。
2)當交換機收到客戶發(fā)的應用層請求后,從請求中提出應用層信息,以確定客戶的該請求實際應該發(fā)給哪個真實的服務器,然后交換機向目的服務器發(fā)TCP同步信號TCP SYN,請求建立一個TCP連接;該服務器向交換機回送同步應答信號SYN ACK,確認連接建立;交換機收到SYN ACK之后,再向目的服務器送一個收到確認的信號ACK;經(jīng)過握手后,連接建立,交換機即將客戶端發(fā)出的應用層請求轉發(fā)給目的服務器,而后,客戶端即可與真實的目的服務器直接通信,發(fā)送數(shù)據(jù)。
該方法的優(yōu)點在于可以將不同的內(nèi)容放置在不同的服務器上,提高了服務器的利用率,并且對特定的內(nèi)容只要在少數(shù)幾臺服務器之間進行同步刷新,便于進行內(nèi)容的維護。但從圖上可以看出,由于每次根據(jù)應用層信息選中一個真實的服務器之后需要實時地發(fā)起與真實服務器的連接,這樣,客戶端發(fā)出應用層請求之后,需要等待交換機冒充客戶與服務器建立連接,并轉發(fā)服務器所回應的應答,因而得到服務器響應的時間大大增加,不能夠滿足提高用戶訪問速度的要求。
本發(fā)明的另一目的在于提供一種在應用層交換中提高服務器響應速度的方法,使其能大大縮短客戶端與服務器之間連接建立的時間,快速地轉發(fā)應用層請求,從而使得服務器的響應時間明顯縮短,進而提高對用戶的服務質(zhì)量。
本發(fā)明的技術方案具體是這樣實現(xiàn)的一種在應用層交換中提高服務器響應速度的系統(tǒng),至少包括用于內(nèi)容識別和報文交換的URL識別模塊;用于檢測所連接服務器的健康狀況和負載程度的服務器健康性檢測模塊;用于實現(xiàn)交換機冒充服務器接收客戶端所發(fā)信號的TCP哄騙模塊;關鍵在于還包括一個服務器端連接儲備模塊,用來預先與服務器建立連接,并通過已建立好的連接對服務器的健康狀況和負載程度進行檢測;服務器端連接儲備模塊同時連接服務器健康性檢測模塊、TCP哄騙模塊和服務器端口處理模塊;TCP哄騙模塊還同時與URL識別模塊及客戶端口處理模塊相連。
所述的與服務器建立連接是與每一臺服務器建立一個以上的連接。該服務器端連接儲備模塊根據(jù)每臺服務器健康狀況的檢測結果預先設置該服務器連接儲備數(shù)目的閾值。所述的服務器健康狀況檢測是指檢測目的服務器是否可用。
一種在應用層交換中提高服務器響應速度的方法,該方法至少包括以下的步驟a.由應用層交換系統(tǒng)中的服務器連接儲備模塊與每臺服務器建立連接;b.當客戶端發(fā)起請求時,交換機首先與客戶端建立連接,在收到客戶端發(fā)送的應用層請求之后,從應用層請求中提取出應用層信息,確定該客戶所選定的目的服務器,然后利用與該目的服務器已建立好的連接轉發(fā)客戶端信息給服務器,并將服務器的應答轉發(fā)給客戶。
所述服務器連接儲備模塊與服務器建立連接進一步包括以下步驟a.與每一臺服務器建立一個以上的連接,之后等待定時器事件的觸發(fā);b.對每一臺服務器進行健康性檢測,根據(jù)健康狀況的檢測結果設定每一臺服務器連接儲備數(shù)目的閾值;c.實時檢測每臺服務器當前的連接儲備數(shù)目是否低于預先設定的閾值,如果當前檢測的服務器的連接儲備數(shù)目低于所設定的閾值,則服務器連接儲備模塊與該服務器建立一個以上的新連接,然后返回步驟c;否則,等待定時器事件觸發(fā),進入步驟b。
所述的定時器事件是指定時檢查交換機與服務器之間的連接儲備情況。所述的連接儲備數(shù)目閾值小于所建立的連接數(shù)。所述的服務器健康狀況是指檢測目的服務器是否可用。所檢測的目的服務器不可用時,連接儲備數(shù)目閾值設為零;所檢測的目的服務器可用時,連接儲備數(shù)目閾值根據(jù)該服務器所能支持的連接數(shù)決定。
由上述技術方案可以看出,本發(fā)明的關鍵在于在現(xiàn)有的實現(xiàn)系統(tǒng)中添加一個服務器連接儲備模塊,從而建立一種交換機與服務器之間的連接儲備機制,使交換機預先與各服務器之間建立連接的儲備,通過這些連接儲備,交換機可以迅速地將客戶的應用層請求轉發(fā)給特定的服務器進行處理,從而縮短了服務器響應時間。
通過本發(fā)明的方法,不僅能夠得到更快速的服務器響應,而且更容易實現(xiàn)服務器健康狀況及負載情況的檢測,提高了用戶服務質(zhì)量。
本發(fā)明主要應用于一個應用層交換系統(tǒng)中,如圖4所示,該系統(tǒng)至少包括用于內(nèi)容識別和報文交換的URL識別模塊;用于檢測所連接服務器的健康狀況和負載程度的服務器健康性檢測模塊;用來實現(xiàn)交換機冒充服務器接收客戶端所發(fā)信號的TCP哄騙模塊;重要的是,該系統(tǒng)還包括一個服務器端連接儲備模塊,用來事先與服務器建立連接,并通過這些連接對服務器的健康狀況和負載情況進行檢測。其中,TCP哄騙模塊與客戶端口處理模塊相連,用來接收客戶信息;而服務器端連接儲備模塊與服務器端口處理模塊相連,用來建立與服務器間的連接,TCP哄騙模塊還與服務器端連接儲備模塊和URL識別模塊相連,服務器端連接儲備模塊還與服務器健康性檢測模塊相連。所傳輸?shù)膱笪膹目蛻舳丝谔幚砟K進入,經(jīng)過上述URL識別模塊、TCP哄騙模塊、服務器健康性檢測模塊以及服務器端連接儲備模決的識別、確認、處理、確定導向后,從服務器端口處理模塊輸出至相應的目的服務器。該系統(tǒng)既包括軟件的實現(xiàn)方式,也包括以硬件實現(xiàn)的方式,比如采用可編程邏輯處理芯片。
本發(fā)明中服務器連接儲備模塊具體的工作實現(xiàn)流程如圖5所示,至少包括以下的步驟a.服務器連接儲備模塊與每一臺服務器建立若干個連接,連接的數(shù)目可根據(jù)實際運行情況或客戶對不同資源需求的比率而定,連接建立后作為儲備資源,當交換機需要與某臺服務器建立連接時,則提供一個相應服務器的連接。連接建立好后,連接儲備模塊等待定時器事件的觸發(fā),該定時事件是用來定時檢查交換機與服務器之間的連接儲備情況。
b.對每一臺服務器進行健康性實時檢測,并根據(jù)健康狀況的檢測結果來確定每一臺服務器連接儲備數(shù)目的閾值。其中,該閾值是指決定是否需要建立一批新連接的判斷基準值,低于該值則需要馬上建立一批新連接,否則不需要;健康狀況檢測是指檢測每臺服務器是否可用,如果可用,則根據(jù)該服務器所能支持的連接數(shù)來確定閾值,如果不可用,則閾值設置為零;該儲備數(shù)目是指當前已建立可供使用的連接的數(shù)目。
c.根據(jù)定時事件檢測結果判斷每一臺服務器的連接儲備數(shù)目是否已低于所設定的閾值,如果是,則與該服務器建立一批新連接,以備使用,然后回到步驟c;否則,仍等待定時器事件的觸發(fā),進入步驟b。
通過上述模塊結構及其工作流程,交換機即可與服務器預先建立的一系列連接,交換機可以及時獲知服務器的健康狀況和負載程度,從而可以確定最適合處理請求的服務器,更重要的是由于交換機儲備了與服務器的連接,所以在確定真實服務器之后,客戶的應用層請求就可以通過已經(jīng)建立的連接立即發(fā)送給真實服務器,而無需長時間的等待。其處理流程參見圖6所示1)首先,交換機發(fā)TCP SYN信號給服務器,經(jīng)過服務器回應的SYNACK信號以及交換機收到SYN ACK后回復的ACK信號,使交換機可與每一臺服務器建立多個連接;2)然后,當有客戶提出連接請求和應用層請求時,只需要經(jīng)過與交換機之間的握手、確認,交換機便可立即將用戶的應用層請求通過已有的連接轉發(fā)給服務器。
可見,交換機得到客戶的應用層請求之后,能馬上通過預先建立的連接將請求轉發(fā)到選定的服務器,并將服務器的應答轉發(fā)給客戶,中間省去了與服務器三次握手建立連接的過程,因而大大提高了服務器對客戶的響應時間。而且,交換機可以通過預先與服務器建立的連接事先檢測服務器的健康狀況和負載程度,如果所需連接的服務器健康狀況有問題,可在客戶提出請求時馬上告知,或是將請求導向其他有同等功能的服務器,從而避免浪費客戶的時間,以保證為客戶提供最好的服務。
另外,交換機還可以根據(jù)實時檢測當前服務器的負載情況,對客戶的請求進行均橫分配,以保證能為客戶提供最快最好的服務。
權利要求
1.一種在應用層交換中提高服務器響應速度的系統(tǒng),至少包括用于內(nèi)容識別和報文交換的URL識別模塊;用于檢測所連接服務器的健康狀況和負載程度的服務器健康性檢測模塊;用于實現(xiàn)交換機冒充服務器接收客戶端所發(fā)信號的TCP哄騙模塊;其特征在于還包括一個服務器端連接儲備模塊,用來預先與服務器建立連接,并通過已建立好的連接對服務器的健康狀況和負載程度進行檢測;服務器端連接儲備模塊同時連接服務器健康性檢測模塊、TCP哄騙模塊和服務器端口處理模塊;TCP哄騙模塊還同時與URL識別模塊及客戶端口處理模塊相連。
2.根據(jù)權利要求1所述的提高服務器響應速度的系統(tǒng),其特征在于所述的與服務器建立連接是與每一臺服務器建立一個以上的連接。
3.根據(jù)權利要求1所述的提高服務器響應速度的系統(tǒng),其特征在于所述的服務器端連接儲備模塊根據(jù)每臺服務器健康狀況的檢測結果預先設置該服務器連接儲備數(shù)目的閾值。
4.根據(jù)權利要求1所述的提高服務器響應速度的系統(tǒng),其特征在于所述的服務器健康狀況檢測是指檢測目的服務器是否可用。
5.一種在應用層交換中提高服務器響應速度的方法,其特征在于該方法至少包括以下的步驟a.由應用層交換系統(tǒng)中的服務器連接儲備模塊與每臺服務器建立連接;當客戶端發(fā)起請求時,交換機首先與客戶端建立連接,在收到客戶端發(fā)送的應用層請求之后,從應用層請求中提取出應用層信息,確定該客戶所選定的目的服務器,然后利用與該目的服務器已建立好的連接轉發(fā)客戶端信息給服務器,并將服務器的應答轉發(fā)給客戶。
6.根據(jù)權利要求5所述的提高服務器響應速度的方法,其特征在于所述服務器連接儲備模塊與服務器建立連接進一步包括以下步驟a.與每一臺服務器建立一個以上的連接,之后等待定時器事件的觸發(fā);b.對每一臺服務器進行健康性檢測,根據(jù)健康狀況的檢測結果設定每一臺服務器連接儲備數(shù)目的閾值;c.實時檢測每臺服務器當前的連接儲備數(shù)目是否低于預先設定的閾值,如果當前檢測的服務器的連接儲備數(shù)目低于所設定的閾值,則服務器連接儲備模塊與該服務器建立一個以上的新連接,然后返回步驟c;否則,等待定時器事件觸發(fā),進入步驟b。
7.根據(jù)權利要求6所述的提高服務器響應速度的方法,其特征在于所述的連接儲備數(shù)目閾值小于所建立的連接數(shù)。
8.根據(jù)權利要求6所述的提高服務器響應速度的方法,其特征在于所述的服務器健康狀況是指檢測目的服務器是否可用。
9.根據(jù)權利要求6或8所述的提高服務器響應速度的方法,其特征在于所檢測的目的服務器不可用時,連接儲備數(shù)目閾值設為零;所檢測的目的服務器可用時,連接儲備數(shù)目閾值根據(jù)該服務器所能支持的連接數(shù)決定。
10.根據(jù)權利要求6所述的提高服務器響應速度的方法,其特征在于所述的定時器事件是指定時檢查交換機與服務器之間的連接儲備情況。
全文摘要
本發(fā)明公開了一種在應用層交換中提高服務器響應速度的系統(tǒng),至少包括用于內(nèi)容識別和報文交換的URL識別模塊;用于檢測所連接服務器的健康狀況和負載程度的服務器健康性檢測模塊;用于實現(xiàn)交換機冒充服務器接收客戶端所發(fā)信號的TCP哄騙模塊;關鍵在于還包括一個服務器端連接儲備模塊,用來預先與服務器建立連接,并通過已建立好的連接對服務器的健康狀況和負載程度進行檢測;服務器端連接儲備模塊同時連接服務器健康性檢測模塊、TCP哄騙模塊和服務器端口處理模塊。該系統(tǒng)能支持客戶端與服務器之間的快速連接及應用層請求的轉發(fā),使得服務器的響應時間大大降低。本發(fā)明同時還公開了一種在應用層交換中提高服務器響應速度的方法。
文檔編號G06F13/14GK1400535SQ0112373
公開日2003年3月5日 申請日期2001年7月26日 優(yōu)先權日2001年7月26日
發(fā)明者張儉鋒 申請人:華為技術有限公司