两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于統(tǒng)一輸入/輸出和降低延遲的網(wǎng)絡設備體系結構的制作方法

文檔序號:7949066閱讀:614來源:國知局
專利名稱:用于統(tǒng)一輸入/輸出和降低延遲的網(wǎng)絡設備體系結構的制作方法
與相關申請的交叉引用本申請要求2004年10月22日遞交的題為“FC Over Ethernet”的美國臨時申請No.60/621,396(律師案卷號No.CISCP404P)和2005年3月30日遞交的題為“Network Device Architecture For ConsolidatingInput/Output And Reducing Latency”的美國專利申請No.11/094,877(律師案卷號No.CISCP417)的優(yōu)先權,這里通過引用將這些申請的全部內容結合進來。
背景技術
圖1示出了要求高可用性和網(wǎng)絡存儲的企業(yè)(例如金融機構)可能使用的一般類型的數(shù)據(jù)中心的簡化版本。數(shù)據(jù)中心100包括具有冗余連接以獲得高可用性的冗余以太網(wǎng)交換機。數(shù)據(jù)中心100經(jīng)由防火墻115經(jīng)由網(wǎng)絡105連接到客戶端。網(wǎng)絡105例如可以是企業(yè)內聯(lián)網(wǎng)、DMZ和/或因特網(wǎng)。以太網(wǎng)十分適合于客戶端(例如遠程客戶端180和185)和數(shù)據(jù)中心之間的TCP/IP流量。
在數(shù)據(jù)中心105內,有許多網(wǎng)絡設備。例如,許多服務器一般被布置在具有標準外形參數(shù)的機架(rack)上(例如一個“機架單元”可能寬19”并且厚約1.25”)?!皺C架單元”或“U”是用于機架安裝型設備的電子工業(yè)聯(lián)盟(或者更常稱之為“EIA”)標準計量單元。近來,由于出現(xiàn)在許多種商業(yè)、工業(yè)和軍事市場中的機架安裝產(chǎn)品的激增,該術語變得更加流行?!皺C架單元”的高度等于1.75”。為了計算機架外殼的內部可用空間,只需要簡單地用機架單元的總量乘以1.75”。例如,44U機架外殼將具有77”的內部可用空間(44×1.75)。數(shù)據(jù)中心內的每個機架例如可具有約40個服務器。數(shù)據(jù)中心可具有數(shù)千個或甚至更多的服務器。最近,一些廠商已經(jīng)發(fā)布了“刀片服務器(blade server)”,其允許甚至更高密度的服務器封裝(大約每機架60至80個服務器)。
但是,隨著數(shù)據(jù)中心內網(wǎng)絡設備的數(shù)目增長,連通性變得越來越復雜和昂貴。在最低限度上,數(shù)據(jù)中心105的服務器、交換機等等一般將經(jīng)由以太網(wǎng)連接。為了獲得高可用性,至少將有2個以太網(wǎng)連接,如圖1所示。
此外,不希望服務器包括巨大的存儲能力。由于此原因和其他原因,企業(yè)網(wǎng)絡包括與存儲設備(例如存儲陣列150)的連通性的情形變得越來越常見。歷史上,存儲流量是通過SCSI(小型計算機系統(tǒng)接口)和/或FC(光纖信道)來實現(xiàn)的。
在20世紀90年代中期,SCSI流量只能行進較短的距離。當時最感興趣的主題是如何使SCSI去往“盒外”。就像一直以來一樣,希望速度能夠更快。當時,以太網(wǎng)正從10Mb/s發(fā)展到100Mb/s。一些人設想了未來達到1Gb/s的速度,但是許多人認為這已經(jīng)接近了物理極限。對于10Mb/s以太網(wǎng),存在半雙工和沖突的問題。以太網(wǎng)被認為是不太可靠的,這一部分是因為分組可能會丟失并且可能存在沖突。(雖然術語本領域的技術人員通常使用的“分組”和“幀”的含義可能略有不同,但是在這里這兩個術語可以互換使用)。
FC被認為是存儲應用的有吸引力并且可靠的選擇,這是因為根據(jù)FC協(xié)議,分組不會被故意丟棄,并且FC已經(jīng)能夠以1Gb/s運行。但是,在2004年間,以太網(wǎng)和FC都達到了10Gb/s的速度。此外,以太網(wǎng)已經(jīng)發(fā)展到了全雙工并且沒有沖突的階段。因此,F(xiàn)C比起以太網(wǎng)來不再有速度優(yōu)勢。但是,交換機中的擁塞可能導致以太網(wǎng)分組被丟棄,這對于存儲流量來說是不合需要的特征。
在21世紀的最初幾年,大量工作投入到了開發(fā)iSCSI中,以在TCP/IP網(wǎng)絡上實現(xiàn)SCSI。雖然這些努力取得了一些成功,但是iSCSI并沒有變得十分流行iSCSI占有存儲網(wǎng)絡市場的約1%-2%,與之相比,F(xiàn)C占有大約98%-99%。
一個原因在于iSCSI棧與FC棧相比有些復雜。參考圖7A,可以看出iSCSI棧700需要5個層以太網(wǎng)層705、IP層710、TCP層715、iSCSI層720和SCSI層725。TCP層715是棧的必要部分,因為以太網(wǎng)層705可能丟失分組,而SCSI層725不能容忍分組丟失。TCP層715為SCSI層725提供了可靠的分組傳送。但是,在1到10Gb/s的速度下,TCP層715是一個難以實現(xiàn)的協(xié)議。相反,由于FC不丟失幀,因此不需要利用TCP層之類的層來補償丟失的幀。因此,如圖7B所示,F(xiàn)C棧750更簡單,只需要FC層755、FCP層760和SCSI層765。
因此,F(xiàn)C協(xié)議通常被用于網(wǎng)絡上的服務器和存儲設備(例如存儲陣列150)之間的通信。因此,數(shù)據(jù)中心105包括FC交換機140和145,用于服務器110和存儲陣列150之間的通信,在此示例中FC交換機140和145由Cisco Systems,Inc.提供。
1RU和刀片服務器非常流行,因為它們相對而言更低廉、強大、標準化,并且可以運行任何一種最流行的操作系統(tǒng)。已經(jīng)熟知近來年典型服務器的成本已經(jīng)降低并且其性能水平已經(jīng)提高。由于服務器相對較低的成本和在一個服務器上運行多于一類軟件應用可能造成的潛在問題,每個服務器一般被專用于一個特定應用。在典型企業(yè)網(wǎng)絡上運行的大量應用繼續(xù)增加了網(wǎng)絡中服務器的數(shù)目。
但是,由于維持與每個服務器的各種類型的連通性(例如以太網(wǎng)和FC連通性)較為復雜(其中為了獲得高可用性每類連通性最好是冗余的),服務器的連通性成本變得高于服務器本身的成本。例如,服務器的單個FC接口的成本就可能與服務器本身一樣高。服務器與以太網(wǎng)的連接一般是經(jīng)由網(wǎng)絡接口卡(“NIC”)進行的,而它與FC網(wǎng)絡的連接是利用主機總線適配器(“HBA”)進行的。
FC網(wǎng)絡和以太網(wǎng)網(wǎng)絡中的設備的角色就網(wǎng)絡流量來說有些不同,這主要是因為響應于TCP/IP網(wǎng)絡中的擁塞,分組照例會被丟棄,而在FC網(wǎng)絡中幀不會被故意丟棄。因此,在這里有時FC將被稱為“無丟棄”(nodrop)網(wǎng)絡的一個示例,而以太網(wǎng)將會被稱為“丟棄”(drop)網(wǎng)絡的一種表現(xiàn)形式。當在TCP/IP網(wǎng)絡上分組被丟棄時,系統(tǒng)將會迅速恢復,例如在幾百微秒中恢復。但是,F(xiàn)C網(wǎng)絡的協(xié)議一般是基于幀不會被丟棄的假設的。因此,當在FC網(wǎng)絡上幀被丟棄時,系統(tǒng)不會迅速恢復,并且SCSI將會花若干分鐘來恢復。
目前,以太網(wǎng)交換機的端口可在丟棄分組之前將其緩沖達約100毫秒。由于實現(xiàn)了10Gb/s以太網(wǎng),以太網(wǎng)交換機的每個端口將需要約100MB的RAM來將分組緩沖100毫秒。這將會昂貴得令人望而生畏。
對于一些企業(yè),希望“集群(cluster)”多于一個服務器,如圖1中服務器S2和S3周圍的虛線所示。集群使得偶數(shù)個服務器被視為單個服務器。為了進行集群,希望執(zhí)行遠程直接存儲器訪問(“RDMA”),其中一個虛擬存儲器空間(可能分散在許多物理存儲器空間上)的內容可在沒有CPU干預的情況下被拷貝到另一個虛擬存儲器空間。應當以非常低的延遲(latency)來執(zhí)行RDMA。在一些企業(yè)網(wǎng)絡中,存在專用于集群服務器的第三類網(wǎng)絡,如交換機175所示。這例如可以是“Myrinet”、“Quadrix”或“Infiniband”網(wǎng)絡。
因此,服務器的集群將給數(shù)據(jù)中心網(wǎng)絡添加更多的復雜因素。但是,與Quadrix和Myrinet不同,Infiniband允許進行集群并且提供了簡化數(shù)據(jù)中心網(wǎng)絡的可能性。Infiniband網(wǎng)絡設備相對更低廉,這主要是因為它們使用較小的緩沖器空間、銅介質和簡單的轉發(fā)方案。
但是,Infiniband網(wǎng)絡有若干缺陷。例如,目前只有一個Infiniband交換機組件來源。此外,尚未證明Infiniband能夠在例如大型企業(yè)的數(shù)據(jù)中心這樣的上下文中正確工作。例如,沒有已知的用于互連Infiniband子網(wǎng)的Infiniband路由器的實現(xiàn)方式。雖然在Infiniband和光纖信道以及Infiniband到以太網(wǎng)之間可能有網(wǎng)關,但是,將以太網(wǎng)從數(shù)據(jù)中心中去除的可能性是非常小的。這也意味著主機不僅需要Infiniband連接,還需要以太網(wǎng)連接。
因此,即使大型企業(yè)希望忽略前述缺點并改為基于Infiniband的系統(tǒng),該企業(yè)也需要在企業(yè)測試基于Infiniband系統(tǒng)時有遺留數(shù)據(jù)中心網(wǎng)絡(例如如圖1所示)安裝并工作。因此,基于Infiniband的成本將不會是替代成本,而是額外的成本。
非常需要以允許相對于現(xiàn)有數(shù)據(jù)中心網(wǎng)絡發(fā)生進化改變的方式簡化數(shù)據(jù)中心網(wǎng)絡。理想的系統(tǒng)將會提供用于以低成本統(tǒng)一服務器I/O和提供低延遲和高速度的進化系統(tǒng)。

