專利名稱:在不對稱路由網絡中處理通信流的制作方法
技術領域:
本發(fā)明涉及計算機網絡并且例如涉及在具有不對稱通信數據路徑的計算機網絡中處理數據流。
背景技術:
一般的計算機網絡(諸如網絡協議(IP)網絡)支持各種網絡裝置之間的通信,網絡裝置可以包括個人計算機、膝上型電腦、工作站、個人數字助理(PDA)、無線電設備、網絡就緒儀器、文件服務器、打印服務器、路由器或其它裝置。當兩種裝置通信的時候,所述裝置使用通信協議(諸如傳輸控制協議(TCP))建立通信會話。稱為路由器的裝置通過和所述裝置連接的網絡傳遞與通信會話有關的數據包。用于TCP會話裝置之間的數據包的信息流一般稱為TCP流。
各種TCP流的處理可以由中間裝置完成,所述中間裝置位于沿著由組成TCP流的包采用的路徑。一般在裝置之間的TCP流上執(zhí)行的這種處理的一些實例包括TCP加速(acceleration)、使用TCP應用層軟件應用程序的加速和侵入入侵檢測(intrusion detection)。
然而,用于有效執(zhí)行中間處理的一個通用的必要條件是使TCP流的每個方向上的所有的包通過用于執(zhí)行處理的單個中間裝置。在具有多個路徑的網絡中,有時稱作不對稱路由網絡,通常它不可能滿足這種必要條件。在不對稱路由網絡中,在兩種通信設備之間的第一方向上發(fā)送的包可以按照與在裝置之間相反方向上發(fā)送的包不同的路徑行進。也就是說,對于相同的TCP流,從裝置A到裝置B的包可以采取通過網絡的一種路徑,而從裝置B到裝置A的包可以采取不同的路徑。在這種情況下很難利用單個中間裝置對TCP流進行處理,除非中間裝置可以定位在網絡路由拆分(split)之前。
發(fā)明內容
通常,本發(fā)明提出這樣一種技術,其保證與網絡流(諸如TCP流)有關的包在位于不對稱路由網絡內一組中間處理裝置之間發(fā)送,而不管發(fā)送的路徑。從而,該組中間處理裝置能訪問與給定網絡流有關的所有的包,即使中間處理裝置定位在不對稱網絡的路由路徑中的任何拆分之后。
在一個實施例中這些是通過利用中間處理裝置重疊通過不對稱網絡的通道來完成的。中間裝置起始和結束通道,并且透明地攔截和封裝通過適當通道的相同流的包,以便保證相關的包放在相同組的中間裝置,而不管網絡的任何不對稱特性。用這樣的方式,中間處理裝置可以進行TCP流的網絡通信的增強,諸如通過不對稱網絡增加安全性和/或通信的效率,即使中間裝置可以定位在路由的路徑的任何拆分以后。此外,由其它網絡裝置決定,所述技術允許個別通道包沿著網絡內任何路徑路由到通道的起始和結束,而沒有限制。
在一個實施例中,本發(fā)明提出一種網絡系統(tǒng),包括由具有不對稱路徑的網絡分離的第一裝置和第二裝置,其中在從第一裝置到第二裝置的第一方向上發(fā)送的通信量與在從第二裝置到第一裝置的第二方向上發(fā)送通信量經歷不同的路徑。至少三個中間處理裝置位于第一裝置和第二裝置之間,其中至少兩個中間處理裝置位于沿著不對稱路徑中不同的路徑。中間處理裝置在中間處理裝置之間建立至少兩個網絡通道。中間處理裝置攔截第一裝置和第二裝置之間的通信流,并且封裝網絡通道內的通信流以便在至少兩個中間處理裝置的相同的組之間發(fā)送與第一方向和第二方向上通信流有關的通信。
在另一個實施例中,一種方法包括在至少三個中間處理裝置之間建立網絡通道,該至少三個中間處理裝置位于由具有不對稱路徑的網絡分離的第一裝置和第二裝置之間,其中在從第一裝置到第二裝置的第一方向上發(fā)送的通信量可以與在從第二裝置到第一裝置的第二方向上發(fā)送通信量經歷不同的路徑。所述方法進一步包括利用第一個中間處理裝置中攔截對于第一裝置和第二裝置之間的通信流的請求,其中通信流包括從第一裝置到第二裝置的通信和從第二裝置到從第一裝置的返回通信。所述方法進一步包括利用第二個中間處理裝置攔截來自第二裝置的用于確認通信流請求的響應;并且利用中間處理裝置封裝網絡通道內的通信流的通信,以便在攔截該請求的第一個中間處理裝置與攔截該響應的第二個中間處理裝置之間通過網絡發(fā)送與通信流有關的通信。
在另一個實施例中,本發(fā)明提出一種包括指令的計算機可讀存儲介質。所述指令使得可編程處理器攔截對于由具有不對稱路徑的網絡分離的第一裝置和第二裝置之間的通信流請求,其中在從第一裝置到第二裝置的第一方向上發(fā)送的通信量可以在從第二裝置到第一裝置的第二方向上發(fā)送通信量經歷不同的路徑。所述指令進一步使得處理器封裝至少三個中間處理裝置之間的網絡通道內的通信流,該至少三個中間處理裝置位于第一裝置和第二裝置之間,以便在相同組的至少兩個中間處理裝置之間發(fā)送與第一方向和第二方向上通信流有關的通信。本發(fā)明的一個或多個實施例的細節(jié)在附圖中以及以下描述中加以闡述。本發(fā)明的其它特征、目標以及優(yōu)點從說明書和附圖以及權利要求中將變得是明顯的。
附圖1是示出不對稱網絡系統(tǒng)的方框圖,其中中間處理裝置根據本發(fā)明的原理處理傳輸控制協議(TCP)流。
附圖2是示出附圖1的一個中間處理裝置的示例性實施例的方框圖根據本發(fā)明的原理運行的網絡加速裝置。
附圖3是示出不對稱網絡系統(tǒng)示例性操作的流程圖,諸如附圖1的不對稱網絡系統(tǒng),其中中間處理裝置(諸如附圖2的網絡加速裝置)使用疊加通道使流路由與網絡系統(tǒng)中的其它處理裝置同步。
附圖4是示出另一示例性不對稱網絡系統(tǒng)的方框圖,其中處理裝置根據本發(fā)明的原理處理傳輸控制協議(TCP)流。
具體實施例方式
附圖1是示出不對稱網絡系統(tǒng)10的方框圖,其中中間處理裝置12A-12D(“處理裝置12”)根據本發(fā)明的原理處理傳輸控制協議(TCP)流。不對稱網絡系統(tǒng)10包括客戶端裝置14、路由器16A-16F(“路由器16”)、廣域網18(“WAN 18”)和服務器20。對本發(fā)明來說“不對稱網絡系統(tǒng)”指的是這樣一種網絡,其中在兩個裝置之間的一個方向上行進的包可以沿著與同樣的兩個裝置之間在相反方向上行進的包不同的路徑被發(fā)送。例如,根據附圖1,基于局部路由表,路由器16沿著在一個方向上的第一路徑(例如16A->16B->16D->16F)將從客戶端裝置14行進的包發(fā)送到服務器20(即從第一裝置到第二裝置),并且在從服務器20到客戶端裝置14的相反方向上沿著不同的路徑(例如16F->16E->16C->16A)發(fā)送包。
不對稱網絡系統(tǒng)10可以包括IP網絡,而不對稱路由可以由于種種原因而發(fā)生,諸如鏈接標準(metrics)中的差異、加載平衡的使用或其它理由。用于示例性目的在這里結合TCP通信描述本技術,然而可以容易地適用于其它網絡通信協議。此外,這里使用術語“流”指的是與相同的通信會話有關的包,例如TCP會話,而單個流包括從信源到目的地以及從目的地到信源傳輸的包。
在附圖1的實例中,客戶端裝置14耦合到路由器16A,其依次耦合到處理裝置12A、12B。處理裝置12A、12B形成用于TCP流處理的中間裝置的客戶端群22A。在這種意義上講,處理裝置12A、12B可以看作是節(jié)點,通過發(fā)送“hellos”或其它周期性的信息互相進行通訊以維護連接狀態(tài)。在一個實施例中,管理員(附圖1中未示出)可以配置群22A以便客戶端群22A的處理裝置12A、12B可以互相通訊,或可以使用自動發(fā)現(auto-discovery)處理。每一個中間處理裝置12A、12B耦合到各自的路由器16B、16C,其依次耦合到WAN 18??蛻舳搜b置14可以是任何由個人終端用戶使用的客戶端計算裝置,并且可以位于企業(yè)的遠程辦公室內或其它位置。
在企業(yè)的中心機構,例如路由器16D、16E還耦合到WAN 18以及各自的中間處理裝置12C、12D。管理員還可以配置處理裝置12C、12D以便它們形成服務器端群22B,從而允許處理裝置12C、12D互相通訊。在其它實施例中,管理員可以不必手動配置群22A、22B(“群22”)并且中間處理裝置12A、12B以及12C、12D可以分別互相自動檢測并且自動形成群22。在一個實施例中,中間處理裝置12輸出用于識別由中間處理裝置服務的目的地的各自的廣告信息。其它中間處理裝置12檢測廣告,并且基于廣告信息向第一群或第二群自動分配中間處理裝置。
中間處理裝置12C、12D耦合到路由器16F,其依次耦合到服務器20。服務器20表示客戶端裝置14通過其建立通信會話的任何資源,諸如TCP連接。此外,如以下進一步所述,中間處理裝置12提供TCP流的透明處理,諸如加速或入侵檢測(intrusion detection)。
處理裝置12每個都表示透明地監(jiān)控和攔截TCP通信的中間裝置,并且可以是防火墻裝置、虛擬專用網絡(VPN)裝置、網絡加速裝置及其組合,以及在高于那些必須執(zhí)行網絡協議(IP)通信的開放系統(tǒng)互連(OSI)層(即高于OSI堆棧頭兩層的OSI層)運行的任何其它裝置。便于說明,以下可以假定每一個處理裝置12表示網絡加速裝置;然而本發(fā)明的原理不應該限制成這樣。
在一個實施例中,管理員可以以全網狀結構(full meshconfiguration)的形式配置處理裝置12,即以其中每一個處理裝置12可以和每一個其它的中間處理裝置12通訊的配置形式。在其它實施例中,處理裝置12可以自動檢測其它處理裝置并且自動配置為全網狀結構。不管配置是由管理員配置還是自動配置,中間處理裝置12建立通道24A-24D(“通道24”)以簡化TCP通信沿著處理裝置12之間定義的路徑傳輸,并且尤其是在客戶端群22A的處理裝置12A、12B之間的路徑以及服務器端群22B的處理裝置12C、12D之間的路徑,而不管網絡10的不對稱特性。盡管附圖1中沒有明確的示出,但是客戶端群22A的處理裝置12A、12B可以彼此直接通信,而服務器端群22B的處理裝置12C、12D可以彼此直接通信。
路由器16表示能夠簡化網絡通信的任何網絡裝置,而且雖然顯示為附圖1的路由器16,網絡系統(tǒng)10還可以包括適合于這種目的的其它類型的網絡裝置,諸如交換機和集線器。路由器16可以執(zhí)行加載平衡操作,以平衡通過不對稱網絡系統(tǒng)10的各種路徑當中的通信。例如,路由器16A可以監(jiān)控將路由器16A連接到WAN 18的WAN存取鏈路17A和17B。取決于每個連接的特征,諸如可用帶寬,路由器16A可以執(zhí)行負載平衡操作,以確定當發(fā)送輸出(outbound)通信量的時候哪一個到WAN 18的路徑可以使用。
客戶端裝置14表示任何終端裝置,諸如個人計算機、膝上型電腦、工作站、無線電設備、個人數字助理(PDA)、便攜式電話和網絡就緒儀器。服務器20包括能夠服務傳輸控制協議(TCP)請求的任何網絡裝置,諸如超文本傳輸協議(HTTP)獲取請求以及文件傳送協議(FTP)獲取請求。雖然以下的描述結合了單個客戶端裝置14和單個服務器端20,但是本發(fā)明的原理可以包括類似于附圖1示出的那些的多個客戶端裝置以及服務器端,或客戶端—到—客戶端或服務器端—到—服務器端的通信,并且不應該限于示出的實施例。
根據本發(fā)明的原理,客戶端群22A和服務器端群22B的處理裝置12協議(negotiate)并且建立其中封裝TCP通信的完整—網狀(full-mesh)通道24A-24D。通道24A、24B將中間處理裝置12A連接到各自的處理裝置12C、12D,而通道24C、24D將中間處理裝置12B連接到各自的處理裝置12C、12D。在一些實施例中,通過利用注冊(registering)處理裝置(諸如中間處理裝置12A)注冊,處理裝置12可以自動地將其本身配置為群22,。在形成群以后,處理裝置12可以經過以下更詳細描述的自動發(fā)現(auto-discovery)處理自動配置通道24。
一旦配置后,處理裝置12攔截來源于客戶端裝置14和服務器端20的通信??蛻舳搜b置14例如可以傳輸TCP同步(SYN)包以和服務器端20建立TCP會話。路由器16A接收SYN包,于是路由器16A可以決定將SYN包路由到中間處理裝置12A。中間處理裝置12A攔截SYN包,決定SYN包啟動通過不對稱網絡系統(tǒng)10的新的TCP流,并且存儲這種新的流對應的信息。然后,中間處理裝置12A選擇通道24中的一個,將SYN包封裝為通道包的有效負載,并且將封裝的SYN包經過選擇的通道傳輸到處理裝置12C和12D中的一個。盡管每一個通道24與具體的信源和目的地處理裝置12有關,但是封裝的SYN包還可以采取任何通過WAN 18的路徑。也就是說,通道24不必確定通過WAN 18具體的路徑,而是可以將封裝的TCP包引導到確定的目的地中間處理裝置12。
接收SYN包后,例如中間處理裝置12C通知服務器端群22B內的每一個其它中間處理裝置12(即中間處理裝置12D),中間處理裝置12C已經接收SYN包以建立新的流。在通知中間處理裝置12D中,中間處理裝置12C還表示所有與新的流攔截有關的攔截TCP通信應該發(fā)送到中間處理裝置12A。
在一些實施例中,在將SYN包經過路由器16F傳輸到服務器20之前,中間處理裝置12C等待中間處理裝置12D以確認這種新的流。在其它實施例中,中間處理裝置12C將SYN包傳輸給服務器20,同時向中間處理裝置12D發(fā)送通知。然而,在這些實施例中,如果中間處理裝置12D響應新的流的SYN包接收了來自服務器20的SYN確認包,那么中間處理裝置12D就應該制止將SYN確認包發(fā)送到客戶端裝置14,直到中間處理裝置12D已經接到來自中間處理裝置12C的SYN包的通知。
但不論是哪種情況,如果中間處理裝置12C響應來自服務器20的SYN包而接收SYN確認包,那么中間處理裝置12C將SYN確認包壓縮為通道包,并且經過通道24A將SYN確認包發(fā)送到中間處理裝置12A。當經過通道24A接收到SYN確認包后,中間處理裝置12A確定流沒有使用不對稱路徑,并且經過路由器16A將SYN確認包發(fā)送到客戶端裝置14。
然而,在中間處理裝置12D響應來自服務器20的SYN包而接收SYN確認包的情況下,中間處理裝置12D將SYN確認包壓縮為通道包,并且經過通道24B將SYN確認包發(fā)送到中間處理裝置12A。當經過通道24B接收到SYN確認包后,中間處理裝置12A檢測TCP流使用不對稱路徑,并且更新存儲的流信息,用于通過在存儲流信息內表示中間處理裝置12A應該經過通道24B將所有連續(xù)流通信傳輸給中間處理裝置12D來校正的不對稱路徑的使用。然后,中間處理裝置12A將SYN確認包經過路由器16A發(fā)送到客戶端裝置14。
在一些實施例中,中間處理裝置12A可以攔截建立與先前建立的TCP流有關的TCP流連續(xù)的SYN包。這些附加的流在這里被稱為“綁定流”。例如,客戶端裝置14和服務器20之間的FTP會話可以要求互相對應的控制流和數據流。中間處理裝置12A可以攔截第一SYN包以建立控制流,然后攔截另一SYN包以建立對于相同的FTP會話的數據流。在這些情況下,中間處理裝置12A可以實質上執(zhí)行如上所述相同的操作;然而,中間處理裝置12A將這些流分組為綁定的流(即,儲存識別與相同的FTP會話相關的TCP流的數據)以便封裝這些流,并且確保綁定流由相同組的至少兩個或更多中間裝置12處理。
通過這樣做,一個或多個處理裝置12可以處理流通信,或在網絡加速環(huán)境中壓縮流通信,以便服務器端群22B的處理裝置12C、12D可以執(zhí)行流通信上的對應操作,或在網絡加速環(huán)境中解壓縮流通信。用這樣的方式,中間處理裝置12協同工作,以監(jiān)控、攔截并且封裝對于每一個TCP流的通信,并且封裝通道24內的TCP通信以保證TCP通信流過相同組的至少兩個中間處理裝置,即攔截在一個方向上通過網絡的SYN包的中間處理裝置,以及攔截在相反的方向上傳輸SYN確認包的中間處理裝置。通過根據本發(fā)明的原理的操作,中間處理裝置12可以執(zhí)行諸如壓縮、加速或入侵檢測的操作,否則其在不對稱網絡中不能執(zhí)行。
附圖2是示出附圖1的一個中間處理裝置12示例性實施例的方框圖。在這個實例中,附圖2示出了根據本發(fā)明的原理運行的網絡加速裝置26。網絡加速裝置26包括輸入/輸出(I/O)模塊28(“I/O模塊28”)、處理器30和存儲器32。I/O模塊28攔截網絡內的通信量,諸如不對稱網絡系統(tǒng)10。處理器30耦合到I/O模塊28并且處理攔截的通信量。處理器30訪問存儲器32以存儲并且檢索流數據34和配置數據36。處理器30可以包括可編程處理機,而存儲器32可以包括計算機可讀取存儲介質,其存儲了使處理器30執(zhí)行這里描述的操作的可執(zhí)行指令。雖然這里結合網絡加速裝置26加以描述,但是處理裝置還可以是其它類型的中間處理裝置,如上所述,諸如VPN裝置、防火墻裝置或在或者高于那些必須執(zhí)行IP通信的OSI層運行的任何其它裝置。
如上所述要么經過管理員要么通過自動化處理,網絡加速裝置26開始配置為群(諸如群22)的一部分,然后隨意地配置為以和所有其它相關的處理裝置(諸如處理裝置12)全網狀結構的形式。網絡加速裝置26將這些配置信息存儲為配置數據36。配置數據36可以包括由網絡加速裝置26服務的IP地址,例如客戶端裝置14的IP地址、通道配置數據以及群配置數據。
一般的自動配置的群22使網絡加速裝置26利用其它注冊(registering)處理裝置來注冊。在注冊期間,網絡加速裝置26可以注冊IP地址以及它的服務,諸如客戶端裝置14的IP地址。注冊處理裝置或管理員可以確定服務相同組的IP地址的注冊裝置,并且將那些注冊裝置分配給相同的群。
在一個實施例中,自動建立的全網狀結構可以包括處理,借此當接收SYN包時,網絡加速裝置26可以添加或以其它方式向SYN包插入標記(即元數據),以將網絡加速裝置26和攔截來自網絡加速裝置26的SYN包下游流(downstream)的任何其它中間處理裝置識別開來。如果下游流處理裝置接收這種修改的SYN包,下游流處理裝置可以啟動與網絡加速裝置26的會話以建立一種通道,諸如通道24中的一個。用這樣的方式,自動配置的群以及通道都可以不需要管理員而動態(tài)地產生并且實時產生。
在配置之后,如果網絡加速裝置26包括客戶端群的處理裝置,諸如客戶端群22A的中間處理裝置12A,那么I/O模塊28可以攔截來自客戶端裝置(諸如客戶端裝置14)的請求新的流的TCP包,諸如SYN包。I/O模塊28將SYN包發(fā)送給處理器30,其可以分析SYN包以確定SYN包是否包括綁定流中的新的流。如果SYN包中包括綁定流新的流,則處理器30可以更新流數據34內存儲的對應的綁定流數據。
一般地,流數據34存儲一個或多個識別特定流或流綁定的5元組,其中每個5元組包括IP源地址、IP目的地址、IP源端口、IP目標端口以及協議。因此,為確定SYN包是否包括綁定流的新的流,處理器30可以分析SYN包,以形成5元組并且分析其它相關的包信息,執(zhí)行流數據34內的查找,并且確定包5元組是否涉及先前保存在流數據34中的任何5元組。如果SYN包中不包括綁定流的新的流,則處理器30將來自SYN包分析的5元組添加到流數據34。如果SYN包中包括綁定流的新的流,則處理器30更新與綁定流有關的流數據34以包括從SYN包分析的5元組。
在向流數據34添加新的流以后,處理器30封裝另一包內的SYN包以形成通道包,其指定另一中間處理裝置的目的地址,所述另一中間處理裝置經過通道(諸如通道24A)連接到網絡加速裝置26。處理器30然后使I/O模塊30將封裝的SYN包沿著通道發(fā)送到終端處理裝置。
相反,如果網絡加速裝置26包括服務器端群的處理裝置,諸如服務器端群22B的中間處理裝置12C,那么I/O模塊28可以接收封裝的SYN包,于是處理器30反封裝SYN包,并且將新的流添加到流數據34。然后,處理器30使I/O模塊28向包括在服務器端群內的所有其它處理裝置發(fā)出通知,諸如服務器端群22B的中間處理裝置12D。如上所述,所述通知可以告知由SYN包請求的新的流的這些其它處理裝置以及控制這些其它處理裝置將對應于這些新的流的所有返回通信量發(fā)送到攔截SYN包的原始客戶端中間處理裝置,即在這個實例中為中間處理裝置12A。
相反,如果網絡加速裝置26包括接收這種通知的這些其它服務器端處理裝置中的一個,例如中間處理裝置12D,那么I/O模塊30接收這個通知。處理器30通過將新的流的實體(entry)添加到流數據34來處理所述通知,并且指定流數據34內所有與這些新的流有關的返回通信應該通過通道24B發(fā)送到原始客戶端中間處理裝置12A。當添加新的流時,處理器30使I/O模塊28向所述通知輸出確認。
如果網絡加速裝置26接收返回通信,例如SYN確認包,并且假定網絡加速裝置26包括這些其它處理裝置中的一個,例如中間處理裝置12D,那么I/O模塊28攔截SYN確認包,于是處理器30分析SYN確認包以確定5元組。然后,使用分析的5元組,處理器30使用5元組為關鍵詞(key)執(zhí)行流數據34的查找。當找到流數據34內對應的5元組時,處理器30確定處理器30應該將SYN確認包經過通道24B發(fā)送到中間處理裝置12A。隨后,處理器30封裝另一個包內的SYN確認包,其指定目的地地址為中間處理裝置12A的地址。一旦封裝,處理器30使I/O模塊28沿著通道24B發(fā)送包。
為了說明的目的再次假定網絡加速裝置26表示中間處理裝置12A,I/O模塊28接收來自通道24B封裝的SYN確認包。在這種情況下,處理器30反封裝來自通道包的有效負載的SYN確認包。在反封裝包以后,處理器30執(zhí)行流數據34內的流查找,并且確定對應的SYN包是否經過與接收SYN確認包的通道相同的通道被發(fā)送。如果SYN包經過不同于接收SYN確認包的通道的其它通道發(fā)送到服務器端群22B,那么處理器30確定不對稱路由已經發(fā)生。作為響應,處理器30更新流數據34,以指定來自與這些特殊的流有關的客戶端裝置14的所有連續(xù)輸出(out-bound)的通信應該封裝在相同的通道內,在這個實例中為通道24B,其是接收輸入(in-bound)的通信量的通道。用這樣的方式,對于給定的TCP流的所有通信被封裝并且不管方向地在相同的中間處理裝置12之間傳遞。沒有這種保證,諸如透明壓縮、加密、入侵檢測、TCP加速、應用加速及其它兩個終端服務的TCP操作在不對稱網絡內可能是不可行的。
附圖3是示出在不對稱網絡系統(tǒng)(諸如附圖1的不對稱網絡系統(tǒng)10)內中間處理裝置示例性操作。為了說明,假定附圖1的每一個中間處理裝置12包括根據附圖2的網絡加速裝置。雖然參照附圖1、2加以描述,但是本發(fā)明的原理適用于任何不對稱網絡系統(tǒng),其中多個處理裝置需要同步流路由來執(zhí)行透明網路通信的提高,諸如壓縮、加速和入侵檢測,即服務對于通信的兩端透明。
首先,如上所述,管理員可以以全網狀結構的形式配置中間處理裝置12,其具有在各自的裝置起源和終止的點到點通道。或者,中間處理裝置12可以執(zhí)行所述的自行檢測和自動配置處理。
一旦配置,諸如客戶端裝置14的客戶端裝置可以輸出指定給服務器端20的SYN包,其由客戶端群22A(38)的中間處理裝置12A攔截。為了說明,假定中間處理裝置12A包括網絡加速裝置26,I/O模塊28攔截SYN包,于是處理器30分析包,以識別對應的流信息并且將新的流添加到流數據34,如上所述(40)。在一些實施例中,處理器30可以確定新的流是否對應于綁定流并且利用新的流更新綁定的流。
一旦處理器30添加新的流,處理器30控制I/O模塊30根據局部路由表向服務器端群22B的處理裝置12C、12D中的一個輸出SYN包(42)。換句話說,處理器30發(fā)送SYN包使其通過通道24A或通道24B路由通過WAN 18,利用使用任何標準通道的選擇,包括總是選擇特殊的通道或者選擇通道以便平均起來每個通道得到相同數目同步的包。
然后,為了說明,服務器端中間處理裝置12C接收并且反封裝SYN包(44)。服務器端中間裝置12C的I/O模塊28接收封裝的SYN包,于是中間裝置12C的處理器30從通道包的有效負載提取SYN包,并且向流數據34添加新的流(46)。服務器端中間裝置12C的處理器30還使I/O模塊28發(fā)出一個通知,將新的流告知服務器端群22B的所有其它處理裝置(即中間處理裝置12D)(48)。
在一些實施例中,服務器端裝置12C的處理器30可以延遲向服務器端20發(fā)送SYN包,直到在接收確認之后包括在服務器端群22B內的其它中間處理裝置12的每一個已經記錄了被建立的新的流。假定服務器端裝置12C的處理器30接收來自包括在服務器端群22B內所有其它中間處理裝置12的確認,處理器30將SYN包發(fā)送到服務器端20(50,52)。服務器端20處理SYN包,并且通過傳輸SYN確認包響應,其路由器16F可以路由到中間處理裝置12C或者12D。
如果中間處理裝置12C攔截來自服務器20的SYN確認包(54),則中間處理裝置12C的處理器30封裝并且經過通道24A傳輸SYN確認包(56)。同樣,如果中間處理裝置12D攔截來自服務器20的SYN確認包,則中間處理裝置12D封裝并且經過通道24B傳輸SYN確認包。
作為響應,中間處理裝置12A的I/O模塊28接收SYN確認包,于是處理器30反封裝SYN確認包(58)。中間裝置12A的處理器30比較用于封裝輸出(out-bound)SYN包的通道和從其接收SYN確認包的通道,以確定是否存在不對稱路徑。如果到達的包經過不對稱路徑,則處理器30更新流數據34以記錄封裝的SYN確認包的信源,用于表示不對稱路徑(60)。最后,處理器30控制I/O模塊28經過路由器16A將反封裝的SYN確認包發(fā)送到客戶端裝置14(62)。
一旦所請求的TCP流被建立,則該組中間處理裝置封裝流的通信作為通道包的有效負載,并且將通道包發(fā)送到攔截所述請求和響應的相同的中間處理裝置。用這樣的方式,如根據網絡加速裝置26的描述,處理裝置12確保對于給定TCP流的TCP通信被引導到相同組的客戶端和服務器端中間處理裝置,而無論中間網絡的任何不對稱特性。該組的中間處理裝置然后提取來自通道的TCP通信,并且共同處理TCP通信以提供透明、加強的通信。
附圖4是示出另一示例性的不對稱網絡64的方框圖,其中中間處理裝置66A-66C(“處理裝置66”)根據本發(fā)明的原理透明地處理傳輸控制協議(TCP)流。類似于附圖1的不對稱網絡系統(tǒng)10,不對稱網絡系統(tǒng)64包括客戶端裝置68、路由器70A-70F(“路由器70”)、WAN72以及服務器端74。
在附圖4的實例中,客戶端群76A包括單個處理裝置66A。類似于附圖1的處理裝置12C、12D,處理裝置66B、66C已經配置在服務器端群76B中。此外,處理裝置66以全網狀結構的形式配置,并且被特別地配置,使得各自的通道78A、78B(“通道78”)提供用于控制處理裝置66A與各自的處理裝置66B、66C之間封裝的TCP流的機制。因此,附圖4用于通過示例給出任何數目N的客戶端中間處理裝置可以用于具有任何數目M的服務器端中間處理裝置,并且可以在中間裝置之間建立N×M網狀通道以提供一種機制,該機制將相同TCP流的TCP通信引導到相同的客戶端或服務器端中間裝置,用于通過相同裝置的加強的連接處理。
首先,客戶端裝置68將SYN包發(fā)送到路由器70A,其依次沿著不對稱網絡系統(tǒng)64發(fā)送SYN包。如上所述,處理裝置66A攔截SYN包、分析該包并且將新的流添加到存儲在處理裝置66A內的流數據。然后,處理裝置66A經過各自的通道78中的一個通過封裝另一包內的SYN包將SYN包發(fā)送到處理裝置66B或66C中的一個。
假定處理裝置66B經過通道78A接收封裝的SYN包,它反封裝該包、分析該包,并且將新的流添加到處理裝置66B內存儲的流數據,如上所述。在執(zhí)行這些操作的同時,處理裝置66B還向服務器端群76B的另一個處理裝置(即,處理裝置66C)傳輸通知,告知它們新的流以及向哪里發(fā)送與流有關的返回的通信,即,發(fā)到處理裝置66A。如上所述,在一些實施例中,處理裝置66B一直等待直到接收這種通知的確認,然而在其它實施例中,處理裝置66B可以立即發(fā)送SYN包。無論如何,處理裝置66B經過路由器70F將SYN包傳輸給服務器端74。
當接收SYN包時,服務器端74作為響應輸出SYN確認包。路由器70F可以發(fā)送給處理裝置66B或者66C。接收處理裝置66B或66C接收SYN確認包,分析所述包并且執(zhí)行它的流數據的查找,以確定SYN確認包對應的流。在這個實例中,中間處理裝置66C確定SYN確認包應該經過通道78B發(fā)送到處理裝置66A,并且通過將SYN確認包封裝在另一包內經過通道78B發(fā)送SYN確認包。如上所述,處理裝置66A接收封裝的SYN確認包,反封裝所述包,并且確定所述流是否包括不對稱路徑。在這種情況下流包括不對稱路徑,因此處理裝置66A更新對應于這種流的流數據以表示不對稱路徑。換句話說,處理裝置66A更新流數據,以表示處理裝置66A應該經過通道78B將所有與這種流有關的連續(xù)的通信量發(fā)送給處理裝置66C。用這樣的方式,中間處理裝置66保證每個流包括對稱路徑,或換言之,對于每個流包括相同的兩個處理裝置66之間的輸出(out-bound)和輸入(in-bound)的通信流。
已經描述了本發(fā)明的各種實施例。這些及其它實施例在以下權利要求書的范圍之內。
權利要求
1.一種方法,包括在至少三個中間處理裝置之間建立網絡通道,中間處理裝置位于由具有不對稱路徑的網絡分離的第一裝置和第二裝置之間,其中在不對稱路徑中,在從第一裝置到第二裝置的第一方向上發(fā)送的通信量與在從第二裝置到第一裝置的第二方向上發(fā)送通信量經歷不同的路徑,利用第一個中間處理裝置攔截用于在第一裝置和第二裝置之間通信流的請求,其中通信流包括從第一裝置到第二裝置的通信和從第二裝置到第一裝置的返回通信;利用第二個中間處理裝置攔截來自第二裝置的確認通信流請求的響應;并且利用中間處理裝置封裝網絡通道內的通信流的通信,以便在攔截請求的第一個中間處理裝置與攔截響應的第二個中間處理裝置之間通過網絡發(fā)送與通信流有關的通信。
2.如權利要求1所述的方法,其中該請求包括傳輸控制協議(TCP)同步(SYN)包,該響應包括TCP同步(SYN)確認包。
3.如權利要求1所述的方法,其中至少三個中間處理裝置包括與第一裝置有關的第一中間處理裝置和與第二裝置有關的第二和第三中間處理裝置,并且其中建立網絡通道包括在第一中間處理裝置與第二中間處理裝置之間建立第一通道;以及在第一中間處理裝置與第三中間處理裝置之間建立第二通道。
4.如權利要求3所述的方法,進一步的包括在利用第一中間處理裝置攔截請求以后,更新第一中間處理裝置內存儲的流數據以添加請求的流,并且根據第一中間裝置的局部路由表從第一中間處理裝置發(fā)送請求。
5.如權利要求3所述的方法,進一步的包括當第三中間處理裝置接收該請求的時候,從第三中間處理裝置發(fā)送通知給第二中間處理裝置,告知第二中間處理裝置通信流正在被請求。
6.如權利要求5所述的方法,其中該通知包括指定請求的流的信息和識別攔截該請求的第一中間處理裝置的信息。
7.如權利要求5所述的方法,進一步的包括利用第二中間處理裝置接收通知;響應該通知,基于該通知確定攔截該請求的第一中間處理裝置的身份;經過第一通道將攔截的響應從第二中間處理裝置發(fā)送到第一中間處理裝置;并且更新第二中間處理裝置內存儲的流數據,以添加被請求的流;并且經過第二通道作為封裝的包,將通信流從第二個中間處理裝置發(fā)送到第一個中間處理裝置。
8.如權利要求7所述的方法,進一步的包括當經過第一通道利用第一中間處理裝置接收該攔截的響應時,利用第一中間處理裝置執(zhí)行以下步驟確定攔截該響應的第二中間處理裝置的身份;確定該請求和響應是否經歷不對稱路徑;并且當該請求和響應經歷不對稱路徑時,更新第一中間處理裝置內的流數據并且經過第二通道作為封裝的包,將流的通信從第一個中間處理裝置發(fā)送到第二個中間處理裝置。
9.如權利要求3所述的方法,進一步的包括向第一個群分配第一中間處理裝置,并且向第二個群分配第二和第三中間處理裝置。
10.如權利要求3所述的方法,進一步的包括利用中間處理裝置檢測用于識別由另一個中間處理裝置服務的目的地的廣告信息;并且基于該廣告信息向第一個群或第二個群自動的分配中間處理裝置。
11.一種網絡系統(tǒng)包括由具有不對稱路徑的網絡分離的第一裝置和第二裝置,其中在從第一裝置到第二裝置的第一方向上發(fā)送的通信量與在從第二裝置到第一裝置的第二方向上發(fā)送通信量經歷不同的路徑;位于第一裝置和第二裝置之間的至少三個中間處理裝置,其中至少兩個中間處理裝置位于沿著不對稱路徑中不同的路徑;和在該中間處理裝置之間建立的至少兩個網絡通道;其中該中間處理裝置攔截在第一裝置和第二裝置之間的通信流,并且封裝網絡通道內通信流,使得在相同組的至少兩個中間處理裝置之間發(fā)送與第一方向和第二方向上通信流有關的通信。
12.如權利要求11所述的網絡系統(tǒng),其中第一個中間處理裝置包括攔截第一裝置和第二裝置之間通信流的請求的I/O模塊,其中第二個中間處理裝置包括攔截來自第二裝置的用于確認對通信流的請求的響應的I/O模塊,和其中第一個中間處理裝置和第二中間處理裝置形成該組的至少兩個中間處理裝置,在該至少兩個中間處理裝置之間,經過通道發(fā)送與第一方向和第二方向上通信流有關的通信。
13.如權利要求11所述的網絡系統(tǒng),其中所述通道包括第一中間處理裝置與第二中間處理裝置之間的第一通道,和中間處理裝置的第一中間處理裝置與第三中間處理裝置之間的第二通道。
14.如權利要求13所述的網絡系統(tǒng),其中第一中間處理裝置包括存儲流數據的存儲器,并且其中第一中間處理裝置更新存儲器內存儲的流數據以添加被請求的流。
15.如權利要求13所述的網絡系統(tǒng),其中中間處理裝置包括根據局部路由表輸出該攔截的請求的第一中間處理裝置;接收該請求并且向第二中間處理裝置發(fā)送該請求的通知的第三中間處理裝置;和根據該通知經過第一通道將該攔截的響應發(fā)送到第一中間處理裝置的第二中間處理裝置。
16.如權利要求14所述的網絡系統(tǒng),其中該通知包括指定所請求的流的信息和識別攔截該請求的第一中間處理裝置的信息。
17.一種包括指令的計算機可讀介質,所述指令使可編程處理器進行以下動作攔截對于由具有不對稱路徑網絡分離的第一裝置與第二裝置之間的通信流的請求,其中在從第一裝置到第二裝置的第一方向上發(fā)送的通信量與在從第二裝置到第一裝置的第二方向上發(fā)送通信量經歷不同的路徑;并且封裝在至少三個中間處理裝置之間的網絡通道內的通信流,該至少三個中間處理裝置位于第一裝置和第二裝置之間,使得在相同組的至少兩個中間處理裝置之間發(fā)送與第一方向和第二方向上的通信流有關的通信。
全文摘要
一種網絡系統(tǒng)包括由具有不對稱路徑的網絡分離的第一裝置和第二裝置,其中在從第一裝置到第二裝置的第一方向上發(fā)送的通信量與在從第二裝置到第一裝置的第二方向上發(fā)送通信量經歷不同的路徑。至少三個中間處理裝置位于第一裝置和第二裝置之間,其中至少兩個中間處理裝置位于沿著不對稱路徑中不同的路徑。中間處理裝置攔截第一裝置和第二裝置之間的通信流,并且封裝網絡通道內的通信流,使得在相同組的至少兩個中間處理裝置之間發(fā)送與第一方向和第二方向上通信流有關的通信。
文檔編號H04L12/56GK1874308SQ20061008095
公開日2006年12月6日 申請日期2006年5月23日 優(yōu)先權日2005年5月23日
發(fā)明者B·辛格, N·古格 申請人:瞻博網絡公司