專利名稱:鏈路聚合的制作方法
背景技術:
網絡交換機從多個與交換機連接的入口端口接收數據分組,并且向與交換機連接的多個出口端口提供數據分組。交換機按照包括在數據分組中的目的地址決定數據分組被提供給的出口端口。
一般地,目的地通過一個物理鏈路與交換機中的一個出口端口連接。在目的地的入口端口接收的數據分組經過交換機轉發給出口端口。所述目的地可以是計算機、另一個交換機或者路由器。
為了增加目的地的帶寬;即,一定數量的數據分組經過交換機轉發到目的地,所述的目的地可以通過多個物理鏈路與超過一個的出口端口連接,其中每個物理鏈路都終止于出口端口。所述多個物理鏈路是交換機與目的地之間邏輯鏈路的成員。
向目的地提供多個物理鏈路稱為鏈路聚合或中繼(trunking)。IEEE802.3ad組在http//grouper.ieee.org/groups/802/3/trunk-study/tutorial公開的指南中對IEEE 802.3的鏈路聚合進行了說明。
到達交換機入口端口的數據分組可以通過交換機按照邏輯鏈路中的任何一個物理鏈路轉發到目的地。因此,由于在物理鏈路中分配目的地的數據分組的緣故,鏈路帶寬增加。為了獲得邏輯鏈路的最大帶寬利用率,去向目的地的數據分組必須在物理鏈路中均勻地分配給目的地。
但是,當在物理鏈路中分配接收的數據分組時,數據流中的數據分組不能通過交換機來變為無序。
數據流在存儲于接收數據的報頭中的目的地址和源地址中編碼。源地址和目的地址可以是Ethernet(以太網)源地址和目的地址、IP源地址和目的地址、UDP源端口地址和目的端口地址或者TCP源端口地址和目的端口地址。
所述交換機包括在交換機中選擇與所述物理鏈路相應的端口的向量合成邏輯。按照邏輯端口轉發向量和集合端口項的組合來選擇所述端口。
圖1A示出了根據本發明的原理,連接目的地與交換機的邏輯鏈路;圖1B示出了如圖1A所述的交換機,其包括用來按照連接目的地和交換機的邏輯鏈路中多個鏈路之一來轉發在入口端口接收的數據分組的轉發邏輯;圖2A示出了可以在與交換機相連的入口端口接收的已有技術數據分組;圖2B示出了可以包括在如圖2A所示的數據分組中的已有技術Ethernet數據鏈路層(L2)報頭;圖2C示出了可以包括在如圖2A所示的數據分組中的已有技術網際協議(網絡層(L3))報頭;圖3示出了如圖1B所示的轉發邏輯;圖4是如圖3所示的流散列邏輯中執行功能的流程圖;圖5示出了如圖3所示的中繼端口選擇器表;圖6示出了如圖5所示的中繼端口選擇器項之一,組成員表向量項和邏輯端口轉發向量項的組合;
圖7是使用中繼組成員向量的內容更新存儲在轉發數據庫304中的邏輯端口轉發向量的步驟流程圖。
圖1A示出了根據本發明的原理,連接目的地112c和交換機100的邏輯鏈路134。邏輯鏈路或者中繼組134包括物理鏈路132c-e。目的地112c通過物理鏈路132c-e與交換機相連。目的地112c的接收數據分組從三個物理鏈路132c-e中之一轉發到目的地112c。所述交換機100包括與邏輯鏈路134中每個物理鏈路132c-e相對應的入口端口隊列130a-c。交換機將從信源102a接收的數據分組轉發到出口端口隊列130a-c。
存儲接收數據分組的出口端口隊列130a-c在轉發到相應的物理鏈路132c-e之前取決于數據流,即;包括在數據分組中的源地址和目的地址。通過按照源地址和目的地址來選擇物理鏈路,相同數據流的數據分組總按照相同的鏈路來轉發,并且因此在交換機中不會變得無序。
例如,交換機從信源102a接收要轉發到目的地112c的數據分組140a-c。每個數據分組140a-c包括信源102a的源地址和目的地112c的目的地址。交換機根據存儲在數據分組132c-e中的源地址和目的地址來確定數據流。隨著每個數據分組140a-c被接收并存儲在交換機中,按照在出口端口隊列130a中接收的順序將數據分組的地址存儲在存儲器中。每個數據分組140a-c由物理鏈路132c轉發到目的地112c。因此,從信源102a到目的地112c的數據流中的數據分組140a-c按照交換機100接收的順序傳輸到目的地址112。
圖1B示出了如圖1A所示的交換機100,其包括用來按照連接目的地和交換機的邏輯鏈路中多個鏈路132c-e之一來轉發在入口端口接收的數據分組的轉發邏輯128。所述交換機100包括入口端口引擎104,分組存儲管理器106,段緩沖存儲器108和出口端口引擎110。物理鏈路132c-e是連接目的地112c和交換機100的邏輯鏈路134的成員。物理鏈路132f-g是連接目的地112d和交換機100的邏輯鏈路140的成員。單一物理鏈路132a連接目的地112a和交換機100,而單一物理鏈路132b連接目的地112b和交換機100。因此,如果所有的物理鏈路的速度相同,邏輯鏈路140向目的地112b提供的帶寬是單一物理鏈路132a向目的地112a提供的帶寬的二倍,而邏輯鏈路134向目的地112b提供的帶寬是單一物理鏈路132b向目的地112b提供的帶寬的三倍。
交換機100可以包括去向目的地112的單一物理鏈路和邏輯鏈路的任何組合。邏輯鏈路可以包括任何數目的物理鏈路。邏輯鏈路中的物理鏈路可以將不連續的端口與目的地112相連,例如,邏輯鏈路134將不連續的出口端口(出口端口2136c,出口端口3136d,和出口端口5136f)與目的地112c相連。另一種選擇是,邏輯鏈路140可以將連續的出口端口(出口端口6136g,出口端口7136h)與目的地112d相連。
因此,所有的出口端口136a-h都可以成為同一邏輯鏈路的成員,每個出口端口136a-h可以是單一的物理鏈路,或者出口端口136a-h可以按照目的地112a-d的邏輯鏈路和單一物理鏈路的組合來配置。
邏輯鏈路的成員并不局限于相同速度的物理鏈路132a-h。例如,1G比特Ethernet出口端口可以成為作為100M比特Ethernet出口端口的相同邏輯鏈路的成員。
在入口端口138a-c從信源102a-c接收的數據分組按照入口端口引擎104中的轉發邏輯128產生的轉發向量114轉發到一個或者多個出口端口136a-h。轉發向量114取決于在轉發邏輯128中實現的轉發數據庫中存儲的邏輯端口轉發向量。
分組存儲管理器106將接收的入口數據116存儲在段緩沖存儲器108的數據分組中。分組存儲管理器106還按照轉發向量114的狀態將接收的入口數據116的地址存儲在一個或者多個出口端口隊列130的段緩沖存儲器108中。對段緩沖存儲器108中數據分組的存儲的說明見美國專利申請流水號為09/386,589、標題為“用于交錯式無阻塞分組緩沖器的方法和裝置”(Method and apparatus for an Interleaved Non-BlockingPacket Buffer)的待審美國專利申請,它由David A.Brown于1999年8月31日遞交,其整個技術在此引入作為參考。
出口引擎110通過選擇信號120選擇出口隊列,從所述的隊列開始將接收的入口數據116的地址轉發到段緩沖存儲器108。存儲在段緩沖存儲器108中的入口數據116按照出口數據118轉發到出口端口136a-h。出口數據118應該轉發到哪一個出口端口136a-h取決于轉發向量114。
轉發向量114選擇出口端口隊列130,以便將地址存儲在存儲了數據分組的段緩沖存儲器108中。出口端口引擎110通過選擇信號120選擇出口端口隊列130。所述的地址122轉發到段緩沖存儲器108。所述存儲在地址122的出口數據118轉發到所述出口端口引擎110,以及按照選擇的出口端口隊列130從出口端口引擎110轉發到出口端口136a-h。
目的地112c通過物理鏈路132c-e與三個出口端口(端口2,端口3,端口5)相連。所述物理鏈路132c-e是邏輯鏈路或者中繼組134的成員。邏輯鏈路134的成員并不局限于示出的三個入口端口136c-e。邏輯鏈路134的成員可以包括交換機100中出口端口136a-h的任何組合。轉發向量114包括每個出口端口136a-h的比特,接收的數據分組經過它來轉發。目的地112c的接收數據分組可以按照三個物理鏈路132c-e之一轉發到目的地112c。轉發邏輯128選擇目的地112c的三個物理鏈路之一,以致于從一個信源到目的地的數據流的數據分組總按照相同的物理鏈路132c-e轉發到目的地112c。例如,可以選擇物理鏈路132e,用于將從信源102a接收的所有數據分組轉發到目的地112c。
圖2A示出了可以在與交換機100(圖1B)相連的入口端口136a-c(圖1B)接收的已有技術數據分組200。圖2B示出了可以包括在如圖2A所示的數據分組200中的已有技術Ethernet報頭。圖2C示出了可以包括在如圖2A所示的數據分組200中的已有技術網際協議(“IP”)報頭。
圖2A示出了已有技術的數據分組200。數據分組200包括數據凈負荷210和形成網絡層202,204,206,208的報頭。示出的是OSI模型四個層的報頭,物理層(L1)報頭202,數據鏈路層(L2)報頭204,網絡層(L3)報頭206和傳輸層(L4)報頭208。例如,數據鏈路層(L2)報頭204可以是Ethernet,而網絡層(L3)報頭206可以是IP。數據分組200也包括檢查和212。
圖2B示出了已有技術Ethernet數據鏈路(L2)報頭204的格式。Ethernet數據鏈路(L2)報頭204包括目的節點104的裝置地址(圖1B);即,L2目的地址214,和源節點102的裝置地址(圖1B);即,L2源地址216,可選擇的虛擬局域網標識(“VLAN ID”)字段218和長度/類型字段220。VLAN ID 218包括標記協議標識符(Tag Protocol Identifier-“TPI”)字段218a和標記控制信息(Tag Control Information-“TCI”)字段218b。所述VLAN ID字段218按照IEEE 802.1Q置標記和IEEE802.ID 1988(802.1p)優先權等級為VLAN交換提供支持。
圖2C示出了已有技術IP網絡層(L3)報頭206的格式。所述IP網絡層(L3)報頭206包括源節點102a-c(圖1B)網絡地址,這就是說,IP目的地址246。IP網絡層報頭206的其它字段包括版本(Version)222,HLEN224,服務類型(Type of Service-“TOS”)226,總長度228,標識230,標志232,段偏移234,存活時間(Time to live-“TTL”)236,協議地址240,報頭檢查和242,選項248和填充250。
從源節點102a-c(圖1B)接收的數據分組200(圖2A)在入口端口按照存儲在Ethernet數據鏈路(L2)報頭204(圖2A)中的目的地址(圖2B)橋接在一個或者多個出口端口136a-h(圖1B)上,或者按照存儲在IP網絡層(L3)報頭206中的IP目的地址246路由到一個或者多個出口端口136a-h(圖1B)。
圖3示出了如圖1B所示的轉發邏輯128。轉發邏輯128包括轉發數據庫304。轉發數據庫304按照搜索關鍵字316的內容選擇邏輯端口轉發向量314。對轉發數據庫的說明見美國專利申請流水號為09/409,184、標題為“用于四路散列表的方法和裝置”(Method andApparatus for Four-Way Hash Table)的待審美國專利申請,它由David A.Brown于1999年9月30日遞交,其整個技術在此引入作為參考。
邏輯端口轉發向量314包括交換機100(圖1B)中每個出口端口136a-h(1B)的出口端口比特。出口端口比特設置為“1”就能夠轉發到各自的出口端口136a-h(圖1B),而設置為“0”就不能轉發到各自的出口端口136a-h(圖1B),從而指示出數據分組應該轉發到的所有端口。因此,在目的地112c(圖1B)出口端口2的邏輯端口轉發向量314中,出口端口3和出口端口5的比特設置為“1”,以能夠將要轉發的數據分組轉發到與目的地112c(圖1B)相連的出口端口136c,136d和136f(圖1B)。
中繼端口選擇器邏輯302按照流散列邏輯300產生的流散列選擇中繼端口選擇器向量312。中繼端口選擇器312在邏輯端口轉發向量314中選擇啟用的出口端口(端口2,端口3和端口5)136c-e之一,通過它來將接收的數據分組轉發到目的地112c(圖1B)。
中繼組成員表318包括交換機100中每個入口端口138(圖2)的中繼組成員向量320。中繼組成員向量320包括交換機100中每個端口的比特。在中繼組成員向量中,比特設置為“1”表示相同中繼組中的其它端口。如果入口端口不是中繼組的成員,則入口端口的比特僅僅是中繼組成員向量中設置為“1”的比特。
在支持中繼的交換機中,主機可以在任何與存在主機的中繼相關的端口發送和接收數據分組。需要確定哪一個端口應該屬于與接收分組的相同的中繼分組。因此,入口端口用來索引中繼組成員表,以便保證消除回波,這就是說,保證即將到來的分組不會轉發到相同的端口或者特定中繼組的其它端口。例如,如果入口端口0是包括端口0,端口2,端口3的中繼端口的成員,因為它們都是相同中繼組的所有部分,所以即將到來的數據分組不會轉發到端口0,端口2,端口3。中繼組成員表318存儲這個組成員信息,并且保證不會發生這種回波。
接收數據分組的入口端口按照入口端口號322轉發到中繼組成員表318。入口端口號322是中繼組成員表318中中繼成員向量320的索引。中繼組成員向量320轉發到向量合成邏輯306。
通過修改,更新,或者在轉發數據庫304中添加邏輯端口轉發向量314,中繼組成員向量320可以用于執行硬件學習。學習端口號324與轉發數據庫中存儲的每個邏輯端口轉發向量314一起存儲。學習端口號324識別學習的源地址的入口端口。學習端口號324轉發到中繼組成員表318。中繼組成員表318確定是否源地址的邏輯端口轉發向量要隨學習端口號324而修改。如果這樣,中繼組成員表將更新的邏輯端口轉發向量326轉發到轉發數據庫304。聯系圖7對確定是否邏輯端口轉發向量要進行更新的步驟進行了說明。
向量合成邏輯306對中繼端口選擇器向量312,邏輯端口轉發向量314,和中繼成員向量320進行組合。中繼端口選擇器向量312為邏輯轉發向量314提供掩碼,以便選擇啟用的出口端口之一,通過它來將接收的數據分組轉發到目的地112c。
數據分組報頭308的一部分轉發到流散列邏輯300。所述數據分組報頭308的部分內容取決于在接收的數據分組中解碼的網絡協議。如果接收的數據分組包括第3層報頭,例如,IP網絡層(L3)報頭206(圖2C),所述數據分組報頭308的部分包括IP源地址244(圖2C),IP目的地址246(圖2C),協議字段240(圖2C)。如果數據分組沒有包括第3層報頭;例如,如果數據分組是Ethernet協議數據分組,則所述數據分組報頭308的部分包括L2源地址216(圖2B)和L2目的地址214(圖2B)。因此,所述數據分組報頭308的部分內容指示了從信源102a-c(圖1B)到目的地112a-c(圖1B)的數據流,以便相同數據流的數據分組(從信源到目的地)經過相同的出口端口136a-h(圖1B)按照相同的物理鏈路132c-e(圖1B)轉發到目的地112c。
圖4是在如圖3所示的流散列邏輯300中執行功能的流程圖。流散列邏輯300(圖3)按照數據分組報頭308(圖1B)的所述部分的內容產生循環冗余校驗(“CRC”)。從數據分組報頭中選擇數據分組報頭308所述部分的內容,并且將之轉發到流散列邏輯300(圖3)。參考圖3對流程圖進行了說明。
在步驟400,在產生CRC之前,將CRC變量初始化為無效值。可以通過將CRC中所有的變量設置為“1”來產生所述的無效值。流程轉入步驟402。
在步驟402,流散列邏輯300檢查數據鏈路(L2)報頭204(圖2B)的L2長度/類型字段220(圖2B)的內容。如果長度/類型字段220(圖2B)是網際協議版本4(“IPv4”),則數據分組包括IP網絡層(L3)報頭206(圖2C),并且流程轉入步驟404,否則,流程轉入步驟410。
在步驟404,流散列邏輯300(圖3)檢查IP網絡層(L3)報頭206(圖2C)中的長度字段228(圖2C)和協議字段240。如果長度字段228(圖2C)的內容為“五”,并且協議字段240存儲用戶數據報協議(UserDatagram Protocol-“UDP”)或者傳輸控制協議(Transport Control Protocol-“TCP”),則流程轉入步驟406,否則流程轉入步驟408。
在步驟406,流散列邏輯300(圖3)使用IP網絡層(L3)報頭206(圖2C)中的IP源地址字段244(圖2C),IP目的地址字段246(圖2C)的內容,包括在數據分組報頭中的傳輸層(L4)報頭208(圖2A)中的L4源端口地址字段(未示出)的內容和L4目的端口地址字段(未示出)的內容來產生CRC。在產生CRC并存儲在CRC變量中之后,流程轉入步驟412。
在步驟408,流散列邏輯300(圖3)使用包括在數據分組報頭中IP網絡層(L3)報頭206(圖2C)中的IP源地址字段244(圖2C)和IP目的地址字段246(圖2C)的內容產生CRC,在產生CRC并存儲在CRC變量中之后,流程轉入步驟412。
在步驟410,流散列邏輯300(圖3)使用包括在數據分組報頭中數據鏈路層(L2)報頭206(圖2B)中的L2源地址字段(圖2B)和產生L2目的地址字段(圖2B)的內容產生CRC。在產生CRC并存儲在CRC變量中之后,流程轉入步驟412。
在步驟412,流散列邏輯300(圖3)選擇作為流散列比特310(圖3)存儲在CRC變量中的最低有效位(“LSB”)。將流散列比特310(圖3)轉發到中繼選擇器表302(圖3)。六個流散列比特3 10允許選擇存儲在中繼端口選擇器表302(圖3)中的六十四個中繼端口選擇器表項之一。
通過按照包括在數據分組報頭中的源地址和目的地址產生流散列比特310,相同數據流(從信源102(圖1B)到目的地112(圖1B))的數據分組在中繼端口選擇器表302(圖3)中選擇相同中繼端口選擇器表項。同樣,通過按照源地址和目的地址來選擇中繼選擇器表項,將數據流分配給與目的地112c(圖1B)相連的多個物理鏈路132c-e(圖1B)中。
圖5示出了如圖3所示的中繼端口選擇器表302。中繼端口選擇器表302包括多個中繼端口選擇器表項500a-f。圖5示出了六個中繼端口選擇器表項500a-f。六個流散列比特210是存儲在中繼選擇器表項302中六十四個包括500a-f的中繼端口選擇表項的索引。每個中繼端口表項500a-h包括交換機100(圖1B)中每個出口端口136a-h各自的出口端口比特502a-h。
中繼端口選擇器表項500a具有八個出口端口比特502aa-ah;即,交換機100(圖1B)中每個出口端口136a-h的出口端口比特502aa-ah。本發明并不局限于帶有八個出口端口136a-h(圖1B)的交換機,通過為中繼端口選擇器表項500a-h中的每個出口端口設置一個比特就可以支持任何數目的出口端口136(圖1B)。中繼端口表項500中的出口端口比特狀態決定數據分組是否要轉發到各自的出口端口136a-h(圖1B)。在如圖5所示的實施例中,如果中繼端口選擇器表項500a中各自的出口端口比特502設置為“1”,數據分組就可以轉發到出口端口136a-h(圖1B)。在另一個實施例中,如果中繼端口選擇器表項500a中各自的出口端口比特502設置為“0”,數據分組就可以轉發到出口端口136a-h(圖1B)。
與出口端口136c,136d,136f(圖1B)有關的出口端口比特502ac,502ad和502af都是中繼組134(圖1B)的成員。在每個中繼端口選擇器表項500中,隨著各自的出口端口比特502設置為“1”,就啟用了中繼組134(圖1B)的成員之一。在中繼端口選擇器表項500a中,出口端口比特502ac設置為“1”就啟用了邏輯鏈路134(圖1B)中的出口端口2136c(圖1B)。在中繼端口選擇器表項500b中,出口端口比特502bd設置為“1”就啟用了邏輯鏈路134(圖1B)中的出口端口3136d(圖1B)。在如圖5所示的實施例中,中繼端口選擇器表項500c中的出口端口5136f(圖1B)得到啟用,中繼端口選擇器表項500d中的出口端口2136c(圖1B)得到啟用,中繼端口選擇器表項500e中的出口端口3136d(圖1B)得到啟用,中繼端口選擇器表項500f中的出口端口5136f(圖1B)得到啟用。
端口選擇器表中端口選擇器表項500的分配決定了通過每個邏輯鏈路中的物理鏈路來轉發數據分組的數目。如果所有的物理鏈路以相同的速度傳輸數據分組,按照所述數目的端口選擇器表項500啟用邏輯鏈路中的每個物理鏈路,就可以均勻地分配數據分組。
另一選擇是,按照所述數目的端口選擇器表項500啟用邏輯鏈路中的物理鏈路,較大百分比的數據分組按照邏輯鏈路中特定的物理鏈路來轉發。對于通過邏輯鏈路與交換機相連的目的地,較大百分比的數據分組按照所述邏輯鏈路中速度最快的物理鏈路來轉發。
例如,如果物理鏈路132c是1G比特每秒的鏈路,而物理鏈路132d-e是100M比特每秒的鏈路,就可以產生存儲在中繼端口選擇器302中的中繼端口選擇器表項500,以致于80%的數據分組按照物理鏈路132c來轉發,而10%的數據分組按照每個物理鏈路132d-e來轉發。
因此,按照邏輯鏈路中特定物理鏈路傳輸的數據分組比例取決于端口選擇器表302中端口選擇器表項500的分配。
圖6示出了如圖5所示的每個中繼端口選擇器項500的組合,邏輯端口轉發向量項600,為目的地112c從源端口102a(圖1)接收的數據分組的中繼組成員向量項604。中繼端口選擇器項500a按照中繼端口選擇器向量312轉發到向量合成邏輯306。邏輯端口轉發向量項600按照邏輯端口轉發向量314轉發到向量合成邏輯306。中繼組成員向量項604按照中繼組成員向量320轉發到向量合成邏輯306。
中繼組成員向量項604是為源端口102a(圖1)選擇的向量。源端口102a(圖1)與入口端口0 138a相連,在這個示例中,它是單一物理鏈路。因此,比特604a設置為“1”,用來指示源端口102a應該與哪一個端口相連。
邏輯端口轉發向量項600具有設置為“1”的比特600f,600d,600c,以使得數據分組轉發到出口端口136c,136d,136f(圖1B);即邏輯鏈路134中所有的出口端口136。所有其它的比特600g,600h,600e,600a,600b都設置為“0”,使得數據分組轉發到各自的出口端口136(圖1B)。中繼端口選擇器項500a具有設置為“1”的比特502ac,以便選擇出口端口2136c(圖1B)。
向量合成邏輯306將中繼組成員向量項604反相,并執行比特級的邏輯“AND”功能,以便合成中繼端口選擇器項500a,和反相的中繼組成員向量項604。合成得到的轉發向量項602具有設置為“1”的比特602,使得要轉發的數據流的數據分組轉發到出口端口2136c(圖1B)。
使中繼組成員向量604反相是為了消除回波,即如果邏輯鏈路接收到數據分組,就不轉發邏輯鏈路上的數據分組。例如,因為入口端口2138c和出口端口5136f是相同的邏輯鏈路134的成員,所以在入口端口2138c接收的數據分組不從出口端口5136f轉發。
因此,邏輯端口轉發向量314啟用了邏輯鏈路134(圖1B)中所有的入口端口,并且中繼端口選擇器向量312選擇邏輯鏈路134(圖1B)中物理鏈路之一。通過合成中繼端口選擇器向量312,中繼組成員向量320和邏輯端口轉發向量314,向量合成邏輯306產生轉發向量114。
圖7是使用中繼組成員向量320的內容修改存儲在轉發數據庫304中的邏輯端口轉發向量314的步驟的流程圖。現參考如圖3所示的方框圖對所述步驟進行說明。
在步驟700,將包括在接收的數據分組中并包括源地址的搜索關鍵字316轉發到轉發數據庫。同樣,在其中收到接收的數據分組的入口端口成員322被轉發到中繼組成員表318。流程轉入步驟702。
在步驟702,轉發數據庫確定是否存在與搜索關鍵字316相對應的項。如果存在,流程轉入步驟704,否則,流程轉入步驟708。
在步驟704,存儲在轉發數據庫項中與搜索關鍵字316相對應的學習端口號324被轉發到中繼組成員表318。學習端口號324是包括在接收的數據分組中的源地址在這個地方被學習的入口端口。流程轉入步驟706。
在步驟706,檢查中繼組成員表318,以看與學習端口號324相對應的比特是否在源端口號322的中繼組成員向量320中設置為“1”。如果設置為“1”,因為沒有在新的端口收到接收的數據分組,處理過程結束。否則,流程轉入步驟708。
在步驟708,接收的數據分組到達除了第一次學習的入口端口之外的端口,或者除了數據分組第一次從源地址被接收的入口端口之外的端口。因此,需要使用入口端口號322和與所述入口端口號322相同的中繼組成員的其它端口來更新邏輯端口轉發向量314。與入口端口號322相對應的中繼組成員向量320按照更新326來轉發,以致于轉發數據庫304可以修改或者更新與源地址相對應的邏輯端口轉發向量314。流程結束。
盡管參照優選的實施例對本發明進行了描述,但是本領域的技人員應認識到,形式上和細節上的變化都不會超出所附權利要求限定的本發明的范圍。
權利要求
1.一種交換機,包括連接目的地和交換機的邏輯鏈路,所述邏輯鏈路包括與交換機中多個端口相連的多個物理鏈路;流散列邏輯,按照包括在接收數據中的目的地址和源地址來為接收數據的流散列做索引;中繼端口選擇器邏輯,按照流散列選擇中繼端口項,所述的中繼端口項提供多個物理鏈路之一,其用于將接收數據轉發到目的地。
2.根據權利要求1所述的交換機,其特征在于從交換機中可用端口中隨機選擇多個端口。
3.根據權利要求1所述的交換機,其特征在于所述目的地址是Ethernet目的地址,所述源地址是Ethernet源地址。
4.根據權利要求1所述的交換機,其特征在于所述目的地址是IP目的地址,所述源地址是IP源地址。
5.根據權利要求1所述的交換機,其特征在于所述目的地址是TCP目的端口地址,所述源地址是TCP源端口地址。
6.根據權利要求1所述的交換機,其特征在于所述目的地址是UDP目的端口地址,所述源地址是UDP源端口地址。
7.根據權利要求1所述的交換機,其特征在于還包括向量合成邏輯,按照邏輯端口轉發向量和和中繼端口項的組合來選擇交換機中的端口,以便按照邏輯鏈路中多個物理鏈路之一來轉發接收的數據。
8.根據權利要求7所述的交換機,其特征在于向量合成邏輯按照中繼組成員向量來選擇端口。
9.根據權利要求8所述的交換機,其特征在于如果在邏輯鏈路中多個物理鏈路之一收到接收數據,則不選擇端口。
10.一種交換機,包括連接目的地和交換機的邏輯鏈路,所述邏輯鏈路包括與多個端口相連的多個物理鏈路;按照接收數據中的目的地址和源地址來為接收數據選擇流散列的裝置;和按照流散列選擇中繼端口項的裝置,所述中繼端口項選擇多個驅力鏈路之一,用來將接收數據轉發到目的地。
11.根據權利要求10所述的交換機,其特征在于從交換機中可用端口中隨機選擇多個端口。
12.根據權利要求10所述的交換機,其特征在于所述目的地址是Ethernet目的地址,所述源地址是Ethernet源地址。
13.根據權利要求10所述的交換機,其特征在于所述目的地址是IP目的地址,所述源地址是IP源地址。
14.根據權利要求10所述的交換機,其特征在于所述目的地址是TCP目的端口地址,所述源地址是TCP源端口地址。
15.根據權利要求10所述的交換機,其特征在于所述目的地址是UDP目的端口地址,所述源地址是UDP源端口地址。
16.根據權利要求10所述的交換機,還包括端口選擇裝置,按照邏輯端口轉發向量和和中繼端口項來選擇端口,以便按照邏輯鏈路中多個物理鏈路之一來轉發接收數據。
17.根據權利要求16所述的交換機,其特征在于向量合成邏輯按照中繼組成員向量來選擇端口。
18.根據權利要求17所述的交換機,其特征在于如果在邏輯鏈路中多個物理鏈路之一收到接收數據,則不選擇端口。
19.一種通過交換機來轉發接收數據的方法,其包括以下步驟提供連接目的地和交換機的邏輯鏈路,所述邏輯鏈路包括與交換機中多個端口相連的多個物理鏈路;流散列邏輯按照包括在接收數據中的目的地址和源地址來為接收數據選擇流散列;中繼端口選擇器邏輯按照流散列選擇中繼端口項來選擇中繼端口項;和中繼端口項提供多個物理鏈路之一,用來將接收數據轉發到目的地。
20.根據權利要求19所述的交換機,其特征在于從交換機中可得到的端口中隨機選擇多個端口。
21.根據權利要求19所述的交換機,其特征在于所述目的地址是Ethernet目的地址,所述源地址是Ethernet源地址。
22.根據權利要求19所述的交換機,其特征在于所述目的地址是IP目的地址,所述源地址是IP源地址。
23.根據權利要求19所述的交換機,其特征在于所述目的地址是TCP目的端口地址,所述源地址是TCP源端口地址。
24.根據權利要求19所述的交換機,其特征在于所述目的地址是UDP目的端口地址,所述源地址是UDP源端口地址。
25.根據權利要求19所述的交換機,其特征在于還包括向量合成邏輯按照邏輯端口轉發向量和和中繼端口項的組合來選擇交換機中的端口,以便按照邏輯鏈路中多個物理鏈路之一來轉發接收數據。
26.根據權利要求25所述的交換機,其特征在于向量合成邏輯按照中繼組成員向量來選擇端口。
27.根據權利要求26所述的交換機,其特征在于如果在邏輯鏈路中多個物理鏈路之一收到接收數據,則不選擇端口。
28.一種數據網絡交換機,包括流散列邏輯,按照包括在交換機接收的數據中的信源信息和目的地信息來產生流散列;存儲邏輯端口轉發向量的轉發數據庫,每個邏輯端口轉發向量包括轉發信息;存儲中繼組成員向量的中繼組成員表,每個中繼組成員向量指示哪一個端口屬于中繼組;和向量合成邏輯,將邏輯端口轉發向量,中繼端口選擇向量和中繼組成員向量組合,以便選擇接收的數據轉發的端口。
29.根據權利要求28所述的數據網絡交換機,其特征在于,向量合成邏輯按照與接收數據的端口有關的中繼組成員向量來選擇單一端口。
30.根據權利要求29所述的交換機,其特征在于如果從所述單一端口或者所述單一端口所屬的中繼組的任何其它成員中收到接收數據,則不選擇單一端口。
31.根據權利要求28所述的交換機,其特征在于使用中繼組成員向量來修改項對應的邏輯端口轉發向量。
32.根據權利要求28所述的交換機,其特征在于使用中繼組成員向量來將邏輯端口轉發向量添加在轉發數據庫中。
全文摘要
在帶有多個去向目的地的物理鏈路的交換機中,通過跨過物理鏈路分配接收的數據來將數據轉發到目的地。按照包括在接收數據中的目的地址和源地址來為接收數據的數據流選擇流散列。流散列選擇去向目的地的物理鏈路之一,而不是不同數據流的潛在不同物理鏈路,從而通過跨過物理鏈路分配接收的數據來轉發接收的數據,同時保持數據流中幀的順序。
文檔編號H04L12/44GK1406423SQ01805838
公開日2003年3月26日 申請日期2001年1月17日 優先權日2000年2月29日
發明者理查德·M·懷亞特 申請人:睦塞德技術公司