專利名稱:在異構網絡中分類和重定向數據分組的方法和設備的制作方法
技術領域:
一般地,本發明涉及電信和數字組網。本發明尤其涉及在異構數據重定向組網設備中的分組的分類。
背景技術:
在數字組網和電信領域,數據經常被組裝,然后以確定的離散單元——為大家所知道的分組被傳輸和接收。全部或者特定數量的起源于同一源設備、連接或者應用程序的分組能夠以“流”的方式被聚集在一起。雖然術語“分組”被使用在這個論述中,“分組”也可以指其它的諸如幀等等的離散數據單元。截取和轉發這種流或者分組的網絡設備(例如交換器、路由器等等)經常被配置了多個入端口(也就是輸入流到達該設備進入該端口)和多個出端口(也就是輸入流從該端口被路由離開該設備)。在這點上,并且為了本發明的目的,端口可以是物理的、邏輯的或者物理和邏輯的組合。此外,端口實際上可以是雙向的,這樣它們即可以用作為入端口,也可以用作為出端口。當輸入流或者單個輸入分組被網絡設備接收時,它可能已經被指定經由僅單個出端口或者多個出端口輸出。僅具有單個目的出端口的輸入流/分組被稱為單播,而被指定去往多個出端口的流/分組被稱為組播。
某些網絡設備可以被分類為異構的,因為它們可以接收很多不同類型的數據(例如,通過入端口),并且以很多不同的格式或者在不同類型的傳輸機制上轉發這種數據(例如,通過出端口)。這種設備的例子包括轉換網關,所述轉換網關以一種格式拆開數據,而以另一種格式重新封裝它。為了本發明的目的,異構網絡被認為是那些非異構網絡(也就是那些基于一種傳輸機制接收和轉發僅一種數據的網絡)的一般情況;如此,意味著這些非異構的網絡是在本發明的范圍內。當兩端口的非異構設備僅僅從它的一個入端口向它的一個出端口轉發數據時,較少地需要對分組分類。然而,在那些具有多種類型的端口(例如,入端口、出端口、入/出端口組合,變化的數據格式,變化的物理連接,等等)和物理端口可能被合并或者分割為一個或者多個邏輯端口的設備中,有分組分類的極大必要。
圖1表示了規定不同類型的數據格式和兼備不同的傳輸機制的異構網絡環境。這種格式和傳輸機制(還有很多其它的)的很多不同組合能夠被組合起來形成這種網絡環境,這對本領域的技術人員將是顯而易見的。例如,網絡環100可包括諸如SONET環的高容量網絡,并且通常向不止一個客戶提供服務。這種客戶可進一步將他們通過網絡環100接收的服務發布至在他們自己的內部網絡之后的一個或者多個節點。圖1顯示了節點110、120、130、140、150、160和170。節點140和150通過同一用戶界內設備(CPE)145接入網絡環100。同樣地,節點130和170通過CPE135接入該網絡。剩余的節點直接接入網絡環100。CPE145和135可,例如,是在網絡環100上分配諸如以太網或者PDH(例如,T1線路,T3線路,等等)的傳輸機制、從而使用給定的帶寬的網關。如在上面提及的,網絡環100可以是可具有非常巨大帶寬,例如,諸如2.5千兆比特每秒(Gb/s)的電信級網絡。
因而,網絡環100通常不像典型的局域網(LAN)服務或者典型的點對點租用線路服務。然而,最近的努力已經試圖在諸如在圖1中顯示的環境中提供這兩種類型的服務。例如,第一個,被稱為“專線服務”或者“以太網專用線路服務”,是嘗試創建一種安全的和專用的租用線路類型的機制。例如,假定在屬于同一組織B、而可能被長物理距離分隔開的節點130和節點110之間需要專用的面向連接的服務。專線服務可以被用來提供節點130至節點110的服務。專線服務將在節點110和節點130之間創建點對點的、專用的互連,盡管二者在網絡環100上是隔離的。
然而,另一個服務,例如,所知道的透明LAN或者以太網專用LAN服務,是嘗試在從屬于同一客戶的那些節點之外創建虛擬局域網(LAN)。例如,如果節點120、140、150和170(也就是屬于同一客戶組織A的所有節點)是使用網絡環100的虛擬LAN的部分,它們互相看起來如同處于同一客戶A的LAN中,盡管節點120可能離節點140、150和170有很大的距離。此外,這些節點看起來在同一LAN中,盡管所有四個節點可能運行在不同傳輸機制下(例如,如果透明LAN服務被使能)。同樣地,另一個透明LAN服務可使得屬于客戶組織B的節點110、130和160能夠看起來是在B的LAN上。
然而,在網絡環100上提供這種服務的另一個挑戰是來自諸如CPE135和CPE145的CPE的立場。CPE必須考慮提供該服務,以便節點(例如終端客戶機或者用戶)能夠依據它們的網絡流被精確地識別,并且彼此被區別開。由于實際網絡不準確地是面向連接的,CPE應該能夠將屬于組織A的數據單元和屬于組織B的數據單元區別開。此外,在專線和透明LAN服務二者都出現,而且二者都試圖在同一CPE上被提供的地方,這種服務應該被CPE區別開。當CPE還具有分配其資源、調度和路由數據單元、確定出端口等任務的時候,分組分類變得更加困難。此外,在CPE可能支持向一個節點提供T1線路,而向另一個節點提供千兆比特以太網或者10/100以太網的地方,CPE必須能夠在內部在這種分組類型中進行分類和區別。
雖然CPE135和145能夠簡單地利用很多不同的物理端口和大的存儲器被構造,這種CPE對客戶是不經濟的。此外,在客戶希望在同一物理入或者出端口上有很多不同的信道或者邏輯端口的地方,這種CPE不能很好地調整。最近,正在努力提供可調整的CPE,所述CPE能夠在較少的硬件上運行,從而較之于其前任具有較低的價格和復雜性,同時仍然提供較之于其前任更好的性能。然而,在這種努力中,隨著諸如優先排序和調度數據單元、分配有限的CPE物理資源(例如存儲器和處理周期)等功能涌現出來,數據的分類變得重要。此外,在邏輯的和物理的端口實際上是雙向的地方,即具有出口能力,又具有入口能力,調度和分配對網絡的正確運行變得至關重要。
因而,所需要的就是具有數據分類器的網絡設備,所述數據分類器能夠廉價地和有效地被用于在多個入/出端口之間和在變化的傳輸媒介和傳輸格式之間管理、排隊、處理、調度和路由數據單元。
發明內容
本發明公開了用于網絡設備中數據單元的分類的系統和方法,所述網絡設備起橋接異構網絡的作用,提供很多不同的服務,以及提供很多不同的傳輸機制。數據分類器,所述數據分類器是本發明的各種實施例的一個主體,產生在內部由網絡設備在管理、排隊、處理、調度、以及路由數據單元至出口時使用的ID。這個設備內的ID使得設備能夠從任何物理的/邏輯的端口或者信道接收任何類型的數據單元,并且在任何可用的物理的/邏輯的端口或者信道上輸出這些數據單元。它還使得設備能夠在其他數據單元中識別在專線服務和透明LAN服務中使用的數據單元。
依據本發明的各種實施例,數據分類器是可配置的,并且根據它所連接的物理端口而表現得不同。此外,在給定的端口內,數據分類器能夠在物理的或者邏輯的端口之中進行區別,并且,如果需要,能夠依據物理的或者邏輯的端口的特性進一步地被配置以表現得不同。
在本發明的至少一個實施例中,分類包含標簽提取和標簽查閱。標簽查閱產生流ID和優先級ID,所述流ID和優先級ID被合并起來得出設備內的隊列ID。在提供鏈路聚合的設備中,均衡組件還能夠允許均衡流ID的產生。
在結合附圖閱讀下面的本發明特定實施例的描述之后,本發明的這些和其它的方面和特征對本領域的普通技術人員將成為顯而易見的。
圖1表示了提供不同類型的數據格式和兼備不同的傳輸機制的異構網絡環境。
圖2表示了依據本發明配置在網絡設備中的數據分類器的至少一個實施例。
圖3表示了依據本發明的至少一個實施例的分類技術的流程圖。
圖4表示了依據本發明的至少一個實施例的分類器的結構圖。
圖5表示了依據本發明的至少一個實施例的標簽提取單元的結構圖。
圖6表示了依據本發明的至少一個實施例的標簽查閱引擎的結構圖。
圖7表示了本發明的一個實施例,在所述實施例中,在單個分類器設備中,從而在同一網絡硬件中,即能夠包含專線,又能夠包含專用LAN服務。
具體實施例方式
現在將參照作為本發明的示例性例子而被提供的附圖詳細地描述本發明,以便使得本領域的技術人員能夠實踐本發明。值得注意地,下面的圖和例子不意味著限制本發明的范圍。在本發明的某些元件能夠部分地或者全部地使用已知組件實現的情況下,僅這種已知組件的那些為本發明的理解所必須的部分將被描述,并且這種已知組件的其它部分的詳細地描述將被省略以便不會使得本發明難以理解。此外,本發明包括作為例子而在這里被引用的已知組件的當前的和未來的已知等價物。附加的附錄構成了本說明書的一部分,并且在這里被引作參考。
圖2表示了依據本發明配置在網絡設備中的數據分類器的至少一個實施例。網絡設備200被顯示為具有多個能夠連接到各式各樣的和/或者不同的傳送機制的物理端口205、206、207和209。每個端口205、206、207和209也可以支持一個或者多個邏輯的端口或者信道。在這個實施例中,端口205連接到諸如10/100網絡的典型的以太網服務;端口206連接到較高容量的GigE或者吉比特以太網服務;端口207連接到諸如T1或者T3的PDH類型的服務;而端口209可以是連接到諸如SONET的電信級服務的具有SDH能力的端口。這個配置是用來顯示很多可能的被支持的網絡接口和配置之一,并且僅用來舉例說明支持多種網絡、傳輸/傳送方案和相關協議的復雜網絡接口設備200。
如在圖2中所示,依據本發明的分類器210產生隊列ID220,所述隊列ID是在設備200內部的。隊列ID220由內部的流ID和優先級ID(在下面被進一步論述)組成。隊列ID220被設備200用以決定在任何給定的進入分組被調度(也在下面被進一步論述)之前,在哪個隊列上存儲它。分類器210包括一組標簽提取器218、標簽存儲器214和標簽查閱216。
例如,分類器210能夠被連接到在設備200上的可用端口(例如,端口205、206、207和209)以接收在這些端口上進入的每個分組的第一部分。每個標簽提取器218接口可以與端口205、206、207和209之一聯系在一起,并且能夠檢查每個分組的第一部分以了解正確的分組類型(也就是與那個端口的配置兼容的類型)是否被接收。標簽提取器218(在下面被進一步論述)使用分組的這個第一部分(例如,在一些實施例中,第一個32或者64字節)創建一組標簽。此外,產生的標簽包括關于客戶和外部流/服務(也就是透明LAN)的信息、媒體接入控制(MAC)的源和目的、和鏈路聚合會話信息。然后,產生的標簽能夠被存儲在標簽存儲器214中。
一旦分組的標簽被完成了,標簽查閱引擎216將從標簽存儲器214順次地讀出標簽并且執行查閱。該查閱同時返回流ID和優先級ID(如果鏈路聚合被使用了,還有均衡流ID),然后它們被合并起來組成隊列ID220。諸如引擎216的標簽查閱引擎的一個實施例在下面被詳細地論述。
圖3表示了依據本發明的至少一個實施例的分類技術的流程圖。如在圖3中所示,進入設備的很多端口之一的分組被接收310。接收到的分組的分組類型被檢查312。如果檢查到的分組類型與該分組被為之配置的或者該分組被指向的端口類型不匹配312,那么標簽錯誤被產生315,并且由于接收到的分組是錯誤的,處理停止317。如果分組在其上被接收的端口的分組類型與該端口類型匹配,那么標簽被提取320。如果標簽提取器在提取期間發現標簽有錯誤,缺省的標簽值可以被指定(如下面所更加詳細地描述的)。
當標簽被提取320之后,依據這個實施例,標簽能夠被寫入存儲器以便稍后它們能夠被訪問330。然后,使用標簽的查閱被執行,所述查閱首先包括流標簽查閱和MAC目的地址和MAC源地址標簽查閱340。基于這些標簽,輸出流ID被協調350。如果有鏈路聚合360,那么均衡流ID也被產生365。接下來,當獲得流ID和/或均衡流ID之后,優先級ID標簽的查閱被執行370。然后,流ID,或者,如果產生了,均衡流ID,與優先級ID被合并在一起380。然后,合并的結果,隊列ID,從分類器被輸出390。然后,為隨后接收到的進入分組重復該過程。執行在圖3中概述的過程的細節會在下面被非常詳細地論述。
圖4表示依據本發明的至少一個實施例的分類器的結構圖。如在圖4中所示,分類器400由標簽提取單元(Tag Extraction Unit)420、標簽查閱(Tag Lookup)430和配置表(Configuration Table)410組成。標簽提取單元420由多個標簽提取器的實例組成,為該設備中的每個端口各配置了一個(參見圖5和相關的描述)。標簽查閱430由一系列在由標簽提取單元420產生的已提取的標簽上被執行的查閱操作組成。標簽提取單元420(和它的相關的提取器)在連接到分類器400的每個可用端口上進行不同操作。標簽提取機制的這個每端口配置能力(per-port configurability)由配置表410處理。每個端口在配置表410中都有一個條目,所述配置表410指定了標簽應該怎樣為了在那個端口上的分組而被(標簽提取單元420)提取。配置表410將包括信息,諸如奇偶校驗位選擇、標簽和字段的起始和結束位置、以及當需要時還包括標簽和字段的長度。
圖5表示了依據本發明的至少一個實施例的標簽提取單元的結構圖。如在圖5中所示,標簽提取單元500可以由許多分組標簽提取器510組成,例如GE(GigE)分組提取器512、ME(以太網)分組提取器514、SDH(SONET)分組提取器516和PDH分組提取器518。然而,可以包括更少的或者額外的分組提取器。標簽提取單元500也可以由標簽提取配置塊410、提取存儲器214和提取屏蔽塊540組成。
在這個典型的實施例中,每個標簽提取器510可以由許多的獨立的提取組件組成,例如管理標記提取、錯誤標記提取、類型標簽提取、流標簽提取、MAC標簽提取、優先級標簽提取、均衡器標簽提取,每個都在下面被更加詳細地論述。
管理標記提取管理標記能夠被用來將管理分組和其它的分組區別開,并且能夠是再簡單不過的單個比特。從所有類型的端口接收到的分組可以,例如,附帶有提取管理指示符(EMI)。當EMI在分類的起始(SOC)被聲明時,以及當EMI被用于那個邏輯端口的提取配置使能時,接收到的分組可以被標示為管理分組。
錯誤標記提取錯誤標記可以被用來表示錯誤的分組。例如,3比特的錯誤標記能夠被用來標明接收到的分組被不正確地提取了,其中,例如如果類型標簽或者流標簽提取配置有錯誤,或者如果分類的結束(EOC)在分組類型標簽或者流標簽提取被完成之前發生,錯誤標記的比特2(流錯誤)可以被置位;如果MAC標簽提取配置有錯誤,或者如果EOC在分組MAC標簽提取被完成之前發生,錯誤標記的比特1(MAC錯誤)可以被置位;以及如果均衡器標簽提取配置有錯誤,如果均衡器標簽被配置為零長度,或者如果EOC在分組均衡器標簽提取完成之前發生,錯誤標記的比特0(均衡器錯誤)可以被置位。
類型標簽提取類型標簽提取能夠獲得被用來檢驗到達的分組與任何給定的邏輯端口是否是相同類型的信息。流、MAC、優先級和均衡器標簽提取為到達同一邏輯端口的每個分組使用同一標簽提取配置。如果不同類型的分組到達邏輯端口,該分組將被不正確地提取和錯誤地分類。
該提取能夠,例如,通過獲得包含,例如,屬于分組的第一個64字節的0-16個連續比特的字節而被完成。第一比特的位置和標簽長度可根據邏輯端口配置(通過標簽配置410)。這些被提取的比特的值應該與為那個端口預配置的值匹配。如果不匹配,分組類型可能不是有效的,并且該分組可被標明為錯誤分組。如果接收到的分組的邏輯端口被配置成提取長度大于16比特的類型標簽,或者如果起始比特加上長度超出了第一個64字節,為接收到的分組標記配置錯誤。該提取能夠簡單地被應用于分組的字節長度,并且具有變化的提取比特長度,這對本領域的技術人員應該是顯而易見的。如果存在對于那個邏輯端口的類型標簽提取配置錯誤,或者如果EOC在提取被完成之前發生了,可以為接收到的分組標記提取錯誤。
流標簽提取流標簽獲得被用來識別客戶流的信息。該提取,例如,通過從分組的第一個64字節獲得2個直至64的連續比特的不重疊字段而被完成。第一比特的位置和兩個字段的長度都是可根據邏輯端口配置的(通過標簽提取配置410)。從其接收分組的10比特的邏輯端口ID(LPID),能夠被添加在這兩個字段前面以構成流標簽。
MAC標簽提取MAC標簽獲得被用于MAC目的查閱和源學習(source learning)的信息。該提取,例如,通過從分組的開頭的64字節獲得12個連續字節而被完成。首字節的位置是可根據邏輯端口配置的。第一個6字節是MAC目的地址,最后的6字節是MAC源地址。如果接收到的分組的邏輯端口被配置成利用加上12超出了開頭的64個字節的起始字節提取MAC標簽,可以為接收到的分組標記配置錯誤。如果存在對于那個邏輯端口的MAC標簽提取配置錯誤,或者如果EOC在該提取被完成之前發生了,可以為接收到的分組標記MAC錯誤。
優先級標簽提取優先級標簽提取獲得被用來確定接收到的分組的優先級的信息。該提取能夠,例如,通過從分組的開頭的64個字節獲得3個連續的比特而被完成。首比特的位置是可根據邏輯端口配置的。如果起始比特加上3超出了第一個64字節,或者如果EOC在該提取被完成之前發生了,優先級標簽將缺省為全零。
均衡器標簽提取均衡器標簽提取獲得被用來確定鏈路聚合的客戶流的信息。該提取,例如,通過從分組的開頭64個字節獲得直至15個連續字節的5比特CRC(循環冗余校驗)而實現。首字節的位置和標簽的長度是可根據邏輯端口配置的。CRC函數可以是,例如,多項式函數,x5+x2+1,初始值為全1。雖然這個典型的多項式通常被用于USB令牌環,其它的函數也能夠被使用。如果接收到的分組的邏輯端口被配置成具有加上長度超出了第一個64字節的起始字節,可以為接收到的分組標記配置錯誤。如果存在對于那個邏輯端口的均衡器標簽提取配置錯誤,或者如果長度為零,或者如果EOC在該提取被完成之前發生了,可以為接收到的分組標記均衡器錯誤。如果均衡器錯誤被標記了,均衡器標簽將缺省為全1,即初始值。
標簽提取配置塊410可以包括確定在分組中的哪里獲得用于構造對于端口有效的標簽的信息所必需的信息,所述分組通過所述端口被接收,并且所述分組可外出至所述端口。系統中的每個端口可以具有不同的分組流,因而,用于起源于那個端口的分組的標簽應該被不同地構造。
存儲器214能夠,例如,在提取器構造標簽時存儲所得到的標簽,并且在EOC存儲部分提取配置。當標簽查閱請求被接收時,存儲器530能夠檢索來自標簽提取配置410的提取配置,以及標簽。存儲器530可以在邏輯上被組織成369個邏輯的FIFO(如果,例如,在系統中有總共369個端口)。每個FIFO可以為每個邏輯端口保存很多標簽(例如,每個端口4個標簽)。由標簽提取器510創建的新標簽能夠被寫入對應于每個標簽的邏輯端口的FIFO尾部。要被查閱的標簽可以從FIFO的頭部被讀出。
標簽提取屏蔽540可以是,例如,當標簽準備從標簽提取單元500(或者,例如,標簽提取單元420)被傳送至標簽查閱(例如,標簽查閱引擎430)時,從存儲在存儲器530中的標簽中去除不必要的信息的機制。
圖6表示了依據本發明的至少一個實施例的標簽查閱引擎的結構圖。一旦標簽被存儲在標簽存儲器之后,在分類器中的標簽查閱引擎600能夠取該標簽(例如,使用適當的標簽提取屏蔽540),并且使用存儲在標簽中的5個字段(例如,輸入流ID、輸出流ID、客戶ID、MAC DA和MAC SA)中的一個或者多個執行搜尋。當完整的搜尋被完成時,標簽查閱引擎600能夠輸出該分組的流ID674、以及優先級ID672。當鏈路聚合被使用時,查閱引擎還能夠輸出均衡流ID676。該均衡流ID能夠被用以,例如,執行多個物理端口上單個以太網邏輯端口的負載均衡。然后,隊列ID678,所述隊列ID是分類器的輸出,通過合并流ID674(或者均衡ID676)和優先級ID672而被產生。
依據這個典型的實施例,流標簽查閱引擎610能夠使用二元搜尋樹而被實現。在該樹中的值能夠由軟件計算出來,并且被下載進入集成了分類器的設備中。這些值能夠由軟件或者固件動態地改變。也能夠出現陰影數值集(a shadow set of values),并且能夠無中斷地(hitlessly)進行切換。二元搜尋樹能夠以任何數量的方法被實現,其中的許多在本領域內是眾所周知的。
如在圖6中所示,標簽查閱引擎600左上角的塊是流標簽查閱610。流標簽查閱610包括發現給定分組(或者那個分組的標簽)的輸入流ID、輸出流ID和客戶ID的任務。它能夠通過使用事先提取出的流標簽并發現對應的值完成這個任務。這個對應能夠基于準確的匹配或者一組范圍。
流標簽查閱610的輸出包括客戶ID、輸出流ID和輸入流ID。客戶ID可以是,例如,識別一組客戶(例如,265個客戶)中的哪一個擁有該分組(例如,客戶ID能夠與載波虛擬LAN標簽相同)的值。輸出流ID能夠表示要被用于在內部將分組路由至正確的出端口的內部流。輸入流ID在功能上等同于輸出流ID,但用于在相反方向上的傳輸(也就是,要被用于將返回分組路由回到輸入的內部流/路徑)。為了進行學習,需要輸入流ID(在下面進一步論述)。
在很多情況下,流標簽查閱610可能不足以將分組精確地路由至正確的目的端口。例如,來自流標簽查閱610的輸出流ID可能簡單地提供信息以廣播分組至屬于同一客戶的所有遠程主機(例如,組播)。在這種情況下,需要使用MAC地址的更精確的目的查閱。
MAC目的地址(DA)查閱620使用客戶ID(來自流標簽查閱610)、以及MAC DA標簽,以發現更精確的輸出流ID。只有MAC地址已經由設備事先學習或者編程了(以下更多的是學習),MAC DA查閱620的輸出才是有效的(也就是,在來自流標簽查閱610的輸出流ID中有效)。MAC DA查閱620使用具有適當數量的條目(例如,256個條目,等)的散列表625存儲學習到的MAC地址(與它們的對應客戶ID信息一起)。散列沖突通過使用N條目深的列表而得以解決。散列表625的輸出是被用以在內部將分組路由至合適的,或更好的輸出端口的輸出流ID。
如果MAC DA查閱620返回了有效值,它成為分組的流ID。另一方面,如果它返回了空值(例如,如果MAC地址仍然沒有被學習或被編程),來自流標簽查閱的缺省輸出流ID將被使用。這個邏輯由選擇器裝置640控制,所述選擇器裝置使用表示MAC地址查閱成功還是有效(也就是,如果MAC地址已經事先被學習或被編程,例如,查閱將是成功的,否則就不成功)的信號。
MAC源地址(SA)學習630能夠被用以將給定的MAC地址和客戶ID與得到的輸出流ID聯系起來。只要新分組到達,分組的MAC源地址標簽就能夠被用于學習。在這個情況下,源MAC地址和客戶ID(例如,由流標簽查閱引擎610提供)將與輸入流ID(例如,也由流標簽查閱引擎610提供)聯系起來。值能夠被寫入在散列表625中的一個條目中。在可編程的時間間隔之后,事先學習到的條目將變舊,并且將不再被MAC DA查閱引擎620使用。老化時間間隔可以是,例如,16個時鐘周期。
與今天的典型的專用LAN的學習方案不同,所述方案在每端口(per-port)基礎上執行空閑狀態的學習,本發明的MAC SA學習630是每流(per-flow)學習方案。依據典型的實施例,每個學習到的客戶/MAC組合能夠與流聯系在一起,而不是今天典型的端口。因而,一旦客戶/MAC查閱通過MAC SA學習630而被執行了,更多的信息是可用的,而不僅僅是分組被指向的出端口。例如,輸入流ID、輸出流ID、MAC SA/DA、客戶ID等對網絡都是可用的,這等同于在數據處理中更詳細的粒度。這個詳細的粒度允許本發明的網絡設備提供有意義的服務質量(QoS)管理。這與今天的技術形成對照,今天的技術在這種網絡設備上沒有考慮到QoS管理。
只要鏈路聚合被使用了,一組物理端口被編程以充當單一的邏輯端口。在這種情況下,額外的均衡器標簽查閱650被用以分布分組通過構成那一個邏輯接口的不同物理接口。均衡器標簽查閱650應該確定屬于單一會話的任何兩個分組在同一物理接口上被發送。這有助于確保屬于同一會話的所有分組將被依次傳遞。另一方面,均衡器標簽查閱650也應該將來自不同會話的業務有效地負載均衡(load-balance)通過那一個邏輯接口的所有可應用的物理接口,以最大化帶寬需求。
均衡器標簽查閱650使用函數來獲取會話標簽的散列值。然后,該散列值被用以索引表示由分組使用的物理接口的表格。由均衡器標簽查閱650獲得的新的流ID被稱為均衡流ID676。由于兩個相等的會話標簽產生相同的散列值,所以保證來自同一會話的所有分組具有同一均衡流ID676,因而使用同一物理端口。
流ID674(也就是來自流標簽查閱610或MAC DA查閱620)能夠被用作為至優先級標簽查閱660的輸入,以發現優先級ID672。例如,在優先級標簽查閱660內,k比特的流ID674可以與n比特的優先級標簽組合起來構成(k+n)比特的數據項。優先級標簽查閱660可以,例如,由具有2*(k+n+1)個條目的大表格組成,其中每個條目可以具有,例如,2比特的數值。然后,被查閱的2比特的數值可以成為進入的分組的內部優先級ID672。
對于無錯誤和無管理的分組,流ID674/676(流標簽查閱610或MAC DA查閱620塊的輸出,有時被均衡器標簽查閱650修改)和優先級ID672(優先級標簽查閱660的輸出)被連結起來。例如,來自流ID674/676的比特是最高位,而優先級ID672構成最低位。這個合并的值可以是分組隊列ID678。它能確定,感興趣的分組將被寫入外部分組隊列的哪一個。這是分類器輸出。
如果給定的流標簽已經被標明為錯誤,則不管該標簽的內容是什么,該查閱的輸出也將是錯誤指示。如果該標簽被標明有錯誤,查閱引擎的輸出將使能錯誤比特。這使生成的任何隊列ID678值無效,并且表示對應的分組應該被丟棄。
如要求的那樣,上面描述的系統和方法能夠同時被應用于專線服務和專用LAN服務。在同時支持這些服務的系統中,明了在分組正被轉發通過的設備內的內部流能夠幫助確保分組被放置在出端口上,以便它維護其到特定的專用LAN的從屬關系,或者沿著由專線指定的路徑而被路由。圖7表示本發明的實施例,在所述實施例中,專線和專用LAN服務都能夠被包容在單個分類器設備中,因而在同一網絡硬件中。這還有包容諸如VLAN或MPLS(多協議標記服務)的不同類型的專用LAN機制的好處。
分類器700,所述分類器類似于在本發明的其他實施例中提及的分類器,能夠被分解為兩個功能組件。由于分組的標簽是在分類器700中被提取的,所以不知道分組是屬于專線服務的,還是屬于專用LAN服務。分類器700的第一功能分支(prong)是搜尋功能710(所述功能,例如,在上面論述的流標簽查閱610中被使用)。搜尋功能710利用查閱能力以確定分組是屬于專線服務,還是屬于專用LAN服務。搜尋功能719返回缺省路由,如果分組是專線分組,所述缺省路由是分組將采用的實際路由。如果搜尋功能710確定了分組屬于專用LAN服務,那么客戶ID和MAC目的地址標簽能夠被輸入散列表725(例如,以類似于上面論述的620、625和630的方式),所述散列表為專用LAN服務數據產生不同的流ID。然后,來自搜尋719的流ID和來自散列表725的流ID被輸入選擇裝置740(例如,諸如選擇器640),所述選擇裝置決定這些流ID中的哪一個是適當的路由,從而也是適當的流ID。適當的路由可能是最好的或最有效的路由和/或滿足專用LAN特性和/或需求的路由。這種方案能夠在顯示在圖6中的硬件中被實現,例如,由于搜尋表和散列表都能被使用。
盡管本發明已經參照其優選實施例而被特別的描述了,在不偏離本發明的精神和范圍的情況下,可以在形式及其細節上做出變化和修改,這對本領域的普通技術人員應該是顯而易見的。例如,本領域的技術人員將理解,可以改變在上面的結構圖中表示的組件的數量和排列。意圖是附加的權利要求書包括了這種變化和修改。
權利要求
1.一種在部署在網絡設備中的數據分類器中對數據進行分類的方法,所述網絡設備包括多個被連接到異構通信網絡的端口,所述方法包含以下步驟在所述網絡設備的多個端口的其中一個端口接收數據分組,所述數據分組包括第一部分;在所述數據分類器中接收所述數據分組的第一部分;從所述第一部中分提取多個標簽和邏輯端口標識符(ID);確定代表與所述數據分組相關的異構通信網絡上的網絡設備的流ID;確定優先級ID;組合所述流ID和所述優先級ID以創建隊列ID。
2.根據權利要求1所述的方法,其中所述接收數據分組的步驟包括檢查所述數據分組的分組類型是否與所述多個端口中接收端口的端口類型相匹配。
3.根據權利要求2所述的方法,其中所述檢查步驟還包括如果所述分組類型與所述端口類型不匹配,產生類型錯誤標簽。
4.根據權利要求1所述的方法,其中所述提取多個標簽的步驟包括將所述標簽存儲在標簽存儲器內。
5.根據權利要求4所述的方法,其中所述確定流ID的步驟包括首先從所述標簽存儲器中讀取一個或多個所述標簽。
6.根據權利要求1所述的方法,其中所述多個標簽包括流標簽、媒體接入控制目的地址標簽、媒體接入控制源地址標簽、優先級標簽和均衡器標簽中的一個或多個。
7.根據權利要求6所述的方法,其中所述流標簽被用以導出輸入流ID、輸出流ID和客戶ID中的一個或多個。
8.根據權利要求1所述的方法,其中所述網絡服務包括一個或多個專線服務或專用局域網服務。
9.根據權利要求1所述的方法,其中所述確定流ID的步驟使用所述多個標簽和所述邏輯端口ID中的一個或多個
10.根據權利要求9所述的方法,其中所述多個標簽包括流標簽、媒體接入控制目的地址標簽和媒體接入控制源地址標簽中的一個或多個。
11.根據權利要求10所述的方法,其中所述流標簽被用以導出輸入流ID、輸出流ID和客戶ID中的一個或多個。
12.根據權利要求6所述的方法,其中所述確定流ID的步驟還包括流標簽查閱過程;媒體接入控制目的地址查閱過程;媒體接入控制源地址學習過程;以及輸出流ID選擇過程。
13.根據權利要求12所述的方法,其中所述流標簽查閱過程接收作為輸入的所述流標簽和所述邏輯端口ID;并且提供作為輸出的到所述輸出流ID選擇過程的第一輸出流ID;同時到所述媒體接入控制目的地址查閱過程和所述媒體接入控制源地址學習過程的客戶ID;以及到所述媒體接入控制源地址學習過程的輸入流ID。
14.根據權利要求13所述的方法,其中所述媒體接入控制目的地址查閱過程接收作為輸入的所述客戶ID和所述媒體接入控制目的地址標簽;訪問散列表;并向所述輸出流ID選擇過程提供作為輸出的第二輸出流ID和輸出流ID選擇器。
15.根據權利要求14所述的方法,其中所述媒體接入控制源地址學習過程接收作為輸入的所述客戶ID、所述輸入流ID和所述媒體接入控制源地址標簽;訪問所述散列表;并且向所述散列表提供作為輸出的所學習的流參數。
16.根據權利要求15所述的方法,其中所述輸出流ID選擇過程接收作為輸入的所述第一輸出流ID、所述第二輸出流ID和所述輸出流ID選擇器;并且提供作為輸出的流ID。
17.根據權利要求1所述的方法,其中所述確定流ID的步驟還包括產生均衡流ID;并且為了創建隊列ID,將所述均衡流ID用作流ID。
18.根據權利要求17所述的方法,其中所述產生均衡流ID的步驟使用所述多個標簽中的一個或多個標簽。
19.根據權利要求18所述的方法,其中所述多個標簽包括均衡器標簽。
20.根據權利要求1所述的方法,其中所述確定優先級ID的步驟使用所述多個標簽中的一個或多個標簽。
21.根據權利要求20所述的方法,其中所述多個標簽包括優先級標簽。
22.一種部署在網絡設備中的數據分類器,所述網絡設備包括連接到異構通信網絡的多個端口,所述數據分類器包含用于從數據分組的第一部分提取多個標簽和邏輯端口標識符(ID)的標簽提取單元,所述數據分組已經在所述網絡設備的多個端口的其中一個端口中被接收;和連接到所述標簽提取單元的標簽查閱引擎,所述標簽查閱引擎用于根據所述多個標簽和所述邏輯端口ID中的一個或多個確定流ID,所述流ID表示與所述數據分組相關的異構通信網絡上的網絡設備;以及確定優先級ID;和連接到所述標簽查閱引擎,并且用于合并所述流ID和所述優先級ID以創建隊列ID的隊列ID產生器。
23.根據權利要求22所述的設備,其中所述標簽提取單元包括用于確定數據分組的分組類型是否與所述多個端口中接收端口的端口類型相匹配的標簽檢查器。
24.根據權利要求23所述的設備,其中如果所述分組類型與所述端口類型不匹配,標簽檢查器還產生類型錯誤標簽。
25.根據權利要求22所述的設備,其中所述標簽檢查器包括用于存儲所述多個標簽的標簽存儲器。
26.根據權利要求25所述的設備,其中所述標簽查閱引擎還訪問所述標簽存儲器中的多個標簽中的一個或多個標簽。
27.根據權利要求22所述的設備,其中所述多個標簽包括流標簽、媒體接入控制目的地址標簽、媒體接入控制源地址標簽、優先級標簽和均衡器標簽中的一個或多個。
28.根據權利要求27所述的設備,其中所述流標簽被用以導出輸入流ID、輸出流ID和客戶ID中的一個或多個。
29.根據權利要求22所述的設備,其中所述網絡服務包括一個或多個專線服務或專用局域網服務。
30.根據權利要求27所述的設備,其中所述標簽查閱引擎包括連接到所述標簽提取單元的流標簽查閱;連接到所述標簽提取單元、所述流標簽查閱和散列表的媒體接入控制目的地址查閱;連接到所述標簽提取單元、所述流標簽查閱和所述散列表的媒體接入控制源地址學習器;連接到所述流標簽查閱、所述媒體接入控制目的查閱和所述隊列ID選擇器的輸出流ID選擇器。
31.根據權利要求30所述的設備,其中所述流標簽查閱能夠接收作為輸入的所述流標簽和所述邏輯端口ID;并且提供作為輸出的到所述輸出流ID選擇器的第一輸出流ID;同時到所述媒體接入控制目的地址查閱和所述媒體接入控制源地址學習器的客戶ID;和到所述媒體接入控制源地址學習器的輸入流ID。
32.根據權利要求31所述的設備,其中所述媒體接入控制目的地址查閱能夠接收作為輸入的所述客戶ID和所述媒體接入控制目的地址標簽;訪問所述散列表;并且向所述輸出流ID選擇器提供作為輸出的第二輸出流ID和輸出流ID選擇器。
33.根據權利要求32所述的設備,其中所述媒體接入控制源地址學習器用于接收作為輸入的所述客戶ID、所述輸入流ID和所述媒體接入控制源地址標簽;訪問所述散列表;并且向所述散列表提供作為輸出的學習到的流參數。
34.根據權利要求33所述的設備,其中所述輸出流ID選擇器用于接收作為輸入的所述第一輸出流ID、所述第二輸出流ID和所述輸出流ID選擇器;并且向所述隊列ID產生器提供作為輸出的流ID。
35.根據權利要求34所述的設備,其中所述標簽查閱引擎還包括連接到所述標簽提取單元、所述輸出流ID選擇器和所述隊列ID產生器的優先級標簽查閱。
36.根據權利要求35所述的設備,其中所述優先級標簽查閱能夠接收作為輸入的所述優先級標簽和流ID;并且向所述隊列ID產生器提供作為輸出的優先級ID。
37.根據權利要求36所述的設備,其中所述標簽查閱引擎還包括連接到所述標簽提取單元、所述輸出流ID選擇器和所述隊列ID產生器的均衡器標簽查閱。
38.根據權利要求37所述的設備,其中所述均衡器標簽查閱用于接收作為輸入的所述均衡器標簽和所述流ID;并且向所述隊列ID產生器提供作為輸出的均衡流ID。
39.根據權利要求38所述的設備,其中所述隊列ID產生器還組合所述均衡流ID和所述優先級ID以創建隊列ID。
40.根據權利要求39所述的設備,其中所述數據分類器被制作在單一模片上。
41.根據權利要求40所述的設備,其中所述數據分類器被制作在所述單一模片上的單一功能塊上。
42.根據權利要求22所述的設備,其中所述數據分類器被制作在單一模片上。
43.根據權利要求42所述的設備,其中所述數據分類器被制作在所述單一模片上的單一功能塊上。
44.一種在部署在網絡設備上的數據分類器中對數據進行分類的方法,所述網絡設備包括連接到異構通信網絡的多個端口,所述方法包含以下步驟在所述網絡設備的多個端口的其中一個端口上接收數據分組,所述數據分組包括第一部分;在所述數據分類器上接收所述數據分組的第一部分;從所述第一部分中提取多個標簽和邏輯端口標識符(ID),所述多個標簽包括流標簽、媒體接入控制目的地址標簽、媒體接入控制源地址標簽、優先級標簽和均衡器標簽中的一個或多個。確定代表與所述數據分組相關的異構通信網絡上的網絡設備的流ID,所述步驟包括流標簽查閱過程;媒體接入控制目的地址查閱過程;媒體接入控制源地址學習過程;以及輸出流ID選擇過程。確定優先級ID;組合所述流ID和所述優先級ID以創建隊列ID。
45.一種部署在網絡設備中、并且被制作在單一模片上的數據分類器,所述網絡設備包括連接到異構通信網絡的多個端口,所述數據分類器包含用于從數據分組的第一部分中提取多個標簽和邏輯端口標識符(ID)的標簽提取單元,所述數據分組已經在所述網絡設備的多個端口的一個端口上被接收,其中所述多個標簽包括流標簽、媒體接入控制目的地址標簽、媒體接入控制源地址標簽、優先級標簽和均衡器標簽;和連接到所述標簽提取單元的標簽查閱引擎,所述標簽查閱引擎包括連接到所述標簽提取單元的多個標簽查閱和一個或多個流ID選擇器;并且其中所述標簽查閱引擎用于根據所述多個標簽和所述邏輯端口ID中的一個或多個確定流ID,所述流ID表示與所述數據分組相關的異構通信網絡上的網絡服務;并且確定優先級ID;和連接到所述標簽查閱引擎,并且用于所述流ID和所述優先級ID以創建隊列ID的隊列ID產生器。
全文摘要
一種用于在異構網絡中充當橋接的網絡設備中數據單元分類的系統和方法,所述系統和方法提供了很多不同的服務,并且提供了很多不同的傳送機制。所述數據分類器產生在內部由網絡設備用以管理、排隊、處理、調度數據單元和將數據單元路由至出口的ID。這個內部ID允許該設備從任何物理的/邏輯的端口或信道接收任何類型的數據單元,以及在任何可用的物理的/邏輯的端口或信道上輸出這些數據單元。該設備利用基于每個流的學習,并且能夠允許該設備識別和處理在專線服務和專用LAN服務中使用的數據單元。
文檔編號G06FGK1759574SQ200480006509
公開日2006年4月12日 申請日期2004年1月27日 優先權日2003年1月27日
發明者保洛·納維茲 申請人:Raza微電子公司