專利名稱:在整個設(shè)備堆棧中的端口聚合的制作方法
背景網(wǎng)絡(luò)交換機(jī)、路由器等等被用來通過在諸如分組的分段中發(fā)送信息而在網(wǎng)絡(luò)上分發(fā)信息。一個分組典型地包括“報頭”和“有效載荷”,該報頭存儲用于路由該分組的目的地地址,該有效載荷存儲通過網(wǎng)絡(luò)發(fā)送的信息的一部分。為了把分組轉(zhuǎn)發(fā)到預(yù)定的目的地,某些網(wǎng)絡(luò)包括一組路由器,該組路由器對于網(wǎng)絡(luò)設(shè)備而言作為單個大路由器出現(xiàn),其被稱作一個堆棧(stack)。通過對路由器進(jìn)行分組以便產(chǎn)生堆棧,在該堆棧中的各路由器之間共享多種管理功能和操作規(guī)則。
附圖描述
圖1示出用于轉(zhuǎn)發(fā)分組的系統(tǒng)的方框圖;圖2A示出路由器堆棧的方框圖;圖2B示出路由器的方框圖;圖2C示出設(shè)備矢量;圖3示出轉(zhuǎn)發(fā)地址表;圖4示出端口聚合表;圖5示出堆棧設(shè)備表;圖6示出設(shè)備聚合表。
描述參考圖1,系統(tǒng)100用于在網(wǎng)絡(luò)102、104(例如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、因特網(wǎng)等等)與計算機(jī)系統(tǒng)106-116之間傳輸分組,該系統(tǒng)100包括連接在一起以便產(chǎn)生路由器堆棧的3個路由器118、120、122。在這種安排中,路由器118-122被用于產(chǎn)生堆棧以及傳送分組,然而,在其他安排中,系統(tǒng)100包括網(wǎng)絡(luò)交換機(jī)、集線器或者其他分組轉(zhuǎn)發(fā)設(shè)備的堆棧。此外,該堆??梢园ú煌愋偷姆纸M轉(zhuǎn)發(fā)設(shè)備的組合。例如,利用網(wǎng)絡(luò)交換機(jī)和/或路由器的組合產(chǎn)生的堆??梢员话ㄔ谙到y(tǒng)100中。
參考圖2A,每個計算機(jī)系統(tǒng)可以通過物理鏈接而連接到路由器。一般來說,在路由器和計算機(jī)系統(tǒng)之間的特定鏈接的帶寬受到該路由器的容量的限制,更特別地是受到相關(guān)端口的特性的限制。為了提高所述堆棧和計算機(jī)系統(tǒng)之間的帶寬,一個或多個路由器的端口被聚合,從而使其相應(yīng)的物理鏈接表現(xiàn)為單個邏輯鏈接。例如,路由器118的端口2和5可以被聚合,以便提高路由器118和計算機(jī)系統(tǒng)106之間的帶寬。在另一個例子中,路由器118的端口4、路由器120的端口1和路由器120的端口4被聚合,以便提高該堆棧和計算機(jī)系統(tǒng)110之間的帶寬。在其他例子中,通過選擇多個端口來縮放兩個網(wǎng)絡(luò)(例如網(wǎng)絡(luò)102、104)之間的邏輯鏈接的帶寬。
在一個例子中,所述堆棧通過路由器118從網(wǎng)絡(luò)102接收分組流124。一旦接收到之后,包括在分組流124中的各個分組被傳送到它們的預(yù)定目的地,這是基于每個對應(yīng)分組的報頭數(shù)據(jù)而確定的。例如,分組1的報頭包括表示該分組的目的地是計算機(jī)系統(tǒng)112的數(shù)據(jù)。類似地,分組2包括一個報頭,然而該分組預(yù)定被傳送到計算機(jī)系統(tǒng)110和116。在另一個例子中,包括在分組流124中的一個或多個分組的目的地是網(wǎng)絡(luò)104,以用于傳送到一個或多個計算機(jī)系統(tǒng)或者其他類型的目的地(例如服務(wù)器、個人數(shù)字助理(PDA)、蜂窩電話等等)。
參考圖2A和2B,為了基于分組的預(yù)定目的地在各計算機(jī)系統(tǒng)和網(wǎng)絡(luò)之間傳送分組,在所述堆棧中的各路由器之間傳遞所述分組。例如,為了把分組2傳送到計算機(jī)系統(tǒng)116,該分組被從路由器118傳遞到路由器120再到路由器122。分組2被從路由器122傳送到計算機(jī)系統(tǒng)116,從而離開該堆棧。
當(dāng)由路由器(例如路由器118)接收到分組時,所述分組被傳遞到交換機(jī)設(shè)備(例如交換機(jī)設(shè)備202),該交換機(jī)設(shè)備使用存儲在路由器的本地存儲器中的一個或多個表(例如轉(zhuǎn)發(fā)地址表和端口聚合表)確定所述分組的預(yù)定目的地以及用來發(fā)送每個分組的(一個或多個)適當(dāng)端口。在每個路由器中的(在下面詳細(xì)描述的)所述表在整個堆棧中包含完全相同的信息。換句話說,路由器118中的轉(zhuǎn)發(fā)地址表所包含的信息與路由器120或路由器122中的轉(zhuǎn)發(fā)地址表相同。
如果從堆棧外部的設(shè)備(例如網(wǎng)絡(luò)102、計算機(jī)系統(tǒng)106等等)接收到分組的話,由交換機(jī)設(shè)備202執(zhí)行分組分類器204,以便確定該分組的目的地。為了確定分組目的地,分組分類器204訪問存儲在該分組的報頭中的數(shù)據(jù),并且把該報頭中的數(shù)據(jù)與存儲在轉(zhuǎn)發(fā)地址表206中的數(shù)據(jù)相比較,其中該轉(zhuǎn)發(fā)地址表206被存儲在存儲器208(例如隨機(jī)存取存儲器(RAM)、靜態(tài)RAM(SRAM)、動態(tài)RAM(DRAM)、只讀存儲器(ROM)等等)中,該存儲器208被包括在路由器118中。
參考圖3,其中示出了轉(zhuǎn)發(fā)地址表206的細(xì)節(jié)。轉(zhuǎn)發(fā)地址表206包括用于把目的地地址302(例如計算機(jī)系統(tǒng)108、計算機(jī)系統(tǒng)110)與轉(zhuǎn)發(fā)地址304相比配,該轉(zhuǎn)發(fā)地址304由端口號和設(shè)備號(例如路由器118的端口3)指定或者由聚合標(biāo)識符(例如聚合ID2)指定。
如果所述比較結(jié)果表明該分組的目的地是通過單個端口連接到其中執(zhí)行分組分類器204的該路由器的計算機(jī)系統(tǒng)(例如連接到路由器118的端口3的計算機(jī)系統(tǒng)108),則交換機(jī)設(shè)備202把該分組直接傳遞到該端口。
如果分組分類器204的比較結(jié)果表明該分組的目的地是通過單個端口連接到該堆棧中的不同路由器的計算機(jī)系統(tǒng)(例如連接到路由器122的端口3的計算機(jī)系統(tǒng)116),則該分組分類器204產(chǎn)生一個設(shè)備矢量并且將該設(shè)備矢量插入到該分組的報頭中(在下面詳細(xì)描述)。每個路由器使用該設(shè)備矢量來確定所要使用的適當(dāng)路由器,以便高效地通過所述堆棧發(fā)送該分組。通過在進(jìn)入該堆棧的每個分組中插入設(shè)備矢量而減少了分組處理時間,這是由于每個路由器不需要單獨(dú)地確定在該堆棧中傳遞的每個分組的目的地。通過減少處理時間,所節(jié)省的時鐘周期可以被用于所述路由器的其他處理操作。
如果分組分類器204的比較結(jié)果表明所述分組的目的地是通過由聚合ID表示的邏輯鏈接而連接到所述堆棧中的一個或多個路由器的計算機(jī)系統(tǒng)(例如通過由聚合ID 2表示的邏輯鏈接而連接到該堆棧的計算機(jī)系統(tǒng)110),該分組分類器204使用該聚合ID從端口聚合表402中取回一個聚合條目。
參考圖4,其中示出了端口聚合表402。該端口聚合表402的每個條目包括聚合ID 404(例如聚合ID2)和與該聚合ID 404相關(guān)聯(lián)的一組端口406(例如路由器118的端口4,路由器120的端口1、4,以及路由器122的端口4;統(tǒng)稱為“成員端口”)。在一種實現(xiàn)方式中,在端口聚合表402中提供與成員端口406相關(guān)的鏈接狀態(tài)408。該鏈接狀態(tài)408表示物理鏈接是“上行(UP)”還是“下行(DOWN)”。
由交換機(jī)設(shè)備202執(zhí)行的端口選擇器210選擇所取回的聚合條目的其中一個成員端口406以便把分組引導(dǎo)到該端口。在一種實現(xiàn)方式中,端口選擇器210使用一種取決于系統(tǒng)要求和實現(xiàn)方式的負(fù)載平衡算法以便在聚合條目的各成員端口406之間分配外出業(yè)務(wù)量。例如,該負(fù)載平衡算法使用基于硬件的散列(hashing)(其具有從所述分組的報頭字段導(dǎo)出的散列參數(shù))來平衡各成員端口406上的業(yè)務(wù)量。在另一個例子中,該負(fù)載平衡算法通過由協(xié)議軟件配置的成員端口轉(zhuǎn)發(fā)表來顯式地控制到各成員端口406的轉(zhuǎn)發(fā)。由于端口聚合表中的聚合條目在整個堆棧中是相同的,因此該負(fù)載平衡算法在任何聚合條目上的性能都將導(dǎo)致相同的成員端口選擇,而與哪個路由器的端口選擇器正在執(zhí)行所述負(fù)載平衡無關(guān)。也就是說,如果路由器118中的端口選擇器選擇把分組引導(dǎo)到路由器120的端口4,那么路由器120中的端口選擇器也將選擇把該分組引導(dǎo)到路由器120的端口4。
如果由端口選擇器210選擇的端口連接到其中執(zhí)行分組分類器204的該路由器(例如路由器118的端口4),則交換機(jī)設(shè)備202直接把該分組傳遞到該端口。如果由端口選擇器210選擇的端口處于所述堆棧內(nèi)的不同路由器中(例如路由器120的端口4),則該分組分類器204產(chǎn)生一個設(shè)備矢量并且把該設(shè)備矢量插入到該分組的報頭中。該設(shè)備矢量標(biāo)識具有所選端口的路由器,并且被每個路由器使用來確定適當(dāng)?shù)穆酚善饕员愀咝У赝ㄟ^該堆棧發(fā)送該分組。該分組分類器把該分組發(fā)送到分組轉(zhuǎn)發(fā)器212。
參考圖2A、2B和2C,所述堆棧中的路由器118-122當(dāng)中的每一個包括6個端口(例如端口1-6),所述端口允許在各路由器之間進(jìn)行雙向分組傳輸。例如,路由器118中的端口6連接到路由器120中的端口2。類似地,路由器120中的端口6連接到路由器122中的端口1,以用于在任一方向上傳輸分組。此外,路由器118-122中的特定端口分別連接到計算機(jī)系統(tǒng)106-116和網(wǎng)絡(luò)12、14。例如,路由器118中的端口2、5連接到計算機(jī)系統(tǒng)106,路由器118中的端口3連接到計算機(jī)系統(tǒng)108,路由器120中的端口1、4和路由器118中的端口4連接到計算機(jī)系統(tǒng)110。路由器118中的端口1連接到網(wǎng)絡(luò)102以用于雙向分組傳輸。在該特定例子中,每個路由器118-122包括用于傳輸分組的6個端口。然而,在其他安排中,每個路由器118-122包括多于6個端口(例如24個端口、48個端口等等),從而該堆棧的端口聚合比由該堆棧中的3個6端口路由器所產(chǎn)生的18端口聚合更大(例如72個端口、144個端口等等)。但是,路由器118-122當(dāng)中的一個或多個也可以包括少于6個端口。此外,雖然所述堆棧包括3個路由器118-122,但是在其他安排中,更多或更少的路由器或者其他類型的分組轉(zhuǎn)發(fā)設(shè)備被連接起來以便產(chǎn)生堆棧并且傳送分組。在一些安排中,所述分組轉(zhuǎn)發(fā)設(shè)備的堆棧以更小的規(guī)模被實現(xiàn)。例如,所述分組轉(zhuǎn)發(fā)設(shè)備的堆棧被實現(xiàn)在一個處理器(例如微處理器、分組處理器等等)或者一組處理器中。
一旦分組進(jìn)入了路由器118-122的堆棧,諸如圖2C的設(shè)備矢量230的設(shè)備矢量就被插入到該分組的報頭中,以便幫助通過該堆棧路由該分組。該設(shè)備矢量230是一個條目,其包括用來標(biāo)識該堆棧中的哪一個或者哪一些路由器需要接收該分組的數(shù)據(jù)。典型地,該設(shè)備矢量230由該堆棧中的首先接收到該分組的第一路由器或者其他類型的分組轉(zhuǎn)發(fā)設(shè)備(例如網(wǎng)絡(luò)交換機(jī)、集線器等等)插入。例如,由于在該堆棧中所述分組流124由路由器118接收,因此路由器118把設(shè)備矢量230插入到包括在該分組流124內(nèi)的適當(dāng)?shù)姆纸M(例如分組1、分組2等等)中?;蛘?,如果路由器122從網(wǎng)絡(luò)104接收到一個或多個分組,則路由器122就是堆棧進(jìn)入點(diǎn),并且路由器122把設(shè)備矢量230插入到適當(dāng)?shù)乃邮辗纸M中。
由于所述設(shè)備矢量被用于在包括于所述堆棧中的各路由器118-122之間引導(dǎo)分組,因此當(dāng)該分組離開路由器118-122的堆棧時,典型地從該分組中去除該設(shè)備矢量。在通過端口3把分組傳遞到計算機(jī)系統(tǒng)116之前,路由器122從該分組中去除設(shè)備矢量260。
每個設(shè)備矢量包括標(biāo)識哪一個或者哪一些路由器需要接收該分組的數(shù)據(jù),以便把該分組傳送到位于該堆棧外部的其預(yù)定目的地。由于分組1的預(yù)定目的地是計算機(jī)系統(tǒng)112,因此需要把該分組從路由器118傳輸?shù)铰酚善?20,以便將其傳送到計算機(jī)系統(tǒng)112。因此,被插入到分組1中的設(shè)備矢量240標(biāo)識路由器120的端口5。類似地,由于分組2的預(yù)定目的地是計算機(jī)系統(tǒng)110和116,因此端口選擇器210使用所述負(fù)載平衡算法選擇了路由器120的端口4,被插入到分組2中的設(shè)備矢量250標(biāo)識路由器120的端口4和路由器122的端口3,以便分別把分組2的拷貝傳送到計算機(jī)系統(tǒng)110和116。在另一個例子中,如果要把分組從所述堆棧傳輸?shù)骄W(wǎng)絡(luò)104,則所述設(shè)備矢量包括標(biāo)識路由器122的數(shù)據(jù),這是由于以網(wǎng)絡(luò)104為目的地的分組是由路由器122從該堆棧中發(fā)送出去的。
設(shè)備矢量230被插入到分組中,以便標(biāo)識需要接收分組從而將其傳送到一個或多個計算機(jī)系統(tǒng)106-116或者網(wǎng)絡(luò)102、104的一個或多個特定路由器。設(shè)備矢量230包括一系列比特,所述一系列比特被單獨(dú)指定給所述堆棧中的路由器118-122的其中之一。例如,設(shè)備矢量230包括4個比特一組的16個比特,以用來代表包括在該堆棧中的16個路由器或者其他分組轉(zhuǎn)發(fā)設(shè)備。這里,設(shè)備矢量230中的最低有效位232表示所述相關(guān)分組是否需要被發(fā)送到路由器118,比特234表示該分組是否需要被發(fā)送到路由器120。在所述各比特中,比特236表示白分組是否需要被發(fā)送到路由器122。由于本例包括3個路由器,因此需要3個比特232-236,以便為每個路由器指定一個比特。然而,由于設(shè)備矢量230包括16個比特,因此在其他安排中,剩余的13個比特可以被指定給包括在系統(tǒng)100的堆棧中的附加的分組轉(zhuǎn)發(fā)設(shè)備。此外,雖然設(shè)備矢量230包括16個比特以用于指定給路由器或者其他分組轉(zhuǎn)發(fā)設(shè)備,但是在其他安排中,設(shè)備矢量230可以包括更多或更少的比特。
在本例中,路由器118把設(shè)備矢量240插入到分組1中,并且把設(shè)備矢量250插入到分組2中。此外,由于分組1預(yù)定被傳送到計算機(jī)112,因此與路由器120相關(guān)的比特242被設(shè)置到邏輯“1”,以便標(biāo)識分組1將被傳送到路由器120。在識別出比特242被設(shè)置到邏輯“1”之后,分組轉(zhuǎn)發(fā)器212訪問存儲器208中的堆棧設(shè)備表502,以便確定用來發(fā)送該分組的路由器118中的一個或多個特定端口。在本例中,交換機(jī)設(shè)備202使用堆棧設(shè)備表502來確定通過端口6發(fā)送分組1,以便將該分組傳送到路由器120。類似地,對于分組2,與路由器120相關(guān)的比特252也被設(shè)置到邏輯“1”,從而表示分組2將被發(fā)送到路由器120,以便把該分組傳送到計算機(jī)系統(tǒng)110。此外,由于分組2是針對計算機(jī)系統(tǒng)116,因此設(shè)備矢量250中的比特254被設(shè)置到邏輯“1”,以便標(biāo)識該分組需要被發(fā)送到路由器122。雖然邏輯“1”被用于標(biāo)識將接收特定分組的路由器,但是在其他安排中可以顛倒邏輯狀態(tài),從而邏輯“0”被存儲在適當(dāng)?shù)脑O(shè)備矢量比特中以便標(biāo)識將接收分組的該特定路由器。
在接收到具有所插入的設(shè)備矢量的分組之后,接收方路由器使用各設(shè)備矢量比特來確定該分組的下一個目的地。由于比特242是唯一被設(shè)置到邏輯“1”的設(shè)備矢量240的比特,因此路由器120相對快速地確定分組1是針對連接到路由器120的其中一個設(shè)備(例如計算機(jī)系統(tǒng)110和112)。在路由器120處的交換機(jī)設(shè)備使用存儲在路由器120的本地存儲器中的一個或多個表確定分組1的預(yù)定目的地以及用來發(fā)送該分組的適當(dāng)端口。在這種情況下,存儲在分組1的報頭中的數(shù)據(jù)與存儲在路由器120中的轉(zhuǎn)發(fā)地址表的比較結(jié)果表明分組1的目的地是計算機(jī)系統(tǒng)112,該計算機(jī)系統(tǒng)112連接到路由器120的端口5。交換機(jī)設(shè)備202把分組1直接傳遞到端口5。
與分組1類似,被插入到分組2中的設(shè)備矢量250具有與路由器120相關(guān)的比特252,其也被設(shè)置到邏輯“1”。在這種情況下,存儲在分組2的報頭中的數(shù)據(jù)與存儲在路由器120中的轉(zhuǎn)發(fā)地址表的比較結(jié)果表明,分組2的目的地是計算機(jī)系統(tǒng)110,該計算機(jī)系統(tǒng)110通過由聚合ID 2標(biāo)識的邏輯鏈接而連接到該堆棧中的多個路由器。路由器120中的分組分類器使用聚合ID 2從端口聚合表中接收一個聚合條目。路由器120中的端口選擇器隨后使用負(fù)載平衡算法選擇所接收的聚合條目的其中一個成員端口以便把分組引導(dǎo)到該端口,并且所述交換機(jī)設(shè)備把分組2傳遞到所選的成員端口(例如端口4)。
此外,與路由器122相關(guān)的比特254也被設(shè)置到邏輯“1”,從而標(biāo)識分組2將被發(fā)送到路由器122。典型地,路由器120產(chǎn)生分組2的一個拷貝以便發(fā)送到路由器122。在發(fā)送分組2的該拷貝之前,設(shè)備矢量260被插入到該分組中,以便標(biāo)識路由器122將把該分組傳送到位于該堆棧外部的所連接的設(shè)備(例如計算機(jī)系統(tǒng)116、網(wǎng)絡(luò)104等等)。在本例中,由于分組2是針對連接到路由器122的計算機(jī)系統(tǒng)116,因此與路由器122相關(guān)的比特262被設(shè)置到邏輯“1”。
在接收到分組2的所述拷貝之后,路由器122通過訪問該分組中的報頭數(shù)據(jù)而識別出分組2預(yù)定被傳送到計算機(jī)系統(tǒng)116。路由器122處的交換機(jī)設(shè)備使用存儲在路由器122的本地存儲器中的一個或多個表確定分組2的預(yù)定目的地以及用來發(fā)送該分組的適當(dāng)端口。在這種情況下,存儲在分組2的報頭中的數(shù)據(jù)與存儲在路由器122中的轉(zhuǎn)發(fā)地址表的比較結(jié)果表明分組2的目的地是計算機(jī)系統(tǒng)116,該計算機(jī)系統(tǒng)116連接到路由器122的端口3。路由器122處的該交換機(jī)設(shè)備把該分組直接傳遞到端口3。
設(shè)備矢量260包括作為存儲在設(shè)備矢量250中的數(shù)據(jù)的一個子集的數(shù)據(jù)。特別地,設(shè)備矢量250具有被設(shè)置到邏輯“1”的兩個比特252、254以便標(biāo)識路由器120和122,而設(shè)備矢量260只具有被設(shè)置到邏輯“1”的比特262,這是因為路由器120已經(jīng)把分組2的一個拷貝傳送到計算機(jī)系統(tǒng)110。
在把分組2發(fā)送到計算機(jī)系統(tǒng)116之前,路由器120從該分組中去除設(shè)備矢量260。類似地,在把分組1傳送到計算機(jī)系統(tǒng)112以及把分組2傳送到計算機(jī)系統(tǒng)110之前,分別去除設(shè)備矢量240和250,這是由于所述分組將離開該堆棧。此外,由于分組一般不被返回到從中發(fā)送所述分組的堆棧設(shè)備,因此避免了無限的分組循環(huán)。
在本例中,在所述堆棧中的路由器118-122之間傳遞的分組是從網(wǎng)絡(luò)102接收的,并且被傳送到計算機(jī)系統(tǒng)110、112和116,所述計算機(jī)系統(tǒng)110、112和116分別連接到路由器120和122。然而,在其他例子中,分組是由堆棧從網(wǎng)絡(luò)104接收的,或者分組被傳送到網(wǎng)絡(luò)104。此外,可以在其他方向上傳遞分組,例如,可以從路由器118的端口1把分組發(fā)送到網(wǎng)絡(luò)102。
在交換機(jī)設(shè)備202上執(zhí)行的分組分類器204、分組轉(zhuǎn)發(fā)器212和端口選擇器210典型地被存儲在存儲器208中。然而,在其他安排中,分組分類器204、分組轉(zhuǎn)發(fā)器212和端口選擇器210被存儲在與交換機(jī)設(shè)備202通信的存儲設(shè)備(例如硬盤驅(qū)動器、CD-ROM等等)中。此外,在本例中,存儲器208與交換機(jī)設(shè)備202分開。然而,在其他安排中,存儲器208可以被包括在交換機(jī)設(shè)備202中。
參照圖5,分別存儲在路由器118、120和122中的堆棧設(shè)備表502、504和506包括用于把目的地路由器匹配到發(fā)送分組的特定端口的數(shù)據(jù)。例如,存儲在路由器118中的堆棧設(shè)備表502標(biāo)識用于把分組發(fā)送到路由器120和122的路由器118的端口。通過路由器118中的端口6發(fā)送的分組被傳送到路由器120,并且從路由器120被發(fā)送到路由器122。類似地,存儲在路由器120中的堆棧設(shè)備表504被用來確定用于把分組發(fā)送到路由器118和122的路由器120中的特定端口。特別地,通過經(jīng)由路由器120的端口2發(fā)送分組而把所述分組傳送到路由器118,并且通過經(jīng)由路由器120的端口6發(fā)送分組而把所述分組傳送到路由器122。此外,存儲在路由器122中的堆棧設(shè)備表506被用來確定用于把分組發(fā)送到路由器118和120的路由器122中的特定端口。特別地,通過路由器122的端口1來發(fā)送待傳送到路由器118或120的分組。
通過訪問被插入在分組中的設(shè)備矢量,在接收方路由器中執(zhí)行的分組轉(zhuǎn)發(fā)器212確定哪些比特被設(shè)置到邏輯“1”,并且隨后使用存儲在該路由器中的堆棧設(shè)備表502來確定用來發(fā)送該分組或者該分組的拷貝的一個或多個特定端口。例如,當(dāng)路由器118接收到分組1時,分組轉(zhuǎn)發(fā)器212訪問堆棧設(shè)備表502并且確定分組1應(yīng)被放置在端口1上以便發(fā)送到路由器120。典型地,堆棧設(shè)備表502-506當(dāng)中的每一個分別被存儲在包括于每個路由器內(nèi)的存儲器中,例如堆棧設(shè)備表502被存儲在路由器118的存儲器208中。然而,在某些安排中,堆棧設(shè)備表502-506被存儲在與相應(yīng)的路由器118-122通信的一個或多個存儲設(shè)備(例如硬盤驅(qū)動器、CD-ROM等等)中。
參照圖6,分別存儲在路由器118、120和122中的設(shè)備聚合表602、604和606包括用于把端口與聚合ID相匹配的數(shù)據(jù)。例如,存儲在路由器118中的設(shè)備聚合表602把端口4標(biāo)識為被指定給聚合ID 2,并且把端口5標(biāo)識為被指定給聚合ID 3。類似地,存儲在路由器120中的設(shè)備聚合表604把端口1、4標(biāo)識為被指定給聚合ID 2。此外,存儲在路由器122中的設(shè)備聚合表606把端口4標(biāo)識為被指定給聚合ID 2,并且把端口6標(biāo)識為被指定給聚合ID 3。
由所述交換機(jī)設(shè)備(例如路由器118的交換機(jī)設(shè)備202)執(zhí)行的表代理維護(hù)并且更新存儲在每個路由器中的端口聚合表和設(shè)備聚合表。例如,可以向被指定給特定聚合ID的該組端口中添加端口或者從中去除端口。在一個設(shè)備聚合表中所做的任何修改在所述堆棧中被傳播開來,并且被反應(yīng)在所有路由器中的端口聚合表和設(shè)備聚合表中。
其他實施例也落在所附權(quán)利要求書的范圍內(nèi)。下面的內(nèi)容是用于說明性的例子,而不意圖限制替換方案??梢园凑詹煌捻樞驁?zhí)行本文所描述的技術(shù)并且仍然可以獲得理想的結(jié)果。
權(quán)利要求
1.一種方法,包括在分組轉(zhuǎn)發(fā)設(shè)備的堆棧中的第一分組轉(zhuǎn)發(fā)設(shè)備處接收分組;提供具有多個條目的端口聚合表,其中至少一個條目標(biāo)識與該堆棧中的至少兩個分組轉(zhuǎn)發(fā)設(shè)備相關(guān)的多個端口;以及使用該分組和該端口聚合表來選擇該堆棧中的分組轉(zhuǎn)發(fā)設(shè)備的端口,以用于把該分組發(fā)送到該堆棧外部的設(shè)備。
2.權(quán)利要求1的方法,還包括使用所述分組和端口聚合表來執(zhí)行負(fù)載平衡操作,以便選擇該堆棧中的分組轉(zhuǎn)發(fā)設(shè)備的所述端口。
3.權(quán)利要求1的方法,其中,所選擇的端口是所述堆棧中的第一分組轉(zhuǎn)發(fā)設(shè)備的端口。
4.權(quán)利要求1的方法,其中,所選擇的端口是所述堆棧中的第二分組轉(zhuǎn)發(fā)設(shè)備的端口。
5.權(quán)利要求4的方法,還包括在所述分組中插入標(biāo)識所述堆棧中的第二分組轉(zhuǎn)發(fā)設(shè)備的矢量;以及使用該矢量和堆棧設(shè)備表來確定該堆棧中的第一分組轉(zhuǎn)發(fā)設(shè)備的端口,以用于把該分組發(fā)送到該堆棧中的第二分組轉(zhuǎn)發(fā)設(shè)備。
6.權(quán)利要求5的方法,其中,所述矢量包括標(biāo)識所述堆棧中的第二分組轉(zhuǎn)發(fā)設(shè)備的比特。
7.權(quán)利要求1的方法,其中,第一分組轉(zhuǎn)發(fā)設(shè)備包括路由器。
8.一種計算機(jī)程序產(chǎn)品,其被有形地包含在信息載體中,該計算機(jī)程序產(chǎn)品適于使得機(jī)器執(zhí)行以下操作在設(shè)備的堆棧中的第一分組轉(zhuǎn)發(fā)設(shè)備處接收分組;提供具有多個條目的端口聚合表,其中至少一個條目標(biāo)識與該堆棧中的至少兩個分組轉(zhuǎn)發(fā)設(shè)備相關(guān)的多個端口;以及使用該分組和該端口聚合表來選擇該堆棧中的分組轉(zhuǎn)發(fā)設(shè)備的端口,以用于把該分組發(fā)送到該堆棧外部的設(shè)備。
9.權(quán)利要求8的計算機(jī)程序產(chǎn)品,其還適于使得機(jī)器執(zhí)行以下操作使用所述分組和端口聚合表來執(zhí)行負(fù)載平衡操作,以便選擇該堆棧中的分組轉(zhuǎn)發(fā)設(shè)備的所述端口。
10.權(quán)利要求8的計算機(jī)程序產(chǎn)品,其還適于使得機(jī)器執(zhí)行以下操作使用所述分組和端口聚合表來執(zhí)行負(fù)載平衡操作,以便選擇該堆棧中的分組轉(zhuǎn)發(fā)設(shè)備的所述端口。
11.權(quán)利要求8的計算機(jī)程序產(chǎn)品,其中,所選擇的端口是所述堆棧中的第一分組轉(zhuǎn)發(fā)設(shè)備的端口。
12.權(quán)利要求8的計算機(jī)程序產(chǎn)品,其中,所選擇的端口是所述堆棧中的第二分組轉(zhuǎn)發(fā)設(shè)備的端口。
13.權(quán)利要求8的計算機(jī)程序產(chǎn)品,其還適于使得機(jī)器執(zhí)行以下操作在所述分組中插入標(biāo)識所述堆棧中的第二分組轉(zhuǎn)發(fā)設(shè)備的矢量;以及使用該矢量和堆棧設(shè)備表來確定該堆棧中的第一分組轉(zhuǎn)發(fā)設(shè)備的端口,以用于把該分組發(fā)送到該堆棧中的第二分組轉(zhuǎn)發(fā)設(shè)備。
14.權(quán)利要求13的計算機(jī)程序產(chǎn)品,其中,所述矢量包括標(biāo)識所述堆棧中的第二分組轉(zhuǎn)發(fā)設(shè)備的比特。
15.權(quán)利要求8的計算機(jī)程序產(chǎn)品,其中,第一分組轉(zhuǎn)發(fā)設(shè)備包括路由器。
16.一種系統(tǒng),包括在分組轉(zhuǎn)發(fā)設(shè)備的堆棧中的第一分組轉(zhuǎn)發(fā)設(shè)備中的交換機(jī)設(shè)備,該交換機(jī)設(shè)備能夠執(zhí)行以下操作接收分組;提供具有多個條目的端口聚合表,其中至少一個條目標(biāo)識與該堆棧中的至少兩個分組轉(zhuǎn)發(fā)設(shè)備相關(guān)的多個端口;以及使用該分組和該端口聚合表來選擇該堆棧中的分組轉(zhuǎn)發(fā)設(shè)備的端口,以用于把該分組發(fā)送到該堆棧外部的設(shè)備。
17.權(quán)利要求16的系統(tǒng),其中,所述交換機(jī)設(shè)備還能夠執(zhí)行以下操作使用所述分組和端口聚合表來執(zhí)行負(fù)載平衡操作,以便選擇該堆棧中的分組轉(zhuǎn)發(fā)設(shè)備的所述端口。
18.權(quán)利要求16的系統(tǒng),其中,所述交換機(jī)設(shè)備還能夠執(zhí)行以下操作在所述分組中插入標(biāo)識所述堆棧中的第二分組轉(zhuǎn)發(fā)設(shè)備的矢量;以及使用該矢量和堆棧設(shè)備表來確定該堆棧中的第一分組轉(zhuǎn)發(fā)設(shè)備的端口,以用于把該分組發(fā)送到該堆棧中的第二分組轉(zhuǎn)發(fā)設(shè)備。
19.在分組轉(zhuǎn)發(fā)設(shè)備的堆棧中的分組轉(zhuǎn)發(fā)設(shè)備,該設(shè)備包括用來接收分組的輸入端口;用來傳送所接收的分組的一個或多個輸出端口;具有多個條目的端口聚合表,其中至少一個條目標(biāo)識與該堆棧中的至少兩個分組轉(zhuǎn)發(fā)設(shè)備相關(guān)的多個端口;以及交換機(jī)設(shè)備,其能夠執(zhí)行以下操作接收分組;以及使用該分組和該端口聚合表來選擇該堆棧中的分組轉(zhuǎn)發(fā)設(shè)備的端口,以用于把該分組發(fā)送到該堆棧外部的設(shè)備。
20.權(quán)利要求19的分組轉(zhuǎn)發(fā)設(shè)備,其中,所述交換機(jī)設(shè)備還能夠執(zhí)行以下操作使用所述分組和端口聚合表來執(zhí)行負(fù)載平衡操作,以便選擇該堆棧中的分組轉(zhuǎn)發(fā)設(shè)備的所述端口。
21.權(quán)利要求19的設(shè)備,其中,所述交換機(jī)設(shè)備還能夠執(zhí)行以下操作在所述分組中插入標(biāo)識所述堆棧中的第二分組轉(zhuǎn)發(fā)設(shè)備的矢量;以及使用該矢量和堆棧設(shè)備表來確定該堆棧中的第一分組轉(zhuǎn)發(fā)設(shè)備的端口,以用于把該分組發(fā)送到該堆棧中的第二分組轉(zhuǎn)發(fā)設(shè)備。
全文摘要
本發(fā)明涉及用于執(zhí)行以下操作的技術(shù)在分組轉(zhuǎn)發(fā)設(shè)備的堆棧中的第一分組轉(zhuǎn)發(fā)設(shè)備處接收分組;提供具有多個條目的端口聚合表,其中至少一個條目標(biāo)識與該堆棧中的至少兩個分組轉(zhuǎn)發(fā)設(shè)備相關(guān)的多個端口;以及使用該分組和該端口聚合表來選擇該堆棧中的分組轉(zhuǎn)發(fā)設(shè)備的端口,以用于把該分組發(fā)送到該堆棧外部的設(shè)備。
文檔編號H04L12/56GK101019385SQ200580030726
公開日2007年8月15日 申請日期2005年7月8日 優(yōu)先權(quán)日2004年7月13日
發(fā)明者H·辛, M·納瓦達(dá), M·格雷羅 申請人:英特爾公司