。所述計算機可讀介質(zhì)340存儲有計算機可讀程序代碼,當(dāng)所述計算機可讀程序代碼使用所述存儲器模塊320由處理器模塊310執(zhí)行時,其可實現(xiàn)如本文中所描述的本發(fā)明的各種實施例。在一些實施例中,服務(wù)網(wǎng)關(guān)300可作為服務(wù)器負載均衡器、應(yīng)用交付控制器、服務(wù)交付平臺、流量管理器、安全網(wǎng)關(guān)、防火墻系統(tǒng)組件、虛擬專用網(wǎng)絡(luò)(VPN)組件、網(wǎng)絡(luò)代理網(wǎng)關(guān)、網(wǎng)絡(luò)應(yīng)用服務(wù)器,用于視頻服務(wù)器的負載均衡器,將負載分配到一個或多個服務(wù)器的網(wǎng)關(guān),Web或HTTP服務(wù)器,網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)網(wǎng)關(guān)或TCP服務(wù)器實現(xiàn)。
[0032]返回到圖1,服務(wù)網(wǎng)關(guān)300可實現(xiàn)TCP/IP層610,網(wǎng)絡(luò)代理層620,以及可包括應(yīng)用代理701和/或應(yīng)用代理702的至少一個應(yīng)用代理的功能。在一個實施例中,網(wǎng)絡(luò)代理層620在網(wǎng)絡(luò)接口模塊330中實現(xiàn),并且網(wǎng)絡(luò)接口模塊330可包括網(wǎng)絡(luò)處理器或能夠處理網(wǎng)絡(luò)代理層620的ASIC/FPGA電路。在一個實施例中,網(wǎng)絡(luò)代理層620在處理器模塊310中實現(xiàn)。
[0033]應(yīng)用會話400可以是通過服務(wù)網(wǎng)關(guān)300進行的TCP會話。在示例性實施例中,應(yīng)用代理701處理應(yīng)用會話400。服務(wù)網(wǎng)關(guān)300接收應(yīng)用會話400的數(shù)據(jù)包。TCP/IP層610接收并處理所接收的應(yīng)用會話400的數(shù)據(jù)包并將處理后的數(shù)據(jù)包傳到網(wǎng)絡(luò)代理層620。網(wǎng)絡(luò)代理層620將另外的處理提供給所述數(shù)據(jù)包并將處理后的數(shù)據(jù)包發(fā)送到應(yīng)用代理701。一旦處理了接收到的應(yīng)用會話400的數(shù)據(jù)包,應(yīng)用代理701可將基于接收到的應(yīng)用會話400數(shù)據(jù)包的響應(yīng)發(fā)送到網(wǎng)絡(luò)代理層620,所述網(wǎng)絡(luò)代理層反過來處理所述響應(yīng)并將所述響應(yīng)發(fā)送到TCP/IP層610,所述TCP/IP層610進一步處理從網(wǎng)絡(luò)代理層620接收到的響應(yīng)并將結(jié)果通過數(shù)據(jù)網(wǎng)絡(luò)501傳輸?shù)娇蛻舳嗽O(shè)備100或通過數(shù)據(jù)網(wǎng)絡(luò)503傳輸?shù)椒?wù)器200。
[0034]應(yīng)用代理701可能與服務(wù)于應(yīng)用會話400的服務(wù)器200的應(yīng)用有關(guān)。
[0035]圖3示出了網(wǎng)絡(luò)代理層620的示例性實施例。在一個實施例中,網(wǎng)絡(luò)代理層620可包括具有三種狀態(tài)(即客戶端已連接狀態(tài)621,服務(wù)器連接中狀態(tài)623和服務(wù)器已連接狀態(tài)625)的狀態(tài)機。在示例性實施例中,網(wǎng)絡(luò)代理層620從TCP/IP層610接收客戶端建立事件612。當(dāng)TCP/IP層610交換或與客戶端設(shè)備100成功建立TCP會話連接時,客戶端建立事件612可被接收。一旦接收到所述客戶端建立事件612,網(wǎng)絡(luò)代理層620設(shè)置為客戶端已連接狀態(tài)621。
[0036]在各種實施例中,網(wǎng)絡(luò)層620可向應(yīng)用代理701指出所述客戶端建立事件612。網(wǎng)絡(luò)代理層620可將客戶端連接事件629發(fā)送到應(yīng)用代理701以指示客戶端建立事件612的接收??蛻舳诉B接事件629可包括關(guān)于客戶端100的信息。客戶端連接事件629還可包括與所述客戶端設(shè)備100的TCP會話連接。
[0037]在一個實施例中,網(wǎng)絡(luò)代理層620可包括客戶端傳輸緩沖器622??蛻舳藗鬏斁彌_器622可存儲由應(yīng)用代理701向服務(wù)器200發(fā)送的客戶端數(shù)據(jù)??蛻舳藗鬏斁彌_器622將在下面做進一步描述。在示例性實施例中,網(wǎng)絡(luò)代理層620可判定所述客戶端傳輸緩沖器622不為空并且有在網(wǎng)絡(luò)代理層620處于客戶端已連接狀態(tài)時發(fā)送到服務(wù)器200的數(shù)據(jù)。然后網(wǎng)絡(luò)代理層620可切換到服務(wù)器連接中狀態(tài)623。網(wǎng)絡(luò)代理層620可建立與服務(wù)器200的TCP會話。在一個實施例中,網(wǎng)絡(luò)代理層620指示PCT/IP層610建立與服務(wù)器200的TCP會話。在一個實施例中,應(yīng)用代理701將用于TCP會話的服務(wù)器200的地址通知給網(wǎng)絡(luò)代理層620。在一個實施例中,所述客戶端傳輸緩沖器622包括所述服務(wù)器200的地址信息。
[0038]一旦TCP/IP層610與服務(wù)器200成功建立TCP會話,TCP/IP層610可將服務(wù)器建立事件615發(fā)送到網(wǎng)絡(luò)代理層620。一旦接收到所述服務(wù)器建立事件615,網(wǎng)絡(luò)代理層620可切換到服務(wù)器已連接狀態(tài)625。在所述服務(wù)器已連接狀態(tài)625,服務(wù)網(wǎng)關(guān)300具有與客戶端設(shè)備100的TCP會話和與服務(wù)器200的TCP會話。客戶端設(shè)備100和服務(wù)器200可通過服務(wù)網(wǎng)關(guān)300交換用于應(yīng)用會話400的數(shù)據(jù)包。
[0039]圖4示出了在客戶端設(shè)備100和服務(wù)器200之間交換的數(shù)據(jù)包的示例性實施例,其中應(yīng)用代理701處理所交換的數(shù)據(jù)包。
[0040]在示例性實施例中,網(wǎng)絡(luò)代理層620通過TCP/IP層610從客戶端設(shè)備100接收客戶端數(shù)據(jù)包617。網(wǎng)絡(luò)代理層620處理客戶端數(shù)據(jù)包617,使用客戶端數(shù)據(jù)包617生成客戶端接收到的數(shù)據(jù)627,并將客戶端接收到的數(shù)據(jù)627發(fā)送到應(yīng)用代理701。網(wǎng)絡(luò)代理層620還可在處理并組合來自所述客戶端設(shè)備100的一個或多個客戶端數(shù)據(jù)包之后將客戶端接收到的數(shù)據(jù)627發(fā)送到應(yīng)用代理701。此外,網(wǎng)絡(luò)代理層620還可在將客戶端數(shù)據(jù)包617發(fā)送到應(yīng)用代理701之前對客戶端數(shù)據(jù)包617進行一次或多次安全檢查或其它基于策略的服務(wù)。網(wǎng)絡(luò)代理層620還可包括客戶端接收到的數(shù)據(jù)627中的客戶端連接事件。
[0041]在一個實施例中,應(yīng)用代理701將數(shù)據(jù)放入客戶端傳輸緩沖器622中。應(yīng)用代理701還可將源于客戶端接收到的數(shù)據(jù)627的數(shù)據(jù)放入客戶端傳輸緩沖器622中。在一個實施例中,應(yīng)用代理701代表相應(yīng)的應(yīng)用對服務(wù)于應(yīng)用會話400的服務(wù)器200執(zhí)行代理功能。在各種實施例中,應(yīng)用代理701還可包括關(guān)于服務(wù)器200的信息。在示例性實施例中,應(yīng)用代理701基于客戶端接收到的數(shù)據(jù)627選擇服務(wù)器200。應(yīng)用代理701可包括關(guān)于服務(wù)器200的信息作為與服務(wù)器200建立會話的請求。網(wǎng)絡(luò)代理層620可檢測客戶端傳輸緩沖器622中的數(shù)據(jù)的存在,并通過與服務(wù)器200建立的服務(wù)器TCP會話上的TCP/IP層610將客戶端傳輸緩沖器622中的數(shù)據(jù)發(fā)送到服務(wù)器200??蛻舳藗鬏斁彌_器622中的數(shù)據(jù)可包括關(guān)于服務(wù)器200的信息。網(wǎng)關(guān)代理層620可以使用服務(wù)器信息來建立與服務(wù)器200的服務(wù)器TCP會話。如果所述服務(wù)器TCP會話不存在,網(wǎng)絡(luò)代理層620還可建立與服務(wù)器200的服務(wù)器TCP會話。在一個實施例中,如果關(guān)于服務(wù)器200的信息不同于現(xiàn)有的服務(wù)器TCP會話,網(wǎng)絡(luò)代理層620建立與服務(wù)器200的服務(wù)器TCP會話。
[0042]在示例性實施例中,網(wǎng)絡(luò)代理層620通過TCP/IP層610從服務(wù)器200接收服務(wù)器數(shù)據(jù)包618。在一個實施例中,網(wǎng)絡(luò)代理層620由服務(wù)器數(shù)據(jù)包618生成服務(wù)器接收到的數(shù)據(jù)628并將服務(wù)器接收到的數(shù)據(jù)628發(fā)送到應(yīng)用代理701。網(wǎng)絡(luò)代理層620可在生成服務(wù)器接收到的數(shù)據(jù)628之前進行另外的處理,例如對服務(wù)器數(shù)據(jù)包618的安全處理或修改。
[0043]在示例性實施例中,應(yīng)用代理701可將數(shù)據(jù)放入到服務(wù)器傳輸緩沖器624中。應(yīng)用代理701可將源于服務(wù)器接收到的數(shù)據(jù)628的數(shù)據(jù)放入服務(wù)器傳輸緩沖器624中。在一個實施例中,應(yīng)用代理701代表服務(wù)應(yīng)用對服務(wù)于應(yīng)用會話400的服務(wù)器200執(zhí)行代理功會K。
[0044]網(wǎng)絡(luò)代理層620也可檢測服務(wù)器傳輸緩沖器624中的數(shù)據(jù)的存在,并通過與客戶端設(shè)備100建立的客戶端TCP會話上的TCP/IP層610將服務(wù)器傳輸緩沖器624中的數(shù)據(jù)發(fā)送到客戶端設(shè)備100。
[0045]圖5示出了 HTTP應(yīng)用代理721的示例性實施例。在示例性實施例中,HTTP應(yīng)用代理721可包括客戶端請求狀態(tài)722和服務(wù)器響應(yīng)狀態(tài)724。HTTP應(yīng)用代理721可從網(wǎng)絡(luò)代理層620接收客戶端接收到的數(shù)據(jù)627。HTTP應(yīng)用代理721判定客戶端接收到的數(shù)據(jù)627是來自客戶端設(shè)備100的。然后HTTP應(yīng)用代理721設(shè)置為客戶端請求狀態(tài)722。HTTP應(yīng)用代理721檢查客戶端接收到的數(shù)據(jù)627并判定客戶端接收到的數(shù)據(jù)627包括HTTP請求726。
[0046]在一些實施例中,客戶端請求狀態(tài)722可包括HTTP請求協(xié)議分析器725,其判定客戶端接收到的數(shù)據(jù)627是否滿足HTTP請求協(xié)議。在示例性實施例中,HTTP請求協(xié)議分析器725判定客戶端接收到的數(shù)據(jù)627是否滿足所述協(xié)議。HTTP請求協(xié)議分析器725可生成顯示所述HTTP請求726的組件的記錄。HTTP應(yīng)用代理721可接著處理HTTP請求726。在一些實施例中,HTTP請求協(xié)議分析器可包括在網(wǎng)絡(luò)代理層620中并且網(wǎng)絡(luò)代理層620處理針對HTTP請求協(xié)議分析器725的客戶端接收到的數(shù)據(jù)627以生成所述HTTP請求726的記錄。在一些實施例中,客戶端接收到的數(shù)據(jù)627可包括所述HTTP請求726的記錄。
[0047]在示例性實施例中,HTTP應(yīng)用代理721可基于HTTP請求726選擇服務(wù)器200。HTTP應(yīng)用代理721還可基于服務(wù)器選擇策略(未示出)選擇服務(wù)器200。在示例性實施例中,HTTP應(yīng)用代理721可修改HTTP請求726并將HTTP請求或修改后的HTTP請求726放入客戶端傳輸緩沖器622中。HTT