發(fā)明內容
本發(fā)明提供了用于實現(xiàn)低延遲以太網(wǎng)(“LLE”)解決方案的方法和設備,在這里LLE解決方案也被稱為數(shù)據(jù)中心以太網(wǎng)(“DCE”)解決方案,它簡化了數(shù)據(jù)中心的連通性,并且提供了用于傳輸以太網(wǎng)和存儲流量的高帶寬、低延遲網(wǎng)絡。本發(fā)明的一些方面包括將FC幀變換成適合于在以太網(wǎng)上傳輸?shù)母袷健?br> 本發(fā)明的一些優(yōu)選實現(xiàn)方式在數(shù)據(jù)中心或類似網(wǎng)絡的單個物理連接中實現(xiàn)了多個虛擬通道(“VL”)(也稱為虛擬鏈路)。一些VL是“丟棄”VL,具有類似以太網(wǎng)的行為,其他的是具有類似FC行為的“無丟棄”通道。一些實現(xiàn)方式提供了“丟棄”和“無丟棄”之間的中間行為。一些這樣的實現(xiàn)方式是“推遲丟棄”(delayed drop),其中當緩沖器滿時幀不會立即被丟棄,相反在丟棄幀之前存在有限時間(例如毫秒量級)的上游“回推”。
VL部分地可通過標記幀來實現(xiàn)。由于每個VL可具有其自己的信用,因此每個VL可被獨立地對待。甚至可以依據(jù)補充速率根據(jù)指派給VL的信用來確定每個VL的性能。為了允許更復雜的拓撲并允許對交換機內的幀進行更好的管理,TTL信息以及幀長度字段可被添加到幀。還可以有關于擁塞的編碼信息,以便源可以接收顯式(explicit)消息以減慢下來。
本發(fā)明的一些優(yōu)選實現(xiàn)方式提供了基于信用和VL的保證帶寬。不同的VL可被指派以可隨時間改變的不同保證帶寬。優(yōu)選地,VL將會保持相同的特性(例如將會保持是丟棄或無丟棄通道),但是VL的帶寬將會取決于一天中的時間、要完成的任務等等而動態(tài)改變。
活動緩沖器管理既允許高可靠性,又允許了低延遲,同時還使用較小的幀緩沖器,甚至對于10GB/s以太網(wǎng)也是如此。優(yōu)選地,對于不同類型的VL,例如丟棄和無丟棄VL,用于活動緩沖器管理的規(guī)則是不同的。本發(fā)明的一些實施例是利用銅介質而不是光纖實現(xiàn)的。給定所有這些屬性,可以以有競爭力的、相對低廉的方式實現(xiàn)I/O統(tǒng)一。
本發(fā)明的一些方面提供了一種用于在單個網(wǎng)絡設備中處理多于一類網(wǎng)絡流量的方法。該方法包括以下步驟在邏輯上被劃分成多個虛擬通道的物理鏈路上接收第一幀和第二幀;將網(wǎng)絡設備的緩沖器劃分成用于在第一虛擬通道上接收的第一幀的第一緩沖器空間和用于在第二虛擬通道上接收的第二幀的第二緩沖器空間;將第一幀存儲在第一緩沖器空間中;將第二幀存儲在第二緩沖器空間中;向第一幀應用第一組規(guī)則;以及向第二幀應用第二組規(guī)則。該方法還可包括針對每個虛擬通道指派保證最小量緩沖器空間的步驟。
第一幀可以是以太網(wǎng)幀,例如這里描述的擴展以太網(wǎng)幀。在一些實現(xiàn)方式中,第一組規(guī)則使得第一幀響應于延遲被丟棄,而第二組規(guī)則不會使得第二幀響應于延遲被丟棄。但是,第二組規(guī)則可使得幀被丟棄以避免死鎖。第一組規(guī)則和/或第二組規(guī)則可使得顯式擁塞通知響應于延遲被從網(wǎng)絡設備發(fā)送。顯式擁塞通知可被發(fā)送到源設備或邊緣設備之一,并且可以經(jīng)由數(shù)據(jù)幀或控制幀之一發(fā)送。
“無丟棄”和“推遲丟棄”VL的流控制可通過利用緩沖器到緩沖器信用計入方案和/或暫停幀的任何便利組合來實現(xiàn)。例如,一些實現(xiàn)方式在網(wǎng)絡設備內使用緩沖器到緩沖器信用計入方案,并且在鏈路上使用暫停幀來進行流控制。因此,第二組規(guī)則可包括為第二幀實現(xiàn)緩沖器到緩沖器信用計入方案。緩沖器到緩沖器信用計入方案包括根據(jù)幀大小計入信用,并且可以實現(xiàn)在網(wǎng)絡設備內和/或網(wǎng)絡鏈路上。在網(wǎng)絡設備內,緩沖器到緩沖器信用可由仲裁器管理。如果緩沖器到緩沖器信用計入方案既被用于網(wǎng)絡設備內又被用于鏈路上,則在網(wǎng)絡設備內管理的信用最好與在鏈路上管理的信用不相同。
劃分步驟可包括根據(jù)緩沖器占用率、一天中的時間、流量負載、擁塞、保證最小帶寬分配、已知的要求較大帶寬的任務和最大帶寬分配來劃分緩沖器。第一幀和第二幀可被存儲在虛擬輸出隊列(“VOQ”)中。每個VOQ可與一個目的地端口/虛擬通道對相關聯(lián)。該方法可包括響應于VOQ長度、每虛擬通道緩沖器占用率、整體緩沖器占用率和分組年齡執(zhí)行緩沖器管理的步驟。
本發(fā)明的一些實施例提供了一種網(wǎng)絡設備,其包括被配置用于在多條物理鏈路上接收幀的多個端口,以及多個線路卡。每個端口與多個線路卡之一通信。每個線路卡被配置為執(zhí)行以下步驟從多個端口之一接收幀;識別在第一虛擬通道上接收的第一幀和在第二虛擬通道上接收的第二幀;將緩沖器劃分成用于第一幀的第一緩沖器空間和用于第二幀的第二緩沖器空間;將第一幀存儲在第一緩沖器空間中;將第二幀存儲在第二緩沖器空間中;向第一幀應用第一組規(guī)則;以及向第二幀應用第二組規(guī)則。
本發(fā)明的另一些實現(xiàn)方式提供了一種用于在單個網(wǎng)絡設備上承載多于一類流量的方法。該方法包括以下步驟識別在第一虛擬通道上接收的第一幀和在第二虛擬通道上接收的第二幀;動態(tài)地將網(wǎng)絡設備的緩沖器劃分成用于第一幀的第一緩沖器空間和用于第二幀的第二緩沖器空間;將第一幀存儲在第一緩沖器空間的第一VOQ中;將第二幀存儲在第二緩沖器空間的第二VOQ中;向第一幀應用第一組規(guī)則;以及向第二幀應用第二組規(guī)則??梢愿鶕?jù)以下因素來動態(tài)劃分緩沖器整體緩沖器占用率、每虛擬通道緩沖器占用率、一天中的時間、流量負載、擁塞、保證最小帶寬分配、已知的要求較大帶寬的任務和最大帶寬分配。
本發(fā)明的其他實施例提供了一種網(wǎng)絡設備,其包括被配置用于在多條物理鏈路上接收幀的多個端口,以及多個線路卡。每個端口與多個線路卡之一通信。每個線路卡被配置為執(zhí)行以下步驟識別在第一虛擬通道上接收的第一幀和在第二虛擬通道上接收的第二幀;動態(tài)地將網(wǎng)絡設備的緩沖器劃分成用于第一幀的第一緩沖器空間和用于第二幀的第二緩沖器空間;將第一幀存儲在第一緩沖器空間的第一虛擬輸出隊列(“VOQ”)中;將第二幀存儲在第二緩沖器空間的第二VOQ中;向第一幀應用第一組規(guī)則;以及向第二幀應用第二組規(guī)則。可以根據(jù)以下因素來動態(tài)劃分緩沖器整體緩沖器占用率、每虛擬通道緩沖器占用率、一天中的時間、流量負載、擁塞、保證最小帶寬分配、已知的要求較大帶寬的任務和最大帶寬分配。這里描述的方法可以按多種方式實現(xiàn)和/或表現(xiàn),所述多種方式例如包括硬件、軟件等等。


