專利名稱:數據中心環境中的多路徑通信的制作方法
技術領域:
本發明涉及數據中心,尤其是數據中心中的多路徑通信。
背景技術:
數據中心是用于容納特定企業的計算機系統及相關聯的組件的設施。這些系統及相關聯的組件包括處理系統(諸如服務器)、數據存儲設備、電信系統、網絡基礎結構設備 (諸如交換機和路由器)、及其他系統/組件。通常存在工作流,使得在數據中心中的ー個或多個計算設備處生成的數據必須被傳輸到數據中心中的另ー個計算設備以實現特定的任務。通常,通過分組交換網絡在數據中心中傳輸數據,使得在網絡基礎結構設備之間傳輸通信流,其中通信流是與一段時間內的特定任務有關的數據分組序列。在某些情形中,通信流是相對大的,諸如當搜索引擎所使用的索引的部分被從若干服務器理想地聚集的時候。在其他情形中,通信流可以是相對小的,但在計算設備之間傳遞時也可以與相對短的可接受的等待時間相關聯。數據中心設計的ー貫主題是使用低成本商用組件來構建高度可用的高性能計算與存儲基礎結構。具體而言,價格在2000美元以下、以IGbps提供多達48個端ロ的低成本交換機是常見的。若干最近的研究建議構想了使用構建在這種商用交換機之上的新穎的基礎結構來創建經濟的、易于管理的數據中心。因此,使用這些交換機,數據中心中的計算設備(例如服務器)之間的多條通信路徑通常存在。數據中心中的網絡基礎結構設備被配置為通過使用傳輸控制協議(TCP)來通信。 TCP是被配置為提供數據分組從運行在第一計算設備上的程序到運行在第二計算設備上的程序的可靠、順序的遞送的通信協議。然而,使用TCP的網絡上的通信流通常受限于計算設備之間的單個通信路徑(即,一系列単獨的鏈路),即使其他鏈路具有傳輸數據的帶寬。這在托管搜索引擎的數據中心的上下文中可能是有問題的。例如,諸如與搜索引擎所利用的索引的部分相關聯的文件傳送的大的流(例如100MB或更大)可能干擾對等待時間敏感的小的流,諸如查詢交通。
發明內容
以下是在本文詳細描述的主題的簡要的發明內容。本發明內容不g在是關于權利要求的范圍的限制。此處描述的是與數據中心網絡中的計算設備之間的通信有關的各種技木。更具體地,此處描述的是便于數據中心網絡中的計算設備之間的多路徑通信的各種技木。如此處描述的數據中心可包括多個計算設備,該多個計算設備可包括服務器、路由器、交換機、以及通常與數據中心相關聯的其他設備。服務器可在數據中心中被委托以運行執行各種計算任務的程序。根據ー個特定的示例,數據中心中的服務器可被委托以維護搜索引擎所利用的索引、可被委托以在接收用戶查詢之后針對該索引進行搜索、以及其他信息檢索任務。然而,應當理解的是,可以出于任何合適的目的來委托數據中心中的計算設備。
可以是交換機、路由器、組合交換機/路由器等的網絡基礎結構裝置可從發送者計算設備接收通信流,該通信流被期望傳輸到接收者計算設備。通信流包括特定序列中的由接收者計算設備期望接收的多個數據分組。例如,接收者計算設備可被配置為根據傳輸控制協議(TCP)來發送及接收通信。數據中心網絡的拓撲結構可以被配置,使得多條通信路徑/鏈路存在于發送者計算設備與接收者計算設備之間。網絡基礎結構裝置可以使通信流跨多條通信鏈路分布,使得當在發送者計算設備與接收者計算設備之間傳輸通信流吋, 網絡資源被匯合。具體地,通信流中的第一數據分組可以跨第一通信鏈路被傳輸到接收者計算設備,而通信流中的第二數據分組可以跨第二通信鏈路被傳輸到接收者計算設備。根據此處描述的一方面,網絡基礎結構設備和/或發送者計算設備可被配置為向通信流中的每個數據分組添加熵。通常,網絡交換機基于數據分組頭部中的內容跨鏈路分布通信量,使得數據分組頭部中從特定發送者到指定接收者的網絡通信量跨單個通信信道被傳輸。基礎結構設備可被配置為更改數據中心網絡中的接收者計算設備的地址的不重要部分(保留在頭部的地址字段中),由此導致網絡基礎結構設備跨多條通信鏈路分布通信流中的數據分組。接收者交換機可包括移除熵的散列算法或其他合適的算法,使得接收者計算設備接收通信流中的數據分組。另外,基礎結構裝置可被配置為識別來自接收者計算設備的對通信流中一個或多個數據分組未按期望的序列被接收的指示。例如,發送者計算設備和接收者計算設備可被配置為通過TCP來通信,其中如果例如第一個接收到期望在序列中第一個被接收的第一分組,沒有接收到期望在序列中第二個被接收的第二分組,并且在期望被第二個接收的分組之前接收到期望在序列中第三個被接收的第三分組,則接收者計算設備傳輸重復確認。在這種情形中,接收者計算設備向發送者計算設備傳輸指示第一分組已被接收的重復確認 (由此初始化對第二分組的傳輸)。發送者計算設備可以以防止發送者計算設備重發第二分組的方式來處理重復確認。由于通信流中的數據分組通過可能具有不同的對應等待時間的不同的通信路徑被傳輸,因此通信流中的數據分組的非順序接收可能會發生。發送者計算設備執行的處理可包括忽略重復確認,等待直到與數據分組有關的重復確認的數量達到特定的閾值(高干與TCP相對應的閾值),或者將重復確認作為普通確認來對待。在閱讀并理解了附圖和描述后,可以明白其他方面。
圖I是便于數據中心中的發送者計算設備通過多條路徑向數據中心中的接收者計算設備傳輸通信流的示例性系統的功能框圖。圖2是便于通過多條通信路徑在發送者計算設備與接收者計算設備之間傳輸通信流的示例性系統的功能框圖。圖3是此處描述的各方面的高級示例性實現。圖4是數據中心中的示例性網絡/計算拓撲結構。圖5是示出處理對在支持多路徑通信的數據中心中以非期望的順序接收數據分組的指示的示例性方法的流程圖。圖6是示出通過向通信流中的數據分組添加熵在數據中心網絡中的多條通信路徑上傳輸通信流的示例性方法的流程圖。圖7是不例性計算系統。
具體實施例方式現在將參考附圖來描述關于數據中心環境中的多路徑通信的各種技術,在全部附圖中相同的附圖標記表示相同的元素。另外,本文出于解釋的目的示出并描述了各示例性系統的若干功能框圖;然而可以理解,被描述為由特定系統組件執行的功能可以由多個組件來執行。類似地,例如,一組件可被配置成執行被描述為由多個組件執行的功能。另外, 如此處所用的,術語“示例性” g在表示用作某些事物的圖示或示例,而不意圖指示優選。參考圖1,示出了示例性數據中心100,其中計算設備通過支持多路徑通信的數據中心網絡來通信。該數據中心100包括可協同工作以為特定企業執行計算任務的多個計算設備。在示例性實施例中,數據中心100的至少一部分可被配置為執行與搜索引擎有關的計算任務,包括構建并維護萬維網上可用的文檔索引、在接收查詢之后搜索該索引、輸出與該查詢相對應的網頁等。由此,數據中心100可包括多個計算設備(諸如服務器、或其他處理設備)和允許這些計算設備彼此通信的網絡基礎結構設備(諸如交換機、路由器、中繼器)、以及用于在網絡基礎結構設備和/或計算設備之間傳輸數據的傳輸介質。如上所示,在ー個計算設備上執行的應用通常可能期望跨數據中心網絡向在另ー 個計算設備上執行的應用傳輸數據。在數據中心網絡中,由于多個路由器、交換機和其他網絡基礎結構設備,多條通信路徑可以存在于任意兩個計算設備之間。數據中心100包括計算設備和/或便于計算設備之間通信流的多路徑通信的網絡基礎結構設備。更具體地,數據中心100包括發送者計算設備102,該發送者計算設備可以是托管被配置為執行特定計算任務的第一應用的服務器。數據中心100還包括接收者計算設備 104,其中該接收者計算設備104托管消費第一應用已處理的數據的第二應用。根據此處描述的一方面,發送者計算設備102和接收者計算設備104可被配置為通過利用傳輸控制協議(TCP)來彼此通信。由此,發送者計算設備104可以期望將通信流傳輸到接收者計算設備104,其中該通信流包括多個數據分組,并且其中該多個數據分組期望情況下按照特定順序被發送者計算設備102發送并由接收者計算設備104接收。數據中心100還可包括發送者計算設備104和接收者計算設備104通過其通信的網絡106。如上所示,網絡106可包括多個網絡基礎結構設備,包括路由器、交換機、中繼器等。網絡106可以被配置,使得多條通信路徑108-114存在于發送者計算設備102與接收者計算設備104之間。如將被示出及以下更詳細地描述的,網絡106可被配置為允許發送者計算設備102通過多條通信鏈路/路徑向接收者計算設備104傳輸單個通信流,使得通信流中的兩個不同的數據分組通過兩條不同的通信路徑從發送者計算設備102傳輸到接收者計算設備104。因此,數據中心100被配置用于計算設備之間的多路徑通信。允許數據中心100中的多路徑通信是不同尋常的建議。如上所示,數據中心中的計算設備可被配置為通過TCP(或期望通信流中特定的分組序列的其他合適的協議)來通信。由于數據中心100中計算設備之間的不同通信路徑可能具有不同的等待時間和/或帶寬,因此存在如下可能通信流中的數據分組將未按期望順序達到預期的接收者計算設備。 對于廣域網(WAN)中的多路徑通信的所建議的方法包括顯著地修改TCP標準,并且這在現實世界應用中可能是不實際的。此處描述的對于數據中心中多路徑通信的方法很大程度上使TCP標準保持不變,并且不會顯著地影響網絡中數據傳輸的可靠性。這至少部分地由于與數據中心有關的因素,但對于WAN不為真。例如,數據中心100中的條件是相對同質的,使得數據中心網絡106中的每條通信路徑具有相對類似的瓶頸能力和延遲。此外,在某些實現中,數據中心100中的通信流可利用大致類似的擁塞流策略,諸如已在2010年2月26日提交的、題為“COMMUNICATION TRANSPORT OPTIMIZED FOR DATACENTER ENVIR0NMENT”(為數據中心環境優化的通信傳輸) 的美國專利申請序列號12/714,266中有所描述的DCTCP,上述專利申請的全部通過引用包含于此。另外,數據中心100中的每個路由器和/或交換機可以支持毎分組循環ECMP、或支持跨通信路徑對數據分組平分的類似協議。該同質性是可能的,因為單個實體通常具有對數據中心100中的每個設備的控制。給定這種同質性,可以實現從發送者計算設備102到接收者計算設備104的通信流的多路徑路由。現在參考圖2,示出了便于發送者計算設備102與接收者計算設備104之間的通信流的多路徑傳輸的示例性系統200。計算裝置202與發送者計算設備102通信,其中該計算裝置202可以是網絡基礎結構設備,諸如交換機、路由器等。計算裝置202可以與多個其他網絡基礎結構設備通信,使得計算裝置202可以通過多條通信路徑204-208來傳輸數據分組。諸如交換機或路由器的網絡基礎結構設備210可以通過多條通信路徑204-208來接收數據分組。接收者計算設備104與網絡基礎結構設備210通信,使得網絡基礎結構設備 210通過通信路徑204-208接收的數據分組可由網絡基礎結構設備210定向到接收者計算設備104。由此,多條通信路徑存在于發送者計算設備102與接收者計算設備104之間。如上所述,發送者計算設備102包括輸出數據的第一應用,該數據期望情況下由在接收者計算設備104上執行的第二應用接收。發送者計算設備102可以根據諸如TCP或其他合適的協議的特定的分組交換網絡協議來傳輸數據。由此,發送者計算設備102可以輸出通信流,其中該通信流包括以特定順序排列的多個數據分組。每個數據分組可包括頭部,其中該頭部包括接收者計算設備104的地址、以及指示通信流中數據分組的特定順序中的各個數據分組的位置的數據。發送者計算設備102可輸出前述的通信流,并且計算裝置202可以接收通信流。計算裝置202包括從發送者計算設備102接收通信流的接收器組件212。例如,接收器組件212可以是或包括傳輸緩沖區。計算裝置202還包括向通信流中每個數據分組頭部中的數據添加某種形式的熵的熵生成器組件214。例如,計算裝置202通常可被配置為根據TCP傳輸數據,使得計算裝置202嘗試通過單個通信路徑傳輸通信流的全部。通常,這通過分析數據分組的頭部并且通過相同的通信路徑將每個數據分組從特定的發送者計算設備傳輸到單個地址來實現。因此,熵生成器組件214可被配置為向接收者計算設備104的地址添加熵,使得計算裝置202通過多條通信路徑傳輸通信流中的數據分組。在一個示例中, 熵可被添加到每個數據分組頭部中的地址數據中的不重要的位(例如,地址中的最后兩個數字)。計算裝置202中的發送器組件216可以跨多條通信路徑204-208傳輸通信流中的數據分組。另外,發送器組件214可以利用毎分組循環ECMP、或支持跨通信路徑對數據分組平分的類似協議。
網絡基礎結構設備210通過多條通信路徑204-208接收通信流中的數據分組。網絡基礎結構設備210隨后將通信流中的數據分組定向到接收者計算設備104。如上所述,接收者計算設備104通過協議(例如TCP)進行通信,其中通信流中的數據分組期望以特定的順序到達。然而,可以查明的是,通信路徑204-208可能具有不同的等待時間和/或ー鏈路可能失效,由此導致通信流中的數據分組未按期望的順序被接收。在一個示例性實施例中, 網絡基礎結構設備210或者接收者計算設備104可被配置有緩沖區,該緩沖區在接收這些分組時緩存多個數據分組并對通信流中的數據分組進行正確地排序。一旦被置于正確的順序,數據分組就可由接收者計算設備104中的第二應用來處理。然而,可能不期望維持這種緩沖區。因此,接收者計算設備104可包括確認生成器組件218。確認生成器組件218可根據TCP標準來操作。例如,確認生成器組件218可被配置為在接收特定的數據分組之際輸出確認。此外,確認生成器組件218可被配置為如果未按期望的順序接收分組則輸出重復確認。在ー個具體的示例中,期望的順序可以如下分組I ;分組2 ;分組3 ;分組4。在通過單個通信路徑傳輸通信流的常規實現中,通常按照正確的順序傳輸并接收分組。然而,由于通信路徑204-208的不同的等待時間,接收者計算設備104可以不按正確的順序接收這種分組。例如,接收者計算設備可以第一個接收到第一數據分組,確認生成器組件可以向發送者計算設備輸出第一數據分組已被接收的確認,由此通知發送者計算設備102 :接收者計算設備104準備好接收第二數據分組。接收者計算設備104隨后可能接收第三數據分組。確認生成器組件218可以識別第三數據分組被失序地接收,并且可以生成并傳輸以下確認接收者計算設備104已經接收第一數據分組,由此再次通知發送者計算設備102 :接收者計算設備104準備好接收第二數據分組。該確認可被認為是重復確認,因為它與第一數據分組被接收時的最初確認基本相似。繼續該示例,接收者計算設備104隨后可接收第四數據分組。確認生成器組件218可以識別第四數據分組已被失序地接收(例如,第二數據分組尚未被接收),并且可以生成并傳輸另ー個確認接收者計算設備104已經接收第一數據分組并準備好接收第二數據分組。這些確認可被傳輸回到發送者計算設備102。發送者計算設備102包括確認處理器組件220,該確認處理器組件220以防止發送者計算設備102向接收者計算設備104重傳數據分組的方式來處理由確認生成器組件218生成的重復確認。在第一個示例中,確認處理器組件220可以接收重復確認,識別該重復確認,并且在識別該重復確認之際丟棄該重復確認。使用該方法,例如軟件可被配置作為TCP的覆蓋, 使得不需要修改TCP標準以實現多路徑通信。確認處理器組件220的這種方法在數據中心網絡中可能是實用的,因為通信通常是可靠的,并且被丟棄的數據分組和/或鏈路失效是罕見的。在第二個示例中,確認處理器組件220可以接收重復確認,識別該重復確認,并且將該重復確認作為最初確認來對待。由此,發送者計算設備102可以響應該重復確認。使用該方法,可以從與網絡條件有關的重復確認中提取數據。然而,對重復確認的這種類型的處理可以落在TCP標準以外。換言之,數據中心中的ー個或多個計算設備可能需要TCP標準以外的更改從而以該方式來對待重復確認。因此,該方法對于單個實體對數據中心中的每個計算設備(包括網絡基礎結構設備)具有所有權/控制的情形是實用的。
在第三個示例中,確認處理器組件220可被配置為對關于特定數據分組接收到的重復確認的數量進行計數,并且將該數量與一閾值進行比較,其中該閾值大于3。如果重復確認的數量低于閾值,則確認處理器組件220防止發送者計算設備102重傳數據分組。如果重復確認的數量等于或大于閾值,則確認處理器組件220使發送者計算設備102重傳接收者計算設備104沒有接收的數據分組。再次,對重復確認的該處理落在與TCP相對應的標準以外(當TCP用于重傳數據分組的重復確認的閾值數為3吋),并且由此數據中心中的 ー個或多個計算設備(包括網絡基礎結構設備)可能需要TCP標準以外的變更從而以此方式來對待重復確認。再次,該方法對于單個實體對數據中心中的每個計算設備(包括網絡基礎結構設備)具有所有權/控制的情形是實用的。雖然系統200已被示出并被描述為具有被包括在特定計算設備/裝置中的特定組件,但應該理解的是,其他實現也被發明人所構想并g在落入所附權利要求書的范圍之內。 例如,網絡基礎結構設備210可包括確認生成器組件218,和/或接收者計算設備104本身可以是交換機、路由器等。另外,發送者計算設備102可包括熵生成器組件。此外,計算裝置202可包括確認處理器組件220。現在參考圖3,示出了 TCP底層的示例性實現300。在此示例中,在計算設備上執行的應用302是經由套接字306與TCP協議棧304的接ロ。底層308位于TCP協議棧304 之下,使得TCP協議棧304無需被修改。底層308可以識別重復確認并使其被拋出/忽略, 由此允許TCP協議棧304保持不變。另外,未修改IP協議棧310。現在參考圖4,示出了示例性數據中心結構400。數據中心結構400包括例如可以是服務器的多個處理設備402-416。這些處理設備如圖4所示用字母“H”來表示。處理設備的特定分組(例如,402-404、406-408、410-412和414-416)可以與相應的頂架路由器(T-路由器)進行通信。由此,處理設備402-404與T-路由器418直接通信,處理設備 406-408與T-路由器420直接通信,處理設備410-412與T-路由器422直接通信,并且處理設備414-416與T-路由器424直接通信。雖然每個T-路由器被示出與20個處理設備通信,T-路由器上的端ロ的數量可以變化并不限于20個。數據中心結構400還包括中間路由器(I-路由器)426-4321-路由器426-432的子集可與T-路由器418-420的子集通信以在概念上生成I-T 二分圖,該I-T 二分圖可被劃分為若干子圖,每個子圖是全連接的(在二分圖的意義上)。多個底架路由器(B-路由器)434-436可以耦合到每個I-路由器426-432。 雖然此處示出的結構是相對簡單的,但可以在這種結構上擴展以在數據中心中使用。根據ー個示例,可以基于4元參數系統(DpDpDyK),構建包括T-路由器、I-路由器和B-路由器在內的所顯示的三層對稱結構(組結構)。DpD1和Db可以分別是T-路由器、 I-路由器和B-路由器的度(例如,網絡接ロ控制器的可用數量),并且可以是獨立的參數。 Nb可以是數據中心中的B-路由器的數量,并且不是完全獨立的,因為Nb彡D1-I (每個I-路由器將被連接到至少ー個T路由器)。下面以列表形式示出這4-元參數系統可表示的若干其他結構化屬性值I-路由器的總數N1 = Db。連接到每個I-路由器的T-路由器的數量nT = Di-Nb,也可以是每個ー級(T-I級) 全網狀二分圖中的T-路由器的數量nT = D1-Np入T — NAD1 -Db) _ DJD1 -Nb)T-路由器的總數Nt — --。
TT一個流的可用路徑的總數nP =D2txNb。每個T-I 二分圖和I-B 二分圖的維度可以分別是(Di-Nb) XDt和DbXNb,二者都是全網狀的。T-I 二分圖的總數可以等于ず。可以注意到,由于整數限制,Db可以是Dt的倍數。現在參考圖5-6,示出并描述了各種示例性方法。盡管各方法被描述為順序地執行的一系列動作,但可以理解,這些方法不受該順序的次序的限制。例如,一些動作能以與本文描述的不同的次序發生。另外,動作可以與另ー動作同時發生。此外,在一些情況下,實現本文描述的方法并不需要所有動作。此外,本文描述的動作可以是可由一個或多個處理器實現的和/或存儲在ー個或多個計算機可讀介質上的計算機可執行指令。計算機可執行指令可包括例程、子例程、程序、執行的線程等。另外,這些方法的動作的結果可以存儲在計算機可讀介質中,顯示在顯示設備上,等等。計算機可讀介質可以是非瞬時介質、諸如存儲器、硬盤驅動器、CD、DVD、閃存驅動器等。現在參考圖5,示出了便于在數據中心網絡中通過多條通信路徑傳輸通信流的方法500。方法500在502開始,并且在504,接收供數據中心網絡中的接收者計算設備使用的通信流。例如,可在交換機或路由器處接收通信流,并且該通信流可包括期望按照特定順序傳輸并接收的多個數據分組。在506,通過多條通信鏈路將通信流傳輸到接收者計算設備。在一個示例中,接收者計算設備可以是網絡交換機或路由器。在另ー個示例中,接收者計算設備可以是服務器。在508,從接收者計算設備接收對未按特定順序接收通信流中的數據分組的指示。 如上所述,這是有可能的,因為數據分組是通過具有不同的對應等待時間的不同的通信路徑來傳輸的。根據ー個示例,前述的指示可以是根據TCP標準生成并傳輸的重復確認。在510,處理該指示以防止從發送者計算設備到接收者計算設備的通信流中的數據分組的重傳。例如,可以采用軟件覆蓋來識別該指示并丟棄這種指示。在另ー個示例中, 該指示可以是重復確認,并且可被作為根據TCP標準的最初確認來對待。在又一個示例中, 可以對關于特定數據分組接收的重復確認的數量進行計數,并且可將所得數量與一閾值進行比較,該閾值大于TCP標準中所利用的閾值。方法500在512完成。現在參考圖6,便于在數據中心中通過多條通信路徑傳輸通信流的示例性方法 600。方法600在602開始,并且在604,接收供數據中心網絡中的接收者計算設備使用的數據。例如,可從在數據中心中的服務器上運行的應用接收數據,并且交換機可被配置為將這種數據劃分為根據TCP標準期望按照特定順序傳輸并接收的多個數據分組。在606,將熵添加到通信流中每個數據分組的頭部。例如,可采用散列算法來更改預期的接收者計算設備的地址中的不重要的位。這可以使得交換機通過不同的通信路徑來傳輸通信流中的數據分組。在608,至少部分地基于在動作606添加的熵,跨多條通信鏈路將通信流傳輸到接收者計算設備。接收者計算設備可包括用于移除數據分組中的熵的散列算法,使得可以重構通信流,并且可向預期的接收者應用提供所得數據。方法600在610完成。現在參考圖7,示出了可以根據本文公開的系統和方法使用的示例性計算設備 700的高級圖示。例如,計算設備700可用在支持數據中心中通信流的多路徑通信的系統中。在另ー示例中,計算設備700的至少一部分可以用在支持WAN或LAN中通信流的多路徑通信的系統中。計算設備700包括執行存儲在存儲器704中的指令的至少ー個處理器702。 存儲器704可以是或可以包括RAM、ROM、EEPR0M、閃存、或其它適合的存儲器。這些指令可以是例如用于實現被描述為由上述一個或多個組件執行的功能的指令或用于實現上述方法中的ー個或多個的指令。處理器702可以通過系統總線706訪問存儲器704。除存儲可執行指令以外,存儲器704還可以存儲通信流的一部分、TCP網絡棧的全部或部分等。計算設備700附加地包括可由處理器702通過系統總線706訪問的數據存儲708。 數據存儲可以是或可以包括任何合適的計算機可讀存儲,包括硬盤、存儲器等。數據存儲 708可以包括可執行指令、通信流等。計算設備700還包括允許外部設備與計算設備700進行通信的輸入接ロ 710。例如,可以使用輸入接ロ 710來從外部計算機設備、網絡基礎結構設備等接收指令。計算設備700還包括將計算設備700與ー個或多個外部設備進行接ロ的輸出接ロ 712。例如,計算設備700可以通過輸出接ロ 712顯示文本、圖像等。另外,盡管被示為單個系統,但可以理解,計算設備700可以是分布式系統。因此, 例如,若干設備可以通過網絡連接進行通信并且可共同執行被描述為由計算設備700執行的任務。如此處所使用的,術語“組件”和“系統” g在涵蓋硬件、軟件、或硬件和軟件的組合。因此,例如,系統或組件可以是進程、在處理器上執行的進程、或處理器。另外,組件或系統可以位于單個設備上或分布在若干設備之間。此外,組件或系統可指存儲器的一部分和/或一系列晶體管。注意,出于解釋目的提供了若干示例。這些示例不應被解釋為限制所附權利要求書。另外,可以認識到,本文提供的示例可被改變而仍然落入權利要求的范圍內。
權利要求
1.ー種方法,包括從數據中心中的發送者計算設備接收供特定的接收者計算設備使用的通信流,其中所述通信流包括期望由所述接收者計算設備以特定順序接收的多個數據分組,其中所述多個數據分組的每ー個標識所述特定的接收者計算設備,并且其中在所述發送者計算設備與所述接收者計算設備之間存在多條通信路徑;選擇性地將熵添加到所述通信流中的所述多個數據分組的每ー個的頭部;至少部分地基于被添加到所述多個數據分組的每ー個的所述頭部的所述熵,通過所述多條通信路徑將所述網絡通信流傳輸到所述接收者計算設備,其中所述接收者計算設備未按所述特定順序接收所述多個數據分組的子集;從所述接收者計算設備接收對未按所述特定順序接收所述多個數據分組的所述子集的指示;以及處理所述指示以防止所述多個數據分組的所述子集中的至少ー個數據分組被重傳到所述接收者計算設備。
2.如權利要求I所述的方法,其特征在于,所述發送者計算設備和所述接收者計算設備是所述數據中心中的服務器。
3.如權利要求I所述的方法,其特征在于,其中網絡交換機被配置為執行接收和傳輸的動作。
4.如權利要求I所述的方法,其特征在于,所述發送者計算設備和所述接收者計算設備被配置為經由傳輸控制協議彼此通信。
5.如權利要求I所述的方法,其特征在于,所述指示是根據傳輸控制協議傳輸的重復確認。
6.如權利要求5所述的方法,其中處理所述重復確認包括在接收所述重復確認之際遞增計數,其中毎次接收與所述通信流中的特定數據分組相對應的重復確認時,遞增所述計數;將所述計數與閾值進行比較,其中所述閾值大于3 ;如果所述計數小于或等于所述閾值,則忽略所述重復確認;以及如果所述計數大于所述閾值,則將所述數據分組重傳到所述接收者計算設備。
7.如權利要求5所述的方法,其中處理所述重復確認包括識別所述重復確認;以及選擇性地丟棄所述重復確認。
8.如權利要求5所述的方法,其中處理所述重復確認包括識別所述重復確認;以及根據所述傳輸控制協議,將所述重復確認選擇性地作為普通確認來對待。
9.一種數據中心中的裝置(202),包括接收器組件(212),它從發送者計算設備接收期望被傳輸到接收者計算設備的通信流, 其中所述通信流包括多個數據分組,其中所述數據分組的每ー個包括頭部;熵生成器組件(214),它將熵添加到每個數據分組的頭部;以及發送器組件(216),它至少部分地基于被添加到每個數據分組的頭部的所述熵,跨所述發送者計算設備與所述接收者之間的所述數據中心中的多條通信路徑傳輸所述通信流。
10.如權利要求9所述的裝置,其特征在于,還包括確認處理器組件,它從所述接收者計算設備接收對未按期望順序接收所述通信流中的數據分組的指示,并且處理所述指示以防止所述通信流中的至少ー個數據分組被重傳到所述接收者計算設備。
全文摘要
此處描述了與數據中心環境中的多路徑通信有關的各種技術。網絡基礎結構設備彼此傳遞通信流,其中通信流包括期望以特定順序傳輸并接收的供特定的接收者計算設備使用的多個數據分組。以防止網絡基礎結構設備重傳特定的數據分組的方式處理對通信流中的數據分組未按特定順序被接收的指示。
文檔編號H04L29/06GK102611612SQ20111043136
公開日2012年7月25日 申請日期2011年12月20日 優先權日2010年12月21日
發明者A·G·格林伯格, C·金, D·A·馬爾茨, J·D·帕德耶, M·斯里達蘭, 譚博 申請人:微軟公司