用于數(shù)據(jù)中心交換機(jī)的流感知緩沖區(qū)管理的制作方法
【專利摘要】提供了實(shí)現(xiàn)流感知的緩沖區(qū)管理的系統(tǒng)和方法。該方法包括:在緩沖區(qū)的隊(duì)列中存儲(chǔ)第一類型的業(yè)務(wù),在緩沖區(qū)的隊(duì)列中存儲(chǔ)第二類型的業(yè)務(wù),其中第一類型的業(yè)務(wù)與第二類型的業(yè)務(wù)相比對(duì)延遲較不敏感,以及當(dāng)?shù)谝活愋偷臉I(yè)務(wù)的量達(dá)到或超過第一閾值時(shí),實(shí)現(xiàn)對(duì)第一類型的業(yè)務(wù)的流控制以減慢第一類型的業(yè)務(wù)的流進(jìn)入緩沖區(qū)。流控制可以通過分組標(biāo)記或通過丟棄分組來(lái)被實(shí)現(xiàn)。這種方法在與網(wǎng)絡(luò)交換機(jī)中的大象流和鼠標(biāo)流相關(guān)的方面有獨(dú)特的實(shí)用性。
【專利說明】
用于數(shù)據(jù)中心交換機(jī)的流感知緩沖區(qū)管理
技術(shù)領(lǐng)域
[0001]本公開涉及數(shù)據(jù)通信以及通過電子數(shù)據(jù)網(wǎng)絡(luò)的交換單元的業(yè)務(wù)流。
【背景技術(shù)】
[0002]近幾年,除了其它方面以外,數(shù)據(jù)中心通過合并之前在企業(yè)范圍內(nèi)實(shí)現(xiàn)的大規(guī)模計(jì)算機(jī)功能以及通過啟用云計(jì)算服務(wù)來(lái)轉(zhuǎn)變計(jì)算服務(wù)。然而,隨著數(shù)據(jù)中心使用的日益增加,運(yùn)行這些數(shù)據(jù)中心的成本也日益增加。同時(shí),消費(fèi)者對(duì)不斷提高帶寬和處理能力的需求也在持續(xù)增長(zhǎng)。因此,數(shù)據(jù)中心運(yùn)營(yíng)商尤其注重提供數(shù)據(jù)中心服務(wù)的成本,并且繼續(xù)尋找控制這些成本和維持消費(fèi)者滿意度的方法。
[0003]研究表明,針對(duì)穿過數(shù)據(jù)中心的數(shù)據(jù)通信業(yè)務(wù),至少可以定義兩種主要類別或類型的的業(yè)務(wù)流。第一類別或類型的業(yè)務(wù)流與諸如搜索請(qǐng)求、社交網(wǎng)絡(luò)和零售應(yīng)用之類的服務(wù)相關(guān)聯(lián),這種服務(wù)傾向于產(chǎn)生穿過數(shù)據(jù)中心的大量“小的”請(qǐng)求和回應(yīng)。這種第一類型的業(yè)務(wù)通常在所屬領(lǐng)域被稱為“鼠標(biāo)”業(yè)務(wù)或“鼠標(biāo)流”,并且它以對(duì)每一個(gè)短請(qǐng)求/響應(yīng)流需要低延遲的應(yīng)用為特征。第二類別或類型的業(yè)務(wù)流與諸如備份、復(fù)制、媒體流、數(shù)據(jù)挖掘等等之類的服務(wù)相關(guān)聯(lián),這種服務(wù)傾向于產(chǎn)生穿過數(shù)據(jù)中心的“大的”流,并且常提供數(shù)據(jù)中心內(nèi)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的持續(xù)更新。這種第二類型的業(yè)務(wù)通常在所屬領(lǐng)域被稱為“大象”業(yè)務(wù)或“大象流”,并且它以可以處理更高延遲但一般依靠更高吞吐量的應(yīng)用為特征。重要的是,大象流“霸占”給定數(shù)據(jù)中心的帶寬(特別是數(shù)據(jù)中心中被選擇的交換單元的緩沖區(qū)資源)并不罕見。更具體地,數(shù)據(jù)中心內(nèi)的交換單元包括存儲(chǔ)器,該存儲(chǔ)器用于與確定哪里應(yīng)當(dāng)發(fā)送業(yè)務(wù)(比如,確定傳入的數(shù)據(jù)應(yīng)從交換單元的哪一個(gè)端口被發(fā)送)相聯(lián)系地緩沖傳入的業(yè)務(wù)。但是,當(dāng)由于已經(jīng)接收的數(shù)據(jù)比可以從緩沖區(qū)適當(dāng)發(fā)送或移除的數(shù)據(jù)多而導(dǎo)致緩沖區(qū)填滿時(shí),這種交換單元處新傳入的業(yè)務(wù)通常會(huì)被丟失或丟棄,導(dǎo)致整個(gè)處理時(shí)間更長(zhǎng),對(duì)于端點(diǎn)進(jìn)程,尤其是依靠鼠標(biāo)流的端點(diǎn)進(jìn)程,該更長(zhǎng)的處理時(shí)間尤其對(duì)用戶體驗(yàn)?zāi)酥琳麄€(gè)客戶滿意度不利。
【附圖說明】
[0004]圖1描繪了包含可以根據(jù)本文所描述的示例實(shí)施例配置的機(jī)架式交換機(jī)的頂部的示例數(shù)據(jù)中心結(jié)構(gòu);
[0005]圖2描繪了通過根據(jù)本文所描述的示例實(shí)施例被配置的交換機(jī)的使用傳輸控制協(xié)議(TCP)/互聯(lián)網(wǎng)協(xié)議(IP)的數(shù)據(jù)通信;
[0006]圖3描繪了包含緩沖區(qū)的交換機(jī),該緩沖區(qū)可以被監(jiān)控來(lái)實(shí)現(xiàn)根據(jù)示例實(shí)施例的數(shù)據(jù)業(yè)務(wù)控制機(jī)制。
[0007]圖4是描繪了實(shí)現(xiàn)根據(jù)本文所描述的示例實(shí)施例的緩沖區(qū)管理的示例操作的流程圖。
[0008]圖5是描繪了實(shí)現(xiàn)根據(jù)本文所描述的示例實(shí)施例的緩沖區(qū)管理的示例操作的另一流程圖。
[0009]圖6描繪了根據(jù)本文所描述的示例實(shí)施例操作的交換機(jī)的一種可能實(shí)施方案。
【具體實(shí)施方式】
[0010]抵莖
[0011]本公開提供了可以實(shí)現(xiàn)流感知的緩沖管理系統(tǒng)和方法。該方法包括:在緩沖區(qū)的隊(duì)列中存儲(chǔ)第一類型的業(yè)務(wù),在緩沖區(qū)的隊(duì)列中存儲(chǔ)第二類型的業(yè)務(wù),其中第一類型的業(yè)務(wù)與第二類型的業(yè)務(wù)相比對(duì)延遲較不敏感,以及當(dāng)?shù)谝活愋偷臉I(yè)務(wù)的量達(dá)到或超過第一閾值時(shí),實(shí)現(xiàn)對(duì)第一類型的業(yè)務(wù)的流控制以減慢第一類型的業(yè)務(wù)的流進(jìn)入緩沖區(qū)。流控制可以通過分組標(biāo)記或通過丟棄分組來(lái)被實(shí)現(xiàn)。這種方法在與網(wǎng)絡(luò)交換機(jī)中的大象流和鼠標(biāo)流相關(guān)的方面有獨(dú)特的實(shí)用性。
[0012]示例實(shí)施例
[0013]圖1描繪了包含可以根據(jù)本文所描述的實(shí)施例被配置的機(jī)架式交換機(jī)的頂部的數(shù)據(jù)中心結(jié)構(gòu)。如圖1所示,數(shù)據(jù)中心100例如可以與數(shù)據(jù)中心邊緣路由器110通信。除了其他可能的連接可能之外,數(shù)據(jù)中心邊緣路由器110可以與在同一個(gè)數(shù)據(jù)中心的其他路由器(未示出)、其他數(shù)據(jù)中心(未示出)或云計(jì)算環(huán)境(未示出)通信。數(shù)據(jù)中心邊緣路由器110可以與數(shù)據(jù)中心邊緣(其一般也可以被當(dāng)作聚合或行的末端)交換機(jī)120通信,在該具體實(shí)現(xiàn)方式中,邊緣交換機(jī)120負(fù)責(zé)在多個(gè)服務(wù)器170中通過機(jī)架式交換機(jī)的頂部150交換數(shù)據(jù)通信流,其中,機(jī)架式交換機(jī)的頂部150控制去往和來(lái)自被布置在多個(gè)機(jī)架180上的多個(gè)服務(wù)器170的流。如圖所示,每個(gè)機(jī)架180例如包括機(jī)架式交換機(jī)的頂部150(a)、150(b)、150(c),其后被表示為150。在該具體的實(shí)現(xiàn)方式中,機(jī)架式交換機(jī)的頂部150負(fù)責(zé)確保到達(dá)的來(lái)自數(shù)據(jù)中心邊緣交換機(jī)120的數(shù)據(jù)通信被路由到給定機(jī)架180中合適的服務(wù)器170。同樣的,在該具體的實(shí)現(xiàn)方式中,機(jī)架式交換機(jī)的頂部150負(fù)責(zé)確保到達(dá)的來(lái)自給定機(jī)架180中給定服務(wù)器170的數(shù)據(jù)通信被傳送到例如同一個(gè)機(jī)架180內(nèi)的其他服務(wù)器或者在數(shù)據(jù)中心120中的其他服務(wù)器,或者被傳送到數(shù)據(jù)中心邊緣路由器110。
[0014]如將在以下更詳細(xì)地解釋的,機(jī)架式交換機(jī)的頂部150包括緩沖區(qū)管理邏輯300,該邏輯被配置來(lái)更好地控制被緩沖在機(jī)架式交換機(jī)的頂部150的緩沖區(qū)中的數(shù)據(jù)的量和類型,以針對(duì)不同形式的數(shù)據(jù)通信(例如,鼠標(biāo)流和大象流)提供改善的服務(wù)質(zhì)量。雖然該描述著重于機(jī)架式交換機(jī)的頂部,所屬領(lǐng)域技術(shù)人員將理解本文所描述的技術(shù)可應(yīng)用于包含數(shù)據(jù)中心邊緣交換機(jī)120或者路由器(包括數(shù)據(jù)中心邊緣路由器110)的任何網(wǎng)絡(luò)交換單元。為了描述的目的,機(jī)架式交換機(jī)的頂部此后將被簡(jiǎn)稱為“交換機(jī)” 150。
[0015]在許多情況下,以上提到的數(shù)據(jù)通信用若干協(xié)議中的任何一種被實(shí)施。在本公開的上下文中,傳輸控制協(xié)議(TCP)被用來(lái)確保兩個(gè)給定進(jìn)程間的可靠連接。也就是說,結(jié)合互聯(lián)網(wǎng)協(xié)議(IP) —起使用TCP,以通過網(wǎng)絡(luò)連接發(fā)送和接收以分組形式(預(yù)定的字節(jié)組)的數(shù)據(jù)通信,尤其是兩個(gè)給定的端點(diǎn)進(jìn)程間(例如,在用戶計(jì)算機(jī)上運(yùn)行的正從網(wǎng)頁(yè)服務(wù)器(例如,數(shù)據(jù)中心100中示出的服務(wù)器170中的一個(gè))請(qǐng)求信息的瀏覽器)的數(shù)據(jù)通信。
[0016]具體來(lái)說,參照?qǐng)D2,在計(jì)算機(jī)(其可以是一個(gè)服務(wù)器)上運(yùn)行的進(jìn)程210使用TCP220和IP 230來(lái)將數(shù)據(jù)通信發(fā)送到進(jìn)程260(也在計(jì)算機(jī)上運(yùn)行),或從進(jìn)程260接收數(shù)據(jù)通信,其中,進(jìn)程260也使用TCP 250和IP 240,除了其他組件外,以上操作都通過交換機(jī)150。如圖2中進(jìn)一步所表明,TCP 220、250實(shí)現(xiàn)兩個(gè)進(jìn)程210、260間的可靠連接,而所示的IP連接由不可靠的IP數(shù)據(jù)報(bào)組成。
[0017]更具體地,TCP提供面向連接的、可靠的字節(jié)流服務(wù)(而IP不提供)。術(shù)語(yǔ)面向連接的意思是使用TCP的兩個(gè)應(yīng)用(例如,進(jìn)程210、260)在它們交換數(shù)據(jù)之前與彼此建立TCP連接。實(shí)現(xiàn)可靠性是因?yàn)門CP為被發(fā)送的每個(gè)分組分配序列號(hào),并且針對(duì)被這樣接收的每個(gè)分組預(yù)期來(lái)自接收TCP實(shí)例的肯定的確認(rèn)(ACK)。如果ACK沒有在超時(shí)時(shí)間間隔或周期內(nèi)被接收,數(shù)據(jù)將被再次發(fā)送并且數(shù)據(jù)傳輸速率可能被發(fā)送者TCP實(shí)例降低。當(dāng)片段亂序地到達(dá)時(shí),接收TCP實(shí)例使用序列號(hào)來(lái)重排片段并且刪除重復(fù)的片段。
[0018]當(dāng)接收TCP實(shí)例將ACK發(fā)送回TCP發(fā)送者實(shí)例時(shí),還向TCP發(fā)送者實(shí)例指示除了最后接收到的TCP片段之外,在不在其內(nèi)部緩沖區(qū)引起超限或溢出的情況下它還可以接收的字節(jié)數(shù)。
[0019]換句話說,TCP被配置來(lái)實(shí)現(xiàn)針對(duì)數(shù)據(jù)通信的流控制。仍然參考圖2,可以看出如果一個(gè)或多個(gè)IP數(shù)據(jù)報(bào)沒有在例如TCP 250處被接收,則TCP 250不會(huì)向TCP 220發(fā)送回針對(duì)丟失的數(shù)據(jù)報(bào)的ACK。值得注意的是,交換機(jī)150本身可能是造成沒能向IP 240適當(dāng)?shù)貍魉徒o定IP數(shù)據(jù)報(bào)的原因,它導(dǎo)致了TCP 250沒能接收到TCP片段使得TCP 250沒能向TCP 220返回ACK的情形。
[0020]交換機(jī)150沒能傳送給定IP數(shù)據(jù)報(bào)的一個(gè)原因是交換機(jī)150內(nèi)的緩沖區(qū)可能被裝滿,使得在交換機(jī)150處出現(xiàn)的任何新業(yè)務(wù)由于在其緩沖器內(nèi)已沒有多余的空間而被丟棄。處理緩沖區(qū)溢出以及因此導(dǎo)致的接下來(lái)的分組丟失的一種方法是增加緩沖區(qū)的大小。然而,這種方法不僅是處理緩沖區(qū)溢出的更高成本的解決方案,而且這種解決方案可能實(shí)際上并不能處理根本問題,該根本問題與被交換機(jī)150處理的業(yè)務(wù)類型關(guān)系更緊密,而不是被交換機(jī)150處理的整體業(yè)務(wù)的多少。更具體地,并且如接下來(lái)將更詳細(xì)地解釋的,通過跟蹤在給定時(shí)刻處與鼠標(biāo)流相比大象流在緩沖區(qū)中的范圍,有可能以減少甚至消除TCP超時(shí)(尤其是鼠標(biāo)流的TCP超時(shí))的方式實(shí)現(xiàn)(即,引起)對(duì)大象流的流控制,其中TCP超時(shí)由TCP接收實(shí)例處未能接收TCP片段引起。如圖2所示,緩沖區(qū)管理邏輯300被提供來(lái)管理交換機(jī)150的緩沖區(qū),以將導(dǎo)致丟失TCP片段并導(dǎo)致TCP超時(shí)的IP數(shù)據(jù)報(bào)的丟棄減到最少。
[0021]根據(jù)本文所描述實(shí)施例的流控制可以通過有目的的丟棄一個(gè)或多個(gè)分組或者通過適當(dāng)?shù)貥?biāo)記一個(gè)或多個(gè)分組來(lái)實(shí)現(xiàn)。在TCP連接中無(wú)論分組是被非故意地還是被故意地丟棄,其結(jié)果是一樣的:TCP連接的發(fā)送側(cè)不會(huì)接收到ACK,因而可能降低傳輸速率,并且至少可能要重新發(fā)送其ACK沒有被接收到的片段。
[0022]標(biāo)記例如可以通過使用顯式擁塞通知(ECN)來(lái)實(shí)現(xiàn)。ECN是互聯(lián)網(wǎng)協(xié)議和TCP的擴(kuò)展,它允許端到端網(wǎng)絡(luò)擁塞通知而不會(huì)丟失分組。如果按照本文描述的實(shí)施例被配置,ECN感知的網(wǎng)絡(luò)設(shè)備(比如交換機(jī)150)可以在IP分組頭部設(shè)置標(biāo)記而不是丟掉分組,以便用信號(hào)通知即將發(fā)生的擁塞。IP分組的接收者將擁塞指示回送給發(fā)送者TCP實(shí)例,這會(huì)降低傳輸速率,就像其檢測(cè)到丟失的分組。
[0023]所屬領(lǐng)域技術(shù)人員將理解的是,TCP被設(shè)計(jì)以保持提高其吞吐量,除非收到反饋。該反饋既不是分組丟失也不是ECN標(biāo)記。它確保TCP持續(xù)地評(píng)估可用帶寬并使用它。如果TCP什么都不做,大象流將填滿交換機(jī)緩沖區(qū),因?yàn)槟鞘荰CP操作的自然效應(yīng)。
[0024]現(xiàn)在參考圖3,它描述了包含可以被監(jiān)控以實(shí)現(xiàn)本文所描述的業(yè)務(wù)控制機(jī)制的緩沖區(qū)350的交換機(jī)150。也就是說,本文所描述的方法使得流控制在其可能以別的方式被執(zhí)行之前被執(zhí)行。
[0025]如圖所示,交換機(jī)150包括多個(gè)人站端口 310、多個(gè)出站端口 320、緩沖區(qū)350和緩沖管理邏輯300。入站端口 310被配置來(lái)接收傳入的例如以IP數(shù)據(jù)報(bào)或分組的形式的數(shù)據(jù)通信業(yè)務(wù),其可以被進(jìn)一步解構(gòu)成多個(gè)字節(jié)。這種字節(jié)接下來(lái)被暫時(shí)地存儲(chǔ)在緩沖區(qū)350直到交換機(jī)150通過多個(gè)出站端口中的一個(gè)或多個(gè)將這些字節(jié)發(fā)送出去。
[0026]當(dāng)每個(gè)傳入字節(jié)被存儲(chǔ)在緩沖區(qū)350中時(shí),緩沖區(qū)字節(jié)計(jì)數(shù)器360增加。并且,當(dāng)每個(gè)字節(jié)被從緩沖區(qū)350移除時(shí),緩沖區(qū)字節(jié)計(jì)數(shù)器360減小。照此,緩沖區(qū)字節(jié)計(jì)數(shù)器360在任何時(shí)刻都維持存儲(chǔ)在緩沖區(qū)350中的字節(jié)數(shù)的最新值。
[0027]圖3還示出了大象流陷阱380。大象流陷阱380被配置為確定給定的傳入數(shù)據(jù)通信流是否可以被指定為大象流,即,與諸如備份、復(fù)制或數(shù)據(jù)挖掘之類的服務(wù)相關(guān)聯(lián)的流。換言之,大象流陷阱380被配置為區(qū)分大象流和鼠標(biāo)流??梢月?lián)系本文所描述的方法實(shí)現(xiàn)多種大象流陷阱的設(shè)計(jì)。一種可能的設(shè)計(jì)使用布隆過濾器。另一種設(shè)計(jì)將流散列到表格中并且對(duì)大于某些持續(xù)時(shí)間的空閑周期進(jìn)行計(jì)數(shù)。另一種可能的設(shè)計(jì)根據(jù)采樣的時(shí)間窗中分組的數(shù)量來(lái)定義大象流。在另一種可能的實(shí)現(xiàn)方案中,大象流陷阱380在入站端口 310處運(yùn)行,并且當(dāng)大象流被檢測(cè)到時(shí),大象流陷阱生成指示,該指示表示在適當(dāng)?shù)臅r(shí)候例如經(jīng)由描述符塊被傳遞到出站端口 320的大象流。大象陷阱380的具體設(shè)計(jì)并不關(guān)鍵,只要設(shè)計(jì)可以有效地識(shí)別大象流,和/或區(qū)分大象流和鼠標(biāo)流。
[0028]通過指定給定的數(shù)據(jù)通信流作為大象流(使用大象流陷阱380),維持大象流字節(jié)計(jì)數(shù)器370因此是可能的。就像緩沖區(qū)字節(jié)計(jì)數(shù)器360—樣,大象流字節(jié)計(jì)數(shù)器370保持對(duì)字節(jié)的最新的字節(jié)計(jì)數(shù),但在此情況下,字節(jié)計(jì)數(shù)與任意時(shí)刻被大象流陷阱380標(biāo)識(shí)并被存儲(chǔ)在緩沖區(qū)350處的大象流相關(guān)聯(lián)。
[0029]由于交換機(jī)150的緩沖區(qū)350經(jīng)常會(huì)被與大象流相關(guān)的業(yè)務(wù)(字節(jié))填滿(因?yàn)?,這種流本質(zhì)上字節(jié)更密集),緩沖區(qū)管理邏輯300被采用,以通過某種控制回路的方式來(lái)更好地控制大象流,比如,通過在大象流填滿緩沖區(qū)350而不留任何空間鼠標(biāo)流(如所記錄的,其對(duì)延遲更敏感)之前優(yōu)先地丟棄或標(biāo)記大象流的分組來(lái)更好地控制大象流。
[0030]更具體地,一旦被大象流消耗的緩沖區(qū)的量超過標(biāo)記閾值,可以在所有離開的屬于大象流的分組上發(fā)出擁塞反饋(例如,ECN)。如果被大象流消耗的緩沖區(qū)的量超過丟棄閾值(例如,大于標(biāo)記閾值),到達(dá)的屬于大象流的分組被丟棄。在一種實(shí)施方案中,分組的標(biāo)記和/或丟棄依概率被執(zhí)行。
[0031]現(xiàn)在參照?qǐng)D4和圖5來(lái)更詳細(xì)地描述這種丟棄,圖4描述了由交換機(jī)與緩沖區(qū)管理邏輯300聯(lián)合執(zhí)行的一系列操作400。在410處,數(shù)據(jù)通信業(yè)務(wù)在比如交換機(jī)150處被接收。在412處,確定所接收的數(shù)據(jù)通信業(yè)務(wù)是否應(yīng)當(dāng)被認(rèn)為是大象流(與鼠標(biāo)流相反地)??蛇x地,表明給定流是大象流的指示符可以被存儲(chǔ)在與流相關(guān)聯(lián)的分組描述符內(nèi)。在414處,與數(shù)據(jù)通信業(yè)務(wù)相關(guān)聯(lián)的字節(jié)被存儲(chǔ)在交換機(jī)150的緩沖區(qū)350內(nèi)。值得注意的是,無(wú)論此時(shí)業(yè)務(wù)被當(dāng)作大象流還是鼠標(biāo)流,與業(yè)務(wù)相關(guān)聯(lián)的字節(jié)被一同存儲(chǔ)在同一緩沖區(qū)和同一邏輯隊(duì)列內(nèi),使得分組被接收順序?qū)⑴c它們離開交換機(jī)的順序相同。在416處,與大象流相關(guān)的字節(jié)數(shù)通過使用比如計(jì)數(shù)器370來(lái)被跟蹤。通過使用此信息,在418處,緩沖區(qū)管理邏輯300根據(jù)預(yù)定的標(biāo)準(zhǔn)實(shí)現(xiàn)對(duì)大象流的速率控制。在一種可能的實(shí)現(xiàn)方式中,如上所提,預(yù)定的標(biāo)準(zhǔn)可以是計(jì)數(shù)器閾值,該計(jì)數(shù)器閾值使離開交換機(jī)150的分組被標(biāo)記(例如,使用ECN),或使隨后接收的分組在它們被存儲(chǔ)在緩沖區(qū)前被丟棄。
[0032]圖5示出了可被例如緩沖區(qū)管理邏輯300執(zhí)行的一系列操作500。操作500例如可以被認(rèn)為是圖4的操作418的更詳細(xì)的實(shí)現(xiàn)。如圖5所示,在510處確定大象流的字節(jié)計(jì)數(shù)器是否大于第一(標(biāo)記)閾值。如果不是,操作510被重復(fù)。操作500被執(zhí)行的頻率與計(jì)數(shù)器中的計(jì)數(shù)器值改變(即,字節(jié)/分組到達(dá)和離開交換機(jī)150)的頻率一樣。也就是說,每次計(jì)數(shù)器360或370改變了值,除了一系列操作500中的其他可能操作外,操作510會(huì)被執(zhí)行??商娲?,頻率可以視情況被配置成每隔10μ8、100μ8—次等。
[0033]如果在510處大象流字節(jié)計(jì)數(shù)器比第一閾值大,接下來(lái)在512處,針對(duì)速率或流控制,離開緩沖區(qū)的分組(或字節(jié))被標(biāo)記。ECN例如可以被用來(lái)標(biāo)記分組。在一種實(shí)施方案中,標(biāo)記是依概率被執(zhí)行的,使得例如每100個(gè)分組里的一個(gè)分組被標(biāo)記(與之相反的是,例如,標(biāo)記每個(gè)分組)。此外,隨著大象流字節(jié)計(jì)數(shù)器中的計(jì)數(shù)值越來(lái)越大于第一閾值,標(biāo)記被執(zhí)行的速率也可以被提高。也就是說,如果大象流字節(jié)計(jì)數(shù)器中的計(jì)數(shù)值比另一閾值大,則用每100個(gè)分組里標(biāo)記兩個(gè)分組來(lái)代替每100個(gè)分組里標(biāo)記一個(gè)分組。以這種方法,動(dòng)態(tài)的和加強(qiáng)的大象流限流可以在這些大象流將填滿緩沖區(qū)時(shí)(留給鼠標(biāo)流的空間很小乃至沒有)被實(shí)現(xiàn)。
[0034]在514處,確定大象流字節(jié)計(jì)數(shù)器中的值是否大于第二(例如,丟棄)閾值。如果不是,則操作510被重復(fù)。如果大象流字節(jié)計(jì)數(shù)器的值大于第二 (例如,丟棄)閾值,則在516處分組(即,與大象流相關(guān)聯(lián)的分組和相關(guān)字節(jié))被丟棄,使得它們根本不被存儲(chǔ)到緩沖區(qū)。在一種實(shí)施方案中,丟棄依概率被執(zhí)行,使得例如每100個(gè)分組里丟棄一個(gè)分組(與之相反的是,例如,丟棄每個(gè)分組)。此外,隨著大象流字節(jié)計(jì)數(shù)器中的計(jì)數(shù)值越來(lái)越大于第二閾值,丟棄被執(zhí)行的速率也可以被提高。也就是說,如果大象流字節(jié)計(jì)數(shù)器大于第三或第四等丟棄閾值,則每100個(gè)分組里丟棄兩個(gè)、或三個(gè)、或更多個(gè)分組(或者甚至丟棄所有分組)。以這種方法,加強(qiáng)的大象流限流可以在這些大象流將填滿緩沖區(qū)時(shí)(留給鼠標(biāo)流的空間很小乃至沒有)被實(shí)現(xiàn)。
[0035]應(yīng)指出的是,本文所描述的若干閾值(S卩,標(biāo)記和丟棄中的每一者的一個(gè)或多個(gè))可以作為用戶可配置的參數(shù)。以這種方式,數(shù)據(jù)中心管理者可以監(jiān)控穿過給定數(shù)據(jù)中心的數(shù)據(jù)通信業(yè)務(wù)類型并且然后相應(yīng)地設(shè)置閾值和任何相關(guān)的概率。
[0036]應(yīng)注意的是,每當(dāng)ECN不可用或者不可被實(shí)現(xiàn)時(shí),例如,本文所描述的方法可以僅依靠被強(qiáng)行丟棄的分組來(lái)完成對(duì)已存儲(chǔ)在緩沖區(qū)350中的大象流的期望的限制。
[0037]通過以上述方式操作交換機(jī),無(wú)需合并到數(shù)據(jù)中心交換機(jī)設(shè)計(jì)中的大緩沖區(qū)就可以避免TCP超時(shí)。
[0038]此外,當(dāng)給定流被分類為大象流或鼠標(biāo)流時(shí),以所描述的方式配置的交換機(jī)不會(huì)遇到亂序傳送的問題,因?yàn)殛?duì)列中的變化不需被實(shí)現(xiàn)。也就是說,流被放置在同一緩沖區(qū)和同一隊(duì)列中。不需為鼠標(biāo)流和大象留提供單獨(dú)的隊(duì)列。此外,因?yàn)橥ㄟ^有效地控制大象流維持了充足的緩沖區(qū)空間量,鼠標(biāo)流的延遲可以被處理。
[0039]最后,如所指示的,本文所描述的緩沖區(qū)流控制方法基本上僅依靠?jī)蓚€(gè)計(jì)數(shù)器,SP總的緩沖區(qū)字節(jié)計(jì)數(shù)器和大象流字節(jié)計(jì)數(shù)器。因此,與已包含總的緩沖區(qū)字節(jié)計(jì)數(shù)器的緩沖區(qū)相比,本文所描述的實(shí)施方案不會(huì)向交換機(jī)設(shè)計(jì)增加顯著的復(fù)雜性或開銷。
[0040]所描述的方法的附帶利益是它可以幫助避免TCP的“慢啟動(dòng)”3CP的慢啟動(dòng)影響鼠標(biāo)流,因?yàn)檫@種流涉及多次往返延遲來(lái)完成給定傳送。用這種方法,鼠標(biāo)流可以更好地被處理,因?yàn)榫彌_區(qū)維持了充足的空間。相應(yīng)的,TCP可以全速開啟(在給定窗內(nèi))來(lái)更快的完成鼠標(biāo)流。
[0041]雖然以上描述針對(duì)監(jiān)控交換機(jī)緩沖區(qū)內(nèi)的大象流,所屬領(lǐng)域的技術(shù)人員將理解的是,同樣的技術(shù)可以被應(yīng)用于鼠標(biāo)流或可以在多個(gè)不同類型的流中被區(qū)分的任何其他數(shù)據(jù)通信流。換句話說,交換機(jī)可以被配置為使用一個(gè)或多個(gè)標(biāo)記閾值和/或一個(gè)或多個(gè)丟棄閾值來(lái)控制鼠標(biāo)流(或其他流)的分組/字節(jié),并且標(biāo)記和/或丟棄發(fā)生的程度可以依概率被應(yīng)用。
[0042]現(xiàn)在參照?qǐng)D6,圖6示出了被配置為實(shí)現(xiàn)根據(jù)本文所描述的技術(shù)的流感知緩沖區(qū)管理的交換機(jī)150的示例框圖。交換機(jī)150包括網(wǎng)絡(luò)接口 610、處理器620和存儲(chǔ)器630。網(wǎng)絡(luò)接口 610被配置為接收用于存儲(chǔ)到緩沖區(qū)350的輸入數(shù)據(jù),并且還被配置為從緩沖區(qū)350輸出數(shù)據(jù)。網(wǎng)絡(luò)接口 610包括多個(gè)端口(未示出),在該多個(gè)端口處傳人的分組被接收并且和傳出的分組被發(fā)送。
[0043]處理器620可以是被配置來(lái)運(yùn)行用來(lái)執(zhí)行本文描述的各種操作和任務(wù)的程序邏輯指令的微處理器或微控制器。例如,處理器620可以運(yùn)行存儲(chǔ)在存儲(chǔ)器630中的緩沖區(qū)管理邏輯300(例如,如軟件)以執(zhí)行本文描述的緩沖區(qū)管理技術(shù)。存儲(chǔ)器630可以包括只讀存儲(chǔ)器(R0M)、隨機(jī)存取存儲(chǔ)器(RAM)、磁性存儲(chǔ)介質(zhì)、光存儲(chǔ)介質(zhì)、閃存、電的或其他物理/有形(非暫時(shí)性)的存儲(chǔ)器。
[0044]處理器620的功能可以被在一個(gè)或多個(gè)非暫時(shí)性有形計(jì)算機(jī)可讀介質(zhì)中編碼的邏輯(例如,諸如專用集成電路、數(shù)字信號(hào)處理器指令、由處理器執(zhí)行的軟件之類的嵌入式邏輯等)實(shí)施,其中存儲(chǔ)器630存儲(chǔ)本文所描述的操作所用的數(shù)據(jù)并且存儲(chǔ)被運(yùn)行以執(zhí)行本文所描述的操作的軟件或處理器可執(zhí)行指令。
[0045]緩沖區(qū)管理邏輯300可以采用各種形式中的任何一種形式,以便被編碼在一個(gè)或多個(gè)非暫時(shí)性有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或存儲(chǔ)設(shè)備(例如,存儲(chǔ)器630)中以供執(zhí)行,其例如為固定邏輯或可編程邏輯(例如,由處理器執(zhí)行的軟件/計(jì)算機(jī)指令)。在一些實(shí)施例中,處理器620是包含固定數(shù)字邏輯、可編程邏輯或其組合的專用集成電路(ASIC)。例如,處理器620可以用固定或可編程數(shù)字邏輯集成電路中的數(shù)字邏輯門陣列來(lái)實(shí)現(xiàn),其中數(shù)字邏輯門被配置為執(zhí)行緩沖區(qū)管理邏輯300的指令。在另一種形式中,緩沖區(qū)管理邏輯300可以在編碼有包含計(jì)算機(jī)可執(zhí)行指令的軟件的一個(gè)或多個(gè)有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中被實(shí)現(xiàn),其中該計(jì)算機(jī)可執(zhí)行指令在被執(zhí)行時(shí)可操作來(lái)執(zhí)行本文描述的操作。
[0046]總而言之,本文描述的實(shí)施例是針對(duì)用于實(shí)現(xiàn)流感知緩沖區(qū)管理的系統(tǒng)和方法。該方法包括:在緩沖區(qū)的隊(duì)列中存儲(chǔ)第一類型的業(yè)務(wù),在緩沖區(qū)的隊(duì)列中存儲(chǔ)第二類型的業(yè)務(wù),其中第一類型的業(yè)務(wù)與第二類型的業(yè)務(wù)相比對(duì)延遲較不敏感,以及當(dāng)?shù)谝活愋偷臉I(yè)務(wù)的量達(dá)到或超過第一閾值時(shí),實(shí)現(xiàn)對(duì)第一類型的業(yè)務(wù)的流控制以減慢第一類型的業(yè)務(wù)的流進(jìn)入緩沖區(qū)。流控制可以通過分組標(biāo)記或通過丟棄分組來(lái)被實(shí)現(xiàn)。這種方法在與網(wǎng)絡(luò)交換機(jī)中的大象流和鼠標(biāo)流相關(guān)的方面有獨(dú)特的實(shí)用性。
[0047]雖然本文示出和描述的裝置、系統(tǒng)和方法在一個(gè)或多個(gè)具體示例中被實(shí)現(xiàn),然而它并不旨在被限制于所示細(xì)節(jié),因?yàn)榭梢栽谄渲羞M(jìn)行各種不同的修改和結(jié)構(gòu)改變而不背離裝置、系統(tǒng)和方法的范圍并在權(quán)利要求的等同物的范圍內(nèi)。數(shù)據(jù)中心可以表示支持實(shí)現(xiàn)所展示的服務(wù)傳遞能力的任何位置。提供商邊緣路由節(jié)點(diǎn)表示被配置為接收、存儲(chǔ)或分布所展示信息的任何系統(tǒng)以及被配置為根據(jù)同樣的信息進(jìn)行路由的任何系統(tǒng)。相應(yīng)的,所附權(quán)利要求被廣義地并且以與以下陳述的裝置、系統(tǒng)和方法的范圍一致的方式解釋。
【主權(quán)項(xiàng)】
1.一種方法,包括: 在緩沖區(qū)的隊(duì)列中存儲(chǔ)第一類型的業(yè)務(wù); 在所述緩沖區(qū)的所述隊(duì)列中存儲(chǔ)第二類型的業(yè)務(wù),其中所述第一類型的業(yè)務(wù)與所述第二類型的業(yè)務(wù)相比對(duì)延遲較不敏感;以及 當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過第一閾值時(shí),實(shí)現(xiàn)對(duì)所述第一類型的業(yè)務(wù)的流控制以減慢所述第一類型的業(yè)務(wù)的流進(jìn)入所述緩沖區(qū)。2.如權(quán)利要求1所述的方法,其中,實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制包括標(biāo)記與所述第一類型的業(yè)務(wù)相關(guān)聯(lián)的分組。3.如權(quán)利要求2所述的方法,其中,標(biāo)記包括根據(jù)顯式擁塞通知(ECN)來(lái)標(biāo)記與所述第一類型的業(yè)務(wù)相關(guān)聯(lián)的分組。4.如權(quán)利要求1所述的方法,其中,實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制包括丟棄與所述第一類型的業(yè)務(wù)相關(guān)聯(lián)的分組。5.如權(quán)利要求1所述的方法,其中,實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制被依概率執(zhí)行。6.如權(quán)利要求5所述的方法,其中,實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制包括:當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過所述第一閾值時(shí)根據(jù)第一概率實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制,以及當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過第二閾值時(shí)根據(jù)比所述第一概率高的第二概率實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制。7.如權(quán)利要求1所述的方法,其中,實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制包括:當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過所述第一閾值時(shí)以第一預(yù)定方式實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制,以及當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過第二閾值時(shí)以第二預(yù)定方式實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制。8.如權(quán)利要求7所述的方法,其中,所述第一預(yù)定方式包括標(biāo)記分組,所述第二預(yù)定方式包括丟棄分組。9.如權(quán)利要求1所述的方法,還包括維持指示存儲(chǔ)在所述緩沖區(qū)內(nèi)的字節(jié)總數(shù)的第一計(jì)數(shù)器,以及維持指示存儲(chǔ)在所述緩沖區(qū)內(nèi)的屬于所述第一類型的業(yè)務(wù)的字節(jié)總數(shù)的第二計(jì)數(shù)器。10.—種裝置,包括: 被配置為通過網(wǎng)絡(luò)通信的網(wǎng)絡(luò)接口 ; 包含緩沖區(qū)的存儲(chǔ)器;以及 與所述網(wǎng)絡(luò)接口和所述存儲(chǔ)器以通信方式耦接的處理器, 其中,所述處理器被配置為: 在所述緩沖區(qū)的隊(duì)列中存儲(chǔ)通過所述網(wǎng)絡(luò)接口接收的第一類型的業(yè)務(wù); 在所述緩沖區(qū)的所述隊(duì)列中存儲(chǔ)通過所述網(wǎng)絡(luò)接口接收的第二類型的業(yè)務(wù),其中所述一類型的業(yè)務(wù)與所述第二類型的業(yè)務(wù)相比對(duì)延遲較不敏感;以及 當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過第一閾值時(shí),實(shí)現(xiàn)對(duì)所述第一類型的業(yè)務(wù)的流控制以減慢所述第一類型的業(yè)務(wù)流的進(jìn)入所述緩沖區(qū)。11.如權(quán)利要求10所述的裝置,其中,所述處理器還被配置為: 通過標(biāo)記與所述第一類型的業(yè)務(wù)相關(guān)聯(lián)的分組來(lái)實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制。12.如權(quán)利要求11所述的裝置,其中,所述處理器還被配置為: 根據(jù)顯式擁塞通知(ECN)來(lái)標(biāo)記與所述第一類型的業(yè)務(wù)相關(guān)聯(lián)的分組。13.如權(quán)利要求10所述的裝置,其中,所述處理器還被配置為: 通過丟棄與所述第一類型的業(yè)務(wù)相關(guān)聯(lián)的分組來(lái)實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制。14.如權(quán)利要求10所述的裝置,其中,所述處理器還被配置為: 依概率實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制。15.如權(quán)利要求10所述的裝置,其中,所述處理器還被配置為: 通過以下方式實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制:當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過所述第一閾值時(shí)以第一預(yù)定方式實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制,以及當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過第二閾值時(shí)以第二預(yù)定方式實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制。16.如權(quán)利要求10所述的裝置,其中,所述第一預(yù)定方式包括標(biāo)記分組,所述第二預(yù)定方式包括丟棄分組。17.—個(gè)或多個(gè)用包括計(jì)算機(jī)可執(zhí)行指令的軟件編碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述軟件被執(zhí)行時(shí),可操作以: 在緩沖區(qū)的隊(duì)列中存儲(chǔ)第一類型的業(yè)務(wù); 在所述緩沖區(qū)的所述隊(duì)列中存儲(chǔ)第二類型的業(yè)務(wù),其中所述第一類型的業(yè)務(wù)與所述第二類型的業(yè)務(wù)相比對(duì)延遲較不敏感;以及 當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過第一閾值時(shí),實(shí)現(xiàn)對(duì)所述第一類型的業(yè)務(wù)的流控制以減慢所述第一類型的業(yè)務(wù)的流進(jìn)入所述緩沖區(qū)。18.如權(quán)利要求17所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述指令還可操作以: 通過以下方式實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制:當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過所述第一閾值時(shí)以第一預(yù)定方式實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制,以及當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過第二閾值時(shí)以第二預(yù)定方式實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制。19.如權(quán)利要求17所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述第一預(yù)定方式包括標(biāo)記分組,所述第二預(yù)定方式包括丟棄分組。20.如權(quán)利要求17所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述指令還可操作以: 通過以下方式實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制:當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過所述第一閾值時(shí)根據(jù)第一概率實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制,以及當(dāng)所述第一類型的業(yè)務(wù)的量達(dá)到或超過第二閾值時(shí)根據(jù)比所述第一概率高的第二概率實(shí)現(xiàn)所述第一類型的業(yè)務(wù)的流控制。
【文檔編號(hào)】H04L12/861GK106062726SQ201580011696
【公開日】2016年10月26日
【申請(qǐng)日】2015年3月10日 公開號(hào)201580011696.0, CN 106062726 A, CN 106062726A, CN 201580011696, CN-A-106062726, CN106062726 A, CN106062726A, CN201580011696, CN201580011696.0, PCT/2015/19620, PCT/US/15/019620, PCT/US/15/19620, PCT/US/2015/019620, PCT/US/2015/19620, PCT/US15/019620, PCT/US15/19620, PCT/US15019620, PCT/US1519620, PCT/US2015/019620, PCT/US2015/19620, PCT/US2015019620, PCT/US201519620
【發(fā)明人】蘇巴拉奧·阿魯米爾力, 彼得·紐曼
【申請(qǐng)人】思科技術(shù)公司