通過結合附圖參考以下描述將理解本發(fā)明,附示了本發(fā)明的具體實現(xiàn)方式。
圖1是示出數(shù)據(jù)中心的簡化網(wǎng)絡圖。
圖2是示出根據(jù)本發(fā)明一個實施例的數(shù)據(jù)中心的簡化網(wǎng)絡圖。
圖3是示出在單個物理鏈路上實現(xiàn)的多個VL的框圖。
圖4示出根據(jù)本發(fā)明一些實現(xiàn)方式攜帶有用于實現(xiàn)DCE的額外字段的以太網(wǎng)幀的一種格式。
圖5示出根據(jù)本發(fā)明一些實現(xiàn)方式的鏈路管理幀的一種格式。
圖6A是示出本發(fā)明的簡化的基于信用(credit)的方法的網(wǎng)絡圖。
圖6B是示出本發(fā)明的信用計入(crediting)方法的表。
圖6C是概括根據(jù)本發(fā)明用于初始化鏈路的一種示例性方法的流程圖。
圖7A示出了iSCSI棧。
圖7B示出了用于在FC上實現(xiàn)SCSI的棧。
圖8示出了根據(jù)本發(fā)明一些方面用于在DCE上實現(xiàn)SCSI的棧。
圖9A和9B示出了根據(jù)本發(fā)明一些方面用于在以太網(wǎng)上實現(xiàn)FC的方法。
圖10是根據(jù)本發(fā)明一些方面用于在以太網(wǎng)上實現(xiàn)FC的簡化網(wǎng)絡圖。
圖11是根據(jù)本發(fā)明一些方面用于聚集DCE交換機的簡化網(wǎng)絡圖。
圖12示出了根據(jù)本發(fā)明一些實施例的DCE交換機的體系結構。
圖13是示出根據(jù)本發(fā)明一些實現(xiàn)方式每個VL的緩沖器管理的框圖。
圖14是示出根據(jù)本發(fā)明的某些類型的顯式擁塞通知的網(wǎng)絡圖。
圖15是示出根據(jù)本發(fā)明一些實現(xiàn)方式的每個VL的緩沖器管理的框圖。
圖16是示出根據(jù)本發(fā)明一些方面的概率性丟棄函數(shù)的圖線。
圖17是示出一段時間中VL緩沖器的示例性占用率的圖線。
圖18是示出根據(jù)本發(fā)明的另一些方面的概率性丟棄函數(shù)的圖線。
圖19示出可被配置執(zhí)行本發(fā)明的一些方法的網(wǎng)絡設備。
具體實施例方式
現(xiàn)在將詳細參考本發(fā)明的一些具體實施例,其中包括發(fā)明人認為實現(xiàn)本發(fā)明的最佳模式。這些具體實施例的示例在附圖中示出。雖然是結合這些具體實施例來描述本發(fā)明的,但是應當理解,并不希望將本發(fā)明限制到所描述的實施例。相反,希望覆蓋所附權利要求所限定的本發(fā)明的精神和范圍所包括的替換、修改和等同。此外,下面闡述了許多具體細節(jié)以幫助全面理解本發(fā)明。沒有這些具體細節(jié)也能實現(xiàn)本發(fā)明。在其他情況下,沒有詳細描述公知的過程操作,以避免喧賓奪主。
本發(fā)明提供了用于簡化數(shù)據(jù)中心的連通性和提供用于傳輸以太網(wǎng)和存儲流量的高帶寬、低延遲網(wǎng)絡的方法和設備。本發(fā)明的一些優(yōu)選實現(xiàn)方式在數(shù)據(jù)中心或類似網(wǎng)絡的單個物理連接中實現(xiàn)了多個VL。優(yōu)選地,針對每個VL維護緩沖器到緩沖器信用。一些VL是“丟棄”VL,具有類似以太網(wǎng)的行為;其他的是具有類似FC的行為的“無丟棄”通道。
一些實現(xiàn)方式提供了“丟棄”和“無丟棄”之間的中間行為。一些這樣的實現(xiàn)方式是“推遲丟棄”,其中在緩沖器滿時,幀不會立即被丟棄,相反在丟棄幀之前存在有限時間(例如毫秒量級)的上游“回推”。推遲丟棄實現(xiàn)方式對于管理短暫的擁塞是有用的。
優(yōu)選地,擁塞控制方案在第2層實現(xiàn)。本發(fā)明的一些優(yōu)選實現(xiàn)方式基于信用和VL提供了保證帶寬。使用信用的替換方案是針對每個VL使用標準IEEE 802.3暫停(PAUSE)幀,以實現(xiàn)“無丟棄”或“推遲丟棄”VL。這里通過引用將IEEE 802.3標準結合進來,用于所有目的。例如,通過引用具體結合了802.3ae-2002標準的附錄31B,其標題為“MACControl PAUSE Operation”。還要理解,在沒有VL的情況下本發(fā)明仍能工作,但是在這種情況下,整條鏈路將會表現(xiàn)出“丟棄”或“推遲丟棄”或“無丟棄”行為。
優(yōu)選實現(xiàn)方式支持協(xié)商機制,例如IEEE 802.1x指定的那種,這里通過引用將其結合進來。協(xié)商機制例如可以確定主機設備是否支持LLE,并且,如果支持的話,則允許主機接收VL和信用信息,例如支持多少個VL,VL是使用信用還是暫停,如果是信用那么有多少信用,每個個體VL的行為如何。
活動緩沖器管理既允許高可靠性,又實現(xiàn)了低延遲,同時還使用較小的幀緩沖器。優(yōu)選地,對于丟棄和無丟棄VL,用于活動緩沖器管理的規(guī)則是不同的。
本發(fā)明的一些實現(xiàn)方式支持對于集群實現(xiàn)方式尤其有用的高效RDMA協(xié)議。在本發(fā)明的一些實現(xiàn)方式中,網(wǎng)絡接口卡(“NIC”)實現(xiàn)了用于集群應用的RDMA,還實現(xiàn)了用于RDMA的可靠傳輸。本發(fā)明的一些方面是經(jīng)由來自用戶直接訪問編程庫(“uDAPL”)的用戶API實現(xiàn)的。uDAPL定義了用于所有具有RDMA能力的傳輸?shù)囊唤M用戶API,這里通過引用將其結合進來。
圖2是示出用于簡化數(shù)據(jù)中心200的連通性的LLE解決方案的一個示例的簡化網(wǎng)絡圖。數(shù)據(jù)中心200包括LLE交換機240,其具有用于經(jīng)由防火墻215與TCP/IP網(wǎng)絡205和主機設備280和285的連通性的路由器260。示例性的LLE交換機的體系結構在這里詳細闡述。優(yōu)選地,本發(fā)明的LLE交換機可運行10Gb/s以太網(wǎng),并且具有相對較小的幀緩沖器。一些優(yōu)選的LLE交換機只支持第2層功能。
雖然本發(fā)明的LLE交換機可以利用光纖和光收發(fā)機實現(xiàn),但是一些優(yōu)選的LLE是利用銅連通性來實現(xiàn)的,以便降低成本。一些這樣的實現(xiàn)方式是根據(jù)提議的IEEE 802.3ak標準實現(xiàn)的,該標準被稱為10Base-CX4,這里通過引用將其結合進來,用于所有目的。發(fā)明人預期其他實現(xiàn)方式將使用新興的標準IEEE P802.3an(10GBASE-T),這里也通過引用將其結合進來,用于所有目的。
服務器210也與LLE交換機245相連接,LLE交換機245包括用于與盤陣列250通信的FC網(wǎng)關270。FC網(wǎng)關270在以太網(wǎng)上實現(xiàn)FC(這里將對其進行詳細描述),從而消除了在數(shù)據(jù)中心200內有單獨的FC和以太網(wǎng)網(wǎng)絡的需要。網(wǎng)關270可以是諸如Cisco Systems的MDS 900IP存儲服務模塊這樣的設備,該設備已被配置有用于執(zhí)行本發(fā)明的一些方法的軟件。以太網(wǎng)流量按原始格式承載于數(shù)據(jù)中心200內。之所以能夠這樣是因為LLE是以太網(wǎng)的擴展,它除了原有的以太網(wǎng)外還能承載以太網(wǎng)上FC(FC over Ethernet)和RDMA。
圖3示出了由物理鏈路315連接的兩個交換機305和310。交換機305和310的行為一般來說受IEEE 802.1約束,而物理鏈路315的行為一般來說受IEEE 802.3約束。大體上,本發(fā)明提供了LLE交換機的兩個一般行為,以及多種中間行為。第一一般行為是“丟棄”行為,該行為與以太網(wǎng)的類似。一般行為是“無丟棄”行為,該行為與FC的類似。本發(fā)明還提供了“丟棄”和“無丟棄”行為之間的中間行為,包括但不限于本文中其他地方描述的“推遲丟棄”行為。
為了在同一物理鏈路315上實現(xiàn)兩種行為,本發(fā)明提供了用于實現(xiàn)VL的方法和設備。VL是將一條物理鏈路分割成多個邏輯實體以便一個VL中的流量不受其他VL上的流量的影響的方式。這是通過為每個VL維護單獨的緩沖器(或一個物理緩沖器的單獨的部分)來完成的。例如,可以使用一個VL來傳送控制平面流量和一些其他的高優(yōu)先級流量,而這些流量不會由于另一VL上的低優(yōu)先級大塊流量而被阻塞。VLAN可被分組成不同的VL,以便一組VLAN中的流量的行進可以不受其他VLAN上流量的阻礙。
在圖3所示的示例中,交換機305和310實際上在物理鏈路315上提供了4個VL。在這里,VL 320和325是丟棄VL,而VL 330和335是無丟棄VL。為了同時實現(xiàn)“丟棄”行為和“無丟棄”行為兩者,必須為每類行為指派至少一個VL,總共2個。(理論上,可以只有一個VL,該VL被臨時指派給每類行為,但是這種實現(xiàn)方式不是優(yōu)選的)。為了支持遺留設備和/或其他缺乏LLE功能的設備,本發(fā)明的優(yōu)選實現(xiàn)方式支持沒有VL的鏈路,并且將該鏈路的所有流量映射到第一LLE端口處的單個VL。從網(wǎng)絡管理角度來看,最好有2到16個VL,雖然也可以實現(xiàn)更多個。
優(yōu)選地,將鏈路動態(tài)劃分為VL,這是因為靜態(tài)劃分不太靈活。在本發(fā)明的一些優(yōu)選實現(xiàn)方式中,動態(tài)劃分例如是通過添加擴展頭部而在逐分組基礎上(或逐幀基礎上)實現(xiàn)的。本發(fā)明涵蓋了這種頭部的很多種格式。在本發(fā)明的一些實現(xiàn)方式中,在DCE鏈路上有兩類幀發(fā)送這些類型是數(shù)據(jù)幀和鏈路管理幀。
雖然圖4和5分別示出了用于實現(xiàn)本發(fā)明的一些方面的以太網(wǎng)數(shù)據(jù)幀和鏈路管理幀的格式,但是本發(fā)明的其他實現(xiàn)方式提供了具有更多或更少字段的幀、不同順序的幀或其他變體。圖4的字段405和410是分別用于幀的目的地地址和源地址的標準以太網(wǎng)字段。類似地,協(xié)議類型字段430、有效載荷435和CRC字段440可以是標準以太網(wǎng)幀的那些字段。
但是,協(xié)議類型字段420指示以下字段是DCE頭部425的那些字段。如果存在的話,DCE頭部最好盡可能地接近幀的開始處,這是因為它使得在硬件中能夠很容易進行解析。DCE頭部可被攜帶在以太網(wǎng)數(shù)據(jù)幀中,如圖4所示,以及攜帶在鏈路管理幀中(見圖5和相應的描述)。該頭部最好被MAC剝去,并且不需要被存儲在幀緩沖器中。在本發(fā)明的一些實現(xiàn)方式中,當不存在數(shù)據(jù)流量或由于缺乏信用而不能發(fā)送常規(guī)幀時,生成鏈路管理幀的連續(xù)流。
DCE頭部中攜帶的大多數(shù)信息與包含有該DCE頭部的以太網(wǎng)幀相關。但是,一些字段是用于為相反方向上的流量補充信用的緩沖器信用字段。在該示例中,緩沖器信用字段只由具有長DCE頭部的幀攜帶。如果解決方案使用暫停幀而不是信用,則可能不需要信用字段。
TTL字段445指示存活時間,這是一個每當幀400被轉發(fā)時就被遞減的數(shù)。通常,第2層網(wǎng)絡不需要TTL字段。以太網(wǎng)使用生成樹拓撲,這種拓撲是非常保守的。生成樹對活動拓撲施加約束,并且對于從一個交換機到另一個交換機的分組只允許一條路徑。
在本發(fā)明的優(yōu)選實現(xiàn)方式中,不遵從對活動拓撲的這種限制。相反,優(yōu)選地,多條路徑同時活動,例如經(jīng)由鏈路狀態(tài)協(xié)議,比如OSPF(最短路徑優(yōu)先)或IS-IS(中間系統(tǒng)到中間系統(tǒng))。但是,已經(jīng)知道鏈路狀態(tài)協(xié)議在拓撲重配置期間會導致瞬時環(huán)路。利用TTL或類似的特征確保了瞬時環(huán)路不會變成大問題。因此,在本發(fā)明的優(yōu)選實現(xiàn)方式中,TTL被編碼在幀中,從而實際上在第2層實現(xiàn)鏈路狀態(tài)協(xié)議。與使用鏈路狀態(tài)協(xié)議不同的是,本發(fā)明的一些實現(xiàn)方式使用以不同的LLE交換機為根的多個生成樹,并獲得了類似的行為。
字段450標識幀400的VL。根據(jù)字段450對VL的標識允許了設備將幀指派給適當?shù)腣L,并且為不同的VL應用不同的規(guī)則。如本文中其他地方詳細描述的,規(guī)則將會根據(jù)各種標準而有所不同,所述標準例如是VL是丟棄還是無丟棄VL,VL是否具有保證帶寬,當前在VL上是否有擁塞,以及其他因素。
ECN(顯式擁塞通知)字段455被用于指示緩沖器(或分配給此VL的緩沖器的一部分)就要被填滿,因而對于所指示的VL,源應當減慢其傳送速率。在本發(fā)明的優(yōu)選實現(xiàn)方式中,網(wǎng)絡中的至少一些主機設備可理解ECN信息,并且將會對所指示的VL應用整形器,即一個a/k/a速率限制器。顯式擁塞通知可以按至少兩種一般方式發(fā)生。在一種方法中,出于發(fā)送ECN的明確目的而發(fā)送一個分組。在另一種方法中,該通知被“捎帶(piggy-back)”在已被傳送的分組上。
如其他地方所述的,顯式擁塞通知可被發(fā)送到源或發(fā)送到邊緣設備。ECN可發(fā)源于DCE網(wǎng)絡中的各種設備中,包括末端設備和核心設備。如下面的交換機體系結構部分中更詳細討論的,擁塞通知和對其的響應是控制擁塞同時維持較小的緩沖器大小的重要部分。
本發(fā)明的一些實現(xiàn)方式允許了ECN被從發(fā)端設備向上游發(fā)送,以及/或者允許了ECN被向下游發(fā)送,然后返回上游。例如,ECN字段455可以包括前向ECN部分(“FECN”)和后向ECN部分(“BECN”)。當交換機端口經(jīng)歷擁塞時,它可對FECN部分中的一位進行置位,并正常地轉發(fā)幀。在接收到FECN位被置位的幀時,末端站對BECN位進行置位,并且?guī)话l(fā)送回源。源接收幀,檢測到BECN位已被置位,并且減少注入網(wǎng)絡中的流量,或者至少對于所指示的VL減少注入網(wǎng)絡中的流量。
幀信用字段465被用于指示應當為幀400分配的信用的數(shù)目。在本發(fā)明的范圍內,存在許多可能的實現(xiàn)這種系統(tǒng)的方式。最簡單的解決方案是為個體分組或幀計入信用。從緩沖器管理角度來看,這可能不是最佳的解決方案如果為單個信用預留一個緩沖器并且每個分組上應用一個信用,那么就為單個分組預留了整個緩沖器。即使緩沖器的大小只等于預期的標準大小幀的大小,這種信用計入方案經(jīng)常也會導致對每個緩沖器的利用率很低,這是因為許多幀將會小于最大大小。例如,如果標準大小幀為9KB,并且所有緩沖器都是9KB,但是平均幀大小是1500字節(jié),則通常每個緩沖器中只有1/6被使用。
一種更好的解決方案是根據(jù)幀大小來計入信用。雖然可以為例如單個字節(jié)計入一個信用,但是在實際中最好使用更大的單位,例如64B、128B、256B、512B、1024B,等等。例如,如果信用是針對512B這一單位的,則前述的平均1500字節(jié)的幀將會需要3個信用。如果根據(jù)本發(fā)明的一個這種實現(xiàn)方式傳送這種幀,幀信用字段465將會指示幀需要3個信用。
根據(jù)幀大小的信用計入允許了更高效地使用緩沖器空間。已知分組的大小不僅指示了將會需要多少緩沖器空間,還指示了何時可將分組從緩沖器移走。例如,如果交換機的內部傳送速度不同于數(shù)據(jù)到達交換機端口的速率的話,那么這就尤其重要。
此示例提供了DCE頭部的較長版本和較短版本。長頭部字段460指示了DCE頭部是長版本還是短版本。在該實現(xiàn)方式中,所有的數(shù)據(jù)幀都至少包含短頭部,該短頭部在字段445、450、455和465中分別包括TTL、VL、ECN和幀信用信息。如果數(shù)據(jù)幀除需要攜帶存在于短頭部中的信息外還需要攜帶與每個VL相關聯(lián)的信用信息,則數(shù)據(jù)幀可包含長頭部。在該示例中,存在8個VL以及用于指示每個VL的緩沖器信用的8個相應字段。短DCE頭部和長DCE頭部兩者的使用減少了在所有幀中攜帶信用信息的開銷。
當沒有要發(fā)送的數(shù)據(jù)幀時,本發(fā)明的一些實施例使得鏈路管理幀(“LMF”)被發(fā)送,以宣告信用信息。LMF還可用于攜帶來自接收者的緩沖器信用或者攜帶來自發(fā)送者的所發(fā)送的幀信用。LMF應當在無信用的情況下被發(fā)送(幀信用=0),因為它最好被端口消耗,而不被轉發(fā)。LMF可被周期性地發(fā)送和/或響應于預定條件發(fā)送,例如在每10MB的有效載荷被數(shù)據(jù)幀傳送之后。
圖5示出了根據(jù)本發(fā)明的一些實現(xiàn)方式的LMF格式的示例。LMF 500開始于標準的6B以太網(wǎng)字段510和520,它們分別用于幀的目的地地址和源地址。協(xié)議類型頭部530指示之后是DCE頭部540,該DCE頭部在本示例中是短DCE頭部(例如長頭部字段=0)。DCE頭部540的VL、TTL、ECN和幀信用字段被發(fā)送者設置為零并且被接收者忽略。因此,LMF可由以下特性標識Protocol_Type=DCE_Header并且Long_Header=0并且Frame_Credit=0。
字段550指示活動VL的接收者緩沖器信用。在本示例中,存在8個活動VL,因此由字段551至558指示每個活動VL的緩沖器信用。類似地,字段560指示發(fā)送設備的緩沖器信用,因此由字段561至568指示每個活動VL的幀信用。
LMF 500不包含任何有效載荷。如果必要的話,就像本示例中一樣,LMF 500被填充字段570填充到64字節(jié),以創(chuàng)建合法的最小大小的以太網(wǎng)幀。LMF 500終止于標準的以太網(wǎng)CRC字段580。
一般來說,本發(fā)明的緩沖器到緩沖器信用計入方案是根據(jù)以下兩條規(guī)則來實現(xiàn)的(1)發(fā)送者在來自接收者的信用數(shù)大于或等于要發(fā)送的幀所需的信用數(shù)時發(fā)送該幀;以及(2)接收者在其能夠接受額外的幀時向發(fā)送者發(fā)送信用。如上所述,利用數(shù)據(jù)幀或LMF中的任何一種都可以補充信用。僅當至少存在數(shù)目等于幀長度(排除DCE頭部的長度)的信用時,才允許端口為特定VL發(fā)送幀。
如果使用暫停幀而不是信用,則應用類似的規(guī)則。發(fā)送者在幀未被接收者暫停時發(fā)送該幀。接收者在無法接受額外的幀時向發(fā)送者發(fā)送暫停幀。
以下是數(shù)據(jù)傳輸和信用補充的簡化示例。圖6A示出了從交換機B發(fā)送到交換機A的數(shù)據(jù)幀605,其具有短DCE頭部。在分組605到達交換機A之后,它將被保存在緩沖器610的存儲器空間608中。由于緩沖器610的存儲器中有一些被消耗了,因此交換機B的可用信用將會有相應的減少。類似地,當數(shù)據(jù)幀615(也具有短DCE頭部)被從交換機A發(fā)送到交換機B時,數(shù)據(jù)幀615將會消耗緩沖器620的存儲器空間618,從而交換機A可用的信用將會相應減少。
但是,在幀605和615已被轉發(fā)之后,在發(fā)送方交換機的緩沖器中相應的存儲器空間將會可用。在某個時刻,例如周期性地或根據(jù)需要地,該緩沖器空間再次可用這一事實應當被傳送給鏈路另一端的設備。具有長DCE頭部的數(shù)據(jù)幀和LMF被用于補充信用。如果不補充信用,則可使用短DCE頭部。雖然一些實現(xiàn)方式對所有傳送都使用較長的DCE頭部,但是這種實現(xiàn)方式的效率不那么高,這是因為為不包含關于信用補充的信息的分組消耗了超額的帶寬。
圖6B示出了本發(fā)明的信用信令方法的一個示例。傳統(tǒng)的信用信令方案650通告接收者希望返回的新信用。例如,在時刻t4,接收者希望返回5個信用,因此值5被攜帶在幀中。在時刻t5,接收者沒有信用要返回,因此值0被攜帶在幀中。如果在時刻t4幀丟失,則五個信用丟失。
DCE方案660通告累積的信用值。換言之,每個通告將要返回的新信用加到先前返回的信用的總數(shù)模m(對于8位,m為256)。例如,在時刻t3,從鏈路初始化開始返回的信用總數(shù)是3;在時刻t4,由于需要返回5個信用,因此將5加到3,并且在幀中發(fā)送8。在時刻t5,不需要返回信用,從而再次發(fā)送8。如果在時刻t4幀丟失,那么沒有信用丟失,因為在時刻t5幀包含相同的信息。
根據(jù)本發(fā)明的一種示例性實現(xiàn)方式,接收方DCE交換機維護以下信息(其中VL指示信息是針對每個虛擬通道維護的)·BufCrd[VL]-按能夠發(fā)送的信用數(shù)遞增的模數(shù)計數(shù)器;·BytesFromLastLongDCE-自最后一個長DCE頭部以來發(fā)送的字節(jié)數(shù);·BytesFromLastLMF-自最后一個LMF以來發(fā)送的字節(jié)數(shù);·MaxIntBetLongDCE-在發(fā)送長DCE頭部之間的最大間隔;·MaxIntBetLMF-在發(fā)送LMF之間的最大間隔;以及·FrameRx-按接收幀的FrameCredit字段遞增的模數(shù)計數(shù)器。
發(fā)送DCE交換機端口維護以下信息·LastBufCrd[VL]-接收者的BufCrd[VL]變量的最后估計值;以及·FrameCrd[VL]-按用于發(fā)送幀的信用數(shù)遞增的模數(shù)計數(shù)器。
當鏈路建立時,鏈路每一端的網(wǎng)絡設備將會協(xié)商DCE頭部的存在性。如果頭部不存在,則網(wǎng)絡設備例如將會簡單地使鏈路能夠進行標準以太網(wǎng)操作。如果頭部不存在,則網(wǎng)絡設備將會啟用根據(jù)本發(fā)明一些方面的DCE鏈路的特征。
圖6C是示出根據(jù)本發(fā)明的一些實現(xiàn)方式如何初始化DCE鏈路的流程圖。本領域的技術人員將會意識到,方法680(與這里描述的其他方法一樣)的步驟不需要按所指示的順序執(zhí)行,并且在一些情況下沒有按所指示的順序執(zhí)行。此外,這些方法的一些實現(xiàn)方式包括比所指示的更多或更少的步驟。
在步驟661中,兩個交換機端口之間的物理鏈路建立,并且在步驟663中,第一分組被接收。在步驟665中,確定(由接收方端口)該分組是否具有DCE頭部。如果沒有,則使該鏈路能夠傳送標準以太網(wǎng)流量。如果該分組具有DCE頭部,則端口執(zhí)行步驟以將該鏈路配置為DCE鏈路。在步驟671中,接收者和發(fā)送者將與鏈路上的流量相關的所有陣列清零。在步驟673中,MaxIntBetLongDCE的值被初始化為配置的值,并且在步驟675中,MaxIntBetLMF被初始化為配置的值。
在步驟677中,兩個DCE端口優(yōu)選地通過發(fā)送LMF來交換每個VL的可用信用信息。如果某個VL不被使用,則它的可用信用被宣告為0。在步驟679中,使鏈路能夠傳送DCE,并且包括數(shù)據(jù)幀在內的常規(guī)DCE流量可根據(jù)這里描述的方法在該鏈路上發(fā)送。
為了在存在單個幀丟失的情況下正確工作,優(yōu)選實現(xiàn)方式的DCE自恢復機制要求幀中通告的信用的最大數(shù)目小于最大可通告值的1/2。在短DCE頭部的一些實現(xiàn)方式中,每個信用字段為8位,即等于256的值。從而,在單個幀中可通告最多達127個額外信用。127個信用的最大值是合理的,因為最壞情況由一個方向上的一長串最小大小幀和相反方向上的單個巨大幀所代表。在傳送9KB的巨大幀期間,最小大小幀的最大數(shù)目約為9220B/84B=110個信用(假定9200字節(jié)的最大傳送單位和20字節(jié)的IPG和前導)。
如果多個連續(xù)的幀丟失,則LMF恢復方法可“修復”鏈路。一個這種LMF恢復方法基于以下觀點,即在一些實現(xiàn)方式中,由DCE交換機的端口維護的內部計數(shù)器為16位,但是為了節(jié)省帶寬,只有較低的8位在長DCE頭部中發(fā)送。如果沒有連續(xù)幀丟失則這一方式工作得很好,如前所述。當鏈路經(jīng)歷多個連續(xù)差錯時,長DCE頭部可能不再能夠同步計數(shù)器,但這卻通過包含所有計數(shù)器的全部16位的LMF實現(xiàn)了。8個額外的位允許了恢復多256倍的差錯,即總共512個連續(xù)差錯。優(yōu)選地,在遇到這種情況之前,鏈路被聲明為不可工作并被重置。
為了實現(xiàn)低延遲以太網(wǎng)系統(tǒng),必須考慮至少3種一般類型的流量。這些類型是IP網(wǎng)絡流量、存儲流量和集群流量。如上面詳細描述的,LLE為“無丟棄”VL提供了適合于例如存儲流量的類似FC的特性?!盁o丟棄”VL不會丟失分組/幀,并且可以根據(jù)例如圖8所示的簡單棧來提供。只有一小“片”LLE上FC(FC over LLE)810處于LLE層805和FC第2層(815)之間。層815、820和825與FC棧750的那些相同。因此,以前運行在FC上的存儲應用現(xiàn)在可以運行在LLE上。
現(xiàn)在將參考圖9A、9B和10描述根據(jù)LLE上FC層810的一個示例性實現(xiàn)方式的FC幀到以太網(wǎng)上FC(FC over Ethernet)幀的映射。圖9A是FC幀的簡化版本。FC幀900包括SOF 905和EOF 910,它們是有序的符號集合,不僅用于限定幀900的邊界,還用于傳達諸如幀的種類、幀是序列(一組FC幀)的開始還是結束,幀是正常還是非正常之類的信息。這些符號中的至少一些是非法的“代碼違規(guī)(code violation)”符號。FC幀900還包括24位的源FC ID字段915、24位的目的地FC ID字段920和有效載荷925。
本發(fā)明的一個目標是在以太網(wǎng)上傳達FC幀(例如FC幀900)中包含的存儲信息。圖10示出了用于能夠傳達這種存儲流量的LLE的本發(fā)明的一種實現(xiàn)方式。網(wǎng)絡1000包括LLE云1005,設備1010、1015和1020附接到該LLE云。LLE云1005包括多個LLE交換機1030,其示例性體系結構在本文中其他地方討論。設備1010、1015和1020可以是主機設備、服務器、交換機等等。存儲網(wǎng)關1050將LLE云1005與存儲設備1075相連。出于移動存儲流量的目的,網(wǎng)絡100可被配置為充當FC網(wǎng)絡。因此,設備1010、1015和1020的端口分別具有其自己的FC ID,并且存儲設備1075的端口具有FC ID。
為了在設備1010、1015和1020與存儲設備1075之間高效地移動存儲流量(包括幀900),本發(fā)明的一些優(yōu)選實現(xiàn)方式將來自FC幀900的字段的信息映射到LLE分組950的相應字段。LLE分組950包括SOF 955、目的地MAC字段的組織ID字段965和設備ID字段970、源MAC字段的組織ID字段975和設備ID字段980、協(xié)議類型字段985、字段990和有效載荷995。
優(yōu)選地,字段965、970、975和980都是24位字段,符合常規(guī)以太網(wǎng)協(xié)議。因此,在本發(fā)明的一些實現(xiàn)方式中,F(xiàn)C幀900的目的地FC ID字段的內容被映射到字段965或970中的一個,優(yōu)選映射到字段970。類似地,F(xiàn)C幀900的源FC ID字段的內容被映射到字段975或980中的一個,優(yōu)選映射到字段980。優(yōu)選地,將FC幀900的目的地FC ID字段915和源FC ID字段920的內容分別映射到LLE分組950的字段970和980,因為約定俗成地,IEEE為單個組織代碼指派許多設備代碼。這種映射功能例如可由存儲網(wǎng)關1050執(zhí)行。
因此,F(xiàn)C幀到LLE分組的映射部分地可通過向IEEE購買與一組設備代碼相對應的組織唯一標識符(“OUI”)代碼來實現(xiàn)。在一個這種示例中,當前的受讓人Cisco Systems支付了OUI的注冊費,并將OUI指派給“以太網(wǎng)上的FC”。根據(jù)本發(fā)明的這一方面配置的存儲網(wǎng)關(例如存儲網(wǎng)關1050)將OUI置于字段965和975中,將目的地FC ID字段915的24位內容拷貝到24位字段970,并將源FC ID字段920的24位內容拷貝到24位字段980。存儲網(wǎng)關在協(xié)議類型字段985中插入指示以太網(wǎng)上FC的代碼,并將有效載荷925的內容拷貝到有效載荷字段995。
由于上述映射,不需要在存儲網(wǎng)絡上明確指派MAC地址。然而,由于映射,目的地和源FC ID的以算法導出的版本被編碼在了LLE幀的相應部分中,這些相應部分在常規(guī)以太網(wǎng)分組中將被指派給目的地和源MAC地址。通過就好像這些字段是MAC地址字段那樣利用這些字段的內容,可在LLE網(wǎng)絡上路由存儲流量。
SOF字段905和EOF字段910包含有序的符號集合,其中一些(例如用于指示FC幀的開始和結束的那些)是保留的符號,有時這些符號被稱為“非法”或“代碼違規(guī)”符號。如果這些符號之一被拷貝到LLE分組950內的某個字段(例如字段990),則該符號將會導致差錯,例如通過指示LLE分組950應當在該符號處終止。但是,由這些符號傳達的信息必須被保留,因為它指示了FC幀的種類,幀是序列的開始還是結束,以及其他重要信息。
因此,本發(fā)明的優(yōu)選實現(xiàn)方式提供了將非法符號轉換成合法符號的另一種映射功能。這些合法符號隨后可被插入在LLE分組950的內部部分中。在一個這種實現(xiàn)方式中,經(jīng)轉換的符號被置于字段990中。字段990不需要很大;在一些實現(xiàn)方式,它的長度僅為1或2個字節(jié)。
為了允許貫通(cut-through)交換的實現(xiàn),字段990可被分割成兩個單獨的字段。例如,一個字段可以位于幀開始處,另一個可位于幀的另一端。
前述方法只是用于將FC幀封裝在擴展的以太網(wǎng)幀內的各種技術的一個示例。其他方法包括任何便利的映射,例如包括從三元組{VSAN,D ID,S ID}導出三元組{VLAN,DST MAC Addr,Src MAC Addr}。
上述映射和符號轉換過程產(chǎn)生了LLE分組,例如LLE分組950,其允許去往或來自基于FC的存儲設備1075的存儲流量經(jīng)由LLE云1005被轉發(fā)到末端節(jié)點設備1010、1015和1020。映射和符號轉換過程例如可以由存儲網(wǎng)關1050在逐幀基礎上運行。
因此,本發(fā)明提供了用于在FC-以太網(wǎng)云的入口邊緣處將FC幀封裝在擴展的以太網(wǎng)幀內的示例性方法。本發(fā)明的類似方法提供了在以太網(wǎng)-FC云的出口邊緣處執(zhí)行的相反過程。FC幀可從擴展以太網(wǎng)幀中解封出來,然后在FC網(wǎng)絡上傳送。
一些這樣的方法包括這些步驟接收以太網(wǎng)幀(例如按這里描述的方式封裝);將以太網(wǎng)幀的目的地MAC字段的第一部分的目的地內容映射到FC幀的目的地FC ID字段;將以太網(wǎng)幀的源MAC字段的第二部分的源內容映射到FC幀的源FC ID字段;將以太網(wǎng)幀的合法符號轉換成非法符號;將非法符號插入到FC幀的所選字段中;將以太網(wǎng)幀的有效載荷字段的有效載荷內容映射到FC幀有效載荷字段;以及在FC網(wǎng)絡上傳送FC幀。
不需要保留關于幀的狀態(tài)信息。因此,可以迅速地處理幀,例如以40Gb/s的速率處理幀。末端節(jié)點可基于SCSI運行存儲應用,因為存儲應用能看到圖8所示的LLE棧800的SCSI層825。不同于經(jīng)由專用于FC流量的交換機(例如圖1所示的FC交換機140和145)轉發(fā)存儲流量,這種FC交換機可由LLE交換機1030所取代。
此外,LLE交換機的功能允許了空間強大的管理靈活性。參考圖11,在一種管理方案中,LLE云1105的LLE交換機1130中的每一個可被視為單獨的FC交換機?;蛘撸琇LE交換機1130中的一些或全部可被聚集起來,并且出于管理目的被視為FC交換機。例如,出于網(wǎng)絡管理目的,通過將LLE云1105中的所有LLE交換機視為單個FC交換機,形成了虛擬FC交換機1140。個體LLE交換機1130的所有端口例如可被視為虛擬FC交換機140的端口?;蛘?,可以聚集較少量的LLE交換機1130。例如,3個LLE交換機被聚集起來以形成虛擬FC交換機1160,4個LLE交換機被聚集起來以形成虛擬FC交換機1165。網(wǎng)絡管理者可通過考慮個體LLE交換機具有多少端口等等來決定聚集多少交換機。通過將每個LLE交換機視為一個FC交換機,或者通過將多個LLE交換機聚集成一個虛擬FC交換機,可實現(xiàn)FC的控制平面功能,例如分區(qū)(zoning)、DNS、FSPF和其他功能。
此外,同一LLE云1105可支持許多虛擬網(wǎng)絡。虛擬局域網(wǎng)(“VLAN”)是本領域中已知的,用于提供虛擬的基于以太網(wǎng)的網(wǎng)絡。題為“Interswitch Link Mechanism for Connecting High-Performance NetworkSwitches”的美國專利No.5,742,604描述了相關系統(tǒng),這里通過引用將其結合進來。本受讓人的各種專利申請,包括2001年12月26日遞交的題為“Methods And Apparatus For Encapsulating A Frame For Transmission In AStorage Area Network”的美國專利申請No.10/034,160,提供了用于為基于FC的網(wǎng)絡實現(xiàn)虛擬存儲區(qū)域網(wǎng)(“VSAN”)的方法和設備。這里通過引用將該申請完全結合進來。由于LLE網(wǎng)絡既能支持以太網(wǎng)流量又能支持FC流量,本發(fā)明的一些實現(xiàn)方式實現(xiàn)了為FC和以太網(wǎng)流量兩者在同一物理LLE云上形成虛擬網(wǎng)絡。
圖12是示出根據(jù)本發(fā)明一個實施例的DCE交換機1200的簡化體系結構的示意圖。DCE交換機1200包括N個線路卡,每個線路卡的特征在于入口側(或輸入)1205和出口側(或輸出)1225。線路卡入口側1205經(jīng)由交換結構1250連接到線路卡出口側1225,在本示例中該交換結構包括縱橫交換機。
在該實現(xiàn)方式中,在輸入和輸出側都執(zhí)行緩沖。也可能實現(xiàn)其他體系結構,例如具有輸入緩沖器、輸出緩沖器和共享存儲器的那些。因此,輸入線路卡1205中的每一個包括至少一個緩沖器1210,并且輸出線路卡1225中的每一個包括至少一個緩沖器1230,所述緩沖器可以是本領域已知的任何便利類型的緩沖器,例如外部的基于DRAM的緩沖器或片上的基于SRAM的緩沖器。緩沖器1210例如用于輸入緩沖,以便在等待輸出線路卡處有足夠緩沖器可用于存儲要經(jīng)由交換結構1250發(fā)送的分組的同時暫時保存分組。緩沖器1230例如用于輸出緩沖,以便在等待有足夠信用用于要發(fā)送到另一DCE交換機的分組的同時暫時保存接收自輸入線路卡1205中的一個或多個的分組。
值得注意的是,雖然信用可在交換機內部和外部使用,但是在內部和外部信用之間不一定存在一對一映射。此外,可以在內部或外部使用暫停幀。例如,四個可能組合暫停-暫停(PUASE-PAUSE)、暫停-信用(PAUSE-CREDITS)、信用-暫停(CREDITs-PAUSE)和信用-信用(CREDIT-CREDIT)中的任何一種都可產(chǎn)生可行的解決方案。
DCE交換機1200包括某種形式用于施加流控制的信用機制。該流控制機制可在緩沖器1230之一的輸出隊列達到其最大容量時在緩沖器1210上施加反向壓力。例如,在發(fā)送幀之前,輸入線路卡1205之一可在從輸入隊列1215向輸出隊列1235發(fā)送幀之前向仲裁器1240(它例如可以是位于中央位置的單獨的芯片或分布在輸出線路卡上的一組芯片)請求信用。優(yōu)選地,該請求例如根據(jù)DCE頭部的幀信用字段指示幀的大小。仲裁器1240將會確定輸出隊列1235是否能夠接受該幀(即輸出緩沖器1230具有足夠的空間來容納該幀)。如果能夠,則信用請求將會被準予,并且仲裁器1240將會向輸入隊列1215發(fā)送信用授予。但是,如果輸出隊列1235太滿,則該請求將會被拒絕,并且不會向輸入隊列1215發(fā)送信用。
如本文中其他地方所討論的,DCE交換機1200需要能夠支持虛擬通道所要求的“丟棄”、“無丟棄”和中間行為。部分地通過在內部向DCE交換機施加類似上面描述的某類信用機制來啟用“無丟棄”功能。在外部,“無丟棄”功能可根據(jù)先前描述的緩沖器到緩沖器信用機制或暫停幀來實現(xiàn)。例如,如果輸入線路卡1205之一正經(jīng)歷著通過內部信用機制來自一個或多個輸出線路卡1225的反向壓力,那么線路卡可經(jīng)由類似FC的那種的緩沖器到緩沖器信用系統(tǒng)在上游方向上在外部傳播反向壓力。
優(yōu)選地,提供“無丟棄”和中間功能的同一芯片(例如同一ASIC)也將提供類似經(jīng)典以太網(wǎng)交換機的那種的“丟棄”功能。雖然這些任務可被分配在不同芯片上,但是在同一芯片上提供丟棄、無丟棄和中央功能允許了以低得多的成本來提供DCE交換機。
每個DCE分組將會在例如本文中其他地方描述的DCE頭部中包含指示DCE分組所屬的虛擬通道的信息。DCE交換機1200將會根據(jù)DCE分組被指派到的VL是丟棄還是無丟棄VL來處理每個DCE分組。
圖13示出了為VL劃分緩沖器的示例。在該示例中,指派了4個VL。VL 1305和VL 1310是丟棄VL。VL 1315和VL 1320是無丟棄VL。在該示例中,輸入緩沖器1300具有為每個VL指派的特定區(qū)域VL 1305被指派到緩沖器空間1325,VL 1310被指派到緩沖器空間1330,VL 1315被指派到緩沖器空間1335,VL 1320被指派到緩沖器空間1340。VL 1305和VL 1310上的流量的管理方式很像常規(guī)的以太網(wǎng)流量,并且部分是根據(jù)緩沖器空間1325和1330的操作。類似地,VL 1315和1320的無丟棄特征部分是根據(jù)僅為緩沖器空間1335和1340啟用的緩沖器到緩沖器信用流控制方案來實現(xiàn)的。
在一些實現(xiàn)方式中,指派給VL的緩沖器空間的量可根據(jù)諸如以下標準動態(tài)地指派緩沖器占用率、一天中的時間、流量負載/擁塞、保證最小帶寬分配、已知的要求更大帶寬的任務、最大帶寬分配,等等。優(yōu)選地,公平原則將會應用來防止一個VL獲得過多量的緩沖器空間。
在每個緩沖器空間內,在作為與目的地相關聯(lián)的邏輯隊列(虛擬輸出隊列或VOQ)的數(shù)據(jù)結構中存在數(shù)據(jù)的組織。(“A Practical SchedulingAlgorithm to Achieve 100% Throughput in Input-Queued Switches”,AdisakMekkittikul和Nick McKeown,Computer Systems Laboratory,StanfordUniversity(InfoCom 1998)和其中引用的參考文獻描述了用于實現(xiàn)VQO的相關方法,這里通過引用將它們結合進來)。目的地最好是目的地端口/虛擬通道對。利用VOQ方案避免了在輸出端口阻塞時和/或目的地輸出端口的另一虛擬通道阻塞時引起的輸入線路卡處的隊頭阻塞(head of lineblocking)。
在一些實現(xiàn)方式中,在VL之間不共享VOQ。在其他實現(xiàn)方式中,在丟棄VL之間或無丟棄VL之間可共享VOQ。但是,在無丟棄VL和丟棄VL之間不應當共享VOQ。在一些實施例中,VOQ與單個緩沖器相關聯(lián)。但是,在其他實施例中,VOQ可由多于一個緩沖器實現(xiàn)。
DCE交換機的緩沖器可實現(xiàn)各種類型的活動隊列管理。DCE交換機緩沖器的一些優(yōu)選實施例提供了至少4種基本類型的活動隊列管理流控制;出于擁塞避免目的,針對丟棄VL進行丟棄或針對無丟棄VL進行標記;丟棄以避免無丟棄VL中的死鎖;以及為了延遲控制而丟棄。
DCE網(wǎng)絡的流控制具有至少兩種基本表現(xiàn),一種被實現(xiàn)在DCE交換機內,另一種被實現(xiàn)在網(wǎng)絡的鏈路上。一種流控制表現(xiàn)是緩沖器到緩沖器的基于信用的流控制,它主要用于實現(xiàn)“無丟棄”或推遲丟棄VL。如上所述,暫停幀之類也可用于為“無丟棄”或“推遲丟棄”VL實現(xiàn)流控制。信用和暫停幀的任何便利組合,不論是在DCE交換機內還是在鏈路上,都可用于實現(xiàn)流控制。注意到以下這一點是很重要的在優(yōu)選實施例中,在DCE交換機內管理的信用與在鏈路上管理的信用是不同的。一些優(yōu)選實施例在鏈路上使用暫停幀,而在DCE交換機內使用信用。
一些優(yōu)選實現(xiàn)方式的另一種流控制表現(xiàn)包括向網(wǎng)絡中的其他設備的顯式上游擁塞通知。該顯式上游擁塞通知例如可由DCE頭部的顯式擁塞通知(“ECN”)字段實現(xiàn),如本文中其他地方所描述。
圖14示出了DCE網(wǎng)絡1405,包括邊緣DCE交換機1410、1415、1425和1430以及核心DCE交換機1420。在這種情況下,核心DCE交換機1420的緩沖器1450實現(xiàn)3類流控制。一類是緩沖器到緩沖器流控制指示1451,它由緩沖器1450和邊緣DCE交換機1410的緩沖器1460之間的緩沖器到緩沖器信用的授予(與否)來傳達。
緩沖器1450還發(fā)送2個ECN 1451和1452,這兩個ECN都是經(jīng)由DCE分組的DCE頭部的ECN字段實現(xiàn)的。ECN 1451可被視為核心到邊緣通知,因為它是由核心設備1420發(fā)送并由邊緣DCE交換機1410的緩沖器1460接收的。ECN 1452將被視為核心到末端通知,因為它是由核心設備1420發(fā)送并由末端節(jié)點1440的NIC卡1465接收的。
在本發(fā)明的一些實現(xiàn)方式中,ECN是通過對存儲到經(jīng)歷擁塞的緩沖器中的分組進行采樣來生成的。通過將其目的地地址設置為等于被采樣分組的源地址,ECN被發(fā)送到該分組的源。邊緣設備將會得知源是像末端節(jié)點1440那樣支持DCE ECN,還是像末端節(jié)點1435那樣不支持。在后一情況下,邊緣設備1410將會終止ECN并實現(xiàn)適當?shù)膭幼鳌?br> 活動隊列管理(AQM)將響應于各種標準被執(zhí)行,這些標準包括但不限于緩沖器占用率(例如針對每個VL)、每個VOQ的隊列長度以及VOQ中的分組的年齡。為了簡單起見,在討論AQM時,一般會假定在VL之間不共享VOQ。
現(xiàn)在將參考圖15描述根據(jù)本發(fā)明的AQM的一些示例。圖15示出了特定進刻的緩沖器使用情況。在該時刻,物理緩沖器1500的部分1505已被分配給丟棄VL,而部分1510已被分配給無丟棄VL。如本文中其他地方所述,緩沖器1500被分配給丟棄VL或無丟棄VL的量可隨時間而改變。在分配給丟棄VL的部分1505中,部分1520當前正被使用,而部分1515當前未被使用。
在部分1505和1510內,存在許多VOQ,包括VOQ 1525、1530和1535。在該示例中,確立了閾值VOQ長度L。VOQ 1525和1535的長度大于L,而VOQ 1530的長度小于L。長的VOQ指示下游擁塞?;顒雨犃泄芾韮?yōu)選地防止了任何VOQ變得太大,這是因為否則的話影響一個VOQ的下游擁塞將會不利地影響去往其他目的地的流量。
VOQ中的分組的年齡是用于AQM的另一標準。在優(yōu)選實現(xiàn)方式中,分組在進入緩沖器并被排隊到適當?shù)腣OQ中時被加上時間戳。因此,分組1540在到達緩沖器1500時接收時間戳1545,并被根據(jù)其目的地和VL標示置于VOQ中。如其他地方所述,VL標示將會指示是應用丟棄還是無丟棄行為。在該示例中,分組1540的頭部指示分組1540將在丟棄VL上傳送,并且具有與VOQ 1525相對應的目的地,因此分組1540被置于VOQ 1525中。
通過比較時間戳1545的時刻和當前時刻,在之后的時刻可確定分組1540的年齡。在此上下文中,“年齡”僅指分組在交換機中花費的時間,而不是在網(wǎng)絡中的某個其他部分中花的時間。然而,通過分組的年齡可推斷網(wǎng)絡的其他部分的狀況。例如,如果分組的年齡變得相對較大,則這種狀況指示去往分組的目的地的路徑正經(jīng)歷著擁塞。
在優(yōu)選實現(xiàn)方式中,年齡超過預定年齡的分組將被丟棄。如果在確定年齡時發(fā)現(xiàn)VOQ中的若干個分組超過了預定的年齡閾值,則可以進行多個丟棄。
在一些優(yōu)選實現(xiàn)方式中,存在用于延遲控制(TL)和用于避免死鎖(TD)的單獨的年齡極限。當分組到達TL時要采取的動作最好取決于分組是在丟棄VL還是在無丟棄VL上傳送。對于無丟棄通道上的流量,數(shù)據(jù)完整性比延遲更重要。因此,在本發(fā)明的一些實現(xiàn)方式中,當無丟棄VL中的分組的年齡超過TL時,分組不被丟棄,而是采取另一動作。例如,在一些這樣的實現(xiàn)方式中,分組可被標記和/或上游擁塞通知可被觸發(fā)。對于丟棄VL中的分組,延遲控制相對更重要,因此當分組的年齡超過TL時采取更激進的動作較為適當。例如,可向該分組應用概率性丟棄函數(shù)。
圖16的圖線1600提供了概率性丟棄函數(shù)的一些示例。根據(jù)丟棄函數(shù)1605、1610和1615,當分組的年齡超過TCO,即延遲截止閾值時,隨著分組的年齡增大達到TL,它將會被故意丟棄的概率從0%增大到100%,這取決于函數(shù)。丟棄函數(shù)1620是階梯函數(shù),其故意丟棄的概率為0%,直到達到TL為止。當分組的年齡達到TL時,丟棄函數(shù)1605、1610、1615和1620都達到100%的故意丟棄機率。雖然TCO、TL和TD可以是任何便利的時間,但是在本發(fā)明的一些實現(xiàn)方式中,TCO在數(shù)十微秒量級,TL在數(shù)毫秒至數(shù)十毫秒量級,而TD在數(shù)百毫秒量級,例如500毫秒。
如果丟棄VL或無丟棄VL中的分組的年齡超過TD,則分組將會被丟棄。在優(yōu)選實現(xiàn)方式中,針對無丟棄VL的TD比針對丟棄VL的TD要大。在一些實現(xiàn)方式中,TL和/或TD也可部分取決于分組在其上傳送的VL的帶寬以及同時將分組傳送到該VL的VOQ的數(shù)目。
對于無丟棄VL,與圖16所示類似的概率函數(shù)可被用于觸發(fā)上游擁塞通知,或設置屬于能夠支持TCP ECN的連接的TCP分組的頭部中的擁塞經(jīng)歷位(CE)。
在一些實現(xiàn)方式中,分組是否被丟棄、上游擁塞通知是否被發(fā)送以及TCP分組的CE位是否被標記不僅取決于分組的年齡,還取決于分組被置于其中的VOQ的長度。如果這種長度高于閾值Lmax,則采取AQM動作;否則將對從長度超過閾值Lmax的VOQ出隊的第一分組執(zhí)行AQM動作。
每VL緩沖器占用率的使用如圖15所示,緩沖器被劃分成VL。對于緩沖器中被劃分給丟棄VL的部分(例如緩沖器1500的部分1505),如果在任何給定時刻VL的占用率大于預定的最大值,則分組將被丟棄。在一些實現(xiàn)方式中,計算并維護VL的平均占用率。基于這種平均占用率,可采取AQM動作。例如,對于與無丟棄VL相關聯(lián)的部分1505,DCE ECN將被觸發(fā),而不是像與丟棄VL相關聯(lián)的部分1510的情況下那樣進行分組丟棄。
圖17示出了一段時間(水平軸)中VL占用率B(VL)(垂直軸)的圖線1700。在這里,BT是B(VL)的閾值。在本發(fā)明的一些實現(xiàn)方式中,在確定B(VL)達到時VL中的一些分組將被丟棄。一段時間中B(VL)的實際值由曲線1750示出,但是B(VL)僅在時刻t1至tN是確定的。在該示例中,在點1705、1710和1715分組將被丟棄,這些點對應于時刻t2、t3和t6。將會根據(jù)分組的年齡(例如最老的最先)、其大小、分組的虛擬網(wǎng)絡的QoS、隨機地、根據(jù)丟棄函數(shù)或以其他方式丟棄分組。
此外(或者作為替換),當B(VL)的平均值、加權平均值等等達到或超過BT時,可采取活動隊列管理動作。這種平均可根據(jù)各種方法來計算,例如通過將確定出的B(VL)值相加起來并且除以確定數(shù)。一些實現(xiàn)方式應用加權函數(shù),例如通過為更新近的樣本賦予更大的權重。可以應用本領域已知的任何類型的加權函數(shù)。
所采取的活動隊列管理動作例如可以是發(fā)送ECN,和/或應用概率性丟棄函數(shù),例如與圖18所示的那些之一類似的函數(shù)。在該示例中,圖線1880的水平軸是B(VL)的平均值。當平均值低于第一值1805時,故意丟棄分組的機率是0%。當平均值達到或超過第二值1810時,故意丟棄分組的機率為100%??梢韵蚓娱g值應用任何便利的函數(shù),不論是與1815、1820或1825類似的函數(shù)還是其他函數(shù)。
參考圖15,很明顯,VOQ 1525和1535的長度超過了預定長度L。在本發(fā)明的一些實現(xiàn)方式中,這種狀況觸發(fā)了活動隊列管理響應,例如發(fā)送一個或多個ECN。優(yōu)選地,緩沖器1500中包含的分組將會指示源是否能夠對ECN作出響應。如果分組的發(fā)送者不能對ECN作出響應,則該狀況可觸發(fā)概率性丟棄函數(shù)或者就簡單地進行丟棄。VOQ 1535不僅長于預定長度L1,還長于預定長度L2。根據(jù)本發(fā)明的一些實現(xiàn)方式,該狀況觸發(fā)分組的丟棄。本發(fā)明的一些實現(xiàn)方式利用了平均VOQ長度作為觸發(fā)活動隊列管理響應的標準,但是由于它需要大量的計算因此不是優(yōu)選的。
希望具有多個用于觸發(fā)AQM動作的標準。例如,雖然提供對VOQ長度的響應是有用的,但是這種措施對于每端口具有約1至2MB緩沖器空間的DCE交換機可能是不夠的。對于給定緩沖器,可能有數(shù)千個活動VOQ。但是,可能只有足夠用于103個分組量級的存儲器空間,或者可能更少。因此,可能會出現(xiàn)沒有哪個個體VOQ有足夠觸發(fā)任何AQM響應的分組,但某個VL卻已用盡空間的情況。
無丟棄VL的隊列管理在本發(fā)明的優(yōu)選實現(xiàn)方式中,丟棄VL和無丟棄VL的活動隊列管理之間的主要差別是對于丟棄VL將會觸發(fā)分組丟棄的(一個或多個)標準對于無丟棄VL將會導致DCE ECN被發(fā)送或TCP CE位被標記。例如,對于丟棄VL將會觸發(fā)概率性分組丟棄的狀況一般將會導致去往上游邊緣設備或末端(主機)設備的概率性ECN?;谛庞玫姆桨覆皇腔诜纸M去往何處的,而是基于分組來自何處的。因此,上游擁塞通知幫助了提供緩沖器使用的公平性,并且避免了在用于無丟棄VL的流控制的唯一方法是基于信用的流控制的情況下可能造成的死鎖。
例如,對于使用每VL緩沖器占用率作為標準,優(yōu)選地不會僅因為每VL緩沖器占用率達到或超過了閾值就丟棄分組。相反,例如,分組將被標記,或者ECN將被發(fā)送。類似地,仍可以計算某種類型的平均每VL緩沖器占用率,并應用概率函數(shù),但是要采取的基本動作是標記和/或發(fā)送ECN。分組將不會被丟棄。
但是,即使對于無丟棄VL,響應于例如如本文中其他地方所描述的由超過閾值的分組年齡所指示的阻塞或死鎖狀況,分組仍將被丟棄。本發(fā)明的一些實現(xiàn)方式還允許了無丟棄VL的分組響應于延遲狀況被丟棄。這將會取決于對于該具體無丟棄VL,對延遲設置的重要程度。一些這樣的實現(xiàn)方式應用概率性丟棄算法。例如,與存儲應用相比,一些集群應用可在延遲因素上設置更高的值。數(shù)據(jù)完整性對于集群應用來說仍是重要的,但是通過放棄某個程度的數(shù)據(jù)完整性來降低延遲可能會是有利的。在一些實現(xiàn)方式中,比起用于丟棄通道的相應值,較大值的TL(即延遲控制閾值)可被用于無丟棄通道。
圖19示出了可被配置來實現(xiàn)本發(fā)明的一些方法的網(wǎng)絡設備的示例。網(wǎng)絡設備1960包括主中央處理單元(CPU)1962、接口1968和總線1967(例如PCI總線)。一般來說,接口1968包括適用于與適當介質通信的端口1969。在一些實施例中,接口1968中的一個或多個包括至少一個獨立的處理器1974,并且在一些情況下包括易失性RAM。獨立處理器1974例如可以是ASIC或任何其他適當?shù)奶幚砥鳌8鶕?jù)一些這樣的實施例,這些獨立處理器1974執(zhí)行這里描述的邏輯的至少一些功能。在一些實施例中,接口1968中的一個或多個控制諸如媒體控制和管理這樣的通信密集型任務。通過為通信密集型任務提供單獨的處理器,接口1968允許了主微處理器1962高效地執(zhí)行諸如路由計算、網(wǎng)絡診斷、安全性功能之類的其他功能。
接口1968一般是作為接口卡(有時稱為“線路卡”)提供的。一般來說,接口1968控制網(wǎng)絡上數(shù)據(jù)分組的發(fā)送和接收,并且有時支持與網(wǎng)絡設備1960一起使用的其他外圍設備??梢蕴峁┑慕涌诎ü饫w(“FC”)接口、以太網(wǎng)接口、幀中繼接口、線纜接口、DSL接口、令牌環(huán)接口,等等。此外,可以提供各種甚高速接口,例如以太網(wǎng)接口、吉比特以太網(wǎng)接口、ATM接口、HSSI接口、POS接口、FDDI接口、ASI接口、DHEI接口,等等。
當在適當軟件或固件的控制之下動作時,在本發(fā)明的一些實現(xiàn)方式中,CPU 1962可負責實現(xiàn)與所需網(wǎng)絡設備的功能相關聯(lián)的特定功能。根據(jù)一些實施例,CPU 1962在包括操作系統(tǒng)(例如Linux、VxWorks等等)和任何適當?shù)膽密浖趦鹊能浖目刂浦聦崿F(xiàn)所有這些功能。
CPU 1962可以包括一個或多個處理器1963,例如來自Motorola微處理器家族或MIPS微處理器家族的處理器。在另一實施例中,處理器863是特別設計的用于控制網(wǎng)絡設備1960的操作的硬件。在特定實施例中,存儲器1961(例如非易失性RAM和/或ROM)也形成CPU 1962的一部分。但是,存在許多不同的存儲器耦合到系統(tǒng)的方式。存儲器塊1961可以用于多種目的,例如,緩存和/或存儲數(shù)據(jù),編程指令等等。
不論網(wǎng)絡設備的配置如何,它都可以采用被配置為存儲數(shù)據(jù)、用于通用通用網(wǎng)絡操作的程序指令和/或與這里描述的技術的功能相關的其他信息的一個或多個存儲器或存儲器模塊(例如存儲器塊1965)。程序指令例如可以控制操作系統(tǒng)和/或一個或多個應用的操作。
由于這種信息和程序指令可以用來實現(xiàn)這里描述的系統(tǒng)/方法,因此本發(fā)明涉及包括用于執(zhí)行這里描述的各種操作的程序指令、狀態(tài)信息等的機器可讀介質。機器可讀介質的示例包括但不限于磁介質,例如硬盤、軟盤和磁帶;光介質,例如CD-ROM盤;磁光介質;以及特別配置為存儲和執(zhí)行程序指令的硬件,例如只讀存儲器器件(ROM)和隨機訪問存儲器(RAM)。本發(fā)明也可以實現(xiàn)在在諸如無線電波、光線路、電線路之類的適當介質上傳播的載波中。程序指令的示例既包括機器代碼,例如由編譯器產(chǎn)生的機器代碼,也包括包含可以由計算機利用解釋器執(zhí)行的更高級別代碼的文件。
雖然圖19所示的系統(tǒng)示出了本發(fā)明的一個特定網(wǎng)絡設備,但是它決非其上可實現(xiàn)本發(fā)明的唯一的一種網(wǎng)絡設備。例如,經(jīng)常使用具有處理通信以及路由計算等的單個處理器的體系結構。此外,其他類型的接口和介質也可與網(wǎng)絡設備一起使用。接口/線路卡之間的通信路徑可以是基于總線的(如圖19所示)或者基于交換結構的(例如縱模交換機)雖然已經(jīng)參考特定實施例詳細地示出和描述了本發(fā)明,但是本領域的技術人員將會理解,在不脫離本發(fā)明的精神和范圍的情況下,可以對所公開的實施例作出形式和細節(jié)上的改變。例如,本發(fā)明的一些實現(xiàn)方式允許VL從丟棄VL變?yōu)橥七t丟棄或無丟棄VL。從而,這里描述的示例并不想要限制本發(fā)明。因此,希望所附權利要求書被解釋為包括落在本發(fā)明的真實精神和范圍之內的所有變化、等同、改變和修改。
權利要求
1.一種用于在單個網(wǎng)絡設備中處理多于一類網(wǎng)絡流量的方法,該方法包括在邏輯上被劃分成多個虛擬通道的物理鏈路上接收第一幀和第二幀;將所述網(wǎng)絡設備的緩沖器劃分成用于在第一虛擬通道上接收的第一幀的第一緩沖器空間和用于在第二虛擬通道上接收的第二幀的第二緩沖器空間;將所述第一幀存儲在所述第一緩沖器空間中;將所述第二幀存儲在所述第二緩沖器空間中;向所述第一幀應用第一組規(guī)則;以及向所述第二幀應用第二組規(guī)則。
2.如權利要求1所述的方法,還包括針對每個虛擬通道指派保證最小量緩沖器空間的步驟。
3.如權利要求1所述的方法,其中所述第一幀包括以太網(wǎng)幀。
4.如權利要求1所述的方法,其中所述第一組規(guī)則使得第一幀響應于延遲被丟棄。
5.如權利要求1所述的方法,其中所述第二組規(guī)則不會使得第二幀響應于延遲被丟棄。
6.如權利要求1所述的方法,其中所述第一組規(guī)則使得顯式擁塞通知響應于第二幀的延遲被從所述網(wǎng)絡設備發(fā)送。
7.如權利要求1所述的方法,其中所述第二組規(guī)則使得顯式擁塞通知響應于第二幀的延遲被從所述網(wǎng)絡設備發(fā)送。
8.如權利要求1所述的方法,其中所述劃分步驟包括根據(jù)從由以下因素構成的因素群組中選擇出的一個或多個因素劃分緩沖器緩沖器占用率、一天中的時間、流量負載、擁塞、保證最小帶寬分配、已知的要求較大帶寬的任務和最大帶寬分配。
9.如權利要求1所述的方法,其中所述第二組規(guī)則使得幀被丟棄以避免死鎖。
10.如權利要求1所述的方法,其中所述第一組規(guī)則響應于延遲應用概率性丟棄函數(shù)。
11.如權利要求1所述的方法,其中所述第二組規(guī)則包括為所述第二幀實現(xiàn)緩沖器到緩沖器信用計入方案。
12.如權利要求1所述的方法,還包括將所述第一幀和所述第二幀存儲在虛擬輸出隊列(“VOQ”)中的步驟,其中每個VOQ與一個目的地端口/虛擬通道對相關聯(lián)。
13.如權利要求1所述的方法,還包括響應于每虛擬通道緩沖器占用率和分組年齡中的至少一個執(zhí)行緩沖器管理的步驟。
14.如權利要求6所述的方法,其中所述顯式擁塞通知被發(fā)送到源設備或邊緣設備之一。
15.如權利要求6所述的方法,其中所述顯式擁塞通知是經(jīng)由數(shù)據(jù)幀或控制幀之一發(fā)送的。
16.如權利要求11所述的方法,其中所述緩沖器到緩沖器信用計入方案包括根據(jù)幀大小計入信用。
17.如權利要求11所述的方法,其中緩沖器到緩沖器信用由仲裁器管理。
18.如權利要求11所述的方法,其中所述第二組規(guī)則包括在網(wǎng)絡設備內實現(xiàn)所述緩沖器到緩沖器信用計入方案,并且在所述第二虛擬通道上使用暫停幀來進行流控制。
19.如權利要求12所述的方法,還包括以下步驟響應于VOQ長度、每虛擬通道緩沖器占用率、整體緩沖器占用率和分組年齡中的至少一個執(zhí)行緩沖器管理。
20.一種網(wǎng)絡設備,包括用于在邏輯上被劃分成多個虛擬通道的物理鏈路上接收第一幀和第二幀的裝置;用于將所述網(wǎng)絡設備的緩沖器劃分成用于在第一虛擬通道上接收的第一幀的第一緩沖器空間和用于在第二虛擬通道上接收的第二幀的第二緩沖器空間的裝置;用于將所述第一幀存儲在所述第一緩沖器空間中的裝置;用于將所述第二幀存儲在所述第二緩沖器空間中的裝置;用于向所述第一幀應用第一組規(guī)則的裝置;以及用于向所述第二幀應用第二組規(guī)則的裝置。
21.一種網(wǎng)絡設備,包括被配置用于在多條物理鏈路上接收幀的多個端口;多個線路卡,每個線路卡與所述多個端口之一通信,并且被配置為執(zhí)行以下步驟從所述多個端口之一接收幀;識別在第一虛擬通道上接收的第一幀和在第二虛擬通道上接收的第二幀;將緩沖器劃分成用于所述第一幀的第一緩沖器空間和用于所述第二幀的第二緩沖器空間;將所述第一幀存儲在所述第一緩沖器空間中;將所述第二幀存儲在所述第二緩沖器空間中;向所述第一幀應用第一組規(guī)則;以及向所述第二幀應用第二組規(guī)則。
22.一種用于在單個網(wǎng)絡設備上承載多于一類流量的方法,該方法包括識別在第一虛擬通道上接收的第一幀和在第二虛擬通道上接收的第二幀;動態(tài)地將所述網(wǎng)絡設備的緩沖器劃分成用于所述第一幀的第一緩沖器空間和用于所述第二幀的第二緩沖器空間,其中所述緩沖器是根據(jù)從由以下因素構成的因素群組中選擇出的一個或多個因素來動態(tài)劃分的整體緩沖器占用率、每虛擬通道緩沖器占用率、一天中的時間、流量負載、擁塞、保證最小帶寬分配、已知的要求較大帶寬的任務和最大帶寬分配;將所述第一幀存儲在所述第一緩沖器空間的第一虛擬輸出隊列(“VOQ”)中;將所述第二幀存儲在所述第二緩沖器空間的第二VOQ中;向所述第一幀應用第一組規(guī)則;以及向所述第二幀應用第二組規(guī)則。
23.一種網(wǎng)絡設備,包括用于識別在第一虛擬通道上接收的第一幀和在第二虛擬通道上接收的第二幀的裝置;用于動態(tài)地將所述網(wǎng)絡設備的緩沖器劃分成用于所述第一幀的第一緩沖器空間和用于所述第二幀的第二緩沖器空間的裝置,其中所述緩沖器是根據(jù)從由以下因素構成的因素群組中選擇出的一個或多個因素來動態(tài)劃分的整體緩沖器占用率、每虛擬通道緩沖器占用率、一天中的時間、流量負載、擁塞、保證最小帶寬分配、已知的要求較大帶寬的任務和最大帶寬分配;用于將所述第一幀存儲在所述第一緩沖器空間的第一虛擬輸出隊列(“VOQ”)中的裝置;用于將所述第二幀存儲在所述第二緩沖器空間的第二VOQ中的裝置;用于向所述第一幀應用第一組規(guī)則的裝置;以及用于向所述第二幀應用第二組規(guī)則的裝置。
24.一種網(wǎng)絡設備,包括被配置用于在多條物理鏈路上接收幀的多個端口;多個線路卡,每個線路卡與所述多個端口之一通信,并且被配置為執(zhí)行以下步驟識別在第一虛擬通道上接收的第一幀和在第二虛擬通道上接收的第二幀;動態(tài)地將所述網(wǎng)絡設備的緩沖器劃分成用于所述第一幀的第一緩沖器空間和用于所述第二幀的第二緩沖器空間,其中所述緩沖器是根據(jù)從由以下因素構成的因素群組中選擇出的一個或多個因素來動態(tài)劃分的整體緩沖器占用率、每虛擬通道緩沖器占用率、一天中的時間、流量負載、擁塞、保證最小帶寬分配、已知的要求較大帶寬的任務和最大帶寬分配;將所述第一幀存儲在所述第一緩沖器空間的第一虛擬輸出隊列(“VOQ”)中;將所述第二幀存儲在所述第二緩沖器空間的第二VOQ中;向所述第一幀應用第一組規(guī)則;以及向所述第二幀應用第二組規(guī)則。
全文摘要
本發(fā)明提供了用于實現(xiàn)低延遲以太網(wǎng)(“LLE”)解決方案的方法和設備,在這里LLE解決方案也被稱為數(shù)據(jù)中心以太網(wǎng)(“DCE”)解決方案,它簡化了數(shù)據(jù)中心的連通性,并且提供了用于傳輸以太網(wǎng)和存儲流量的高帶寬、低延遲網(wǎng)絡。本發(fā)明的一些方面包括將FC幀變換成適合于在以太網(wǎng)上傳輸?shù)母袷?。本發(fā)明的一些優(yōu)選實現(xiàn)方式在數(shù)據(jù)中心或類似網(wǎng)絡的單個物理連接中實現(xiàn)了多個虛擬通道(“VL”)。一些VL是“丟棄”VL,具有類似以太網(wǎng)的行為,其他的是具有類似FC行為的“無丟棄”通道。本發(fā)明的一些優(yōu)選實現(xiàn)方式基于信用和VL提供了保證帶寬。活動緩沖器管理既允許高可靠性,又允許了低延遲,同時還使用較小的幀緩沖器。優(yōu)選地,對于丟棄和無丟棄VL,用于活動緩沖器管理規(guī)則是不同的。
文檔編號H04L12/28GK101040489SQ200580034646
公開日2007年9月19日 申請日期2005年10月13日 優(yōu)先權日2004年10月22日
發(fā)明者西爾瓦諾·加伊, 托馬斯·埃茲爾, 戴維·貝爾加馬斯科, 迪內?!み_特, 弗拉維歐·博諾米 申請人:思科技術公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
那坡县| 米易县| 营山县| 江油市| 丽江市| 如东县| 内丘县| 沈阳市| 天长市| 增城市| 张家港市| 陇川县| 门源| 托克逊县| 阳西县| 肃南| 吴忠市| 县级市| 潮州市| 依兰县| 扬州市| 綦江县| 会理县| 肃宁县| 松溪县| 巨野县| 乌拉特前旗| 宜州市| 鹤峰县| 乳山市| 阿克陶县| 阆中市| 都安| 隆林| 武城县| 中卫市| 闻喜县| 昌黎县| 亚东县| 台中县| 临泽县|