專利名稱::在多核架構(gòu)中分組引導(dǎo)的系統(tǒng)和方法在多核架構(gòu)中分組引導(dǎo)的系統(tǒng)和方法相關(guān)申請本申請要求美國專利申請No.12/489207的利益和優(yōu)先權(quán),該美國專利申請在2009年6月22日提出,其要求美國臨時專利申請No.61/175733的利益和優(yōu)先權(quán),該美國臨時專利申請在2009年5月5日提出,這兩件申請通過引用全部包含于此。
技術(shù)領(lǐng)域:
本申請總的涉及數(shù)據(jù)通信網(wǎng)絡(luò)。具體而言,本申請涉及用于將多核系統(tǒng)接收到的數(shù)據(jù)分組分配給該多核系統(tǒng)中的核的系統(tǒng)和方法。
背景技術(shù):
:現(xiàn)有技術(shù)中已經(jīng)存在能夠平衡多核系統(tǒng)中一個或多個核上的網(wǎng)絡(luò)業(yè)務(wù)的多核系統(tǒng)。這些多核系統(tǒng)可以被包括在設(shè)備或計算系統(tǒng)中,并且可以包括任意數(shù)量的核、或處理器。在一些實施例中,多核系統(tǒng)根據(jù)流分布模型來分布網(wǎng)絡(luò)業(yè)務(wù),所述流分布模型例如是功能并行機制,其中多核系統(tǒng)的每個核都被分配不同的功能,所述流分布模型例如是數(shù)據(jù)并行機制,其中多核系統(tǒng)的每個核都被分配給不同的設(shè)備和模塊。這些分布方案不考慮網(wǎng)絡(luò)業(yè)務(wù)量,所以網(wǎng)絡(luò)業(yè)務(wù)分布經(jīng)常不平均或?qū)ΨQ。所以,需要一種分布方案,其可以在多核系統(tǒng)的一個或多個核間大體上均勻地、對稱地分布網(wǎng)絡(luò)業(yè)務(wù)。在一些情況下,在一個或多個上的網(wǎng)絡(luò)業(yè)務(wù)分布需要改變網(wǎng)絡(luò)業(yè)務(wù)的屬性,以保證返回的業(yè)務(wù)被路由到發(fā)起核。確保關(guān)于請求發(fā)起核和響應(yīng)接收核的對稱,可以減少分組數(shù)據(jù)的不必要的拷貝和緩存,并且可以提供均勻的進出所述多核系統(tǒng)的請求和響應(yīng)流。一些系統(tǒng)通過改變與網(wǎng)絡(luò)業(yè)務(wù)中的數(shù)據(jù)分組關(guān)聯(lián)的元組來實現(xiàn)對稱分布。對該元組的改變可以是修改源IP地址和/或源端口。在一些情況下,后臺系統(tǒng)可以要求源IP地址和/或源端口保持不變。在那些情況下,需要系統(tǒng)既能保持這些數(shù)據(jù)分組的屬性,又能確保所述請求和響應(yīng)由多核系統(tǒng)中基本相同的核來處理。在多核系統(tǒng)中的多個核上分布的網(wǎng)絡(luò)業(yè)務(wù)中包括的數(shù)據(jù)分組有時候是被分段的。在這些情況下,多核系統(tǒng)接收數(shù)據(jù)分組分段,而不是完整的數(shù)據(jù)分組。所以,需要系統(tǒng)既能處理數(shù)據(jù)分組分段,又能在多核系統(tǒng)上的多個核上均勻地和對稱地分布網(wǎng)絡(luò)業(yè)務(wù)。
發(fā)明內(nèi)容在一個方面,此處描述的是用于在多個分組引擎的一個分組引擎上提供對稱的請求和響應(yīng)處理的方法的實施例。該多個分組引擎中的每一個在位于客戶機和服務(wù)器中間的多核系統(tǒng)中的多個核的相應(yīng)的核上執(zhí)行。在位于客戶機和服務(wù)器中間的多核系統(tǒng)中第一核上執(zhí)行的分組引擎,從流分布器接收客戶機給服務(wù)器的請求。所述第一核由所述流分布器基于對第一元組的哈希選擇,所述第一元組包括在所述客戶機請求中識別的客戶機互聯(lián)網(wǎng)協(xié)議地址、客戶機端口、服務(wù)器互聯(lián)網(wǎng)協(xié)議地址和服務(wù)器端口。分組引擎從所述第一核的一個或多個互聯(lián)網(wǎng)協(xié)議地址中選擇第一互聯(lián)網(wǎng)協(xié)議地址,并且從所述第一核的多個端口中選擇第一端口。然后,分組引擎確定對第二元組的哈希識別所述第一核,第二元組至少包括所述第一互聯(lián)網(wǎng)協(xié)議地址和第一端口。然后,分組引擎識別所述第一端口是可用的,并且修改所述客戶機請求以將所述第一互聯(lián)網(wǎng)協(xié)議地址識別為客戶機互聯(lián)網(wǎng)協(xié)議地址以及將所述第一端口識別為客戶機端口。在一些實施例中,分組引擎將經(jīng)修改的客戶機請求發(fā)送到所述服務(wù)器。在一些實施例中,所述流分布器接收來自所述服務(wù)器的、對所述客戶機請求的響應(yīng),并且基于對第三元組的哈希,將所述響應(yīng)分布到所述分組引擎的第一核,所述第三元組包括在所述響應(yīng)中識別的客戶機互聯(lián)網(wǎng)協(xié)議地址、客戶機端口、服務(wù)器互聯(lián)網(wǎng)協(xié)議地址和服務(wù)器端口。在一些實施例中,所述分組引擎確定對所述第一元組的哈希識別在其上執(zhí)行所述分組引擎的第一核。在其他實施例中,所述分組引擎確定對所述第二元組的哈希識別在其上執(zhí)行所述分組引擎的第一核。在一些實施例中,所述分組引擎確定所述第一端口不可用,從所述第一核的多個端口中選擇第二端口,確定所述第二端口可用,并且確定對第四元組的哈希識別所述第一核,所述第四元組至少包括第一互聯(lián)網(wǎng)協(xié)議地址和第二端口。然后,所述分組引擎修改所述客戶機請求以將所述第一互聯(lián)網(wǎng)協(xié)議地址識別為所述客戶機互聯(lián)網(wǎng)協(xié)議地址,并且將所述第二端口識別為所述客戶機端口。在一個實施例中,所述分組引擎確定所述第一端口不可用,從所述第一核的一個或多個互聯(lián)網(wǎng)協(xié)議地址選擇第二互聯(lián)網(wǎng)協(xié)議地址,從所述第一核的多個端口中選擇第二端口,并且確定對第五元組的哈希識別所述第一核,所述第五元組至少包括所述第二互聯(lián)網(wǎng)協(xié)議地址和所述第二端口。然后,所述分組引擎修改所述客戶機請求,以將所述第二互聯(lián)網(wǎng)協(xié)議地址識別為所述客戶機互聯(lián)網(wǎng)協(xié)議地址并將所述第二端口識別為所述客戶機端口。在一些實施例中,分組引擎從所述第一核的一組預(yù)定的互聯(lián)網(wǎng)協(xié)議地址中選擇第一互聯(lián)網(wǎng)協(xié)議地址。在其他實施例中,所述分組引擎從包括可用端口的端口表中選擇第一端口。在一些實施例中,部分地基于對第一核的本地互聯(lián)網(wǎng)協(xié)議地址和與每個本地互聯(lián)網(wǎng)協(xié)議地址相關(guān)聯(lián)的本地端口的一個或多個哈希,選擇納入所述端口表的每個端口。在許多實施例中,所述流分布器在所述多核系統(tǒng)內(nèi)執(zhí)行。在一些實施例中,所述多核系統(tǒng)至少包括兩個核,每個核存儲包括在該核上的可用的端口的端口表。在一個實施例中,所述第一核由所述流分布器部分地基于對所述第一元組的哈希來選擇。在其他實施例中,所述分組弓I擎更新端口分配表以指示將所述第一端口分配給數(shù)據(jù)分組。在一些方面,此處描述的是用于在多個分組引擎的分組引擎上提供對稱的請求和響應(yīng)處理的系統(tǒng),所述多個分組引擎的每一個在位于客戶機和服務(wù)器中間的多核系統(tǒng)中的多個核的相應(yīng)的核上執(zhí)行。該系統(tǒng)可以包括位于客戶機和服務(wù)器中間的多核系統(tǒng),所述多核系統(tǒng)包括多個核。接收從客戶機到服務(wù)器的請求的流分布器可以在所述多核系統(tǒng)中執(zhí)行,并且基于對第一元組的哈希來選擇第一核,所述第一元組包括在所述客戶機請求中識別的客戶機互聯(lián)網(wǎng)協(xié)議地址、客戶機端口、服務(wù)器互聯(lián)網(wǎng)協(xié)議地址和服務(wù)器端口。在所述多核系統(tǒng)中的第一核上執(zhí)行的分組引擎可以從所述流分布器接收所述客戶機請求。然后,所述分組引擎可以選擇所述第一核的一個或多個互聯(lián)網(wǎng)協(xié)議地址的第一互聯(lián)網(wǎng)協(xié)議地址并且從所述第一核的多個端口中選擇第一端口,確定對至少包括所述第一互聯(lián)網(wǎng)協(xié)議地址和所述第一端口的第二元組的哈希識別所述第一核,識別所述第一端口是可用的,并且修改所述客戶機請求以將所述第一互聯(lián)網(wǎng)協(xié)議地址識別為所述客戶機互聯(lián)網(wǎng)協(xié)議地址并且將所述第一端口識別為所述客戶機端口。在又一個方面,此處描述的是一種用于由流分布器將網(wǎng)絡(luò)分組定向到多個分組引擎中的一個分組引擎,同時保持客戶機互聯(lián)網(wǎng)協(xié)議地址和客戶機端口的方法的一個實施例,所述多個分組引擎中的每一個在位于所述客戶機和服務(wù)器中間的多核系統(tǒng)中的多個核中的相應(yīng)的核上執(zhí)行。在所述位于客戶機和服務(wù)器中間的多核系統(tǒng)的第一核上執(zhí)行的分組引擎從流分布器接收客戶機請求,所述客戶機請求識別包括客戶機互聯(lián)網(wǎng)協(xié)議地址、客戶機端口、服務(wù)器互聯(lián)網(wǎng)協(xié)議地址和服務(wù)器端口的第一元組。所述流分布器基于對所述第一元組的哈希來選擇所述第一核以接收客戶機請求。所述流分布器還接收對由所述分組引擎轉(zhuǎn)發(fā)到所述服務(wù)器的客戶機請求的響應(yīng),所述響應(yīng)由所述服務(wù)器生成并且包括第二元組,所述第二元組通過對第二元組的哈希來識別與所述接收請求的分組引擎的第一核不同的第二核。所述流分布器將所接收的響應(yīng)轉(zhuǎn)發(fā)到所述第二核的第二分組引擎。然后,所述流分布器響應(yīng)于在所述第二核上執(zhí)行的流分布器的規(guī)則,將由所述第二核接收的響應(yīng)定向到所述第一核。在一些實施例中,將所接收的響應(yīng)轉(zhuǎn)發(fā)到所述第二核的第二分組引擎還包括由所述第二核的第二分組引擎將所述響應(yīng)的一個或多個網(wǎng)絡(luò)分組存儲在所述第一核能夠訪問的存儲單元。所述一個或多個網(wǎng)絡(luò)分組可以存儲在多核系統(tǒng)中的每個核可訪問的共享緩沖區(qū)。在又一個實施例中,由第二核向所述第一核發(fā)送消息,所述消息識別所述響應(yīng)將由所述第一核的分組引擎處理。在一些實施例中,所述第二核的第二分組引擎確定所述響應(yīng)對應(yīng)于沒有被所述第二分組引擎處理的請求。該確定還可包括計算對所述響應(yīng)的元組的哈希,所述哈希識別所述第一核。該確定還可以包括在端口分配表中查找端口以識別所述第一核。在一些實施例中,由在所述第一核上的所述分組引擎將所述客戶機請求轉(zhuǎn)發(fā)到服務(wù)器。當所述客戶機請求被轉(zhuǎn)發(fā)時,可以保持在所述第一元組中的所述客戶機互聯(lián)網(wǎng)協(xié)議地址和所述客戶機端口。在一些實施例中,所述響應(yīng)可以包括第二元組,所述第二元組至少包括所述第一元組的所述客戶機互聯(lián)網(wǎng)協(xié)議地址和所述客戶機端口。在一些實施例中,應(yīng)用到所述第一元組的哈希大體上與應(yīng)用到所述第二元組的哈希相同。在一個實施例中,所述流分布器部分基于對所述第一元組的哈希選擇所述第一核。在一些實施例中,響應(yīng)于被配置為保持客戶機互聯(lián)網(wǎng)協(xié)議地址的分組引擎,保持所述客戶機互聯(lián)網(wǎng)協(xié)議地址。在這些實施例中,響應(yīng)于要求保持客戶機互聯(lián)網(wǎng)協(xié)議地址的安全策略,所述分組引擎可以被配置為保持客戶機互聯(lián)網(wǎng)協(xié)議地址。在其他實施例中,響應(yīng)于被配置為保持客戶機端口的分組引擎,保持所述客戶機端口。在這些實施例中,響應(yīng)于要求保持客戶機端口的安全策略,所述分組引擎可以被配置為保持客戶機端口。在其他方面,此處描述的是用于由流分布器將被分段的網(wǎng)絡(luò)分組指向多個分組引擎中的一個分組引擎的方法,所述多個分組引擎中的每一個在位于所述客戶機和服務(wù)器中間的多核系統(tǒng)中的多個核的相應(yīng)的核上執(zhí)行。在所述位于客戶機和服務(wù)器中間的多核系統(tǒng)的第一核上執(zhí)行的分組引擎從流分布器接收客戶機請求,所述客戶機請求識別包括客戶機互聯(lián)網(wǎng)協(xié)議地址、客戶機端口、服務(wù)器互聯(lián)網(wǎng)協(xié)議地址和服務(wù)器端口的第一元組。所述流分布器可以基于對所述第一元組的哈希來選擇所述第一核,以接收所述客戶機請求。所述流分布器可以接收來自所述服務(wù)器的、對由所述第一核上的分組引擎轉(zhuǎn)發(fā)到所述服務(wù)器的客戶機請求的響應(yīng)的多個分段。然后,響應(yīng)于由所述流分布器計算的、對由所述多個分段所識別的所述源互聯(lián)網(wǎng)協(xié)議地址和目的互聯(lián)網(wǎng)協(xié)議地址的第二哈希,所述流分布器可以將所述響應(yīng)的多個分段分布到所述第二核。然后,所述第二核的第二分組引擎可以存儲所述多個分段,并且對所述多個分段執(zhí)行一個或多個分段動作。然后,由在所述第二核上操作的所述流分布器的規(guī)則確定將由所述第二核接收的所述多個分段定向到所述第一核。在一些實施例中,存儲所述多個分段還包括由所述第二分組引擎組裝所述多個分段。在其他實施例中,確定將所述多個分段定向到所述第一核還包括由所述第二分組引擎將所組裝的多個分段存儲到所述第一核可以訪問的存儲單元。在一些實施例中,所述方法還包括由所述第二核向所述第一核發(fā)送消息,以指示所述第一核處理所組裝的多個分段。在一些實施例中,確定將所述多個分段定向到所述第一核還包括由所述第二核確定所述第一核建立了連接。在一個實施例中,執(zhí)行分段動作還包括執(zhí)行組裝動作,而在其他實施例中,執(zhí)行分段動作還包括執(zhí)行橋接動作。在一些實施例中,所述多個分段可以被弓丨導(dǎo)到所述第一核。在一些實施例中,所述流分布器組裝所述多個分段的一部分。然后,所述流分布器可以從所組裝的多個分段的所述一部分中提取所述第二元組的所述源互聯(lián)網(wǎng)協(xié)議地址和目的互聯(lián)網(wǎng)協(xié)議地址。在其他實施例中,所述流分布器組裝所述多個分段的所述一部分,直到所述響應(yīng)的頭部被組裝為止。然后,所述流分布器從所組裝的響應(yīng)的頭部中提取所述第二元組的所述源互聯(lián)網(wǎng)協(xié)議地址和目的互聯(lián)網(wǎng)協(xié)議地址在又一個方面,此處描述的是一種用于在多個分組弓I擎中的一個分組弓I擎上提供對稱的請求和響應(yīng)處理,同時保持客戶機的互聯(lián)網(wǎng)協(xié)議地址并且代理客戶機端口的方法的實施例,所述多個分組引擎中的每一個在位于所述客戶機和服務(wù)器中間的多核系統(tǒng)中的多個核中的一個核上執(zhí)行。由在所述位于客戶機和服務(wù)器中間的多核系統(tǒng)的第一核上執(zhí)行的分組引擎從流分布器接收客戶機請求,所述客戶機請求識別包括客戶機互聯(lián)網(wǎng)協(xié)議地址、客戶機端口、服務(wù)器互聯(lián)網(wǎng)協(xié)議地址和服務(wù)器端口的第一元組。響應(yīng)于對所述第一元組的第一哈希,所述流分布器將所述請求轉(zhuǎn)發(fā)到所述第一核。所述分組引擎可以確定代理所述請求的所述客戶機端口,并且保持所述客戶機互聯(lián)網(wǎng)協(xié)議地址。所述分組引擎還可以計算對所述客戶機互聯(lián)網(wǎng)協(xié)議地址和所述目的互聯(lián)網(wǎng)協(xié)議地址的第二哈希,以從多個端口分配表中選擇端口分配表。當選擇了所述端口分配表后,所述分組引擎可以確定對第二元組的哈希識別所述第一核,所述第二元組至少包括來自所選擇的端口分配表的可用的第一端口和所述客戶機互聯(lián)網(wǎng)協(xié)議地址。然后,所述分組引擎可以修改所述客戶機請求的所述客戶機端口,以識別所述第一端口。在一些實施例中,所述分組引擎將所修改的客戶機請求發(fā)送到所述服務(wù)器。在一些實施例中,所述分組引擎將所修改的客戶機請求發(fā)送到位于所述目的互聯(lián)網(wǎng)協(xié)議地址的服務(wù)器。在其他實施例中,所述分組引擎確定所選擇的端口分配表的所述第一端口不可用。當做出該確定后,所述分組引擎從所述所選擇的端口分配表中選擇第二端口,并且確定所述第二端口可用。進一步的,所述分組引擎可以通過確定所述第一端口正在使用來確定所述第一端□不可用。在一個實施例中,該方法還包括將多個端口分配表存儲在所述多核系統(tǒng)中的每個核上。每個端口分配表可以位于在其上存儲該端口分配表的核的代理互聯(lián)網(wǎng)協(xié)議地址。所述分組引擎可以部分基于對第一數(shù)據(jù)分組的客戶機互聯(lián)網(wǎng)協(xié)議地址和目的地址的哈希來選擇端口分配表。在一些實施例中,所述流分布器接收第一數(shù)據(jù)分組和第二數(shù)據(jù)分組,并且部分基于對第一元組的哈希將所述第一數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述多核系統(tǒng)中的第一核,所述第一元組至少包括所述第一數(shù)據(jù)分組的第一客戶機互聯(lián)網(wǎng)協(xié)議地址和第一目的地址。然后,所述流分布器部分基于對第二元組的哈希將所述第二數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述多核系統(tǒng)中的第二核,所述第二元組至少包括所述第二數(shù)據(jù)分組的第二客戶機互聯(lián)網(wǎng)協(xié)議地址和第二目的地址。在一個實施例中,該方法還包括更新所選擇的端口分配表,以將所述第一端口列為不可用。在一些方面,此處描述的是一種用于在多個分組引擎中的一個分組引擎上提供對稱的請求和響應(yīng)處理、同時保持客戶機的互聯(lián)網(wǎng)協(xié)議地址并且代理客戶機端口的系統(tǒng),所述多個分組引擎中的每一個都在位于所述客戶機和服務(wù)器中間的多核系統(tǒng)中的多個核中的一個核上執(zhí)行。該系統(tǒng)可以包括位于客戶機和服務(wù)器中間的多核系統(tǒng)。該系統(tǒng)還可以包括流分布器,所述流分布器接收客戶機到服務(wù)器的請求,并且基于對第一元組的哈希選擇第一核,所述第一元組包括在所述客戶機請求中識別的客戶機互聯(lián)網(wǎng)協(xié)議地址、客戶機端口、服務(wù)器互聯(lián)網(wǎng)協(xié)議地址和服務(wù)器端口。在所述多核系統(tǒng)的第一核上執(zhí)行的分組引擎可以接收來自所述流分布器的所述客戶機的請求,并且確定是否代理該請求的所述客戶機端口以及保持所述客戶機互聯(lián)網(wǎng)協(xié)議地址。然后,所述分組引擎計算對所述客戶機互聯(lián)網(wǎng)協(xié)議地址和所述目的互聯(lián)網(wǎng)協(xié)議地址的第二哈希以選擇多個端口分配表中的一個端口分配表,并且確定對第二元組的哈希識別所述第一核,所述第二元組至少包括來自所述所選擇的端口分配表的可用的第一端口以及所述客戶機互聯(lián)網(wǎng)協(xié)議地址。然后,所述分組引擎修改所述客戶機請求的客戶機端口,以識別所述第一端口。此處描述的方法和系統(tǒng)的各種實施例的細節(jié)在下面的附圖和描述中進行了詳細闡述。通過參考下述結(jié)合附圖的描述,本發(fā)明的前述和其它目的、方面、特征和優(yōu)點,將會更加明顯并更易于理解,其中圖IA是客戶機通過設(shè)備訪問服務(wù)器的網(wǎng)絡(luò)環(huán)境的實施例的框圖IB是通過設(shè)備從服務(wù)器傳送計算環(huán)境到客戶機的環(huán)境的實施例的框圖IC是通過設(shè)備從服務(wù)器傳送計算環(huán)境到客戶機的環(huán)境的又一個實施例的框圖ID是通過設(shè)備從服務(wù)器傳送計算環(huán)境到客戶機的環(huán)境的又一個實施例的框圖IE到IH是計算裝置的實施例的框圖2A是用于處理客戶機和服務(wù)器之間的通信的設(shè)備的實施例的框圖2B是用于優(yōu)化、加速、負載平衡和路由客戶機和服務(wù)器之間的通信的設(shè)備的又一個實施例的框圖3是用于通過設(shè)備與服務(wù)器通信的客戶機的實施例的框圖4A是虛擬化環(huán)境的實施例的框圖4B是虛擬化環(huán)境的又一個實施例的框圖4C是虛擬化設(shè)備的實施例的框圖5A是在多核系統(tǒng)中實現(xiàn)并行的方法實施例的框圖5B是使用多核系統(tǒng)的系統(tǒng)的實施例的框圖5C是多核系統(tǒng)的一個方面的又一實施例的框圖6A是多核系統(tǒng)的實施例的框圖6B是在多核系統(tǒng)內(nèi)的核的實施例的框圖7A-7C是用于在多核系統(tǒng)上分布數(shù)據(jù)分組的方法的實施例的流程圖8是用于基于哈希來在多核系統(tǒng)上分布數(shù)據(jù)分組的方法的實施例的流程圖9是用于通過核到核的消息傳輸來在多核系統(tǒng)上分布數(shù)據(jù)分組的方法的實施例的流程圖10A-10B是用于在多核系統(tǒng)上分布數(shù)據(jù)分組、同時保持客戶機IP地址和客戶機端口的方法的實施例的流程圖11A-11B是用于在多核系統(tǒng)上分布數(shù)據(jù)分組分段的方法的實施例的流程圖12A是用于在多核系統(tǒng)上分布數(shù)據(jù)分組、同時保持客戶機IP地址的方法的實施例的流程圖;和圖12B是用于選擇端口分配表的方法的實施例的流程圖。從下面結(jié)合附圖所闡述的詳細描述,本發(fā)明的特征和優(yōu)點將更明顯,其中,同樣的參考標記在全文中標識相應(yīng)的元素。在附圖中,同樣的附圖標記通常表示相同的、功能上相似的和/或結(jié)構(gòu)上相似的元素。具體實施方式為了閱讀下述各種實施例的描述,下述對于說明書的部分以及它們各自內(nèi)容的描述是有用的-A部分描述可用于實施此處描述的實施例的網(wǎng)絡(luò)環(huán)境和計算環(huán)境;-B部分描述用于將計算環(huán)境傳送到遠程用戶的系統(tǒng)和方法的實施例;-C部分描述用于加速客戶機和服務(wù)器之間的通信的系統(tǒng)和方法的實施例;-D部分描述用于對應(yīng)用傳送控制器進行虛擬化的系統(tǒng)和方法的實施例。-E部分描述用于提供多核架構(gòu)和環(huán)境的系統(tǒng)和方法的實施例;以及-F部分描述用于在多核架構(gòu)和環(huán)境上分布數(shù)據(jù)分組的系統(tǒng)和方法的實施例。A、網(wǎng)絡(luò)和計算環(huán)境在討論設(shè)備和/或客戶機的系統(tǒng)和方法的實施例的細節(jié)之前,討論可在其中部署這些實施例的網(wǎng)絡(luò)和計算環(huán)境是有幫助的。現(xiàn)在參見圖1A,描述了網(wǎng)絡(luò)環(huán)境的實施例。概括來講,網(wǎng)絡(luò)環(huán)境包括經(jīng)由一個或多個網(wǎng)絡(luò)104、104’(總的稱為網(wǎng)絡(luò)104)與一個或多個服務(wù)器106a-106n(同樣總的稱為服務(wù)器106,或遠程機器106)通信的一個或多個客戶機10加-10211(同樣總的稱為本地機器102,或客戶機10。在一些實施例中,客戶機102通過設(shè)備200與服務(wù)器106通信。雖然圖IA示出了在客戶機102和服務(wù)器106之間的網(wǎng)絡(luò)104和網(wǎng)絡(luò)104,,客戶機102和服務(wù)器106可以位于同一個的網(wǎng)絡(luò)104上。網(wǎng)絡(luò)104和104'可以是相同類型的網(wǎng)絡(luò)或不同類型的網(wǎng)絡(luò)。網(wǎng)絡(luò)104和/或104'可為局域網(wǎng)(LAN)例如公司內(nèi)網(wǎng),城域網(wǎng)(MAN),或者廣域網(wǎng)(WAN)例如因特網(wǎng)或萬維網(wǎng)。在一個實施例中,網(wǎng)絡(luò)104’可為專用網(wǎng)絡(luò)并且網(wǎng)絡(luò)104可為公網(wǎng)。在一些實施例中,網(wǎng)絡(luò)104’可為專用網(wǎng)并且網(wǎng)絡(luò)104’可為公網(wǎng)。在又一個實施例中,網(wǎng)絡(luò)104和104’可都為專用網(wǎng)。在一些實施例中,客戶機102可位于公司企業(yè)的分支機構(gòu)中,通過網(wǎng)絡(luò)104上的WAN連接與位于公司數(shù)據(jù)中心的LAN上的服務(wù)器106通信。網(wǎng)絡(luò)104和/或104’可以是任何類型和/或形式的網(wǎng)絡(luò),并且可包括任何下述網(wǎng)絡(luò)點對點網(wǎng)絡(luò),廣播網(wǎng)絡(luò),廣域網(wǎng),局域網(wǎng),電信網(wǎng)絡(luò),數(shù)據(jù)通信網(wǎng)絡(luò),計算機網(wǎng)絡(luò),ATM(異步傳輸模式)網(wǎng)絡(luò),SONET(同步光纖網(wǎng)絡(luò))網(wǎng)絡(luò),SDH(同步數(shù)字體系)網(wǎng)絡(luò),無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)。在一些實施例中,網(wǎng)絡(luò)104可以包括無線鏈路,諸如紅外信道或者衛(wèi)星頻帶。網(wǎng)絡(luò)104和/或104’的拓撲可為總線型、星型或環(huán)型網(wǎng)絡(luò)拓撲。網(wǎng)絡(luò)104和/或104’以及網(wǎng)絡(luò)拓撲可以是對于本領(lǐng)域普通技術(shù)人員所熟知的、可以支持此處描述的操作的任何這樣的網(wǎng)絡(luò)或網(wǎng)絡(luò)拓撲。如圖IA所示,設(shè)備200被顯示在網(wǎng)絡(luò)104和104’之間,設(shè)備200也可被稱為接口單元200或者網(wǎng)關(guān)200。在一些實施例中,設(shè)備200可位于網(wǎng)絡(luò)104上。例如,公司的分支機構(gòu)可在分支機構(gòu)中部署設(shè)備200。在其它實施例中,設(shè)備200可以位于網(wǎng)絡(luò)104'上。例如,設(shè)備200可位于公司的數(shù)據(jù)中心。在又一個實施例中,多個設(shè)備200可在網(wǎng)絡(luò)104上部署。在一些實施例中,多個設(shè)備200可部署在網(wǎng)絡(luò)104’上。在一個實施例中,第一設(shè)備200與第二設(shè)備200’通信。在其它實施例中,設(shè)備200可為位于與客戶機102同一或不同網(wǎng)絡(luò)104、104’的任一客戶機102或服務(wù)器106的一部分。一個或多個設(shè)備200可位于客戶機102和服務(wù)器106之間的網(wǎng)絡(luò)或網(wǎng)絡(luò)通信路徑中的任一點。在一些實施例中,設(shè)備200包括由位于佛羅里達州Ft.Lauderdale的CitrixSystems公司制造的被稱為CitrixNetkaler設(shè)備的任何網(wǎng)絡(luò)設(shè)備。在其它實施例中,設(shè)備200包括由位于華盛頓州西雅圖的F5Networks公司制造的被稱為WebAccelerator和BigIP的任何一個產(chǎn)品實施例。在又一個實施例中,設(shè)備205包括由位于加利福尼亞州Sunnyvale的JuniperNetworks公司制造的DX加速設(shè)備平臺和/或諸如SA700、SA2000、SA4000和SA6000的SSLVPN系列設(shè)備中的任何一個。在又一個實施例中,設(shè)備200包括由位于加利福尼亞州SanJose的CiscoSystems公司制造的任何應(yīng)用加速和/或安全相關(guān)的設(shè)備和/或軟件,例如CiscoACE應(yīng)用控制引擎模塊務(wù)(ApplicationControlEngineModuleservice)軟件和網(wǎng)絡(luò)模塊以及CiscoAVS系列應(yīng)用速度系統(tǒng)(ApplicationVelocitySystem)。在一個實施例中,系統(tǒng)可包括多個邏輯分組的服務(wù)器106。在這些實施例中,服務(wù)器的邏輯分組可以被稱為服務(wù)器群38。在其中一些實施例中,服務(wù)器106可為地理上分散的。在一些情況中,群38可以作為單個實體被管理。在其它實施例中,服務(wù)器群38包括多個服務(wù)器群38。在一個實施例中,服務(wù)器群代表一個或多個客戶機102執(zhí)行一個或多個應(yīng)用程序。在每個群38中的服務(wù)器106可為不同種類。一個或多個服務(wù)器106可根據(jù)一種類型的操作系統(tǒng)平臺(例如,由華盛頓州Redmond的Microsoft公司制造的WINDOWSNT)操作,而一個或多個其它服務(wù)器106可根據(jù)另一類型的操作系統(tǒng)平臺(例如,Unix或Linux)操作。每個群38的服務(wù)器106不需要與同一群38內(nèi)的另一個服務(wù)器106物理上接近。因此,被邏輯分組為群38的服務(wù)器106組可使用廣域網(wǎng)(WAN)連接或城域網(wǎng)(MAN)連接互聯(lián)。例如,群38可包括物理上位于不同大陸或大陸的不同區(qū)域、國家、州、城市、校園或房間的服務(wù)器106。如果使用局域網(wǎng)(LAN)連接或一些直連形式來連接服務(wù)器106,則可增加群38中的服務(wù)器106間的數(shù)據(jù)傳送速度。服務(wù)器106可指文件服務(wù)器、應(yīng)用服務(wù)器、web服務(wù)器、代理服務(wù)器或者網(wǎng)關(guān)服務(wù)器。在一些實施例中,服務(wù)器106可以有作為應(yīng)用服務(wù)器或者作為主應(yīng)用服務(wù)器工作的能力。在一個實施例中,服務(wù)器106可包括活動目錄。客戶機102也可稱為客戶機節(jié)點或端點。在一些實施例中,客戶機102可以有作為客戶機節(jié)點尋求訪問服務(wù)器上的應(yīng)用的能力,也可以有作為應(yīng)用服務(wù)器為其它客戶機102a-102n提供對寄載的應(yīng)用的訪問的能力。在一些實施例中,客戶機102與服務(wù)器106通信。在一個實施例中,客戶機102可與群38中的服務(wù)器106的其中一個直接通信。在又一個實施例中,客戶機102執(zhí)行程序鄰近應(yīng)用(programneighborhoodapplication)以與群38內(nèi)的服務(wù)器106通信。在又一個實施例中,服務(wù)器106提供主節(jié)點的功能。在一些實施例中,客戶機102通過網(wǎng)絡(luò)104與群38中的服務(wù)器106通信。通過網(wǎng)絡(luò)104,客戶機102例如可以請求執(zhí)行群38中的服務(wù)器106a-106n寄載的各種應(yīng)用,并接收應(yīng)用執(zhí)行結(jié)果的輸出進行顯示。在一些實施例中,只有主節(jié)點提供識別和提供與寄載所請求的應(yīng)用的服務(wù)器106'相關(guān)的地址信息所需的功能。在一個實施例中,服務(wù)器106提供web服務(wù)器的功能。在又一個實施例中,服務(wù)器106a接收來自客戶機102的請求,將該請求轉(zhuǎn)發(fā)到第二服務(wù)器106b,并使用來自服務(wù)器106b對該請求的響應(yīng)來對客戶機102的請求進行響應(yīng)。在又一個實施例中,服務(wù)器106獲得客戶機102可用的應(yīng)用的列舉以及與由該應(yīng)用的列舉所識別的應(yīng)用的服務(wù)器106相關(guān)的地址信息。在又一個實施例中,服務(wù)器106使用web接口將對請求的響應(yīng)提供給客戶機102。在一個實施例中,客戶機102直接與服務(wù)器106通信以訪問所識別的應(yīng)用。在又一個實施例中,客戶機102接收由執(zhí)行服務(wù)器106上所識別的應(yīng)用而產(chǎn)生的諸如顯示數(shù)據(jù)的應(yīng)用輸出數(shù)據(jù)。現(xiàn)在參考圖1B,描述了部署多個設(shè)備200的網(wǎng)絡(luò)環(huán)境的實施例。第一設(shè)備200可以部署在第一網(wǎng)絡(luò)104上,而第二設(shè)備200'部署在第二網(wǎng)絡(luò)104'上。例如,公司可以在分支機構(gòu)部署第一設(shè)備200,而在數(shù)據(jù)中心部署第二設(shè)備200'。在又一個實施例中,第一設(shè)備200和第二設(shè)備200'被部署在同一個網(wǎng)絡(luò)104或網(wǎng)絡(luò)104上。例如,第一設(shè)備200可以被部署用于第一服務(wù)器群38,而第二設(shè)備200可以被部署用于第二服務(wù)器群38'。在又一個實例中,第一設(shè)備200可以被部署在第一分支機構(gòu),而第二設(shè)備200'被部署在第二分支機構(gòu)'。在一些實施例中,第一設(shè)備200和第二設(shè)備200'彼此協(xié)同或聯(lián)合工作,以加速客戶機和服務(wù)器之間的網(wǎng)絡(luò)業(yè)務(wù)量或應(yīng)用和數(shù)據(jù)的傳送?,F(xiàn)參考圖1C,描述了網(wǎng)絡(luò)環(huán)境的又一個實施例,在該網(wǎng)絡(luò)環(huán)境中,將設(shè)備200和一個或多個其它類型的設(shè)備部署在一起,例如,部署在一個或多個WAN優(yōu)化設(shè)備205,205’之間。例如,第一WAN優(yōu)化設(shè)備205顯示在網(wǎng)絡(luò)104和104'之間,而第二WAN優(yōu)化設(shè)備205‘可以部署在設(shè)備200和一個或多個服務(wù)器106之間。例如,公司可以在分支機構(gòu)部署第一WAN優(yōu)化設(shè)備205,而在數(shù)據(jù)中心部署第二WAN優(yōu)化設(shè)備205'。在一些實施例中,設(shè)備205可以位于網(wǎng)絡(luò)104'上。在其它實施例中,設(shè)備205'可以位于網(wǎng)絡(luò)104上。在一些實施例中,設(shè)備205'可以位于網(wǎng)絡(luò)104'或網(wǎng)絡(luò)104〃上。在一個實施例中,設(shè)備205和205'在同一個網(wǎng)絡(luò)上。在又一個實施例中,設(shè)備205和205'在不同的網(wǎng)絡(luò)上。在又一個實例中,第一WAN優(yōu)化設(shè)備205可以被部署用于第一服務(wù)器群38,而第二WAN優(yōu)化設(shè)備205'可以被部署用于第二服務(wù)器群38'。在一個實施例中,設(shè)備205是用于加速、優(yōu)化或者以其他方式改善任何類型和形式的網(wǎng)絡(luò)業(yè)務(wù)(例如去往和/或來自WAN連接的業(yè)務(wù))的性能、操作或服務(wù)質(zhì)量的裝置。在一些實施例中,設(shè)備205是一個性能增強代理。在其它實施例中,設(shè)備205是任何類型和形式的WAN優(yōu)化或加速裝置,有時也被稱為WAN優(yōu)化控制器。在一個實施例中,設(shè)備205是由位于佛羅里達州Ft.Lauderdale的CitrixSystems公司出品的被稱為WANkaler的產(chǎn)品實施例中的任何一種。在其它實施例中,設(shè)備205包括由位于華盛頓州kattle的F5Networks公司出品的被稱為BIG-IP鏈路控制器和WANjet的產(chǎn)品實施例中的任何一種。在又一個實施例中,設(shè)備205包括由位于加利福尼亞州Sunnyvale的JuniperNetfforks公司出品的WX和WXCWAN加速裝置平臺中的任何一種。在一些實施例中,設(shè)備205包括由加利福尼亞州SanFrancisco的RiverbedTechnology公司出品的虹鱒(steelhead)系列WAN優(yōu)化設(shè)備中的任何一種。在其它實施例中,設(shè)備205包括由位于新澤西州Roseland的ExpandNetworks公司出品的WAN相關(guān)裝置中的任何一種。在一個實施例中,設(shè)備205包括由位于加利福尼亞州Cupertino的I^acketeer公司出品的任何一種WAN相關(guān)設(shè)備,例如由Packeteer提供的PacketShaper、iShared和SkyX產(chǎn)品實施例。在又一個實施例中,設(shè)備205包括由位于加利福尼亞州SanJose的CiscoSystems公司出品的任何WAN相關(guān)設(shè)備和/或軟件,例如Cisco廣域網(wǎng)應(yīng)用服務(wù)軟件和網(wǎng)絡(luò)模塊以及廣域網(wǎng)引擎設(shè)備。在一個實施例中,設(shè)備205為分支機構(gòu)或遠程辦公室提供應(yīng)用和數(shù)據(jù)加速服務(wù)。在一個實施例中,設(shè)備205包括廣域文件服務(wù)(WAR5)的優(yōu)化。在又一個實施例中,設(shè)備205加速文件的傳送,例如經(jīng)由通用互聯(lián)網(wǎng)文件系統(tǒng)(CIFS)協(xié)議。在其它實施例中,設(shè)備205在存儲器和/或存儲裝置中提供高速緩存來加速應(yīng)用和數(shù)據(jù)的傳送。在一個實施例中,設(shè)備205在任何級別的網(wǎng)絡(luò)堆棧或在任何的協(xié)議或網(wǎng)絡(luò)層中提供網(wǎng)絡(luò)業(yè)務(wù)量的壓縮。在又一個實施例中,設(shè)備205提供傳輸層協(xié)議優(yōu)化、流量控制、性能增強或修改和/或管理,以加速WAN連接上的應(yīng)用和數(shù)據(jù)的傳送。例如,在一個實施例中,設(shè)備204提供傳輸控制協(xié)議(TCP)優(yōu)化。在其它實施例中,設(shè)備205提供對于任何會話或應(yīng)用層協(xié)議的優(yōu)化、流量控制、性能增強或修改和/或管理。在又一個實施例中,設(shè)備205將任何類型和形式的數(shù)據(jù)或信息編碼成網(wǎng)絡(luò)分組的定制的或標準的TCP和/或IP的頭部字段或可選字段,以將其存在、功能或能力通告給另一個設(shè)備205'。在又一個實施例中,設(shè)備205'可以使用在TCP和/或IP頭部字段或選項中編碼的數(shù)據(jù)來與另一個設(shè)備205'進行通信。例如,設(shè)備可以使用TCP選項或IP頭部字段或選項來傳達在執(zhí)行諸如WAN加速的功能時或者為了彼此聯(lián)合工作而由設(shè)備205,205'所使用的一個或多個參數(shù)。在一些實施例中,設(shè)備200保存在設(shè)備205和205‘之間傳達的TCP和/或IP頭部和/或可選字段中編碼的任何信息。例如,設(shè)備200可以終止經(jīng)過設(shè)備200的傳輸層連接,例如經(jīng)過設(shè)備205和205'的在客戶機和服務(wù)器之間的一個傳輸層連接。在一個實施例中,設(shè)備200識別并保存由第一設(shè)備205通過第一傳輸層連接發(fā)送的傳輸層分組中的任何編碼信息,并經(jīng)由第二傳輸層連接來將具有編碼信息的傳輸層分組傳達到第二設(shè)備205'?,F(xiàn)參考圖1D,描述了用于傳送和/或操作客戶機102上的計算環(huán)境的網(wǎng)絡(luò)環(huán)境。在一些實施例中,服務(wù)器106包括用于向一個或多個客戶機102傳送計算環(huán)境或應(yīng)用和/或數(shù)據(jù)文件的應(yīng)用傳送系統(tǒng)190??偟膩碚f,客戶機10通過網(wǎng)絡(luò)104、104’和設(shè)備200與服務(wù)器106通信。例如,客戶機102可駐留在公司的遠程辦公室里,例如分支機構(gòu),并且服務(wù)器106可駐留在公司數(shù)據(jù)中心。客戶機102包括客戶機代理120以及計算環(huán)境15。計算環(huán)境15可執(zhí)行或操作用于訪問、處理或使用數(shù)據(jù)文件的應(yīng)用??山?jīng)由設(shè)備200和/或服務(wù)器106傳送計算環(huán)境15、應(yīng)用和/或數(shù)據(jù)文件。在一些實施例中,設(shè)備200加速計算環(huán)境15或者其任何部分到客戶機102的傳送。在一個實施例中,設(shè)備200通過應(yīng)用傳送系統(tǒng)190加速計算環(huán)境15的傳送。例如,可使用此處描述的實施例來加速從公司中央數(shù)據(jù)中心到遠程用戶位置(例如公司的分支機構(gòu))的流應(yīng)用(streamingapplication)及該應(yīng)用可處理的數(shù)據(jù)文件的傳送。在又一個實施例中,設(shè)備200加速客戶機102和服務(wù)器106之間的傳輸層業(yè)務(wù)量。設(shè)備200可以提供用于加速從服務(wù)器106到客戶機102的任何傳輸層有效載荷的加速技術(shù),例如1)傳輸層連接池,2)傳輸層連接多路復(fù)用,幻傳輸控制協(xié)議緩沖,4)壓縮和幻高速緩存。在一些實施例中,設(shè)備200響應(yīng)于來自客戶機102的請求提供服務(wù)器106的負載平衡。在其它實施例中,設(shè)備200充當代理或者訪問服務(wù)器來提供對一個或者多個服務(wù)器106的訪問。在又一個實施例中,設(shè)備200提供從客戶機102的第一網(wǎng)絡(luò)104到服務(wù)器106的第二網(wǎng)絡(luò)104’的安全虛擬專用網(wǎng)絡(luò)連接,諸如SSLVPN連接。在其他實施例中,設(shè)備200提供客戶機102和服務(wù)器106之間的連接和通信的應(yīng)用防火墻安全、控制和管理。在一些實施例中,基于多個執(zhí)行方法并且基于通過策略引擎195所應(yīng)用的任一驗證和授權(quán)策略,應(yīng)用傳送管理系統(tǒng)190提供將計算環(huán)境傳送到遠程的或者另外的用戶的桌面的應(yīng)用傳送技術(shù)。使用這些技術(shù),遠程用戶可以從任何網(wǎng)絡(luò)連接裝置100獲取計算環(huán)境并且訪問服務(wù)器所存儲的應(yīng)用和數(shù)據(jù)文件。在一個實施例中,應(yīng)用傳送系統(tǒng)190可駐留在服務(wù)器106上或在其上執(zhí)行。在又一個實施例中,應(yīng)用傳送系統(tǒng)190可駐留在多個服務(wù)器106a-106n上或在其上執(zhí)行。在一些實施例中,應(yīng)用傳送系統(tǒng)190可在服務(wù)器群38內(nèi)執(zhí)行。在一個實施例中,執(zhí)行應(yīng)用傳送系統(tǒng)190的服務(wù)器106也可存儲或提供應(yīng)用和數(shù)據(jù)文件。在又一個實施例中,一個或多個服務(wù)器106的第一組可執(zhí)行應(yīng)用傳送系統(tǒng)190,而不同的服務(wù)器106η可存儲或提供應(yīng)用和數(shù)據(jù)文件。在一些實施例中,應(yīng)用傳送系統(tǒng)190、應(yīng)用和數(shù)據(jù)文件中的每一個可駐留或位于不同的服務(wù)器。在又一個實施例中,應(yīng)用傳送系統(tǒng)190的任何部分可駐留、執(zhí)行、或被存儲于或分發(fā)到設(shè)備200或多個設(shè)備??蛻魴C102可包括用于執(zhí)行使用或處理數(shù)據(jù)文件的應(yīng)用的計算環(huán)境15??蛻魴C102可通過網(wǎng)絡(luò)104、104’和設(shè)備200請求來自服務(wù)器106的應(yīng)用和數(shù)據(jù)文件。在一個實施例中,設(shè)備200可以將來自客戶機102的請求轉(zhuǎn)發(fā)到服務(wù)器106。例如,客戶機102可能不具有本地存儲或者本地可訪問的應(yīng)用和數(shù)據(jù)文件。響應(yīng)于請求,應(yīng)用傳送系統(tǒng)190和/或服務(wù)器106可以傳送應(yīng)用和數(shù)據(jù)文件到客戶機102。例如,在一個實施例中,服務(wù)器106可以將應(yīng)用作為應(yīng)用流來傳輸,以在客戶機102上的計算環(huán)境15中操作。在一些實施例中,應(yīng)用傳送系統(tǒng)190包括CitrixSystemsInc.的CitrixAccessSuite的任一部分(例如MetaFrame或CitrixPresentationServer),和/或微軟公司幵發(fā)的MicrosoftWindows終端服務(wù)中的任何一個。在一個實施例中,應(yīng)用傳送系統(tǒng)190可以通過遠程顯示協(xié)議或者以其它方式通過基于遠程計算或者基于服務(wù)器計算來傳送一個或者多個應(yīng)用到客戶機102或者用戶。在又一個實施例中,應(yīng)用傳送系統(tǒng)190可以通過應(yīng)用流來傳送一個或者多個應(yīng)用到客戶機或者用戶。在一個實施例中,應(yīng)用傳送系統(tǒng)190包括策略引擎195,其用于控制和管理對應(yīng)用的訪問、應(yīng)用執(zhí)行方法的選擇以及應(yīng)用的傳送。在一些實施例中,策略引擎195確定用戶或者客戶機102可以訪問的一個或者多個應(yīng)用。在又一個實施例中,策略引擎195確定應(yīng)用應(yīng)該如何被傳送到用戶或者客戶機102,例如執(zhí)行方法。在一些實施例中,應(yīng)用傳送系統(tǒng)190提供多個傳送技術(shù),從中選擇應(yīng)用執(zhí)行的方法,例如基于服務(wù)器的計算、本地流式傳輸或傳送應(yīng)用給客戶機120以用于本地執(zhí)行。在一個實施例中,客戶機102請求應(yīng)用程序的執(zhí)行并且包括服務(wù)器106的應(yīng)用傳送系統(tǒng)190選擇執(zhí)行應(yīng)用程序的方法。在一些實施例中,服務(wù)器106從客戶機102接收證書。在又一個實施例中,服務(wù)器106從客戶機102接收對于可用應(yīng)用的列舉的請求。在一個實施例中,響應(yīng)該請求或者證書的接收,應(yīng)用傳送系統(tǒng)190列舉對于客戶機102可用的多個應(yīng)用程序。應(yīng)用傳送系統(tǒng)190接收執(zhí)行所列舉的應(yīng)用的請求。應(yīng)用傳送系統(tǒng)190選擇預(yù)定數(shù)量的方法之一來執(zhí)行所列舉的應(yīng)用,例如響應(yīng)策略引擎的策略。應(yīng)用傳送系統(tǒng)190可以選擇執(zhí)行應(yīng)用的方法,使得客戶機102接收通過執(zhí)行服務(wù)器106上的應(yīng)用程序所產(chǎn)生的應(yīng)用輸出數(shù)據(jù)。應(yīng)用傳送系統(tǒng)190可以選擇執(zhí)行應(yīng)用的方法,使得本地機器10在檢索包括應(yīng)用的多個應(yīng)用文件之后本地執(zhí)行應(yīng)用程序。在又一個實施例中,應(yīng)用傳送系統(tǒng)190可以選擇執(zhí)行應(yīng)用的方法,以通過網(wǎng)絡(luò)104流式傳輸應(yīng)用到客戶機102??蛻魴C102可以執(zhí)行、操作或者以其它方式提供應(yīng)用,所述應(yīng)用可為任何類型和/或形式的軟件、程序或者可執(zhí)行指令,例如任何類型和/或形式的web瀏覽器、基于web的客戶機、客戶機-服務(wù)器應(yīng)用、瘦客戶端計算客戶機、ActiveX控件、或者Java程序、或者可以在客戶機102上執(zhí)行的任何其它類型和/或形式的可執(zhí)行指令。在一些實施例中,應(yīng)用可以是代表客戶機102在服務(wù)器106上執(zhí)行的基于服務(wù)器或者基于遠程的應(yīng)用。在一個實施例中,服務(wù)器106可以使用任何瘦-客戶端或遠程顯示協(xié)議來顯示輸出到客戶機102,所述瘦客戶端或遠程顯示協(xié)議例如由位于佛羅里達州Ft.Lauderdale的CitrixSystems公司出品的獨立計算架構(gòu)(ICA)協(xié)議或由位于華盛頓州Redmond的微軟公司出品的遠程桌面協(xié)議(RDP)。應(yīng)用可使用任何類型的協(xié)議,并且它可為,例如,HTTP客戶機、FTP客戶機、Oscar客戶機或Telnet客戶機。在其它實施例中,應(yīng)用包括和VoIP通信相關(guān)的任何類型的軟件,例如軟IP電話。在進一步的實施例中,應(yīng)用包括涉及到實時數(shù)據(jù)通信的任一應(yīng)用,例如用于流式傳輸視頻和/或音頻的應(yīng)用。在一些實施例中,服務(wù)器106或服務(wù)器群38可運行一個或多個應(yīng)用,例如提供瘦客戶端計算或遠程顯示表示應(yīng)用的應(yīng)用。在一個實施例中,服務(wù)器106或服務(wù)器群38作為一個應(yīng)用來執(zhí)行CitrixSystemsInc.的CitrixAccessSuite的任一部分(例如MetaFrame或CitrixPresentationServer),和/或微軟公司幵發(fā)的MicrosoftWindows終端服務(wù)中的任何一個。在一個實施例中,該應(yīng)用是位于佛羅里達州R)rtLauderdale的CitrixSystemsInc.開發(fā)的ICA客戶機。在其它實施例中,該應(yīng)用包括由位于華盛頓州Redmond的Microsoft公司開發(fā)的遠程桌面(RDP)客戶機。另外,服務(wù)器106可以運行一個應(yīng)用,例如,其可以是提供電子郵件服務(wù)的應(yīng)用服務(wù)器,例如由位于華盛頓州Redmond的Microsoft公司制造的MicrosoftExchange,web或Internet月艮務(wù)器,或者桌面共享服務(wù)器,或者協(xié)作服務(wù)器。在一些實施例中,任一應(yīng)用可以包括任一類型的所寄載的服務(wù)或產(chǎn)品,例如位于加利福尼亞州SantaBarbara的CitrixOnlineDivision提供的Go^ToMeeting,位于加利福尼亞州SantaClara的WebExInc.提供的WebEx,或者位于華盛頓州Redmond的Microsoft公司提供的MicrosoftOfficeLiveMeeting。仍參考圖1D,網(wǎng)絡(luò)環(huán)境的一個實施例可以包括監(jiān)控服務(wù)器106A。監(jiān)控服務(wù)器106A可以包括任何類型和形式的性能監(jiān)控服務(wù)198。性能監(jiān)控服務(wù)198可以包括監(jiān)控、測量和/或管理軟件和/或硬件,包括數(shù)據(jù)收集、集合、分析、管理和報告。在一個實施例中,性能監(jiān)控服務(wù)198包括一個或多個監(jiān)控代理197。監(jiān)控代理197包括用于在諸如客戶機102、服務(wù)器106或設(shè)備200和205的裝置上執(zhí)行監(jiān)控、測量和數(shù)據(jù)收集活動的任何軟件、硬件或其組合。在一些實施例中,監(jiān)控代理197包括諸如VisualBasic腳本或Javascript任何類型和形式的腳本。在一個實施例中,監(jiān)控代理197相對于裝置的任何應(yīng)用和/或用戶透明地執(zhí)行。在一些實施例中,監(jiān)控代理197相對于應(yīng)用或客戶機不顯眼地被安裝和操作。在又一個實施例中,監(jiān)控代理197的安裝和操作不需要用于該應(yīng)用或裝置的任何設(shè)備。在一些實施例中,監(jiān)控代理197以預(yù)定頻率監(jiān)控、測量和收集數(shù)據(jù)。在其它實施例中,監(jiān)控代理197基于檢測到任何類型和形式的事件來監(jiān)控、測量和收集數(shù)據(jù)。例如,監(jiān)控代理197可以在檢測到對web頁面的請求或收到HTTP響應(yīng)時收集數(shù)據(jù)。在又一個實例中,監(jiān)控代理197可以在檢測到諸如鼠標點擊的任一用戶輸入事件時收集數(shù)據(jù)。監(jiān)控代理197可以報告或提供任何所監(jiān)控、測量或收集的數(shù)據(jù)給監(jiān)控服務(wù)198。在一個實施例中,監(jiān)控代理197根據(jù)時間安排或預(yù)定頻率來發(fā)送信息給監(jiān)控服務(wù)198。在又一個實施例中,監(jiān)控代理197在檢測到事件時發(fā)送信息給監(jiān)控服務(wù)198。在一些實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197對諸如客戶機、服務(wù)器、服務(wù)器群、設(shè)備200、設(shè)備205或網(wǎng)絡(luò)連接的任何網(wǎng)絡(luò)資源或網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)元件的進行監(jiān)控和性能測量。在一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197執(zhí)行諸如TCP或UDP連接的任何傳輸層連接的監(jiān)控和性能測量。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量網(wǎng)絡(luò)等待時間。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量帶寬利用。在其它實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量終端用戶響應(yīng)時間。在一些實施例中,監(jiān)控服務(wù)198執(zhí)行應(yīng)用的監(jiān)控和性能測量。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197執(zhí)行到應(yīng)用的任何會話或連接的監(jiān)控和性能測量。在一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量瀏覽器的性能。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量基于HTTP的事務(wù)的性能。在一些實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量IP電話(VoIP)應(yīng)用或會話的性能。在其它實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量諸如ICA客戶機或RDP客戶機的遠程顯示協(xié)議應(yīng)用的性能。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量任何類型和形式的流媒體的性能。在進一步的實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量所寄載的應(yīng)用或軟件即服務(wù)(Software-As-A-Service,SaaS)傳送模型的性能。在一些實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197執(zhí)行與應(yīng)用相關(guān)的一個或多個事務(wù)、請求或響應(yīng)的監(jiān)控和性能測量。在其它實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量應(yīng)用層堆棧的任何部分,例如任何.NET或J2EE調(diào)用。在一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量數(shù)據(jù)庫或SQL事務(wù)。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量任何方法、函數(shù)或應(yīng)用編程接口(API)調(diào)用。在一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197對經(jīng)由諸如設(shè)備200和/或設(shè)備205的一個或多個設(shè)備從服務(wù)器到客戶機的應(yīng)用和/或數(shù)據(jù)的傳送進行監(jiān)控和性能測量。在一些實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量虛擬化應(yīng)用的傳送的性能。在其它實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量流式應(yīng)用的傳送的性能。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量傳送桌面應(yīng)用到客戶機和/或在客戶機上執(zhí)行桌面應(yīng)用的性能。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量客戶機/服務(wù)器應(yīng)用的性能。在一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197被設(shè)計和構(gòu)建成為應(yīng)用傳送系統(tǒng)190提供應(yīng)用性能管理。例如,監(jiān)控服務(wù)198和/或監(jiān)控代理197可以監(jiān)控、測量和管理經(jīng)由Citrix表示服務(wù)器(CitrixPresentationServer)傳送應(yīng)用的性能。在該實例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控單獨的ICA會話。監(jiān)控服務(wù)198和/或監(jiān)控代理197可以測量總的以及每次的會話系統(tǒng)資源使用,以及應(yīng)用和連網(wǎng)性能。監(jiān)控服務(wù)198和/或監(jiān)控代理197可以對于給定用戶和/或用戶會話來標識有效服務(wù)器(activeserver)。在一些實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控在應(yīng)用傳送系統(tǒng)190和應(yīng)用和/或數(shù)據(jù)庫服務(wù)器之間的后端連接。監(jiān)控服務(wù)198和/或監(jiān)控代理197可以測量每個用戶會話或ICA會話的網(wǎng)絡(luò)等待時間、延遲和容量。在一些實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控對于應(yīng)用傳送系統(tǒng)190的諸如總的存儲器使用、每個用戶會話和/或每個進程的存儲器使用。在其它實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控諸如總的CPU使用、每個用戶會話和/或每個進程的應(yīng)用傳送系統(tǒng)190的CPU使用。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控登錄到諸如Citrix表示服務(wù)器的應(yīng)用、服務(wù)器或應(yīng)用傳送系統(tǒng)所需的時間。在一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控用戶登錄應(yīng)用、服務(wù)器或應(yīng)用傳送系統(tǒng)190的持續(xù)時間。在一些實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控應(yīng)用、服務(wù)器或應(yīng)用傳送系統(tǒng)會話的有效和無效的會話計數(shù)。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控用戶會話等待時間。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控任何類型和形式的服務(wù)器指標。在一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控與系統(tǒng)內(nèi)存、CPU使用和磁盤存儲器有關(guān)的指標。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控和頁錯誤有關(guān)的指標,諸如每秒頁錯誤。在其它實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控往返時間的指標。在又一個實施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控與應(yīng)用崩潰、錯誤和/或中止相關(guān)的指標。在一些實施例中,監(jiān)控服務(wù)198和監(jiān)控代理198包括由位于佛羅里達州Ft.Lauderdale的CitrixSystems公司出品的被稱為EdgeSight的任何一種產(chǎn)品實施例。在又一個實施例中,性能監(jiān)控服務(wù)198和/或監(jiān)控代理198包括由位于加利福尼亞州I^loAlto的Symphoniq公司出品的被稱為TrueView產(chǎn)品套件的產(chǎn)品實施例的任一部分。在一個實施例中,性能監(jiān)控服務(wù)198和/或監(jiān)控代理198包括由位于加利福尼亞州SanFrancisco的TeaLeaf技術(shù)公司出品的被稱為TeaLeafCX產(chǎn)品套件的產(chǎn)品實施例的任何部分。在其它實施例中,性能監(jiān)控服務(wù)198和/或監(jiān)控代理198包括由位于德克薩斯州Houston的BMC軟件公司出品的諸如BMC性能管理器和巡邏產(chǎn)品(BMCPerformanceManagerandPatrolproducts)的商業(yè)業(yè)務(wù)管理產(chǎn)品的任何部分??蛻魴C102、服務(wù)器106和設(shè)備200可以被部署為和/或執(zhí)行在任何類型和形式的計算裝置上,諸如能夠在任何類型和形式的網(wǎng)絡(luò)上通信并執(zhí)行此處描述的操作的計算機、網(wǎng)絡(luò)裝置或者設(shè)備。圖IE和IF描述了可用于實施客戶機102、服務(wù)器106或設(shè)備200的實施例的計算裝置100的框圖。如圖IE和IF所示,每個計算裝置100包括中央處理單元101和主存儲器單元122。如圖IE所示,計算裝置100可以包括可視顯示裝置124、鍵盤1和/或諸如鼠標的指示裝置127。每個計算裝置100也可包括其它可選元件,例如一個或多個輸入/輸出裝置130a-130b(總的使用附圖標記130表示),以及與中央處理單元101通信的高速緩存存儲器140。中央處理單元101是響應(yīng)并處理從主存儲器單元122取出的指令的任何邏輯電路。在許多實施例中,中央處理單元由微處理器單元提供,例如由加利福尼亞州MountainView的Intel公司制造的微處理器單元;由伊利諾伊州Schaumburg的Motorola公司制造的微處理器單元;由加利福尼亞州SantaClara的Transmeta公司制造的微處理器單元;由紐約州WhitePlains的InternationalBusinessMachines公司制造的RS/6000處理器;或者由加利福尼亞州Sunnyvale的AdvancedMicroDevices公司制造的微處理器單元。計算裝置100可以基于這些處理器中的任何一種,或者能夠按照這里所說明的那樣運行的任何其它處理器。主存儲器單元122可以是能夠存儲數(shù)據(jù)并允許微處理器101直接訪問任何存儲位置的一個或多個存儲器芯片,例如靜態(tài)隨機存取存儲器(SRAM)、突發(fā)SRAM或同步突發(fā)SRAM(BSRAM)、動態(tài)隨機存取存儲器DRAM、快速頁模式DRAM(FPMDRAM)、增強型DRAM(EDRAM)、擴展數(shù)據(jù)輸出RAM(EDORAM)、擴展數(shù)據(jù)輸出DRAM(EDODRAM)、突發(fā)式擴展數(shù)據(jù)輸出DRAM(BED0DRAM)、增強型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDECSRAM、PClOOSDRAM、雙數(shù)據(jù)速率SDRAM(DDRSDRAM)、增強型SRAM(ESDRAM)、同步鏈路DRAM(SLDRAM)、直接RambusDRAM(DRDRAM)或鐵電RAM(FRAM)。主存儲器122可以基于上述存儲芯片的任何一種,或者能夠像這里所說明的那樣運行的任何其它可用存儲芯片。在圖IE中所示的實施例中,處理器101通過系統(tǒng)總線150(在下面進行更詳細的描述)與主存儲器122進行通信。圖IE描述了在其中處理器通過存儲器端口103直接與主存儲器122通信的計算裝置100的實施例。例如,在圖IF中,主存儲器122可以是DRDRAM。圖IF描述了在其中主處理器101通過第二總線與高速緩存存儲器140直接通信的實施例,第二總線有時也稱為背側(cè)總線。其他實施例中,主處理器101使用系統(tǒng)總線150和高速緩存存儲器140通信。高速緩存存儲器140通常有比主存儲器122更快的響應(yīng)時間,并且通常由SRAM、BSRAM或EDRAM提供。在圖IF中所示的實施例中,處理器101通過本地系統(tǒng)總線150與多個I/O裝置130進行通信??梢允褂酶鞣N不同的總線將中央處理單元101連接到任何I/O裝置130,所述總線包括VESAVL總線、ISA總線、EISA總線、微通道體系結(jié)構(gòu)(MCA)總線、PCI總線、PCI-X總線、PCI-Express總線或NuBus。對于I/O裝置是視頻顯示器124的實施例,處理器101可以使用高級圖形端口(AGP)與顯示器IM通信。圖IF說明了主處理器101通過超傳輸(HyperTransport)、快速I/O或者hfiniBand直接與I/O裝置130通信的計算機100的一個實施例。圖IF還描述了在其中混合本地總線和直接通信的實施例處理器101使用本地互連總線與I/O裝置130進行通信,同時直接與I/O裝置130進行通信。計算裝置100可以支持任何適當?shù)陌惭b裝置116,例如用于接收像3.5英寸、5.25英寸磁盤或ZIP磁盤這樣的軟盤的軟盤驅(qū)動器、⑶-ROM驅(qū)動器、⑶-R/RW驅(qū)動器、DVD-ROM驅(qū)動器、多種格式的磁帶驅(qū)動器、USB裝置、硬盤驅(qū)動器或適于安裝像任何客戶機代理120或其部分的軟件和程序的任何其它裝置。計算裝置100還可以包括存儲裝置128,諸如一個或者多個硬盤驅(qū)動器或者獨立磁盤冗余陣列,用于存儲操作系統(tǒng)和其它相關(guān)軟件,以及用于存儲諸如涉及客戶機代理120的任何程序的應(yīng)用軟件程序。或者,可以使用安裝裝置116的任何一種作為存儲裝置128。此外,操作系統(tǒng)和軟件可從例如可引導(dǎo)CD的可引導(dǎo)介質(zhì)運行,諸如KNOPPIX,一種用于GNU/Linux的可引導(dǎo)CD,該可引導(dǎo)CD可自knoppix.net作為GNU/Linux分發(fā)獲得。此外,計算裝置100可以包括通過多種連接接口到局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或因特網(wǎng)的網(wǎng)絡(luò)接口118,所述多種連接包括但不限于標準電話線路、LAN或WAN鏈路(例如802.11,Tl,T3、56kb、X.25)、寬帶連接(如ISDN、幀中繼、ATM)、無線連接、或上述任何或所有連接的一些組合。網(wǎng)絡(luò)接口118可以包括內(nèi)置網(wǎng)絡(luò)適配器、網(wǎng)絡(luò)接口卡、PCMCIA網(wǎng)絡(luò)卡、卡總線網(wǎng)絡(luò)適配器、無線網(wǎng)絡(luò)適配器、USB網(wǎng)絡(luò)適配器、調(diào)制解調(diào)器或適用于將計算裝置100接口到能夠通信并執(zhí)行這里所說明的操作的任何類型的網(wǎng)絡(luò)的任何其它設(shè)備。計算裝置100中可以包括各種I/O裝置130a-130n。輸入裝置包括鍵盤、鼠標、觸控板、軌跡球、麥克風和繪圖板。輸出裝置包括視頻顯示器、揚聲器、噴墨打印機、激光打印機和熱升華打印機。如圖IE所示,I/O裝置130可以由I/O控制器123控制。I/O控制器可以控制一個或多個I/O裝置,例如鍵盤1和指示裝置127(如鼠標或光筆)。此外,I/O裝置還可以為計算裝置100提供存儲裝置1和/或安裝介質(zhì)116。在其它實施例中,計算裝置100可以提供USB連接以接收手持USB存儲裝置,例如由位于加利福尼亞州LosAlamitos,的TwintechIndustry公司生產(chǎn)的設(shè)備的USB閃存驅(qū)動器線。在一些實施例中,計算裝置100可以包括多個顯示裝置1對『12如或與其相連,這些顯示裝置各自可以是相同或不同的類型和/或形式。因而,任何一種I/O裝置130a-130n和/或I/O控制器123可以包括任一類型和/或形式的適當?shù)挠布?、軟件或硬件和軟件的組合,以支持、允許或提供通過計算裝置100連接和使用多個顯示裝置12如_1對11。例如,計算裝置100可以包括任何類型和/或形式的視頻適配器、視頻卡、驅(qū)動器和/或庫,以與顯示裝置1對『12如接口、通信、連接或以其他方式使用顯示裝置。在一個實施例中,視頻適配器可以包括多個連接器以與多個顯示裝置1對『12如接口。在其它實施例中,計算裝置100可以包括多個視頻適配器,每個視頻適配器與顯示裝置12如-1對11中的一個或多個連接。在一些實施例中,計算裝置100的操作系統(tǒng)的任一部分都可以被配置用于使用多個顯示器12如-1對11。在其它實施例中,顯示裝置12如-1對11中的一個或多個可以由一個或多個其它計算裝置提供,諸如例如通過網(wǎng)絡(luò)與計算裝置100連接的計算裝置IOOa和100b。這些實施例可以包括被設(shè)計和構(gòu)造為將另一個計算機的顯示裝置用作計算裝置100的第二顯示裝置12的任一類型的軟件。本領(lǐng)域的普通技術(shù)人員會認識和理解可以將計算裝置100配置成具有多個顯示裝置12如-1對11的各種方法和實施例。在進一步的實施例中,I/O裝置130可以是系統(tǒng)總線150和外部通信總線之間的橋170,所述外部通信總線例如USB總線、Apple桌面總線、RS-232串行連接、SCSI總線、Fireffire總線、Fireffire800總線、以太網(wǎng)總線、AppleTalk總線、千兆位以太網(wǎng)總線、異步傳輸模式總線、HIPPI總線、超級HIPPI總線、SerialPlus總線、SCI/LAMP總線、光纖信道總線或串行SCSI總線。圖IE和IF中描述的那類計算裝置100通常在控制任務(wù)的調(diào)度和對系統(tǒng)資源的訪問的操作系統(tǒng)的控制下操作。計算裝置100可以運行任何操作系統(tǒng),如MicrosoftWindows操作系統(tǒng),不同發(fā)行版本的Unix和Linux操作系統(tǒng),用于Macintosh計算機的任何版本的MACOS,任何嵌入式操作系統(tǒng),任何實時操作系統(tǒng),任何開源操作系統(tǒng),任何專有操作系統(tǒng),任何用于移動計算裝置的操作系統(tǒng),或者任何其它能夠在計算裝置上運行并完成這里所述操作的操作系統(tǒng)。典型的操作系統(tǒng)包括WIND0WS3.χ,WINDOWS95,WINDOWS98、WINDOWS2000、WINDOWSNT3.51、WINDOWSNT4.0、WINDOWSCE禾口WINDOWSXP,所有這些均由位于華盛頓州Redmond的微軟公司出品;由位于加利福尼亞州Cupertino的蘋果計算機出品的MacOS;由位于紐約州Armonk的國際商業(yè)機器公司出品的OS/2;以及由位于猶他州MltLakeCity的Caldera公司發(fā)布的可免費使用的Linux操作系統(tǒng)或者任何類型和/或形式的Unix操作系統(tǒng),以及其它。在其它實施例中,計算裝置100可以有符合該裝置的不同的處理器、操作系統(tǒng)和輸入設(shè)備。例如,在一個實施例中,計算機100是由I^alm公司出品的Treo180、270、1060、600或650智能電話。在該實施例中,Treo智能電話在I3aImOS操作系統(tǒng)的控制下操作,并包括指示筆輸入裝置以及五向?qū)Ш窖b置。此外,計算裝置100可以是任何工作站、桌面計算機、膝上型或筆記本計算機、服務(wù)器、手持計算機、移動電話、任何其它計算機、或能夠通信并有足夠的處理器能力和存儲容量以執(zhí)行此處所述的操作的其它形式的計算或者電信裝置。如圖IG所示,計算裝置100可以包括多個處理器,可以提供用于對不只一個數(shù)據(jù)片同時執(zhí)行多個指令或者同時執(zhí)行一個指令的功能。在一些實施例中,計算裝置100可包括具有一個或多個核的并行處理器。在這些實施例的一個中,計算裝置100是共享內(nèi)存并行設(shè)備,具有多個處理器和/或多個處理器核,將所有可用內(nèi)存作為一個全局地址空間進行訪問。在這些實施例的又一個中,計算裝置100是分布式存儲器并行設(shè)備,具有多個處理器,每個處理器訪問本地存儲器。在這些實施例的又一個中,計算裝置100既有共享的存儲器又有僅由特定處理器或處理器子集訪問的存儲器。在這些實施例的又一個中,如多核微處理器的計算裝置100將兩個或多個獨立處理器組合在一個封裝中,通常在一個集成電路(IC)中。在這些實施例的又一個中,計算裝置100包括具有單元寬帶引擎(CELLBROADBANDENGINE)架構(gòu)的芯片,并包括高能處理器單元以及多個協(xié)同處理單元,高能處理器單元和多個協(xié)同處理單元通過內(nèi)部高速總線連接在一起,可以將內(nèi)部高速總線稱為單元互連總線。在一些實施例中,處理器提供用于對多個數(shù)據(jù)片同時執(zhí)行單個指令(SIMD)的功能。其他實施例中,處理器提供用于對多個數(shù)據(jù)片同時執(zhí)行多個指令(MIMD)的功能。又一個實施例中,處理器可以在單個裝置中使用SMD和MIMD核的任意組合。在一些實施例中,計算裝置100可包括圖像處理單元。圖IH所示的在這些實施例的一個中,計算裝置100包括至少一個中央處理單元101和至少一個圖像處理單元。在這些實施例的又一個中,計算裝置100包括至少一個并行處理單元和至少一個圖像處理單元。在這些實施例的又一個中,計算裝置100包括任意類型的多個處理單元,多個處理單元中的一個包括圖像處理單元。一些實施例中,第一計算裝置IOOa代表客戶計算裝置IOOb的用戶執(zhí)行應(yīng)用。又一個實施例中,計算裝置100執(zhí)行虛擬機,其提供執(zhí)行會話,在該會話中,代表客戶計算裝置IOOb的用戶執(zhí)行應(yīng)用。在這些實施例的一個中,執(zhí)行會話是寄載的桌面會話。在這些實施例的又一個中,計算裝置100執(zhí)行終端服務(wù)會話。終端服務(wù)會話可以提供寄載的桌面環(huán)境。在這些實施例的又一個中,執(zhí)行會話提供對計算環(huán)境的訪問,計算環(huán)境可包括以下的一個或多個應(yīng)用、多個應(yīng)用、桌面應(yīng)用以及可執(zhí)行一個或多個應(yīng)用的桌面會話。B、設(shè)備架構(gòu)圖2A示出設(shè)備200的一個示例實施例。提供圖2A的設(shè)備200架構(gòu)僅用于示例,并不意于作為限制性的架構(gòu)。如圖2所示,設(shè)備200包括硬件層206和被分為用戶空間202和內(nèi)核空間204的軟件層。硬件層206提供硬件元件,在內(nèi)核空間204和用戶空間202中的程序和服務(wù)在該硬件元件上被執(zhí)行。硬件層206也提供結(jié)構(gòu)和元件,就設(shè)備200而言,這些結(jié)構(gòu)和元件允許在內(nèi)核空間204和用戶空間202內(nèi)的程序和服務(wù)既在內(nèi)部進行數(shù)據(jù)通信又與外部進行數(shù)據(jù)通信。如圖2所示,硬件層206包括用于執(zhí)行軟件程序和服務(wù)的處理單元沈2,用于存儲軟件和數(shù)據(jù)的存儲器264,用于通過網(wǎng)絡(luò)傳輸和接收數(shù)據(jù)的網(wǎng)絡(luò)端口沈6,以及用于執(zhí)行與安全套接字協(xié)議層相關(guān)的功能處理通過網(wǎng)絡(luò)傳輸和接收的數(shù)據(jù)的加密處理器260。在一些實施例中,中央處理單元262可在單獨的處理器中執(zhí)行加密處理器260的功能。另外,硬件層206可包括用于每個處理單元262和加密處理器沈0的多處理器。處理器262可以包括以上結(jié)合圖IE和IF所述的任一處理器101。例如,在一個實施例中,設(shè)備200包括第一處理器262和第二處理器沈2,。在其它實施例中,處理器262或者沈2,包括多核處理器。雖然示出的設(shè)備200的硬件層206通常帶有加密處理器沈0,但是處理器260可為執(zhí)行涉及任何加密協(xié)議的功能的處理器,例如安全套接字協(xié)議層(SSL)或者傳輸層安全(TLS)協(xié)議。在一些實施例中,處理器260可為通用處理器(GPP),并且在進一步的實施例中,可為用于執(zhí)行任何安全相關(guān)協(xié)議處理的可執(zhí)行指令。雖然圖2中設(shè)備200的硬件層206包括了某些元件,但是設(shè)備200的硬件部分或組件可包括計算裝置的任何類型和形式的元件、硬件或軟件,例如此處結(jié)合圖IE和IF示出和討論的計算裝置100。在一些實施例中,設(shè)備200可包括服務(wù)器、網(wǎng)關(guān)、路由器、開關(guān)、橋接器或其它類型的計算或網(wǎng)絡(luò)設(shè)備,并且擁有與此相關(guān)的任何硬件和/或軟件元件。設(shè)備200的操作系統(tǒng)分配、管理或另外分離可用的系統(tǒng)存儲器到內(nèi)核空間204和用戶空間204。在示例的軟件架構(gòu)200中,操作系統(tǒng)可以是任何類型和/或形式的Unix操作系統(tǒng),盡管本發(fā)明并未這樣限制。這樣,設(shè)備200可以運行任何操作系統(tǒng),如任何版本的MicrosoftWindows操作系統(tǒng)、不同版本的Unix和Linux操作系統(tǒng)、用于Macintosh計算機的任何版本的MacOS、任何的嵌入式操作系統(tǒng)、任何的網(wǎng)絡(luò)操作系統(tǒng)、任何的實時操作系統(tǒng)、任何的開放源操作系統(tǒng)、任何的專用操作系統(tǒng)、用于移動計算裝置或網(wǎng)絡(luò)裝置的任何操作系統(tǒng)、或者能夠運行在設(shè)備200上并執(zhí)行此處所描述的操作的任何其它操作系統(tǒng)。保留內(nèi)核空間204用于運行內(nèi)核230,內(nèi)核230包括任何設(shè)備驅(qū)動器,內(nèi)核擴展或其他內(nèi)核相關(guān)軟件。就像本領(lǐng)域技術(shù)人員所知的,內(nèi)核230是操作系統(tǒng)的核心,并提供對資源以及設(shè)備104的相關(guān)硬件元件的訪問、控制和管理。根據(jù)設(shè)備200的實施例,內(nèi)核空間204也包括與高速緩存管理器232協(xié)同工作的多個網(wǎng)絡(luò)服務(wù)或進程,高速緩存管理器232有時也稱為集成的高速緩存,其益處此處將進一步詳細描述。另外,內(nèi)核230的實施例將依賴于通過設(shè)備200安裝、配置或其他使用的操作系統(tǒng)的實施例。在一個實施例中,設(shè)備200包括一個網(wǎng)絡(luò)堆棧沈7,例如基于TCP/IP的堆棧,用于與客戶機102和/或服務(wù)器106通信。在一個實施例中,使用網(wǎng)絡(luò)堆棧267與第一網(wǎng)絡(luò)(例如網(wǎng)絡(luò)108)以及第二網(wǎng)絡(luò)110通信。在一些實施例中,設(shè)備200終止第一傳輸層連接,例如客戶機102的TCP連接,并建立客戶機102使用的到服務(wù)器106的第二傳輸層連接,例如,終止在設(shè)備200和服務(wù)器106的第二傳輸層連接??赏ㄟ^單獨的網(wǎng)絡(luò)堆棧267建立第一和第二傳輸層連接。在其他實施例中,設(shè)備200可包括多個網(wǎng)絡(luò)堆棧,例如267或沈7’,并且在一個網(wǎng)絡(luò)堆棧267可建立或終止第一傳輸層連接,在第二網(wǎng)絡(luò)堆棧沈7’上可建立或者終止第二傳輸層連接。例如,一個網(wǎng)絡(luò)堆??捎糜谠诘谝痪W(wǎng)絡(luò)上接收和傳輸網(wǎng)絡(luò)分組,并且另一個網(wǎng)絡(luò)堆棧用于在第二網(wǎng)絡(luò)上接收和傳輸網(wǎng)絡(luò)分組。在一個實施例中,網(wǎng)絡(luò)堆棧267包括用于為一個或多個網(wǎng)絡(luò)分組進行排隊的緩沖器M3,其中網(wǎng)絡(luò)分組由設(shè)備200傳輸。如圖2所示,內(nèi)核空間204包括高速緩存管理器232、高速層2_7集成分組引擎M0、加密引擎234、策略引擎236以及多協(xié)議壓縮邏輯238。在內(nèi)核空間204或內(nèi)核模式而不是用戶空間202中運行這些組件或進程232、M0、234、236和238提高這些組件中的每個單獨的和結(jié)合的性能。內(nèi)核操作意味著這些組件或進程232、M0、234、236和238在設(shè)備200的操作系統(tǒng)的核地址空間中運行。例如,在內(nèi)核模式中運行加密引擎234通過移動加密和解密操作到內(nèi)核可改進加密性能,從而可減少在內(nèi)核模式中的存儲空間或內(nèi)核線程與在用戶模式中的存儲空間或線程之間的傳輸?shù)臄?shù)量。例如,在內(nèi)核模式獲得的數(shù)據(jù)可能不需要傳輸或拷貝到運行在用戶模式的進程或線程,例如從內(nèi)核級數(shù)據(jù)結(jié)構(gòu)到用戶級數(shù)據(jù)結(jié)構(gòu)。在又一個方面,也可減少內(nèi)核模式和用戶模式之間的上下文切換的數(shù)量。另外,在任何組件或進程232、M0、235、236和238間的同步和通信在內(nèi)核空間204中可被執(zhí)行的更有效率。在一些實施例中,組件232、M0、234、236和238的任何部分可在內(nèi)核空間204中運行或操作,而這些組件232、M0、234、236和238的其它部分可在用戶空間202中運行或操作。在一個實施例中,設(shè)備200使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu)來提供對一個或多個網(wǎng)絡(luò)分組的任何部分的訪問,例如,包括來自客戶機102的請求或者來自服務(wù)器106的響應(yīng)的網(wǎng)絡(luò)分組。在一些實施例中,可以由分組引擎240通過到網(wǎng)絡(luò)堆棧267的傳輸層驅(qū)動器接口或過濾器獲得內(nèi)核級數(shù)據(jù)結(jié)構(gòu)。內(nèi)核級數(shù)據(jù)結(jié)構(gòu)可包括通過與網(wǎng)絡(luò)堆棧267相關(guān)的內(nèi)核空間204可訪問的任何接口和/或數(shù)據(jù)、由網(wǎng)絡(luò)堆棧267接收或發(fā)送的網(wǎng)絡(luò)業(yè)務(wù)或分組。在其他實施例中,任何組件或進程232、M0、234、236和238可使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu)來執(zhí)行組件或進程的需要的操作。在一個實例中,當使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu)時,組件232、M0、234、236和238在內(nèi)核模式204中運行,而在又一個實施例中,當使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu)時,組件232、對0、234、236和238在用戶模式中運行。在一些實施例中,內(nèi)核級數(shù)據(jù)結(jié)構(gòu)可被拷貝或傳遞到第二內(nèi)核級數(shù)據(jù)結(jié)構(gòu),或任何期望的用戶級數(shù)據(jù)結(jié)構(gòu)。高速緩存管理器232可包括軟件、硬件或軟件和硬件的任何組合,以提供對任何類型和形式的內(nèi)容的高速緩存訪問、控制和管理,例如對象或由源服務(wù)器106提供服務(wù)的動態(tài)產(chǎn)生的對象。由高速緩存管理器232處理和存儲的數(shù)據(jù)、對象或內(nèi)容可包括任何格式(例如標記語言)的數(shù)據(jù),或者通過任何協(xié)議的通信的任何類型的數(shù)據(jù)。在一些實施例中,高速緩存管理器232復(fù)制存儲在其他地方的原始數(shù)據(jù)或先前計算、產(chǎn)生或傳輸?shù)臄?shù)據(jù),其中相對于讀高速緩存存儲器元件,需要更長的訪問時間以取得、計算或以其他方式得到原始數(shù)據(jù)。一旦數(shù)據(jù)被存儲在高速緩存存儲元件中,通過訪問高速緩存的副本而不是重新獲得或重新計算原始數(shù)據(jù)即可進行后續(xù)操作,因此而減少了訪問時間。在一些實施例中,高速緩存元件可以包括設(shè)備200的存儲器沈4中的數(shù)據(jù)對象。在其它實施例中,高速緩存存儲元件可包括有比存儲器264更快的存取時間的存儲器。在又一個實施例中,高速緩存元件可以包括設(shè)備200的任一類型和形式的存儲元件,諸如硬盤的一部分。在一些實施例中,處理單元262可提供被高速緩存管理器232使用的高速緩存存儲器。在又一個實施例中,高速緩存管理器232可使用存儲器、存儲區(qū)或處理單元的任何部分和組合來高速緩存數(shù)據(jù)、對象或其它內(nèi)容。另外,高速緩存管理器232包括用于執(zhí)行此處描述的設(shè)備200的技術(shù)的任一實施例的任何邏輯、功能、規(guī)則或操作。例如,高速緩存管理器232包括基于無效時間周期的終止,或者從客戶機102或服務(wù)器106接收無效命令使對象無效的邏輯或功能。在一些實施例中,高速緩存管理器232可作為程序、服務(wù)、進程或任務(wù)操作執(zhí)行在內(nèi)核空間204中,并且在其他實施例中,在用戶空間202中執(zhí)行。在一個實施例中,高速緩存管理器232的第一部分在用戶空間202中執(zhí)行,而第二部分在內(nèi)核空間204中執(zhí)行。在一些實施例中,高速緩存管理器232可包括任何類型的通用處理器(GPP),或任何其他類型的集成電路,例如現(xiàn)場可編程門陣列(FPGA),可編程邏輯設(shè)備(PLD),或者專用集成電路(ASIC)。策略引擎236可包括例如智能統(tǒng)計引擎或其它可編程應(yīng)用。在一個實施例中,策略引擎236提供配置機制以允許用戶識別、指定、定義或配置高速緩存策略。策略引擎236,在一些實施例中,也訪問存儲器以支持數(shù)據(jù)結(jié)構(gòu),例如備份表或hash表,以啟用用戶選擇的高速緩存策略決定。在其它實施例中,除了對安全、網(wǎng)絡(luò)業(yè)務(wù)、網(wǎng)絡(luò)訪問、壓縮或其它任何由設(shè)備200執(zhí)行的功能或操作的訪問、控制和管理之外,策略引擎236可包括任何邏輯、規(guī)則、功能或操作以確定和提供對設(shè)備200所高速緩存的對象、數(shù)據(jù)、或內(nèi)容的訪問、控制和管理。特定高速緩存策略的其它實施例此處進一步描述。加密引擎234包括用于操控諸如SSL或TLS的任何安全相關(guān)協(xié)議或其中涉及的任何功能的處理的任何邏輯、商業(yè)規(guī)則、功能或操作。例如,加密引擎234加密并解密通過設(shè)備200傳輸?shù)木W(wǎng)絡(luò)分組,或其任何部分。加密引擎234也可代表客戶機10加-10211、服務(wù)器106a-106n或設(shè)備200來設(shè)置或建立SSL或TLS連接。因此,加密引擎234提供SSL處理的卸載和加速。在一個實施例中,加密引擎234使用隧道協(xié)議來提供在客戶機102a-102n和服務(wù)器106a-106n間的虛擬專用網(wǎng)絡(luò)。在一些實施例中,加密引擎234與加密處理器260通信。在其它實施例中,加密引擎234包括運行在加密處理器260上的可執(zhí)行指令。多協(xié)議壓縮引擎238包括用于壓縮一個或多個網(wǎng)絡(luò)分組協(xié)議(例如被設(shè)備200的網(wǎng)絡(luò)堆棧267使用的任何協(xié)議)的任何邏輯、商業(yè)規(guī)則、功能或操作。在一個實施例中,多協(xié)議壓縮引擎238雙向壓縮在客戶機102a-102n和服務(wù)器106a-106n間任一基于TCP/IP的協(xié)議,包括消息應(yīng)用編程接口(MAPI)(電子郵件)、文件傳輸協(xié)議(FTP)、超文本傳輸協(xié)議(HTTP)、通用互聯(lián)網(wǎng)文件系統(tǒng)(Cire)協(xié)議(文件傳輸)、獨立計算架構(gòu)(ICA)協(xié)議、遠程桌面協(xié)議(RDP)、無線應(yīng)用協(xié)議(WAP)、移動IP協(xié)議以及IP上語音(VoIP)協(xié)議。在其它實施例中,多協(xié)議壓縮引擎238提供基于超文本標記語言(HTML)的協(xié)議的壓縮,并且在一些實施例中,提供任何標記語言的壓縮,例如可擴展標記語言(XML)。在一個實施例中,多協(xié)議壓縮引擎238提供任何高性能協(xié)議的壓縮,例如設(shè)計用于設(shè)備200到設(shè)備200通信的任何協(xié)議。在又一個實施例中,多協(xié)議壓縮引擎238使用修改的傳輸控制協(xié)議來壓縮任何通信的任何載荷或任何通信,例如事務(wù)TCP(T/TCP)、帶有選擇確認的TCP(TCP-SACK)、帶有大窗口的TCP(TCP-Lff)、例如TCP-Vegas協(xié)議的擁塞預(yù)報協(xié)議以及TCP欺騙協(xié)議(TCPspoofingprotocol)0同樣的,多協(xié)議壓縮引擎238為用戶加速經(jīng)由桌面客戶機乃至移動客戶機訪問應(yīng)用的性能,所述桌面客戶機例如MicosoftOutlook和非web瘦客戶機,諸如由像Oracle、SAP和Siebel的通用企業(yè)應(yīng)用所啟動的任何客戶機,所述移動客戶機例如掌上電腦。在一些實施例中,通過在內(nèi)核模式204內(nèi)部執(zhí)行并與訪問網(wǎng)絡(luò)堆棧267的分組處理引擎240集成,多協(xié)議壓縮引擎238可以壓縮TCP/IP協(xié)議攜帶的任何協(xié)議,例如任何應(yīng)用層協(xié)議。高速層27集成分組引擎M0,通常也稱為分組處理引擎,或分組引擎,負責設(shè)備200通過網(wǎng)絡(luò)端口266接收和發(fā)送的分組的內(nèi)核級處理的管理。高速層2-7集成分組引擎240可包括用于在例如接收網(wǎng)絡(luò)分組和傳輸網(wǎng)絡(luò)分組的處理期間排隊一個或多個網(wǎng)絡(luò)分組的緩沖器。另外,高速層2-7集成分組引擎240與一個或多個網(wǎng)絡(luò)堆棧267通信以通過網(wǎng)絡(luò)端口266發(fā)送和接收網(wǎng)絡(luò)分組。高速層2-7集成分組引擎240與加密引擎234、高速緩存管理器232、策略引擎236和多協(xié)議壓縮邏輯238協(xié)同工作。更具體地,配置加密引擎234以執(zhí)行分組的SSL處理,配置策略引擎236以執(zhí)行涉及業(yè)務(wù)管理的功能,例如請求級內(nèi)容切換以及請求級高速緩存重定向,并配置多協(xié)議壓縮邏輯238以執(zhí)行涉及數(shù)據(jù)壓縮和解壓縮的功能。高速層2-7集成分組引擎240包括分組處理定時器M2。在一個實施例中,分組處理定時器242提供一個或多個時間間隔以觸發(fā)輸入處理,例如,接收或者輸出(即傳輸)網(wǎng)絡(luò)分組。在一些實施例中,高速層2-7集成分組引擎240響應(yīng)于定時器242處理網(wǎng)絡(luò)分組。分組處理定時器對2向分組引擎240提供任何類型和形式的信號以通知、觸發(fā)或傳輸時間相關(guān)的事件、間隔或發(fā)生。在許多實施例中,分組處理定時器M2以毫秒級操作,例如100ms、50ms、或25ms。例如,在一些實例中,分組處理定時器242提供時間間隔或者以其它方式使得由高速層2-7集成分組引擎240以IOms時間間隔處理網(wǎng)絡(luò)分組,而在其它實施例中,使高速層2-7集成分組引擎240以5ms時間間隔處理網(wǎng)絡(luò)分組,并且在進一步的實施例中,短到3、2或Ims時間間隔。高速層27集成分組引擎240在操作期間可與加密引擎234、高速緩存管理器232、策略引擎236以及多協(xié)議壓縮引擎238連接、集成或通信。因此,響應(yīng)于分組處理定時器242和/或分組引擎對0,可執(zhí)行加密引擎234、高速緩存管理器232、策略引擎236以及多協(xié)議壓縮引擎238的任何邏輯、功能或操作。因此,在由分組處理定時器242提供的時間間隔粒度,可執(zhí)行加密引擎234、高速緩存管理器232、策略引擎236以及多協(xié)議壓縮引擎238的任何邏輯、功能或操作,例如,時間間隔少于或等于10ms。例如,在一個實施例中,高速緩存管理器232可響應(yīng)于高速層2-7集成分組引擎240和/或分組處理定時器242來執(zhí)行任何高速緩存的對象的終止。在又一個實施例中,高速緩存的對象的終止或無效時間被設(shè)定為與分組處理定時器242的時間間隔相同的粒度級,例如每10ms。與內(nèi)核空間204不同,用戶空間202是被用戶模式應(yīng)用或在用戶模式運行的程序所使用的操作系統(tǒng)的存儲區(qū)域或部分。用戶模式應(yīng)用不能直接訪問內(nèi)核空間204而使用服務(wù)調(diào)用以訪問內(nèi)核服務(wù)。如圖2所示,設(shè)備200的用戶空間202包括圖形用戶接口(⑶1)210、命令行接口(CLI)212、殼服務(wù)(shellservice)214、健康監(jiān)控程序216以及守護(daemon)服務(wù)218。⑶I210和GLI212提供系統(tǒng)管理員或其他用戶可與之交互并控制設(shè)備200操作的裝置,例如通過設(shè)備200的操作系統(tǒng)。⑶1210和GLI212可包括運行在用戶空間202或內(nèi)核框架204中的代碼。GUI210可以是任何類型或形式的圖形用戶接口,可以通過文本、圖形或其他形式由任何類型的程序或應(yīng)用(如瀏覽器)來呈現(xiàn)。GLI212可為任何類型和形式的命令行或基于文本的接口,例如通過操作系統(tǒng)提供的命令行。例如,CLI212可包括殼,該殼是使用戶與操作系統(tǒng)相互作用的工具。在一些實施例中,可通過bash、csKtcsh或者ksh類型的殼提供CLI212。殼服務(wù)214包括程序、服務(wù)、任務(wù)、進程或可執(zhí)行指令以支持由用戶通過⑶I210和/或CLI212的與設(shè)備200或者操作系統(tǒng)的交互健康監(jiān)控程序216用于監(jiān)控、檢查、報告并確保網(wǎng)絡(luò)系統(tǒng)正常運行,以及用戶正通過網(wǎng)絡(luò)接收請求的內(nèi)容。健康監(jiān)控程序216包括一個或多個程序、服務(wù)、任務(wù)、進程或可執(zhí)行指令,為監(jiān)控設(shè)備200的任何行為提供邏輯、規(guī)則、功能或操作。在一些實施例中,健康監(jiān)控程序216攔截并檢查通過設(shè)備200傳遞的任何網(wǎng)絡(luò)業(yè)務(wù)。在其他實施例中,健康監(jiān)控程序216通過任何合適的方法和/或機制與一個或多個下述設(shè)備連接加密引擎234,高速緩存管理器232,策略引擎236,多協(xié)議壓縮邏輯238,分組引擎M0,守護服務(wù)218以及殼服務(wù)214。因此,健康監(jiān)控程序216可調(diào)用任何應(yīng)用編程接口(API)以確定設(shè)備200的任何部分的狀態(tài)、情況或健康。例如,健康監(jiān)控程序216可周期性地查驗(ping)或發(fā)送狀態(tài)查詢以檢查程序、進程、服務(wù)或任務(wù)是否活動并當前正在運行。在又一個實施例中,健康監(jiān)控程序216可檢查由任何程序、進程、服務(wù)或任務(wù)提供的任何狀態(tài)、錯誤或歷史日志以確定設(shè)備200任何部分的任何狀況、狀態(tài)或錯誤。守護服務(wù)218是連續(xù)運行或在背景中運行的程序,并且處理設(shè)備200接收的周期性服務(wù)請求。在一些實施例中,守護服務(wù)可向其他程序或進程(例如合適的另一個守護服務(wù)218)轉(zhuǎn)發(fā)請求。如本領(lǐng)域技術(shù)人員所公知的,守護服務(wù)218可無人監(jiān)護的運行,以執(zhí)行連續(xù)的或周期性的系統(tǒng)范圍功能,例如網(wǎng)絡(luò)控制,或者執(zhí)行任何需要的任務(wù)。在一些實施例中,一個或多個守護服務(wù)218運行在用戶空間202中,而在其它實施例中,一個或多個守護服務(wù)218運行在內(nèi)核空間。現(xiàn)在參見圖2B,描述了設(shè)備200的又一個實施例??偟膩碚f,設(shè)備200提供下列服務(wù)、功能或操作中的一個或多個用于一個或多個客戶機102以及一個或多個服務(wù)器106之間的通信的SSLVPN連通觀0、交換/負載平衡觀4、域名服務(wù)解析觀6、加速288和應(yīng)用防火墻四0。服務(wù)器106的每一個可以提供一個或者多個網(wǎng)絡(luò)相關(guān)服務(wù)270a-270n(稱為服務(wù)270)。例如,服務(wù)器106可以提供http服務(wù)270。設(shè)備200包括一個或者多個虛擬服務(wù)器或者虛擬互聯(lián)網(wǎng)協(xié)議服務(wù)器,稱為vServer275、vS275、VIP服務(wù)器或者僅是VIP275a-275n(此處也稱為vServer275)。vServer275根據(jù)設(shè)備200的配置和操作來接收、攔截或者以其它方式處理客戶機102和服務(wù)器106之間的通信。vServer275可以包括軟件、硬件或者軟件和硬件的任何組合。vServer275可包括在設(shè)備200中的用戶模式202、內(nèi)核模式204或者其任何組合中運行的任何類型和形式的程序、服務(wù)、任務(wù)、進程或者可執(zhí)行指令。vServer275包括任何邏輯、功能、規(guī)則或者操作,以執(zhí)行此處所述技術(shù)的任何實施例,諸如SSLVPN觀0、轉(zhuǎn)換/負載平衡觀4、域名服務(wù)解析觀6、加速288和應(yīng)用防火墻四0。在一些實施例中,Werver275建立到服務(wù)器106的服務(wù)270的連接。服務(wù)275可以包括能夠連接到設(shè)備200、客戶機102或者vServer275并與之通信的任何程序、應(yīng)用、進程、任務(wù)或者可執(zhí)行指令集。例如,服務(wù)275可以包括web服務(wù)器、http服務(wù)器、ftp、電子郵件或者數(shù)據(jù)庫服務(wù)器。在一些實施例中,服務(wù)270是守護進程或者網(wǎng)絡(luò)驅(qū)動器,用于監(jiān)聽、接收和/或發(fā)送應(yīng)用的通信,諸如電子郵件、數(shù)據(jù)庫或者企業(yè)應(yīng)用。在一些實施例中,服務(wù)270可以在特定的IP地址、或者IP地址和端口上通信。在一些實施例中,vServer275應(yīng)用策略引擎236的一個或者多個策略到客戶機102和服務(wù)器106之間的網(wǎng)絡(luò)通信。在一個實施例中,該策略與vServer275相關(guān)。在又一個實施例中,該策略基于用戶或者用戶組。在又一個實施例中,策略為通用的并且應(yīng)用到一個或者多個vServer27fe_275n,和通過設(shè)備200通信的任何用戶或者用戶組。在一些實施例中,策略引擎的策略具有基于通信的任何內(nèi)容應(yīng)用該策略的條件,通信的內(nèi)容諸如互聯(lián)網(wǎng)協(xié)議地址、端口、協(xié)議類型、分組中的首部或者字段、或者通信的上下文,諸如用戶、用戶組、vServer275、傳輸層連接、和/或客戶機102或者服務(wù)器106的標識或者屬性。在其他實施例中,設(shè)備200與策略引擎236通信或接口,以便確定遠程用戶或遠程客戶機102的驗證和/或授權(quán),以訪問來自服務(wù)器106的計算環(huán)境15、應(yīng)用和/或數(shù)據(jù)文件。在又一個實施例中,設(shè)備200與策略引擎236通信或交互,以便確定遠程用戶或遠程客戶機102的驗證和/或授權(quán),使得應(yīng)用傳送系統(tǒng)190傳送一個或多個計算環(huán)境15、應(yīng)用和/或數(shù)據(jù)文件。在又一個實施例中,設(shè)備200基于策略引擎236對遠程用戶或遠程客戶機102的驗證和/或授權(quán)建立VPN或SSLVPN連接。一個實施例中,設(shè)備200基于策略引擎236的策略控制網(wǎng)絡(luò)業(yè)務(wù)流量以及通信會話。例如,基于策略引擎236,設(shè)備200可控制對計算環(huán)境15、應(yīng)用或數(shù)據(jù)文件的訪問。在一些實施例中,Werver275與客戶機102經(jīng)客戶機代理120建立傳輸層連接,諸如TCP或者UDP連接。在一個實施例中,vServer275監(jiān)聽和接收來自客戶機102的通信。在其它實施例中,Werver275與客戶端服務(wù)器106建立傳輸層連接,諸如TCP或者UDP連接。在一個實施例中,vkrver275建立到運行在服務(wù)器106上的服務(wù)器270的互聯(lián)網(wǎng)協(xié)議地址和端口的傳輸層連接。在又一個實施例中,Werver275將到客戶機102的第一傳輸層連接與到服務(wù)器106的第二傳輸層連接相關(guān)聯(lián)。在一些實施例中,WerVer275建立到服務(wù)器106的傳輸層連接池并經(jīng)由所述池化(pooled)的傳輸層連接多路復(fù)用客戶機的請求。在一些實施例中,設(shè)備200提供客戶機102和服務(wù)器106之間的SSLVPN連接觀0。例如,第一網(wǎng)絡(luò)102上的客戶機102請求建立到第二網(wǎng)絡(luò)104’上的服務(wù)器106的連接。在一些實施例中,第二網(wǎng)絡(luò)104’是不能從第一網(wǎng)絡(luò)104路由的。在其它實施例中,客戶機102位于公用網(wǎng)絡(luò)104上,并且服務(wù)器106位于專用網(wǎng)絡(luò)104’上,例如企業(yè)網(wǎng)。在一個實施例中,客戶機代理120攔截第一網(wǎng)絡(luò)104上的客戶機102的通信,加密該通信,并且經(jīng)第一傳輸層連接發(fā)送該通信到設(shè)備200。設(shè)備200將第一網(wǎng)絡(luò)104上的第一傳輸層連接與到第二網(wǎng)絡(luò)104上的服務(wù)器106的第二傳輸層連接相關(guān)聯(lián)。設(shè)備200接收來自客戶機代理102的所攔截的通信,解密該通信,并且經(jīng)第二傳輸層連接發(fā)送該通信到第二網(wǎng)絡(luò)104上的服務(wù)器106。第二傳輸層連接可以是池化的傳輸層連接。同樣的,設(shè)備200為兩個網(wǎng)絡(luò)104、104’之間的客戶機102提供端到端安全傳輸層連接。在一個實施例中,設(shè)備200寄載虛擬專用網(wǎng)絡(luò)104上的客戶機102的內(nèi)部網(wǎng)互聯(lián)網(wǎng)協(xié)議或者htranetIP282地址??蛻魴C102具有本地網(wǎng)絡(luò)標識符,諸如第一網(wǎng)絡(luò)104上的互聯(lián)網(wǎng)協(xié)議(IP)地址和/或主機名稱。當經(jīng)設(shè)備200連接到第二網(wǎng)絡(luò)104’時,設(shè)備200在第二網(wǎng)絡(luò)104’上為客戶機102建立、分配或者以其它方式提供htranetIP,其是諸如IP地址和/或主機名稱的網(wǎng)絡(luò)標識符。使用為客戶機的所建立的htranetIP觀2,設(shè)備200在第二或?qū)S镁W(wǎng)104'上監(jiān)聽并接收指向該客戶機102的任何通信。在一個實施例中,設(shè)備200在第二專用網(wǎng)絡(luò)104上用作或者代表客戶機102。例如,在又一個實施例中,Werver275監(jiān)聽和響應(yīng)到客戶機102的htranetIP282的通信。在一些實施例中,如果第二網(wǎng)絡(luò)104’上的計算裝置100發(fā)送請求,設(shè)備200如同客戶機102—樣來處理該請求。例如,設(shè)備200可以響應(yīng)對客戶機htranetIP282的查驗。在又一個實施例中,設(shè)備可以與請求和客戶機htranetIP282連接的第二網(wǎng)絡(luò)104上的計算裝置100建立連接,諸如TCP或者UDP連接。在一些實施例中,設(shè)備200為客戶機102和服務(wù)器106之間的通信提供下列一個或多個加速技術(shù)觀81)壓縮;幻解壓縮;幻傳輸控制協(xié)議池;4)傳輸控制協(xié)議多路復(fù)用;5)傳輸控制協(xié)議緩沖;以及6)高速緩存。在一個實施例中,設(shè)備200通過開啟與每一服務(wù)器106的一個或者多個傳輸層連接并且維持這些連接以允許由客戶機經(jīng)因特網(wǎng)的重復(fù)數(shù)據(jù)訪問,來為服務(wù)器106緩解由重復(fù)開啟和關(guān)閉到客戶機102的傳輸層連接所造成的大量處理負載。該技術(shù)此處稱為“連接池”。在一些實施例中,為了經(jīng)池化的傳輸層連接無縫拼接從客戶機102到服務(wù)器106的通信,設(shè)備200通過在傳輸層協(xié)議級修改序列號和確認號來轉(zhuǎn)換或多路復(fù)用通信。這被稱為“連接多路復(fù)用”。在一些實施例中,不需要應(yīng)用層協(xié)議相互作用。例如,在到來分組(即,自客戶機102接收的分組)的情況中,所述分組的源網(wǎng)絡(luò)地址被改變?yōu)樵O(shè)備200的輸出端口的網(wǎng)絡(luò)地址,而目的網(wǎng)絡(luò)地址被改為目的服務(wù)器的網(wǎng)絡(luò)地址。在發(fā)出分組(即,自服務(wù)器106接收的一個分組)的情況中,源網(wǎng)絡(luò)地址被從服務(wù)器106的網(wǎng)絡(luò)地址改變?yōu)樵O(shè)備200的輸出端口的網(wǎng)絡(luò)地址,而目的地址被從設(shè)備200的網(wǎng)絡(luò)地址改變?yōu)檎埱蟮目蛻魴C102的網(wǎng)絡(luò)地址。分組的序列號和確認號也被轉(zhuǎn)換為到客戶機102的設(shè)備200的傳輸層連接上的客戶機102所期待的序列號和確認。在一些實施例中,傳輸層協(xié)議的分組校驗和被重新計算以計及這些轉(zhuǎn)換。在又一個實施例中,設(shè)備200為客戶機102和服務(wù)器106之間的通信提供交換或負載平衡功能觀4。在一些實施例中,設(shè)備200根據(jù)層4有效載荷或應(yīng)用層請求數(shù)據(jù)來分配業(yè)務(wù)量并將客戶機請求定向到服務(wù)器106。在一個實施例中,盡管網(wǎng)絡(luò)分組的網(wǎng)絡(luò)層或者層2識別目的服務(wù)器106,但設(shè)備200利用承載為為傳輸層分組的有效載荷的數(shù)據(jù)和應(yīng)用信息來確定服務(wù)器106以便分發(fā)網(wǎng)絡(luò)分組。在一個實施例中,設(shè)備200的健康監(jiān)控程序216監(jiān)控服務(wù)器的健康來確定分發(fā)客戶機請求到哪個服務(wù)器106。在一些實施例中,如果設(shè)備200探測到某個服務(wù)器106不可用或者具有超過預(yù)定閾值的負載,設(shè)備200可以將客戶機請求指向或者分發(fā)到另一個服務(wù)器106。在一些實施例中,設(shè)備200用作域名服務(wù)(DNS)解析器或者以其它方式為來自客戶機102的DNS請求提供解析。在一些實施例中,設(shè)備攔截由客戶機102發(fā)送的DNS請求。在一個實施例中,設(shè)備200以設(shè)備200的IP地址或其所寄載的IP地址來響應(yīng)客戶機的DNS請求。在此實施例中,客戶機102將用于域名的網(wǎng)絡(luò)通信發(fā)送到設(shè)備200。在又一個實施例中,設(shè)備200以第二設(shè)備200’的或其所寄載的IP地址來響應(yīng)客戶機的DNS請求。在一些實施例中,設(shè)備200使用由設(shè)備200確定的服務(wù)器106的IP地址來響應(yīng)客戶機的DNS請求。在又一個實施例中,設(shè)備200為客戶機102和服務(wù)器106之間的通信提供應(yīng)用防火墻功能四0。在一個實施例中,策略引擎236提供用于探測和阻斷非法請求的規(guī)則。在一些實施例中,應(yīng)用防火墻四0防御拒絕服務(wù)(DoS)攻擊。在其它實施例中,設(shè)備檢查所攔截的請求的內(nèi)容,以識別和阻斷基于應(yīng)用的攻擊。在一些實施例中,規(guī)則/策略引擎236包括用于提供對多個種類和類型的基于web或因特網(wǎng)的脆弱點的保護的一個或多個應(yīng)用防火墻或安全控制策略,例如下列的一個或多個脆弱點1)緩沖區(qū)泄出,2)CGI-BIN參數(shù)操縱,3)表單/隱藏字段操縱,4)強制瀏覽,5)cookie或會話中毒,6)被破壞的訪問控制列表(ACLs)或弱密碼,7)跨站腳本處理(XSS),8)命令注入,9)SQL注入,10)錯誤觸發(fā)敏感信息泄露,11)對加密的不安全使用,1服務(wù)器錯誤配置,1后門和調(diào)試選項,14)網(wǎng)站涂改,15)平臺或操作系統(tǒng)弱點,和16)零天攻擊。在一個實施例中,對下列情況的一種或多種,應(yīng)用防火墻四0以檢查或分析網(wǎng)絡(luò)通信的形式來提供HTML格式字段的保護1)返回所需的字段,幻不允許附加字段,幻只讀和隱藏字段強制(enforcement),4)下拉列表和單選按鈕字段的一致,以及幻格式字段最大長度強制。在一些實施例中,應(yīng)用防火墻四0確保cookie不被修改。在其它實施例中,應(yīng)用防火墻290通過執(zhí)行合法的URL來防御強制瀏覽。在其他實施例中,應(yīng)用防火墻290保護在網(wǎng)絡(luò)通信中包含的任何機密信息。應(yīng)用防火墻290可以根據(jù)引擎236的規(guī)則或策略來檢查或分析任一網(wǎng)絡(luò)通信以識別在網(wǎng)絡(luò)分組的任一字段中的任一機密信息。在一些實施例中,應(yīng)用防火墻290在網(wǎng)絡(luò)通信中識別信用卡號、口令、社會保險號、姓名、病人代碼、聯(lián)系信息和年齡的一次或多次出現(xiàn)。網(wǎng)絡(luò)通信的編碼部分可以包括這些出現(xiàn)或機密信息?;谶@些出現(xiàn),在一個實施例中,應(yīng)用防火墻290可以對網(wǎng)絡(luò)通信采取策略行動,諸如阻止發(fā)送網(wǎng)絡(luò)通信。在又一個實施例中,應(yīng)用防火墻290可以重寫、移動或者以其它方式掩蓋該所識別的出現(xiàn)或者機密信息。仍然參考圖2B,設(shè)備200可以包括如上面結(jié)合圖ID所討論的性能監(jiān)控代理197。在一個實施例中,設(shè)備200從如圖ID中所描述的監(jiān)控服務(wù)198或監(jiān)控服務(wù)器106中接收監(jiān)控代理197。在一些實施例中,設(shè)備200在諸如磁盤的存儲裝置中保存監(jiān)控代理197,以用于傳送給與設(shè)備200通信的任何客戶機或服務(wù)器。例如,在一個實施例中,設(shè)備200在接收到建立傳輸層連接的請求時發(fā)送監(jiān)控代理197給客戶機。在其它實施例中,設(shè)備200在建立與客戶機102的傳輸層連接時發(fā)送監(jiān)控代理197。在又一個實施例中,設(shè)備200在攔截或檢測對web頁面的請求時發(fā)送監(jiān)控代理197給客戶機。在又一個實施例中,設(shè)備200響應(yīng)于監(jiān)控服務(wù)器198的請求來發(fā)送監(jiān)控代理197到客戶機或服務(wù)器。在一個實施例中,設(shè)備200發(fā)送監(jiān)控代理197到第二設(shè)備200'或設(shè)備205。在其它實施例中,設(shè)備200執(zhí)行監(jiān)控代理197。在一個實施例中,監(jiān)控代理197測量和監(jiān)控在設(shè)備200上執(zhí)行的任何應(yīng)用、程序、進程、服務(wù)、任務(wù)或線程的性能。例如,監(jiān)控代理197可以監(jiān)控和測量vServers275A275N的性能與操作。在又一個實施例中,監(jiān)控代理197測量和監(jiān)控設(shè)備200的任何傳輸層連接的性能。在一些實施例中,監(jiān)控代理197測量和監(jiān)控通過設(shè)備200的任何用戶會話的性能。在一個實施例中,監(jiān)控代理197測量和監(jiān)控通過設(shè)備200的諸如SSLVPN會話的任何虛擬專用網(wǎng)連接和/或會話的性能。在進一步的實施例中,監(jiān)控代理197測量和監(jiān)控設(shè)備200的內(nèi)存、CPU和磁盤使用以及性能。在又一個實施例中,監(jiān)控代理197測量和監(jiān)控諸如SSL卸載、連接池和多路復(fù)用、高速緩存以及壓縮的由設(shè)備200執(zhí)行的任何加速技術(shù)觀8的性能。在一些實施例中,監(jiān)控代理197測量和監(jiān)控由設(shè)備200執(zhí)行的任一負載平衡和/或內(nèi)容交換觀4的性能。在其它實施例中,監(jiān)控代理197測量和監(jiān)控由設(shè)備200執(zhí)行的應(yīng)用防火墻290保護和處理的性能。C、客戶機代理現(xiàn)在看圖3,描述客戶機代理120的實施例??蛻魴C102包括客戶機代理120,用于經(jīng)由網(wǎng)絡(luò)104與設(shè)備200和/或服務(wù)器106來建立和交換通信??偟膩碚f,客戶機102在計算裝置100上操作,該計算裝置100擁有帶有內(nèi)核模式302以及用戶模式303的操作系統(tǒng),以及帶有一個或多個層310a-310b的網(wǎng)絡(luò)堆棧310??蛻魴C102可以已經(jīng)安裝和/或執(zhí)行一個或多個應(yīng)用。在一些實施例中,一個或多個應(yīng)用可通過網(wǎng)絡(luò)堆棧310與網(wǎng)絡(luò)104通信。所述應(yīng)用之一,諸如web瀏覽器,也可包括第一程序322。例如,可在一些實施例中使用第一程序322來安裝和/或執(zhí)行客戶機代理120,或其中任何部分。客戶機代理120包括攔截機制或者攔截器350,用于從網(wǎng)絡(luò)堆棧310攔截來自一個或者多個應(yīng)用的網(wǎng)絡(luò)通信??蛻魴C102的網(wǎng)絡(luò)堆棧310可包括任何類型和形式的軟件、或硬件或其組合,用于提供與網(wǎng)絡(luò)的連接和通信。在一個實施例中,網(wǎng)絡(luò)堆棧310包括用于網(wǎng)絡(luò)協(xié)議組的軟件實現(xiàn)。網(wǎng)絡(luò)堆棧310可包括一個或多個網(wǎng)絡(luò)層,例如為本領(lǐng)域技術(shù)人員所公認和了解的開放式系統(tǒng)互聯(lián)(OSI)通信模型的任何網(wǎng)絡(luò)層。這樣,網(wǎng)絡(luò)堆棧310可包括用于任何以下OSI模型層的任何類型和形式的協(xié)議1)物理鏈路層;幻數(shù)據(jù)鏈路層;幻網(wǎng)絡(luò)層;4)傳輸層;5)會話層);6)表示層,以及7)應(yīng)用層。在一個實施例中,網(wǎng)絡(luò)堆棧310可包括在因特網(wǎng)協(xié)議(IP)的網(wǎng)絡(luò)層協(xié)議上的傳輸控制協(xié)議(TCP),通常稱為TCP/IP。在一些實施例中,可在以太網(wǎng)協(xié)議上承載TCP/IP協(xié)議,以太網(wǎng)協(xié)議可包括IEEE廣域網(wǎng)(WAN)或局域網(wǎng)(LAN)協(xié)議的任何族,例如被IEEE802.3覆蓋的這些協(xié)議。在一些實施例中,網(wǎng)絡(luò)堆棧310包括任何類型和形式的無線協(xié)議,例如IEEE802.11和/或移動因特網(wǎng)協(xié)議。考慮基于TCP/IP的網(wǎng)絡(luò),可使用任何基于TCP/IP的協(xié)議,包括消息應(yīng)用編程接口(MAPI)(email)、文件傳輸協(xié)議(FTP)、超文本傳輸協(xié)議(HTTP)、通用因特網(wǎng)文件系統(tǒng)(CIFS)協(xié)議(文件傳輸)、獨立計算架構(gòu)(ICA)協(xié)議、遠程桌面協(xié)議(RDP)、無線應(yīng)用協(xié)議(WAP)、移動IP協(xié)議,以及IP語音(VoIP)協(xié)議。在又一個實施例中,網(wǎng)絡(luò)堆棧310包括任何類型和形式的傳輸控制協(xié)議,諸如修改的傳輸控制協(xié)議,例如事務(wù)TCP(T/TCP),帶有選擇確認的TCP(TCP-SACK),帶有大窗口的TCP(TCP-Lff),例如TCP-Vegas協(xié)議的擁塞預(yù)測協(xié)議,以及TCP欺騙協(xié)議。在其他實施例中,網(wǎng)絡(luò)堆棧310可使用諸如IP上UDP的任何類型和形式的用戶數(shù)據(jù)報協(xié)議(UDP),例如用于語音通信或?qū)崟r數(shù)據(jù)通信。另外,網(wǎng)絡(luò)堆棧310可包括支持一個或多個層的一個或多個網(wǎng)絡(luò)驅(qū)動器,例如TCP驅(qū)動器或網(wǎng)絡(luò)層驅(qū)動器。網(wǎng)絡(luò)層驅(qū)動器可作為計算裝置100的操作系統(tǒng)的一部分或者作為計算裝置100的任何網(wǎng)絡(luò)接口卡或其它網(wǎng)絡(luò)訪問組件的一部分被包括。在一些實施例中,網(wǎng)絡(luò)堆棧310的任何網(wǎng)絡(luò)驅(qū)動器可被定制、修改或調(diào)整以提供網(wǎng)絡(luò)堆棧310的定制或修改部分,用來支持此處描述的任何技術(shù)。在其它實施例中,設(shè)計并構(gòu)建加速程序302以與網(wǎng)絡(luò)堆棧310協(xié)同操作或工作,上述網(wǎng)絡(luò)堆棧310由客戶機102的操作系統(tǒng)安裝或以其它方式提供。網(wǎng)絡(luò)堆棧310包括任何類型和形式的接口,用于接收、獲得、提供或以其它方式訪問涉及客戶機102的網(wǎng)絡(luò)通信的任何信息和數(shù)據(jù)。在一個實施例中,與網(wǎng)絡(luò)堆棧310的接口包括應(yīng)用編程接口(API)。接口也可包括任何函數(shù)調(diào)用、鉤子或過濾機制,事件或回調(diào)機制、或任何類型的接口技術(shù)。網(wǎng)絡(luò)堆棧310通過接口可接收或提供與網(wǎng)絡(luò)堆棧310的功能或操作相關(guān)的任何類型和形式的數(shù)據(jù)結(jié)構(gòu),例如對象。例如,數(shù)據(jù)結(jié)構(gòu)可以包括與網(wǎng)絡(luò)分組相關(guān)的信息和數(shù)據(jù)或者一個或多個網(wǎng)絡(luò)分組。在一些實施例中,數(shù)據(jù)結(jié)構(gòu)包括在網(wǎng)絡(luò)堆棧310的協(xié)議層處理的網(wǎng)絡(luò)分組的一部分,例如傳輸層的網(wǎng)絡(luò)分組。在一些實施例中,數(shù)據(jù)結(jié)構(gòu)325包括內(nèi)核級別數(shù)據(jù)結(jié)構(gòu),而在其他實施例中,數(shù)據(jù)結(jié)構(gòu)325包括用戶模式數(shù)據(jù)結(jié)構(gòu)。內(nèi)核級數(shù)據(jù)結(jié)構(gòu)可以包括獲得的或與在內(nèi)核模式302中操作的網(wǎng)絡(luò)堆棧310的一部分相關(guān)的數(shù)據(jù)結(jié)構(gòu)、或者運行在內(nèi)核模式302中的網(wǎng)絡(luò)驅(qū)動程序或其它軟件、或者由運行或操作在操作系統(tǒng)的內(nèi)核模式的服務(wù)、進程、任務(wù)、線程或其它可執(zhí)行指令獲得或收到的任何數(shù)據(jù)結(jié)構(gòu)。此外,網(wǎng)絡(luò)堆棧310的一些部分可在內(nèi)核模式302執(zhí)行或操作,例如,數(shù)據(jù)鏈路或網(wǎng)絡(luò)層,而其他部分在用戶模式303執(zhí)行或操作,例如網(wǎng)絡(luò)堆棧310的應(yīng)用層。例如,網(wǎng)絡(luò)堆棧的第一部分310a可以給應(yīng)用提供對網(wǎng)絡(luò)堆棧310的用戶模式訪問,而網(wǎng)絡(luò)堆棧310的第二部分310a提供對網(wǎng)絡(luò)的訪問。在一些實施例中,網(wǎng)絡(luò)堆棧的第一部分310a可包括網(wǎng)絡(luò)堆棧310的一個或多個更上層,例如層5-7的任何層。在其它實施例中,網(wǎng)絡(luò)堆棧310的第二部分310b包括一個或多個較低的層,例如層1-4的任何層。網(wǎng)絡(luò)堆棧310的每個第一部分310a和第二部分310b可包括網(wǎng)絡(luò)堆棧310的任何部分,位于任何一個或多個網(wǎng)絡(luò)層,處于用戶模式203、內(nèi)核模式202,或其組合,或在網(wǎng)絡(luò)層的任何部分或者到網(wǎng)絡(luò)層的接口點,或用戶模式203和內(nèi)核模式202的任何部分或到用戶模式203和內(nèi)核模式202的接口點。攔截器350可以包括軟件、硬件、或者軟件和硬件的任何組合。在一個實施例中,攔截器350在網(wǎng)絡(luò)堆棧310的任一點攔截網(wǎng)絡(luò)通信,并且重定向或者發(fā)送網(wǎng)絡(luò)通信到由攔截器350或者客戶機代理120所期望的、管理的或者控制的目的地。例如,攔截器350可以2攔截第一網(wǎng)絡(luò)的網(wǎng)絡(luò)堆棧310的網(wǎng)絡(luò)通信并且發(fā)送該網(wǎng)絡(luò)通信到設(shè)備200,用于在第二網(wǎng)絡(luò)104上發(fā)送。在一些實施例中,攔截器350包括含有諸如被構(gòu)建和設(shè)計來與網(wǎng)絡(luò)堆棧310對接并一同工作的網(wǎng)絡(luò)驅(qū)動器的驅(qū)動器的任一類型的攔截器350。在一些實施例中,客戶機代理120和/或攔截器350操作在網(wǎng)絡(luò)堆棧310的一個或者多個層,諸如在傳輸層。在一個實施例中,攔截器350包括過濾器驅(qū)動器、鉤子機制、或者連接到網(wǎng)絡(luò)堆棧的傳輸層的任一形式和類型的合適網(wǎng)絡(luò)驅(qū)動器接口,諸如通過傳輸驅(qū)動器接口(TDI)。在一些實施例中,攔截器350連接到諸如傳輸層的第一協(xié)議層和諸如傳輸協(xié)議層之上的任何層的另一個協(xié)議層,例如,應(yīng)用協(xié)議層。在一個實施例中,攔截器350可以包括遵守網(wǎng)絡(luò)驅(qū)動器接口規(guī)范(NDIS)的驅(qū)動器,或者NDIS驅(qū)動器。在又一個實施例中,攔截器350可以包括微型過濾器或者微端口驅(qū)動器。在一個實施例中,攔截器350或其部分在內(nèi)核模式202中操作。在又一個實施例中,攔截器350或其部分在用戶模式203中操作。在一些實施例中,攔截器350的一部分在內(nèi)核模式202中操作,而攔截器350的另一部分在用戶模式203中操作。在其它實施例中,客戶機代理120在用戶模式203操作,但通過攔截器350連接到內(nèi)核模式驅(qū)動器、進程、服務(wù)、任務(wù)或者操作系統(tǒng)的部分,諸如以獲取內(nèi)核級數(shù)據(jù)結(jié)構(gòu)225。在其它實施例中,攔截器350為用戶模式應(yīng)用或者程序,諸如應(yīng)用。在一個實施例中,攔截器350攔截任何的傳輸層連接請求。在這些實施例中,攔截器350執(zhí)行傳輸層應(yīng)用編程接口(API)調(diào)用以設(shè)置目的地信息,諸如到期望位置的目的地IP地址和/或端口用于定位。以此方式,攔截器350攔截并重定向傳輸層連接到由攔截器350或客戶機代理120控制或管理的IP地址和端口。在一個實施例中,攔截器350將連接的目的地信息設(shè)置為客戶機代理120監(jiān)聽的客戶機102的本地IP地址和端口。例如,客戶機代理120可以包括為重定向的傳輸層通信監(jiān)聽本地IP地址和端口的代理服務(wù)。在一些實施例中,客戶機代理120隨后將重定向的傳輸層通信傳送到設(shè)備200。在一些實施例中,攔截器350攔截域名服務(wù)(DNS)請求。在一個實施例中,客戶機代理120和/或攔截器350解析DNS請求。在又一個實施例中,攔截器發(fā)送所攔截的DNS請求到設(shè)備200以進行DNS解析。在一個實施例中,設(shè)備200解析DNS請求并且將DNS響應(yīng)傳送到客戶機代理120。在一些實施例中,設(shè)備200經(jīng)另一個設(shè)備200’或者DNS服務(wù)器106來解析DNS請求。在又一個實施例中,客戶機代理120可以包括兩個代理120和120’。在一個實施例中,第一代理120可以包括在網(wǎng)絡(luò)堆棧310的網(wǎng)絡(luò)層操作的攔截器350。在一些實施例中,第一代理120攔截網(wǎng)絡(luò)層請求,諸如因特網(wǎng)控制消息協(xié)議(ICMP)請求(例如,查驗和跟蹤路由)。在其它實施例中,第二代理120’可以在傳輸層操作并且攔截傳輸層通信。在一些實施例中,第一代理120在網(wǎng)絡(luò)堆棧210的一層攔截通信并且與第二代理120’連接或者將所攔截的通信傳送到第二代理120’??蛻魴C代理120和/或攔截器350可以以對網(wǎng)絡(luò)堆棧310的任何其它協(xié)議層透明的方式在協(xié)議層操作或與之對接。例如,在一個實施例中,攔截器350可以以對諸如網(wǎng)絡(luò)層的傳輸層之下的任何協(xié)議層和諸如會話、表示或應(yīng)用層協(xié)議的傳輸層之上的任何協(xié)議層透明的方式在網(wǎng)絡(luò)堆棧310的傳輸層操作或與之對接。這允許網(wǎng)絡(luò)堆棧310的其它協(xié)議層如所期望的進行操作并無需修改以使用攔截器350。這樣,客戶機代理120和/或攔截器350可以與傳輸層連接以安全、優(yōu)化、加速、路由或者負載平衡經(jīng)由傳輸層承載的任一協(xié)議提供的任一通信,諸如TCP/IP上的任一應(yīng)用層協(xié)議。此外,客戶機代理120和/或攔截器可以以對任何應(yīng)用、客戶機102的用戶和與客戶機102通信的諸如服務(wù)器的任何其它計算裝置透明的方式在網(wǎng)絡(luò)堆棧310上操作或與之對接??蛻魴C代理120和/或攔截器350可以以無需修改應(yīng)用的方式被安裝和/或執(zhí)行在客戶機102上。在一些實施例中,客戶機102的用戶或者與客戶機102通信的計算裝置未意識到客戶機代理120和/或攔截器350的存在、執(zhí)行或者操作。同樣,在一些實施例中,相對于應(yīng)用、客戶機102的用戶、諸如服務(wù)器的另一個計算裝置、或者在由攔截器350連接的協(xié)議層之上和/或之下的任何協(xié)議層透明地來安裝、執(zhí)行和/或操作客戶機代理120和/或攔截器350??蛻魴C代理120包括加速程序302、流客戶機306、收集代理304和/或監(jiān)控代理197。在一個實施例中,客戶機代理120包括由佛羅里達州R)rtLauderdale的CitrixSystemsInc.開發(fā)的獨立計算架構(gòu)(ICA)客戶機或其任一部分,并且也指ICA客戶機。在一些實施例中,客戶機代理120包括應(yīng)用流客戶機306,用于從服務(wù)器106流式傳輸應(yīng)用到客戶機102。在一些實施例中,客戶機代理120包括加速程序302,用于加速客戶機102和服務(wù)器106之間的通信。在又一個實施例中,客戶機代理120包括收集代理304,用于執(zhí)行端點檢測/掃描并且用于為設(shè)備200和/或服務(wù)器106收集端點信息。在一些實施例中,加速程序302包括用于執(zhí)行一個或多個加速技術(shù)的客戶機側(cè)加速程序,以加速、增強或者以其他方式改善客戶機與服務(wù)器106的通信和/或?qū)Ψ?wù)器106的訪問,諸如訪問由服務(wù)器106提供的應(yīng)用。加速程序302的可執(zhí)行指令的邏輯、函數(shù)和/或操作可以執(zhí)行一個或多個下列加速技術(shù)1)多協(xié)議壓縮,幻傳輸控制協(xié)議池,幻傳輸控制協(xié)議多路復(fù)用,4)傳輸控制協(xié)議緩沖,以及幻通過高速緩存管理器的高速緩存。另外,加速程序302可執(zhí)行由客戶機102接收和/或發(fā)送的任何通信的加密和/或解密。在一些實施例中,加速程序302以集成的方式或者格式執(zhí)行一個或者多個加速技術(shù)。另外,加速程序302可以對作為傳輸層協(xié)議的網(wǎng)絡(luò)分組的有效載荷所承載的任一協(xié)議或者多協(xié)議執(zhí)行壓縮。流客戶機306包括應(yīng)用、程序、進程、服務(wù)、任務(wù)或者可執(zhí)行指令,所述應(yīng)用、程序、進程、服務(wù)、任務(wù)或者可執(zhí)行指令用于接收和執(zhí)行從服務(wù)器106所流式傳輸?shù)膽?yīng)用。服務(wù)器106可以流式傳輸一個或者多個應(yīng)用數(shù)據(jù)文件到流客戶機306,用于播放、執(zhí)行或者以其它方式引起客戶機102上的應(yīng)用被執(zhí)行。在一些實施例中,服務(wù)器106發(fā)送一組壓縮或者打包的應(yīng)用數(shù)據(jù)文件到流客戶機306。在一些實施例中,多個應(yīng)用文件被壓縮并存儲在文件服務(wù)器上檔案文件中,例如CAB、ZIP、SIT、TAR、JAR或其它檔案文件。在一個實施例中,服務(wù)器106解壓縮、解包或者解檔應(yīng)用文件并且將該文件發(fā)送到客戶機102。在又一個實施例中,客戶機102解壓縮、解包或者解檔應(yīng)用文件。流客戶機306動態(tài)安裝應(yīng)用或其部分,并且執(zhí)行該應(yīng)用。在一個實施例中,流客戶機306可以為可執(zhí)行程序。在一些實施例中,流客戶機306可以能夠啟動另一個可執(zhí)行程序。收集代理304包括應(yīng)用、程序、進程、服務(wù)、任務(wù)或者可執(zhí)行指令,用于識別、獲取和/或收集關(guān)于客戶機102的信息。在一些實施例中,設(shè)備200發(fā)送收集代理304到客戶機102或者客戶機代理120。可以根據(jù)設(shè)備的策略引擎236的一個或多個策略來配置收集代理304。在其它實施例中,收集代理304發(fā)送在客戶機102上收集的信息到設(shè)備200。在一個實施例中,設(shè)備200的策略引擎236使用所收集的信息來確定和提供客戶機到網(wǎng)絡(luò)104的連接的訪問、驗證和授權(quán)控制。在一個實施例中,收集代理304包括端點檢測和掃描機制,其識別并且確定客戶機的一個或者多個屬性或者特征。例如,收集代理304可以識別和確定任何一個或多個以下的客戶機側(cè)屬性1)操作系統(tǒng)和/或操作系統(tǒng)的版本,2)操作系統(tǒng)的服務(wù)包,3)運行的服務(wù),4)運行的進程,和幻文件。收集代理304還可以識別并確定客戶機上任何一個或多個以下軟件的存在或版本1)防病毒軟件;幻個人防火墻軟件;3)防垃圾郵件軟件,和4)互聯(lián)網(wǎng)安全軟件。策略引擎236可以具有基于客戶機或客戶機側(cè)屬性的任何一個或多個屬性或特性的一個或多個策略。在一些實施例中,客戶機代理120包括如結(jié)合圖ID和2B所討論的監(jiān)控代理197。監(jiān)控代理197可以是諸如VisualBasic或Java腳本的任何類型和形式的腳本。在一個實施例中,監(jiān)控代理197監(jiān)控和測量客戶機代理120的任何部分的性能。例如,在一些實施例中,監(jiān)控代理197監(jiān)控和測量加速程序302的性能。在又一個實施例中,監(jiān)控代理197監(jiān)控和測量流客戶機306的性能。在其它實施例中,監(jiān)控代理197監(jiān)控和測量收集代理304的性能。在又一個實施例中,監(jiān)控代理197監(jiān)控和測量攔截器350的性能。在一些實施例中,監(jiān)控代理197監(jiān)控和測量客戶機102的諸如存儲器、CPU和磁盤的任何資源。監(jiān)控代理197可以監(jiān)控和測量客戶機的任何應(yīng)用的性能。在一個實施例中,監(jiān)控代理197監(jiān)控和測量客戶機102上的瀏覽器的性能。在一些實施例中,監(jiān)控代理197監(jiān)控和測量經(jīng)由客戶機代理120傳送的任何應(yīng)用的性能。在其它實施例中,監(jiān)控代理197測量和監(jiān)控應(yīng)用的最終用戶響應(yīng)時間,例如基于web的響應(yīng)時間或HTTP響應(yīng)時間。監(jiān)控代理197可以監(jiān)控和測量ICA或RDP客戶機的性能。在又一個實施例中,監(jiān)控代理197測量和監(jiān)控用戶會話或應(yīng)用會話的指標。在一些實施例中,監(jiān)控代理197測量和監(jiān)控ICA或RDP會話。在一個實施例中,監(jiān)控代理197測量和監(jiān)控設(shè)備200在加速傳送應(yīng)用和/或數(shù)據(jù)到客戶機102的過程中的性能。在一些實施例中,仍參考圖3,第一程序322可以用于自動地、靜默地、透明地或者以其它方式安裝和/或執(zhí)行客戶機代理120或其部分,諸如攔截器350。在一個實施例中,第一程序322包括插件組件,例如ActiveX控件或Java控件或腳本,其加載到應(yīng)用并由應(yīng)用執(zhí)行。例如,第一程序包括由web瀏覽器應(yīng)用載入和運行的ActiveX控件,例如在存儲器空間或應(yīng)用的上下文中。在又一個實施例中,第一程序322包括可執(zhí)行指令組,該可執(zhí)行指令組被例如瀏覽器的應(yīng)用載入并執(zhí)行。在一個實施例中,第一程序322包括被設(shè)計和構(gòu)造的程序以安裝客戶機代理120。在一些實施例中,第一程序322通過網(wǎng)絡(luò)從另一個計算裝置獲得、下載、或接收客戶機代理120。在又一個實施例中,第一程序322是用于在客戶機102的操作系統(tǒng)上安裝如網(wǎng)絡(luò)驅(qū)動的程序的安裝程序或即插即用管理器。D、用于提供虛擬化應(yīng)用傳送控制器的系統(tǒng)和方法現(xiàn)參考圖4A,框圖描述虛擬化環(huán)境400的一個實施例??傮w而言,計算裝置100包括管理程序?qū)?、虛擬化層和硬件層。管理程序?qū)影ü芾沓绦?01(也稱為虛擬化管理器),其通過在虛擬化層中執(zhí)行的至少一個虛擬機來分配和管理對硬件層中的多個物理資源的訪問(例如處理器421和磁盤428)。虛擬化層包括至少一個操作系統(tǒng)410和分配給至少一個操作系統(tǒng)410的多個虛擬資源。虛擬資源可包括而不限于多個虛擬處理器43h、432b、432c(總稱為43和虛擬磁盤44^i、442b、442c(總稱為44,以及如虛擬內(nèi)存和虛擬網(wǎng)絡(luò)接口的虛擬資源。可將多個虛擬資源和操作系統(tǒng)稱為虛擬機406。虛擬機406可包括控制操作系統(tǒng)405,該控制操作系統(tǒng)405與管理程序401通信,并用于執(zhí)行應(yīng)用以管理并配置計算裝置100上的其他虛擬機。具體而言,管理程序401可以以模擬可訪問物理設(shè)備的操作系統(tǒng)的任何方式向操作系統(tǒng)提供虛擬資源。管理程序401可以向任一數(shù)量客戶操作系統(tǒng)410a、410b(總稱為410)提供虛擬資源。一些實施例中,計算裝置100執(zhí)行一種或多種管理程序。這些實施例中,管理程序可用于模擬虛擬硬件、劃分物理硬件、虛擬化物理硬件并執(zhí)行提供對計算環(huán)境的訪問的虛擬機。管理程序可包括由位于美國加州的I^aloAlto的VMWare制造的這些程序;XEN管理程序(一種開源產(chǎn)品,其開發(fā)由開源Xen.org協(xié)會監(jiān)管);由微軟公司提供的HyperV、VirtualServer或虛擬PC管理程序,或其他。一些實施例中,計算裝置100執(zhí)行創(chuàng)建客戶操作系統(tǒng)可在其上執(zhí)行虛擬機平臺的管理程序,該計算裝置100被稱為宿主服務(wù)器。在這些實施例的一個中,例如,計算裝置100是由位于美國佛羅里達州R)rtLauderdale的CitrixSystems公司提供的XENSERVER。一些實施例中,管理程序401在計算裝置上執(zhí)行的操作系統(tǒng)之內(nèi)執(zhí)行。在這些實施例的一個中,執(zhí)行操作系統(tǒng)和管理程序401的計算裝置可被視為具有宿主操作系統(tǒng)(執(zhí)行在計算裝置上的操作系統(tǒng)),和客戶操作系統(tǒng)(在由管理程序401提供的計算資源分區(qū)內(nèi)執(zhí)行的操作系統(tǒng))。其他實施例中,管理程序401和計算裝置上的硬件直接交互而不是在宿主操作系統(tǒng)上執(zhí)行。在這些實施例的一個中,管理程序401可被視為在“裸金屬(baremetal),,上執(zhí)行,所述“裸金屬”指包括計算裝置的硬件。一些實施例中,管理程序401可以產(chǎn)生操作系統(tǒng)410在其中執(zhí)行的虛擬機406a-c(總稱為406)。在這些實施例的一個中,管理程序401加載虛擬機映像以創(chuàng)建虛擬機406。在這些實施例的又一個中,管理程序401在虛擬機406內(nèi)執(zhí)行操作系統(tǒng)410。仍在這些實施例的又一個中,虛擬機406執(zhí)行操作系統(tǒng)410。一些實施例中,管理程序401控制在計算裝置100上執(zhí)行的虛擬機406的處理器調(diào)度和內(nèi)存劃分。在這些實施例的一個中,管理程序401控制至少一個虛擬機406的執(zhí)行。在這些實施例的又一個中,管理程序401向至少一個虛擬機406呈現(xiàn)由計算裝置100提供的至少一個硬件資源的抽象。其他實施例中,管理程序401控制是否以及如何將物理處理器能力呈現(xiàn)給虛擬機406。控制操作系統(tǒng)405可以執(zhí)行用于管理和配置客戶操作系統(tǒng)的至少一個應(yīng)用。一個實施例中,控制操作系統(tǒng)405可以執(zhí)行管理應(yīng)用,如包括如下用戶接口的應(yīng)用,該用戶接口為管理員提供對用于管理虛擬機執(zhí)行的功能的訪問,這些功能包括用于執(zhí)行虛擬機、中止虛擬機執(zhí)行或者識別要分配給虛擬機的物理資源類型的功能。又一個實施例中,管理程序401在由管理程序401創(chuàng)建的虛擬機406內(nèi)執(zhí)行控制操作系統(tǒng)405。又一個實施例中,控制操作系統(tǒng)405在被授權(quán)直接訪問計算裝置100上的物理資源的虛擬機406上執(zhí)行。一些實施例中,計算裝置IOOa上的控制操作系統(tǒng)40可以通過管理程序401a和管理程序401b之間的通信與計算裝置IOOb上的控制操作系統(tǒng)40交換數(shù)據(jù)。這樣,一個或多個計算裝置100可以和一個或多個其他計算裝置100交換有關(guān)處理器或資源池中可用的其他物理資源的數(shù)據(jù)。在這些實施例的一個中,這種功能允許管理程序管理分布在多個物理計算裝置CN102549984A上的資源池。在這些實施例的又一個中,多個管理程序管理在一個計算裝置100上執(zhí)行的一個或多個客戶操作系統(tǒng)。一個實施例中,控制操作系統(tǒng)405在被授權(quán)與至少一個客戶操作系統(tǒng)410交互的虛擬機406上執(zhí)行。又一個實施例中,客戶操作系統(tǒng)410通過管理程序401和控制操作系統(tǒng)405通信,以請求訪問磁盤或網(wǎng)絡(luò)。仍在又一個實施例中,客戶操作系統(tǒng)410和控制操作系統(tǒng)405可通過由管理程序401建立的通信信道通信,例如,通過由管理程序401提供的多個共享存儲器頁面。一些實施例中,控制操作系統(tǒng)405包括用于直接與由計算裝置100提供的網(wǎng)絡(luò)硬件通信的網(wǎng)絡(luò)后端驅(qū)動器。在這些實施例的一個中,網(wǎng)絡(luò)后端驅(qū)動器處理來自至少一個客戶操作系統(tǒng)110的至少一個虛擬機請求。其他實施例中,控制操作系統(tǒng)405包括用于與計算裝置100上的存儲元件通信的塊后端驅(qū)動器。在這些實施例的一個中,塊后端驅(qū)動器基于從客戶操作系統(tǒng)410接收的至少一個請求從存儲元件讀寫數(shù)據(jù)。一個實施例,控制操作系統(tǒng)405包括工具堆棧404。其他實施例中,工具堆棧404提供如下功能和管理程序401交互、和其他控制操作系統(tǒng)405(例如位于第二計算裝置IOOb上)通信,或者管理計算裝置100上的虛擬機406b、406c。又一個實施例中,工具堆棧404包括自定義應(yīng)用,其用于向虛擬機群的管理員提供改進的管理功能。一些實施例中,工具堆棧404和控制操作系統(tǒng)405中的至少一個包括管理API,其提供用于遠程配置并控制計算裝置100上運行的虛擬機406的接口。其他實施例中,控制操作系統(tǒng)405通過工具堆棧404和管理程序401通信。一個實施例中,管理程序401在由管理程序401創(chuàng)建的虛擬機406內(nèi)執(zhí)行客戶操作系統(tǒng)410。又一個實施例中,客戶操作系統(tǒng)410為計算裝置100的用戶提供對計算環(huán)境中的資源的訪問。又一個實施例中,資源包括程序、應(yīng)用、文檔、文件、多個應(yīng)用、多個文件、可執(zhí)行程序文件、桌面環(huán)境、計算環(huán)境或?qū)τ嬎阊b置100的用戶可用的其他資源。又一個實施例中,可通過多個訪問方法將資源傳送給計算裝置100,這些方法包括但不限于常規(guī)的直接在計算裝置100上安裝、通過應(yīng)用流的方法傳送給計算裝置100、將由在第二計算裝置100'上執(zhí)行資源產(chǎn)生的并通過表示層協(xié)議傳送給計算裝置100的輸出數(shù)據(jù)傳送給計算裝置100、將通過在第二計算裝置100'上執(zhí)行的虛擬機執(zhí)行資源所產(chǎn)生的輸出數(shù)據(jù)傳送給計算裝置100、或者從連接到計算裝置100的移動存儲裝置(例如USB設(shè)備)執(zhí)行或者通過在計算裝置100上執(zhí)行的虛擬機執(zhí)行并且產(chǎn)生輸出數(shù)據(jù)。一些實施例中,計算裝置100將執(zhí)行資源所產(chǎn)生的輸出數(shù)據(jù)傳輸給另一個計算裝置100'。一個實施例中,客戶操作系統(tǒng)410和該客戶操作系統(tǒng)410在其上執(zhí)行的虛擬機結(jié)合形成完全虛擬化虛擬機,該完全虛擬化虛擬機并不知道自己是虛擬機,這樣的機器可稱為“DomainUHVM(硬件虛擬機)虛擬機”。又一個實施例中,完全虛擬化機包括模擬基本輸入/輸出系統(tǒng)(BIOS)的軟件以便在完全虛擬化機中執(zhí)行操作系統(tǒng)。在又一個實施例中,完全虛擬化機可包括驅(qū)動器,其通過和管理程序401通信提供功能。這樣的實施例中,驅(qū)動器可意識到自己在虛擬化環(huán)境中執(zhí)行。又一個實施例中,客戶操作系統(tǒng)410和該客戶操作系統(tǒng)410在其上執(zhí)行的虛擬機結(jié)合形成超虛擬化(paravirtualized)虛擬機,該超虛擬化虛擬機意識到自己是虛擬機,這樣的機器可稱為“DomainUPV虛擬機”。又一個實施例中,超虛擬化機包括完全虛擬化機不包括的額外驅(qū)動器。又一個實施例中,超虛擬化機包括如上所述的被包含在控制操作系統(tǒng)405中的網(wǎng)絡(luò)后端驅(qū)動器和塊后端驅(qū)動器?,F(xiàn)參考圖4B,框圖描述了系統(tǒng)中的多個聯(lián)網(wǎng)計算裝置的一個實施例,其中,至少一個物理主機執(zhí)行虛擬機??傮w而言,系統(tǒng)包括管理組件404和管理程序401。系統(tǒng)包括多個計算裝置100、多個虛擬機406、多個管理程序401、多個管理組件(又稱為工具堆棧404或者管理組件404)以及物理資源421、428。多個物理機器100的每一個可被提供為如上結(jié)合圖1E-1H和圖4A描述的計算裝置100。具體而言,物理磁盤428由計算裝置100提供,存儲至少一部分虛擬磁盤442。一些實施例中,虛擬磁盤442和多個物理磁盤4相關(guān)聯(lián)。在這些實施例的一個中,一個或多個計算裝置100可以與一個或多個其他計算裝置100交換有關(guān)處理器或資源池中可用的其他物理資源的數(shù)據(jù),允許管理程序管理分布在多個物理計算裝置上的資源池。一些實施例中,將虛擬機406在其上執(zhí)行的計算裝置100稱為物理主機100或主機100。管理程序在計算裝置100上的處理器上執(zhí)行。管理程序?qū)ξ锢泶疟P的訪問量分配給虛擬磁盤。一個實施例中,管理程序401分配物理磁盤上的空間量。又一個實施例中,管理程序401分配物理磁盤上的多個頁面。一些實施例中,管理程序提供虛擬磁盤442作為初始化和執(zhí)行虛擬機450進程的一部分。一個實施例中,將管理組件40稱為池管理組件4(Ma。又一個實施例中,可以稱為控制管理系統(tǒng)40的管理操作系統(tǒng)40包括管理組件。一些實施例中,將管理組件稱為工具堆棧。在這些實施例的一個中,管理組件是上文結(jié)合圖4A描述的工具堆棧404。其他實施例中,管理組件404提供用戶接口,用于從如管理員的用戶接收要供應(yīng)和/或執(zhí)行的虛擬機406的標識。仍在其他實施例中,管理組件404提供用戶接口,用于從如管理員的用戶接收將虛擬機406b從一個物理機器100遷移到另一物理機器的請求。在進一步的實施例中,管理組件40識別在其上執(zhí)行所請求的虛擬機406d的計算裝置IOOb并指示所識別的計算裝置IOOb上的管理程序401b執(zhí)行所識別的虛擬機,這樣,可將管理組件稱為池管理組件?,F(xiàn)參考圖4C,描述了虛擬應(yīng)用傳送控制器或虛擬設(shè)備450的實施例??傮w而言,上文結(jié)合圖2A和2B描述的設(shè)備200的任何功能和/或?qū)嵤├?例如應(yīng)用傳送控制器)可以部署在上文結(jié)合圖4A和4B描述的虛擬化環(huán)境的任何實施例中。應(yīng)用傳送控制器的功能不是以設(shè)備200的形式部署,而是將該功能部署在諸如客戶機102、服務(wù)器106或設(shè)備200的任何計算裝置100上的虛擬化環(huán)境400中。現(xiàn)在參考圖4C,描述了在服務(wù)器106的管理程序401上操作的虛擬設(shè)備450的實施例的框圖。如圖2A和2B的設(shè)備200—樣,虛擬機450可以提供可用性、性能、卸載和安全的功能。對于可用性,虛擬設(shè)備可以執(zhí)行網(wǎng)絡(luò)第4層和第7層之間的負載平衡并執(zhí)行智能服務(wù)健康監(jiān)控。對于通過網(wǎng)絡(luò)業(yè)務(wù)加速實現(xiàn)的性能增加,虛擬設(shè)備可以執(zhí)行緩存和壓縮。對于任何服務(wù)器的卸載處理,虛擬設(shè)備可以執(zhí)行連接復(fù)用和連接池和/或SSL處理。對于安全,虛擬設(shè)備可以執(zhí)行設(shè)備200的任何應(yīng)用防火墻功能和SSLVPN功能。結(jié)合附圖2A描述的設(shè)備200的任何模塊可以虛擬化設(shè)備傳送控制器450的形式被打包、組合、設(shè)計或構(gòu)造,虛擬化設(shè)備傳送控制器450可部署成在諸如流行的服務(wù)器這樣的任何服務(wù)器上的虛擬化環(huán)境300或非虛擬化環(huán)境中執(zhí)行的軟件模塊或組件。例如,可以安裝在計算裝置上的安裝包的形式提供虛擬設(shè)備。參考圖2A,可以將高速緩存管理器232、策略引擎236、壓縮238、加密引擎234、分組引擎240、⑶I210,CLI212、殼服務(wù)214中的任一個設(shè)計和構(gòu)成在計算裝置和/或虛擬化環(huán)境300的任何操作系統(tǒng)上運行的組件或模塊。虛擬化設(shè)備400不使用設(shè)備200的加密處理器沈0、處理器沈2、存儲器沈4和網(wǎng)絡(luò)堆棧沈7,而是可使用虛擬化環(huán)境400提供的任何這些資源或者服務(wù)器106上以其他方式可用的這些資源。仍參考圖4C,簡言之,任何一個或多個vServer275A-275N可以操作或執(zhí)行在任意類型的計算裝置100(如服務(wù)器106)的虛擬化環(huán)境400中。結(jié)合附圖2B描述的設(shè)備200的任何模塊和功能可以設(shè)計和構(gòu)造成在服務(wù)器的虛擬化或非虛擬化環(huán)境中操作??梢詫Server275,SSLVPN280、內(nèi)網(wǎng)UP282、交換裝置284、DNS286、加速裝置288、APPFff280和監(jiān)控代理中的任一個打包、組合、設(shè)計或構(gòu)造成應(yīng)用傳送控制器450的形式,應(yīng)用傳送控制器450可部署成在裝置和/或虛擬化環(huán)境400中執(zhí)行的一個或多個軟件模塊或組件。一些實施例中,服務(wù)器可以在虛擬化環(huán)境中執(zhí)行多個虛擬機406a_406b,每個虛擬機運行虛擬應(yīng)用傳送控制器450的相同或不同實施例。一些實施例中,服務(wù)器可以在多核處理系統(tǒng)的一個核上執(zhí)行一個或多個虛擬機上的一個或多個虛擬設(shè)備450。一些實施例中,服務(wù)器可以在多處理器裝置的每個處理器上執(zhí)行一個或多個虛擬機上的一個或多個虛擬設(shè)備450。E、提供多核架構(gòu)的系統(tǒng)和方法根據(jù)摩爾定律,每兩年集成電路上可安裝的晶體管的數(shù)量會基本翻倍。然而,CPU速度增加會達到一個穩(wěn)定的水平(plateaus),例如,2005年以來,CPU速度在約3.5_4GHz的范圍內(nèi)。一些情況下,CPU制造商可能不依靠CPU速度增加來獲得額外的性能。一些CPU制造商會給處理器增加附加核以提供額外的性能。依靠CPU獲得性能改善的如軟件和網(wǎng)絡(luò)供應(yīng)商的產(chǎn)品可以通過利用這些多核CPU來改進他們的性能??梢灾匦略O(shè)計和/或編寫為單CPU設(shè)計和構(gòu)造的軟件以利用多線程、并行架構(gòu)或多核架構(gòu)。一些實施例中,稱為nCore或多核技術(shù)的設(shè)備200的多核架構(gòu)允許設(shè)備打破單核性能障礙并利用多核CPU的能力。前文結(jié)合圖2A描述的架構(gòu)中,運行單個網(wǎng)絡(luò)或分組引擎。nCore技術(shù)和架構(gòu)的多核允許同時和/或并行地運行多個分組引擎。通過在每個核上運行分組引擎,設(shè)備架構(gòu)利用附加核的處理能力。一些實施例中,這提供了高達七倍的性能改善和擴展性。圖5A示出根據(jù)一類并行機制或并行計算方案(如功能并行機制、數(shù)據(jù)并行機制或基于流的數(shù)據(jù)并行機制)在一個或多個處理器核上分布的工作、任務(wù)、負載或網(wǎng)絡(luò)業(yè)務(wù)的一些實施例??傮w而言,圖5A示出如具有η個核的設(shè)備200'的多核系統(tǒng)的實施例,η個核編號為1到N。一個實施例中,工作、負載或網(wǎng)絡(luò)業(yè)務(wù)可以分布在第一核505Α、第二核505Β、第三核505C、第四核505D、第五核505Ε、第六核505F、第七核505G等上,這樣,分布位于所有η個核505Ν(此后統(tǒng)稱為核50或η個核中的兩個或多個上。可以有多個VIP275,每個運行在多個核中的相應(yīng)的核上??梢杂卸鄠€分組引擎對0,每個運行在多個核的相應(yīng)的核。所使用任何方法可產(chǎn)生多個核中任一核上的不同的、變化的或類似的工作負載或性能級別515。對于功能并行方法,每個核運行由分組引擎、VIP275或設(shè)備200提供的多個功能的不同功能。在數(shù)據(jù)并行方法中,數(shù)據(jù)可基于接收數(shù)據(jù)的網(wǎng)絡(luò)接口卡(NIC)或VIP275并行或分布在核上。又一個數(shù)據(jù)并行方法中,可通過將數(shù)據(jù)流分布在每個核上而將處理分布在核上。圖5A的進一步的細節(jié)中,一些實施例中,可以根據(jù)功能并行機制500將負載、工作或網(wǎng)絡(luò)業(yè)務(wù)在多個核505間分布。功能并行機制可基于執(zhí)行一個或多個相應(yīng)功能的每個核。一些實施例中,第一核可執(zhí)行第一功能,同時第二核執(zhí)行第二功能。功能并行方法中,根據(jù)功能性將多核系統(tǒng)要執(zhí)行的功能劃分并分布到每個核。一些實施例中,可將功能并行機制稱為任務(wù)并行機制,并且可在每個處理器或核對同一數(shù)據(jù)或不同數(shù)據(jù)執(zhí)行不同進程或功能時實現(xiàn)。核或處理器可執(zhí)行相同或不同的代碼。一些情況下,不同的執(zhí)行線程或代碼可在工作時相互通信??梢赃M行通信以將數(shù)據(jù)作為工作流的一部分從一個線程傳遞給下一線程。一些實施例中,根據(jù)功能并行機制500將工作分布在核505上,可以包括根據(jù)特定功能分布網(wǎng)絡(luò)業(yè)務(wù),所述特定功能例如為網(wǎng)絡(luò)輸入/輸出管理(NWI/0)510A、安全套接層(SSL)加密和解密510B和傳輸控制協(xié)議(TCP)功能510C。這會產(chǎn)生基于所使用的功能量或功能級別的工作、性能或者計算負載515。一些實施例中,根據(jù)數(shù)據(jù)并行機制540將工作分布在核505上可包括基于與特定的硬件或軟件組件相關(guān)聯(lián)的分布數(shù)據(jù)來分布工作量515。一些實施例中,根據(jù)基于流的數(shù)據(jù)并行機制520將工作分布在核505上可包括基于上下文或流來分布數(shù)據(jù),從而使得每個核上的工作量515A-N可以類似、基本相等或者相對平均分布。在功能并行方法的情況下,可以配置每個核來運行由設(shè)備的分組引擎或VIP提供的多個功能中的一個或多個功能。例如,核1可執(zhí)行設(shè)備200’的網(wǎng)絡(luò)I/O處理,同時核2執(zhí)行設(shè)備的TCP連接管理。類似地,核3可執(zhí)行SSL卸載,同時核4可執(zhí)行第7層或應(yīng)用層處理和業(yè)務(wù)管理。每個核可執(zhí)行相同或不同的功能。每個核可執(zhí)行不只一個功能。任一核可運行結(jié)合附圖2A和2B識別和/或描述的功能或其一部分。該方法中,核上的工作可以粗粒度或細粒度方式按功能劃分。一些情況下,如圖5A所示,按功能劃分會使得不同核運行在不同的性能或負載級別515。在功能并行方法的情況下,可以配置每個核來運行由設(shè)備的分組引擎提供的多個功能中的一個或多個功能。例如,核1可執(zhí)行設(shè)備200’的網(wǎng)絡(luò)I/O處理,同時核2執(zhí)行設(shè)備的TCP連接管理。類似地,核3可執(zhí)行SSL卸載,同時核4可執(zhí)行第7層或應(yīng)用層處理和業(yè)務(wù)管理。每個核可執(zhí)行相同或不同的功能。每個核可執(zhí)行不只一個功能。任何核可運行結(jié)合附圖2A和2B識別和/或描述的功能或其一部分。該方法中,核上的工作可以粗粒度或細粒度方式按功能劃分。一些情況下,如圖5A所示,按功能劃分會使得不同核運行在不同的性能或負載級別??梢杂萌魏谓Y(jié)構(gòu)或方案來分布功能或任務(wù)。例如,圖5B示出用于處理與網(wǎng)絡(luò)I/O功能510A相關(guān)聯(lián)的應(yīng)用和進程的第一核Corel505A。一些實施例中,與網(wǎng)絡(luò)I/O相關(guān)聯(lián)的網(wǎng)絡(luò)業(yè)務(wù)可以和特定的端口號相關(guān)聯(lián)。因而,將具有與NWI/O510A相關(guān)聯(lián)的端口目的地的發(fā)出和到來的分組導(dǎo)引給Corel505A,該Corel5055A專用于處理與NWI/O端口相關(guān)聯(lián)的所有網(wǎng)絡(luò)業(yè)務(wù)。類似的,Core2505B專用于處理與SSL處理相關(guān)聯(lián)的功能,Core4505D可專用于處理所有TCP級處理和功能。雖然圖5A示出如網(wǎng)絡(luò)I/0、SSL和TCP的功能,也可將其他功能分配給核。這些其他功能可包括此處描述的任一或多個功能或操作。例如,結(jié)合圖2A和2B描述的任何功能可基于功能基礎(chǔ)分布在核上。一些情況下,第一VIP275A可運行在第一核上,同時,具有不同配置的第二VIP275B可運行在第二核上。一些實施例中,每個核505可處理特定功能,這樣每個核505可處理與該特定功能相關(guān)聯(lián)的處理。例如,Core2505B可處理SSL卸載,同時Core4505D可處理應(yīng)用層處理和業(yè)務(wù)管理。其他實施例中,可根據(jù)任何類型或形式的數(shù)據(jù)并行機制540將工作、負載或網(wǎng)絡(luò)業(yè)務(wù)分布在核505上。一些實施例中,可由每個核對分布式數(shù)據(jù)的不同片執(zhí)行相同任務(wù)或功能來實現(xiàn)多核系統(tǒng)中的數(shù)據(jù)并行機制。一些實施例中,單個執(zhí)行線程或代碼控制對所有數(shù)據(jù)片的操作。其他實施例中,不同線程或指令控制操作,但是可執(zhí)行相同代碼。一些實施例中,從分組引擎、vServer(VIP)275A-C、網(wǎng)絡(luò)接口卡(NIC)542D-E和/或設(shè)備200上包括的或者與設(shè)備200相關(guān)聯(lián)的任何其他網(wǎng)絡(luò)硬件或軟件的角度實現(xiàn)數(shù)據(jù)并行機制。例如,每個核可運行同樣的分組引擎或VIP代碼或配置但是在不同的分布式數(shù)據(jù)集上進行操作。每個網(wǎng)絡(luò)硬件或軟件結(jié)構(gòu)可接收不同的、變化的或者基本相同量的數(shù)據(jù),因而可以具有變化的、不同的或相對相同量的負載515。在數(shù)據(jù)并行方法的情況下,可以基于VIP、NIC和/或VIP或NIC的數(shù)據(jù)流來劃分和分布工作。在這些的方法的一個中,可通過使每個VIP在分布的數(shù)據(jù)集上工作來將多核系統(tǒng)的工作劃分或者分布在VIP中。例如,可配置每個核運行一個或多個VIP。網(wǎng)絡(luò)業(yè)務(wù)可分布在處理業(yè)務(wù)的每個VIP的核上。在這些方法的又一個中,可基于哪個NIC接收網(wǎng)絡(luò)業(yè)務(wù)來將設(shè)備的工作劃分或分布在核上。例如,第一NIC的網(wǎng)絡(luò)業(yè)務(wù)可被分布到第一核,同時第二NIC的網(wǎng)絡(luò)業(yè)務(wù)可被分布給第二核。一些情況下,核可處理來自多個NIC的數(shù)據(jù)。雖然圖5A示出了與單個核505相關(guān)聯(lián)的單個vServer,正如VIP1275A、VIP2275B和VIP3275C的情況。但是,一些實施例中,單個vServer可以與一個或者多個核505相關(guān)聯(lián)。相反,一個或多個vServer可以與單個核505相關(guān)聯(lián)。將vServer與核505關(guān)聯(lián)可包括該核505處理與該特定vServer關(guān)聯(lián)的所有功能。一些實施例中,每個核執(zhí)行具有相同代碼和配置的VIP。其他實施例中,每個核執(zhí)行具有相同代碼但配置不同的VIP。一些實施例中,每個核執(zhí)行具有不同代碼和相同或不同配置的VIP。和vServer類似,NIC也可以和特定的核505關(guān)聯(lián)。許多實施例中,NIC可以連接到一個或多個核505,這樣,當NIC接收或傳輸數(shù)據(jù)分組時,特定的核505處理涉及接收和傳輸數(shù)據(jù)分組的處理。一個實施例中,單個NIC可以與單個核505相關(guān)聯(lián),正如NIClM2D和NIC2M2E的情況。其他實施例中,一個或多個NIC可以與單個核505相關(guān)聯(lián)。但其他實施例中,單個NIC可以與一個或者多個核505相關(guān)聯(lián)。這些實施例中,負載可以分布在一個或多個核505上,使得每個核505基本上處理類似的負載量。與NIC關(guān)聯(lián)的核505可以處理與該特定NIC關(guān)聯(lián)的所有功能和/或數(shù)據(jù)。雖然根據(jù)VIP或NIC的數(shù)據(jù)將工作分布在核上具有某種程度的獨立性,但是,一些實施例中,這會造成如圖5A的變化負載515所示的核的不平衡的使用。一些實施例中,可根據(jù)任何類型或形式的數(shù)據(jù)流將負載、工作或網(wǎng)絡(luò)業(yè)務(wù)分布在核505上。在這些方法的又一個中,可基于數(shù)據(jù)流將工作劃分或分布在多個核上。例如,客戶機或服務(wù)器之間的經(jīng)過設(shè)備的網(wǎng)絡(luò)業(yè)務(wù)可以被分布到多個核中的一個核并且由其處理。一些情況下,最初建立會話或連接的核可以是該會話或連接的網(wǎng)絡(luò)業(yè)務(wù)所分布的核。一些實施例中,數(shù)據(jù)流基于網(wǎng)絡(luò)業(yè)務(wù)的任何單元或部分,如事務(wù)、請求/響應(yīng)通信或來自客戶機上的應(yīng)用的業(yè)務(wù)。這樣,一些實施例中,客戶機和服務(wù)器之間的經(jīng)過設(shè)備200’的數(shù)據(jù)流可以比其他方式分布的更均衡。在基于流的數(shù)據(jù)并行機制520中,數(shù)據(jù)分布和任何類型的數(shù)據(jù)流相關(guān),例如請求/響應(yīng)對、事務(wù)、會話、連接或應(yīng)用通信。例如,客戶機或服務(wù)器之間的經(jīng)過設(shè)備的網(wǎng)絡(luò)業(yè)務(wù)可以被分布到多個核中的一個核并且由其處理。一些情況下,最初建立會話或連接的核可以是該會話或連接的網(wǎng)絡(luò)業(yè)務(wù)所分布的核。數(shù)據(jù)流的分布可以使得每個核505運行基本相等或相對均勻分布的負載量、數(shù)據(jù)量或網(wǎng)絡(luò)業(yè)務(wù)量。一些實施例中,數(shù)據(jù)流基于網(wǎng)絡(luò)業(yè)務(wù)的任何單元或部分,如事務(wù)、請求/響應(yīng)通信或源自客戶機上的應(yīng)用的業(yè)務(wù)。這樣,一些實施例中,客戶機和服務(wù)器之間的經(jīng)過設(shè)備200’的數(shù)據(jù)流可以比其他方式分布的更均衡。一個實施例中,可以基于事務(wù)或一系列事務(wù)分布數(shù)據(jù)量。一些實施例中,該事務(wù)可以是客戶機和服務(wù)器之間的,其特征可以是IP地址或其他分組標識符。例如,核1505A可專用于特定客戶機和特定服務(wù)器之間的事務(wù),因此,核1505A上的負載536A可包括與特定客戶機和服務(wù)器之間的事務(wù)相關(guān)聯(lián)的網(wǎng)絡(luò)業(yè)務(wù)??赏ㄟ^將源自特定客戶機或服務(wù)器的所有數(shù)據(jù)分組路由到核1505A來將網(wǎng)絡(luò)業(yè)務(wù)分配給核1505A。雖然可部分地基于事務(wù)將工作或負載分布到核,但是,其他實施例中,可基于每個分組的基礎(chǔ)分配負載或工作。這些實施例中,設(shè)備200可攔截數(shù)據(jù)分組并將數(shù)據(jù)分組分配給負載量最小的核505。例如,由于核1上的負載536A小于其他核505B-N上的負載536B-N,所以設(shè)備200可將第一到來的數(shù)據(jù)分組分配給核1505A。將第一數(shù)據(jù)分組分配給核1505A后,核1505A上的負載量536A與處理第一數(shù)據(jù)分組所需的處理資源量成比例增加。設(shè)備200攔截到第二數(shù)據(jù)分組時,設(shè)備200會將負載分配給核4505D,這是由于核4505D具有第二少的負載量。一些實施例中,將數(shù)據(jù)分組分配給負載量最小的核可確保分布到每個核505的負載536A-N保持基本相等。其他實施例中,將一部分網(wǎng)絡(luò)業(yè)務(wù)分配給特定核505的情況下,可以每單元為基礎(chǔ)分配負載。上述示例說明以每分組為基礎(chǔ)進行負載平衡。其他實施例中,可以基于分組數(shù)目分配負載,例如,將每10個、100個或1000個分組分配給業(yè)務(wù)量最少的核505。分配給核505的分組數(shù)量可以是由應(yīng)用、用戶或管理員確定的數(shù)目,而且可以為大于零的任何數(shù)。仍在其他實施例中,基于時間指標分配負載,使得在預(yù)定時間段將分組分布到特定核505。這些實施例中,可以在5毫秒內(nèi)或者由用戶、程序、系統(tǒng)、管理器或其他方式確定的任何時間段將分組分布到特定核505。預(yù)定時間段過去后,在預(yù)定時間段內(nèi)將時間分組傳輸給不同的核505。用于將工作、負載或網(wǎng)絡(luò)業(yè)務(wù)分布在一個或多個核505上的基于流的數(shù)據(jù)并行方法可包括上述實施例的任意組合。這些方法可以由設(shè)備200的任何部分執(zhí)行,由在核505上執(zhí)行的應(yīng)用或者一組可執(zhí)行指令執(zhí)行,例如分組引擎,或者由在與設(shè)備200通信的計算裝置上執(zhí)行的任何應(yīng)用、程序或代理執(zhí)行。圖5A所示的功能和數(shù)據(jù)并行機制計算方案可以任何方式組合,以產(chǎn)生混合并行機制或分布式處理方案,其包括功能并行機制500、數(shù)據(jù)并行機制M0、基于流的數(shù)據(jù)并行機制520或者其任何部分。一些情況下,多核系統(tǒng)可使用任何類型或形式的負載平衡方案來將負載分布在一個或多個核505上。負載平衡方案可以和任何功能和數(shù)據(jù)平行方案或其組合結(jié)合使用。圖5B示出多核系統(tǒng)M5的實施例,該系統(tǒng)可以是任何類型或形式的一個或多個系統(tǒng)、設(shè)備、裝置或組件。一些實施例中,該系統(tǒng)545可被包括在具有一個或多個處理核505A-N的設(shè)備200內(nèi)。系統(tǒng)545還可包括與存儲器總線556通信的一個或多個分組引擎(PE)或分組處理引擎(PPEM48A-N。存儲器總線可用于與一個或多個處理核505A-N通信。系統(tǒng)545還可包括一個或多個網(wǎng)絡(luò)接口卡(NIC)552和流分布器550,流分布器還可與一個或多個處理核505A-N通信。流分布器550可包括接收側(cè)調(diào)整器(ReceiverSideScaler-RSS)或接收側(cè)調(diào)整(ReceiverSideScaling-RSS)模塊560。進一步參考圖5B,具體而言,一個實施例中,分組引擎M8A-N可包括此處所述的設(shè)備200的任何部分,例如圖2A和2B所述設(shè)備的任何部分。一些實施例中,分組引擎M8A-N可包括任何下列的元件分組引擎M0、網(wǎng)絡(luò)堆棧沈7、高速緩存管理器232、策略引擎236、壓縮引擎238、加密引擎234、⑶I210,CLI212、殼服務(wù)214、監(jiān)控程序216以及能夠從數(shù)據(jù)總線556或一個或多個核505A-N中的任一個接收數(shù)據(jù)分組的其他任何軟件和硬件元件。一些實施例中,分組引擎M8A-N可包括一個或多個vServer275A-N或其任何部分。其他實施例中,分組引擎M8A-N可提供以下功能的任意組合=SSLVPN觀0、內(nèi)部網(wǎng)Π^82、交換^4、DNS觀6、分組加速觀8、APPFff觀0、如由監(jiān)控代理197提供的監(jiān)控、和作為TCP堆棧關(guān)聯(lián)的功能、負載平衡、SSL卸載和處理、內(nèi)容交換、策略評估、高速緩存、壓縮、編碼、解壓縮、解碼、應(yīng)用防火墻功能、XML處理和加速以及SSLVPN連接。一些實施例中,分組引擎M8A-N可以與特定服務(wù)器、用戶、客戶或網(wǎng)絡(luò)關(guān)聯(lián)。分組引擎548與特定實體關(guān)聯(lián)時,分組引擎548可處理與該實體關(guān)聯(lián)的數(shù)據(jù)分組。例如,如果分組引擎548與第一用戶關(guān)聯(lián),那么該分組引擎548將對由第一用戶產(chǎn)生的分組或者目的地址與第一用戶關(guān)聯(lián)的分組進行處理和操作。類似地,分組引擎548可選擇不與特定實體關(guān)聯(lián),使得分組引擎548可對不是由該實體產(chǎn)生的或目的是該實體的任何數(shù)據(jù)分組進行處理和以其他方式進行操作。一些實例中,可將分組引擎M8A-N配置為執(zhí)行圖5A所示的任何功能和/或數(shù)據(jù)并行方案。這些實例中,分組引擎M8A-N可將功能或數(shù)據(jù)分布在多個核505A-N上,從而使得分布是根據(jù)并行機制或分布方案的。一些實施例中,單個分組引擎M8A-N執(zhí)行負載平衡方案,其他實施例中,一個或多個分組弓I擎M8A-N執(zhí)行負載平衡方案。一個實施例中,每個核505A-N可以與特定分組引擎505關(guān)聯(lián),使得可以由分組引擎505執(zhí)行負載平衡。在該實施例中,負載平衡可要求與核505關(guān)聯(lián)的每個分組引擎505和與核505關(guān)聯(lián)的其他分組引擎505通信,使得分組引擎505可共同決定將負載分布在何處。該過程的一個實施例可包括從每個分組引擎505接收對于負載的投票的仲裁器。仲裁器可部分地基于引擎投票的持續(xù)時間將負載分配給每個分組引擎505,一些情況下,還可基于與在引擎關(guān)聯(lián)的核505上的當前負載量相關(guān)聯(lián)的優(yōu)先級值來將負載分配給每個分組引擎505。核上運行的任何分組引擎可以運行于用戶模式、內(nèi)核模式或其任意組合。一些實施例中,分組引擎作為在用戶空間或應(yīng)用空間中運行的應(yīng)用或程序來操作。這些實施例中,分組引擎可使用任何類型或形式的接口來訪問內(nèi)核提供的任何功能。一些實施例中,分組引擎操作于內(nèi)核模式中或作為內(nèi)核的一部分來操作。一些實施例中,分組引擎的第一部分操作于用戶模式中,分組引擎的第二部分操作于內(nèi)核模式中。一些實施例中,第一核上的第一分組引擎執(zhí)行于內(nèi)核模式中,同時,第二核上的第二分組引擎執(zhí)行于用戶模式中。一些實施例中,分組引擎或其任何部分對NIC或其任何驅(qū)動器進行操作或者與其聯(lián)合操作。一些實施例中,存儲器總線556可以是任何類型或形式的存儲器或計算機總線。雖然在圖5B中描述了單個存儲器總線556,但是系統(tǒng)545可包括任意數(shù)量的存儲器總線556。一個實施例中,每個分組引擎548可以和一個或者多個單獨的存儲器總線556相關(guān)聯(lián)。一些實施例中,NIC552可以是此處所述的任何網(wǎng)絡(luò)接口卡或機制。NIC552可具有任意數(shù)量的端口。NIC可設(shè)計并構(gòu)造成連接到任何類型和形式的網(wǎng)絡(luò)104。雖然示出單個NIC552,但是,系統(tǒng)545可包括任意數(shù)量的NIC552。一些實施例中,每個核505A-N可以與一個或多個單個NIC552關(guān)聯(lián)。因而,每個核505可以與專用于特定核505的單個NIC552關(guān)聯(lián)。核505A-N可包括此處所述的任何處理器。此外,可根據(jù)此處所述的任何核505配置來配置核505A-N。另外,核505A-N可具有此處所述的任何核505功能。雖然圖5B示出七個核505A-G,但是系統(tǒng)545可包括任意數(shù)量的核505。具體而言,系統(tǒng)545可包括N個核,其中N是大于零的整數(shù)。核可具有或使用被分配或指派用于該核的存儲器。可將存儲器視為該核的專有或本地存儲器并且僅有該核可訪問該存儲器。核可具有或使用共享的或指派給多個核的存儲器。該存儲器可被視為由不只一個核可訪問的公共或共享存儲器。核可使用專有或公共存儲器的任何組合。通過每個核的單獨的地址空間,消除了使用同一地址空間的情況下的一些協(xié)調(diào)級別。利用單獨的地址空間,核可以對核自己的地址空間中的信息和數(shù)據(jù)進行工作,而不用擔心與其他核沖突。每個分組引擎可以具有用于TCP和/或SSL連接的單獨存儲器池。仍參考圖5B,上文結(jié)合圖5A描述的核505的任何功能和/或?qū)嵤├梢圆渴鹪谏衔慕Y(jié)合圖4A和4B描述的虛擬化環(huán)境的任何實施例中。不是以物理處理器505的形式部署核505的功能,而是將這些功能部署在諸如客戶機102、服務(wù)器106或設(shè)備200的任何計算裝置100的虛擬化環(huán)境400內(nèi)。其他實施例中,不是以設(shè)備或一個裝置的形式部署核505的功能,而是將該功能部署在任何布置的多個裝置上。例如,一個裝置可包括兩個或多個核,另一個裝置可包括兩個或多個核。例如,多核系統(tǒng)可包括計算裝置的集群、服務(wù)器群或計算裝置的網(wǎng)絡(luò)。一些實施例中,不是以核的形式部署核505的功能,而是將該功能部署在多個處理器上,例如部署多個單核處理器上。一個實施例中,核505可以為任何形式或類型的處理器。一些實施例中,核的功能可以基本類似此處所述的任何處理器或中央處理單元。一些實施例中,核505可包括此處所述的任何處理器的任何部分。雖然圖5A示出7個核,但是,設(shè)備200內(nèi)可以有任意N個核,其中N是大于1的整數(shù)。一些實施例中,核505可以安裝在公用設(shè)備200內(nèi),其他實施例中,核505可以安裝在彼此通信連接的一個或多個設(shè)備200內(nèi)。一些實施例中,核505包括圖形處理軟件,而其他實施例中,核505提供通用處理能力。核505可彼此物理靠近地安裝和/或可彼此通信連接。可以用以物理方式和/或通信方式耦合到核的任何類型和形式的總線或子系統(tǒng)連接核,用于向核、從核和/或在核之間傳輸數(shù)據(jù)。每個核505可包括用于與其他核通信的軟件,一些實施例中,核管理器(未示出)可有助于每個核505之間的通信。一些實施例中,內(nèi)核可提供核管理。核可以使用各種接口機制彼此接口或通信。一些實施例中,可以使用核到核的消息傳送來在核之間通信,比如,第一核通過連接到核的總線或子系統(tǒng)向第二核發(fā)送消息或數(shù)據(jù)。一些實施例中,核可通過任何種類或形式的共享存儲器接口通信。一個實施例中,可以存在在所有核中共享的一個或多個存儲器單元。一些實施例中,每個核可以具有和每個其他核共享的單獨存儲器單元。例如,第一核可具有與第二核的第一共享存儲器,以及與第三核的第二共享存儲器。一些實施例中,核可通過任何類型的編程或API(如通過內(nèi)核的函數(shù)調(diào)用)來通信。一些實施例中,操作系統(tǒng)可識別并支持多核裝置,并提供用于核間通信的接口和API。流分布器550可以是任何應(yīng)用、程序、庫、腳本、任務(wù)、服務(wù)、進程或在任何類型或形式的硬件上執(zhí)行的任何類型和形式的可執(zhí)行指令。一些實施例中,流分布器550可以是用于執(zhí)行此處所述任何操作和功能的任何電路設(shè)計或結(jié)構(gòu)。一些實施例中,流分布器分布、轉(zhuǎn)發(fā)、路由、控制和/或管理多個核505上的數(shù)據(jù)和/或在核上運行的分組引擎或VIP的分布。一些實施例中,可將流分布器550稱為接口主裝置(interfacemaster)0一個實施例中,流分布器550包括在設(shè)備200的核或處理器上執(zhí)行的一組可執(zhí)行指令。又一個實施例中,流分布器550包括在與設(shè)備200通信的計算機器上執(zhí)行的一組可執(zhí)行指令。一些實施例中,流分布器550包括在如固件的NIC上執(zhí)行的一組可執(zhí)行指令。其他實施例,流分布器550包括用于將數(shù)據(jù)分組分布在核或處理器上的軟件和硬件的任何組合。一個實施例中,流分布器550在至少一個核505A-N上執(zhí)行,而在其他實施例中,分配給每個核505A-N的單獨的流分布器550在相關(guān)聯(lián)的核505A-N上執(zhí)行。流分布器可使用任何類型和形式的統(tǒng)計或概率算法或決策來平衡多個核上的流??梢詫⑷鏞TC的設(shè)備硬件或內(nèi)核設(shè)計或構(gòu)造成支持NIC和/或核上的順序操作。系統(tǒng)545包括一個或多個流分布器550的實施例中,每個流分布器550可以與處理器505或分組引擎548關(guān)聯(lián)。流分布器550可包括允許每個流分布器550和在系統(tǒng)545內(nèi)執(zhí)行的其他流分布器550通信的接口機制。一個實例中,一個或多個流分布器550可通過彼此通信確定如何平衡負載。該過程的操作可以基本與上述過程類似,即將投票提交給仲裁器,然后仲裁器確定哪個流分布器550應(yīng)該接收負載。其他實施例中,第一流分布器550’可識別所關(guān)聯(lián)的核上的負載并基于任何下列標準確定是否將第一數(shù)據(jù)分組轉(zhuǎn)發(fā)到所關(guān)聯(lián)的核所關(guān)聯(lián)的核上的負載大于預(yù)定閾值;所關(guān)聯(lián)的核上的負載小于預(yù)定閾值;所關(guān)聯(lián)的核上的負載小于其他核上的負載;或者可以用于部分基于處理器上的負載量來確定將數(shù)據(jù)分組轉(zhuǎn)發(fā)到何處的任何其他指標。流分布器550可以根據(jù)如此處所述的分布、計算或負載平衡方法而將網(wǎng)絡(luò)業(yè)務(wù)分布在核505上。一個實施例中,流分布器可基于功能并行機制分布方案550、數(shù)據(jù)并行機制負載分布方案M0、基于流的數(shù)據(jù)并行機制分布方案520或這些分布方案的任意組合或用于將負載分布在多個處理器上的任何負載平衡方案來分布網(wǎng)絡(luò)業(yè)務(wù)。因而,流分布器550可通過接收數(shù)據(jù)分組并根據(jù)操作的負載平衡或分布方案將數(shù)據(jù)分組分布在處理器上而充當負載分布器。一個實施例中,流分布器550可包括用于確定如何相應(yīng)地分布分組、工作或負載的一個或多個操作、函數(shù)或邏輯。又一個實施例中,流分布器550可包括可識別與數(shù)據(jù)分組關(guān)聯(lián)的源地址和目的地址并相應(yīng)地分布分組的一個或多個子操作、函數(shù)或邏輯。一些實施例中,流分布器550可包括接收側(cè)調(diào)整(RSS)網(wǎng)絡(luò)驅(qū)動器模塊560或?qū)?shù)據(jù)分組分布在一個或多個核505上的任何類型和形式的可執(zhí)行指令。RSS模塊560可以包括硬件和軟件的任意組合。一些實施例中,RSS模塊560和流分布器550協(xié)同工作以將數(shù)據(jù)分組分布在核505A-N或多處理器網(wǎng)絡(luò)中的多個處理器上。一些實施例中,RSS模塊560可在OTC552中執(zhí)行,其他實施例中,可在核505的任何一個上執(zhí)行。一些實施例中,RSS模塊560使用微軟接收側(cè)調(diào)整(RSQ方法。一個實施例中,RSS^Ι^ηΤΓΜΝ^ζ^(MicrosoftScalableNetworkinginitativetechnology),其使得系統(tǒng)中的多個處理器上的接收處理是平衡的,同時保持數(shù)據(jù)的順序傳送。RSS可使用任何類型或形式的哈希方案來確定用于處理網(wǎng)絡(luò)分組的核或處理器。RSS模塊560可應(yīng)用任何類型或形式的哈希函數(shù),如Toeplitz哈希函數(shù)。哈希函數(shù)可應(yīng)用到哈希類型值或者任何值序列。哈希函數(shù)可以是任意安全級別的安全哈?;蛘呤且云渌绞郊用?。哈希函數(shù)可使用哈希關(guān)鍵字(hashkey)。關(guān)鍵字的大小取決于哈希函數(shù)。對于Toeplitz哈希,用于IPv6的哈希關(guān)鍵字大小為40字節(jié),用于IPv4的哈希關(guān)鍵字大小為16字節(jié)??梢曰谌魏我粋€或多個標準或設(shè)計目標設(shè)計或構(gòu)造哈希函數(shù)。一些實施例中,可使用為不同的哈希輸入和不同哈希類型提供均勻分布的哈希結(jié)果的哈希函數(shù),所述不同哈希輸入和不同哈希類型包括TCP/IPv4、TCP/IPv6、IPv4和IPv6頭部。一些實施例中,可使用存在少量桶時(例如2個或4個)提供均勻分布的哈希結(jié)果的哈希函數(shù)。一些實施例中,可使用存在大量桶時(例如64個桶)提供隨機分布的哈希結(jié)果的哈希函數(shù)。在一些實施例中,基于計算或資源使用水平來確定哈希函數(shù)。在一些實施例中,基于在硬件中實現(xiàn)哈希的難易度來確定哈希函數(shù)。在一些實施例中,基于用惡意的遠程主機發(fā)送將全部哈希到同一桶中的分組的難易度來確定哈希函數(shù)。RSS可從任意類型和形式的輸入來產(chǎn)生哈希,例如值序列。該值序列可包括網(wǎng)絡(luò)分組的任何部分,如網(wǎng)絡(luò)分組的任何頭部、域或載荷或其一部分。一些實施例中,可將哈希輸入稱為哈希類型,哈希輸入可包括與網(wǎng)絡(luò)分組或數(shù)據(jù)流關(guān)聯(lián)的任何信息元組,例如下面的類型包括至少兩個IP地址和兩個端口的四元組、包括任意四組值的四元組、六元組、二元組和/或任何其他數(shù)字或值序列。以下是可由RSS使用的哈希類型示例-源TCP端口、源IPv4地址、目的TCP端口和目的IPv4地址的四元組。這是要支持的唯一必需的哈希類型。-源TCP端口、源IP版本6(IPv6)地址、目的TCP端口和目的IPv6地址的四元組。-源IPv4地址和目的IPv4地址的二元組。-源IPv6地址和目的IPv6地址的二元組。-源IPv6地址和目的IPv6地址的二元組,包括對解析IPv6擴展頭部的支持。哈希結(jié)果或其任何部分可用于識別用于分布網(wǎng)絡(luò)分組的核或?qū)嶓w,如分組引擎或Vipo一些實施例中,可向哈希結(jié)果應(yīng)用一個或者多個哈希位或掩碼。哈希位或掩碼可以是任何位數(shù)或字節(jié)數(shù)。NIC可支持任意位,例如7位。網(wǎng)絡(luò)堆??稍诔跏蓟瘯r設(shè)定要使用的實際位數(shù)。位數(shù)介于1和7之間,包括端值。可通過任意類型和形式的表用哈希結(jié)果來識別核或?qū)嶓w,例如通過桶表(buckettable)或間接表(indrectiontable)。一些實施例中,用哈希結(jié)果的位數(shù)來索引表。哈希掩碼的范圍可有效地限定間接表的大小。哈希結(jié)果的任何部分或哈希結(jié)果自身可用于索引間接表。表中的值可標識任何核或處理器,例如通過核或處理器標識符來標識。一些實施例中,表中標識多核系統(tǒng)的所有核。其他實施例中,表中標識多核系統(tǒng)的一部分核。間接表可包括任意多個桶,例如2到1個桶,可以用哈希掩碼索引這些桶。每個桶可包括標識核或處理器的索引值范圍。一些實施例中,流控制器和/或RSS模塊可通過改變間接表來重新平衡網(wǎng)絡(luò)負載。一些實施例中,多核系統(tǒng)575不包括RSS驅(qū)動器或RSS模塊560。在這些實施例的一些中,軟件操控模塊(未示出)或系統(tǒng)內(nèi)RSS模塊的軟件實施例可以和流分布器550共同操作或者作為流分布器陽0的一部分操作,以將分組引導(dǎo)到多核系統(tǒng)575中的核505。一些實施例中,流分布器550在設(shè)備200上的任何模塊或程序中執(zhí)行,或者在多核系統(tǒng)575中包括的任何一個核505和任一裝置或組件上執(zhí)行。一些實施例中,流分布器550,可在第一核505A上執(zhí)行,而在其他實施例中,流分布器550”可在OTC552上執(zhí)行。其他實施例中,流分布器550’的實例可在多核系統(tǒng)575中包括的每個核505上執(zhí)行。該實施例中,流分布器550’的每個實例可和流分布器550’的其他實例通信以在核505之間來回轉(zhuǎn)發(fā)分組。存在這樣的狀況,其中,對請求分組的響應(yīng)不是由同一核處理的,即第一核處理請求,而第二核處理響應(yīng)。這些情況下,流分布器550’的實例可以攔截分組并將分組轉(zhuǎn)發(fā)到期望的或正確的核505,即流分布器550’可將響應(yīng)轉(zhuǎn)發(fā)到第一核。流分布器550’的多個實例可以在任意數(shù)量的核505或核505的任何組合上執(zhí)行。流分布器可以響應(yīng)于任一個或多個規(guī)則或策略而操作。規(guī)則可識別接收網(wǎng)絡(luò)分組、數(shù)據(jù)或數(shù)據(jù)流的核或分組處理引擎。規(guī)則可識別和網(wǎng)絡(luò)分組有關(guān)的任何類型和形式的元組信息,例如源和目的IP地址以及源和目的端口的四元組。基于所接收的匹配規(guī)則所指定的元組的分組,流分布器可將分組轉(zhuǎn)發(fā)到核或分組引擎。一些實施例中,通過共享存儲器和/或核到核的消息傳輸將分組轉(zhuǎn)發(fā)到核。雖然圖5B示出了在多核系統(tǒng)575中執(zhí)行的流分布器550,但是,一些實施例中,流分布器550可執(zhí)行在位于遠離多核系統(tǒng)575的計算裝置或設(shè)備上。這樣的實施例中,流分布器550可以和多核系統(tǒng)575通信以接收數(shù)據(jù)分組并將分組分布在一個或多個核505上。一個實施例中,流分布器550接收以設(shè)備200為目的地的數(shù)據(jù)分組,向所接收的數(shù)據(jù)分組應(yīng)用分布方案并將數(shù)據(jù)分組分布到多核系統(tǒng)575的一個或多個核505。一個實施例中,流分布器550可以被包括在路由器或其他設(shè)備中,這樣路由器可以通過改變與每個分組關(guān)聯(lián)的元數(shù)據(jù)而以特定核505為目的地,從而每個分組以多核系統(tǒng)575的子節(jié)點為目的地。這樣的實施例中,可用CISCO的vn-tag機制來改變或標記具有適當元數(shù)據(jù)的每個分組。圖5C示出包括一個或多個處理核505A-N的多核系統(tǒng)575的實施例。簡言之,核505中的一個可被指定為控制核505A并可用作其他核505的控制平面570。其他核可以是次級核,其工作于數(shù)據(jù)平面,而控制核提供控制平面。核505A-N共享全局高速緩存580。控制核提供控制平面,多核系統(tǒng)中的其他核形成或提供數(shù)據(jù)平面。這些核對網(wǎng)絡(luò)業(yè)務(wù)執(zhí)行數(shù)據(jù)處理功能,而控制核提供對多核系統(tǒng)的初始化、配置和控制。仍參考圖5C,具體而言,核505A-N以及控制核505A可以是此處所述的任何處理器。此外,核505A-N和控制核505A可以是能在圖5C所述系統(tǒng)中工作的任何處理器。另夕卜,核505A-N可以是此處所述的任何核或核組??刂坪丝梢允桥c其他核不同類型的核或處理器。一些實施例中,控制核可操作不同的分組引擎或者具有與其他核的分組引擎配置不同的分組引擎。每個核的存儲器的任何部分可以被分配給或者用作核共享的全局高速緩存。簡而言之,每個核的每個存儲器的預(yù)定百分比或預(yù)定量可用作全局高速緩存。例如,每個核的每個存儲器的50%可用作或分配給共享全局高速緩存。也就是說,所示實施例中,除了控制平面核或核1以外的每個核的2GB可用于形成^GB的共享全局高速緩存。例如通過配置服務(wù)而配置控制平面可確定用于共享全局高速緩存的存儲量(theamountofmemeory)0一些實施例中,每個核可提供不同的存儲量供全局高速緩存使用。其他實施例中,任一核可以不提供任何存儲器或不使用全局高速緩存。一些實施例中,任何核也可具有未分配給全局共享存儲器的存儲器中的本地高速緩存。每個核可將網(wǎng)絡(luò)業(yè)務(wù)的任意部分存儲在全局共享高速緩存中。每個核可檢查高速緩存來查找要在請求或響應(yīng)中使用的任何內(nèi)容。任何核可從全局共享高速緩存獲得內(nèi)容以在數(shù)據(jù)流、請求或響應(yīng)中使用。全局高速緩存580可以是任意類型或形式的存儲器或存儲元件,例如此處所述的任何存儲器或存儲元件。一些實施例中,核505可訪問預(yù)定的存儲量(即32GB或者與系統(tǒng)575相當?shù)娜魏纹渌鎯α?。全局高速緩存580可以從預(yù)定的存儲量分配而來,同時,其余的可用存儲器可在核505之間分配。其他實施例中,每個核505可具有預(yù)定的存儲量。全局高速緩存580可包括分配給每個核505的存儲量。該存儲量可以字節(jié)為單位來測量,或者可用分配給每個核505的存儲器百分比來測量。因而,全局高速緩存580可包括來自與每個核505關(guān)聯(lián)的存儲器的IGB存儲器,或者可包括和每個核505關(guān)聯(lián)的存儲器的20%或一半。一些實施例,只有一部分核505提供存儲器給全局高速緩存580,而在其他實施例,全局高速緩存580可包括未分配給核505的存儲器。每個核505可使用全局高速緩存580來存儲網(wǎng)絡(luò)業(yè)務(wù)或緩存數(shù)據(jù)。一些實施例中,核的分組引擎使用全局高速緩存來緩存并使用由多個分組引擎所存儲的數(shù)據(jù)。例如,圖2A的高速緩存管理器和圖2B的高速緩存功能可使用全局高速緩存來共享數(shù)據(jù)以用于加速。例如,每個分組引擎可在全局高速緩存中存儲例如HTML數(shù)據(jù)的響應(yīng)。操作于核上的任何高速緩存管理器可訪問全局高速緩存來將高速緩存響應(yīng)提供給客戶請求。一些實施例中,核505可使用全局高速緩存580來存儲端口分配表,其可用于部分基于端口確定數(shù)據(jù)流。其他實施例中,核505可使用全局高速緩存580來存儲地址查詢表或任何其他表或列表,流分布器可使用這些表來確定將到來的數(shù)據(jù)分組和發(fā)出的數(shù)據(jù)分組導(dǎo)向何處。一些實施例中,核505可以讀寫高速緩存580,而其他實施例中,核505僅從高速緩存讀或者僅向高速緩存寫。核可使用全局高速緩存來執(zhí)行核到核通信??梢詫⑷指咚倬彺?80劃分成各個存儲器部分,其中每個部分可專用于特定核505。一個實施例中,控制核505A可接收大量的可用高速緩存,而其他核505可接收對全局高速緩存580的變化的訪問量。一些實施例中,系統(tǒng)575可包括控制核505A。雖然圖5C將核1505A示為控制核,但是,控制核可以是設(shè)備200或多核系統(tǒng)中的任何一個核。此外,雖然僅描述了單個控制核,但是,系統(tǒng)575可包括一個或多個控制核,每個控制核對系統(tǒng)有某種程度的控制。一些實施例中,一個或多個控制核可以各自控制系統(tǒng)575的特定方面。例如,一個核可控制決定使用哪種分布方案,而另一個核可確定全局高速緩存580的大小。多核系統(tǒng)的控制平面可以是將一個核指定并配置成專用的管理核或者作為主核??刂破矫婧丝蓪Χ嗪讼到y(tǒng)中的多個核的操作和功能提供控制、管理和協(xié)調(diào)??刂破矫婧丝蓪Χ嗪讼到y(tǒng)中的多個核上存儲器系統(tǒng)的分配和使用提供控制、管理和協(xié)調(diào),這包括初始化和配置存儲器系統(tǒng)。一些實施例中,控制平面包括流分布器,用于基于數(shù)據(jù)流控制數(shù)據(jù)流到核的分配以及網(wǎng)絡(luò)分組到核的分配。一些實施例中,控制平面核運行分組引擎,其他實施例中,控制平面核專用于系統(tǒng)的其他核的控制和管理??刂坪?05A可對其他核505進行某種級別的控制,例如,確定將多少存儲器分配給每個核505,或者確定應(yīng)該指派哪個核來處理特定功能或硬件/軟件實體。一些實施例中,控制核505A可以對控制平面570中的這些核505進行控制。因而,控制平面570之外可存在不受控制核505A控制的處理器。確定控制平面570的邊界可包括由控制核505A或系統(tǒng)575中執(zhí)行的代理維護由控制核505A控制的核的列表??刂坪?05A可控制以下的任一個核初始化、確定核何時不可用、一個核出故障時將負載重新分配給其他核505、決定實現(xiàn)哪個分布方案、決定哪個核應(yīng)該接收網(wǎng)絡(luò)業(yè)務(wù)、決定應(yīng)該給每個核分配多少高速緩存、確定是否將特定功能或元件分布到特定核、確定是否允許核彼此通信、確定全局高速緩存580的大小以及對系統(tǒng)575內(nèi)的核的功能、配置或操作的任何其他確定。F、ffl〒《TM個&細誠圖6A顯示了多核系統(tǒng)545的一個實施例。在大多數(shù)實施例中,該系統(tǒng)545可以包括一個或多個可以執(zhí)行或包括RSS模塊560的網(wǎng)絡(luò)接口卡(NIC)552。NIC552可以與一個或多個核505通信,其中,每個核都可以執(zhí)行分組引擎548和/或流分布器550。在一些實施例中,NIC552可以存儲一個或多個端口分配表604并且可以包括一個或多個端口632和一個或多個互聯(lián)網(wǎng)協(xié)議(IP)地址630。繼續(xù)參考圖6A,更詳細地,在一個實施例中,多核系統(tǒng)545可以是此處描述的任何多核系統(tǒng)討5。特別地,多核系統(tǒng)545可以是圖5B-5C中描述的任何多核系統(tǒng)M5。所述多核系統(tǒng)545可以在設(shè)備200、客戶機、服務(wù)器或執(zhí)行此處描述的多核系統(tǒng)545的任何其他計算機器上執(zhí)行。圖6A所示的多核系統(tǒng)545包括多個核505和NIC552,在一些實施例中,多核系統(tǒng)545可以包括額外的裝置并且可以執(zhí)行額外的程序、客戶機和模塊。在一個實施例中,多核系統(tǒng)545可以包括NIC552,例如此處描述的任何NIC。雖然圖6A顯示的多核系統(tǒng)545描述了包括單個NIC552的多核系統(tǒng)M5,但是,在一些實施例中,多核系統(tǒng)545可以具有一個或多個NIC552。這些MC552可以是相同類型的NIC552,并且在其他實施例中可以是不同類型的NIC552。NIC552可以與多核系統(tǒng)M5的處理核505中的一個或多個通信。例如,NIC552可以與第一核505A、第二核505B、第三核505C、第四核505D、第五核505E、第六核505F、第七核505G以及任意第“N”個核505N中的每一個通信,其中“N”是大于0的整數(shù)。在其他實施例中,NIC552可以與單核505或核505的子集通信。例如,NIC552可以與第一核505A或核1到4505A-50OT通信。在多核系統(tǒng)545包括多個NIC552的實施例中,每個NIC552能夠與一個或多個核505通信。例如,第一NIC552能夠與核1到4505A-505D通信,而第二NIC552能夠與核5到7505E-505G通信。在多核系統(tǒng)545包括多個NIC552的其他實施例中,一個或多個NIC552能夠與核505通信,而其他OTC552能夠執(zhí)行替代功能,與多核系統(tǒng)545中的其他系統(tǒng)或裝置通信,或具有冗余NIC552的功能,冗余NIC552作為當主NIC552出現(xiàn)故障時的備份。在一些實施例中,NIC552執(zhí)行諸如此處描述的任一RSS模塊560。RSS模塊560對包括下述的任意組合的元組或值的序列應(yīng)用哈希函數(shù)客戶機IP地址;客戶機端口;目的IP地址;目的端口;或任何其他與數(shù)據(jù)分組的源或目的地相關(guān)的值。在一些實施例中,對該元組應(yīng)用哈希函數(shù)產(chǎn)生的結(jié)果值識別多核系統(tǒng)討5中的核505。RSS模塊560能夠使用哈希函數(shù)的這個性質(zhì)來在多核系統(tǒng)討5中的多個核505上分布分組。通過在多核系統(tǒng)545中的多個核505上分布分組,RSS模塊560能夠以大體上與基于流的數(shù)據(jù)并行機制相似的方式在多個核505上均勻地分布網(wǎng)絡(luò)業(yè)務(wù)。多核系統(tǒng)545中的核505可以是此處描述的任何核505。在一個實施例中,多核系統(tǒng)545可以包括任意“N”個核,其中“N”為大于0的整數(shù)。在其他實施例中,多核系統(tǒng)M5可以包括八個核。核505可以專用于處理執(zhí)行某些功能的程序或服務(wù),并且在一些實施例中,可以專用于處理由某些裝置或程序模塊接收或發(fā)送的數(shù)據(jù)分組。在一些實施例中,每個核505都可以執(zhí)行下述任意分組引擎M8,例如此處描述的任一分組引擎M8,或流分布器550,例如此處描述的任一流分布器550。在其他實施例中,每個核505都在關(guān)聯(lián)的存儲庫中存儲下述任意端口分配表;核505的端口的列表;或者核505的IP地址列表。在一個實施例中,每個核505執(zhí)行諸如此處描述的任一vServer的分組引擎M8A-N。分組引擎M8A-N可以被包括在每個核505中,并且分組引擎M8A-N可以統(tǒng)稱為分組引擎M8。在一些實施例中,分組引擎548根據(jù)由每個分組引擎548執(zhí)行的流分布規(guī)則來改變或修改數(shù)據(jù)分組的元組。在一個實施例中,分組引擎548將由分組引擎548接收的數(shù)據(jù)分組的元組中的客戶機IP地址替換為其上執(zhí)行該分組引擎M8的核505的IP地址630A-B。在又一個實施例中,分組引擎548將由分組引擎548接收的數(shù)據(jù)分組的元組中的客戶機端口替換為其上執(zhí)行該分組引擎M8的核505的多個端口632A-B中選出的端口632A-B。在其他實施例中,分組引擎548保持數(shù)據(jù)分組的所有方面,包括數(shù)據(jù)分組的元組的內(nèi)容。在一些實施例中,分組引擎548與一個或多個服務(wù)器106通信,以將接收到的去往服務(wù)器106的數(shù)據(jù)分組轉(zhuǎn)發(fā)到那些服務(wù)器106。相似地,在一些實施例中,分組引擎548與一個或多個客戶機102通信,以將接收到的去往客戶機102的數(shù)據(jù)分組轉(zhuǎn)發(fā)到那些客戶機102。在一些實施例中,每個核505訪問分配給每個核505的存儲庫,或訪問對多核系統(tǒng)討5中所有核505都可用的共享存儲庫。在一個實施例中,端口分配604A-N存儲在或者共享的或者分配給特定核505的存儲庫中。單核505能夠具有一個或多個端口分配表604A-N(統(tǒng)稱為端口分配表604),其中每個端口分配表604列出了在特定的核505A上的可用的和不可用的端口。在一個實施例中,核505可以具有一個端口分配表604,而在其他實施例中,核505可以具有64或256個端口分配表604。例如,核1505A上的端口分配表A604A能夠存儲指示核1505A上每個端口632A-B的狀態(tài)的記錄。每個端口632A-B的狀態(tài)可以包括任何如下特性該端口是打開還是關(guān)閉;該端口是否已經(jīng)被分配,即該端口是否可用或不可用;該端口是否在預(yù)分配范圍中;以及該端口的任何其他的相關(guān)的特性。這樣,如果核1505A上的分組引擎AM8A想確定特定的端口是否打開和/或可用,分組引擎AM8A可以查詢端口分配表A604A來確定所需的端口是否打開和/或可用。在核505具有多個端口分配表604的情況下,每個端口分配表可以與值或其他唯一標識符關(guān)聯(lián)。在一個實施例中,每個端口分配表604具有標識值,所述標識值可以通過對數(shù)據(jù)分組的元組的部分應(yīng)用哈希函數(shù)來確定。所以,此處描述的任何哈希都可以由分組引擎548或流分布器550應(yīng)用到客戶機IP地址、客戶機端口、目的IP地址和/或目的端口的任意組合來為該數(shù)據(jù)分組確定唯一的值。該唯一值進而識別核505上的端口分配表604。例如,如果核2505B上的分組引擎M8B想將端口分配給接收到的數(shù)據(jù)分組,該分組引擎M8B首先對數(shù)據(jù)分組中的識別的客戶機IP地址和目的IP地址應(yīng)用哈希?;诠5慕Y(jié)果,分組引擎M8B從核2505B上的一個或多個端口分配表604中選擇端口分配表604,并且基于對所選擇的端口分配表604的檢查來選擇端口632C-D。在一些實施例中,基于對核505的端口632做出的改變、或基于將端口632分配給數(shù)據(jù)分組或事務(wù),端口分配表604可以由分組引擎M8、流分布器550或其他程序、服務(wù)或裝置動態(tài)改變。在一個實施例中,當端口的一部分被分配給核505中的特定的端口分配表604或分配給特定的核505時,該端口分配表604被更新以反映該分配。該更新可以是更新受影響的端口632的記錄以反映該分配,或者更新受影響的端口632以列出端口632,其中該部分的端口632列為打開、所有其他端口632列為關(guān)閉。在其他實施例中,一旦端口被分配給兩個計算機器之間的數(shù)據(jù)分組或事務(wù),通過將被分配的端口列為關(guān)閉或不可用并且在某些情況下通過識別數(shù)據(jù)分組或事務(wù),來更新端口分配表604以反映該分配。在一些實施例中,每個核505可以有一個或多個端口632(統(tǒng)稱為端口63。盡管圖6A顯示每個核505具有兩個端口632,但是每個核505可以包括多個端口632,即幾百個端口632并且在某些情況下幾千個或幾百萬個端口632。在大多數(shù)實施例中,通過唯一值或數(shù)字標識端口632。將數(shù)據(jù)分組或事務(wù)分配給端口632可以包括更新該數(shù)據(jù)分組或事務(wù)的數(shù)據(jù)分組的頭部以反映與被分配的端口632相關(guān)聯(lián)的唯一值或數(shù)字。在許多實施例中,端口632在每個核505的端口分配表604內(nèi)被跟蹤。雖然每個核505都可以有其自己的一組端口632,但與每個端口632關(guān)聯(lián)的值或數(shù)字可以在每個核505上重復(fù)。例如,核3505C可以具有端口1到3000,而核5505E也可以具有端口1到3000。在核3505C和核5505E中的每個端口的唯一性源于下面的事實核3505C的端口與專用于核3505C的一個或多個IP地址相關(guān)聯(lián),核5505E的端口與專用于核5505E的一個或多個IP地址相關(guān)聯(lián)。相似地,在大多數(shù)實施例中,每個核505具有一個或多個IP地址630A-B。雖然圖6A顯示每個核505具有兩個IP地址630(統(tǒng)稱為IP地址630,),但是每個核505可以具有任意“N”個IP地址630,其中“N”為大于0的整數(shù)。在一些實施例中,核505的IP地址630由管理員、應(yīng)用或在多核系統(tǒng)545中執(zhí)行的其他服務(wù)或程序預(yù)分配。在其他實施例中,一組或一個范圍內(nèi)的IP地址630被分配給每個核505。在其他實施例中,同一IP地址630被分配給每個核505。在大多數(shù)實施例中,該IP地址630為所述多核系統(tǒng)M5的IP地址。在一個實施例中,第一核505可以執(zhí)行流分布器550。所述流分布器550可以是此處描述的任何流分布器陽0。雖然在圖6A顯示的多核系統(tǒng)M5中,流分布器550在第一核505上執(zhí)行,但是每個核505都可以執(zhí)行專用于該核505的流分布器550的實例。如果流分布器550在單核505上執(zhí)行,可以認為該核是控制核。對于RSS模塊560被包括在多核系統(tǒng)M5中的一些實施例,系統(tǒng)545可能不包括流分布器550。如圖6B所示為對多核系統(tǒng)M5的核505中的至少一個的詳細描述。核505N可以是多核系統(tǒng)討5中“N”個核中的任意一個,其中“N”為大于0的整數(shù)。核505N可以包括流分布器550、分組引擎548N、一個或多個端口分配表604和一個或多個IP地址630。分組引擎M8N可以執(zhí)行分段模塊650,分段模塊650可以進一步訪問分段表655,分段表655可以由分組引擎M8N和分段模塊650訪問。每個端口分配表604可以存儲或跟蹤一個或多個端口632。進一步參考圖6B,更詳細地,在一個實施例中,多核系統(tǒng)545可以是任何上述的多核系統(tǒng)M5。相似地,核505可以是任何上述的核505。在一個實施例中,多核系統(tǒng)M5中的核505中的每一個都包括圖6B中描述的核505的元素。在其他實施例中,多核系統(tǒng)545的核505包括圖6B中描述的核505的元素的組合。在一個實施例中,核505可以執(zhí)行流分布器550或流分布器550的實例。在一些實施例中,核505可以執(zhí)行流分布器550的多個實例。流分布器550可以是此處描述的任何流分布器550。在其他實施例中,核505不執(zhí)行或包括流分布器550或流分布器550的實例。在這些實施例中,核505能夠通過分組引擎M8N或在核505上執(zhí)行的另一個程序或模塊,與在多核系統(tǒng)M5中的另一個核505或另一個裝置上執(zhí)行的流分布器550通信。核505可以訪問或以其他方式與上述多個端口分配表604關(guān)聯(lián)。在一個實施例中,核505可以訪問單個端口分配表,而在其他實施例中,核505可以訪問“N”個端口分配表,其中“N”為大于0的整數(shù)。所述端口分配表604可以是任一此處描述的端口分配表604。雖然圖6A-6B描述了端口分配表,但是在其他實施例中,每個核505都可以訪問包括可用和不可用端口的端口列表。在其他實施例中,每個核505可以訪問存儲關(guān)于核505的每個端口632的可用性信息的存儲庫。在大多數(shù)實施例中,端口分配表604跟蹤核505的端口632的特性。端口分配表604可以跟蹤在多核系統(tǒng)545的或核505的所有本地IP地址上,哪個端口是可用的、打開或空閑的。在許多實施例中,端口632可以是任意此處描述的端口,并且可以是任意端口。在一些實施例中,端口632與特定的端口分配表604關(guān)聯(lián)。例如,端口分配表A604A跟蹤端口I-N632A-N,而端口分配表B604B跟蹤端口1_N632A-N。在每一種情況下,由端口分配表跟蹤的端口632專用于該端口分配表。所以,雖然所述端口632可能是相同的數(shù)字,由端口分配表A604A跟蹤的端口632是專用于端口分配表A604A的,而由端口分配表B604B跟蹤的端口632是專用于端口分配表B604B的。每個端口的專一性是由被分配給端口的數(shù)據(jù)分組的元組的特性決定的。例如,第一數(shù)據(jù)分組具有第一元組,第一元組具有第一客戶機IP地址和第一目的地址。第二數(shù)據(jù)分組具有與所述第一元組不同的第二元組,第二元組包括不同的客戶機IP地址和不同的目的地址中的一個或全部,即第二客戶機IP地址和第二目的地址。雖然第一數(shù)據(jù)分組和第二數(shù)據(jù)分組都可以被分配相同的端口號;但是,所述第一數(shù)據(jù)分組能夠與第一客戶機IP地址和/或第一目的地址對應(yīng)的端口分配表604關(guān)聯(lián)。相似地,所述第二數(shù)據(jù)分組能夠與第二客戶機IP地址和/或第二目的地址對應(yīng)的端口分配表604關(guān)聯(lián)。在一些實施例中,端口分配表604或端口分配表的一部分可以存儲在遠離多核系統(tǒng)545的計算裝置或存儲庫中。端口分配表604可以存儲在位于多核系統(tǒng)545外部的設(shè)備、計算機器或存儲庫中。當端口分配表604位于多核系統(tǒng)545外部時,計算機器、裝置或在該計算機器、裝置上或在存儲庫內(nèi)執(zhí)行的程序或代理能夠與多核系統(tǒng)545通信。一旦建立遠程端口分配表604與多核系統(tǒng)545之間的通信,多核系統(tǒng)545中的分組引擎548就能夠以與分組引擎548查詢和更新本地端口分配表604大體相似的方式來查詢并更新遠程端口分配表604。在一些實施例中,多核系統(tǒng)M5中的每個核505都包括一個或多個IP地址630A-N(統(tǒng)稱為IP地址630)。IP地址630可以是任意IP地址或地址,并且可以是此處描述的任意IP地址630。在一個實施例中,每個端口分配表604都可以與特定的IP地址630關(guān)聯(lián)。在一些實施例中,這個IP地址630可以是代理或啞IP地址,例如0.0.0.1。相似地,在一些實施例中,該多核系統(tǒng)M5的該核505可以與特定的IP地址630或IP地址范圍關(guān)聯(lián)。在一些實施例中,分組引擎M8N執(zhí)行或包括分段模塊650。此外,在一些實施例中,分組引擎M8N能夠訪問存儲在多核系統(tǒng)545的存儲器中的分段表655。在一些實施例中,分段模塊650輸入數(shù)據(jù)分組分段并且應(yīng)用分段動作。在分段動作為“組裝”的實施例中,分段模塊650組裝數(shù)據(jù)分組分段以重新生成或重新創(chuàng)建數(shù)據(jù)分組。在分段動作為“橋接”的其他實施例中,分段模塊650將每個數(shù)據(jù)分組分段發(fā)送到不同的核505,以重組成為原始數(shù)據(jù)分組。在一些實施例中,不論分段動作是“組裝”還是“橋接”,分段模塊650都組裝數(shù)據(jù)分組分段以重新生成或重新創(chuàng)建數(shù)據(jù)分組。在一些實施例中,分段動作可以指定任意下述動作組裝數(shù)據(jù)分組分段的端口并且橋接剩余的分段;在橋接數(shù)據(jù)分組分段前標記它們;只組裝具有預(yù)先設(shè)置的特征集的那些數(shù)據(jù)分組分段;只組裝數(shù)據(jù)分組的頭部,并且將數(shù)據(jù)分組分段的其余部分發(fā)送到不同的核505以重組。在一個實施例中,分段模塊650部分基于是否創(chuàng)建了策略控制塊(pcb)或NAT策略控制塊(natpcb)來確定分段動作。當存在pcb或natpcb之一時,接收被分段的數(shù)據(jù)分組的分組引擎548或流分布器550首先確定該數(shù)據(jù)分組分段的目的核。將要對數(shù)據(jù)分組分段應(yīng)用的分段動作可以部分基于多核系統(tǒng)545和發(fā)起數(shù)據(jù)分組分段的計算機器之間的連接類型來確定。在一些實施例中,確定分段動作包括進行pcb、natpcb、分段規(guī)則、RNAT和服務(wù)查找。在一個實施例中,接收數(shù)據(jù)分組分段的分組引擎或流分布器將被確定的分段動作轉(zhuǎn)發(fā)到在目的核上執(zhí)行的分組引擎或流分布器。這樣,當數(shù)據(jù)分組分段被發(fā)送到所述目的核后,可以將該分段動作應(yīng)用于數(shù)據(jù)分組分段。在其他實施例中,當存在pcb或natpcb之一時,接收被分段的數(shù)據(jù)分組的分組引擎548或流分布器550首先將該數(shù)據(jù)分組分段組裝到重組的數(shù)據(jù)分組中,直到有完整的分組頭部可用為止。然后確定該數(shù)據(jù)分組分段的目的核。如果接收了數(shù)據(jù)分組分段的核不是目的核,那么,該接收核上的分組引擎或流分布器進行natpcb/pcb查找,直到確定分段動作為止。在所述接收核為目的核的實施例中,接收核上的分組引擎進行服務(wù)和RNAT查找以確定分段動作。在許多實施例中,當接收核不是目的核時,所述接收核可以確定分段動作并且將指示正確的分段動作的消息發(fā)送到目的核,。在一個實施例中,接收核上的分組引擎將所述分段動作隨下述值一起發(fā)送源IP地址;目的IP地址;源端口和目的端口。被確定的分段動作可以存儲在分段表655中。在一些實施例中,當目的核接收分段動作時,目的核上的分組引擎或流分布器可以將分段動作存儲在分段表655中。分段動作可以隨任何下述標識信息一起存儲客戶機IP地址;源IP地址;目的IP地址;源端口;客戶機端口;或目的端口。在一些實施例中,當接收到的數(shù)據(jù)分組分段為UDP分段時,基于二元組哈希每個數(shù)據(jù)分組。該二元組可以包括任意下述值客戶機IP地址;源IP地址;目的IP地址;源端口;客戶機端口;或目的端口??梢愿鶕?jù)上述任何方法來進行對分段動作的確定以及對目的核的確定。數(shù)據(jù)分組、網(wǎng)絡(luò)業(yè)務(wù)或請求和響應(yīng)的分布可以由此處描述的任何并行計算方案實現(xiàn)。在一個實施例中,網(wǎng)絡(luò)業(yè)務(wù)分布可以基于對稱流分布??梢允褂肨o印Iitz哈希或任何可比哈希(comparablehash)實現(xiàn)對稱流分布以為由多核系統(tǒng)545接收的每個數(shù)據(jù)分組確定目的核。在一些實施例中,對稱流分布哈?;?qū)ΨQ哈希分布(SHD)與由RSS模塊560使用的哈希大體上相同。所述哈希的操作為輸入字節(jié)流,例如元組或值的序列,并且為RSS模塊560內(nèi)部的RSS驅(qū)動器提供可用于哈希計算的關(guān)鍵字。這樣,當“N”個字節(jié)的數(shù)組輸入到哈希函數(shù)中時,該字節(jié)流可以被識別為inputinput[1]input[2]...input[N_l];其中最左邊的字節(jié)為input,最左邊的位為input的最高有效位,其中最右邊的字節(jié)為input[N-I],最右邊的位為input[N-I]的最低有效位。在一些實施例中,所述哈??梢愿鶕?jù)下述關(guān)系操作對于所有的直到“N”的輸入,計算對于input[]中從左到右的每個位“B”,如果“B”等于1,那么(“結(jié)果”Λ=(K的最左邊32位))并且將K左移1位位置,然后返回“結(jié)甲”ο在一些實施例中,所述哈希根據(jù)下述方程或關(guān)系被分布在XOR運算上,Hash(AxorB)=Hash(A)xorHash(B)。在其他實施例中,所述哈??梢苑植荚谌魏芜壿嬤\算上,例如NAND;NOR、OR、AND或在此處描述的方法和系統(tǒng)中的任何其他邏輯運算功能。輸入到所述哈希中的該元組或值的序列可以是任意下述值的串聯(lián)客戶機IP地址;源IP地址;目的IP地址;本地IP地址;啞IP地址;分配的IP地址;設(shè)備IP地址;客戶機端口;源端口;目的端口;本地端口;虛擬端口;分配的端口;設(shè)備端口;或任何其他IP地址或端口。在一些實施例中,該元組的順序以下述方式保持,即該元組為客戶機IP地址、客戶機端口、目的IP地址和目的端口的串聯(lián)。該元組可以包括兩個、四個、六個或任意個值。另外,該元組可以包括任何類型的值,即數(shù)字的、二進制的、三進制的、字母的或字母數(shù)字的。下面是在不同版本的互聯(lián)網(wǎng)協(xié)議中以及當使用TCP或UDP時如何應(yīng)用哈希的例子。這些例子旨在說明應(yīng)用所述哈希,并不意味著限制其范圍。例子1-IPV4:TCP/UDP在這個例子中,該元組包括下述值的串聯(lián)源地址;目的地址;源端口;和目的端口。從而該元組或輸入字符串的特點可以以下述關(guān)系表示INPUT[12]=il2-15,il6-19,020-21,022-23。記錄n_m識別字節(jié)范圍,即η=12,m=15,@12_15。將哈希應(yīng)用到該輸入字符串由下述公式表征HashResult=ComputeHash(Input,12)例子2-IPV4其他在這個例子中,該元組包括下述值的串聯(lián)源地址;和目的地址。從而該元組或輸入字符串的特點可以以下述關(guān)系表示INPUT[8]=012-15,016-19。記錄n_m識別字節(jié)范圍,即η=12,m=15,@12-15。將哈希應(yīng)用到該輸入字符串由下述公式表征HashResult=ComputeHash(Input,8)例子3-IPV6:TCP/UDP在這個例子中,該元組包括下述值的串聯(lián)源地址;目的地址;源端口;和目的端口。從而該元組或輸入字符串的特點可以以下述關(guān)系表示INPUT[36]=§8-23,§24-39,040-41,042-43。記錄@n_m識別字節(jié)范圍,即η=8,m=23,@8_23。將哈希應(yīng)用到該輸入字符串由下述公式表征HashResult=ComputeHash(Input,36)例子4-IPV6其他在這個例子中,該元組包括下述值的串聯(lián)源地址;和目的地址。從而該元組或輸入字符串的特點可以以下述關(guān)系表示INPUT[32]=08-23,024-39。記錄n_m識別字節(jié)范圍,即η=8,m=23,§8-230將哈希應(yīng)用到該輸入字符串由下述公式表征HashResult=ComputeHash(Input,32)在一些實施例中,當多核系統(tǒng)545攔截或以其他方式處理不使用互聯(lián)網(wǎng)協(xié)議的數(shù)據(jù)分組和/或網(wǎng)絡(luò)業(yè)務(wù)時,不計算哈希。在這個實施例中,非IP分組或業(yè)務(wù)可以被路由到默認的核505。該核505可以專用于處理非IP分組或者可以分配一定數(shù)量的資源以處理非IP網(wǎng)絡(luò)業(yè)務(wù)。圖7A所示為描述用于使用上述哈希在多核系統(tǒng)M5的一個或多個核505上分布網(wǎng)絡(luò)業(yè)務(wù)的方法700的一個實施例的流程圖。首先,多核系統(tǒng)討5的流分布器550或RSS模塊560從客戶機、服務(wù)器或其他計算機器接收數(shù)據(jù)分組(步驟704),并且通過對接收到的數(shù)據(jù)分組的第一元組應(yīng)用哈希來計算哈希值(步驟706)。第一元組可以包括客戶機IP地址、目的IP地址、客戶機端口和目的端口。在一些實施例中,對第一元組應(yīng)用哈希的結(jié)果值有時被稱為哈希。根據(jù)哈希結(jié)果值選擇多核系統(tǒng)545中的核505(步驟708),并且該接收到的數(shù)據(jù)分組被轉(zhuǎn)發(fā)到所選擇的核(步驟710)。此時,所述第一元組仍然包括下述值客戶機IP地址;目的IP地址;客戶機端口;和目的端口。所選擇的核505上的分組引擎548接收數(shù)據(jù)分組并且用所選擇的多核系統(tǒng)M5、設(shè)備200或所選擇的核505的IP地址更新該元組(步驟71。所述第一元組現(xiàn)在包括下述值所選擇的IP地址;目的IP地址;客戶機端口;和目的端口。然后分組引擎548可以識別端口,當該端口替代客戶機端口被包括在第一元組時,將導(dǎo)致數(shù)據(jù)分組返回所選擇的核505。當識別了該端口,所述分組引擎548用所選擇的端口更新第一元組(步驟714)。第一元組的元素現(xiàn)在包括所選擇的IP地址;目的地址;所選擇的端口;和目的端口。該數(shù)據(jù)分組及其修改的元組接著被發(fā)送到服務(wù)器、客戶機或其他計算機器(步驟716)。任何對該數(shù)據(jù)分組的響應(yīng)都轉(zhuǎn)發(fā)到多核系統(tǒng)545并由多核系統(tǒng)545接收(步驟704)。然后該方法700重復(fù)進行。進一步參考圖7A,在一個實施例中,客戶機IP地址和客戶機端口可以指源IP地址和源端口。所述源IP地址標識數(shù)據(jù)分組源自的計算機器或設(shè)備。在一些實施例中,所述源計算機器或設(shè)備生成數(shù)據(jù)分組。在一個實施例中,所述客戶機IP地址可以指客戶機,而在其他實施例中,所述客戶機IP地址可以指服務(wù)器或其他計算機器或設(shè)備。相似地,所述目的IP地址標識數(shù)據(jù)分組被送往的目的計算機器或設(shè)備。在一些實施例中,目的計算機器或設(shè)備為服務(wù)器,而在其他實施例中,目的計算機器或設(shè)備是客戶機或其他計算機器或設(shè)備。在一些實施例中,方法700的步驟由流分布器550執(zhí)行。在其他實施例中,這些步驟可以由RSS模塊560執(zhí)行。在其他實施例中,這些步驟可以由RSS模塊560和流分布器550的組合執(zhí)行。在其他實施例中,當NIC552為RSS未覺察(RSS-unaware)NIC552時,即NIC552不包括RSS模塊560時,使用所述流分布器550。在其他實施例中,多核系統(tǒng)M5中執(zhí)行的另一個分布模塊或客戶機可以執(zhí)行任何由流分布器執(zhí)行的動作或步驟。在一些實施例中,從客戶機接收的數(shù)據(jù)分組為請求。在其他實施例中,從客戶機接收的數(shù)據(jù)分組為信息、響應(yīng)、更新或任何其他類型的信息或通信。在一些實施例中,從服務(wù)器接收的數(shù)據(jù)分組為響應(yīng)。在其他實施例中,從服務(wù)器接收的數(shù)據(jù)分組為信息、請求、更新或任何其他類型的信息或通信。在許多實施例中,多核系統(tǒng)545從網(wǎng)絡(luò)104中的客戶機和/或服務(wù)器接收數(shù)據(jù)分組(步驟704)。在大多數(shù)實施例中,多核系統(tǒng)545被安裝在一個或多個服務(wù)器、客戶機和其他計算機器和設(shè)備之前,使得任何發(fā)往或發(fā)自這些服務(wù)器、客戶機和其他計算機器和設(shè)備的數(shù)據(jù)分組必須經(jīng)過該多核系統(tǒng)討5。這樣,在一些實施例中,多核系統(tǒng)M5中的NIC552接收所有的數(shù)據(jù)分組。在其他實施例中,多核系統(tǒng)M5中的一個或多個OTC552接收發(fā)往或發(fā)自服務(wù)器、客戶機和計算機器的每個數(shù)據(jù)分組。多核系統(tǒng)M5的流分布器550排出(drain)或以其他方式從NIC552中NIC552接收隊列獲取接收到的數(shù)據(jù)分組。當從NIC552接收隊列獲得數(shù)據(jù)分組時,流分布器550確定數(shù)據(jù)分組應(yīng)該發(fā)送到多核系統(tǒng)545中的哪個核505。當流分布器550從NIC552接收隊列獲得數(shù)據(jù)分組時,數(shù)據(jù)分組具有一系列值,該一系列值一起構(gòu)成元組。在一些實施例中,這個元組或一系列值包括客戶機IP地址、目的IP地址、客戶機端口和目的端口。客戶機IP地址為數(shù)據(jù)分組的源的IP地址,在某些情況下,其可以是客戶機,在其他情況下,其可以是服務(wù)器或其他計算機器。目的IP地址為數(shù)據(jù)分組被送往的計算機器或設(shè)備的IP地址。這樣,在某些情況下,目的IP地址為服務(wù)器的地址,在其他實施例中,目的IP地址為客戶機的地址??蛻魴C端口和目的端口為與源機器或目的機器關(guān)聯(lián)的端口。這些端口通常在發(fā)送數(shù)據(jù)分組之前配置,但是在一些實施例中,客戶機端口和/或目的端口為虛擬端口或代理端口,而在其他實施例中,客戶機端口和/或目的端口為默認端口。一旦多核系統(tǒng)545接收到數(shù)據(jù)分組,流分布器550或在多核系統(tǒng)M5中執(zhí)行的任何其他模塊或程序都可以對所述第一元組應(yīng)用上述的哈希(步驟706)。在一些實施例中,在應(yīng)用哈希之前創(chuàng)建第一元組??梢酝ㄟ^串聯(lián)客戶機IP地址、目的IP地址、客戶機端口和源端口來創(chuàng)建第一元組。在一些實施例中,這些值存儲在數(shù)據(jù)分組中的頭部里。在其他實施例中,這些值存儲在與數(shù)據(jù)分組關(guān)聯(lián)的元數(shù)據(jù)中。在其他實施例中,這些值存儲在數(shù)據(jù)分組的負載部分,并且必須在創(chuàng)建該元組之前從數(shù)據(jù)分組中提取出來。在一些實施例中,串聯(lián)這些值可以由RSS模塊560、流分布器550或在多核系統(tǒng)545中執(zhí)行的串聯(lián)程序或模塊中的任何一個完成。在其他實施例中,串聯(lián)這些值可以作為哈希的一部分發(fā)生。在一些實施例中,可以根據(jù)上述任何方法應(yīng)用哈希。在許多情況下,應(yīng)用哈希的結(jié)果是產(chǎn)生輸出,例如結(jié)果值、哈希值或表示對第一元組應(yīng)用哈希的結(jié)果的任何其他值。在一些實施例中,所述哈??梢杂闪鞣植计?50或在多核系統(tǒng)M5中執(zhí)行的另一個模塊計算,而在其他實施例中,所述哈??梢杂稍诙嗪讼到y(tǒng)545外部的計算機器或設(shè)備計算。在一個實施例中,位于多核系統(tǒng)545外部的遠程的路由器可以在數(shù)據(jù)分組被多核系統(tǒng)545接收之前攔截數(shù)據(jù)分組。在這個實施例中,路由器可以對數(shù)據(jù)分組應(yīng)用所述哈希,以確定在多核系統(tǒng)545中哪個核505應(yīng)該接收每個數(shù)據(jù)分組。在確定特定的數(shù)據(jù)分組應(yīng)該發(fā)送到哪個核505后,路由器可以以多核系統(tǒng)545轉(zhuǎn)發(fā)數(shù)據(jù)分組到合適的核505的方式將數(shù)據(jù)分組發(fā)送到多核系統(tǒng)M5的地址。在其他實施例中,所述哈??梢杂捎嬎銠C器或不同的設(shè)備應(yīng)用。在一些實施例中,流分布器550或RSS模塊560可以基于對第一元組應(yīng)用哈希的結(jié)果值來從多核系統(tǒng)545中選擇核505(步驟708)。在一些實施例中,哈希生成的值指向或識別多核系統(tǒng)M5中的核505??梢岳霉5脑搶傩詠碓诙嗪讼到y(tǒng)M5的多個核505之間基本上均勻地分布網(wǎng)絡(luò)業(yè)務(wù)。在一個實施例中,將存儲可能的哈希值及其對應(yīng)的核的列表的表格存儲在多核系統(tǒng)545的存儲器單元或存儲庫中。當應(yīng)用了哈希以獲得結(jié)果值后,流分布器550或RSS模塊560可以向該表格查詢與該結(jié)果哈希值對應(yīng)的核。該表格的記錄可以設(shè)計為確保網(wǎng)絡(luò)業(yè)務(wù)在所述多個核505上的均勻分布。當選擇了核505后,數(shù)據(jù)分組被轉(zhuǎn)發(fā)到所選擇的核505(步驟710)。數(shù)據(jù)分組可以由流分布器^0、RSS模塊560或核間通信器(未顯示)中的任何一個轉(zhuǎn)發(fā)。在一些實施例中,轉(zhuǎn)發(fā)數(shù)據(jù)分組可以包括將數(shù)據(jù)分組拷貝到多核系統(tǒng)M5中每個核505可訪問的存儲器單元、存儲庫或高速緩存中;并且向被選擇接收數(shù)據(jù)分組的核505轉(zhuǎn)發(fā)消息,所述消息指示數(shù)據(jù)分組被存儲在存儲器中,并且可用于由所選擇的核505下載或?qū)λx擇的核505提供下載。然后,分組引擎548或在所選擇的核505上執(zhí)行的其他模塊可以訪問共享的存儲器單元以下載數(shù)據(jù)分組。在其他實施例中,可以通過核到核的消息傳輸系統(tǒng)將數(shù)據(jù)分組轉(zhuǎn)發(fā)到所選擇的核505,所述核到核的消息傳輸系統(tǒng)使用包括多核系統(tǒng)545中每個核505的內(nèi)部網(wǎng)絡(luò)。該核到核的消息傳輸系統(tǒng)可以利用多核系統(tǒng)M5內(nèi)部網(wǎng)絡(luò)和專用于多核系統(tǒng)M5內(nèi)每個核505或分組引擎548的地址。在一些實施例中,數(shù)據(jù)分組可以被發(fā)送到與所選擇的核505對應(yīng)的核到核的消息傳輸系統(tǒng)的目的地址。當數(shù)據(jù)分組被轉(zhuǎn)發(fā)或發(fā)送到所選擇的核505時(步驟710),數(shù)據(jù)分組可以由在所選擇的核505上執(zhí)行的分組引擎548接收。在一些實施例中,分組引擎548管理轉(zhuǎn)發(fā)到核505的數(shù)據(jù)分組的接收和發(fā)送。當分組引擎548接收數(shù)據(jù)分組時,分組引擎548可以對數(shù)據(jù)分組做任意數(shù)量的確定,并且可以對數(shù)據(jù)分組執(zhí)行任意次數(shù)的操作。在一個實施例中,分組引擎548可以確定不必保持第一元組的源IP地址和源端口。基于該確定,分組引擎548可以改變第一元組,使其包括不同的源IP地址和/或不同的源端口。當作出的確定是分組引擎548可以修改客戶機IP地址和客戶機端口中的一個或全部時,所述分組引擎548可以接著用所選擇的核505的IP地址替換客戶機IP地址(步驟712)。在一些實施例中,該IP地址可以是多核系統(tǒng)M5的IP地址。在其他實施例中,該IP地址可以是設(shè)備200的IP地址。在其他實施例中,該IP地址可以是所選擇的核505的IP地址中的任何一個。在一些實施例中,所選擇的核505可以具有一個或多個IP地址630。在一個實施例中,分組引擎548可以選擇IP地址630中的一個并且用所選擇的IP地址630替換客戶機IP地址。當用所選擇的IP地址630修改了該元組時,第一元組被修改為包括所選擇的IP地址630、客戶機端口、目的IP地址和目的端口。在一些實施例中,分組引擎548從所選擇的核505的多個端口632中選擇端口。在一個實施例中,分組引擎548通過對每個可能的IP地址630和端口632的組合反復(fù)應(yīng)用上述哈希來選擇端口。分組引擎548選擇端口630,當該端口630被包括在第一元組中,當上述哈希被應(yīng)用到第一元組時,該端口630識別所選擇的核505。例如,分組引擎548可以選擇IP地址630,然后利用所選擇的核505的每個可用端口632來修改第一元組,直到哈希的輸出識別所選擇的核505。在一些實施例中,分組引擎548用所選擇的端口修改該元組。修改該元組可以包括將所選擇的端口輸入到該元組中(步驟714),或用所選擇的端口替換客戶機端口。一旦使用所選擇的端口修改了該元組,該元組就包括下述值所選擇的IP地址;目的IP地址;所選擇的端口;和目的端口。在大多數(shù)實施例中,所述分組引擎548將帶有經(jīng)修改的元組的數(shù)據(jù)分組發(fā)送到客戶機或服務(wù)器(步驟716)。如果數(shù)據(jù)分組源自服務(wù)器,那么在許多實施例中,分組引擎M8將數(shù)據(jù)分組發(fā)送到客戶機,反之亦然。在一些實施例中,分組引擎548將數(shù)據(jù)分組發(fā)送到與目的IP地址對應(yīng)的計算機器或設(shè)備。在其他實施例中,分組引擎548先將數(shù)據(jù)分組發(fā)送到中間或代理服務(wù)器或設(shè)備,然后再將數(shù)據(jù)分組發(fā)送到目的計算機器或設(shè)備。一旦數(shù)據(jù)分組被發(fā)送到目的計算機器或設(shè)備,多核系統(tǒng)545就可以接收另一個數(shù)據(jù)分組(步驟704)。在一些實施例中,只要多核系統(tǒng)545接收并發(fā)送數(shù)據(jù)分組和網(wǎng)絡(luò)業(yè)務(wù),該方法700可以持續(xù)進行。雖然圖7A只顯示了其中每個步驟單獨發(fā)生的方法700的單個實例,但在其他實施例中,方法700的多個步驟可以同時發(fā)生。例如,多核系統(tǒng)545接收來自客戶機或服務(wù)器的數(shù)據(jù)分組(步驟704),并且?guī)缀跖c此同時,分組引擎M8可以接收轉(zhuǎn)發(fā)的數(shù)據(jù)分組(步驟710)。在又一個例子中,第二核505B上的分組引擎M8B接收轉(zhuǎn)發(fā)的數(shù)據(jù)分組(步驟710),并且?guī)缀跖c此同時,第一核505A上的分組引擎M8A接收轉(zhuǎn)發(fā)的數(shù)據(jù)分組(步驟710)。所以,任何數(shù)量的步驟都可以幾乎同時發(fā)生,包括相同的步驟。圖7B所示為描述用于使用上述哈希在多核系統(tǒng)M5的一個或多個核505上分布網(wǎng)絡(luò)業(yè)務(wù)的方法780的一個實施例的流程圖。該方法780與圖7A中所示的方法700大體相似。但是,在圖7B所示的方法780中,分組引擎548保持客戶機IP地址。與圖7A中所示的方法700相似,流分布器550或RSS模塊560接收來自客戶機、服務(wù)器或其他計算機器的數(shù)據(jù)分組(步驟78,并且通過對接收到的數(shù)據(jù)分組的第一元組應(yīng)用哈希來計算哈希值(步驟784)。該第一元組可以包括客戶機IP地址、目的IP地址、客戶機端口、和目的端口。在一些實施例中,對第一元組應(yīng)用哈希能夠產(chǎn)生有時被稱為哈希的值。根據(jù)該哈希結(jié)果值選擇多核系統(tǒng)545中的核505(步驟786),并且將接收到的數(shù)據(jù)分組轉(zhuǎn)發(fā)到所選擇的核(步驟788)。此時,第一元組仍然包括下述值客戶機IP地址;目的IP地址;客戶機端口;和目的端口。所選擇的核上的分組引擎548接收數(shù)據(jù)分組并且保持客戶機IP地址(步驟709),但是用所選擇的端口更新第一元組(步驟79。這時,第一元組包括下述值客戶機IP地址;目的IP地址;所選擇的端口;和目的端口。接著,將數(shù)據(jù)分組及其經(jīng)修改的元組發(fā)送到服務(wù)器、客戶機或其他計算機器(步驟794)。由服務(wù)器、客戶機或其他計算機器生成的對該數(shù)據(jù)分組的任何響應(yīng)被轉(zhuǎn)發(fā)到多核系統(tǒng)M5,并且由多核系統(tǒng)545接收(步驟782)。到此,方法700重復(fù)進行。繼續(xù)參考圖7B,更詳細地,在一個實施例中,圖7B所示的方法780與圖7A所示的方法700之間的區(qū)別在于圖7B所示的方法780保持客戶機或源IP地址。這樣,其他額外步驟大體上與圖7A所示的方法700中所描述的步驟相同。例如,與之前描述的方法700類似,多核系統(tǒng)545可以從客戶機、服務(wù)器或其他計算機器接收數(shù)據(jù)分組(步驟78幻。在一些實施例中,步驟782可以是圖7A描述的步驟704的任何實施例。與上文所述的方法700類似,對數(shù)據(jù)分組的第一元組應(yīng)用哈希(步驟784),并且基于該哈希的結(jié)果選擇核(步驟786)。步驟784可以是圖7A描述的步驟706的任何實施例,而步驟786可以是圖7A描述的步驟708的任何實施例。一旦選擇了核505,就可以將數(shù)據(jù)分組轉(zhuǎn)發(fā)到所選擇的核505(步驟788)。步驟788可以是步驟710的任何實施例。在與數(shù)據(jù)分組關(guān)聯(lián)的元組被修改后,經(jīng)修改的數(shù)據(jù)分組被發(fā)送到服務(wù)器、客戶機或其他計算機器(步驟794)。步驟794可以是步驟716的任何實施例。在一些實施例中,一旦數(shù)據(jù)分組被轉(zhuǎn)發(fā)到所選擇的核505(步驟788),分組引擎548或在所選擇的核505上執(zhí)行的其他引擎或模塊就可以接收分組并且確定是否可以修改該分組。確定是否可以修改數(shù)據(jù)分組可包括做任何下述確定是否可以修改數(shù)據(jù)分組的一部分;是否可以修改數(shù)據(jù)分組的元組;是否可以修改數(shù)據(jù)分組的元組的任何部分;可以修改數(shù)據(jù)分組和/或元組的那些部分;以及對所述分組引擎548是否可以修改數(shù)據(jù)分組或數(shù)據(jù)分組的元組產(chǎn)生影響的任何其他確定。在一個實施例中,分組引擎548確定可以修改數(shù)據(jù)分組的一部分,并且尤其是可以修改數(shù)據(jù)分組的元組的部分。該確定還可以包括確定數(shù)據(jù)分組的客戶機IP地址或源IP地址應(yīng)該保持并且不能改變。基于該確定,分組引擎548可以根據(jù)該確定調(diào)整分組處理。在一些實施例中,可以通過分析數(shù)據(jù)分組、數(shù)據(jù)分組的頭部或數(shù)據(jù)分組的任何其他屬性來作出確定。在其他實施例中,多核系統(tǒng)545可以被配置為保持客戶機IP地址。在這些實施例中,因為系統(tǒng)討5的操作被相應(yīng)地配置,所以沒有作出對于是否可以修改數(shù)據(jù)分組或數(shù)據(jù)分組的元組的確定。當作出的確定為應(yīng)該保持客戶機IP地址時或當系統(tǒng)545指示應(yīng)該保持客戶機IP地址時,分組引擎548保持客戶機IP地址(步驟790)而不是將該元組修改為包括核505或系統(tǒng)545的IP地址。該步驟之后,該元組包括下述值客戶機IP地址;目的IP地址;客戶機端口;和目的端口。保持客戶機IP地址可以導(dǎo)致對數(shù)據(jù)分組的任何響應(yīng)都被路由到與所選擇的核505不同的核。所以,分組引擎548應(yīng)該從所選擇的核505的多個端口632中識別并選擇端口632,當該端口632替代客戶機端口而被包括在該元組中時,使對該元組的哈希能夠識別所選擇的核505。這樣,分組引擎548循環(huán)經(jīng)過核505的多個端口632中的每一個,以識別這樣的端口632并選擇該端口632。選擇端口632后,分組引擎548更新數(shù)據(jù)分組的元組以包括所選擇的端口632(步驟79。這個步驟之后,該元組包括下述值客戶機IP地址;目的IP地址;所選擇的端口;和目的端口。然后,將經(jīng)更新的數(shù)據(jù)分組和元組發(fā)送到服務(wù)器、客戶機或計算機器(步驟794)。當數(shù)據(jù)分組被發(fā)送時,其包括元組,該元組包括下述值客戶機IP地址;目的IP地址;所選擇的端口;和目的端口。圖7C所示為描述用于使用上述哈希在多核系統(tǒng)M5的一個或多個核505上分布網(wǎng)絡(luò)業(yè)務(wù)的方法750的一個實施例的流程圖。該方法750與圖7A中所示的方法700大體相似。但是,在圖7C所示的方法750中,分組引擎548保持客戶機IP地址和客戶機端口。與圖7A中所示的方法700相似,流分布器550或RSS模塊560接收來自客戶機、服務(wù)器或其他計算機器(步驟766)的數(shù)據(jù)分組,并且通過對接收到的數(shù)據(jù)分組的第一元組應(yīng)用哈希來計算哈希值(步驟756)。該第一元組可以包括客戶機IP地址、目的IP地址、客戶機端口、和目的端口。在一些實施例中,對第一元組應(yīng)用哈希能夠產(chǎn)生有時被稱為哈希的值。根據(jù)該哈希結(jié)果值選擇多核系統(tǒng)M5的第一核505A(步驟758),并且將接收到的數(shù)據(jù)分組轉(zhuǎn)發(fā)到所選擇的第一核505A(步驟760)。此時,第一元組仍然包括下述值客戶機IP地址;目的IP地址;客戶機端口;和目的端口。一旦所選擇的核接收到轉(zhuǎn)發(fā)的數(shù)據(jù)分組,所選擇的第一核505A確定該核是否為正確的核(步驟77。當做出的確定為所選擇的核505A是正確的核,那么方法繼續(xù)進行到步驟762。但是,當做出的確定為所選擇的核505A不是正確的核,那么在進行步驟762前,將數(shù)據(jù)分組轉(zhuǎn)發(fā)到正確的核(步驟774)。在第一核505A上的、或在不同于第一核505A的正確的核上的分組引擎548保持客戶機IP地址和客戶機端口(步驟76,之后數(shù)據(jù)分組被發(fā)送到服務(wù)器、客戶機或其他計算機器(步驟764)。由服務(wù)器、客戶機或其他計算機器生成的對該數(shù)據(jù)分組的任何響應(yīng)都被轉(zhuǎn)發(fā)到多核系統(tǒng)M5,并且由多核系統(tǒng)545接收(步驟766)。到此,方法750重復(fù)進行。繼續(xù)參考圖7C,更詳細地,在一個實施例中,圖7C所示的方法750與圖7A所示的方法700之間的區(qū)別在于圖7C所示的方法750保持了客戶機或源IP地址和客戶機端口。這樣,其他額外步驟大體上與圖7A所示的方法700中所描述的步驟相同。例如,與之前描述的方法700類似,多核系統(tǒng)545可以從客戶機、服務(wù)器或其他計算機器接收數(shù)據(jù)分組(步驟766)。在一些實施例中,步驟766可以是圖7A描述的步驟704的任何實施例。與上文描述的方法700類似,對數(shù)據(jù)分組的第一元組應(yīng)用哈希(步驟756),并且基于該哈希的結(jié)果選擇核(步驟758)。步驟756可以是圖7A描述的步驟706的任何實施例,而步驟758可以是圖7A描述的步驟708的任何實施例。一旦選擇了核505,就可以將數(shù)據(jù)分組轉(zhuǎn)發(fā)到所選擇的核505(步驟760)。步驟760可以是步驟710的任何實施例。在與數(shù)據(jù)分組關(guān)聯(lián)的元組被修改后,經(jīng)修改的數(shù)據(jù)分組被發(fā)送到服務(wù)器、客戶機或其他計算機器(步驟764)。步驟764可以是步驟716的任何實施例。在一個實施例中,當所選擇的核505上的分組引擎548接收到轉(zhuǎn)發(fā)的數(shù)據(jù)分組時(步驟760),分組引擎548確定是否該分組之前是由當前的核處理的。如果當前的核不是正確的核(步驟772),則將數(shù)據(jù)分組轉(zhuǎn)發(fā)到正確的核(步驟774)。可以通過對數(shù)據(jù)分組的元組應(yīng)用上述哈希來確定正確的核。轉(zhuǎn)發(fā)或以其他方式發(fā)送數(shù)據(jù)分組到正確的核可以通過核到核的消息傳輸系統(tǒng)和/或?qū)?shù)據(jù)分組拷貝到當前的核和正確的核都能訪問的全局高速緩存來完成。當將數(shù)據(jù)分組轉(zhuǎn)發(fā)到正確的核時,第一元組包括下述值客戶機IP地址;目的IP地址;客戶機端口;和目的端口。在當前的核是正確的核的實施例中,當前的核保持客戶機IP地址和客戶機端口(步驟76幻。相似地,當正確的核接收到數(shù)據(jù)分組,該正確的核保持客戶機IP地址和客戶機端口(步驟76幻。通過核保持客戶機IP地址和客戶機端口,該元組繼續(xù)包括下述值客戶機IP地址;目的IP地址;客戶機端口;和目的端口。一旦保持了客戶機IP地址和客戶機端口,數(shù)據(jù)分組被發(fā)送到服務(wù)器、客戶機或其他計算裝置或設(shè)備。如圖8所示為用于在多核系統(tǒng)545中的多個核505上分布數(shù)據(jù)分組的方法800的一個實施例。在一個實施例中,多核系統(tǒng)545接收數(shù)據(jù)分組(步驟802),并且流分布器550或RSS模塊560識別數(shù)據(jù)分組的元組(步驟804)。識別該元組后,對該識別的元組應(yīng)用上述哈希(步驟806)以生成結(jié)果值。在大多數(shù)實施例中,該結(jié)果值識別多核系統(tǒng)545中的核505。RSS模塊560或流分布器550將數(shù)據(jù)分組發(fā)送到由該結(jié)果哈希值識別的核505(步驟808)。在一些實施例中,所選擇的核505上的分組引擎548接收數(shù)據(jù)分組,并且選擇所選擇的核505的IP地址和端口(步驟810)。然后,分組引擎548可以確定對所選擇的IP地址、所選擇的端口以及該元組的部分的哈希是否生成了識別所選擇的核505的值。當可以確定對上述元組應(yīng)用哈希生成的值能夠識別所選擇的核505時,則分組引擎548用所選擇的IP地址和端口修改該元組(步驟814)。當修改了該元組后,分組引擎548或在所選擇的核505上執(zhí)行的另一個模塊將經(jīng)修改的數(shù)據(jù)分組轉(zhuǎn)發(fā)到遠程計算機器(步驟816)。繼續(xù)參考圖8,更詳細地,在一個實施例中,多核系統(tǒng)545中的NIC552接收通過網(wǎng)絡(luò)104發(fā)送到多核系統(tǒng)M5的一個或多個數(shù)據(jù)分組(步驟80。在一個實施例中,流分布器從OTC552獲取數(shù)據(jù)分組。在其他實施例中,RSS模塊560、分組引擎548或其他分布模塊或程序排出或以其他方式從NIC552獲取數(shù)據(jù)分組。流分布器可以從NIC552上的接收隊列排出或獲取數(shù)據(jù)分組。當流分布器550接收了數(shù)據(jù)分組,該流分布器或分布模塊能夠識別數(shù)據(jù)分組的元組(步驟804)。在一些實施例中,該元組可以包括下述值的任何組合客戶機IP地址;目的IP地址;客戶機端口;目的端口;或任何其他IP地址、端口或其他源或目的識別值。在一些實施例中,客戶機IP地址可以是源IP地址。相似地,在一些實施例中,客戶機端口可以是源端口。在一些實施例中,識別數(shù)據(jù)分組的元組可以包括通過串聯(lián)任何上述值以創(chuàng)建字符串來生成該元組。在一些實施例中,該元組為值的字符串或數(shù)組。在一些實施例中,通過對識別的元組應(yīng)用上述哈希來計算哈希或哈希值(步驟806)。哈希值可以由任一下列名稱訪問哈希;哈希值;結(jié)果值;結(jié)果;或值。可以由流分布器550或在多核系統(tǒng)545中執(zhí)行的任何其他分布模塊應(yīng)用哈希。應(yīng)用哈希之后,可以確定結(jié)果值是否識別多核系統(tǒng)545中的核505。當哈希結(jié)果識別了特定的核505時,由流分布器550或任何其他流分布模塊將數(shù)據(jù)分組轉(zhuǎn)發(fā)到所識別的核505(步驟808)。在一些實施例中,哈希結(jié)果可以不識別多核系統(tǒng)M5中的核505。在這些實施例中,可以將數(shù)據(jù)分組轉(zhuǎn)發(fā)到多核系統(tǒng)M5中的默認核505。在其他實施例中,數(shù)據(jù)分組可能不具有關(guān)聯(lián)的元組。在那些實施例中,可以將數(shù)據(jù)分組轉(zhuǎn)發(fā)到多核系統(tǒng)M5中的默認核505。當將數(shù)據(jù)分組轉(zhuǎn)發(fā)到所識別的核505時,在所識別的核505上執(zhí)行的分組引擎M8或其他模塊或引擎能夠接收該轉(zhuǎn)發(fā)的數(shù)據(jù)分組。在一些實施例中,在所識別的核505上執(zhí)行的通信模塊接收數(shù)據(jù)分組,并且將數(shù)據(jù)分組轉(zhuǎn)發(fā)到所識別的核505上的分組引擎M8。當該分組引擎548接收到轉(zhuǎn)發(fā)的分組時,該分組引擎548可以選擇核505的IP地址和核的端口(步驟810)。在一些實施例中,該IP地址可以是多核系統(tǒng)M5的IP地址或設(shè)備200的IP地址。在其他實施例中,該IP地址可以是核505的IP地址。核505可以具有一個或多個IP地址,所以在一些實施例中,分組引擎548可以基于對與所選擇的端口和第一元組的一部分結(jié)合的IP地址是否標識了所識別的核505的確定來選擇IP地址。選擇核505的端口可以包括搜索與所選擇的核505關(guān)聯(lián)的端口以識別端口,當該端口被包括在第一元組時可以識別所選擇的核505。在一些實施例中,分組引擎548可以循環(huán)經(jīng)過核505的每個IP地址以及核505的每個端口,以識別能夠識別所選擇的核505的IP地址/端口組合。例如,所選擇的核505可以是具有包括客戶機IP地址、客戶機端口、目的IP地址和目的端口的元組的第一核505。分組引擎548可以修改該元組以包括所選擇的IP地址、所選擇的端口、目的IP地址和目的端口。在永久性地修改該數(shù)據(jù)分組之前,分組引擎548首先對經(jīng)修改的元組應(yīng)用上述哈希(步驟812)。如果結(jié)果哈希值識別了第一核505,那么分組引擎548就永久性地修改該數(shù)據(jù)分組,用所選擇的IP地址替換或修改客戶機IP地址,并且用所選擇的端口替換或修改客戶機端口。如果結(jié)果哈希值不能識別第一核505,那么分組引擎548修改所選擇的端口和所選擇的IP地址之一或全部,并且再次應(yīng)用哈希。在應(yīng)用上述哈希(步驟812)以驗證所選擇的端口和所選擇的IP地址當與目的IP地址和目的端口組合時識別所選擇的核505之后,分組引擎可以修改數(shù)據(jù)分組以使該元組包括所選擇的IP地址;目的IP地址;所選擇的端口;和目的端口(步驟814)。在這個實施例中,客戶機IP地址和客戶機端口不再被包括在該元組中?;蛘哒f,這些值由所選擇的IP地址和所選擇的端口替換了。在許多實施例中,分組引擎548在修改數(shù)據(jù)分組和元組后,將更新的數(shù)據(jù)分組和元組發(fā)送到遠程計算裝置(步驟816)。在一些實施例中,所述遠程計算裝置可以是客戶機、服務(wù)器或遠離多核系統(tǒng)M5的另一個計算機器或設(shè)備。在其他實施例中,分組引擎548可以將經(jīng)修改的數(shù)據(jù)分組發(fā)送到中間裝置,該中間裝置轉(zhuǎn)發(fā)該數(shù)據(jù)分組到目的地。在一些實施例中,所述目的地可以由目的IP地址和/或目的端口識別。圖9所示為在多核系統(tǒng)545的多個核505上分布網(wǎng)絡(luò)業(yè)務(wù)的方法900的一個實施例。圖9描述的該方法900顯示了核505上的分組引擎548如何處理接收到的數(shù)據(jù)分組。分組引擎548接收被分配的數(shù)據(jù)分組(步驟90,并且選擇其上執(zhí)行分組引擎548的核505的IP地址(步驟904)。該分組引擎548還從核505上的或核505的多個端口中選擇端口(步驟906)。一旦選擇了IP地址和端口,分組引擎548接著確定對所選擇的IP地址和所選擇的端口以及目的IP地址和目的端口的哈希是否會識別當前的核505。具體的,分組引擎548確定所選擇的端口是否會識別該當前的核505(步驟908)。當確定所選擇的端口不會識別當前的核505時,分組引擎548從與核505關(guān)聯(lián)的多個端口中選擇下一個端口(步驟906)。當確定所選擇的端口會識別當前的核505時,分組引擎548接著確定所選擇的端口是否打開或以其他方式可用(步驟910)。當確定所選擇的端口沒有打開,分組引擎548從與核505關(guān)聯(lián)的多個端口中選擇下一個端口(步驟906)。當確定所選擇的端口打開或以其他方式可用,分組引擎548用所選擇的IP地址和所選擇的端口修改數(shù)據(jù)分組(步驟912),并且將該數(shù)據(jù)分組及其經(jīng)修改的元組轉(zhuǎn)發(fā)到遠程計算機器(步驟914)。繼續(xù)參考圖9,更詳細地,在一個實施例中,方法900可以由在核505上執(zhí)行的分組引擎548執(zhí)行。在又一個實施例中,方法900可以由在核505上執(zhí)行的流分布器550或流分布器陽0的實例執(zhí)行。在其他實施例中,方法900可以由可以在核505上執(zhí)行的任何流分布模塊或代理執(zhí)行。在圖9中顯示了對數(shù)據(jù)分組的處理,可以在特定的核505上部分地修改該數(shù)據(jù)分組,在一些實施例中,對數(shù)據(jù)分組的修改可以由多核系統(tǒng)討5中的控制核處理。執(zhí)行圖9所述的方法900的步驟的分組引擎548可以在特定的核505上執(zhí)行。在大多數(shù)實施例中,核505事先由圖8顯示的方法800選定。所以在大多數(shù)情況下,基于將上述哈希應(yīng)用到數(shù)據(jù)分組的元組,由分組引擎548接收的數(shù)據(jù)分組已經(jīng)被分配給了核505。大部分情況下,這個元組至少包括客戶機IP地址、目的IP地址、客戶機端口和目的端口。在一些實施例中,該元組可以是任何上述的元組,并且可以包括任何數(shù)量的源或目的識別值。在其他實施例中,客戶機IP地址可以是識別數(shù)據(jù)分組的來源機器的源IP地址。相似地,客戶機端口可以是源端口。在一個實施例中,在多核系統(tǒng)M5的特定的核505上執(zhí)行的分組引擎548接收被分配給該特定的核505的數(shù)據(jù)分組(步驟90。分組引擎548可以直接接收數(shù)據(jù)分組,或者在一些實施例中,核505上執(zhí)行的通信模塊可以接收并發(fā)送數(shù)據(jù)分組。在其他實施例中,執(zhí)行在核505上的虛擬NIC(未顯示)可以接收并發(fā)送數(shù)據(jù)分組。在一些實施例中,接收數(shù)據(jù)分組還可以包括從核505上的邏輯接收隊列中排出數(shù)據(jù)分組。邏輯接收隊列可以存儲發(fā)送到核505的數(shù)據(jù)分組。根據(jù)先進先出的訪問方法,分組引擎548可以通過從接收隊列排出或以其他方式獲取數(shù)據(jù)分組來訪問邏輯接收隊列中的數(shù)據(jù)分組。另一種訪問方法可以是先進后出。當分組引擎548獲得數(shù)據(jù)分組時,在一些實施例中,分組引擎548能夠確定是否可以修改數(shù)據(jù)分組。在確定了數(shù)據(jù)分組的哪部分可以被修改后,分組引擎548可以修改數(shù)據(jù)分組。在一些實施例中,多核系統(tǒng)545可以被配置為指示在多核系統(tǒng)545上執(zhí)行的分組引擎548只修改數(shù)據(jù)分組的某些部分。在一些實施例中,分組引擎548可以從與核505關(guān)聯(lián)的一個或多個IP地址中選擇核505的IP地址(步驟904)。核505可以具有多個IP地址,并且在一些實施例中可以具有一個IP地址范圍。在其他實施例中,核505可以具有單個IP地址。在一些實施例中,分組引擎548選擇核505的IP地址,在其他實施例中,分組引擎548可以選擇多核系統(tǒng)M5的或多核系統(tǒng)討5中的設(shè)備200的IP地址。當選擇IP地址后,分組引擎548可以從核505的多個端口中選擇端口(步驟906)。核505可以具有一個或多個端口,并且在一些實施例中,可以將多核系統(tǒng)545的端口505中的每一個的列表存儲在端口分配表中。選擇端口可以包括循環(huán)經(jīng)過列出了核505的每個端口的端口分配表的記錄并且選擇端口號。所述端口可以基于端口號或在端口分配表中列出這些端口的順序來以數(shù)字方式循環(huán)經(jīng)過。在其他實施例中,分組引擎548可以通過循環(huán)經(jīng)過與核505上可能的端口號對應(yīng)的數(shù)或值的范圍來選擇端口。在一些實施例中,分組引擎548可以選擇第一端口(步驟906),然后確定是否該端口是正確的端口(步驟908)以及該端口是否可用或打開(步驟910)。如果所選擇的第一端口不是正確的端口或者不可用或沒打開,分組引擎548可以選擇下一個端口,即核505的第二端口,并且再確定該端口是否是正確的端口(步驟908)以及該端口是否可用或打開(步驟910)。在大多數(shù)實施例中,分組引擎548循環(huán)經(jīng)過所有可能的端口,直到分組引擎548識別既正確又打開的端口為止。當分組引擎548選擇了端口后,分組引擎首先通過確定所選擇的端口是否將使得響應(yīng)分組返回所選擇的核(步驟908)來確定所選擇的端口是否為正確的端口??梢酝ㄟ^將上述哈希應(yīng)用到元組來做出該確定,所述元組包括下列值的串聯(lián)所選擇的IP地址;目的地址;所選擇的端口;和目的端口。將上述哈希應(yīng)用到這個元組會生成結(jié)果哈希值,該結(jié)果哈希值或者可以或者不可以識別當前其上執(zhí)行分組引擎M8的核505。串聯(lián)該元組的值以生成該元組,可以由分組引擎548或核505上執(zhí)行的流分布器550的實例執(zhí)行。相似地,對該元組應(yīng)用哈希可以由分組引擎548或流分布器的實例執(zhí)行。當結(jié)果哈希值識別出當前的或所選擇的核505時,所選擇的端口是正確的端口,因為它將使響應(yīng)分組返回當前的核505。當結(jié)果哈希值不能識別當前的或所選擇的核505,所選擇的端口不是正確的端口,因為它將不能使響應(yīng)分組返回當前的核505。在這種情況下,分組引擎548將選擇另一個端口(步驟906)并且重復(fù)進行確定該端口是否為正確的端口的過程(步驟910)。當確定所選擇的端口為正確的端口(步驟908),確定該端口是否可用或打開(步驟912)。在大多數(shù)實施例中,當任何下述為真時端口為打開或可用該端口沒有被使用;或者該端口可以使用。相反的,當任何下述為真時端口沒有打開或不可用該端口已被分配給另一個事務(wù)、服務(wù)或數(shù)據(jù)分組;或者該端口已經(jīng)被網(wǎng)絡(luò)管理員或多核系統(tǒng)545關(guān)閉。在許多實施例中,端口是否可用或打開是端口分配表跟蹤的特性。端口分配表可以是上述的任何端口分配表,并且可以被存儲在可以存儲端口表的任何上述位置。在一些實施例中,在分組引擎548確定所述端口為正確的端口之后,分組引擎548可以通過查詢端口分配表以獲取特定的端口的詳細信息、屬性或特性來確定該端口可用。當響應(yīng)指示該端口打開并且該端口沒有被分配給任何其他數(shù)據(jù)分組、事務(wù)或服務(wù)器時,分組引擎548用所選擇的IP地址和所選擇的端口修改該元組。但是,當響應(yīng)指示該端口不可用或沒打開時,分組引擎548選擇另一個端口(步驟906)并且重復(fù)確定該端口是否為正確的端口(步驟908)以及該端口是否為打開和可用(步驟910)的過程。當分組引擎548選擇了正確的、打開的和可用的端口時,分組引擎548接著更新數(shù)據(jù)分組,從而該數(shù)據(jù)分組的元組包括所選擇的IP地址和所選擇的端口(步驟91幻。修改或更新該元組可以包括做任何必要的修改以使該元組包括所選擇的IP地址;目的IP地址;所選擇的端口;和目的端口。這樣,客戶機IP地址和客戶機端口信息可以由所選擇的IP地址和所選擇的端口替代。修改數(shù)據(jù)分組之后,分組引擎548可以將經(jīng)修改的數(shù)據(jù)分組發(fā)送到遠程計算機器(步驟914)。將經(jīng)修改的數(shù)據(jù)分組發(fā)送到遠程計算機器可以包括將經(jīng)修改的數(shù)據(jù)分組發(fā)送到由目的IP地址和/或目的端口識別的客戶機、服務(wù)器、設(shè)備或計算機器。在一些實施例中,在數(shù)據(jù)分組被發(fā)送到其目的計算機器或設(shè)備之前,將經(jīng)修改的數(shù)據(jù)分組發(fā)送到代理服務(wù)器或設(shè)備。在其他實施例中,在將數(shù)據(jù)分組發(fā)送到其目的計算機器或設(shè)備之前,將經(jīng)修改的數(shù)據(jù)分組存儲在多核系統(tǒng)545中的存儲器單元內(nèi)。在一些實施例中,該存儲器單元可以是全局高速緩存或由多核系統(tǒng)545中所有核和裝置共享的其他存儲器單元。在其他實施例中,該存儲器單元可以是高速緩存或當前的核505可以訪問的其他存儲厙。圖8和9描述了在其中由特定的核505上的分組引擎548選擇的IP地址和端口替換或修改客戶機IP地址和客戶機端口的方法,圖IOA描述了在其中保持客戶機IP地址和客戶機端口的系統(tǒng)。在一些系統(tǒng)中,服務(wù)器群的所有者或者多核系統(tǒng)545執(zhí)行于其中的網(wǎng)絡(luò)的管理員可能期望每個數(shù)據(jù)分組保持其原始的源IP地址和源端口。管理員可能有很多原因希望這么做,其中一些原因可能包括為了安全的目的,為了市場的目的,為了跟蹤網(wǎng)路訪問,為了限制網(wǎng)絡(luò)訪問,或者為了任何其他原因。通過允許每個數(shù)據(jù)分組保持其源IP地址或源端口,可以跟蹤并控制每個數(shù)據(jù)分組。例如,知道數(shù)據(jù)分組的源可以允許該系統(tǒng)阻止特定的IP地址或域?qū)W(wǎng)絡(luò)的訪問。相似地,知道數(shù)據(jù)分組的源可以允許該系統(tǒng)跟蹤訪問網(wǎng)絡(luò)或域的用戶的地理位置。在大多數(shù)情況下,知道源IP地址和源端口允許系統(tǒng)識別分組源自的位置,并且允許進一步控制系統(tǒng)是否處理特定的數(shù)據(jù)分組。圖IOA顯示為用于將數(shù)據(jù)分組分配給多核系統(tǒng)M5中特定的核505的方法1000。方法1000包括接收數(shù)據(jù)分組(步驟100,識別該數(shù)據(jù)分組的元組(步驟1004)以及對該元組應(yīng)用哈希(步驟1006)。然后,將數(shù)據(jù)分組轉(zhuǎn)發(fā)到多核系統(tǒng)545中的核505(步驟1008),其中核505由對該數(shù)據(jù)分組的元組應(yīng)用上述任意哈希后產(chǎn)生的結(jié)果值來識別。在所選擇的核505上執(zhí)行的分組引擎548保持該元組的客戶機IP地址和客戶機端口(步驟1010),并且將該數(shù)據(jù)分組以及沒有修改的元組轉(zhuǎn)發(fā)到遠程計算機器(步驟1012)。繼續(xù)參考圖10A,更詳細地,在一個實施例中,方法1000與圖8顯示的方法大體相同。所以,步驟1002可以是圖8顯示的步驟802的任何實施例,相似地,步驟1004可以是圖8顯示的步驟804的任何實施例。步驟1006可以是圖8顯示的步驟806的任何實施例,步驟1008可以是圖8顯示的步驟808的任何實施例,并且步驟1012可以是圖8顯示的步驟816的任何實施例。在一些實施例中,圖IOA所示的方法1000與圖8所示的方法800的區(qū)別在于圖IOA所示的方法1000保持客戶機IP地址和客戶機端口。執(zhí)行圖IOA所述的方法1000的步驟的分組引擎548可以在特定的核505上執(zhí)行。在大多數(shù)實施例中,核505由圖IOA所示的方法1000事先選擇。所以,在大多數(shù)情況下,已經(jīng)基于對數(shù)據(jù)分組的元組應(yīng)用上述哈希將分組引擎548接收的數(shù)據(jù)分組分配給了核505。在大多數(shù)情況下,這個元組至少包括客戶機IP地址、目的IP地址、客戶機端口和目的端口。在一些實施例中,該元組可以是任意上述的元組,并且可以包括任何數(shù)量的源或目的識別值。在其他實施例中,客戶機IP地址可以是識別數(shù)據(jù)分組源自的機器的源IP地址。相似地,所述客戶機端口可以是源端口。在一個實施例中,在多核系統(tǒng)M5中特定的核505上執(zhí)行的分組引擎548接收分配給該特定的核505的數(shù)據(jù)分組(步驟1008)。分組引擎548可以直接接收數(shù)據(jù)分組,或者在一些實施例中,在核505上執(zhí)行的通信模塊可以接收和發(fā)送數(shù)據(jù)分組。在其他實施例中,在核505上執(zhí)行的虛擬NIC(未顯示)可以接收并且發(fā)送數(shù)據(jù)分組。在一些實施例中,接收數(shù)據(jù)分組還可以包括從核505上的邏輯接收隊列排出數(shù)據(jù)分組。邏輯接收隊列可以存儲發(fā)送到核505的數(shù)據(jù)分組。分組引擎548可以根據(jù)先進先出訪問方法,通過從接收隊列排出或以其他方式獲取數(shù)據(jù)分組來訪問邏輯接收隊列。另一種可行的訪問方法可以是先進后出O當分組引擎548獲的數(shù)據(jù)分組時,在一些實施例中,分組引擎548能夠確定是否可以修改數(shù)據(jù)分組。在確定了數(shù)據(jù)分組的哪部分可以被修改后,分組引擎548可以修改該數(shù)據(jù)分組。在一些實施例中,多核系統(tǒng)545可以被配置為指示在多核系統(tǒng)545上執(zhí)行的分組引擎548只修改數(shù)據(jù)分組的某些部分。在一些實施例中,分組引擎548可以確定不可以修改數(shù)據(jù)分組。在其他實施例中,多核系統(tǒng)545可以配置為使得數(shù)據(jù)分組不被修改,更確切的說,數(shù)據(jù)分組的元組的每個元素都被保持。這樣,當分組引擎548接收到數(shù)據(jù)分組時,分組引擎548既保持客戶機IP地址又保持客戶機端口,即源IP地址和源端口(步驟1010)。所以,分組引擎548將數(shù)據(jù)分組轉(zhuǎn)發(fā)或以其他方式發(fā)送到遠程計算機器或設(shè)備(步驟101。當發(fā)送后,數(shù)據(jù)分組保持元組,該元組包括下述元素客戶機IP地址;目的IP地址;客戶機端口;和目的端口。將經(jīng)修改的數(shù)據(jù)分組發(fā)送到遠程計算機器可以包括將經(jīng)修改的數(shù)據(jù)分組發(fā)送到由目的IP地址和/或目的端口識別的客戶機、服務(wù)器、設(shè)備或計算機器。在一些實施例中,在數(shù)據(jù)分組被發(fā)送到其目的計算機器或設(shè)備之前,將經(jīng)修改的數(shù)據(jù)分組發(fā)送到代理服務(wù)器或設(shè)備。在其他實施例中,在數(shù)據(jù)分組被發(fā)送到其目的計算機器或設(shè)備之前,將被修改的數(shù)據(jù)分組存儲在多核系統(tǒng)M5內(nèi)部的存儲器單元中。在一些實施例中,存儲器單元可以是全局高速緩存或由多核系統(tǒng)545中所有核和裝置共享的其他存儲器單元。在其他實施例中,存儲器單元可以是高速緩存或當前的核505可以訪問的其他存儲庫。圖IOB顯示的是圖IOA所示的方法1000的至少一部分的更詳細的實施例。圖IOB顯示的方法1050顯示了當所選擇的核505上的分組引擎548接收到轉(zhuǎn)發(fā)的數(shù)據(jù)分組時執(zhí)行的過程的實施例。當接收到數(shù)據(jù)分組(步驟105后,分組引擎548可以識別該數(shù)據(jù)分組的元組,并且對所識別的元組應(yīng)用上述哈希(步驟10M)。在應(yīng)用哈希后,分組引擎確定數(shù)據(jù)分組之前是否被該核處理過(步驟1058)。當做出的確定是數(shù)據(jù)分組之前被核505處理過時,分組引擎548開始處理數(shù)據(jù)分組(步驟1060)。當做出的確定是數(shù)據(jù)分組之前被另一個核505處理過,通過該哈希結(jié)果識別正確的目的核505(步驟106并且將數(shù)據(jù)分組轉(zhuǎn)發(fā)到該正確的目的核(步驟1064)。進一步更詳細的參考圖10B,在一個實施例中,方法1050可以由所選擇的核505上的分組引擎548執(zhí)行。在其他實施例中,方法1050可以由流分布器550的實例,或在所選擇的核505上執(zhí)行的其他流分布模塊來執(zhí)行。在一些實施例中,所選擇的核505為由在多核系統(tǒng)545上的執(zhí)行流分布器550或RSS模塊560基于對數(shù)據(jù)分組的元組的哈希選擇的核。所以,當多核系統(tǒng)545首先接收到數(shù)據(jù)分組時,流分布器550或RSS模塊560對數(shù)據(jù)分組的元組應(yīng)用任意上述哈希。該哈希的結(jié)果識別出多核系統(tǒng)545中的核505,并且流分布器550或RSS模塊560將數(shù)據(jù)分組轉(zhuǎn)發(fā)到所選擇的核505。在大多數(shù)實施例中,任何涉及所選擇的核505或當前的核505都是指由流分布器550或RSS模塊560基于與數(shù)據(jù)分組的關(guān)聯(lián)的元組選擇的核505。在一個實施例中,分組引擎548接收由流分布器550、RSS模塊560或任何其他流分布模塊轉(zhuǎn)發(fā)到所選擇的核505的數(shù)據(jù)分組(步驟105。分組引擎548可以直接接收數(shù)據(jù)分組,或者在一些實施例中,在核505上執(zhí)行的通信模塊可以接收和發(fā)送數(shù)據(jù)分組。在其他實施例中,在核505上執(zhí)行的虛擬NIC(未顯示)可以接收并發(fā)送數(shù)據(jù)分組。在一些實施例中,接收數(shù)據(jù)分組還可以包括從核505上的邏輯接收隊列中排出數(shù)據(jù)分組。邏輯接收隊列可以存儲發(fā)送到核505的數(shù)據(jù)分組。根據(jù)先進先出的訪問方法,分組引擎548可以通過從接收隊列排出或以其他方式獲取數(shù)據(jù)分組來訪問邏輯接收隊列中的數(shù)據(jù)分組。另一種可行的訪問方法可以是先進后出。在一些實施例中,分組引擎548對與接收到的數(shù)據(jù)分組關(guān)聯(lián)的元組應(yīng)用哈希(步驟10M),例如任意上述哈希。應(yīng)用哈希還可以包括首先識別數(shù)據(jù)分組的元組。確定數(shù)據(jù)分組的元組可以包括識別和串聯(lián)下述值客戶機IP地址;目的IP地址;客戶機端口;和目的端口。在一個實施例中,該元組包括這些值的串聯(lián)。在一些實施例中,分組引擎548執(zhí)行該串聯(lián),而在其他實施例中,該元組被包括在接收到的數(shù)據(jù)分組中。在一些實施例中,該哈希的結(jié)果識別目的核505。在一些實施例中,該核505識別當前的或所選擇的核505,而在其他實施例中,該結(jié)果識別與當前的或所選擇的核505不同的另一個核505。雖然圖IOB所示的方法1050包括步驟1054,但在一些實施例中,方法1050不包括步驟ΙΟΜ。在這些實施例中,對數(shù)據(jù)分組之前是否被當前的核505處理的確定可以通過下述方法完成比較數(shù)據(jù)分組的屬性與所述當前的核上的分組引擎548可以訪問的表格或列表。這些屬性可以是客戶機IP地址、客戶機端口、目的IP地址、目的端口、在元數(shù)據(jù)中存儲的標志、指示處理數(shù)據(jù)分組的之前的核的標記或可以存儲在表格或列表中的并且可以用于識別特定的核505是否處理過數(shù)據(jù)分組的任何其他屬性中的任何一種。可以在核505每次處理數(shù)據(jù)分組時由分組引擎548更新該表格或列表。所述更新可以包括指示具有某些特性的數(shù)據(jù)分組被核505處理過的記錄。分組引擎548可以檢查結(jié)果哈希值或跟蹤分組屬性的表格,以確定當前的核505之前是否處理過當前的數(shù)據(jù)分組。當分組引擎548確定該分組之前由當前的核505處理過時,分組引擎548繼續(xù)處理該數(shù)據(jù)分組(步驟1060)。當分組引擎548確定該分組之前沒有被當前的核505處理過時,分組引擎548識別正確的核505(步驟106并且將該數(shù)據(jù)分組轉(zhuǎn)發(fā)到正確的核(步驟1064)。在一些實施例中,確定正確的核505(步驟106包括檢查對數(shù)據(jù)分組的元組應(yīng)用哈希的結(jié)果(步驟10M)。該哈希結(jié)果可以被存儲在可以由核505訪問的高速緩存或另一個存儲器單元中,使得之后可以確定將被發(fā)送到錯誤地址的數(shù)據(jù)分組發(fā)送到哪里。在之前沒有應(yīng)用哈希的實施例中,所述分組引擎548可以對數(shù)據(jù)分組的元組應(yīng)用上述哈希以獲得結(jié)果哈希值。該結(jié)果哈希值識別與當前的或所選擇的核505不同的多核系統(tǒng)545中的核505。分組引擎548可以獲取關(guān)于所識別的核505的信息,并且將數(shù)據(jù)分組轉(zhuǎn)發(fā)到由該哈希結(jié)果識別的正確的目的核505(步驟1064)。將數(shù)據(jù)分組轉(zhuǎn)發(fā)到正確的目的核505(步驟1064)可以以下述兩種方法之一發(fā)生可以將數(shù)據(jù)分組復(fù)制到可以由當前的核505和正確的核505訪問的公共高速緩存或存儲器單元中,并且數(shù)據(jù)分組可以被正確的核505下載;或者,可以通過在其上多個核505互相通信的內(nèi)部網(wǎng)絡(luò)將數(shù)據(jù)分組發(fā)送到正確的核505。在數(shù)據(jù)分組被存儲在公共的存儲器單元的實施例中,分組引擎548將數(shù)據(jù)分組復(fù)制到公共高速緩存或公共存儲器單元中,并且發(fā)送消息到在正確的核上的分組引擎,通知其下載所復(fù)制的數(shù)據(jù)分組。核到核的消息傳輸系統(tǒng)或系統(tǒng)內(nèi)通信網(wǎng)絡(luò)可以被當前的核505的分組引擎548使用,以發(fā)送消息到正確的核505的分組引擎M8,所述消息指示另一個核505的分組引擎548從共享的高速緩存或存儲器元素中下載所復(fù)制的數(shù)據(jù)分組。在其中通過內(nèi)部網(wǎng)絡(luò)將數(shù)據(jù)分組發(fā)送到正確的核505的實施例中,當前的核505的分組引擎548獲取正確的核的分組引擎548的地址,并且將通過多核系統(tǒng)M5中的內(nèi)部網(wǎng)絡(luò)將數(shù)據(jù)分組轉(zhuǎn)發(fā)到該地址。在一些實施例中,當前的核的分組引擎將數(shù)據(jù)分組轉(zhuǎn)發(fā)到多核系統(tǒng)討5的控制核,該控制核然后將數(shù)據(jù)分組轉(zhuǎn)發(fā)到正確的核。在其他實施例中,當前的核的分組引擎將數(shù)據(jù)分組轉(zhuǎn)發(fā)到鄰近的核,該鄰近的核確定其不是正確的核并且將數(shù)據(jù)分組轉(zhuǎn)發(fā)到其鄰近的核。該過程持續(xù)進行直到正確的核接收到數(shù)據(jù)分組為止。圖IlA所示為用于將被分段的網(wǎng)絡(luò)業(yè)務(wù)分布在多核系統(tǒng)M5中的一個或多個核505上的方法1100的一個實施例。多核系統(tǒng)545接收數(shù)據(jù)分組分段(步驟1102),并且在多核系統(tǒng)M5內(nèi)執(zhí)行的流分布器550或RSS模塊560將數(shù)據(jù)分組分段組裝成完整的數(shù)據(jù)分組,直到得到分組頭部為止(步驟1104)。當?shù)玫椒纸M頭部后,在該頭部內(nèi)識別包括源IP地址、目的IP地址、源端口和目的端口的元組。流分布器550或RSS模塊560對該元組應(yīng)用哈希,并且該結(jié)果值識別在多核系統(tǒng)M5中的至少一個核505。識別核505之后,數(shù)據(jù)分組分段就被發(fā)送到所選擇的核505(步驟1106)。所選擇的核505上的分組引擎548接收該數(shù)據(jù)分組分段,并且將它們轉(zhuǎn)發(fā)到在所選擇的核505上執(zhí)行的分段模塊650(步驟1108)。當分段模塊650接收到數(shù)據(jù)分組分段時,分段模塊650從數(shù)據(jù)分組分段重組數(shù)據(jù)分組(步驟1110)。進一步更詳細的參考圖11A,在一個實施例中,所述方法1100可以由核505上執(zhí)行的分組引擎548來執(zhí)行。在又一個實施例中,方法1100可以由在核505上執(zhí)行的流分布器550或流分布器的實例來執(zhí)行。在其他實施例中,方法1100可以由可以在核505上執(zhí)行的流分布模塊或代理執(zhí)行。圖IlA中顯示從數(shù)據(jù)分組分段重組數(shù)據(jù)分組,在一些實施例中,數(shù)據(jù)分組的重組可以由多核系統(tǒng)討5中的控制核來處理。至少執(zhí)行圖IlA所示的方法1100的部分步驟的分組引擎548可以在特定的核505上執(zhí)行。在大多數(shù)實施例中,核505是事先通過對所述數(shù)據(jù)分組分段的元組應(yīng)用哈希來選擇的。在大多數(shù)情況下,這個元組至少包括客戶機IP地址、目的IP地址、客戶機端口和目的端口。在一些實施例中,該元組可以是任何上述的元組,并且可以包括任何數(shù)量的源或目的識別值。在其他實施例中,客戶機IP地址可以是識別數(shù)據(jù)分組源自的機器的源IP地址。相似地,客戶機端口可以是源端口。在一個實施例中,在多核系統(tǒng)M5內(nèi)執(zhí)行的流分布器550從位于多核系統(tǒng)545外部的遠程的計算機器或設(shè)備接收數(shù)據(jù)分組分段(步驟110。流分布器550可以直接接收數(shù)據(jù)分組分段,或者在一些實施例中,通信模塊可以接收和發(fā)送數(shù)據(jù)分組或數(shù)據(jù)分組分段。在其他實施例中,NIC552可以接收并且發(fā)送數(shù)據(jù)分組和數(shù)據(jù)分組分段。在一些實施例中,接收數(shù)據(jù)分組和數(shù)據(jù)分組分段還可以包括從NIC552上的接收隊列排出數(shù)據(jù)分組或數(shù)據(jù)分組分段。接收隊列可以存儲發(fā)送到多核系統(tǒng)M5的數(shù)據(jù)分組和數(shù)據(jù)分組分段。流分布器550可以根據(jù)先進先出訪問方法,通過從接收隊列排出或以其他方式獲取數(shù)據(jù)分組和數(shù)據(jù)分組分段來訪問在接收隊列中的數(shù)據(jù)分組和數(shù)據(jù)分組分段。另一種可行的訪問方法可以是先進后出。一旦流分布器550接收到了一個或多個數(shù)據(jù)分組分段(步驟1102),所述流分布器550可以開始從數(shù)據(jù)分組分段重組數(shù)據(jù)分組,直到得到分組頭部為止(步驟1104)。在一些實施例中,由流分布器550從接收到的數(shù)據(jù)分組分段重組整個數(shù)據(jù)分組。在其他實施例中,只有數(shù)據(jù)分組中那些組成所述頭部的部分被流分布器550重組。在其他實施例中,流分布器550可以開始從數(shù)據(jù)分組分段重組數(shù)據(jù)分組,直到流分布器550能夠從部分地組裝的數(shù)據(jù)分組中提取出下述信息源IP地址;目的IP地址;源端口;和目的端口。在許多實施例中,該信息被存儲在分組頭部中。這樣,當流分布器550確定所述部分重組的數(shù)據(jù)分組中至少一部分包括數(shù)據(jù)分組頭部時,流分布器550停止從數(shù)據(jù)分組分段重組數(shù)據(jù)分組。—旦頭部已經(jīng)被識別,所述流分布器550可以識別數(shù)據(jù)分組的元組,其中該元組可以是此處描述的任何元組。在一些實施例中,該元組包括從數(shù)據(jù)分組頭部中提取的下述值的串聯(lián)或字符串源IP地址;目的IP地址;源端口;和目的端口。一旦該元組被識別,所述流分布器550對所識別的元組應(yīng)用上述哈希。該哈希的結(jié)果識別多核系統(tǒng)M5中的核505。所識別的核505可以稱為目的核505。所述流分布器550,或多核系統(tǒng)M5內(nèi)的任何其他通信模塊,將數(shù)據(jù)分組分段發(fā)送到所述目的核505(步驟1106)。在目的核505上執(zhí)行的分組引擎548可以接收數(shù)據(jù)分組分段,并且將數(shù)據(jù)分組分段轉(zhuǎn)發(fā)到在目的核505上執(zhí)行的分段模塊650(步驟1108)。當接收到數(shù)據(jù)分組分段時,所分段模塊650從接收到的數(shù)據(jù)分組分段重組數(shù)據(jù)分組(步驟1110)。當上述方法1100部分被流分布器550部分地執(zhí)行時,那些由流分布器550執(zhí)行的步驟可以由在第一核505A上執(zhí)行的分組引擎548執(zhí)行。在一些實施例中,數(shù)據(jù)分組分段可以被轉(zhuǎn)發(fā)到默認核,該默認核專用于處理數(shù)據(jù)分組分段。該系統(tǒng)可以被配置為將所有數(shù)據(jù)分組分段轉(zhuǎn)發(fā)到具有分段模塊650或在其上執(zhí)行分段模塊650的實例的第一核505A,而不是用流分布器550或RSS模塊560處理數(shù)據(jù)分組分段。分段模塊650可以重組數(shù)據(jù)分組,直到用于由在默認的核上執(zhí)行的流分布器實例550提取的相關(guān)數(shù)據(jù)分組部分都可用。當在默認的核或第一核505A上執(zhí)行的分組引擎548接收到被分段的數(shù)據(jù)分組時,所述分組引擎548可以通過核到核的消息傳輸系統(tǒng),或通過多核系統(tǒng)內(nèi)的通信網(wǎng)絡(luò),將數(shù)據(jù)分組分段發(fā)送到目的核。在一些實施例中,發(fā)送數(shù)據(jù)分組分段(步驟1106)可以包括將數(shù)據(jù)分組分段拷貝到全局高速緩存或存儲器單元中,并且,向目的核或在目的核上執(zhí)行的分組引擎發(fā)送消息,該消息指示所述分組引擎從全局高速緩存下載數(shù)據(jù)分組分段。在其他實施例中,數(shù)據(jù)分組分段可以被封裝在另一個分組頭部中,該頭部指示該數(shù)據(jù)分組分段應(yīng)該被發(fā)送到目的核505的分組引擎M8??梢酝ㄟ^多核系統(tǒng)M5中的內(nèi)部網(wǎng)絡(luò)將這些數(shù)據(jù)分組分段發(fā)送到目的分組引擎。在其他實施例中可以由流分布器550或RSS模塊560執(zhí)行,上述方法1100,所述流分布器550或RSS模塊560還執(zhí)行或包括分段模塊。所述分段模塊可以處理所有由流分布器550或RSS模塊560攔截的或接收的數(shù)據(jù)分組分段。圖IlB顯示的是用于將數(shù)據(jù)分組分段分配或分布到多核系統(tǒng)545中核505的方法1150的又一個實施例。流分布器550或RSS模塊560接收數(shù)據(jù)分組分段(步驟1152),并且從數(shù)據(jù)分組分段組裝數(shù)據(jù)分組,直到得到分組頭部為止(步驟1巧4)。一旦頭部被重組,所述流分布器550或RSS模塊560可以提取下述值以創(chuàng)建元組或這些值的字符串,這些值為源IP地址;目的IP地址;源端口;和目的端口。在創(chuàng)建或識別所重組的頭部的元組后,對該元組應(yīng)用哈希。在大多數(shù)實施例中,該哈希結(jié)果識別多核系統(tǒng)M5中的核(步驟1156),該核可以稱為目的核。一旦目的核505被識別,可以確定分段動作(步驟1158)。如果所述分段動作為“組裝”(步驟1160),那么從數(shù)據(jù)分組分段重組數(shù)據(jù)分組(步驟1164),并且可以將所重組的數(shù)據(jù)分組發(fā)送到目的核的分組引擎(步驟1166)。當所述分段動作不是“組裝”時,可以將數(shù)據(jù)分組分段引導(dǎo)到目的核505上執(zhí)行的目的分組引擎(步驟1162)。進一步更詳細的參考圖11B,在一個實施例中,方法1150可以由在核505上執(zhí)行的分組引擎548執(zhí)行。在又一個實施例中,方法1150可以由在核505上執(zhí)行的流分布器550或流分布器的實例執(zhí)行。在其他實施例中,所述方法1100可以由可以在核505上執(zhí)行的任何流分布模塊或代理執(zhí)行。圖IlB中顯示從數(shù)據(jù)分組分段重組數(shù)據(jù)分組,在一些實施例中,數(shù)據(jù)分組的重組可以由多核系統(tǒng)M5中的控制核處理。執(zhí)行圖IlB所述的方法1150的至少部分步驟的分組引擎548可以在特定的核505上執(zhí)行。在大多數(shù)實施例中,核505是事先通過對數(shù)據(jù)分組分段的元組應(yīng)用哈希來選擇的。在大多數(shù)情況下,這個元組至少包括客戶機IP地址、目的IP地址、客戶機端口和目的端口。在一些實施例中,該元組可以是任何上述元組,并且可以包括任意數(shù)量的源或目的識別值。在其他實施例中,所述客戶機IP地址可以是識別數(shù)據(jù)分組源自的機器的源IP地址。相似地,所戶客戶機端口可以是源端口。在一個實施例中,在多核系統(tǒng)M5內(nèi)執(zhí)行的流分布器550從位于多核系統(tǒng)545外部的遠程的計算機器或設(shè)備接收數(shù)據(jù)分組分段(步驟115。流分布器550可以直接接收數(shù)據(jù)分組分段,或者在一些實施例中,通信模塊可以接收和發(fā)送數(shù)據(jù)分組或數(shù)據(jù)分組分段。在其他實施例中,NIC552可以接收并且發(fā)送數(shù)據(jù)分組和數(shù)據(jù)分組分段。在一些實施例中,接收數(shù)據(jù)分組和數(shù)據(jù)分組分段還可以包括從NIC552上的接收隊列排出數(shù)據(jù)分組或數(shù)據(jù)分組分段。接收隊列可以存儲發(fā)送到多核系統(tǒng)545的數(shù)據(jù)分組和數(shù)據(jù)分組分段。流分布器550可以根據(jù)先進先出訪問方法,通過從接收隊列排出或以其他方式獲取數(shù)據(jù)分組和數(shù)據(jù)分組分段來訪問在接收隊列中的數(shù)據(jù)分組和數(shù)據(jù)分組分段。另一種可行的訪問方法可以是先進后出?!┝鞣植计?50接收到了一個或多個數(shù)據(jù)分組分段(步驟1152),所述流分布器550可以開始從數(shù)據(jù)分組分段重組數(shù)據(jù)分組,直到得到分組頭部為止(步驟1巧4)。在一些實施例中,由所述流分布器550從接收到的數(shù)據(jù)分組分段重組整個數(shù)據(jù)分組。在其他實施例中,只有數(shù)據(jù)分組中那些組成所述頭部的部分被流分布器550組裝。在其他實施例中,流分布器550可以開始從數(shù)據(jù)分組分段重組數(shù)據(jù)分組,直到流分布器550能夠從部分組裝的數(shù)據(jù)分組中提取出下述信息源IP地址;目的IP地址;源端口;和目的端口。在許多實施例中,該信息被存儲在分組頭部中。這樣,當流分布器550確定所述部分重組的數(shù)據(jù)分組中至少一部分包括數(shù)據(jù)分組頭部時,流分布器550停止從數(shù)據(jù)分組分段重組數(shù)據(jù)分組。一旦頭部已被識別,所述流分布器550可以識別數(shù)據(jù)分組的元組,其中該元組可以是此處描述的任何元組。在一些實施例中,該元組包括從數(shù)據(jù)分組頭部中提取的下述值的串聯(lián)或字符串源IP地址;目的IP地址;源端口;和目的端口。一旦該元組被識別,所述流分布器550對所識別的元組應(yīng)用上述哈希。該哈希的結(jié)果識別多核系統(tǒng)545中的核505。所識別的核505可以稱為目的核505(步驟1156)。所述流分布器550然后可以確定與數(shù)據(jù)分組分段關(guān)聯(lián)的分段動作(步驟1158)。在一些實施例中,分段動作由多核系統(tǒng)545指定。管理員可以將多核系統(tǒng)545配置為通過將每個數(shù)據(jù)分組分段發(fā)送到重組分段的目的核來將數(shù)據(jù)分組分段“橋接”到目的核。在其他實施例中,管理員可以配置多核系統(tǒng)545為在將數(shù)據(jù)分組發(fā)送到目的核之前,將數(shù)據(jù)分組分段“組裝”成數(shù)據(jù)分組。在其他實施例中,可以在數(shù)據(jù)分組頭部中或與每個數(shù)據(jù)分組關(guān)聯(lián)的元數(shù)據(jù)中識別分段動作。在其他實施例中,可以基于下列條件的任意組合來決定是“組裝”還是“橋接”數(shù)據(jù)分組分段的數(shù)量;數(shù)據(jù)分組負載中的數(shù)據(jù)類型;每個數(shù)據(jù)分組分段的大小;數(shù)據(jù)分組的大??;源IP地址;目的IP地址;多核系統(tǒng)545中可用的處理資源的數(shù)量;或者任何其他因素。在流分布器550考慮數(shù)據(jù)分組大小的實施例中,當確定數(shù)據(jù)分組過大而不能根據(jù)“橋接”分段動作逐個地發(fā)送時,流分布器550可以“組裝”數(shù)據(jù)分組。當流分布器550考慮可用的處理資源的數(shù)量時,流分布器550可以分析目的核上的負載的數(shù)量,并且確定所述目的核是否具有足夠的可用的資源來組裝數(shù)據(jù)分組。在一些實施例中,可以基于確定所述目的核是否具有分段模塊650來決定是“組裝”還是“橋接”數(shù)據(jù)分組分段。在所述目的核具有分段模塊650的實施例中,數(shù)據(jù)分組分段被“橋接”。在所述目的核不具有分段模塊650的實施例中,數(shù)據(jù)分組分段被“組裝”。在一些實施例中,當分段動作為“組裝”時(步驟1160),由流分布器550或在流分布器內(nèi)執(zhí)行的分段模塊將數(shù)據(jù)分組重組成為數(shù)據(jù)分組(步驟1164)。當從數(shù)據(jù)分組分段組裝了數(shù)據(jù)分組,數(shù)據(jù)分組被發(fā)送到目的核,其中所述數(shù)據(jù)分組被目的核上執(zhí)行的分組引擎接收(步驟1166)。在一些實施例中,在將所重組的數(shù)據(jù)分組發(fā)送到目的核之前,將數(shù)據(jù)分組分段存儲在分段表655中。在一些實施例中,當分段動作為“橋接”時(步驟1160),數(shù)據(jù)分組被引導(dǎo)到重組它們的目的核(步驟1162)。在一些實施例中,在目的核上執(zhí)行的分組引擎接收數(shù)據(jù)分組分段,并且組裝它們或?qū)⑺鼈儼l(fā)送到重組它們的分段模塊650。在一些實施例中,在將每個數(shù)據(jù)分組分段發(fā)送到目的核之前,將數(shù)據(jù)分組分段存儲在分段表655中。在一些實施例中,數(shù)據(jù)分組分段以其被客戶機、服務(wù)器或其他計算機器或設(shè)備接收的順序被發(fā)送或引導(dǎo)到目的核。在數(shù)據(jù)分組具有TCP頭部以及下述任一發(fā)生的實施例中,所述分段動作為“組裝”所述業(yè)務(wù)命中Pcb;所述業(yè)務(wù)命中natpcb并且設(shè)置了“組裝分組”的標志;所述業(yè)務(wù)命中非UDP類型的所配置的服務(wù)或分組引擎;以及任何RNAT業(yè)務(wù)。如何這其中一個都沒有發(fā)生,那么所述分段動作為“橋接”。在數(shù)據(jù)分組具有UDP頭部以及下述任一發(fā)生的實施例中,所述分段動作為“組裝”所述業(yè)務(wù)命中natpcb并且設(shè)置了“組裝分組”的標志;所述業(yè)務(wù)命中非UDP類型的所配置的服務(wù)或者分組引擎。如何這其中一個都沒有發(fā)生,那么所述分段動作為“橋接”。在一些實施例中,可以通過進行服務(wù)、RNAT,pcb和natpcb查找來確定分段動作。在一些實施例中,可以在任何分組引擎上進行服務(wù)和RNAT查找。但是,管理連接的pcb/natpcb不能駐留在與接收分段的分組引擎相同的分組引擎中。當上述方法1150由流分布器550部分地執(zhí)行時,那些由流分布器550執(zhí)行的步驟可以由在第一核505A上執(zhí)行的分組引擎548執(zhí)行。在一些實施例中,數(shù)據(jù)分組分段可以被轉(zhuǎn)發(fā)到默認核,該默認核專用于處理數(shù)據(jù)分組分段。該系統(tǒng)可以配置為將所有數(shù)據(jù)分組分段轉(zhuǎn)發(fā)到具有分段模塊650或在其上執(zhí)行分段模塊650的實例的第一核505A,而不是用流分布器550或RSS模塊560處理數(shù)據(jù)分組分段。分組引擎548結(jié)合分段模塊650可以從數(shù)據(jù)分組分段重組數(shù)據(jù)分組,或?qū)?shù)據(jù)分組分段引導(dǎo)到目的核。當在默認核或第一核505A上執(zhí)行的分組引擎548接收到被分段的數(shù)據(jù)分組時,所述分組引擎548可以將數(shù)據(jù)分組分段或重組的數(shù)據(jù)分組通過核到核的消息傳輸系統(tǒng)或通過多核系統(tǒng)內(nèi)的通信網(wǎng)絡(luò)發(fā)送到目的核。在一些實施例中,發(fā)送數(shù)據(jù)分組分段或數(shù)據(jù)分組可以包括將數(shù)據(jù)分組分段或數(shù)據(jù)分組拷貝到全局高速緩存或存儲器單元,并且,向目的核或在目的核上執(zhí)行的分組引擎發(fā)送消息,該消息指示所述分組引擎從全局高速緩存下載數(shù)據(jù)分組分段或數(shù)據(jù)分組。在其他實施例中,數(shù)據(jù)分組或數(shù)據(jù)分組分段可以被封裝在另一個分組頭部中,該頭部指示數(shù)據(jù)分組分段應(yīng)該被發(fā)送到目的核505的分組引擎M8??梢酝ㄟ^多核系統(tǒng)M5中的內(nèi)部網(wǎng)絡(luò)將這些數(shù)據(jù)分組分段發(fā)送到目的分組引擎。在其他實施例中,可以由流分布器550或RSS模塊560執(zhí)行上述方法1150,所述流分布器550或RSS模塊560還執(zhí)行或包括分段模塊。所述分段模塊可以處理所有由流分布器550或RSS模塊560攔截的或接收的數(shù)據(jù)分組分段。圖12A顯示的是用于在多核系統(tǒng)M5中分布分組的方法1200的一個實施例。在該方法中,流分布器550或RSS模塊560接收數(shù)據(jù)分組(步驟120,并且識別數(shù)據(jù)分組的元組(步驟1204)。識別該元組后,對該元組應(yīng)用哈希以生成結(jié)果(步驟1206)并且將數(shù)據(jù)分組發(fā)送到由該哈希結(jié)果識別的核(步驟1208)。在一些實施例中,該數(shù)據(jù)分組可以由在所述核上的分組引擎548接收。分組引擎548可以保持包括在該元組內(nèi)的客戶機IP地址(步驟1210),但是,可以從所述核的多個端口中選擇端口(步驟1212)并且可以用確定的端口來修改該元組(步驟1214)。一旦該元組被修改,數(shù)據(jù)分組和經(jīng)修改的元組可以被發(fā)送到遠程計算機器(步驟1216)。繼續(xù)參考圖12A,更詳細地,在一個實施例中,所述方法1200與圖8所示的方法大體上相同。所以,步驟1202可以是圖8所示的步驟802的任何實施例,相似地,步驟1204可以是圖8所示的步驟804的任何實施例。步驟1206可以是圖8所示的步驟806的任何實施例,步驟1208可以是圖8所示的步驟808的任何實施例,并且步驟1216可以是圖8所示的步驟816的任何實施例。在一些實施例中,圖12A所示的方法1200與圖8所示的方法800的區(qū)別在于圖12A所示的方法1200保持所述客戶機IP地址。執(zhí)行圖12A所述的方法1200的步驟的分組引擎548可以在特定的核505上執(zhí)行。所以在大多數(shù)情況下,基于將上述哈希應(yīng)用到數(shù)據(jù)分組的元組,由分組引擎548接收的數(shù)據(jù)分組已經(jīng)被分配給了核505。大部分情況下,這個元組至少包括客戶機IP地址、目的IP地址、客戶機端口和目的端口。在一些實施例中,該元組可以是任何上述的元組,并且可以包括任何數(shù)量的源或目識別值。在其他實施例中,客戶機IP地址可以是識別數(shù)據(jù)分組的來源機器的源IP地址。相似地,客戶機端口可以是源端口。在一個實施例中,在多核系統(tǒng)M5的特定的核505上執(zhí)行的分組引擎548接收被分配給該特定的核505的數(shù)據(jù)分組(步驟1208)。分組引擎548可以直接接收數(shù)據(jù)分組,或者在一些實施例中,核505上執(zhí)行的通信模塊可以接收并發(fā)送數(shù)據(jù)分組。在其他實施例中,在核505上執(zhí)行的虛擬NIC(未顯示)可以接收并發(fā)送數(shù)據(jù)分組。在一些實施例中,接收數(shù)據(jù)分組還可以包括從核505上的邏輯接收隊列中排出數(shù)據(jù)分組。邏輯接收隊列可以存儲發(fā)送到核505的數(shù)據(jù)分組。根據(jù)先進先出的訪問方法,分組引擎548可以通過從接收隊列排出或以其他方式獲取數(shù)據(jù)分組來訪問邏輯接收隊列中的數(shù)據(jù)分組。另一種可行的訪問方法可以是先進后出。當分組引擎548獲得數(shù)據(jù)分組時,在一些實施例中,分組引擎548能夠確定是否修改該數(shù)據(jù)分組。在確定了數(shù)據(jù)分組的哪部分可以被修改后,分組引擎548可以修改該數(shù)據(jù)分組。在一些實施例中,多核系統(tǒng)545可以被配置為指示在多核系統(tǒng)M5內(nèi)執(zhí)行的分組引擎548只修改數(shù)據(jù)分組的某些部分。在一些實施例中,所述分組引擎548可以確定不能修改該數(shù)據(jù)分組。在其他實施例中,多核系統(tǒng)545可以被配置為使得數(shù)據(jù)分組不被修改,更確切的說,除了客戶機端口,數(shù)據(jù)分組的元組的每個元素都被保持。這樣,當分組引擎548接收到數(shù)據(jù)分組時,分組引擎548保持客戶機IP地址,即源IP地址(步驟1210)。在一個實施例中,所述分組引擎548從核505的多個端口中選擇端口(步驟1212)。該端口可以被確定,使得對修改的第一元組的哈希將識別當前的核505。這樣,對數(shù)據(jù)分組的響應(yīng)將被分配給所述當前的核505。一旦確定了端口,就用所識別的端口修改該元組(步驟1214),并且將經(jīng)修改的數(shù)據(jù)分組和元組轉(zhuǎn)發(fā)到遠程計算機器(步驟1216)。當被發(fā)送時,數(shù)據(jù)分組保持了包括下述元素的元組客戶機IP地址;目的IP地址;所選擇的端口;和目的端口。將經(jīng)修改的數(shù)據(jù)分組發(fā)送到遠程計算機器可以包括將經(jīng)修改的數(shù)據(jù)分組發(fā)送到由目的IP地址和/或目的端口識別的客戶機、服務(wù)器、設(shè)備或計算機器。在一些實施例中,在數(shù)據(jù)分組被發(fā)送到其目的計算機器或設(shè)備之前,將經(jīng)修改的數(shù)據(jù)分組發(fā)送到代理服務(wù)器或設(shè)備。在其他實施例中,在數(shù)據(jù)分組被發(fā)送到其目的計算機器或設(shè)備之前,將經(jīng)修改的數(shù)據(jù)分組存儲在多核系統(tǒng)M5內(nèi)部的存儲器單元中。在一些實施例中,所述存儲器單元可以是全局高速緩存或由多核系統(tǒng)545中所有核和裝置共享的其他存儲器單元。在其他實施例中,所述存儲器單元可以是高速緩存或當前的核505可訪問的其他存儲庫。圖12B顯示的是用于從所選擇的核505的端口分配表中選擇端口的方法1250的一個實施例。所選擇的核505上的分組引擎548計算對客戶機IP地址和目的IP地址的哈希(步驟1252),所述哈希識別所選擇的核505上的端口分配表(步驟1254)。一旦選擇了端口分配表,選擇該端口分配表中的端口(步驟1256)并且確定該端口是否為打開(步驟1258)。然后用所確定的端口修改數(shù)據(jù)分組的元組(步驟1260),并且將經(jīng)修改的數(shù)據(jù)分組和元組轉(zhuǎn)發(fā)到遠程計算機器(步驟1262)。繼續(xù)參考圖12B,更詳細地,在一個實施例中,在所選擇的核505上執(zhí)行的分組引擎548計算對客戶機IP地址和目的IP地址的哈希值(步驟125。計算所述哈希值可以包括串聯(lián)所述客戶機IP地址和目的IP地址以創(chuàng)建字符串或兩項元組。然后,所述分組引擎548對該二元組應(yīng)用上述哈希函數(shù)以生成結(jié)果值或哈希值。在許多實施例中,該哈希值識別在所選擇的核505上的端口分配表(步驟12M)。在一些實施例中,可能有多個與特定的核505關(guān)聯(lián)的端口分配表。確定從哪個端口分配表中選擇端口可以包括生成所述哈希值并且使用該哈希值來選擇相應(yīng)的端口分配表。在大多數(shù)實施例中,一旦分組引擎548選擇了端口分配表,所述分組引擎548可以進而從該端口分配表中選擇端口(步驟1256)。當選擇了端口時,需要確定該端口是否為正確的、打開的端口(步驟1258)。該確定可以通過圖9所示的方法900完成。當確定該端口為不正確的端口和/或關(guān)閉的且不可用的,所述分組引擎548可以從所選擇的端口分配表中選擇不同的端口。當選擇了新的端口,需要確定該端口是否為正確的且打開的。在一些實施例中,所述端口分配表中沒有既正確又可用的端口。在這些實施例中,可以選擇不同的端口分配表。然后從該新選擇的端口分配表中選擇端口,并且進行新的確定,確定是否所選擇的端口是否是既正確又可用的端口。當所選擇的端口為既正確的又打開的端口時,可以用所選擇的端口修改該數(shù)據(jù)分組的元組(步驟1260)。當使用所選擇的端口修改了該元組后,可以將經(jīng)修改的數(shù)據(jù)分組發(fā)送到遠程計算機器(步驟1沈2)。將經(jīng)修改的數(shù)據(jù)分組發(fā)送到遠程計算機器可以包括將經(jīng)修改的數(shù)據(jù)分組發(fā)送到由目的IP地址和/或目的端口識別的客戶機、服務(wù)器、設(shè)備或計算機器。在一些實施例中,在數(shù)據(jù)分組被發(fā)送到其目的計算機器或設(shè)備之前,將經(jīng)修改的數(shù)據(jù)分組發(fā)送到代理服務(wù)器或設(shè)備。在其他實施例中,在數(shù)據(jù)分組被發(fā)送到其目的計算機器或設(shè)備之前,將經(jīng)修改的數(shù)據(jù)分組存儲在多核系統(tǒng)M5中的存儲器單元內(nèi)。在一些實施例中,所述存儲器單元可以是全局高速緩存或由多核系統(tǒng)M5中所有核和裝置共享的其他存儲器單元。在其他實施例中,所述存儲器單元可以是高速緩存或當前的核505可以訪問的其他存儲庫。權(quán)利要求1.一種用于由流分布器將網(wǎng)絡(luò)分組定向到多個分組引擎中的一個分組引擎,同時保持客戶機互聯(lián)網(wǎng)協(xié)議地址和客戶機端口的方法,所述多個分組引擎的每一個在位于所述客戶機和服務(wù)器中間的多核系統(tǒng)中的多個核的核上執(zhí)行,所述方法包括a)由在位于客戶機和服務(wù)器中間的多核系統(tǒng)的第一核上的分組引擎從流分布器接收客戶機請求,所述客戶機請求識別第一元組,所述第一元組包括客戶機互聯(lián)網(wǎng)協(xié)議地址、客戶機端口、服務(wù)器互聯(lián)網(wǎng)協(xié)議地址和服務(wù)器端口,所述第一核由所述流分布器基于對所述第一元組的哈希來選擇以接收客戶機請求;b)由所述流分布器接收對由所述分組引擎轉(zhuǎn)發(fā)到所述服務(wù)器的客戶機請求的響應(yīng),所述響應(yīng)由所述服務(wù)器生成并且包括第二元組,所述第二元組通過對第二元組的哈希來識別與接收請求的分組引擎的第一核不同的第二核;c)由所述流分布器將所接收的響應(yīng)轉(zhuǎn)發(fā)到所述第二核的第二分組引擎;和d)響應(yīng)于在所述第二核上執(zhí)行的流分布器的規(guī)則,將由所述第二核接收的響應(yīng)定向到所述第一核。2.如權(quán)利要求1所述的方法,其中,步驟(c)還包括由所述第二核的第二分組引擎將所述響應(yīng)的一個或多個網(wǎng)絡(luò)分組存儲在所述第一核可訪問的存儲單元。3.如權(quán)利要求1所述的方法,還包括由第二核向所述第一核發(fā)送消息,以識別所述響應(yīng)將由所述第一核的分組引擎處理。4.如權(quán)利要求2所述的方法,其中,所述存儲單元為可以被所述多核系統(tǒng)中的每個核訪問的共享緩沖區(qū)。5.如權(quán)利要求1所述的方法,其中,步驟(c)還包括由所述第二核的第二分組引擎確定所述響應(yīng)對應(yīng)于沒有被所述第二分組引擎處理的請求。6.如權(quán)利要求5所述的方法,其中,確定所述響應(yīng)對應(yīng)于沒有被所述第二分組引擎處理的請求還包括計算對所述響應(yīng)的元組的哈希,所述哈希識別所述第一核。7.如權(quán)利要求5所述的方法,其中,確定所述響應(yīng)對應(yīng)于沒有被所述第二分組引擎處理的請求還包括在端口分配表中查找端口以識別所述第一核。8.如權(quán)利要求1所述的方法,其中,步驟(a)還包括由在所述第一核上的所述分組引擎將所述客戶機請求轉(zhuǎn)發(fā)到服務(wù)器。9.如權(quán)利要求8所述的方法,還包括保持在所述第一元組中的所述客戶機互聯(lián)網(wǎng)協(xié)議地址和所述客戶機端口。10.如權(quán)利要求1所述的方法,其中,步驟(b)還包括接收包括第二元組的響應(yīng),所述第二元組至少包括所述第一元組的所述客戶機互聯(lián)網(wǎng)協(xié)議地址和所述客戶機端口。11.如權(quán)利要求1所述的方法,其中,應(yīng)用到所述第一元組的哈希基本上與應(yīng)用到所述第二元組的哈希相同。12.如權(quán)利要求1所述的方法,其中,所述流分布器部分基于對所述第一元組的哈希選擇所述第一核。13.如權(quán)利要求1所述的方法,還包括響應(yīng)于被配置為保持客戶機互聯(lián)網(wǎng)協(xié)議地址的分組引擎,保持所述客戶機互聯(lián)網(wǎng)協(xié)議地址。14.如權(quán)利要求13所述的方法,還包括響應(yīng)于要求保持客戶機互聯(lián)網(wǎng)協(xié)議地址的安全策略,配置所述分組引擎。15.如權(quán)利要求1所述的方法,還包括響應(yīng)于被配置為保持客戶機端口的分組引擎,保持所述客戶機端口。16.如權(quán)利要求15所述的方法,還包括響應(yīng)于要求保持客戶機端口的安全策略,配置所述分組引擎。17.一種用于由流分布器將被分段的網(wǎng)絡(luò)分組定向到多個分組引擎中的一個分組引擎的方法,所述多個分組引擎的每一個在位于所述客戶機和服務(wù)器中間的多核系統(tǒng)中的多個核的相應(yīng)的核上執(zhí)行,所述方法包括a)由在所述位于客戶機和服務(wù)器中間的多核系統(tǒng)的第一核上的分組引擎從流分布器接收客戶機請求,所述客戶機請求識別第一元組,所述第一元組包括客戶機互聯(lián)網(wǎng)協(xié)議地址、客戶機端口、服務(wù)器互聯(lián)網(wǎng)協(xié)議地址和服務(wù)器端口,所述第一核由所述流分布器基于對所述第一元組的哈希來選擇以接收所述客戶機請求;b)由所述流分布器接收來自所述服務(wù)器的、對由所述第一核上的分組引擎轉(zhuǎn)發(fā)到所述服務(wù)器的客戶機請求的響應(yīng)的多個分段;c)響應(yīng)于由所述流分布器計算的、對由所述多個分段所識別的所述源互聯(lián)網(wǎng)協(xié)議地址和目的互聯(lián)網(wǎng)協(xié)議地址的第二哈希,由所述流分布器將所述響應(yīng)的多個分段分布到所述第二核;d)由所述第二核的第二分組引擎存儲所述多個分段,并且對所述多個分段執(zhí)行一個或多個分段動作;和e)由在所述第二核上操作的所述流分布器的規(guī)則確定將由所述第二核接收的所述多個分段定向到所述第一核。18.如權(quán)利要求17所述的方法,其中,步驟(d)還包括由所述第二分組引擎組裝所述多個分段。19.如權(quán)利要求18所述的方法,其中,步驟(e)還包括由所述第二分組引擎將所組裝的多個分段存儲到所述第一核可訪問的存儲單元。20.如權(quán)利要求19所述的方法,還包括由所述第二核向所述第一核發(fā)送消息,以指示所述第一核處理所組裝的多個分段。21.如權(quán)利要求17所述的方法,其中,所述步驟(e)還包括由所述第二核確定所述第一核建立該連接。22.如權(quán)利要求17所述的方法,其中,所述步驟(d)還包括執(zhí)行組裝動作。23.如權(quán)利要求17所述的方法,其中,所述步驟(d)還包括執(zhí)行橋接動作。24.如權(quán)利要求17所述的方法,還包括將多個分段引導(dǎo)到所述第一核。25.如權(quán)利要求17所述的方法,其中,所述步驟(b)還包括由所述流分布器組裝所述多個分段的一部分。26.如權(quán)利要求25所述的方法,其中,步驟(c)還包括從所組裝的多個分段的所述部分中提取所述第二元組的所述源互聯(lián)網(wǎng)協(xié)議地址和目的互聯(lián)網(wǎng)協(xié)議地址。27.如權(quán)利要求25所述的方法,還包括組裝所述多個分段的所述部分,直到所述響應(yīng)的頭部被組裝為止。28.如權(quán)利要求27所述的方法,還包括從所組裝的響應(yīng)的頭部中提取所述第二元組的所述源互聯(lián)網(wǎng)協(xié)議地址和目的互聯(lián)網(wǎng)協(xié)議地址。全文摘要此處描述的是用于在多核系統(tǒng)上分布完整的以及分段的請求和響應(yīng)的方法和系統(tǒng)。每個核都執(zhí)行分組引擎,所述分組引擎進一步處理被分配給該核的數(shù)據(jù)分組和數(shù)據(jù)分組分段。在多核系統(tǒng)中執(zhí)行的流分布器將客戶機請求轉(zhuǎn)發(fā)到核上的分組引擎,該核是基于當對元組應(yīng)用哈希時生成的值來選擇的,所述元組包括在所述請求中識別的客戶機IP地址、客戶機端口、服務(wù)器IP地址和服務(wù)器端口。所述分組引擎保持該元組的每個元素,并且將所述請求轉(zhuǎn)發(fā)到所選擇的核。所述分組引擎還可以通過下述方式處理數(shù)據(jù)分組分段在將分段發(fā)送到所選擇的核之前組裝所述分段,或者將數(shù)據(jù)分組分段發(fā)送到所選擇的核。文檔編號G06F9/50GK102549984SQ201080029106公開日2012年7月4日申請日期2010年5月5日優(yōu)先權(quán)日2009年5月5日發(fā)明者A·喬漢,H·伯特斯,R·塔拉,S·戈皮納斯申請人:思杰系統(tǒng)有限公司