專利名稱:在交換機(jī)中中繼的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及交換機(jī)中的中繼的方法和設(shè)備。
背景技術(shù):
網(wǎng)絡(luò)交換機(jī)從多個(gè)與交換機(jī)連接的入口端口接收數(shù)據(jù)分組,并且向與交換機(jī)連接 的多個(gè)出口端口提供數(shù)據(jù)分組。交換機(jī)按照包括在數(shù)據(jù)分組中的目的地址決定數(shù)據(jù)分組被 提供給的出口端口。 —般地,目的地通過一個(gè)物理鏈路與交換機(jī)中的一個(gè)出口端口連接。在目的地的 入口端口接收的數(shù)據(jù)分組經(jīng)過交換機(jī)轉(zhuǎn)發(fā)給出口端口 。所述目的地可以是計(jì)算機(jī)、另一個(gè) 交換機(jī)或者路由器。 為了增加目的地的帶寬;即, 一定數(shù)量的數(shù)據(jù)分組經(jīng)過交換機(jī)轉(zhuǎn)發(fā)到目的地,所述
的目的地可以通過多個(gè)物理鏈路與超過一個(gè)的出口端口連接,其中每個(gè)物理鏈路都終止于
出口端口 。所述多個(gè)物理鏈路是交換機(jī)與目的地之間邏輯鏈路的成員。 向目的地提供多個(gè)物理鏈路稱為鏈路聚合或中繼(trunking) 。 IEEE802. 3ad組在
htt。 //grouper, ieee. org/grou。s/802/3/tr皿k-study/tutorial公開的指南中對(duì)IEEE
802. 3的鏈路聚合進(jìn)行了說明。 到達(dá)交換機(jī)入口端口的數(shù)據(jù)分組可以通過交換機(jī)按照邏輯鏈路中的任何一個(gè)物 理鏈路轉(zhuǎn)發(fā)到目的地。因此,由于在物理鏈路中分配目的地的數(shù)據(jù)分組的緣故,鏈路帶寬增 加。為了獲得邏輯鏈路的最大帶寬利用率,去向目的地的數(shù)據(jù)分組必須在物理鏈路中均勻 地分配給目的地。 但是,當(dāng)在物理鏈路中分配接收的數(shù)據(jù)分組時(shí),數(shù)據(jù)流中的數(shù)據(jù)分組不能通過交 換機(jī)來變?yōu)闊o序。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種在交換機(jī)中中繼的方法和設(shè)備。
按照本發(fā)明的一方面,一種交換機(jī),包括 連接目的地到交換機(jī)的中繼組,所述中繼組包括與交換機(jī)中多個(gè)端口相連的多個(gè) 物理鏈路; 交換機(jī)部件,按照包括在接收數(shù)據(jù)中的目的地址和源地址執(zhí)行的功能的結(jié)果和 數(shù)據(jù)鏈接報(bào)頭中的類型字段的內(nèi)容選擇的目的地址和源地址來為接收的數(shù)據(jù)包選擇流散 列; 連接到交換機(jī)部件的中繼端口選擇器,按照流散列選擇中繼端口項(xiàng),所述的中繼 端口項(xiàng)提供多個(gè)物理鏈路之一,其用于將接收數(shù)據(jù)轉(zhuǎn)發(fā)到目的地。 數(shù)據(jù)流在存儲(chǔ)于接收數(shù)據(jù)的報(bào)頭中的目的地址和源地址中編碼。源地址和目的地 址可以是Ethernet (以太網(wǎng))源地址和目的地址、IP源地址和目的地址、UDP源端口地址和 目的端口地址或者TCP源端口地址和目的端口地址。
4
所述交換機(jī)包括在交換機(jī)中選擇與所述物理鏈路相應(yīng)的端口的向量合成邏輯。按 照邏輯端口轉(zhuǎn)發(fā)向量和集合端口項(xiàng)的組合來選擇所述端口 。 按照本發(fā)明的另一方面,一種通過交換機(jī)來轉(zhuǎn)發(fā)接收數(shù)據(jù)的方法,其包括以下步 驟 提供連接目的地到交換機(jī)的中繼組,所述中繼組包括與交換機(jī)中多個(gè)端口相連的 多個(gè)物理鏈路; 通過交換機(jī)部件中的流散列邏輯,按照包括在接收數(shù)據(jù)中的目的地址和源地址執(zhí) 行的功能的結(jié)果和根據(jù)數(shù)據(jù)鏈接報(bào)頭中的類型字段的內(nèi)容選擇的目的地址和源地址來為 接收數(shù)據(jù)包選擇流散列; 中繼端口選擇器按照流散列選擇中繼端口項(xiàng);禾口 中繼端口項(xiàng)提供多個(gè)物理鏈路之一,用來將接收數(shù)據(jù)轉(zhuǎn)發(fā)到目的地。
參考附圖對(duì)本發(fā)明優(yōu)選實(shí)施例的詳細(xì)說明將使本發(fā)明前述的和其它的目的,特征
和優(yōu)點(diǎn)更加清楚,其中在不同的圖中用相同的參考符號(hào)和數(shù)字來表示相同的部分。附圖沒
有必要成比例,強(qiáng)調(diào)的不是位置,而是說明本發(fā)明的原理。 圖1A示出了根據(jù)本發(fā)明的原理,連接目的地與交換機(jī)的邏輯鏈路; 圖1B示出了如圖1A所述的交換機(jī),其包括用來按照連接目的地和交換機(jī)的邏輯
鏈路中多個(gè)鏈路之一來轉(zhuǎn)發(fā)在入口端口接收的數(shù)據(jù)分組的轉(zhuǎn)發(fā)邏輯; 圖2A示出了可以在與交換機(jī)相連的入口端口接收的已有技術(shù)數(shù)據(jù)分組; 圖2B示出了可以包括在如圖2A所示的數(shù)據(jù)分組中的已有技術(shù)Ethernet數(shù)據(jù)鏈
路層(L2)報(bào)頭; 圖2C示出了可以包括在如圖2A所示的數(shù)據(jù)分組中的已有技術(shù)網(wǎng)際協(xié)議(網(wǎng)絡(luò)層 (L3))報(bào)頭; 圖3示出了如圖1B所示的轉(zhuǎn)發(fā)邏輯; 圖4是如圖3所示的流散列邏輯中執(zhí)行功能的流程圖; 圖5示出了如圖3所示的中繼端口選擇器表; 圖6示出了如圖5所示的中繼端口選擇器項(xiàng)之一,組成員表向量項(xiàng)和邏輯端口轉(zhuǎn) 發(fā)向量項(xiàng)的組合; 圖7是使用中繼組成員向量的內(nèi)容更新存儲(chǔ)在轉(zhuǎn)發(fā)數(shù)據(jù)庫304中的邏輯端口轉(zhuǎn)發(fā) 向量的步驟流程圖。
具體實(shí)施例方式
下面說明本發(fā)明的優(yōu)選實(shí)施例。 圖1A示出了根據(jù)本發(fā)明的原理,連接目的地112c和交換機(jī)100的邏輯鏈路134。 邏輯鏈路或者中繼組134包括物理鏈路132c-e。目的地112c通過物理鏈路132c_e與交換 機(jī)相連。目的地112c的接收數(shù)據(jù)分組從三個(gè)物理鏈路132c-e中之一轉(zhuǎn)發(fā)到目的地112c。所 述交換機(jī)100包括與邏輯鏈路134中每個(gè)物理鏈路132c-e相對(duì)應(yīng)的入口端口隊(duì)列130a-c。 交換機(jī)將從信源102a接收的數(shù)據(jù)分組轉(zhuǎn)發(fā)到出口端口隊(duì)列130a-c。
存儲(chǔ)接收數(shù)據(jù)分組的出口端口隊(duì)列130a-c在轉(zhuǎn)發(fā)到相應(yīng)的物理鏈路132c_e之前 取決于數(shù)據(jù)流,即;包括在數(shù)據(jù)分組中的源地址和目的地址。通過按照源地址和目的地址來 選擇物理鏈路,相同數(shù)據(jù)流的數(shù)據(jù)分組總按照相同的鏈路來轉(zhuǎn)發(fā),并且因此在交換機(jī)中不 會(huì)變得無序。 例如,交換機(jī)從信源102a接收要轉(zhuǎn)發(fā)到目的地112c的數(shù)據(jù)分組140a-c。每個(gè)數(shù) 據(jù)分組140a-c包括信源102a的源地址和目的地112c的目的地址。交換機(jī)根據(jù)存儲(chǔ)在數(shù) 據(jù)分組132c_e中的源地址和目的地址來確定數(shù)據(jù)流。隨著每個(gè)數(shù)據(jù)分組140a-c被接收并 存儲(chǔ)在交換機(jī)中,按照在出口端口隊(duì)列130a中接收的順序?qū)?shù)據(jù)分組的地址存儲(chǔ)在存儲(chǔ) 器中。每個(gè)數(shù)據(jù)分組140a-c由物理鏈路132c轉(zhuǎn)發(fā)到目的地112c。因此,從信源102a到目 的地112c的數(shù)據(jù)流中的數(shù)據(jù)分組140a-c按照交換機(jī)100接收的順序傳輸?shù)侥康牡刂?12。
圖IB示出了如圖IA所示的交換機(jī)100,其包括用來按照連接目的地和交換機(jī)的邏 輯鏈路中多個(gè)鏈路132c-e之一來轉(zhuǎn)發(fā)在入口端口接收的數(shù)據(jù)分組的轉(zhuǎn)發(fā)邏輯128。所述 交換機(jī)IOO包括入口端口引擎104,分組存儲(chǔ)管理器106,段緩沖存儲(chǔ)器108和出口端口引 擎110。物理鏈路132c-e是連接目的地112c和交換機(jī)100的邏輯鏈路134的成員。物理 鏈路132f-g是連接目的地112d和交換機(jī)100的邏輯鏈路140的成員。單一物理鏈路132a 連接目的地112a和交換機(jī)100,而單一物理鏈路132b連接目的地112b和交換機(jī)100。因 此,如果所有的物理鏈路的速度相同,邏輯鏈路140向目的地112b提供的帶寬是單一物理 鏈路132a向目的地112a提供的帶寬的二倍,而邏輯鏈路134向目的地112b提供的帶寬是 單一物理鏈路132b向目的地112b提供的帶寬的三倍。 交換機(jī)100可以包括去向目的地112的單一物理鏈路和邏輯鏈路的任何組合。邏 輯鏈路可以包括任何數(shù)目的物理鏈路。邏輯鏈路中的物理鏈路可以將不連續(xù)的端口與目的 地112相連,例如,邏輯鏈路134將不連續(xù)的出口端口 (出口端口2 136c,出口端口3 136d, 和出口端口5 136f)與目的地112c相連。另一種選擇是,邏輯鏈路140可以將連續(xù)的出口 端口 (出口端口6 136g,出口端口7 136h)與目的地112d相連。 因此,所有的出口端口 136a-h都可以成為同一邏輯鏈路的成員,每個(gè)出口端口 136a-h可以是單一的物理鏈路,或者出口端口 136a-h可以按照目的地112a-d的邏輯鏈路 和單一物理鏈路的組合來配置。 邏輯鏈路的成員并不局限于相同速度的物理鏈路132a-h。例如,1G比特Ethernet 出口端口可以成為作為100M比特Ethernet出口端口的相同邏輯鏈路的成員。
在入口端口 138a-c從信源102a-c接收的數(shù)據(jù)分組按照入口端口引擎104中的轉(zhuǎn) 發(fā)邏輯128產(chǎn)生的轉(zhuǎn)發(fā)向量114轉(zhuǎn)發(fā)到一個(gè)或者多個(gè)出口端口 136a-h。轉(zhuǎn)發(fā)向量114取決 于在轉(zhuǎn)發(fā)邏輯128中實(shí)現(xiàn)的轉(zhuǎn)發(fā)數(shù)據(jù)庫中存儲(chǔ)的邏輯端口轉(zhuǎn)發(fā)向量。 分組存儲(chǔ)管理器106將接收的入口數(shù)據(jù)116存儲(chǔ)在段緩沖存儲(chǔ)器108的數(shù)據(jù)分 組中。分組存儲(chǔ)管理器106還按照轉(zhuǎn)發(fā)向量114的狀態(tài)將接收的入口數(shù)據(jù)116的地址存 儲(chǔ)在一個(gè)或者多個(gè)出口端口隊(duì)列130的段緩沖存儲(chǔ)器108中。對(duì)段緩沖存儲(chǔ)器108中數(shù) 據(jù)分組的存儲(chǔ)的說明見美國專利申請(qǐng)流水號(hào)為09/386, 589、標(biāo)題為"用于交錯(cuò)式無阻塞 分組緩沖器的方法禾口裝置,,(Method and apparatus for an Interleaved Non-Blocking PacketBuffer)的待審美國專利申請(qǐng),它由David A. Brown于1999年8月31日遞交,其整 個(gè)技術(shù)在此引入作為參考。
出口引擎110通過選擇信號(hào)120選擇出口隊(duì)列,從所述的隊(duì)列開始將接收的入口 數(shù)據(jù)116的地址轉(zhuǎn)發(fā)到段緩沖存儲(chǔ)器108。存儲(chǔ)在段緩沖存儲(chǔ)器108中的入口數(shù)據(jù)116按 照出口數(shù)據(jù)118轉(zhuǎn)發(fā)到出口端口 136a-h。出口數(shù)據(jù)118應(yīng)該轉(zhuǎn)發(fā)到哪一個(gè)出口端口 136a-h 取決于轉(zhuǎn)發(fā)向量114。 轉(zhuǎn)發(fā)向量114選擇出口端口隊(duì)列130,以便將地址存儲(chǔ)在存儲(chǔ)了數(shù)據(jù)分組的段緩 沖存儲(chǔ)器108中。出口端口引擎110通過選擇信號(hào)120選擇出口端口隊(duì)列130。所述的地 址122轉(zhuǎn)發(fā)到段緩沖存儲(chǔ)器108。所述存儲(chǔ)在地址122的出口數(shù)據(jù)118轉(zhuǎn)發(fā)到所述出口端口 引擎110,以及按照選擇的出口端口隊(duì)列130從出口端口引擎110轉(zhuǎn)發(fā)到出口端口 136a-h。
目的地112c通過物理鏈路132c-e與三個(gè)出口端口 (端口 2,端口 3,端口 5)相 連。所述物理鏈路132c-e是邏輯鏈路或者中繼組134的成員。邏輯鏈路134的成員并不 局限于示出的三個(gè)入口端口 136c-e。邏輯鏈路134的成員可以包括交換機(jī)100中出口端口 136a-h的任何組合。轉(zhuǎn)發(fā)向量114包括每個(gè)出口端口 136a-h的比特,接收的數(shù)據(jù)分組經(jīng)過 它來轉(zhuǎn)發(fā)。目的地112c的接收數(shù)據(jù)分組可以按照三個(gè)物理鏈路132c-e之一轉(zhuǎn)發(fā)到目的地 112c。轉(zhuǎn)發(fā)邏輯128選擇目的地112c的三個(gè)物理鏈路之一,以致于從一個(gè)信源到目的地的 數(shù)據(jù)流的數(shù)據(jù)分組總按照相同的物理鏈路132c-e轉(zhuǎn)發(fā)到目的地112c。例如,可以選擇物理 鏈路132e,用于將從信源102a接收的所有數(shù)據(jù)分組轉(zhuǎn)發(fā)到目的地112c。
圖2A示出了可以在與交換機(jī)100 (圖1B)相連的入口端口 136a-c(圖1B)接收的 已有技術(shù)數(shù)據(jù)分組200。圖2B示出了可以包括在如圖2A所示的數(shù)據(jù)分組200中的已有技 術(shù)Ethernet報(bào)頭。圖2C示出了可以包括在如圖2A所示的數(shù)據(jù)分組200中的已有技術(shù)網(wǎng) 際協(xié)議("IP")報(bào)頭。 圖2A示出了已有技術(shù)的數(shù)據(jù)分組200。數(shù)據(jù)分組200包括數(shù)據(jù)凈負(fù)荷210和形成 網(wǎng)絡(luò)層202,204,206,208的報(bào)頭。示出的是OSI模型四個(gè)層的報(bào)頭,物理層(Ll)報(bào)頭202, 數(shù)據(jù)鏈路層(L2)報(bào)頭204,網(wǎng)絡(luò)層(L3)報(bào)頭206和傳輸層(L4)報(bào)頭208。例如,數(shù)據(jù)鏈路 層(L2)報(bào)頭204可以是Ethernet,而網(wǎng)絡(luò)層(L3)報(bào)頭206可以是IP。數(shù)據(jù)分組200也包 括檢查和212。 圖2B示出了已有技術(shù)Ethernet數(shù)據(jù)鏈路(L2)報(bào)頭204的格式。Ethernet數(shù) 據(jù)鏈路(L2)報(bào)頭204包括目的節(jié)點(diǎn)104的裝置地址(圖1B) ;S卩,L2目的地址214,和 源節(jié)點(diǎn)102的裝置地址(圖1B) ;S卩,L2源地址216,可選擇的虛擬局域網(wǎng)標(biāo)識(shí)("VLAN ID")字段218和長度/類型字段220。 VLAN ID 218包括標(biāo)記協(xié)議標(biāo)識(shí)符(Tag Protocol Identifier- "TPI")字段218a和標(biāo)記控制信息(Tag Control Information- "TCI")字 段218b。所述VLAN ID字段218按照IEEE 802. 1Q置標(biāo)記禾口 IEEE 802. ID1988(802. lp)優(yōu) 先權(quán)等級(jí)為VLAN交換提供支持。 圖2C示出了已有技術(shù)IP網(wǎng)絡(luò)層(L3)報(bào)頭206的格式。所述IP網(wǎng)絡(luò)層(L3)報(bào)頭 206包括源節(jié)點(diǎn)102a-c(圖IB)網(wǎng)絡(luò)地址,這就是說,IP目的地址246。 IP網(wǎng)絡(luò)層報(bào)頭206 的其它字段包括版本(Version) 222, HLEN224,服務(wù)類型(Type of Service- "T0S")226, 總長度228,標(biāo)識(shí)230,標(biāo)志232,段偏移234,存活時(shí)間(Time to live-"TTL") 236,協(xié)議地 址240,報(bào)頭檢查和242,選項(xiàng)248和填充250。 從源節(jié)點(diǎn)102a-c(圖IB)接收的數(shù)據(jù)分組200(圖2A)在入口端口按照存儲(chǔ)在 Ethernet數(shù)據(jù)鏈路(L2)報(bào)頭204 (圖2A)中的目的地址(圖2B)橋接在一個(gè)或者多個(gè)出口端口 136a-h(圖IB)上,或者按照存儲(chǔ)在IP網(wǎng)絡(luò)層(L3)報(bào)頭206中的IP目的地址246路 由到一個(gè)或者多個(gè)出口端口 136a-h(圖IB)。 圖3示出了如圖1B所示的轉(zhuǎn)發(fā)邏輯128。轉(zhuǎn)發(fā)邏輯128包括轉(zhuǎn)發(fā)數(shù)據(jù)庫304。轉(zhuǎn) 發(fā)數(shù)據(jù)庫304按照搜索關(guān)鍵字316的內(nèi)容選擇邏輯端口轉(zhuǎn)發(fā)向量314。對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)庫的說 明見美國專利申請(qǐng)流水號(hào)為09/409, 184、標(biāo)題為"用于四路散列表的方法和裝置"(Method and Apparatus forFour-Way Hash Table)的待審美國專利申請(qǐng),它由David A. Brown于 1999年9月30日遞交,其整個(gè)技術(shù)在此引入作為參考。 邏輯端口轉(zhuǎn)發(fā)向量314包括交換機(jī)100 (圖IB)中每個(gè)出口端口 136a-h(lB)的出 口端口比特。出口端口比特設(shè)置為"l"就能夠轉(zhuǎn)發(fā)到各自的出口端口 136a-h(圖lB),而設(shè) 置為"0"就不能轉(zhuǎn)發(fā)到各自的出口端口 136a-h(圖IB),從而指示出數(shù)據(jù)分組應(yīng)該轉(zhuǎn)發(fā)到 的所有端口。因此,在目的地112c(圖IB)出口端口 2的邏輯端口轉(zhuǎn)發(fā)向量314中,出口端 口 3和出口端口 5的比特設(shè)置為"l",以能夠?qū)⒁D(zhuǎn)發(fā)的數(shù)據(jù)分組轉(zhuǎn)發(fā)到與目的地112c(圖 1B)相連的出口端口 136c,136d和136f(圖1B)。 中繼端口選擇器邏輯302按照流散列邏輯300產(chǎn)生的流散列選擇中繼端口選擇器 向量312。中繼端口選擇器312在邏輯端口轉(zhuǎn)發(fā)向量314中選擇啟用的出口端口 (端口2, 端口 3和端口 5) 136c-e之一,通過它來將接收的數(shù)據(jù)分組轉(zhuǎn)發(fā)到目的地112c (圖1B)。
中繼組成員表318包括交換機(jī)100中每個(gè)入口端口 138 (圖2)的中繼組成員向量 320。中繼組成員向量320包括交換機(jī)100中每個(gè)端口的比特。在中繼組成員向量中,比特 設(shè)置為"l"表示相同中繼組中的其它端口。如果入口端口不是中繼組的成員,則入口端口 的比特僅僅是中繼組成員向量中設(shè)置為"1"的比特。 在支持中繼的交換機(jī)中,主機(jī)可以在任何與存在主機(jī)的中繼相關(guān)的端口發(fā)送和接 收數(shù)據(jù)分組。需要確定哪一個(gè)端口應(yīng)該屬于與接收分組的相同的中繼分組。因此,入口端 口用來索引中繼組成員表,以便保證消除回波,這就是說,保證即將到來的分組不會(huì)轉(zhuǎn)發(fā)到 相同的端口或者特定中繼組的其它端口。例如,如果入口端口 0是包括端口 O,端口 2,端口 3的中繼端口的成員,因?yàn)樗鼈兌际窍嗤欣^組的所有部分,所以即將到來的數(shù)據(jù)分組不會(huì) 轉(zhuǎn)發(fā)到端口 O,端口 2,端口 3。中繼組成員表318存儲(chǔ)這個(gè)組成員信息,并且保證不會(huì)發(fā)生 這種回波。 接收數(shù)據(jù)分組的入口端口按照入口端口號(hào)322轉(zhuǎn)發(fā)到中繼組成員表318。入口端 口號(hào)322是中繼組成員表318中中繼成員向量320的索引。中繼組成員向量320轉(zhuǎn)發(fā)到向 量合成邏輯306。 通過修改,更新,或者在轉(zhuǎn)發(fā)數(shù)據(jù)庫304中添加邏輯端口轉(zhuǎn)發(fā)向量314,中繼組成 員向量320可以用于執(zhí)行硬件學(xué)習(xí)。學(xué)習(xí)端口號(hào)324與轉(zhuǎn)發(fā)數(shù)據(jù)庫中存儲(chǔ)的每個(gè)邏輯端口 轉(zhuǎn)發(fā)向量314—起存儲(chǔ)。學(xué)習(xí)端口號(hào)324識(shí)別學(xué)習(xí)的源地址的入口端口。學(xué)習(xí)端口號(hào)324 轉(zhuǎn)發(fā)到中繼組成員表318。中繼組成員表318確定是否源地址的邏輯端口轉(zhuǎn)發(fā)向量要隨學(xué) 習(xí)端口號(hào)324而修改。如果這樣,中繼組成員表將更新的邏輯端口轉(zhuǎn)發(fā)向量326轉(zhuǎn)發(fā)到轉(zhuǎn) 發(fā)數(shù)據(jù)庫304。聯(lián)系圖7對(duì)確定是否邏輯端口轉(zhuǎn)發(fā)向量要進(jìn)行更新的步驟進(jìn)行了說明。
向量合成邏輯306對(duì)中繼端口選擇器向量312,邏輯端口轉(zhuǎn)發(fā)向量314,和中繼成 員向量320進(jìn)行組合。中繼端口選擇器向量312為邏輯轉(zhuǎn)發(fā)向量314提供掩碼,以便選擇 啟用的出口端口之一,通過它來將接收的數(shù)據(jù)分組轉(zhuǎn)發(fā)到目的地112c。
數(shù)據(jù)分組報(bào)頭308的一部分轉(zhuǎn)發(fā)到流散列邏輯300。所述數(shù)據(jù)分組報(bào)頭308的部 分內(nèi)容取決于在接收的數(shù)據(jù)分組中解碼的網(wǎng)絡(luò)協(xié)議。如果接收的數(shù)據(jù)分組包括第3層報(bào) 頭,例如,IP網(wǎng)絡(luò)層(L3)報(bào)頭206 (圖2C),所述數(shù)據(jù)分組報(bào)頭308的部分包括IP源地址 244 (圖2C) , IP目的地址246 (圖2C),協(xié)議字段240 (圖2C)。如果數(shù)據(jù)分組沒有包括第3 層報(bào)頭;例如,如果數(shù)據(jù)分組是Ethernet協(xié)議數(shù)據(jù)分組,則所述數(shù)據(jù)分組報(bào)頭308的部分包 括L2源地址216(圖2B)和L2目的地址214 (圖2B)。因此,所述數(shù)據(jù)分組報(bào)頭308的部 分內(nèi)容指示了從信源102a-c(圖1B)到目的地112a-c(圖1B)的數(shù)據(jù)流,以便相同數(shù)據(jù)流 的數(shù)據(jù)分組(從信源到目的地)經(jīng)過相同的出口端口 136a-h(圖1B)按照相同的物理鏈路 132c-e(圖1B)轉(zhuǎn)發(fā)到目的地112c。 圖4是在如圖3所示的流散列邏輯300中執(zhí)行功能的流程圖。流散列邏輯300 (圖 3)按照數(shù)據(jù)分組報(bào)頭308(圖1B)的所述部分的內(nèi)容產(chǎn)生循環(huán)冗余校驗(yàn)("CRC")。從數(shù) 據(jù)分組報(bào)頭中選擇數(shù)據(jù)分組報(bào)頭308所述部分的內(nèi)容,并且將之轉(zhuǎn)發(fā)到流散列邏輯300 (圖 3)。參考圖3對(duì)流程圖進(jìn)行了說明。 在步驟400,在產(chǎn)生CRC之前,將CRC變量初始化為無效值??梢酝ㄟ^將CRC中所 有的變量設(shè)置為"l"來產(chǎn)生所述的無效值。流程轉(zhuǎn)入步驟402。 在步驟402,流散列邏輯300檢查數(shù)據(jù)鏈路(L2)報(bào)頭204 (圖2B)的L2長度/類型 字段220(圖2B)的內(nèi)容。如果長度/類型字段220(圖2B)是網(wǎng)際協(xié)議版本4( "IPv4"), 則數(shù)據(jù)分組包括IP網(wǎng)絡(luò)層(L3)報(bào)頭206 (圖2C),并且流程轉(zhuǎn)入步驟404,否則,流程轉(zhuǎn)入 步驟410。 在步驟404,流散列邏輯300(圖3)檢查IP網(wǎng)絡(luò)層(L3)報(bào)頭206 (圖2C)中的長度 字段228(圖2C)和協(xié)議字段240。如果長度字段228 (圖2C)的內(nèi)容為"五",并且協(xié)議字段 240存儲(chǔ)用戶數(shù)據(jù)報(bào)協(xié)議(UserDatagram Protocol」'UDP")或者傳輸控制協(xié)議(Transport Control Protocol- "TCP"),則流程轉(zhuǎn)入步驟406,否則流程轉(zhuǎn)入步驟408。
在步驟406,流散列邏輯300 (圖3)使用IP網(wǎng)絡(luò)層(L3)報(bào)頭206 (圖2C)中的IP 源地址字段244(圖2C),IP目的地址字段246(圖2C)的內(nèi)容,包括在數(shù)據(jù)分組報(bào)頭中的傳 輸層(L4)報(bào)頭208(圖2A)中的L4源端口地址字段(未示出)的內(nèi)容和L4目的端口地址 字段(未示出)的內(nèi)容來產(chǎn)生CRC。在產(chǎn)生CRC并存儲(chǔ)在CRC變量中之后,流程轉(zhuǎn)入步驟 412。 在步驟408,流散列邏輯300 (圖3)使用包括在數(shù)據(jù)分組報(bào)頭中IP網(wǎng)絡(luò)層(L3)報(bào) 頭206(圖2C)中的IP源地址字段244 (圖2C)和IP目的地址字段246 (圖2C)的內(nèi)容產(chǎn) 生CRC,在產(chǎn)生CRC并存儲(chǔ)在CRC變量中之后,流程轉(zhuǎn)入步驟412。 在步驟410,流散列邏輯300 (圖3)使用包括在數(shù)據(jù)分組報(bào)頭中數(shù)據(jù)鏈路層(L2) 報(bào)頭206(圖2B)中的L2源地址字段(圖2B)和產(chǎn)生L2目的地址字段(圖2B)的內(nèi)容產(chǎn) 生CRC。在產(chǎn)生CRC并存儲(chǔ)在CRC變量中之后,流程轉(zhuǎn)入步驟412。 在步驟412,流散列邏輯300 (圖3)選擇作為流散列比特310 (圖3)存儲(chǔ)在CRC變 量中的最低有效位("LSB")。將流散列比特310(圖3)轉(zhuǎn)發(fā)到中繼選擇器表302(圖3)。 六個(gè)流散列比特310允許選擇存儲(chǔ)在中繼端口選擇器表302 (圖3)中的六十四個(gè)中繼端口 選擇器表項(xiàng)之一。 通過按照包括在數(shù)據(jù)分組報(bào)頭中的源地址和目的地址產(chǎn)生流散列比特310,相同
9數(shù)據(jù)流(從信源102 (圖IB)到目的地112 (圖IB))的數(shù)據(jù)分組在中繼端口選擇器表302 (圖 3)中選擇相同中繼端口選擇器表項(xiàng)。同樣,通過按照源地址和目的地址來選擇中繼選擇器 表項(xiàng),將數(shù)據(jù)流分配給與目的地112c (圖IB)相連的多個(gè)物理鏈路132c-e(圖IB)中。
圖5示出了如圖3所示的中繼端口選擇器表302。中繼端口選擇器表302包括多 個(gè)中繼端口選擇器表項(xiàng)500a-f。圖5示出了六個(gè)中繼端口選擇器表項(xiàng)500a-f。六個(gè)流散 列比特210是存儲(chǔ)在中繼選擇器表項(xiàng)302中六十四個(gè)包括500a-f的中繼端口選擇表項(xiàng)的 索引。每個(gè)中繼端口表項(xiàng)500a-h包括交換機(jī)IOO(圖IB)中每個(gè)出口端口 136a-h各自的 出口端口比特502a-h。 中繼端口選擇器表項(xiàng)500a具有八個(gè)出口端口比特502aa-ah ;S卩,交換機(jī)100 (圖 IB)中每個(gè)出口端口 136a-h的出口端口比特502aa-ah。本發(fā)明并不局限于帶有八個(gè)出口 端口 136a-h(圖IB)的交換機(jī),通過為中繼端口選擇器表項(xiàng)500a-h中的每個(gè)出口端口設(shè)置 一個(gè)比特就可以支持任何數(shù)目的出口端口 136(圖1B)。中繼端口表項(xiàng)500中的出口端口比 特狀態(tài)決定數(shù)據(jù)分組是否要轉(zhuǎn)發(fā)到各自的出口端口 136a-h(圖1B)。在如圖5所示的實(shí)施 例中,如果中繼端口選擇器表項(xiàng)500a中各自的出口端口比特502設(shè)置為"1 ",數(shù)據(jù)分組就可 以轉(zhuǎn)發(fā)到出口端口 136a-h(圖1B)。在另一個(gè)實(shí)施例中,如果中繼端口選擇器表項(xiàng)500a中 各自的出口端口比特502設(shè)置為"0",數(shù)據(jù)分組就可以轉(zhuǎn)發(fā)到出口端口 136a-h(圖IB)。
與出口端口 136c, 136d, 136f (圖IB)有關(guān)的出口端口比特502ac, 502ad和502af 都是中繼組134(圖1B)的成員。在每個(gè)中繼端口選擇器表項(xiàng)500中,隨著各自的出口端 口比特502設(shè)置為"1",就啟用了中繼組134(圖IB)的成員之一。在中繼端口選擇器表項(xiàng) 500a中,出口端口比特502ac設(shè)置為"1"就啟用了邏輯鏈路134 (圖IB)中的出口端口 2 136c (圖IB)。在中繼端口選擇器表項(xiàng)500b中,出口端口比特502bd設(shè)置為"1 "就啟用了邏 輯鏈路134(圖1B)中的出口端口3 136d(圖lB)。在如圖5所示的實(shí)施例中,中繼端口選 擇器表項(xiàng)500c中的出口端口 5 136f (圖IB)得到啟用,中繼端口選擇器表項(xiàng)500d中的出 口端口 2 136c (圖IB)得到啟用,中繼端口選擇器表項(xiàng)500e中的出口端口 3 136d(圖IB) 得到啟用,中繼端口選擇器表項(xiàng)500f中的出口端口 5 136f (圖IB)得到啟用。
端口選擇器表中端口選擇器表項(xiàng)500的分配決定了通過每個(gè)邏輯鏈路中的物理 鏈路來轉(zhuǎn)發(fā)數(shù)據(jù)分組的數(shù)目。如果所有的物理鏈路以相同的速度傳輸數(shù)據(jù)分組,按照所 述數(shù)目的端口選擇器表項(xiàng)500啟用邏輯鏈路中的每個(gè)物理鏈路,就可以均勻地分配數(shù)據(jù)分 組。 另一選擇是,按照所述數(shù)目的端口選擇器表項(xiàng)500啟用邏輯鏈路中的物理鏈路, 較大百分比的數(shù)據(jù)分組按照邏輯鏈路中特定的物理鏈路來轉(zhuǎn)發(fā)。對(duì)于通過邏輯鏈路與交 換機(jī)相連的目的地,較大百分比的數(shù)據(jù)分組按照所述邏輯鏈路中速度最快的物理鏈路來轉(zhuǎn) 發(fā)。 例如,如果物理鏈路132c是1G比特每秒的鏈路,而物理鏈路132d-e是100M比特 每秒的鏈路,就可以產(chǎn)生存儲(chǔ)在中繼端口選擇器302中的中繼端口選擇器表項(xiàng)500,以致于 80%的數(shù)據(jù)分組按照物理鏈路132c來轉(zhuǎn)發(fā),而10%的數(shù)據(jù)分組按照每個(gè)物理鏈路132d-e 來轉(zhuǎn)發(fā)。 因此,按照邏輯鏈路中特定物理鏈路傳輸?shù)臄?shù)據(jù)分組比例取決于端口選擇器表 302中端口選擇器表項(xiàng)500的分配。
圖6示出了如圖5所示的每個(gè)中繼端口選擇器項(xiàng)500的組合,邏輯端口轉(zhuǎn)發(fā)向量 項(xiàng)600,為目的地112c從源端口 102a(圖1)接收的數(shù)據(jù)分組的中繼組成員向量項(xiàng)604。中 繼端口選擇器項(xiàng)500a按照中繼端口選擇器向量312轉(zhuǎn)發(fā)到向量合成邏輯306。邏輯端口 轉(zhuǎn)發(fā)向量項(xiàng)600按照邏輯端口轉(zhuǎn)發(fā)向量314轉(zhuǎn)發(fā)到向量合成邏輯306。中繼組成員向量項(xiàng) 604按照中繼組成員向量320轉(zhuǎn)發(fā)到向量合成邏輯306。 中繼組成員向量項(xiàng)604是為源端口 102a(圖1)選擇的向量。源端口 102a(圖1) 與入口端口O 138a相連,在這個(gè)示例中,它是單一物理鏈路。因此,比特604a設(shè)置為"l", 用來指示源端口 102a應(yīng)該與哪一個(gè)端口相連。 邏輯端口轉(zhuǎn)發(fā)向量項(xiàng)600具有設(shè)置為"l"的比特600f,600d,600c,以使得數(shù)據(jù)分 組轉(zhuǎn)發(fā)到出口端口 136c,136d,136f(圖IB);即邏輯鏈路134中所有的出口端口 136。所有 其它的比特600g, 600h, 600e, 600a, 600b都設(shè)置為"0",使得數(shù)據(jù)分組轉(zhuǎn)發(fā)到各自的出口端 口 136(圖IB)。中繼端口選擇器項(xiàng)500a具有設(shè)置為"l"的比特502ac,以便選擇出口端口 2 136c (圖IB)。 向量合成邏輯306將中繼組成員向量項(xiàng)604反相,并執(zhí)行比特級(jí)的邏輯"AND"功 能,以便合成中繼端口選擇器項(xiàng)500a,和反相的中繼組成員向量項(xiàng)604。合成得到的轉(zhuǎn)發(fā)向 量項(xiàng)602具有設(shè)置為"1"的比特602,使得要轉(zhuǎn)發(fā)的數(shù)據(jù)流的數(shù)據(jù)分組轉(zhuǎn)發(fā)到出口端口 2 136c (圖IB)。 使中繼組成員向量604反相是為了消除回波,即如果邏輯鏈路接收到數(shù)據(jù)分組, 就不轉(zhuǎn)發(fā)邏輯鏈路上的數(shù)據(jù)分組。例如,因?yàn)槿肟诙丝? 138c和出口端口5 136f是相同 的邏輯鏈路134的成員,所以在入口端口2 138c接收的數(shù)據(jù)分組不從出口端口 5 136f轉(zhuǎn) 發(fā)。 因此,邏輯端口轉(zhuǎn)發(fā)向量314啟用了邏輯鏈路134(圖1B)中所有的入口端口,并 且中繼端口選擇器向量312選擇邏輯鏈路134(圖1B)中物理鏈路之一。通過合成中繼端 口選擇器向量312,中繼組成員向量320和邏輯端口轉(zhuǎn)發(fā)向量314,向量合成邏輯306產(chǎn)生 轉(zhuǎn)發(fā)向量114。 圖7是使用中繼組成員向量320的內(nèi)容修改存儲(chǔ)在轉(zhuǎn)發(fā)數(shù)據(jù)庫304中的邏輯端口 轉(zhuǎn)發(fā)向量314的步驟的流程圖。現(xiàn)參考如圖3所示的方框圖對(duì)所述步驟進(jìn)行說明。
在步驟700,將包括在接收的數(shù)據(jù)分組中并包括源地址的搜索關(guān)鍵字316轉(zhuǎn)發(fā)到 轉(zhuǎn)發(fā)數(shù)據(jù)庫。同樣,在其中收到接收的數(shù)據(jù)分組的入口端口成員322被轉(zhuǎn)發(fā)到中繼組成員 表318。流程轉(zhuǎn)入步驟702。 在步驟702,轉(zhuǎn)發(fā)數(shù)據(jù)庫確定是否存在與搜索關(guān)鍵字316相對(duì)應(yīng)的項(xiàng)。如果存在, 流程轉(zhuǎn)入步驟704,否則,流程轉(zhuǎn)入步驟708。 在步驟704,存儲(chǔ)在轉(zhuǎn)發(fā)數(shù)據(jù)庫項(xiàng)中與搜索關(guān)鍵字316相對(duì)應(yīng)的學(xué)習(xí)端口號(hào)324被 轉(zhuǎn)發(fā)到中繼組成員表318。學(xué)習(xí)端口號(hào)324是包括在接收的數(shù)據(jù)分組中的源地址在這個(gè)地 方被學(xué)習(xí)的入口端口 。流程轉(zhuǎn)入步驟706。 在步驟706,檢查中繼組成員表318,以看與學(xué)習(xí)端口號(hào)324相對(duì)應(yīng)的比特是否在 源端口號(hào)322的中繼組成員向量320中設(shè)置為"l"。如果設(shè)置為"l",因?yàn)闆]有在新的端口 收到接收的數(shù)據(jù)分組,處理過程結(jié)束。否則,流程轉(zhuǎn)入步驟708。 在步驟708,接收的數(shù)據(jù)分組到達(dá)除了第一次學(xué)習(xí)的入口端口之外的端口,或者除了數(shù)據(jù)分組第一次從源地址被接收的入口端口之外的端口 。因此,需要使用入口端口號(hào)322
和與所述入口端口號(hào)322相同的中繼組成員的其它端口來更新邏輯端口轉(zhuǎn)發(fā)向量314。與
入口端口號(hào)322相對(duì)應(yīng)的中繼組成員向量320按照更新326來轉(zhuǎn)發(fā),以致于轉(zhuǎn)發(fā)數(shù)據(jù)庫304
可以修改或者更新與源地址相對(duì)應(yīng)的邏輯端口轉(zhuǎn)發(fā)向量314。流程結(jié)束。 盡管參照優(yōu)選的實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但是本領(lǐng)域的技人員應(yīng)認(rèn)識(shí)到,形
式上和細(xì)節(jié)上的變化都不會(huì)超出所附權(quán)利要求限定的本發(fā)明的范圍。
權(quán)利要求
1. 一種交換機(jī),包括連接目的地到交換機(jī)的邏輯鏈接,所述邏輯鏈接包括與交換機(jī)中多個(gè)端口相連的多個(gè) 物理鏈路;流散列選擇器,按照包括在接收的數(shù)據(jù)中的目的地址和源地址執(zhí)行的功能的結(jié)果和數(shù) 據(jù)鏈接報(bào)頭中的類型字段的內(nèi)容選擇的目的地址和源地址來為接收的數(shù)據(jù)分組選擇流散 列;中繼端口選擇器,用于選擇多個(gè)物理鏈接之一,按照流散列轉(zhuǎn)發(fā)接收的數(shù)據(jù),并將相同 流的數(shù)據(jù)轉(zhuǎn)發(fā)到交換機(jī)接收的順序的目的地;向量合成器,根據(jù)邏輯端口轉(zhuǎn)發(fā)向量和中繼端口選擇器選擇的中繼端口項(xiàng)的組合選擇 交換機(jī)中的端口 ,以便在邏輯鏈接中的一個(gè)物理鏈接上轉(zhuǎn)發(fā)接收的數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的交換機(jī),其特征在于在邏輯鏈接中的一個(gè)物理鏈接上的數(shù)據(jù) 轉(zhuǎn)換率不同于在另一個(gè)物理鏈接上的數(shù)據(jù)轉(zhuǎn)換率。
3. 根據(jù)權(quán)利要求1所述的交換機(jī),其特征在于多個(gè)端口是連續(xù)的。
4. 根據(jù)權(quán)利要求1所述的交換機(jī),其特征在于多個(gè)端口是非連續(xù)的。
5. 根據(jù)權(quán)利要求1所述的交換機(jī),其特征在于目的地址是Ethernet目的地址,源地址 是Ethernet源地址。
6. 根據(jù)權(quán)利要求1所述的交換機(jī),其特征在于目的地址是IP目的地址,源地址是IP源 地址。
7. 根據(jù)權(quán)利要求1所述的交換機(jī),其特征在于目的地址是TCP目的端口地址,源地址是 TCP源端口地址。
8. 根據(jù)權(quán)利要求1所述的交換機(jī),其特征在于目的地址是UDP目的端口地址,源地址是 UDP源端口地址。
9. 根據(jù)權(quán)利要求1所述的交換機(jī),其特征在于邏輯端口轉(zhuǎn)發(fā)向量包括對(duì)應(yīng)交換機(jī)中的 每個(gè)端口的比特,每個(gè)比特的狀態(tài)指明數(shù)據(jù)分組是否通過端口被轉(zhuǎn)發(fā)。
10. 根據(jù)權(quán)利要求1所述的交換機(jī),其特征在于對(duì)應(yīng)端口的中繼端口項(xiàng)中的比特的狀 態(tài)指明數(shù)據(jù)分組是否通過端口被轉(zhuǎn)發(fā)。
11. 根據(jù)權(quán)利要求1所述的交換機(jī),其特征在于中繼端口選擇器包括存儲(chǔ)多個(gè)中繼端 口項(xiàng)的中繼端口選擇器表,每個(gè)中繼端口項(xiàng)選擇多個(gè)物理鏈接之一,并在一個(gè)物理鏈接上 轉(zhuǎn)發(fā)接收的數(shù)據(jù),中繼端口項(xiàng)的分布確定通過邏輯鏈接中的每個(gè)物理鏈接轉(zhuǎn)發(fā)的數(shù)據(jù)分組 的數(shù)量。
12. 根據(jù)權(quán)利要求11所述的交換機(jī),其特征在于在邏輯鏈接中的特定物理鏈接上發(fā)送 的數(shù)據(jù)分組的比例取決于端口選擇器表中的中繼端口項(xiàng)的分布。
13. 根據(jù)權(quán)利要求12所述的交換機(jī),其特征在于分配中繼端口項(xiàng),以致在物理鏈接上 發(fā)送較多的數(shù)據(jù)分組快于邏輯鏈接中的其它物理鏈接。
14. 根據(jù)權(quán)利要求10所述的交換機(jī),其特征在于如果接收的數(shù)據(jù)是在邏輯鏈接中的任 一個(gè)物理鏈接上接收的,則不選擇端口 。
15. 根據(jù)權(quán)利要求1所述的交換機(jī),其特征在于從源地址到目的地址的相同流的數(shù)據(jù) 分組通過相同的出口端口在相同的物理鏈接上轉(zhuǎn)發(fā)。
16. —種交換機(jī),包括連接目的地到交換機(jī)的邏輯鏈接,所述邏輯鏈接包括與交換機(jī)中多個(gè)端口相連的多個(gè) 物理鏈路;流散列選擇器,按照包括在接收的數(shù)據(jù)中的目的地址和源地址執(zhí)行的功能的結(jié)果和數(shù) 據(jù)鏈接報(bào)頭中的類型字段的內(nèi)容選擇的目的地址和源地址來為接收的數(shù)據(jù)分組選擇流散 列;存儲(chǔ)器,用戶存儲(chǔ)交換機(jī)接收的數(shù)據(jù)分組;中繼端口選擇器,用于選擇多個(gè)物理鏈接之一,按照流散列轉(zhuǎn)發(fā)接收的數(shù)據(jù),并將相同 流的數(shù)據(jù)轉(zhuǎn)發(fā)到交換機(jī)接收的順序的目的地。
17. 根據(jù)權(quán)利要求16所述的交換機(jī),其特征在于還包括向量合成器,根據(jù)中繼組成員向量選擇端口 。
18. 根據(jù)權(quán)利要求17所述的交換機(jī),其特征在于中繼組成員向量包括交換機(jī)中的每個(gè) 端口的比特,每個(gè)比特的狀態(tài)指明對(duì)應(yīng)的端口是否是中繼組的成員。
19. 根據(jù)權(quán)利要求17所述的交換機(jī),其特征在于使用中繼端口成員向量執(zhí)行硬件學(xué)習(xí)。
全文摘要
文檔編號(hào)H04L12/56GK101697524SQ20091017495
公開日2010年4月21日 申請(qǐng)日期2001年1月17日 優(yōu)先權(quán)日2000年2月29日
發(fā)明者理查德·M·懷亞特 申請(qǐng)人:睦塞德技術(shù)公司;