本申請是針對pct國際申請?zhí)枮閜ct/us2013/046691、國際申請日為2013年6月20日、進入中國國家階段的申請?zhí)枮?01380004557.6,題為“通過分組循環(huán)進行網(wǎng)絡(luò)擁塞管理”的發(fā)明專利申請的分案申請。
本發(fā)明一般涉及計算機網(wǎng)絡(luò),并且更具體但非排他性地涉及用于經(jīng)由分組循環(huán)來降低網(wǎng)絡(luò)擁塞的技術(shù)。
背景技術(shù):
計算機網(wǎng)絡(luò)普遍存在于當(dāng)今的計算機使用中。處理器速度、存儲器、存儲以及網(wǎng)絡(luò)帶寬技術(shù)的增長造成了對于具有日益增長的能力的網(wǎng)絡(luò)的擴建和部署。最近,基于云的服務(wù)的引入,如amazon(例如,amazonelasticcomputecloud(ec2)以及simplestorageservice(s3))和微軟(例如,azure和office365)所提供的那些服務(wù),已經(jīng)造成了對于公共網(wǎng)絡(luò)基礎(chǔ)設(shè)施的附加網(wǎng)絡(luò)擴建,并造成了對大容量數(shù)據(jù)中心的部署增加以支持使用私有網(wǎng)絡(luò)基礎(chǔ)設(shè)施的這些服務(wù)。另外,在不久的將來,新一代(即,4g)移動網(wǎng)絡(luò)數(shù)據(jù)服務(wù)預(yù)期會顯著地影響無線和陸線網(wǎng)絡(luò)的利用。這些以及其他考慮的結(jié)果是在可預(yù)見的將來,計算機網(wǎng)絡(luò)的利用預(yù)期會繼續(xù)高速增長。
用于促進計算機網(wǎng)絡(luò)中的分組轉(zhuǎn)發(fā)的關(guān)鍵組件是交換元件,在本文中它們通常稱為網(wǎng)絡(luò)元件并且包括交換機、路由器以及橋接器。交換機具有多個輸入和輸出端口,每一個經(jīng)由鏈路連接到另一交換機或其他類型的網(wǎng)絡(luò)元件,其中入站分組話務(wù)在輸入端口處被接收并被轉(zhuǎn)發(fā)出輸出端口。一般而言,物理輸入和輸出端口的數(shù)量是相等的,并且在給定端口接收到的或轉(zhuǎn)發(fā)出的話務(wù)量相對于其他端口是可變的。在內(nèi)部,交換機的輸入和輸出端口在邏輯上連接,使得每一輸入端口按一到多的配置連接到每一輸出端口。輸入和輸出端口中的每一個具有用于臨時存儲(即,緩存)分組的緩沖區(qū),并且交換機具有通常與不同的流類別、服務(wù)質(zhì)量(qos)水平等相關(guān)聯(lián)的其他中間輸出緩沖區(qū)和/或隊列。在典型的配置下,在給定輸入端口處接收到的分組最初被緩存在與該輸入端口相關(guān)聯(lián)的輸入緩沖區(qū)中并被分類。一旦被分類,該分組可與被分類成同一類別或流的其他分組一起緩存在分配給該類別或流的和/或與該分組要經(jīng)由它被轉(zhuǎn)發(fā)的輸出端口相關(guān)聯(lián)的中間輸出緩沖區(qū)中。該分組隨后可從中間緩沖區(qū)復(fù)制到該端口的較小輸出緩沖區(qū)中,或者該中間輸出緩沖區(qū)中的分組數(shù)據(jù)可被轉(zhuǎn)發(fā)給該端口的物理(phy)層接口并轉(zhuǎn)換成電子模擬、光學(xué)、或無線信號以通過該鏈路傳輸。
即使在網(wǎng)絡(luò)變得更快時,擁塞繼續(xù)存在。在某些水平上,網(wǎng)絡(luò)擁塞類似于高速公路上的車輛交通擁塞。例如,考慮進入高速公路一部分的多個上匝道。傳入交通來自多條路徑并且歸并成單個交通流。類似地,分組可由網(wǎng)絡(luò)元件在多個輸入端口處接收,而經(jīng)由單個輸出端口轉(zhuǎn)發(fā)。多個輸入端口類似于上匝道,并且經(jīng)歸并的交通流類似于經(jīng)由輸出端口轉(zhuǎn)發(fā)的話務(wù)流。
高速公路上的交通管理通常通過計量經(jīng)由上匝道進入的交通流來處理。在這一方法下,停行燈信令被用來控制進入經(jīng)歸并的流的交通的速率。與高速公路一樣,網(wǎng)絡(luò)交換機具有有限的吞吐量。然而,與高速公路(其中在擁塞時交通僅僅慢下來并且所有車輛被允許前進)不同,交換機按作為底層物理(層)傳輸?shù)暮瘮?shù)的線速度操作,如1、10或40千兆字節(jié)每秒(gbps)。話務(wù)負(fù)載的波動是通過將話務(wù)(待經(jīng)由輸出端口歸并)緩存在輸出和中間緩沖區(qū)中來處理的。然而,這些緩沖區(qū)大小有限并且必須采取測量以防止緩沖區(qū)溢出。
在輸出緩沖區(qū)接近其容量時,交換機一般采取以下動作中的一個或多個。首先,它可丟棄傳入分組。它還可向它的對等交換機發(fā)出流控制通知,和/或向后向擁塞源節(jié)點發(fā)出擁塞通知,使得它降低已擁塞的流的吞吐量。通常,這些動作或者不有效,或者生成不合乎需要的副作用。
在像tcp(事務(wù)控制協(xié)議)等可靠傳輸協(xié)議中,分組丟棄涉及該被丟棄分組的重傳,這增加了整個數(shù)據(jù)傳輸?shù)亩说蕉说却龝r間,尤其是在分組丟棄是通過在目的地端節(jié)點處的某一定時器期滿來檢測到的情況下。同樣,被丟棄的分組可造成tcp窗口大小的減小,這降低了吞吐量,即使擁塞只是暫時的。同時,流控制可造成擁塞在網(wǎng)絡(luò)中向后蔓延。到已擁塞交換機的所有傳入話務(wù)可被快速停止,因為發(fā)給對等交換機的流控制通知是通用xoff/xon請求,這不區(qū)分目的地為已擁塞輸出緩沖區(qū)的話務(wù)流和目的地不為已擁塞輸出緩沖區(qū)的話務(wù)流。稍后,如果已擁塞狀況在熱點處持續(xù),則對等節(jié)點自己變得擁塞,因為它們不能減少目的地為已擁塞交換機的話務(wù);并且以此類推至遍及整個網(wǎng)絡(luò)。
向擁塞源后向發(fā)送擁塞通知(像qcn(量化擁塞通知)協(xié)議所做的那樣)定義了網(wǎng)絡(luò)級控制環(huán)路,這在擁塞只是暫時狀況和/或擁塞流相關(guān)于熱點與源節(jié)點之間的往返延遲而言不足夠長壽的情況下可能不有效。注意,對于不同于tcp的將以全鏈路速度開始流傳輸而不處理任何擁塞窗口(例如,fcoe(以太網(wǎng)上的光纖信道))的傳輸協(xié)議,流持續(xù)時間相對于往返延遲而言一般太短,并且因此沒有足夠的時間供建立向后擁塞管理環(huán)路。在鏈路速度是1gbps及以上時尤其如此。另一方面,在傳輸協(xié)議如tcp那樣實現(xiàn)慢啟動機制時,端到端數(shù)據(jù)傳輸延遲不必要地先驗地擴大,直至擁塞窗口算法將流傳輸速率穩(wěn)定為大約網(wǎng)絡(luò)容量為止。
附圖說明
通過參考與附圖一起進行的下面的詳細(xì)描述,本發(fā)明的前述的方面和許多伴隨的優(yōu)點,將變得更加輕松地被理解,其中,在各個視圖中,相同參考編號表示相同部件,除非另作說明:
圖1是示例性trill網(wǎng)絡(luò)的一部分的示意圖;
圖1a是示出圖1a的trill網(wǎng)絡(luò)中的路由橋接器之間的邏輯鏈路連接的示意圖;
圖1b示出覆蓋在圖1a中示出的trill網(wǎng)絡(luò)的網(wǎng)段之上的圖1b的邏輯鏈路連接;
圖2是示出在七節(jié)點網(wǎng)絡(luò)中使用鏈路狀態(tài)協(xié)議以及對應(yīng)的鏈路狀態(tài)數(shù)據(jù)庫的兩部分圖;
圖3是示出使用圖1a中示出的邏輯trill網(wǎng)絡(luò)鏈路和節(jié)點拓?fù)涞亩嗦窂铰酚傻氖纠氖疽鈭D;
圖3a是示出使用圖1a中示出的邏輯trill網(wǎng)絡(luò)鏈路和節(jié)點拓?fù)涞穆酚蓸蚪悠髋c目的地節(jié)點之間的多路徑路由的示意圖;
圖4是示出在兩個源同時向一個目的地發(fā)送話務(wù)時可能發(fā)生的擁塞狀況的示圖;
圖5是示出其中到目的地節(jié)點的轉(zhuǎn)發(fā)路徑采用朝向源節(jié)點的向后路徑部分的分組再循環(huán)的示例的示圖;
圖6是示出了根據(jù)一個實施例的回環(huán)緩沖區(qū)的使用的框圖;
圖7是示出根據(jù)一個實施例的由網(wǎng)絡(luò)元件執(zhí)行以便于分組再循環(huán)的操作邏輯的流程圖;
圖8是示出向后轉(zhuǎn)發(fā)給源節(jié)點的分組的示例的示圖;
圖9是示出根據(jù)一個實施例的用于解決第一類型的死鎖的方法的示圖;
圖10是示出根據(jù)一個實施例的用于解決第二類型的死鎖的方法的示圖;
圖11是包括被配置成支持分組再循環(huán)的多路徑交換機的層3網(wǎng)絡(luò)的示意圖;
圖12是示出根據(jù)一個實施例的被配置成支持分組再循環(huán)操作的示例性裝置的示意圖;
圖13a和13b示出可被用來實現(xiàn)本文公開的實施例的各方面的示例性服務(wù)器刀片機架和服務(wù)器刀片配置;以及
圖14是根據(jù)本文公開的實施例的各方面的被配置成實現(xiàn)分組再循環(huán)的網(wǎng)絡(luò)接口控制器(nic)的示意框圖。
具體實施方式
本文公開了配置成使用分組再循環(huán)來管理網(wǎng)絡(luò)擁塞的方法、裝置以及網(wǎng)絡(luò)的實施例。在下面的描述中,闡述了很多具體細(xì)節(jié)(諸如trill網(wǎng)絡(luò)中實現(xiàn)的實施例),以便全面地理解本發(fā)明的各實施例。然而,相關(guān)領(lǐng)域內(nèi)技術(shù)人員將理解本發(fā)明可省去一個或多個特定細(xì)節(jié)而實現(xiàn),或通過其它方法、組件、材料等實現(xiàn)。在其它例子中,公知的結(jié)構(gòu)、材料或操作不被示出或詳細(xì)說明以避免對本發(fā)明某些方面產(chǎn)生混淆。
貫穿本說明書,對“一個實施例”或“一實施例”的引用意味著結(jié)合該實施例描述的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個實施例中。因此,在整個說明書的多個位置出現(xiàn)短語“在一個實施例中”或“在實施例中”不一定指的是同一實施例。此外,在一個或多個實施例中,特定特征、結(jié)構(gòu)或特性可以以任何合適的方式組合起來。
根據(jù)現(xiàn)在公開的實施例的各方面,對網(wǎng)絡(luò)管理和吞吐量的增強是通過在采用支持多路徑轉(zhuǎn)發(fā)的網(wǎng)絡(luò)元件的網(wǎng)絡(luò)中使用分組(再)循環(huán)來實現(xiàn)的。在這一方法下,每當(dāng)屬于可靠傳輸協(xié)議(如tcp)的單播分組的目的地是已擁塞輸出端口時,代替丟棄該分組,該分組被再循環(huán)到當(dāng)前沒有擁塞的另一輸出端口,以希望從那里找出到目的地的未擁塞路徑。
一般而言,經(jīng)由本文的各實施例公開的教導(dǎo)和原理可以在采用各種類型的協(xié)議的各種類型的網(wǎng)絡(luò)下實現(xiàn)。在一些實施例中,本發(fā)明技術(shù)可在以下假定下的網(wǎng)絡(luò)“云”中實現(xiàn)。首先,網(wǎng)絡(luò)云配備有多路徑,使得話務(wù)可跨可存在于源和目的地節(jié)點之間的多條路徑來進行負(fù)載平衡。在一些網(wǎng)絡(luò)架構(gòu)中,如trill(多鏈路透明互連)網(wǎng)絡(luò),話務(wù)可以跨可存在于源和目的地節(jié)點之間的多條最短并行路徑來進行負(fù)載平衡?;蛘?,至少,分組可被轉(zhuǎn)發(fā)到與到目的地的最短路徑不同的另一路線,而不混淆網(wǎng)絡(luò)元件中的轉(zhuǎn)發(fā)/路由表。其次,通過可靠傳輸協(xié)議來傳輸?shù)姆纸M可無序到達(dá)目的地節(jié)點,而不涉及顯著的額外處理等待時間來將它們遞送給應(yīng)用層。在一些實施例下,這可不應(yīng)用于所有分組,而只應(yīng)用于被標(biāo)記為支持重排序的分組。第三,擁塞狀況相對于從熱點(例如,已擁塞端口)回到源節(jié)點的往返時間而言一般不足夠長壽,從而準(zhǔn)許高效的網(wǎng)絡(luò)級擁塞管理控制環(huán)路(例如,qcn協(xié)議所定義的控制環(huán)路)。
根據(jù)各實施例的一個方面,一般概念是利用遍布各網(wǎng)絡(luò)元件的緩沖容量來臨時儲存分組,直至?xí)簳r的擁塞狀況消失以及找出了到目的地的空閑路徑。如果擁塞持續(xù),則分組將通常被循環(huán)回?fù)砣炊丝?,該擁塞源端口進而將降低該已擁塞流的傳輸速率。以與用于qcn的方式相類似的方式,每當(dāng)新分組被循環(huán)回它的源時,傳輸速率降低(以及自增加)算法可在源節(jié)點處運行。
支持多路徑轉(zhuǎn)發(fā)的網(wǎng)絡(luò)云架構(gòu)的示例是trill網(wǎng)絡(luò)。如該首字母縮寫所示,trill網(wǎng)絡(luò)采用具有許多鏈路的透明互連。此外,trill網(wǎng)絡(luò)中的網(wǎng)絡(luò)元件(稱為路由橋接器(rbridge)或trill交換機)被配置成支持使用并行路徑的多路徑轉(zhuǎn)發(fā)。為了便于在trill網(wǎng)絡(luò)中使用可靠傳輸協(xié)議,分組可被無序接收。作為比較,ip網(wǎng)絡(luò)(或諸如因特網(wǎng)等大型網(wǎng)絡(luò)中的各部分)中的常規(guī)交換機被配置成將分類成同一流的分組沿單條路徑轉(zhuǎn)發(fā),使得分組按它們被發(fā)送的次序來被接收。多路徑轉(zhuǎn)發(fā)和無序分組接收的各方面是在trill網(wǎng)絡(luò)中轉(zhuǎn)發(fā)分組的基礎(chǔ)。
示例性trill網(wǎng)絡(luò)100在圖1、1a以及1b中示出。網(wǎng)絡(luò)100包括經(jīng)由多個路由橋接器104(每一個具有相應(yīng)的標(biāo)記,如圖所示)互連的多個以太網(wǎng)段102(標(biāo)記為a-n)。還示出了在源節(jié)點s處耦合到網(wǎng)絡(luò)的源計算機106和在目的地節(jié)點d處耦合到網(wǎng)絡(luò)的目的地計算機108。圖1中示出的網(wǎng)絡(luò)配置也被稱為路由橋接器校園網(wǎng)(rbridgecampus)。
trill是因特網(wǎng)工程任務(wù)組(ietf)協(xié)議標(biāo)準(zhǔn),它使用層3(即,osi模型網(wǎng)絡(luò)層)路由技術(shù)來創(chuàng)建對ip節(jié)點而言看起來是單個ip子網(wǎng)的大型鏈路云。它允許創(chuàng)建相當(dāng)大的層2(即,osi模型數(shù)據(jù)鏈路層)云,具有平坦的地址空間,使得各節(jié)點可以在該云內(nèi)移動而不改變它們的ip地址,同時使用這些年來已演化的各種層3路由技術(shù),包括最短路徑和多路徑。另外,trill支持層2特征,如虛擬局域網(wǎng)(vlan)、自動配置能力(同時允許在需要時手動配置)以及不使用附加協(xié)議的多播/廣播。
trill協(xié)議演化來解決層2網(wǎng)絡(luò)所固有的一些限制。為了更好地理解這些限制,回顧層2的歷史是有見識的。最初,層2用作鄰居節(jié)點之間的直接鏈路。大多數(shù)鏈路是點到點的,并且層2協(xié)議主要創(chuàng)建幀——一種在層1(物理層)所提供的比特流內(nèi)用信號通知分組的開頭和結(jié)尾和分組的校驗和的方式。對于具有高誤差率的鏈路,諸如高級數(shù)據(jù)鏈路控制(hdlc)等層2協(xié)議提供消息編號、確認(rèn)、以及重傳,所以層2協(xié)議在某些方面類似于諸如tcp等的可靠協(xié)議。hdlc和其他層2技術(shù)有時提供使多個節(jié)點按主/從方式共享鏈路的能力,其中一個節(jié)點通過諸如輪詢等技術(shù)控制哪一節(jié)點進行傳送。
隨后,演化出了局域網(wǎng)(lan)的概念,最值得注意的示例是以太網(wǎng)。以太網(wǎng)技術(shù)按對等而非主/從關(guān)系來啟用單個鏈路上的(通常)數(shù)百節(jié)點的互連。以太網(wǎng)基于csma/cd,其中cs=載波偵測(在講話之前監(jiān)聽,使得你不會干擾);ma=多路接入;以及cd=?jīng)_突檢測(當(dāng)你正在講話時監(jiān)聽,以查看在你正在講話時是否有人開始講話,使得你們兩個彼此干擾)。
盡管當(dāng)今以太網(wǎng)lan被廣泛部署,但通過這樣的lan轉(zhuǎn)發(fā)和路由分組通常是使用層3路由器和交換機來實現(xiàn)的。然而,在歷史上情況并非如此,在以太網(wǎng)lan誕生早期,采納者相信lan技術(shù)可被用作諸如ip等傳統(tǒng)層3協(xié)議的替換。人們構(gòu)建直接在層2上實現(xiàn)的應(yīng)用并且不具有層3支持。這一情況意味著該應(yīng)用會受層2技術(shù)的人工產(chǎn)物的限制,因為層3路由器不能轉(zhuǎn)發(fā)不包含由該路由器/交換機實現(xiàn)的層3頭部的分組。另外,以太網(wǎng)lan的跨度受限于可能1千米的最大距離。
在使用直接構(gòu)建在lan上的技術(shù)的人們意識到他們想要比lan技術(shù)所允許的更大(在距離和節(jié)點總數(shù)上)的網(wǎng)絡(luò)時,業(yè)界發(fā)明了“橋接器”——轉(zhuǎn)發(fā)層2分組的分組-轉(zhuǎn)發(fā)設(shè)備——的概念。轉(zhuǎn)發(fā)以太網(wǎng)分組可能看起來容易,因為以太網(wǎng)頭部看起來類似于層3頭部。它具有源和目的地地址,并且這些地址實際上比ip地址大。但以太網(wǎng)并未被設(shè)計來被轉(zhuǎn)發(fā)。最值得注意的是,用于檢測并丟棄循環(huán)分組的跳數(shù)(有時也稱為“生存時間”或ttl)從以太網(wǎng)頭部中省略。但也在以太網(wǎng)中失去了典型的層3協(xié)議的其他特征,如反映節(jié)點處于拓?fù)渲械暮翁幍牡刂?、?jié)點發(fā)現(xiàn)協(xié)議、以及路由算法。這些特征不在以太網(wǎng)中是因為以太網(wǎng)設(shè)計的意圖是它是層2協(xié)議,被配置成在單條鏈路上操作。
為了解決這一缺點,發(fā)明了透明橋接器來作為轉(zhuǎn)發(fā)由沒有實現(xiàn)層3的端節(jié)點發(fā)出的以太網(wǎng)分組的機制。以太網(wǎng)當(dāng)時具有硬分組大小限制,所以橋接器不能以任何方式修改該分組。滿足這些約束的透明橋接器設(shè)計包括使橋接器混雜地監(jiān)聽、記住在每一端口上看到的源地址、以及基于學(xué)習(xí)到的目的地地址的位置來進行轉(zhuǎn)發(fā)。如果目的地是未知的,則分組將會被轉(zhuǎn)發(fā)到在其上接收它的端口之外的所有端口。
這一簡單方法只在任何一對節(jié)點之間只存在一條路徑的情況下有效。所以這一概念被稱為生成樹算法的協(xié)議來增強。物理拓?fù)淇梢允侨我饩W(wǎng)格,但使用生成樹算法的橋接器會將該拓?fù)湫藜舫稍谄渖限D(zhuǎn)發(fā)數(shù)據(jù)分組的無循環(huán)(樹)拓?fù)洹?“生成”意味著分組可到達(dá)所有節(jié)點。)盡管這一方法解決了在lan之間轉(zhuǎn)發(fā)以太網(wǎng)分組的問題的各方面,但對當(dāng)今網(wǎng)絡(luò)而言它證明是不實際的。它需要橋接器被設(shè)計成能夠以網(wǎng)速來檢查每一傳入分組,確定該分組是否是生成樹消息,以及如果是則處理它。生成樹算法需要橋接器進行轉(zhuǎn)發(fā),除非鏈路上存在“更合格”的鄰居橋接器。如果橋接器因為擁塞壓倒它處理傳入消息的能力而丟失了來自它“更合格”的鄰居橋接器的足夠生成樹消息,則該橋接器將得出它不具有更合格鄰居的結(jié)論并且因此應(yīng)當(dāng)開始在鏈路上進行轉(zhuǎn)發(fā)。這種情況以及其他情況使得該方法在本質(zhì)上是不穩(wěn)定的。
最初發(fā)明的以太網(wǎng),csma/cd,幾乎不存在了。當(dāng)今,幾乎所有以太網(wǎng)都包括用點到點鏈路連接的橋接器。頭部仍然看起來像以太網(wǎng),但添加了新字段,如vlan。由于歷史原因,橋接是必須的,因為應(yīng)用是在沒有層3的情況下構(gòu)建的。但當(dāng)今,應(yīng)用幾乎普遍構(gòu)建在ip上。所以為什么不用ip路由器來代替所有橋接器呢?
原因是ip的特性所導(dǎo)致的。在ip中,路由是針對鏈路的,而非節(jié)點。每一鏈路具有其自己的地址塊。連接到多條鏈路的節(jié)點將具有多個ip地址,并且如果節(jié)點從一條鏈路移動到另一條鏈路,則它必須獲得該鏈路的塊內(nèi)的新ip地址。使用ip,ip地址塊需要被劃分以向每一鏈路分配唯一的塊,對于它們的端口中的每一個,ip路由器必須用該地址塊來配置,并且從一條鏈路移動到另一條鏈路的節(jié)點必須改變它們的層3地址。因此,創(chuàng)建大型橋接以太網(wǎng)仍然是流行的,因為鏈路的橋接集合對ip而言看起來像單條鏈路。
trill允許以太網(wǎng)的易于配置,同時從在層3提供的路由技術(shù)中獲益。因為它也與現(xiàn)有橋接器共存,所以不必要替換以太網(wǎng)中的所有橋接器,但越多橋接器被路由橋接器所替換,帶寬使用越好且該云變得越穩(wěn)定(因為生成樹變得越來越小,并且在所有橋接器被路由橋接器替換的情況下最終消失)。
路由橋接器運行鏈路狀態(tài)路由協(xié)議,這向它們中的每一個給出了包括所有路由橋接器和網(wǎng)絡(luò)中路由橋接器之間的所有鏈路的網(wǎng)絡(luò)拓?fù)涞闹R。使用這一協(xié)議,每一路由橋接器計算從它到每一其他路由橋接器的最短路徑以及用于遞送多目的地話務(wù)的樹。
鏈路狀態(tài)協(xié)議是其中每一路由器r確定它的鄰居是誰并(向其他路由器)廣播包括諸如“我是r”以及“我的鄰居路由器是x(鏈路成本為c1)、y(成本c2)和z(成本c3)”等信息的分組(稱為鏈路狀態(tài)分組(lsp))的路由協(xié)議。通常部署的鏈路狀態(tài)協(xié)議是中間系統(tǒng)到中間系統(tǒng)(is-is)和開放最短路徑優(yōu)先(ospf)。在二十世紀(jì)八十年代設(shè)計來路由decnet的is-is被國際標(biāo)準(zhǔn)組織(iso)采用。is-is可以路由ip話務(wù)并且被許多因特網(wǎng)服務(wù)提供者(isp)使用來路由ip。is-is是trill的自然選擇,因為它的編碼容易允許附加字段,并且is-is直接在層2上運行,使得它可以自動配置,而ospf在ip上運行并且需要所有路由器具有ip地址。
圖2示出了小型網(wǎng)絡(luò)(在頂部),包括7個路由器。在該附圖的下半部,示出了lsp數(shù)據(jù)庫;所有路由器都具有該相同的lsp數(shù)據(jù)庫,因為它們?nèi)拷邮詹⒋鎯碜悦恳黄渌酚善鞯淖罱傻膌sp。lsp數(shù)據(jù)庫給出了計算路徑所必需的所有信息。它還向所有路由器給出了計算同一棵樹的足夠信息,無需分開的生成樹算法。
返回圖1、1a和1b,圖1a描繪了所示trill網(wǎng)絡(luò)100的一部分中的各路由橋接器104之間的邏輯鏈路配置。在圖1a中,路由橋接器104基于距源計算機節(jié)點s的跳距離來標(biāo)記并基于共享的跳距離來編組。例如,第一跳組的路由橋接器分別經(jīng)由單條邏輯鏈路(并且因而是單跳)連接到源計算機節(jié)點s,并且因而被標(biāo)記為r1n,其中‘1’表示距源計算機節(jié)點s的跳數(shù),而n標(biāo)識組成員的對應(yīng)的路由橋接器a-e(例如,r1a、r1b,等等)。類似地,距節(jié)點s兩跳的路由橋接器被標(biāo)記為r2n,并且距節(jié)點s三跳的路由橋接器被標(biāo)記為r3n。
在圖1、1a以及1b所示的示例性網(wǎng)絡(luò)配置中,給定組中的每一路由橋接器104連接到相鄰組中的每一路由橋接器。另外,第一組中的路由橋接器中的每一個連接到源計算機節(jié)點s,而第三組中的路由橋接器中的每一個連接到目的地計算機節(jié)點d。這一配置支持每一路由橋接器節(jié)點之間的完全多路徑路由,意味著最大數(shù)量的并行轉(zhuǎn)發(fā)路徑可用于網(wǎng)絡(luò)中的任何兩個節(jié)點之間。注意,本文使用的這一網(wǎng)絡(luò)配置被示出來強調(diào)經(jīng)由多條并行路徑進行轉(zhuǎn)發(fā)的可用性,并且在實際的網(wǎng)絡(luò)實現(xiàn)中,給定路由橋接器可能只連接到相鄰路由橋接器的一個組(跳級)中的一部分路由橋接器。同樣,給定跳距離的路由橋接器組可具有與相鄰組中的路由橋接器數(shù)量不同的數(shù)量的路由橋接器。此外,所示出的跳距離是相對于給定源和目的地節(jié)點的;在實踐中,許多源和目的地節(jié)點將存在(基于相應(yīng)傳輸?shù)脑春湍康牡囟它c),而給定源和目的地節(jié)點可對應(yīng)于網(wǎng)絡(luò)端點或路由橋接器節(jié)點之一。另外,除只采用路由橋接器的網(wǎng)絡(luò)配置(如圖1、1a和1b所示的)之外,采用路由橋接器的網(wǎng)絡(luò)可包括路由橋接器和常規(guī)橋接器的混合。
圖3和3a描繪了trill網(wǎng)絡(luò)100中的多路徑轉(zhuǎn)發(fā)的使用的示例。如圖3所示,源和目的地節(jié)點s和d之間存在三條并行轉(zhuǎn)發(fā)路徑300、302以及304(實際上,存在更多并行轉(zhuǎn)發(fā)路徑;為簡明起見在此只突出顯示了三條)。如圖3a中進一步詳細(xì)示出的,只路由橋接器r2b和目的地節(jié)點d之間就可能存在5條并行子路徑。將這一點擴展到源和目的地節(jié)點s和d之間的可能的并行轉(zhuǎn)發(fā)路徑,會產(chǎn)生125條可用的唯一并行轉(zhuǎn)發(fā)路徑。當(dāng)然,在實際實現(xiàn)中,源和目的地節(jié)點之間的4跳路由的并行轉(zhuǎn)發(fā)路徑的數(shù)量通常比這小,但重點是trill網(wǎng)絡(luò)中的端點之間有多條并行轉(zhuǎn)發(fā)路徑可用。
為了支持并行轉(zhuǎn)發(fā)路徑,路由橋接器存儲對應(yīng)的轉(zhuǎn)發(fā)表條目,在這些條目下多個輸出端口可被用來將分組轉(zhuǎn)發(fā)到給定目的地。轉(zhuǎn)發(fā)表數(shù)據(jù)是從以上述方式使用is-is鏈路狀態(tài)協(xié)議收集的信息中導(dǎo)出的。這一多路徑轉(zhuǎn)發(fā)技術(shù)與其中單條轉(zhuǎn)發(fā)路徑可被用于被分類到同一流的所有分組的常規(guī)ip路由相反。這樣的ip轉(zhuǎn)發(fā)路線通常是使用諸如ospf等協(xié)議來確定的。
因為邏輯上與同一流相關(guān)聯(lián)(即,具有相同的源和目的地并且與同一邏輯連接相關(guān)聯(lián))的分組可沿不同的路線轉(zhuǎn)發(fā),所以目的地需要包括用于無序接收分組的規(guī)定。雖然被示為具有相似路徑段長度的并行轉(zhuǎn)發(fā)路徑,但路由橋接器之間的給定路徑段的有效長度將一般是路由橋接器處的話務(wù)擁塞的函數(shù),并且因此遍歷單條路徑段的等待時間可能變化相當(dāng)大。此外,路由橋接器的多路徑轉(zhuǎn)發(fā)能力意味著分組可經(jīng)由具有不同跳數(shù)的路徑來轉(zhuǎn)發(fā),從而增強網(wǎng)絡(luò)的路由靈活性。
即使trill網(wǎng)絡(luò)支持多路徑轉(zhuǎn)發(fā)和無序遞送,它們也仍然遭受導(dǎo)致丟棄分組的話務(wù)擁塞的損害。另外,考慮圖4中示出的網(wǎng)絡(luò)配置。如果源s1和s2兩者都嘗試以網(wǎng)速向目的地d轉(zhuǎn)發(fā)分組,則將存在擁塞,從而導(dǎo)致分組被丟棄。在支持任意源和目的地之間的并發(fā)傳輸時,導(dǎo)致丟棄分組的擁塞的發(fā)生被惡化。
根據(jù)本文的各實施例的原理和教導(dǎo),路由橋接器中的邏輯和端口配置被修改以支持分組的再循環(huán)而非丟棄分組。如下文進一步詳細(xì)解釋的,在與轉(zhuǎn)發(fā)路徑相對應(yīng)的(通常是優(yōu)選的)輸出端口被擁塞(并且因而不可用)時,基于各種因素來選擇另一輸出端口。如果沒有轉(zhuǎn)發(fā)路徑端口可用,則分組可被“向后”路由到與發(fā)起該向后路由的路由橋接器相比距目的地節(jié)點更遠(yuǎn)(按跳數(shù)和/或所估計的路線成本)的路由橋接器(或常規(guī)橋接器)。在被路由橋接器(或常規(guī)橋接器)接收到后,該分組被向后轉(zhuǎn)發(fā)給目的地(在適用時,取決于可用的轉(zhuǎn)發(fā)端口)。在適用條件下,在朝它的初始目的地轉(zhuǎn)發(fā)之前,分組可被向后路由一次以上。
涉及向后路由的分組再循環(huán)的兩個示例在圖5中示出。在這兩個示例中,分組在源節(jié)點s處始發(fā)并且目的地是目的地節(jié)點d。在第一示例中,分組從節(jié)點s轉(zhuǎn)發(fā)到路由橋接器r1a并隨后轉(zhuǎn)發(fā)到路由橋接器r2a。在路由橋接器r2a處,附連到將該分組轉(zhuǎn)發(fā)給路由橋接器r3a-e之一的鏈路的各端口中的每一個端口都被擁塞。響應(yīng)于這一擁塞條件,該分組被向后路由到路由橋接器r1b,它隨后將該分組沿路徑r1b→r2c→r3e→d來轉(zhuǎn)發(fā),如對應(yīng)的虛線路徑段所示出的。在第二示例中,在路由橋接器r3b處存在類似的擁塞條件。在這種情況下,分組沿同一路徑段(經(jīng)由該路徑段分組由路由橋接器r3b接收)向后路由到路由橋接器r2a(即,r3b→r2a)。這在本文中被稱為分組被“回環(huán)”,并且在下文進一步詳細(xì)討論。在路由橋接器r2a處接收到分組后,它沿路線r2a→r3c→d轉(zhuǎn)發(fā)給目的地節(jié)點d,如對應(yīng)的實線路徑段所示出的。
如在圖5(并且在后續(xù)的圖7、9以及10)中所示,分組可使用在其上接收到該分組的同一鏈路來被“回環(huán)”。為了便于這一功能,網(wǎng)絡(luò)元件(例如,trill的路由橋接器和ip的交換機/路由器)中的入口端口具有相關(guān)聯(lián)的回環(huán)緩沖區(qū)來將話務(wù)從入口方向向后朝源重新注入。在一個實施例中,所有入口端口都配置有回環(huán)緩沖區(qū),而在其他實施例中,一個或多個入口端口配置有回環(huán)緩沖區(qū)。
示例性回環(huán)緩沖區(qū)配置在圖6中示出。在這一配置下,分組在雙向(即,入口(入站)和出口(出站))端口600處經(jīng)由鏈路601接收,并且在輸入緩沖區(qū)602中初始緩沖以使得能夠出于轉(zhuǎn)發(fā)目的來檢查分組頭部。在無擁塞的條件下,該分組可經(jīng)由連接到輸出緩沖區(qū)604和606(端口未示出)的端口來轉(zhuǎn)發(fā)。然而,在一些擁塞條件下(如下文參考圖8的流程圖詳細(xì)討論的),分組可被回環(huán)并使用經(jīng)由其接收到它的同一鏈路(但在相反的方向上)朝著該分組從中進入網(wǎng)絡(luò)的源節(jié)點“向后”路由。在這種情況下,分組被緩存在回環(huán)緩沖區(qū)608中,直至它可被從端口600發(fā)出。在常規(guī)使用中,轉(zhuǎn)發(fā)出端口600的分組會在另一端口(未示出)處被接收并緩存在輸出緩沖區(qū)606中。因此,實現(xiàn)了一種機制以將來自回環(huán)緩沖區(qū)608和輸出緩沖區(qū)610的分組進行復(fù)用,使得它們可以從端口600傳送出去。在一個實施例中,回環(huán)話務(wù)嚴(yán)格地優(yōu)先于其他話務(wù),使得緩存到回環(huán)緩沖區(qū)608的任何分組在緩存在輸出緩沖區(qū)610中的任何分組之前被發(fā)出。
圖7示出了根據(jù)一個實施例的流程圖700,該流程圖示出了由路由橋接器執(zhí)行來便于分組轉(zhuǎn)發(fā)和再循環(huán)的操作和邏輯。在所示操作之前(并且一般而言,在正在進行的基礎(chǔ)上),每一路由橋接器將與它的鄰居節(jié)點交換鏈路狀態(tài)分組,并將對應(yīng)的轉(zhuǎn)發(fā)信息儲存(以及在適用時更新)在它的lsp數(shù)據(jù)庫中。這將包括用來經(jīng)由最短路徑轉(zhuǎn)發(fā)分組到各目的地節(jié)點的端口的標(biāo)識。為簡明起見,在本文所示的示例中,只有單個目的地節(jié)點;然而,將理解,類似轉(zhuǎn)發(fā)信息將針對多個目的地節(jié)點來實現(xiàn)。
優(yōu)選地,分組將使用經(jīng)由其可到達(dá)目的地節(jié)點的最短路徑來轉(zhuǎn)發(fā)。在trill網(wǎng)絡(luò)所促進的多路徑轉(zhuǎn)發(fā)下,可以存在從給定路由橋接器到目的地節(jié)點的多條最短路徑。一般而言,最短路徑可與最低成本路徑(對應(yīng)于具有最低等待時間的路徑)或具有最少跳數(shù)的路徑(在一些情況下,這可以是同一路徑)相對應(yīng)。如在流程圖700中所使用的,具有到目的地節(jié)點的相似成本和/或跳數(shù)的多條路徑中的每一個可被認(rèn)為是最短路徑。其他準(zhǔn)則也可被用來定義最短路徑,包括但不限于鏈路速度、鏈路的擁塞狀態(tài)、不同分類的路徑成本和/或qos,等等。
由于偏好經(jīng)由最短路徑進行轉(zhuǎn)發(fā),流程圖700中的第一操作通過決策框702來執(zhí)行,在其中確定是否存在具有到目的地節(jié)點的最短路徑的任何非擁塞端口。如果答案為是并且存在具有到目的地節(jié)點的最短路徑的多個非擁塞端口,則隨機選擇這些端口之一,如在框704所示。如果只存在滿足最短路徑準(zhǔn)則的單個非擁塞端口,則在框704它被選擇(邏輯未示出)。
如果不存在具有到目的地的最短路徑的非擁塞端口,決策框702的答案為否,并且該邏輯進至決策框706,在其中確定是否存在具有到源節(jié)點的最短路徑的任何非擁塞端口。如果答案為是,則該邏輯進至框708,在其中滿足該準(zhǔn)則的單個端口被選擇或者滿足該準(zhǔn)則的多個端口之一被選擇。
如果決策框706的答案為否,則該邏輯進至決策框710,在其中確定其余端口中的任一個是否未被擁塞。如果答案為是,則在框716,這些非擁塞端口之一被隨機選擇(或者選擇唯一的那個非擁塞端口)。
返回決策框710,如果不存在非擁塞端口,則使用經(jīng)由其接收到該分組的同一端口將該分組回環(huán),如在框712所示。這是通過以上討論并在圖6中示出的回環(huán)規(guī)定來促進的。
要向后朝源節(jié)點轉(zhuǎn)發(fā)(要么經(jīng)由選擇非擁塞端口要么使用回環(huán)設(shè)施)的分組被使用標(biāo)志來進行標(biāo)記,以指示該分組在向后行進,如在框714所示。在框720,對于朝目的地轉(zhuǎn)發(fā)的分組(經(jīng)由非擁塞最短路徑端口或通過選擇其余非擁塞端口之一),向后標(biāo)志被清除。同樣,對于除經(jīng)由最短路徑路線轉(zhuǎn)發(fā)到目的地節(jié)點的分組之外的所有分組,地址學(xué)習(xí)標(biāo)志被禁用,如在框714和718中的每一個中所示。流程圖700所實現(xiàn)的處理操作和邏輯通過經(jīng)由所選端口或同一端口(在回環(huán)適用的情況下)來轉(zhuǎn)發(fā)分組而在框722結(jié)束。
在考慮流程圖700中實現(xiàn)的邏輯時,如果以下條件之一適用,則輸出端口(通常)被認(rèn)為是擁塞的:
1.(與輸出端口相關(guān)聯(lián)的)輸出緩沖區(qū)中沒有空閑空間來儲存分組
2.如果在可配置時間量內(nèi)從對應(yīng)輸入端口接收到的最后分組被標(biāo)記為向后分組。
在一些情況下,交換機/nic使用具有共享池區(qū)域的共享存儲器緩沖區(qū),其中共享池區(qū)域由全部交換機/nic在帶有共享閾值的情況下使用;在共享池充滿的情況下,所有相關(guān)聯(lián)的輸出端口被認(rèn)為被擁塞。在只有單個端口的情況下,可存在其中即使條件2被滿足話務(wù)也將被發(fā)送的情況。同樣,對于條件2,在一個實施例下,在節(jié)點的每一輸出端口處實現(xiàn)定時器,其中該定時器優(yōu)選地被設(shè)置為使分組在該節(jié)點的任何下一跳之間來回行進所花費的時間。
圖8描繪了分組被向后路由直至它返回源節(jié)點s的條件。在一個實施例中,一旦向后分組到達(dá)它自己的源節(jié)點,就實現(xiàn)以下兩個處理選項之一:
1.根據(jù)流程圖700中呈現(xiàn)并在上文中描述的選擇準(zhǔn)則,該分組被重新發(fā)送到網(wǎng)絡(luò)。另外,通知本地操作系統(tǒng)(os)以降低該特定流的傳輸速率。
2.該分組被丟棄并且重傳該分組的請求在內(nèi)部轉(zhuǎn)發(fā)給本地os,本地os進而將降低該特定流的傳輸速率。
注意,如果os暫時沒有接收到降低特定流的傳輸速率的請求,os可能使用一個或多個公知的速率降低/提高算法(例如,可以使用類似于qcn中定義的那些算法)來提高流的傳輸速率;這些算法的細(xì)節(jié)在本公開內(nèi)容的范圍之外但對聯(lián)網(wǎng)領(lǐng)域技術(shù)人員而言一般是公知的。
一旦向后分組到達(dá)該云的另一源節(jié)點,該分組就根據(jù)以上參考流程圖700描述的端口選擇準(zhǔn)則被重新發(fā)送到網(wǎng)絡(luò)。
假定每一分組(經(jīng)由本文描述的技術(shù)來轉(zhuǎn)發(fā))包括根據(jù)每一跳而遞減的跳數(shù)字段。在一個實施例中,在跳數(shù)到達(dá)零時,該分組被丟棄并且重傳該分組的請求被發(fā)送到源節(jié)點——優(yōu)選地通過專用于擁塞管理的對其使用流控制的另一話務(wù)類。這一方法被用來保證在交換機的所有其他端口被擁塞很長時間的情況下,分組將不在同一鏈路上來回再循環(huán)過久。
在擁塞條件下,不可靠話務(wù)和非單播話務(wù)(即,轉(zhuǎn)發(fā)給一個以上端口的分組)被丟棄或通過對其使用流控制的另一話務(wù)類轉(zhuǎn)發(fā)。在一個實施例中,對于從該網(wǎng)絡(luò)云內(nèi)部的節(jié)點(即,不是邊緣節(jié)點的網(wǎng)絡(luò)節(jié)點)生成的話務(wù)也同樣這樣做。在一個實施例中,這些類型的分組可以是由專用標(biāo)志來先驗地標(biāo)記。用于處理非單播話務(wù)的這一技術(shù)保證對其運行上述算法的話務(wù)包括不使該云過載的保守話務(wù)——假定每當(dāng)該云資源枯竭時話務(wù)注入就被停止或降低。
再循環(huán)技術(shù)在不丟棄分組的情況下克服了網(wǎng)絡(luò)中的暫時擁塞,從而避免了與由定時器期滿所觸發(fā)的分組重傳相關(guān)聯(lián)的端到端等待時間增加。因為向后朝源節(jié)點發(fā)出的擁塞通知是通過擁塞分組被漸進地返回源節(jié)點或通過由于跳數(shù)最終達(dá)到零而造成的重傳請求來觸發(fā)的,所以該方法不采用先驗嘗試來在網(wǎng)絡(luò)上建立控制環(huán)路,而是只在該流/擁塞被證明長壽時才受影響。這造成了總體網(wǎng)絡(luò)吞吐量和效率的改進。
分組的再循環(huán)可造成潛在死鎖。因此,在一些實施例中,采取測量來解決這樣的死鎖。例如,圖9示出了第一潛在死鎖,其中分組在相同的多路徑鏈路之間朝目的地來回路由許多次(例如,在r2a和r3b、r3c、r3d以及r3e中的一個或多個之間來回路由)。在一個實施例中,這通過在懷疑到目的地的所有路徑已被阻塞的情況下優(yōu)先將分組向后路由到源來解決。在從路徑接收到的最后分組是被回環(huán)的分組時,懷疑該路徑已被阻塞。
圖10描繪了第二潛在死鎖,其中分組圍繞同一鏈路來回路由許多次,因為向后回到源的鏈路也被阻塞。因為不存在從端節(jié)點朝向網(wǎng)絡(luò)的后壓力,所以在到目的地/源的已擁塞話務(wù)被接收或在跳數(shù)達(dá)到零時,這一死鎖將終止。
ip網(wǎng)絡(luò)中的分組再循環(huán)
除層2網(wǎng)絡(luò)(例如,以太網(wǎng))之外,分組再循環(huán)還可在諸如ip網(wǎng)絡(luò)等層3網(wǎng)絡(luò)中實現(xiàn)。然而,并非使用路由橋接器,實現(xiàn)分組再循環(huán)的層3網(wǎng)絡(luò)將使用經(jīng)修改的交換機元件(例如,包括交換機或路由器的網(wǎng)絡(luò)元件)(在本文中稱為多路徑交換機)來做到這一點。多路徑交換機和常規(guī)層3交換機或路由器之間的差異在于,多路徑交換機被配置成經(jīng)由多條不同路徑來轉(zhuǎn)發(fā)目的地為同一目的地節(jié)點的分組。
如上所述,層3實現(xiàn)具有以下假定。1)向網(wǎng)絡(luò)云提供了支持源和目的地節(jié)點之間的多路徑轉(zhuǎn)發(fā)的節(jié)點;2)通過可靠傳輸協(xié)議傳輸?shù)姆纸M可無序到達(dá)目的地節(jié)點,而不涉及用于將它們遞送給應(yīng)用層的顯著的額外處理等待時間;以及3)相對于從熱點(例如,已擁塞端口)回到源節(jié)點的往返時間,擁塞條件一般不足夠長壽,以準(zhǔn)許高效的網(wǎng)絡(luò)級擁塞管理控制環(huán)路。
以與采用路由橋接器和常規(guī)橋接器的組合的以太網(wǎng)類似的方式,采用分組再循環(huán)的層3網(wǎng)絡(luò)可以使用多路徑交換機和常規(guī)交換機的組合來實現(xiàn)。例如,圖11中示出了具有常規(guī)交換機和多路徑交換機的混合的網(wǎng)絡(luò)1100。在網(wǎng)絡(luò)1100中,常規(guī)交換機被標(biāo)記為si,其中i=1-9,而多路徑交換機被標(biāo)記為mj,其中j=1-11。多路徑交換機m1-11經(jīng)由以粗體實線示出的多路徑鏈路1102互連。同時,在鏈路的至少一個端處耦合到常規(guī)交換機s1-9的任何鏈路1104被示為虛線。
物理上,多路徑鏈路1102和鏈路1104包括常規(guī)網(wǎng)絡(luò)鏈路。然而,多路徑鏈路1102與鏈路1104相區(qū)分以標(biāo)識這些鏈路包括可被實現(xiàn)用于多路徑轉(zhuǎn)發(fā)和分組再循環(huán)的路徑段。盡管鏈路1104也可被用作多路徑轉(zhuǎn)發(fā)路徑段的一部分,但連接到這些鏈路的常規(guī)交換機沒有配備支持根據(jù)本文的教導(dǎo)的分組再循環(huán)操作的邏輯和回環(huán)緩沖區(qū)。相反,多路徑鏈路1102中的每一個在兩端處都連接到被配置成支持分組再循環(huán)的多路徑交換機。
如上所述,在常規(guī)ip路由/轉(zhuǎn)發(fā)中,被分類成同一流的分組沿同一路線轉(zhuǎn)發(fā)。這一方法與多路徑ip轉(zhuǎn)發(fā)相反,其中具有共同目的地的分組可沿不同的路線路徑轉(zhuǎn)發(fā)到目的地。同樣,如上所述,因為這意味著一些分組將具有比其他分組更大的傳輸?shù)却龝r間,所以需要對用于可靠傳輸協(xié)議的無序分組的支持。例如,采用tcp/ip連接的目的地節(jié)點或主機將被配置成在它無序地接收到與該連接相關(guān)聯(lián)的分組時不會如標(biāo)準(zhǔn)tcp/ip實踐下將做的那樣發(fā)送sack(選擇性確收)。
與層2網(wǎng)絡(luò)中的路由橋接器一樣,層3網(wǎng)絡(luò)中的多路徑交換機將配置有用于便于本文公開的分組再循環(huán)操作的邏輯和回環(huán)緩沖區(qū)(例如,經(jīng)由由一個或多個處理器或處理器核執(zhí)行的軟件,經(jīng)由嵌入式邏輯、或這兩者的組合)。另外,層3交換機將被配置成支持常規(guī)層3交換機操作,從而便于按常規(guī)方式轉(zhuǎn)發(fā)常規(guī)層3話務(wù)。
與路由橋接器一樣,層3多路徑交換機被配置成獲得網(wǎng)絡(luò)拓?fù)湫畔⒉?gòu)建轉(zhuǎn)發(fā)表條目(例如,過濾器和/或規(guī)則)以便于多路徑轉(zhuǎn)發(fā)。在一個實施例中,這可以使用常規(guī)層3網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)技術(shù)結(jié)合使用ospf協(xié)議或用于發(fā)現(xiàn)網(wǎng)絡(luò)節(jié)點之間的最短路徑的其他協(xié)議來促進。如以上相對于層2網(wǎng)絡(luò)所討論的,給定一對網(wǎng)絡(luò)節(jié)點之間可以存在多條最短路徑,認(rèn)識到路徑的有效“長度”不必相等就能將它們中的多條分類成最短路徑。在簡單的長度確定下,長度等于節(jié)點之間的跳數(shù),不考慮通過每一跳的端點處的網(wǎng)絡(luò)元件的等待時間。在另一方法下,在正在進行的基礎(chǔ)上確定鏈路成本并且對應(yīng)的鏈路成本信息被散布給多路徑交換機(如使用鏈路狀態(tài)協(xié)議),從而使得成本被分配給多條路線中的每一條路線。因此,具有最低成本的路線路徑被認(rèn)為是最短路徑,同樣認(rèn)識到帶有類似值的具有最低成本的路線路徑可被分類成最短路徑。
用于實現(xiàn)分組再循環(huán)的示例性裝置
取決于特定實現(xiàn),本文公開的實施例的各方面一般可經(jīng)由獨立或編組的網(wǎng)絡(luò)元件來促進,或者它們可被實現(xiàn)為在諸如計算機服務(wù)器等另一裝置內(nèi)的嵌入式裝置。在一些實施例中,諸如服務(wù)器模塊、服務(wù)器刀片、或線卡等裝置可配備用于便于在本文和附圖中公開的路由橋接器或?qū)?網(wǎng)絡(luò)元件的組件和邏輯。
圖12示出了可在獨立設(shè)備、服務(wù)器模塊、服務(wù)器刀片、或線卡中的一個或多個中實現(xiàn)的示例性單板裝置1200。裝置1200包括其上安裝或經(jīng)由相關(guān)聯(lián)的插槽或連接器操作地耦合了多個組件的主板1202,這些組件括四個處理器1204a-d、每一個在邏輯上與相應(yīng)存儲器模塊1206a-d相關(guān)聯(lián)。還示出了多端口網(wǎng)絡(luò)接口控制器(nic)1206、固件存儲1208以及固態(tài)驅(qū)動器1210。在所示實施例中,處理器1204a-d經(jīng)由相應(yīng)pcie(外圍部件互連express)互連來連接到多端口nic1206,但這僅是處理器與nic之間的一種類型的互連的示例。
裝置1200的處理器和存儲器模塊的數(shù)量是示例性的。一般而言,裝置1200可以采用一個或多個處理器和存儲器模塊。處理器1200a-d可包括單核或多個處理器,并且存儲器模塊1206a-d可包括可被封裝以由對應(yīng)的連接器/插槽接納或直接耦合到主板1202的一個或多個存儲器組件。在一個實施例中,裝置1200示出為服務(wù)器刀片或線卡。在另一實施例中,裝置1200可被實現(xiàn)為獨立路由橋接器裝置中的主板。
多端口nic1206配備有用于支持網(wǎng)絡(luò)接口到多條網(wǎng)絡(luò)鏈路(這可包括有線、光學(xué)、或無線鏈路)的物理接口和存儲器緩沖區(qū)。對于采用物理電纜(有線或光學(xué))的鏈路,連接器可位于主板1202上(連接器未示出)或者來自連接器的信號可經(jīng)由連接器等(例如,如圖12中示出的邊緣連接器1212)被耦合到多端口nic1206。多端口nic1212還可被配置成與處理器1204a-d中的一個或多個對接以采用存儲器模塊1206a-d中的一個或多個中的存儲器地址空間來用作輸出緩沖區(qū)。在一個實施例中,這樣的存儲器地址空間可由多端口nic1206使用直接存儲器地址(dma)事務(wù)來訪問。
本文描述的實施例的各方面可被實現(xiàn)用以促成包括在安裝在支架的機箱內(nèi)的經(jīng)群集的服務(wù)器系統(tǒng)的網(wǎng)絡(luò)。例如,圖13a和13b解說了兩個示例性配置。更詳細(xì)地,圖13a描繪了被配置成采用多個服務(wù)器刀片1302和網(wǎng)絡(luò)模塊1304的4u服務(wù)器刀片機箱1300。當(dāng)被安裝進它們各自的插槽中時,刀片1302和模塊1304被連接至位于機箱1300內(nèi)近似中間深度處的中間板(未示出)。中間板包括用于促進刀片主板上的各組件之間的通信的布線、電路、以及連接器。在一個實施例中,刀片1302與裝置1200相似,但是其采用了后連接器并且相對于從頂部豎直地安裝而言其被配置成水平地安裝。在一個實施例中,模塊1304的槽寬度是刀片1302所用的槽寬度的兩倍。除了所示刀片以外,其它類型的模塊和設(shè)備可被安裝在機箱1300內(nèi),諸如以太網(wǎng)交換機模塊和熱切換存儲設(shè)備(后者從與圖13a中所描繪的機箱1300的相對側(cè)安裝)。在一個實施例中,網(wǎng)絡(luò)模塊1304包括多個以太網(wǎng)連接器1306。同樣如圖所示,服務(wù)器刀片機箱1300包括含有多個以太網(wǎng)連接器1310的基本模塊1308。
圖13b示出4u機箱1350,其中從頂部安裝刀片1352和服務(wù)器模塊1354,借此模塊的pcb邊緣連接器被安裝在設(shè)置在機箱底部的基板內(nèi)對應(yīng)的插槽中(未示出)。一般而言,機箱1350的基板執(zhí)行與機箱1300內(nèi)中間板相似的功能。另外,圖13b中所示的服務(wù)器配置可進一步采用被配置成促成附加通信功能的夾層板(也未示出)。在圖13b所解說的實施例中,服務(wù)器模塊1354的槽寬度是刀片1352的槽寬度的兩倍。機箱1350還被配置成容納其它類型的模塊和設(shè)備,諸如以太網(wǎng)交換機模塊和熱切換存儲設(shè)備。
層3網(wǎng)絡(luò)元件的一些實施例可按與圖13a和13b中示出的配置相類似的方式來配置(即,多個板或模塊被安裝在機箱內(nèi)),但與服務(wù)器刀片形成對比的是通常采用“線卡”。在一些實施例中,線卡可具有標(biāo)準(zhǔn)配置,如針對高級電信計算架構(gòu)(atca)板和機箱所定義的。例如,典型的atca機箱是12u或13u高并且支持安裝14個板。層3交換機或路由器的其他配置也可被實現(xiàn),包括單板配置。
在數(shù)據(jù)中心或類似實現(xiàn)中,各單獨的網(wǎng)絡(luò)子網(wǎng)或以太網(wǎng)段可包括在各編組水平上通信鏈接的多個刀片服務(wù)器,如包括子網(wǎng)或以太網(wǎng)段的數(shù)據(jù)中心內(nèi)的服務(wù)器支架或支架的一部分內(nèi)的多個刀片服務(wù)器機箱。在這一類型的安裝下,刀片的一部分可被實現(xiàn)為支持根據(jù)本文公開的實施例的各方面的分組再循環(huán)的路由橋接器或?qū)?交換機,而其他刀片主要被用于處理目的并且被配置為網(wǎng)絡(luò)端點。
圖14示出了根據(jù)本文公開的實施例的各方面的被配置成實現(xiàn)分組再循環(huán)的nic1400。nic1400被配置成支持n個端口,如端口600a、600b…600n所示,其中端口600中的每一個耦合到相應(yīng)的鏈路電纜601。為每一端口提供了一組緩沖區(qū)和物理層(phy)接口,如phy接口1404、輸入緩沖區(qū)1406以及輸出緩沖區(qū)1408所示。在所示實施例中,每一組緩沖區(qū)還包括回環(huán)緩沖區(qū)1410。在一個實施例中,回環(huán)緩沖區(qū)將被提供給nic上的每一入口端口。在其他實施例中,nic將包括一個或多個回環(huán)緩沖區(qū)。
nic1400包括分組處理邏輯塊1412,它被配置成根據(jù)本文公開的實施例的各方面來實現(xiàn)分組處理操作,包括與分組再循環(huán)相關(guān)的操作。用于實現(xiàn)這樣的分組處理邏輯的示例性組件包括網(wǎng)絡(luò)處理單元(npu)1414、指令存儲1416以及存儲器1418。nic1400還包括用于支持nic1400與其系統(tǒng)主機硬件(例如,服務(wù)器平臺板)之間的通信的互連接口1420。在一個實施例中,互連接口包括pcie接口。
nic1400被示為屬于附圖的硬件(hw)部分,而軟件(sw)相關(guān)組件被示為處于hw/sw線上方。這些包括通常由用nic來配置接口的平臺的操作系統(tǒng)來實現(xiàn)的軟件組件,如nic設(shè)備驅(qū)動程序1422和包括儲存在系統(tǒng)存儲器1426(即主機平臺的系統(tǒng)存儲器)中的指令和數(shù)據(jù)的軟件分組處理邏輯1424所示。
nic1400被配置成支持分組轉(zhuǎn)發(fā)操作,這些操作中的一些可完全經(jīng)由nic來實現(xiàn),而其他操作通過與軟件分組處理邏輯1424進行交互來執(zhí)行。例如,轉(zhuǎn)發(fā)表數(shù)據(jù)(如轉(zhuǎn)發(fā)過濾器和規(guī)則)通??山Y(jié)合與新流相關(guān)的分組分類操作來生成,其中新過濾器和/或規(guī)則可由軟件分組處理邏輯1424來生成。過濾器和/或規(guī)則的全部或一部分可被復(fù)制到存儲器1412中的轉(zhuǎn)發(fā)表1428。另外,端口狀態(tài)信息1430被維護在存儲器1412中,使得nic1400所采用的分組處理邏輯能夠查明耦合到nic的輸出端口中的每一個的當(dāng)前狀態(tài)(例如,擁塞或非擁塞)。另外,在采用多個nic的平臺上,端口狀態(tài)信息1430可包括耦合到其他nic的端口的當(dāng)前狀態(tài)。
nic1400被配置成支持常規(guī)分組轉(zhuǎn)發(fā)和分組再循環(huán)操作兩者。結(jié)合常規(guī)分組轉(zhuǎn)發(fā),電子模擬、光學(xué)或無線信號形式的分組數(shù)據(jù)在入口端口phy處接收,被轉(zhuǎn)換成數(shù)字形式并被解除串行化,其中對應(yīng)的分組數(shù)據(jù)最初緩存在輸入緩沖區(qū)1406中。該分組的頭部隨后被分組處理邏輯塊1412使用分組分類邏輯(未示出)來檢查。一旦被分類,執(zhí)行對轉(zhuǎn)發(fā)表1428的查找以確定將該分組轉(zhuǎn)發(fā)出去的那一端口。分組數(shù)據(jù)隨后從輸入緩沖區(qū)1406復(fù)制到系統(tǒng)存儲器1426中的與要使用的輸出端口相關(guān)聯(lián)的輸出隊列1432,作為可任選方法,輸入緩沖區(qū)1406中的分組數(shù)據(jù)可被復(fù)制到系統(tǒng)存儲器并使用軟件分組處理邏輯1424來分類。在緩沖區(qū)空間可用時,輸出隊列1432中的分組被復(fù)制到輸出緩沖區(qū)1408,通常使用fifo(先進先出)緩沖技術(shù)。分組隨后通過串行化數(shù)字流、經(jīng)由phy1404將數(shù)字化流轉(zhuǎn)換成電子模擬、光學(xué)或無線信號、以及通過該鏈路向外發(fā)送到耦合在該鏈路的相對端的下一網(wǎng)絡(luò)元件,來從輸出緩沖區(qū)1408轉(zhuǎn)發(fā)。在使用常規(guī)轉(zhuǎn)發(fā)表處理和轉(zhuǎn)發(fā)接收到的分組方面,上述全部內(nèi)容是常規(guī)分組轉(zhuǎn)發(fā)操作。
如上所述,網(wǎng)絡(luò)元件可被配置成支持多路徑轉(zhuǎn)發(fā)。因此,轉(zhuǎn)發(fā)表1428可包括支持多路徑的轉(zhuǎn)發(fā)過濾器和規(guī)則,使得被分類成同一流的分組可根據(jù)以上公開的教導(dǎo)經(jīng)由不同端口轉(zhuǎn)發(fā)。為便于這一點,流程圖700的操作和邏輯由分組處理邏輯1412來實現(xiàn)。另外,nic1400和/或軟件實體被配置成使用以上描述的技術(shù)來確定源和目的地之間的多路徑路線。
除了支持多路徑轉(zhuǎn)發(fā)之外,根據(jù)上述技術(shù),nic1400還被配置成支持回環(huán)操作。在一個實施例中,這按以下方式來促進。在執(zhí)行分組分類時,分組處理邏輯1412經(jīng)由對端口狀態(tài)信息1430的查找來檢查各輸出端口的狀態(tài)。分組處理邏輯基于端口狀態(tài)信息確定該分組要經(jīng)由在其上接收到它的同一鏈路被回環(huán)。因此,分組數(shù)據(jù)被從輸入緩沖區(qū)1406復(fù)制到回環(huán)緩沖區(qū)1410。如上所述,回環(huán)緩沖區(qū)耦合到該端口的輸出,并且因此,在回環(huán)緩沖區(qū)中緩存的分組從在其上接收到它們的同一端口發(fā)出。
雖然參考特定實現(xiàn)方式描述了一些實施例,但根據(jù)一些實施例,其他實現(xiàn)方式也是可能的。另外,附圖中所示的和/或本文描述的元件或其它特征的配置和/或順序不需要以所示和所描述的特定方式安排。根據(jù)某些實施例很多其它配置也是可能的。
在附圖中示出的每個系統(tǒng)中,在一些情況下的元件可分別具有相同附圖標(biāo)記或不同的附圖標(biāo)記,以暗示所表示的元件可能不同和/或相似。然而,元件是足夠靈活的以具有不同的實現(xiàn)并與本文所示或所描述的系統(tǒng)中的部分或全部一起操作。附圖中所示的各元件可以相同或不同。將哪個稱為第一元件以及將哪個稱為第二元件是任意的。
在說明書和權(quán)利要求書中,可使用術(shù)語“耦合”和“連接”及其衍生詞。應(yīng)當(dāng)理解,這些術(shù)語并不旨在作為彼此的同義詞。相反,在具體實施例中,“連接的”用于指示兩個或更多個要素彼此直接物理或電接觸。“耦合的”可表示兩個或更多個元件直接物理或電接觸。然而,“耦合的”也可表示兩個或更多個元件并未彼此直接接觸,但是仍然彼此協(xié)作、彼此相互作用。
實施例是本發(fā)明的實現(xiàn)或示例。說明書中對“實施例”、“一個實施例”、“一些實施例”或“其它實施例”的引用表示結(jié)合這些實施例描述的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一些實施例中,而不一定在所有的實施例中。各處出現(xiàn)的“實施例”、“一個實施例”或“一些實施例”不一定都指相同的實施例。
并非本文中描述和示出的所有組件、特征、結(jié)構(gòu)、特性等等都需要被包括在特定實施例或多個實施例中。例如,如果說明書陳述“可”、“可能”或“能夠”包括組件、特征、結(jié)構(gòu)或特性,則不一定包括該特定組件、特征、結(jié)構(gòu)或特性。如果說明書或權(quán)利要求書提到“一”或“一個”元件,則這并不意味著僅有一個該元件。如果說明書或權(quán)利要求書引用“額外的”元素,則不排除有一個以上的額外的元素。
如上所討論的,可通過對應(yīng)軟件和/或固件組件及應(yīng)用來促成本文中實施例的各方面,諸如服務(wù)器上運行的軟件或網(wǎng)絡(luò)元件上由嵌入式處理器執(zhí)行的固件。因此,本發(fā)明的實施例可用作或支持軟件程序、軟件模塊、固件和/或依據(jù)某種形式的處理核(諸如,計算機的cpu、多核處理器的一個或多個核)執(zhí)行的分布式軟件、在處理器或核上運行的虛擬機,或以其它方式在機器可讀介質(zhì)上或內(nèi)實現(xiàn)或達(dá)成。機器可讀介質(zhì)包括用于存儲或傳送機器(例如,計算機)可讀形式的信息的任何機制。例如,機器可讀介質(zhì)可包括只讀存儲器(rom)、隨機存取存儲器(ram)、磁盤存儲介質(zhì)、光存儲介質(zhì),以及閃存設(shè)備等。
另外,本說明書的各實施例可以不僅在半導(dǎo)體芯片上實現(xiàn),而且還在機器可讀介質(zhì)內(nèi)實現(xiàn)。例如,上述涉及可被存儲在和/或嵌入在與用于設(shè)計半導(dǎo)體器件的設(shè)計工具相關(guān)聯(lián)的機器可讀介質(zhì)內(nèi)。示例包括用vhsic硬件描述語言(vhdl)語言、verilog語言或spice語言來格式化的netlist(網(wǎng)絡(luò)列表)。一些netlist示例包括:行為級netlist、寄存器傳輸級(rtl)netlist、門級netlist以及晶體管級netlist。機器可讀介質(zhì)還包括具有諸如gds-ii文件等布局信息的介質(zhì)。此外,用于半導(dǎo)體芯片設(shè)計的netlist文件或其他機器可讀介質(zhì)可被用在模擬環(huán)境中以執(zhí)行上述教導(dǎo)的方法。
上文對本發(fā)明的所示出的本發(fā)明的各實施例的描述,包括在摘要所描述的,不是詳盡的,或?qū)⒈景l(fā)明限于上文所公開的準(zhǔn)確的形式。盡管為了說明,此處描述了本發(fā)明的具體實施例以及示例,但是,如那些精通相關(guān)技術(shù)的人所理解的,各種可能的等效的修改也都在本發(fā)明的范圍內(nèi)。
可以根據(jù)上面的詳細(xì)描述對本發(fā)明進行這些修改。后面的權(quán)利要求中所使用的術(shù)語不應(yīng)該被理解為將本發(fā)明限制于說明書和附圖中所公開的特定實施例。相反,本文的范圍完全由下列權(quán)利要求書來確定,權(quán)利要求書根據(jù)權(quán)利要求解釋的建立的原則來解釋。