專利名稱:基于會(huì)話高速緩存的http加速的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體涉及一種由設(shè)備執(zhí)行的方法以及網(wǎng)絡(luò)設(shè)備,其可以在 網(wǎng)絡(luò)設(shè)備內(nèi)為HTTP連接(諸如對同一網(wǎng)頁/網(wǎng)站的連接)提供快速會(huì)話創(chuàng)建路線。
背景技術(shù):
網(wǎng)絡(luò)安全設(shè)備典型地基于各種授權(quán)步驟(這些授權(quán)步驟被設(shè)計(jì)為將訪問限制到 僅執(zhí)行被批準(zhǔn)應(yīng)用程序的被授權(quán)用戶)來限制對網(wǎng)絡(luò)資源的訪問。以這種方式來準(zhǔn)許對客 戶機(jī)設(shè)備進(jìn)行訪問的一個(gè)問題在于,其典型地需要相當(dāng)大的處理資源來確定該客戶機(jī)設(shè)備 是否為執(zhí)行被批準(zhǔn)應(yīng)用程序的被授權(quán)用戶。此外,傳統(tǒng)的授權(quán)步驟不能很好地針對高速網(wǎng) 絡(luò)而按比例增加。經(jīng)由互聯(lián)網(wǎng)來訪問網(wǎng)頁是可以受到由網(wǎng)絡(luò)安全設(shè)備所進(jìn)行的篩選的一種類型 的網(wǎng)絡(luò)活動(dòng)的實(shí)例。當(dāng)用戶通過本地瀏覽器應(yīng)用程序(例如,互聯(lián)網(wǎng)瀏覽器、Netscape、 FireFox等)來訪問網(wǎng)頁(或網(wǎng)站)時(shí),該應(yīng)用程序下載對應(yīng)于該網(wǎng)頁的內(nèi)容并呈現(xiàn)(顯 示)該網(wǎng)頁。一個(gè)網(wǎng)頁一般包括一個(gè)或更多的組成文件(例如,排隊(duì)對象),組成文件代表 了組成由瀏覽器應(yīng)用程序所顯示的完整網(wǎng)頁的各個(gè)成分(例如,圖像、幀、文本等)。由唯一 標(biāo)識該網(wǎng)頁在該互聯(lián)網(wǎng)上的位置的統(tǒng)一資源定位器(URL)來標(biāo)識每個(gè)排隊(duì)對象(包括該網(wǎng) 頁本身)。一般用超文本鏈接標(biāo)示語言(HTML)來對網(wǎng)頁進(jìn)行編碼。為了顯示網(wǎng)頁,瀏覽器 應(yīng)用程序首先請求該網(wǎng)頁的內(nèi)容,然后解析與該網(wǎng)頁相關(guān)聯(lián)的HTML以收集對其余的URL和 指令的參考用于顯示該網(wǎng)頁。該瀏覽器應(yīng)用程序執(zhí)行要求獲得顯示該網(wǎng)頁所必須的其余排 隊(duì)對象的請求。對顯示一個(gè)網(wǎng)頁需要多長時(shí)間的度量可以稱作網(wǎng)頁的響應(yīng)時(shí)間或網(wǎng)頁下載響應(yīng) 時(shí)間。網(wǎng)頁下載響應(yīng)時(shí)間可以是與組成該網(wǎng)頁的排隊(duì)對象相關(guān)聯(lián)的累積的響應(yīng)時(shí)間(例 如,排隊(duì)對象響應(yīng)時(shí)間)的函數(shù)??梢越?jīng)由互聯(lián)網(wǎng)協(xié)議(諸如,超文本傳輸協(xié)議,HTTP)來訪 問網(wǎng)頁。當(dāng)今使用的最常見的HTTP版本是HTTP版本1. 1 (或HTTP1. 1)。HTTP 1. 1運(yùn)行在 傳輸控制協(xié)議(TCP)提供的傳輸層上。HTTP1. 1本身和HTTP 1. O (HTTP的早期版本)有所不 同,主要在于HTTP1. 1可以使用同一 TCP連接來查詢一個(gè)或更多排隊(duì)對象。對于HTTP1.0, 為各個(gè)單獨(dú)的排隊(duì)對象查詢建立單獨(dú)的TCP連接。然而,HTTP1. 1可能依賴于特定網(wǎng)絡(luò)瀏 覽器的實(shí)現(xiàn)方式和網(wǎng)絡(luò)瀏覽器所使用的策略以對這些連接進(jìn)行分組。
發(fā)明內(nèi)容
在一種實(shí)現(xiàn)方式中,由設(shè)備執(zhí)行的方法可以包括接收第一超文本傳輸協(xié)議 (HTTP)數(shù)據(jù)包;基于該HTTP數(shù)據(jù)包創(chuàng)建第一會(huì)話;以及創(chuàng)建第一會(huì)話的會(huì)話高速緩存條 目。該方法還可以包括接收第二 HTTP數(shù)據(jù)包;執(zhí)行會(huì)話高速緩存查找以識別第二 HTTP數(shù) 據(jù)包與會(huì)話高速緩沖條目的匹配;以及基于第二 HTTP數(shù)據(jù)包與會(huì)話高速緩存條目的匹配 創(chuàng)建第二 HTTP會(huì)話。在另一種實(shí)現(xiàn)方式中,一種設(shè)備可以包括用于存儲會(huì)話高速緩存和多條指令的存儲器、及處理器。處理器可以執(zhí)行存儲器中的指令用于接收第一超文本傳輸協(xié)議(HTTP) 數(shù)據(jù)包,基于HTTP數(shù)據(jù)包創(chuàng)建第一會(huì)話,將來自第一會(huì)話的信息存儲在會(huì)話高速緩存中, 接收第二 HTTP數(shù)據(jù)包,對來自第二 HTTP數(shù)據(jù)包的信息與來自存儲在會(huì)話高速緩存中的第 一會(huì)話的信息進(jìn)行匹配,并基于匹配的信息創(chuàng)建第二 HTTP會(huì)話。在又一種實(shí)現(xiàn)方式中,一種設(shè)備可以包括用于基于第一 HTTP數(shù)據(jù)包創(chuàng)建第一會(huì) 話的裝置,用于將來自第一會(huì)話的信息存儲在會(huì)話高速緩存中的裝置,用于接收第二 HTTP 數(shù)據(jù)包的裝置,用于基于存儲的來自第一會(huì)話的信息創(chuàng)建第二 HTTP會(huì)話的裝置,以及用于 建立(install)第二會(huì)話的裝置。在又一種實(shí)現(xiàn)方式中,一種計(jì)算機(jī)可讀存儲設(shè)備可以存儲計(jì)算機(jī)可執(zhí)行的指令。 該計(jì)算機(jī)可讀存儲器可以包括一個(gè)或更多用于接收超文本傳輸協(xié)議(HTTP)數(shù)據(jù)包的指 令;一個(gè)或更多用于執(zhí)行會(huì)話高速緩存查找以識別HTTP數(shù)據(jù)包與會(huì)話高速緩存條目的匹 配的指令,該會(huì)話高速緩存條目包括源IP地址字段、目的IP地址字段、目的端口字段、及協(xié) 議字段;一個(gè)或更多用于復(fù)制該會(huì)話高速緩存條目以創(chuàng)建用于該HTTP數(shù)據(jù)包的會(huì)話的指 令;以及一個(gè)或更多用于建立該HTTP數(shù)據(jù)包的會(huì)話的指令。
結(jié)合于此并構(gòu)成說明書一部分的附圖示出了本文描述的一個(gè)或多個(gè)實(shí)施例,并結(jié) 合說明書一起對這些實(shí)施例加以闡述。在附圖中圖1是示出了可以實(shí)現(xiàn)本文描述的系統(tǒng)和方法的示例性網(wǎng)絡(luò)的示圖;圖2是示出了圖1的客戶機(jī)、網(wǎng)絡(luò)設(shè)備、及服務(wù)器的示例性配置的框圖;圖3是圖2的網(wǎng)絡(luò)設(shè)備中實(shí)現(xiàn)的部件的示例性功能框圖;圖4是可以用于會(huì)話高速緩存查找的示例性會(huì)話高速緩存數(shù)據(jù)結(jié)構(gòu);圖5A和5B示出了當(dāng)啟動(dòng)一組HTTP連接時(shí)由圖2的網(wǎng)絡(luò)設(shè)備進(jìn)行的示例性HTTP 數(shù)據(jù)包處理;圖6示出了用于為HTTP連接提供快速會(huì)話創(chuàng)建路線的示例性過程;以及圖7示出了用于執(zhí)行圖6的第一路線處理的示例性過程。具體實(shí)現(xiàn)方式以下詳細(xì)描述參照了附圖。不同附圖中的相同參考標(biāo)號可以標(biāo)識相同或類似的元 件。此外,以下詳細(xì)描述不對本發(fā)明構(gòu)成限制。本文描述的系統(tǒng)和方法可以在網(wǎng)絡(luò)設(shè)備內(nèi)提供快速會(huì)話創(chuàng)建路線用于HTTP連 接,諸如用于同一網(wǎng)頁/網(wǎng)站的連接??梢曰谠谝粋€(gè)(或多個(gè))HTTP數(shù)據(jù)包中識別的源 互聯(lián)網(wǎng)協(xié)議(IP)地址、目的IP地址、目的端口、和/或協(xié)議來從第一連接創(chuàng)建會(huì)話高速緩 存。稍后可以使用會(huì)話高速緩存條目來復(fù)制新的會(huì)話用于隨后對同一網(wǎng)頁/網(wǎng)站的連接, 從而可以改善該網(wǎng)頁/網(wǎng)站的響應(yīng)時(shí)間。本文中所使用的術(shù)語“數(shù)據(jù)包”可以指所有類型的數(shù)據(jù)包或其他單位的信息或數(shù) 據(jù),包括但不限于固定長度單元和可變長度數(shù)據(jù)包,它們每種都可以或不可以劃分為較小 的數(shù)據(jù)包或單元。本文所使用的術(shù)語“數(shù)據(jù)包”還可以指數(shù)據(jù)包本身或數(shù)據(jù)包標(biāo)識符兩者, 諸如但不限于數(shù)據(jù)包的全部或一部分、或數(shù)據(jù)包報(bào)頭、數(shù)據(jù)結(jié)構(gòu)值、指針或索引、或數(shù)據(jù)包 的直接或間接標(biāo)識或任意其他部分或與其關(guān)聯(lián)的信息。
示例性網(wǎng)絡(luò)圖1是可以實(shí)現(xiàn)本文描述的系統(tǒng)和方法的示例性網(wǎng)絡(luò)100的示圖。網(wǎng)絡(luò)100可以 包括客戶機(jī)110-1、110-2、及110-3 (下文中總地稱作“多個(gè)客戶機(jī)110”及總地稱作“客戶 機(jī)100”);網(wǎng)絡(luò)設(shè)備120 ;服務(wù)器130 ;以及網(wǎng)絡(luò)140。為了簡明提供了圖1所示的示例性配 置。應(yīng)當(dāng)理解,典型的網(wǎng)絡(luò)可以包括比圖1所示的設(shè)備或多或少的設(shè)備。另外,可以在網(wǎng)絡(luò) 100中包括有助于在圖1所示的各個(gè)實(shí)體之間進(jìn)行通信的其他設(shè)備。每個(gè)客戶機(jī)110均可以包括諸如個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、個(gè)人數(shù)字助理 (PDA)、基于網(wǎng)絡(luò)的設(shè)備、無線電話、視頻游戲控制臺、或其他類型的計(jì)算或通信設(shè)備、或者 這些設(shè)備之一上運(yùn)行的程序的設(shè)備??蛻魴C(jī)100可以經(jīng)由有線、無線或光學(xué)連接通過網(wǎng)絡(luò) 140與服務(wù)器130進(jìn)行通信。網(wǎng)絡(luò)設(shè)備120可以包括防火墻設(shè)備、侵入竊密檢測系統(tǒng)、路由器、服務(wù)器、或執(zhí)行 與訪問網(wǎng)絡(luò)100中的資源(諸如服務(wù)器130和/或與服務(wù)器130相關(guān)聯(lián)的資源)相關(guān)聯(lián)的 安全相關(guān)功能的其他設(shè)備。網(wǎng)絡(luò)設(shè)備120可以應(yīng)用訪問策略來確定是否準(zhǔn)許、拒絕、或限制 對所期望資源的訪問。網(wǎng)絡(luò)設(shè)備120還可以執(zhí)行負(fù)載均衡以更高效地分配網(wǎng)絡(luò)通信量。網(wǎng) 絡(luò)設(shè)備120可以使用基于流的路由來使安全和通信量進(jìn)行決定加速。在一個(gè)示例性實(shí)現(xiàn)方 式中,如本文進(jìn)一步描述的,網(wǎng)絡(luò)設(shè)備120可以存儲HTTP會(huì)話信息并檢索HTTP會(huì)話信息以 使隨后的HTTP會(huì)話創(chuàng)建加速。服務(wù)器130可以包括一個(gè)服務(wù)器/計(jì)算設(shè)備、或一組服務(wù)器/計(jì)算設(shè)備,其向客戶 機(jī)110提供對網(wǎng)絡(luò)100中各種資源的訪問。在一些實(shí)現(xiàn)方式中,網(wǎng)絡(luò)資源位于服務(wù)器130 上。在其他實(shí)現(xiàn)方式中,網(wǎng)絡(luò)資源可以位于服務(wù)器130的外部(圖1中未示出)。在一個(gè)實(shí) 現(xiàn)方式中,服務(wù)器130可以包括用于接收超文本傳輸協(xié)議(HTTP)請求和/或用于向客戶機(jī) 提供HTTP響應(yīng)的應(yīng)用程序(例如,瀏覽器)。在一個(gè)實(shí)現(xiàn)方式中,網(wǎng)絡(luò)服務(wù)器130可以提供 靜態(tài)和/或動(dòng)態(tài)的網(wǎng)頁、節(jié)目等。網(wǎng)絡(luò)140可以包括一個(gè)或更多網(wǎng)絡(luò),諸如局域網(wǎng)(LAN)或私有網(wǎng)絡(luò)(諸如公司網(wǎng) 絡(luò)或企業(yè)內(nèi)部互聯(lián)網(wǎng))。網(wǎng)絡(luò)140還可以包括廣域網(wǎng)(WAN)、城域網(wǎng)(MAN)、電話網(wǎng)絡(luò)(諸如 公共交換電話網(wǎng)絡(luò)(PSTN))、互聯(lián)網(wǎng)、蜂窩網(wǎng)絡(luò)、衛(wèi)星網(wǎng)絡(luò)、其他類型網(wǎng)絡(luò)、或網(wǎng)絡(luò)組合。示例性網(wǎng)絡(luò)設(shè)備配置圖2示出了網(wǎng)絡(luò)設(shè)備120的示例性配置??梢砸灶愃品绞脚渲每蛻魴C(jī)110和服務(wù) 器130。網(wǎng)絡(luò)設(shè)備120可以包括總線210、處理器220、主存儲器230、只讀存儲器(ROM) 240、 存儲設(shè)備250、輸入設(shè)備260、輸出設(shè)備270、及通信接口 280??偩€210可以包括允許在網(wǎng) 絡(luò)設(shè)備120的這些元件之間進(jìn)行通信的路徑。處理器220可以包括處理器、微處理器、專用集成電路(ASIC)、現(xiàn)場可編程門陣列 (FPGA)、或可以解釋并執(zhí)行指令的處理邏輯。存儲器230可以包括隨機(jī)存取存儲器(RAM)或 者可以存儲由處理器220執(zhí)行的指令和信息的其他類型動(dòng)態(tài)存儲設(shè)備。在示例性實(shí)現(xiàn)方式 中,如本文中進(jìn)一步描述的,存儲器230可以包括用于HTTP會(huì)話信息的會(huì)話高速緩存。ROM 240可以包括ROM設(shè)備或可以存儲由處理器220使用的靜態(tài)信息和指令的其他類型靜態(tài)存 儲設(shè)備。存儲設(shè)備250可以包括磁和/或光學(xué)記錄介質(zhì)及其相應(yīng)驅(qū)動(dòng)器。輸入設(shè)備260可以包括允許操作者向網(wǎng)絡(luò)設(shè)備120輸入信息的機(jī)構(gòu),諸如鍵盤、鼠 標(biāo)、筆、語音識別和/或生物測定機(jī)構(gòu)等。輸出設(shè)備270可以包括向操作者輸出信息的機(jī)構(gòu),包括顯示器、打印機(jī)、揚(yáng)聲器等。通信接口 280可以包括類似于收發(fā)機(jī)的機(jī)構(gòu),該機(jī)構(gòu)允 許網(wǎng)絡(luò)設(shè)備120與其他設(shè)備和/或系統(tǒng)進(jìn)行通信。例如,通信接口 280可以包括調(diào)制解調(diào) 器或通向LAN的以太網(wǎng)接口??商鎿Q地,通信接口 280可以包括用于經(jīng)由網(wǎng)絡(luò)(諸如網(wǎng)絡(luò) 140)進(jìn)行通信的其他機(jī)構(gòu)。網(wǎng)絡(luò)設(shè)備120可以執(zhí)行與識別由客戶機(jī)110執(zhí)行的應(yīng)用程序以及提供訪問管理相 關(guān)聯(lián)的處理,以下將對其進(jìn)行詳細(xì)描述。根據(jù)一種示例性實(shí)現(xiàn)方式,響應(yīng)于處理器220執(zhí)行 包含在計(jì)算機(jī)可讀介質(zhì)(諸如存儲器230)中的指令序列,網(wǎng)絡(luò)設(shè)備120可以執(zhí)行這些操 作。計(jì)算機(jī)可讀介質(zhì)可以限定為物理存儲設(shè)備或邏輯存儲設(shè)備??梢詫④浖噶顝钠渌?jì)算機(jī)可讀介質(zhì)(諸如數(shù)據(jù)存儲設(shè)備250)或經(jīng)由通信接 口 280從其他設(shè)備中讀入到存儲器230中。包含在存儲器230中的軟件指令可以使處理器 220執(zhí)行稍后將描述的過程??商鎿Q地,可以使用硬線電路代替軟件指令,或者組合使用硬 線電路與軟件指令,來實(shí)現(xiàn)本文所描述的過程。因此,本文所描述的實(shí)現(xiàn)方式不局限于硬件 電路和軟件的任何特定組合。盡管圖2示出了網(wǎng)絡(luò)設(shè)備120的示例性部件,但在其他實(shí)現(xiàn)方式中,與圖2所示的 相比,網(wǎng)絡(luò)設(shè)備120可以包含少一些的部件、不同的部件、不同布置的部件、或額外的部件。 在又一種實(shí)現(xiàn)方式中,網(wǎng)絡(luò)設(shè)備120的一個(gè)部件可以執(zhí)行所描述的由網(wǎng)絡(luò)設(shè)備120的另一 部件執(zhí)行的一個(gè)或更多其他任務(wù)。示例性功能示3示出了由網(wǎng)絡(luò)設(shè)備120執(zhí)行的示例性處理功能。參照圖3,網(wǎng)絡(luò)設(shè)備120的處 理器220可以通過基于流的處理使安全和通信量進(jìn)行決定加速。一般而言,基于流的處理 可以使用會(huì)話狀態(tài)信息來使單獨(dú)的逐個(gè)數(shù)據(jù)包進(jìn)行的決定最小化并改善數(shù)據(jù)包吞吐量。如 所示,對于所有進(jìn)來的數(shù)據(jù)包,處理器220可以實(shí)施用于接收數(shù)據(jù)包的處理,對第2層的報(bào) 頭進(jìn)行去封裝(encapsulate),并實(shí)施會(huì)話查找300。在會(huì)話查找300處,處理器200可以 在第2層級處檢查通信量以確定數(shù)據(jù)包是否為新的會(huì)話或現(xiàn)有會(huì)話的一部分。依據(jù)在會(huì)話 查找300處識別的流(例如,新的或現(xiàn)有的會(huì)話),處理器220可以沿著兩條邏輯路線(第 一(慢)路線或快速路線)之一對數(shù)據(jù)包進(jìn)行處理。第一(慢)路線可以要求處理器220 創(chuàng)建新的會(huì)話并建立新的會(huì)話(會(huì)話創(chuàng)建/建立310),其可以包括會(huì)話設(shè)置步驟、實(shí)施策略 查找、路由查找、及其他活動(dòng)。會(huì)話創(chuàng)建/建立310還可以包括創(chuàng)建會(huì)話高速緩存條目,這 將在下面進(jìn)行描述??焖俾肪€處理320可以允許處理器220繞過與會(huì)話創(chuàng)建相關(guān)聯(lián)的大多 數(shù)步驟以更快速地轉(zhuǎn)發(fā)進(jìn)來的數(shù)據(jù)包。一般而言,可以利用邏輯級別/寄存器級別的硬件 來實(shí)現(xiàn)快速路線處理。在會(huì)話創(chuàng)建/建立310或快速路線處理320之后,處理器220可以 應(yīng)用可選服務(wù)、利用第2層報(bào)頭對數(shù)據(jù)包進(jìn)行去封裝,并將數(shù)據(jù)包朝向其目的地發(fā)送。當(dāng)客戶機(jī)(例如客戶機(jī)110)訪問(例如)網(wǎng)站時(shí),可以與一個(gè)服務(wù)器(例如服務(wù) 器130)建立多個(gè)HTTP連接。傳統(tǒng)上,通過第一(慢)路線對每個(gè)新連接的第一個(gè)數(shù)據(jù)包 (例如,HTTP同步(SYN)數(shù)據(jù)包)進(jìn)行處理,然后可以通過快速路線發(fā)送與該HTTP會(huì)話有 關(guān)的其余數(shù)據(jù)包。如本文稍后進(jìn)一步描述的,增添會(huì)話高速緩存查找330可以允許通過快 速會(huì)話創(chuàng)建340來發(fā)送新的HTTP連接的第一個(gè)數(shù)據(jù)包。典型的HTTP數(shù)據(jù)包報(bào)頭可以包括源IP地址、目的IP地址、源端口、目的端口、及 協(xié)議指示符(例如,HTTP)。已經(jīng)觀察到,針對一個(gè)特定網(wǎng)站或一個(gè)網(wǎng)頁的多個(gè)HTTP連接的參數(shù)可能具有某些共同特性。例如,用于這些連接中的每個(gè)連接的進(jìn)入的接口、源IP地址、 目的端口、策略、及路由常常相同。此外,目的IP地址在一小組地址之內(nèi)可以只具有局部差 異。對于一個(gè)特定網(wǎng)頁(或網(wǎng)站)的多個(gè)HTTP連接,只有源端口可能傾向于始終如一地變 化。因此,之前的HTTP連接的共同特性可以用于使隨后的HTTP連接的會(huì)話創(chuàng)建簡化。會(huì) 話高速緩存數(shù)據(jù)結(jié)構(gòu)存儲來自一個(gè)特定網(wǎng)站的之前多個(gè)HTTP連接的可重復(fù)使用信息。會(huì) 話高速緩存查找330可以使用該會(huì)話高速緩存確定可以通過快速會(huì)話創(chuàng)建340還是可以通 過較慢會(huì)話創(chuàng)建/建立310來引導(dǎo)數(shù)據(jù)包??焖贂?huì)話創(chuàng)建340可以復(fù)制來自匹配的會(huì)話高速緩存條目的軟件和硬件會(huì)話信 息。具體地,可以利用來自匹配的會(huì)話高速緩存條目的源IP地址、目的IP地址、目的端口、 協(xié)議、及會(huì)話權(quán)標(biāo)來繞過會(huì)話創(chuàng)建/建立310典型所需的大多數(shù)處理??梢栽跀?shù)據(jù)包被轉(zhuǎn) 發(fā)給快速路線處理320之前在快速會(huì)話創(chuàng)建340處完成硬件會(huì)話的建立(例如,基于數(shù)據(jù) 包的源端口)。示例性會(huì)話高速緩存數(shù)據(jù)結(jié)構(gòu)圖4提供了可以用于會(huì)話高速緩存查找的示例性會(huì)話高速緩存數(shù)據(jù)結(jié)構(gòu)400。處 理器220可以利用會(huì)話高速緩存400執(zhí)行會(huì)話高速緩存查找330??梢詣?chuàng)建會(huì)話高速緩存 400來存儲由之前第一路線處理為特定網(wǎng)站連接創(chuàng)建的可重復(fù)使用的軟件會(huì)話信息和硬件 會(huì)話信息。例如,當(dāng)在處理器220中通過慢路線對HTTP數(shù)據(jù)包進(jìn)行處理時(shí)在會(huì)話創(chuàng)建/建 立310期間可以創(chuàng)建會(huì)話高速緩存400的條目。參照圖4,會(huì)話高速緩存數(shù)據(jù)結(jié)構(gòu)400可以包括具有源IP地址字段410、目的IP 地址字段420、目的端口字段430、協(xié)議字段440、會(huì)話權(quán)標(biāo)字段450、及老化計(jì)數(shù)器字段(age counter field)460的表。源IP地址字段410可以代表源設(shè)備,諸如客戶機(jī)110。在這種 情況下,源IP地址字段410可以包括IP地址,諸如與客戶機(jī)110相關(guān)聯(lián)的IP地址。目的 IP地址字段420可以代表目的服務(wù)器,諸如服務(wù)器130。在這種情況下,目的IP地址420可 以包括IP地址,諸如與服務(wù)器130相關(guān)聯(lián)的IP地址或與網(wǎng)絡(luò)100中的其他服務(wù)器(未示 出)相關(guān)聯(lián)的IP地址。目的端口字段430可以包括這樣的信息,該信息標(biāo)識了與(例如) 從客戶機(jī)110傳送來的數(shù)據(jù)包相關(guān)聯(lián)的目的端口號。協(xié)議字段440可以代表與(例如)從 客戶機(jī)110傳送來的數(shù)據(jù)包相關(guān)聯(lián)的協(xié)議。會(huì)話權(quán)標(biāo)字段450可以標(biāo)識這樣的會(huì)話信息, 該會(huì)話信息表明(例如)用于特定會(huì)話的策略和/或路由信息。在其他實(shí)現(xiàn)方式中,源IP地址字段410、目的IP地址字段420、目的端口字段430、 協(xié)議字段440、及會(huì)話權(quán)標(biāo)字段450可以被結(jié)合為一個(gè)哈希值。在又一種實(shí)現(xiàn)方式中,會(huì)話 高速緩存數(shù)據(jù)結(jié)構(gòu)400可以包括少一些的字段、額外的字段、不同的字段、或不同布置的字 段。例如,在一種實(shí)現(xiàn)方式中,可以不使用會(huì)話權(quán)標(biāo)字段450。利用唯一會(huì)話和/或哈希值的標(biāo)識,處理器220可以生成存儲在會(huì)話高速緩存數(shù) 據(jù)結(jié)構(gòu)400中的新的條目。會(huì)話高速緩存數(shù)據(jù)結(jié)構(gòu)400中的每個(gè)條目還可以包括老化計(jì)數(shù) 器,當(dāng)對該特定條目有活動(dòng)時(shí)該老化技術(shù)器(例如,在老化計(jì)數(shù)器字段460中)復(fù)位。如果 老化計(jì)數(shù)器在特定時(shí)段(例如,60秒)內(nèi)沒有經(jīng)歷活動(dòng),則可以認(rèn)為相關(guān)聯(lián)的條目是“老化 掉的”或不活動(dòng)的??梢詣h除不活動(dòng)的條目以在會(huì)話高速緩存數(shù)據(jù)結(jié)構(gòu)400中為新的條目 創(chuàng)建空間。示例性的處理
圖5A和5B示出了當(dāng)啟動(dòng)一組HTTP連接(例如,用于訪問一個(gè)網(wǎng)站的一組HTTP連 接)時(shí)由網(wǎng)絡(luò)設(shè)備120的處理器220進(jìn)行的示例性HTTP數(shù)據(jù)包處理。假設(shè)在試圖從客戶 機(jī)(例如客戶機(jī)110)訪問新的網(wǎng)站(例如,在服務(wù)器130處)的第一連接處發(fā)送HTTPSYN 數(shù)據(jù)包510。此外假設(shè)在訪問同一網(wǎng)站時(shí)從同一客戶機(jī)隨后發(fā)送HTTP SYN數(shù)據(jù)包520。參照圖5A,會(huì)話查找300可以識別HTTP SYN數(shù)據(jù)包510并實(shí)施會(huì)話高速緩存查找 330。如果HTTP SYN數(shù)據(jù)包510不包括具有會(huì)話高速緩存數(shù)據(jù)結(jié)構(gòu)400中的匹配的報(bào)頭信 息,則HTTP SYN數(shù)據(jù)包510將在慢路線上發(fā)送到會(huì)話創(chuàng)建/建立310。在其他處理中,會(huì)話 創(chuàng)建/建立310可以創(chuàng)建對應(yīng)于HTTP SYN數(shù)據(jù)包510的報(bào)頭信息和/或會(huì)話權(quán)標(biāo)信息的 會(huì)話高速緩存條目。可以基于(例如)識別活動(dòng)的會(huì)話ID的會(huì)話查找300通過快速路線 處理對隨后在同一 HTTP會(huì)話中發(fā)送/接收的數(shù)據(jù)包(例如,HTTP SYN/確認(rèn)、HTTP確認(rèn)、 HTTP Get/Post、及 HTTP響應(yīng)數(shù)據(jù)包)進(jìn)行引導(dǎo)。參照圖5B,會(huì)話查找300可以識別HTTP SYN數(shù)據(jù)包520并實(shí)施會(huì)話高速緩存查 找330。HTTP SYN數(shù)據(jù)包520可以類似地包括具有會(huì)話高速緩存數(shù)據(jù)結(jié)構(gòu)400中的匹配的 報(bào)頭信息。具體地,HTTP SYN數(shù)據(jù)包520可以匹配來自HTTP SYN數(shù)據(jù)包510的之前存儲 的高速緩存的信息。如果HTTP SYN數(shù)據(jù)包520包括具有會(huì)話高速緩存數(shù)據(jù)結(jié)構(gòu)400中的 匹配的報(bào)頭信息,則HTTP SYN數(shù)據(jù)包520可以被引導(dǎo)到快速會(huì)話創(chuàng)建340,然后被引導(dǎo)到 快速路線處理320??梢曰?例如)會(huì)話查找300通過快速路線處理來引導(dǎo)對隨后在同 一 HTTP會(huì)話中發(fā)送/接收的數(shù)據(jù)包(例如,HTTP SYN/確認(rèn)、HTTP確認(rèn)、HTTP Get/Post、 及HTTP響應(yīng)數(shù)據(jù)包)的處理。圖6示出了用于為HTTP連接提供快速會(huì)話創(chuàng)建路線的示例性過程600。在一種實(shí) 現(xiàn)方式中,可以通過一個(gè)或更多網(wǎng)絡(luò)設(shè)備120來執(zhí)行示例性過程600??梢栽诰W(wǎng)絡(luò)(諸如網(wǎng) 絡(luò)140)上建立的TCP/IP連接中實(shí)現(xiàn)過程600。以下將在客戶機(jī)(諸如客戶機(jī)110)訪問來 自服務(wù)器(諸如服務(wù)器130)的基于HTML的網(wǎng)頁的上下文中描述過程600的實(shí)例。例如,處理可以由接收數(shù)據(jù)包(框610)并確定是否識別了該數(shù)據(jù)包的會(huì)話(框 620)開始。例如,網(wǎng)絡(luò)設(shè)備120可以接收TCP/IP數(shù)據(jù)包并執(zhí)行會(huì)話查找以確定該數(shù)據(jù)包 是否包括會(huì)話標(biāo)識符。該會(huì)話標(biāo)識符可以表明該數(shù)據(jù)包是之前識別的流的一部分。如果對 該數(shù)據(jù)包識別了會(huì)話(框620-是),則可以執(zhí)行快速路線處理(框690)。例如,網(wǎng)絡(luò)設(shè)備 120可以通過處理器220的快速處理路線320引導(dǎo)該數(shù)據(jù)包。如果未對該數(shù)據(jù)包識別會(huì)話(框620-否),則可以確定該數(shù)據(jù)包是否用于一個(gè)新 的HTTP連接(框630)。例如,網(wǎng)絡(luò)設(shè)備120可以確定該數(shù)據(jù)包是否為HTTP SYN數(shù)據(jù)包。 如果該數(shù)據(jù)包不是用于新的HTTP連接(框630-否),則可以對非HTTP數(shù)據(jù)包執(zhí)行基于流 的處理(框640)。例如,如果網(wǎng)絡(luò)設(shè)備120確定該數(shù)據(jù)包不與正在進(jìn)行的會(huì)話相關(guān)聯(lián)并且 該數(shù)據(jù)包未啟動(dòng)HTTP會(huì)話,則該數(shù)據(jù)包將經(jīng)歷傳統(tǒng)的處理,諸如傳統(tǒng)TCP/IP數(shù)據(jù)包的慢路 線處理。如果該數(shù)據(jù)包是用于新的HTTP連接(框630-是),則可以確定是否存在會(huì)話高 速緩存匹配(框650)。例如,在一種實(shí)現(xiàn)方式中,網(wǎng)絡(luò)設(shè)備120可以基于數(shù)據(jù)包的源IP地 址、目的IP地址、目的端口、協(xié)議、及會(huì)話權(quán)標(biāo)來實(shí)施會(huì)話高速緩存查找。如果不存在會(huì)話 高速緩存匹配(框650-否),則可以執(zhí)行第一路線處理(框660)。例如,網(wǎng)絡(luò)設(shè)備120可 以在處理器220內(nèi)將數(shù)據(jù)包引導(dǎo)至?xí)拕?chuàng)建/建立310。以下將參照圖7更詳細(xì)地對執(zhí)行第一路線處理加以描述。如果存在會(huì)話高速緩存匹配(框650-是),則可以從會(huì)話高速緩存中復(fù)制軟件和 硬件會(huì)話信息(框670)。例如,網(wǎng)絡(luò)設(shè)備120可以將數(shù)據(jù)包引導(dǎo)至快速會(huì)話創(chuàng)建340以從 匹配的會(huì)話高速緩存條目中拷貝源IP地址、目的IP地址、目的端口、協(xié)議、及會(huì)話權(quán)標(biāo)??梢越⒂布?huì)話(框680)。例如,網(wǎng)絡(luò)設(shè)備120 (例如,快速會(huì)話創(chuàng)建340)可以 基于該數(shù)據(jù)包的源端口來建立硬件會(huì)話。在建立硬件會(huì)話之后,可以完成快速會(huì)話創(chuàng)建并 可以執(zhí)行快速路線處理(框690)。圖7是用于執(zhí)行上述的關(guān)于框660的第一路線處理的示例性過程。可以創(chuàng)建HTTP 會(huì)話(框710)。例如,網(wǎng)絡(luò)設(shè)備120可以基于(例如)HTTP SYN數(shù)據(jù)包的源IP地址、目的 IP地址、源端口、目的端口、及協(xié)議以傳統(tǒng)的方式來創(chuàng)建新的HTTP會(huì)話。可以創(chuàng)建會(huì)話高速緩存條目(框720)。例如,網(wǎng)絡(luò)設(shè)備120可以創(chuàng)建包括了 HTTP SYN數(shù)據(jù)包的源IP地址、目的IP地址、協(xié)議、及會(huì)話權(quán)標(biāo)的會(huì)話高速緩存條目。會(huì)話高速緩 存條目可以存儲在存儲器(例如,存儲器230)中,供隨后的HTTP數(shù)據(jù)包的會(huì)話高速緩存查 找330所用。
可以建立會(huì)話(框730)。例如,網(wǎng)絡(luò)設(shè)備120可以按照傳統(tǒng)方式建立用于新的 HTTP連接的會(huì)話??梢詫⒂布?huì)話拷貝到高速緩存表(框740)。例如,在一種實(shí)現(xiàn)方式,網(wǎng)絡(luò)設(shè)備 120可以將硬件會(huì)話信息(例如,目的端口)拷貝到與用于該HTTP SYN數(shù)據(jù)包的之前高速 緩存的新會(huì)話相對應(yīng)的會(huì)話高速緩存條目。在另一種實(shí)現(xiàn)方式中,硬件會(huì)話信息可以存儲 在單獨(dú)的高速緩存表(諸如全球高速緩存端口表)中。將硬件會(huì)話拷貝到高速緩存表可以 是可選的。進(jìn)來的數(shù)據(jù)包的目的端口信息可以可選地用于搜索會(huì)話高速緩存條目。例如, 如果HTTP SYN數(shù)據(jù)包的目的端口與端口高速緩存表中的一個(gè)條目相匹配,則可以實(shí)施對相 應(yīng)會(huì)話高速緩存的搜索。結(jié)論本文描述的實(shí)現(xiàn)方式可以使得能夠進(jìn)行HTTP連接的高速會(huì)話創(chuàng)建。系統(tǒng)和/或 方法可以包括接收第一超文件傳輸協(xié)議(HTTP)數(shù)據(jù)包、基于該HTTP數(shù)據(jù)包來創(chuàng)建第一會(huì) 話、以及創(chuàng)建用于第一會(huì)話的會(huì)話高速緩存條目。當(dāng)接收到第二 HTTP數(shù)據(jù)包時(shí),可以執(zhí)行 會(huì)話高速緩存查找來識別第二 HTTP數(shù)據(jù)包與該會(huì)話高速緩存條目的匹配??梢曰诘诙?HTTP數(shù)據(jù)包與會(huì)話高速緩存條目的匹配來創(chuàng)建第二 HTTP會(huì)話。前面的實(shí)現(xiàn)方式描述提供了示例和描述,但不旨在排他或?qū)⒈景l(fā)明限制到所公開 的精確形式。根據(jù)上述教導(dǎo)可以進(jìn)行或者可以獲得改變和變化。此外,盡管已參照圖5-7描述了多個(gè)系列框,但是在其他實(shí)現(xiàn)方式中可以改變這 些框的順序。此外,可以平行執(zhí)行多個(gè)非依賴性的框。顯而易見的是,可以按照附圖所示的那些實(shí)現(xiàn)方式中的軟件、固件、及硬件的許多 不同形式實(shí)現(xiàn)本文所描述的多個(gè)方面。用于實(shí)現(xiàn)這些方面的實(shí)際的軟件代碼或特定控制硬 件不對本發(fā)明構(gòu)成限制。因此,沒有參照特定軟件代碼來描述這些方面的操作和行為,可以 理解,可以將軟件和控制硬件設(shè)計(jì)為基于本文中的描述來實(shí)現(xiàn)這些方面。此外,本文所描述的特定實(shí)現(xiàn)方式可以被實(shí)現(xiàn)為執(zhí)行一個(gè)或更多功能的“邏輯”。 該邏輯可以包括硬件(諸如處理器、微處理器、專用集成電路或現(xiàn)場可編程門陣列)或硬件和軟件的組合。要強(qiáng)調(diào)的是,術(shù)語“包括(comprise/comprising) ”被用在本文中時(shí),用來指明出現(xiàn) 了所陳述的特征、整體、步驟、或部件,而不是排除出現(xiàn)或增添一個(gè)或更多其他特征、整體、 步驟、部件、或其組合。
此外,本文所使用的術(shù)語“表”和“數(shù)據(jù)庫”可以指代物理存儲設(shè)備或邏輯存儲設(shè) 備中的任意可搜索的數(shù)據(jù)形式或布置。盡管在權(quán)利要求中書面陳述了和/或在本說明書中公開了多個(gè)特征的特定組合, 但是這些組合不旨在限制本發(fā)明的公開。實(shí)際上,可以按照多種未在權(quán)利要求書中具體書 面陳述和/或在說明書中公開的方式對這些特征中的許多特征進(jìn)行組合。本申請中使用的元件、動(dòng)作、或指令均不可解釋為對于本發(fā)明來說是關(guān)鍵的或?qū)?質(zhì)的,除非明確地這樣描述。同樣,作為在本文中使用的,冠詞“一個(gè)“a””旨在包括多于一 個(gè)的條目。在旨在描述一個(gè)項(xiàng)目的情況下,使用術(shù)語“一個(gè)(one)”或類似語言。此外,術(shù)語 “基于”旨在表達(dá)“至少部分地基于”,除非以其他方式明確陳述。
權(quán)利要求
一種由設(shè)備執(zhí)行的方法,包括接收第一超文本傳輸協(xié)議(HTTP)數(shù)據(jù)包;基于所述HTTP數(shù)據(jù)包創(chuàng)建第一會(huì)話;為所述第一會(huì)話創(chuàng)建會(huì)話高速緩存條目;接收第二HTTP數(shù)據(jù)包;執(zhí)行會(huì)話高速緩存查找以識別所述第二HTTP數(shù)據(jù)包與所述會(huì)話高速緩沖條目的匹配;以及基于所述第二HTTP數(shù)據(jù)包與所述會(huì)話高速緩存條目的匹配來創(chuàng)建第二HTTP會(huì)話。
2.根據(jù)權(quán)利要求1所述的方法,其中,創(chuàng)建所述第二HTTP會(huì)話包括 從所述會(huì)話高速緩存條目復(fù)制軟件和硬件會(huì)話信息;以及為所述第二 HTTP會(huì)話建立硬件會(huì)話。
3.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括 建立所述第一會(huì)話;以及將所述第一會(huì)話的硬件會(huì)話拷貝到目的端口高速緩存。
4 根據(jù)權(quán)利要求1所述的方法,其中,所述會(huì)話高速緩存條目是基于所述第一HTTP數(shù) 據(jù)包的源IP地址、目的IP地址、目的端口、及協(xié)議。
5.根據(jù)權(quán)利要求4所述的方法,其中,所述會(huì)話高速緩存條目是進(jìn)一步基于所述第一 數(shù)據(jù)包的會(huì)話權(quán)標(biāo)。
6.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括將所述會(huì)話高速緩存條目存儲在會(huì)話高 速緩存表中,其中,所述表包括用于各條目的老化計(jì)數(shù)器,所述老化計(jì)數(shù)器在不活動(dòng)的特定 時(shí)段后觸發(fā)對所述會(huì)話高速緩存條目的刪除。
7.根據(jù)權(quán)利要求5所述的方法,其中,所述設(shè)備包括 交換機(jī);路由器; 網(wǎng)關(guān);服務(wù)器設(shè)備;或 防火墻設(shè)備。
8.根據(jù)權(quán)利1所述的方法,其中,所述第一HTTP數(shù)據(jù)包和所述第二HTTP數(shù)據(jù)包是HTTP 同步(SYN)數(shù)據(jù)包。
9.一種設(shè)備,包括存儲器,用于存儲會(huì)話高速緩存和多條指令;處理器,用于執(zhí)行所述存儲器中的指令,以接收第一超文本傳輸協(xié)議(HTTP)數(shù)據(jù)包;基于所述HTTP數(shù)據(jù)包來創(chuàng)建第一會(huì)話;將來自所述第一會(huì)話的信息存儲在所述會(huì)話高速緩存中;接收第二 HTTP數(shù)據(jù)包;對來自所述第二 HTTP數(shù)據(jù)包的信息與來自存儲在所述會(huì)話高速緩存中的所述第一會(huì) 話的信息進(jìn)行匹配;以及基于匹配的信息創(chuàng)建第二 HTTP會(huì)話。
10.根據(jù)權(quán)利要求9的設(shè)備,其中,所述存儲器中的用于基于匹配的信息創(chuàng)建所述第二 會(huì)話的指令包括這樣的指令,這些指令用于從所述會(huì)話高速緩存條目復(fù)制軟件和硬件會(huì)話信息;以及 為所述所述第二 HTTP會(huì)話建立硬件會(huì)話。
11.根據(jù)權(quán)利要求9的設(shè)備,其中,所述處理器進(jìn)一步執(zhí)行所述存儲器中的指令,以 建立所述第一會(huì)話;以及將所述第一會(huì)話的硬件會(huì)話拷貝到目的端口高速緩存。
12.根據(jù)權(quán)利要求9所述的設(shè)備,其中,所述會(huì)話高速緩存條目是基于所述第一HTTP數(shù) 據(jù)包的源IP地址、目的IP地址、目的端口、及協(xié)議。
13.根據(jù)權(quán)利要求9所述的設(shè)備,其中,所述會(huì)話高速緩存條目是進(jìn)一步基于用于所述 第一數(shù)據(jù)包的會(huì)話權(quán)標(biāo)。
14.根據(jù)權(quán)利要求9所述的設(shè)備,其中,所述設(shè)備包括 交換機(jī);路由器; 網(wǎng)關(guān);服務(wù)器設(shè)備;或 防火墻設(shè)備。
15.根據(jù)權(quán)利要求9所述的設(shè)備,其中,所述會(huì)話高速緩存包括用于各條目的老化計(jì)數(shù) 器,所述老化計(jì)數(shù)器在不活動(dòng)的特定時(shí)段后觸發(fā)對所述會(huì)話高速緩存條目的刪除。
16.根據(jù)權(quán)利要求9所述的設(shè)備,其中,所述第一HTTP數(shù)據(jù)包和所述第二 HTTP數(shù)據(jù)包 是HTTP SYN數(shù)據(jù)包。
17.一種設(shè)備,包括用于基于第一超文本傳輸協(xié)議(HTTP)數(shù)據(jù)包創(chuàng)建第一會(huì)話的裝置; 用于將來自所述第一會(huì)話的信息存儲在會(huì)話高速緩存中的裝置; 用于接收第二 HTTP數(shù)據(jù)包的裝置;用于基于存儲的來自所述第一會(huì)話的信息創(chuàng)建第二 HTTP會(huì)話的裝置;以及 用于建立所述第二會(huì)話的裝置。
18.根據(jù)權(quán)利要求17所述的設(shè)備,進(jìn)一步包括用于基于所述第二 HTTP數(shù)據(jù)包中的報(bào)頭信息實(shí)施所述會(huì)話高速緩存中的查找的裝置。
19.一種存儲計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀存儲設(shè)備,包括 一個(gè)或更多用于接收超文本傳輸協(xié)議(HTTP)數(shù)據(jù)包的指令;一個(gè)或更多用于執(zhí)行會(huì)話高速緩存查找以識別所述HTTP數(shù)據(jù)包與會(huì)話高速緩存條目 的匹配的指令,所述會(huì)話高速緩存條目包括源IP地址字段、目的IP地址字段、目的端口字 段、及協(xié)議字段;一個(gè)或更多用于復(fù)制所述會(huì)話高速緩存條目以創(chuàng)建用于所述HTTP數(shù)據(jù)包的會(huì)話的指 令;以及一個(gè)或更多用于建立所述HTTP數(shù)據(jù)包的會(huì)話的指令。
20.根據(jù)權(quán)利要求19所述的計(jì)算機(jī)可讀存儲設(shè)備,其中,所述計(jì)算機(jī)可讀存儲設(shè)備設(shè)置在交換機(jī)、路由器、網(wǎng)關(guān)、服務(wù)器設(shè)備、或防火墻設(shè)備之一中。
21.根據(jù)權(quán)利要求19所述的計(jì)算機(jī)可讀存儲設(shè)備,進(jìn)一步包括 一個(gè)或更多用于基于之前接收到的HTTP數(shù)據(jù)包來創(chuàng)建之前的會(huì)話的指令; 一個(gè)或更多用于基于所述之前的會(huì)話來創(chuàng)建會(huì)話高速緩存條目的指令。
全文摘要
一種由設(shè)備執(zhí)行的方法包括接收第一超文本傳輸協(xié)議(HTTP)數(shù)據(jù)包;基于HTTP數(shù)據(jù)包創(chuàng)建第一會(huì)話;以及為第一會(huì)話創(chuàng)建會(huì)話高速緩存條目。該方法還包括接收第二HTTP數(shù)據(jù)包;執(zhí)行會(huì)話高速緩存查找以識別第二HTTP數(shù)據(jù)包與會(huì)話高速緩存條目的匹配;以及基于第二HTTP數(shù)據(jù)包與會(huì)話高速緩存條目的匹配來創(chuàng)建第二HTTP會(huì)話。
文檔編號H04L12/56GK101834777SQ20091012710
公開日2010年9月15日 申請日期2009年3月11日 優(yōu)先權(quán)日2009年3月11日
發(fā)明者萬朝華, 郭衛(wèi)華, 陳天 申請人:叢林網(wǎng)絡(luò)公司