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