專利名稱:網(wǎng)狀網(wǎng)絡(luò)中的媒體接入控制橋接的制作方法
.網(wǎng)狀網(wǎng)絡(luò)中的媒體接入控制橋接
相關(guān)串請案的交叉參考
本發(fā)明要求2009年4月23日由琳達 鄧巴(Linda Dunbar)等人遞交的發(fā)明名稱為“網(wǎng)狀網(wǎng)絡(luò)中的媒體接入控制橋接”的第61/171,954號美國臨時專利申請案的優(yōu)先權(quán), 該申請以引入的方式并入本文本中,相當(dāng)于全文轉(zhuǎn)載。技術(shù)領(lǐng)域
無背景技術(shù)
基于以太網(wǎng)的網(wǎng)絡(luò)等現(xiàn)代通信和數(shù)據(jù)網(wǎng)絡(luò)是由通過網(wǎng)絡(luò)傳輸數(shù)據(jù)的節(jié)點構(gòu)成的。 節(jié)點可包括通過網(wǎng)絡(luò)傳輸單個數(shù)據(jù)幀或包的路由器、交換機和/或網(wǎng)橋。例如,與美國電氣和電子工程師協(xié)會(IEEE)802.1Q協(xié)議兼容的以太網(wǎng)交換機會根據(jù)其學(xué)習(xí)或提供的過濾數(shù)據(jù)庫(FDB)轉(zhuǎn)發(fā)數(shù)據(jù)幀。因此,所述幀可根據(jù)關(guān)聯(lián)的目標(biāo)地址(DA)和虛擬局域網(wǎng)(VLAN) 標(biāo)識符(VID)進行轉(zhuǎn)發(fā)。如果FDB不包含與輸入幀的DA和VID相匹配的項,則所述幀可擴散到除已到達的端口之外的其他所有端口。相應(yīng)地,數(shù)據(jù)幀可在單個網(wǎng)絡(luò)(或域)或不同網(wǎng)絡(luò)(域)中的節(jié)點之間轉(zhuǎn)發(fā)。發(fā)明內(nèi)容
在一項實施例中,本發(fā)明包括包含交換機的網(wǎng)絡(luò),所述交換機經(jīng)配置以學(xué)習(xí)源節(jié)點的源地址(SA),所述源節(jié)點具有源端口,所述源端口接收包括所述SA的幀,,所述的SA之前沒有在另一端口上被學(xué)習(xí);且所述交換機經(jīng)配置以隨后轉(zhuǎn)發(fā)任何包含目標(biāo)節(jié)點的目標(biāo)地址(DA)的幀,所述DA與所述SA所關(guān)聯(lián)的所述源端口上的所述已學(xué)習(xí)的SA匹配。
在另一項實施例中,本發(fā)明包括包含交換機的網(wǎng)絡(luò),所述交換機經(jīng)配置以在接收端口上收到的幀中包含之前未在源端口上學(xué)習(xí)的DA的情況下擴散所述幀,并通過標(biāo)記擴散的幀來將擴散的幀與其他轉(zhuǎn)發(fā)的幀區(qū)分開來,其中所述幀在多個端口上擴散。
在另一項實施例中,本發(fā)明包括包含至少一個處理器的網(wǎng)絡(luò)組件,所述處理器經(jīng)配置以實施一種包含在端口上接收包含DA的非擴散幀,以及在DA不是組地址的情況下向與所述DA關(guān)聯(lián)的一組擴散端口添加端口的方法。
在另一項實施例中,本發(fā)明包括一種方法,所述方法包含接收包含舍棄地址(UA) 的中貞,并為所述UA刪除FDB項。
在又一項實施例中,本發(fā)明包括一種方法,所述方法包含禁用對應(yīng)于與端口關(guān)聯(lián)的多個地址的多個FDB項以及在控制幀中發(fā)送所述地址。
以下具體實施方式
以及附圖和權(quán)利要求書有助于更清楚地了解這些特征和其他特征。
為更全面地了解本發(fā)明,現(xiàn)提供以下關(guān)于附圖和具體實施方式
的簡要說明的參考,其中相同的參考編號代表相同的零件。
圖1為網(wǎng)絡(luò)中的橋接路徑的一項實施例的示意圖。
圖2為網(wǎng)絡(luò)中的橋接路徑的另一項實施例的示意圖。
圖3為網(wǎng)絡(luò)中失敗的橋接路徑的一項實施例的示意圖。
圖4A為學(xué)習(xí)和轉(zhuǎn)發(fā)方法的一項實施例的流程圖。
圖4B為學(xué)習(xí)和轉(zhuǎn)發(fā)方法的另一項實施例的流程圖。
圖4C為學(xué)習(xí)和轉(zhuǎn)發(fā)方法的另一項實施例的流程圖。
圖5為學(xué)習(xí)和轉(zhuǎn)發(fā)方法的另一項實施例的流程圖。
圖6為學(xué)習(xí)和轉(zhuǎn)發(fā)方法的另一項實施例的流程圖。
圖7A為學(xué)習(xí)方法的另一項實施例的流程圖。
圖7B為學(xué)習(xí)和轉(zhuǎn)發(fā)方法的另一項實施例的流程圖。
圖8為舍棄和轉(zhuǎn)發(fā)方法的一項實施例的流程圖。
圖9為地址禁用和轉(zhuǎn)發(fā)方法的一項實施例的流程圖。
圖10為通用計算機系統(tǒng)的一項實施例的示意圖。
具體實施方式
。
首先應(yīng)了解,盡管下文提供了一項或多項實施例的說明性實施方案,但在實施所公開的系統(tǒng)和/或方法時可使用任意數(shù)量的技術(shù),無論這些技術(shù)目前是否已知或存在。在任何情況下,本發(fā)明都不限于下文闡明的說明性實施方案、附圖和技術(shù),包括本文中說明和描述的示范性設(shè)計和實施方案,但可在所附權(quán)利要求及其等效權(quán)利要求的全部范圍內(nèi)有所修改。
一股來說,以太網(wǎng)交換機可基于網(wǎng)絡(luò)樹形拓撲結(jié)構(gòu)使用擴散和學(xué)習(xí)(如幀擴散和地址學(xué)習(xí))來為媒體接入控制(MAC)橋接建立FDB項。網(wǎng)絡(luò)樹形拓撲結(jié)構(gòu)配置可實現(xiàn)使用擴散和學(xué)習(xí)來為單播數(shù)據(jù)幀建立FDB項。此外,基于網(wǎng)絡(luò)拓撲結(jié)構(gòu)的鏈路狀態(tài)路由協(xié)議可用于建立成本最低的路徑,從而實現(xiàn)最短路徑橋接(SPB)。但是,鏈路狀態(tài)路由法可能有一些缺點,例如需要將一個網(wǎng)絡(luò)拓撲數(shù)據(jù)庫分發(fā)給網(wǎng)絡(luò)中的多個網(wǎng)橋。
本發(fā)明是用于使用改進的幀擴散和地址學(xué)習(xí)行為進行MAC橋接的系統(tǒng)和方法。因此,網(wǎng)絡(luò)中的多個節(jié)點(如網(wǎng)橋)可使用改進的擴散和學(xué)習(xí)來例如,在本地建立FDB項,而無需(或不受限于)網(wǎng)絡(luò)樹形拓撲結(jié)構(gòu)。所述網(wǎng)絡(luò)可能是局域網(wǎng)(LAN),也可能包含多個可使用不同VID進行識別的VLAN。所述VID可用于在FDB項中將節(jié)點端口與相應(yīng)的VLAN 關(guān)聯(lián)起來。擴散和學(xué)習(xí)行為也可在不使用鏈路狀態(tài)路由的情況下建立最短延時路徑,從而省去拓撲數(shù)據(jù)庫開銷。除此之外,擴散和學(xué)習(xí)行為可實現(xiàn)網(wǎng)絡(luò)中已建立的路徑鏈接的負載均衡。FDB項可通過學(xué)習(xí)單個端口上的已接收幀的SA和擴散包含未知DA的已接收幀來建立,但前提是幀是在學(xué)習(xí)所述幀的SA的端口上接收到的。同樣地,當(dāng)網(wǎng)絡(luò)中有多個VLAN時, FDB項可通過學(xué)習(xí)已接收幀的SA/VID對和擴散與所述幀的VID關(guān)聯(lián)的除接收所述幀的端口外的所有節(jié)點端口上的幀來建立。根據(jù)本發(fā)明,術(shù)語地址和地址/VID對是可互換的,例如在處理多個VLAN的流量時。此類學(xué)習(xí)和擴散行為可減少網(wǎng)絡(luò)中轉(zhuǎn)發(fā)的流量,還可提供最短延時路徑和/或流量負載平衡。此外,控制幀可能出于重新定位外部系統(tǒng)或添加鏈路,或如鏈路故障而停用FDB項等諸原因而在節(jié)點間轉(zhuǎn)發(fā)以重新學(xué)習(xí)FDB項。
圖1描繪在網(wǎng)絡(luò)100中的橋接路徑的實施例,所述網(wǎng)絡(luò)包含多個末端節(jié)點110和內(nèi)部節(jié)點120。網(wǎng)絡(luò)100可以是任意網(wǎng)絡(luò),該網(wǎng)絡(luò)中的末端節(jié)點110間、內(nèi)部節(jié)點120,或兩者之間可傳輸多個數(shù)據(jù)包。例如,網(wǎng)絡(luò)100可為基于以太網(wǎng)的網(wǎng)絡(luò),該網(wǎng)絡(luò)經(jīng)配置以經(jīng)由內(nèi)部節(jié)點120在末端節(jié)點110間傳輸以太網(wǎng)幀或包。在一項實施例中,網(wǎng)絡(luò)100可運行多種協(xié)議中的任意一個,例如以太網(wǎng)、互聯(lián)網(wǎng)協(xié)議(IP)或其他協(xié)議。
末端節(jié)點110和內(nèi)部節(jié)點120可使用光鏈路、電氣鏈路、無線鏈路或這些鏈路的組合互相耦合。圖1中帶箭頭的直線顯示了可能存在于末端節(jié)點110與內(nèi)部節(jié)點120之間的某些鏈路上的包級流。末端節(jié)點110和內(nèi)部節(jié)點120也可由圖1中未顯示的其他鏈路連接。 所述末端節(jié)點110和內(nèi)部節(jié)點120可以是能產(chǎn)生、接收和/或傳輸數(shù)據(jù)包的任意設(shè)備或組件。例如,末端節(jié)點110和內(nèi)部節(jié)點120可包括網(wǎng)橋、交換機、路由器或這些設(shè)備的各種組合。末端節(jié)點110和內(nèi)部節(jié)點120可能各包含多個用于接收和/或轉(zhuǎn)發(fā)來自其他節(jié)點的包的端口,以及用來確定轉(zhuǎn)發(fā)包的目標(biāo)節(jié)點的邏輯電路。末端節(jié)點110可包含能產(chǎn)生和/或接收數(shù)據(jù)流的源端口和/或目標(biāo)端口 。在一項實施例中,末端節(jié)點110可為邊緣節(jié)點,如運營商邊緣網(wǎng)橋(PEB)或骨干邊緣網(wǎng)橋(BEB)。在其他實施例中,末端節(jié)點110可為服務(wù)器, 也可耦合到面向用戶的設(shè)備,例如臺式計算機、筆記本型計算機、個人數(shù)字助理(PDA)或其他通信設(shè)備。
內(nèi)部節(jié)點120,例如內(nèi)部節(jié)點 120a、120b、120c、120d、120e、120f、120g 和 120h,經(jīng)配置以在末端節(jié)點Iio之間轉(zhuǎn)發(fā)包,例如以太網(wǎng)包。例如,內(nèi)部節(jié)點120可為在末端節(jié)點110 之間轉(zhuǎn)發(fā)包的網(wǎng)橋。所述包可通過橋接路徑在內(nèi)部節(jié)點120之間轉(zhuǎn)發(fā),從而在任意兩個末端節(jié)點110之間交換??筛鶕?jù)與末端節(jié)點110關(guān)聯(lián)的地址來學(xué)習(xí)橋接路徑。具體而言,所述包可包含用于表示某個末端節(jié)點110的源端口或接口的SA、用于表示某個末端節(jié)點110 的目標(biāo)端口或接口的DA,或同時包含兩者。SA和/或DA可為保留在內(nèi)部節(jié)點120內(nèi)的本地FDB中、且與內(nèi)部節(jié)點120的端口關(guān)聯(lián)的MAC地址。換言之,所述地址可保留在管理平面或管理系統(tǒng)(MS)的FDB中,并與所述FDB中的端口關(guān)聯(lián),其中管理平面或管理系統(tǒng)可位于任意末端節(jié)點110或內(nèi)部節(jié)點120中。
在一項實施例中,內(nèi)部節(jié)點120可經(jīng)配置以基于根據(jù)幀中的SA和DA的擴散和學(xué)習(xí)行為從第一末端節(jié)點Iio向第二個末端節(jié)點110轉(zhuǎn)發(fā)包或幀。例如,內(nèi)部節(jié)點120可對應(yīng)于網(wǎng)狀橋接域,所述橋接域可根據(jù)不限于樹狀拓撲的一股網(wǎng)狀拓撲使用擴散和學(xué)習(xí)行為。 但是,末端節(jié)點110可能位于網(wǎng)狀橋接域之外,因此可能不會基于與內(nèi)部節(jié)點120相同的擴散和學(xué)習(xí)行為來運行。具體而言,當(dāng)內(nèi)部節(jié)點120通過接收端口或源端口收到包含未知SA 的幀時,如果未在內(nèi)部節(jié)點的FDB(或管理平面/MS)中發(fā)現(xiàn)所述SA,則內(nèi)部節(jié)點120可將所述SA和源端口關(guān)聯(lián)。內(nèi)部節(jié)點也可經(jīng)配置以將所述SA與單個端口關(guān)聯(lián),例如為所述SA 添加單個FDB項。此外,如果接收到的幀包含未知DA且未標(biāo)記為擴散幀,則所述內(nèi)部節(jié)點 120可能會將所述幀標(biāo)記為擴散幀,并在除接收到所述幀的端口,即SA源端口,之外的所有端口上擴散所述幀。在一項實施例中,當(dāng)在耦合到相鄰內(nèi)部節(jié)點120的內(nèi)部端口上傳送時, 所述幀可標(biāo)記為擴散幀。但當(dāng)在耦合到網(wǎng)狀橋接域外部的節(jié)點110的外部端口上傳送時, 所述幀無法修改或標(biāo)記為擴散幀。當(dāng)網(wǎng)絡(luò)中有多個VLAN時,所述幀可在除接收幀的端口外的與所述幀的VID關(guān)聯(lián)的所有端口上擴散。
如果擴散的幀,例如標(biāo)記為擴散幀,在不與幀中的SA關(guān)聯(lián)的端口上接收,則內(nèi)部節(jié)點120可過濾所述幀,例如丟棄或刪除所述幀。因此,如果幀是在與SA關(guān)聯(lián)且包含未知 DA的源端口上接收的,則所述幀可在每兩個內(nèi)部節(jié)點120之間的單跳上擴散,但不可在后續(xù)的內(nèi)部節(jié)點120之間的后續(xù)跳上擴散。這一擴散行為可能會阻止幀多個后續(xù)鏈路,例如多個后續(xù)擴散,上傳播,從而降低網(wǎng)絡(luò)負載和擁塞并防止出現(xiàn)環(huán)路。
例如,末端節(jié)點IlOa可發(fā)送定位到末端節(jié)點IlOb的巾貞,如單播幀,且包含對應(yīng)于末端節(jié)點IlOa的SA “AA”和對應(yīng)于末端節(jié)點IlOb的DA “ZZ”。內(nèi)部節(jié)點120a可在端口上接收幀,但無法在本地FDB中找到SA “AA”,因為地址“AA”無法與內(nèi)部節(jié)點120a的任意端口關(guān)聯(lián)。因此,內(nèi)部節(jié)點120a可在FDB中添加將地址“AA”與源端口關(guān)聯(lián)的項。在圖1中, 與地址“AA”關(guān)聯(lián)的源端口用帶斜線的框表示。此外,內(nèi)部節(jié)點120a可能無法在本地FDB 中找到DA“ZZ”。因此,內(nèi)部節(jié)點120a可將幀標(biāo)記為擴散幀,并在源端口以外的端口上擴散所述幀。因此,內(nèi)部節(jié)點120b和120c都可接收標(biāo)記為擴散幀的幀副本。
在一項實施例中,幀可以標(biāo)記為,例如,擴散幀、禁用幀和/或舍棄幀,方法是向所述幀添加指明其是從源節(jié)點還是相鄰節(jié)點擴散的標(biāo)記或標(biāo)簽。此外,也可通過在幀中設(shè)置表明其為擴散幀的位來進行標(biāo)記,例如幀頭中的SA中的組位或要保留在幀頭中的任意位。 但是,在學(xué)習(xí)擴散的幀中的SA時,用于表明擴散幀的SA位可在FDB中重置。在另一項實施例中,擴散幀可使用中繼控制幀(RCF)進行發(fā)送。
內(nèi)部節(jié)點120b和120c可使用與內(nèi)部節(jié)點120a相同的學(xué)習(xí)和擴散行為。因此,內(nèi)部節(jié)點120b和120c可將地址“AA”與對應(yīng)的源端口關(guān)聯(lián),將幀標(biāo)記為擴散幀,以及將在它們所在的端口上將所述幀擴散到相鄰節(jié)點,如內(nèi)部節(jié)點120d、120e和120f,但不能在它們相應(yīng)的源端口上擴散。但是,內(nèi)部節(jié)點120f可在兩個不同端口上接收來自每個內(nèi)部節(jié)點120b 和120c的兩份擴散幀。在這種情況下,內(nèi)部節(jié)點120f可只將地址“AA”與兩個端口的其中一個關(guān)聯(lián),這個端口可能是接收一份所述幀的第一個端口。例如,內(nèi)部節(jié)點120f可將地址 “AA”與耦合到內(nèi)部節(jié)點120c的源端口關(guān)聯(lián),所述源端口在圖1中用斜線框表示。然后,當(dāng)內(nèi)部節(jié)點120f收到來自內(nèi)部節(jié)點120b的第二份擴散幀時,內(nèi)部節(jié)點120f可確認所述幀中的SA “AA”與另一源端口關(guān)聯(lián) ,因此可過濾所述幀。
同樣地,內(nèi)部節(jié)點120e可在第一源端口上接收來自內(nèi)部節(jié)點120b的第一份擴散幀,然后在第二端口上接收來自內(nèi)部節(jié)點120d的第二份擴散幀。因此,內(nèi)部節(jié)點120e可將所述地址“AA”和第一源端口關(guān)聯(lián),擴散第一份幀及丟棄第二份幀。其余的內(nèi)部節(jié)點120d、 120h和120g也可接收擴散的幀并實施與之前的內(nèi)部節(jié)點120相同的擴散和學(xué)習(xí)邏輯。因此,內(nèi)部節(jié)點120可分別將地址“AA”與一個對應(yīng)的源端口關(guān)聯(lián),并在除其相應(yīng)源端口之外的端口上擴散幀,或丟棄未與SA關(guān)聯(lián)的源端口上接收的幀。因此,一份擴散幀可由內(nèi)部節(jié)點120g傳遞到末端節(jié)點110b。擴散標(biāo)記可在將幀發(fā)射到外部節(jié)點IlOb之前刪除。包含 SA “AA”的轉(zhuǎn)發(fā)的幀的路徑在圖1中以帶箭頭的實線表示。
接下來,末端節(jié)點IlOb可發(fā)送目的地為末端節(jié)點IlOa的巾貞,且所述幀包含對應(yīng)于末端節(jié)點IlOb的SA “ZZ”和對應(yīng)于末端節(jié)點IlOa的DA “AA”。內(nèi)部節(jié)點120g可在源端口上接收幀,且可能無法在本地FDB中找到SA“ZZ”。因此,內(nèi)部節(jié)點120g可在FDB中添加將所述地址“ZZ”與源端口關(guān)聯(lián)的項。在圖1中,與地址“ZZ”關(guān)聯(lián)的源端口用帶交叉線的框表示。內(nèi)部節(jié)點120g可在本地FDB中找到與耦合到內(nèi)部節(jié)點120e的端口關(guān)聯(lián)的DA“AA”,因而可將所述端口上的幀轉(zhuǎn)發(fā)到內(nèi)部節(jié)點120e。同樣地,內(nèi)部節(jié)點120e可接收所述幀,將地址“ZZ”與耦合到內(nèi)部節(jié)點120g的源端口關(guān)聯(lián),并將與地址“AA”關(guān)聯(lián)的端口上的幀轉(zhuǎn)發(fā)到內(nèi)部節(jié)點120b。由于采用相同的學(xué)習(xí)和轉(zhuǎn)發(fā)行為,內(nèi)部節(jié)點120b和120a可輪流接收所述幀,將地址“ZZ”與其對應(yīng)的源端口關(guān)聯(lián),并轉(zhuǎn)發(fā)與地址“AA”關(guān)聯(lián)的對應(yīng)端口上的幀,直到所述幀傳遞到末端節(jié)點110a。包含所述SA“ZZ”的轉(zhuǎn)發(fā)的幀的路徑在圖1中以帶箭頭的短劃線表示。
內(nèi)部節(jié)點120a、120b、120e和120g可通過上述的擴散(或轉(zhuǎn)發(fā))和學(xué)習(xí)行為在末端節(jié)點IlOa與IlOb之間單向或雙向發(fā)送幀,從而在末端節(jié)點IlOa與IlOb之間建立雙向路徑。所述雙向路徑在圖1中以成對的帶箭頭的實線和帶箭頭的短劃線表示。在末端節(jié)點IlOa與IlOb之間建立的所述路徑可為最低或最短延遲路徑,在此類路徑中,在末端節(jié)點 110之間轉(zhuǎn)發(fā)幀的內(nèi)部節(jié)點120或鏈路的數(shù)目是最少的。使用最少數(shù)目的節(jié)點或鏈路來轉(zhuǎn)發(fā)幀可帶來最短的時間延遲。最短延遲路徑可通過使用上述的擴散和學(xué)習(xí)行為來學(xué)習(xí),而無需測量鏈路延遲,無需使用鏈路狀態(tài)協(xié)議,且無需在網(wǎng)絡(luò)中的拓撲數(shù)據(jù)庫中保留延遲信息。此外,末端節(jié)點110之間的路徑可由具有任意合適的拓撲的內(nèi)部節(jié)點120建立,例如, 無需將可用節(jié)點和鏈路限于樹狀拓撲。
此外,當(dāng)節(jié)點之間鏈路具有在某種程度上相等的數(shù)據(jù)速率、長度和流量負載,以及相應(yīng)的幾乎相同的延時·時間時,節(jié)點的擴散和學(xué)習(xí)行為可實現(xiàn)節(jié)點之間鏈路上的負載擴展或平衡。例如,如果某些鏈路的使用頻率高于其他鏈路,從而導(dǎo)致其排隊時延更長,則轉(zhuǎn)發(fā)和學(xué)習(xí)行為可使負載擴展到其他排隊時延更短的鏈路。在一項實施例中,為盡量減少因鏈路上的流量負載不均而帶來的影響,擴散的幀可擁有高于鏈路的轉(zhuǎn)發(fā)隊列中的其他幀的轉(zhuǎn)發(fā)優(yōu)先級。因此,擴散的幀的轉(zhuǎn)發(fā)可不受鏈路的排隊時延的影響,這實質(zhì)上類似于鏈路上的時延幾乎相等的情況。在另一項實施例中,為改進鏈路的負載擴展效果,擴散的幀可添加隨機選擇的時延,例如,各個輸出端口上擴散幀的傳輸可延時處于延遲時間變動范圍內(nèi)的隨機選擇的值,以實現(xiàn)所述幀的延遲時間變化,并引起時延幾乎相等的路徑上的學(xué)習(xí)行為,并提供因流量負載變化而不易發(fā)生振蕩的負載擴展。
圖2描繪了網(wǎng)絡(luò)200中的橋接路徑的另一項實施例。所述網(wǎng)絡(luò)200的配置可與網(wǎng)絡(luò)100大致相似,并且可包含多個末端節(jié)點210和多個內(nèi)部節(jié)點220,其配置可與網(wǎng)絡(luò)100 的相應(yīng)組件大致相似。具體而言,內(nèi)部節(jié)點220可在第一對末端節(jié)點210之間建立第一橋接路徑,并在第二對末端節(jié)點210之間建立第二橋接路徑。內(nèi)部節(jié)點220可通過上述的擴散和學(xué)習(xí)過程建立第一橋接路徑和第二橋接路徑。每個第一橋接路徑和第二橋接路徑可分別對應(yīng)于相應(yīng)的末端節(jié)點對210之間的時延幾乎相等的路徑。此外,部分內(nèi)部節(jié)點220可既屬于第一橋接路徑,也屬于第二橋接路徑,并且可共享兩條路徑上的至少部分端口。例如, 部分內(nèi)部節(jié)點220可將末端節(jié)點210的不同地址(如“AA”、“BB”、“YY”和/或“ZZ”)與同一源端口關(guān)聯(lián)。但是,每個地址只能與任意內(nèi)部節(jié)點220中的一個端口關(guān)聯(lián)。當(dāng)末端節(jié)點 210的某個地址與內(nèi)部節(jié)點220的第一源端口關(guān)聯(lián)時,所述地址隨后將無法與所述內(nèi)部節(jié)點220的第二源端口關(guān)聯(lián),例如,而不禁用或刪除所述第一源端口的FDB項。
例如,內(nèi)部節(jié)點220a、220b、220d、220e和220g可學(xué)習(xí)第一網(wǎng)橋路徑,所述網(wǎng)橋路徑可為末端節(jié)點210a與末端節(jié)點220b之間的雙向路徑。如上文所述,第一橋接路徑可通過學(xué)習(xí)末端節(jié)點210a的地址“AA”和末端節(jié)點210b的地址“ZZ”,以及擴散或過濾接收到的地址未知的幀來獲取。所述雙向第一橋接路徑用一對帶箭頭的實線(從末端節(jié)點210a 到末端節(jié)點210b)和帶箭頭的短劃線(從末端節(jié)點210b到末端節(jié)點210a)表示。與地址 “AA”關(guān)聯(lián)的源端口用帶斜線的框表示,與地址“ZZ”關(guān)聯(lián)的源端口用帶交叉線的框表示。
同樣地,內(nèi)部節(jié)點220a、220b、220f、220e和220g可學(xué)習(xí)第二網(wǎng)橋路徑,所述網(wǎng)橋路徑可為末端節(jié)點210c與末端節(jié)點220d之間的雙向路徑。如上文所述,第二橋接路徑可通過學(xué)習(xí)末端節(jié)點210c的地址“BB”和末端節(jié)點210d的地址“YY”,以及擴散或過濾接收到的地址未知的幀來獲取。所述雙向的第二橋接路徑用一對帶箭頭的點劃線(從末端節(jié)點 210c到末端節(jié)點210d)和帶箭頭的點線(從末端節(jié)點210d到末端節(jié)點210c)表示。與地址“BB”關(guān)聯(lián)的源端口用帶水平線的框表示,與地址“YY”關(guān)聯(lián)的源端口用帶垂直線的框表示。如圖2所示,在部分內(nèi)部節(jié)點220中,地址‘44”、18”、“¥¥”和“22”可與不同的源端口關(guān)聯(lián)。此外,在其他內(nèi)部節(jié)點220中,部分地址可與同一源端口關(guān)聯(lián)。例如,地址“AA”和 “BB”在內(nèi)部節(jié)點220g中與同一源端口關(guān)聯(lián),地址“YY”和“ZZ”在內(nèi)部節(jié)點220e中與同一源端口關(guān)聯(lián)。
在一項實施例中,擴散和學(xué)習(xí)行為可處理包含組DA的組播幀的轉(zhuǎn)發(fā)。由于組DA 可能不會在接收到的幀中顯示為SA,因此節(jié)點可能不會學(xué)習(xí)組DA,例如將組DA與源端口關(guān)聯(lián)。因此,所述節(jié)點可在多個端口上擴散包含組DA的幀。網(wǎng)絡(luò)中組播幀的此類擴散可能并不需要或?qū)嵱?,原因是這可能增加不必要的網(wǎng)絡(luò)流量,例如將組播幀擴散到多個未預(yù)定為接收組播幀的節(jié)點時。為避免對包含組DA的組播幀的不必要擴散,組DA可由節(jié)點進行學(xué)習(xí),并且可從擴散的幀中識別和區(qū)分出來。例如,網(wǎng)絡(luò)中的組DA可由FDB中的管理平面或 MS提供和保留,所述FDB可包含靜態(tài)組DA項。此外,所述節(jié)點或MS可“偵聽”客戶端組播組協(xié)議(如因特網(wǎng)組管理協(xié)議(IGMP))并添加用于轉(zhuǎn)發(fā)MAC組地址的相應(yīng)FDB項。在另一項實施例中,可通過轉(zhuǎn)發(fā)RCF來使用控制協(xié)議,以例如,根據(jù)來自客戶端網(wǎng)絡(luò)的關(guān)于在MAC 橋接網(wǎng)絡(luò)中創(chuàng)建組播轉(zhuǎn)發(fā)狀態(tài)的請求來創(chuàng)建組播FDB項。所述控制協(xié)議可為網(wǎng)絡(luò)中現(xiàn)有的組地址控制協(xié)議的擴展(如多MAC地址注冊協(xié)議(MMRP))或經(jīng)配置以通過擴散和學(xué)習(xí)過程進行運作的新協(xié)議。
此外,要改進包含組DA的組播幀的處理和轉(zhuǎn)發(fā),所述節(jié)點可學(xué)習(xí)接收非擴散的單播幀DA (非組DA)的端口。通過在FDB中添加相應(yīng)的項,所述節(jié)點可將DA與接收所述DA 的端口關(guān)聯(lián)。接收非擴散DA的端口可耦合到相鄰節(jié)點的與所述DA關(guān)聯(lián)的源端口,從而可接收包含組DA的幀,并可將接收到的DA作為其SA進行轉(zhuǎn)發(fā)(未過濾)。因此,所述節(jié)點可隨后將包含組DA的組播幀,以及將學(xué)習(xí)到的DA作為SA發(fā)送到與學(xué)習(xí)到的DA關(guān)聯(lián)的端口中,所述學(xué)習(xí)到的DA位于FDB中,而不是在與所述幀的VID關(guān)聯(lián)的其他端口上。因此,所述組播幀只可轉(zhuǎn)發(fā)到不會丟棄或過濾接收到的幀的相鄰節(jié)點。
在一項實施例中,節(jié)點的擴散和學(xué)習(xí)行為可處理MAC地址等各種地址的重定位。 例如,當(dāng)末端節(jié)點或臺站從包含某個節(jié)點或網(wǎng)橋端口的鏈路移動到包含另一節(jié)點或端口的鏈路時,學(xué)習(xí)到的末端節(jié)點地址的源端口,如與所述地址關(guān)聯(lián)的端口,可能會失效。因此, 對應(yīng)于末端節(jié)點地址的FDB項可從節(jié)點中刪除,且添加將末端節(jié)點地址與新端口關(guān)聯(lián)的新 FDB項,例如通過老化移出舊的FDB項并從新幀中學(xué)習(xí)新的項。但是,老化過程可能無法實現(xiàn)足夠迅速的重新學(xué)習(xí)過程。此外,網(wǎng)絡(luò)中的內(nèi)部節(jié)點可收到末端節(jié)點的地址(如SA)位置更改的提醒,從而可更快速地將所述地址與新學(xué)習(xí)的源端口關(guān)聯(lián)。
具體而言,當(dāng)網(wǎng)橋或內(nèi)部節(jié)點從末端節(jié)點(或外部網(wǎng)橋)收到包含未知SA或非關(guān)聯(lián)端口上的已知SA的幀時,所述內(nèi)部節(jié)點可通過與所接收到的幀的VID關(guān)聯(lián)的端口來將舍棄的RCF(URCF)擴散到相鄰節(jié)點。出現(xiàn)在新的外部端口上的未知SA或已知SA稱為UA。所述節(jié)點也可學(xué)習(xí)所述未知SA或更新所述已知SA的關(guān)聯(lián)源端口。所述URCF可包含幀凈荷中的UA、發(fā)端節(jié)點本身的SA地址、預(yù)定義的組DA,以及與接收到的幀相同的VID。每個節(jié)點只能在相應(yīng)的URCF SA源端口上接收和接受所述URCF,并且可將幀凈荷中的UA識別為舍棄地址。如果所述UA之前已學(xué)習(xí)過,例如在本地FDB中找到,則所述節(jié)點可刪除與所述UA 關(guān)聯(lián)的FDB項。然后,所述節(jié)點可將所述URCF擴散,例如,擴散到除源端口外的所有與所述 URCF的VID關(guān)聯(lián)的端口。另外,所述URCF可在內(nèi)部端口上擴散,例如擴散到網(wǎng)狀橋接域中的任意相鄰內(nèi)部節(jié)點,但無法在外部端口上擴散到網(wǎng)狀橋接域外的末端節(jié)點或外部節(jié)點。
在一項實施例中,節(jié)點的擴散和學(xué)習(xí)行為可處理網(wǎng)絡(luò)中新添加的鏈路。當(dāng)向網(wǎng)橋或節(jié)點添加新鏈路時,所述節(jié)點可使用所述新鏈路開始轉(zhuǎn)發(fā)其部分幀。擴散和學(xué)習(xí)行為可允許節(jié)點刪除老化的FDB項,例如當(dāng)一段時間結(jié)束后,并將老化的項替換成對應(yīng)于包括新鏈路的新學(xué)習(xí)的路徑的新項。例如,刪除將地址與端口關(guān)聯(lián)的老化項后,流量幀可經(jīng)擴散以學(xué)習(xí)包括新鏈路的新路徑。一段時間后,隨著更多FDB項的老化移出,以及更多擴散和學(xué)習(xí)行為的出現(xiàn),所述新鏈路也會因此而獲得更多流量。
在一項實施例中,節(jié)點可經(jīng)配置以擴散包含已知地址(如已知SA)的巾貞,以舍棄所述地址的現(xiàn)有路徑,從而允許學(xué)習(xí)可能包括新鏈路的新路徑。要舍棄的地址稱為UA。在某些情況下,要舍棄已知SA的幀可能會擴散,例如以周期性的方式。所述節(jié)點可發(fā)送控制幀, 例如URCF,所述幀包含幀凈荷中的UA、發(fā)端節(jié)點本身的地址SA、預(yù)定義的組DA和要舍棄UA 的VID。在SA源端口上接收URCF的節(jié)點可刪除其UA的FDB項,并在除接收端口外的所有與所述URCF VID關(guān)聯(lián)的端口上轉(zhuǎn)發(fā)所述URCF。所述URCF舍棄功能可,例如,通過預(yù)定義的組DA表示。將舍棄地址作為SA發(fā)送的后續(xù) 幀可導(dǎo)致節(jié)點在添加新鏈路時學(xué)習(xí)新路徑。因此,新鏈路可在FDB項老化移出前添加到已學(xué)習(xí)的路徑中,這可在網(wǎng)絡(luò)中提供經(jīng)過改善的或更加優(yōu)化的新路徑。另外,定期學(xué)習(xí)包括新鏈路的新路徑可重新平衡網(wǎng)絡(luò)的鏈路中的流量。
在一項實施例中,節(jié)點的擴散和學(xué)習(xí)行為可處理網(wǎng)絡(luò)中的鏈路故障。當(dāng)鏈路失敗時,節(jié)點可禁用對應(yīng)于與失敗鏈路關(guān)聯(lián)的端口的已學(xué)習(xí)的FDB項。因此,目的地為FDB項中的地址的幀,例如包含與端口關(guān)聯(lián)的DA,可擴散,而不是轉(zhuǎn)發(fā)到失敗的鏈路。但是,對于非擴散幀,例如未標(biāo)記為擴散幀,如果所述幀預(yù)定要在失敗鏈路上轉(zhuǎn)發(fā),例如接收到并擁有與單個DA匹配的禁用的FDB項,則所述幀可能會被丟棄。對于預(yù)定在失敗鏈路上轉(zhuǎn)發(fā)且在禁用對應(yīng)于所述失敗鏈路的FDB項后接收到的非擴散幀,如果其是在位于節(jié)點的網(wǎng)狀橋接域外的端口上接收到的,則所述幀可經(jīng)擴散以學(xué)習(xí)新路徑。
在一項實施例中,當(dāng)鏈路移動時,例如,從第一節(jié)點的已學(xué)習(xí)的源端口移動到第二節(jié)點的端口,移動的鏈路可作為所述第一節(jié)點源端口上的鏈路故障,以及所述第二節(jié)點的端口上新添加的鏈路進行處理。相應(yīng)地,與所述第一節(jié)點源端口關(guān)聯(lián)的已學(xué)習(xí)地址可經(jīng)擴散以禁用與相鄰節(jié)點中的地址關(guān)聯(lián)的源端口,如上所述。然后,流量幀可在節(jié)點間進行轉(zhuǎn)發(fā)或擴散,以學(xué)習(xí)包括第二節(jié)點的端口上的新鏈路的新路徑。
圖3描繪了網(wǎng)絡(luò)300中失敗的橋接路徑的一項實施例。所述網(wǎng)絡(luò)300可包含多個末端節(jié)點310和多個內(nèi)部節(jié)點320。所述網(wǎng)絡(luò)300及其組件的配置可與網(wǎng)絡(luò)100及其相應(yīng)組件大致相似。至少部分內(nèi)部節(jié)點320,如內(nèi)部節(jié)點310a、320b、320e和320g,可初步建立橋接路徑,所述路徑可為,例如兩個末端節(jié)點310a與310b之間的雙向路徑。因此,所述路徑上的每個內(nèi)部節(jié)點可學(xué)習(xí)末端節(jié)點310a的地址“AA”和末端節(jié)點310b的地址“ZZ”,例如使用上述的擴散和學(xué)習(xí)邏輯。其他內(nèi)部節(jié)點320 (如320c、320d、320f和320h)也可在擴散和學(xué)習(xí)模式中學(xué)習(xí)地址“AA”和“ZZ”。隨后,當(dāng)在路徑上耦合內(nèi)部節(jié)點320a和320b的鏈路失敗時(用“X”標(biāo)記表示),內(nèi)部節(jié)點320b可在對應(yīng)于所述鏈路的其中一個端口上檢測鏈路故障,從而禁用所有對應(yīng)于失敗端口的已學(xué)習(xí)FDB項。內(nèi)部節(jié)點320b也可將任何與禁用的FDB項中的禁用端口關(guān)聯(lián)的已學(xué)習(xí)地址擴散到相鄰節(jié)點。例如,內(nèi)部節(jié)點320b可將控制幀發(fā)送到內(nèi)部節(jié)點320d和320e,以表示末端節(jié)點310a的地址“AA”已禁用。每個內(nèi)部節(jié)點320d和320e都可接收禁用的地址,驗證所述節(jié)點是否擁有用于確定接收控制幀的端口的針對所述地址的已學(xué)習(xí)FDB項,禁用相應(yīng)的FDB項,以及以類似方式將所述地址擴散到相鄰節(jié)點。因此同樣地,內(nèi)部節(jié)點320h和320g可禁用其相應(yīng)的FDB項。對應(yīng)于禁用的 FDB項的源端口在圖3中以實線圓表示。但是,內(nèi)部節(jié)點320f可規(guī)定,其針對地址“AA”的 FDB項不用于確定接收禁用的控制幀的端口,從而可能導(dǎo)致所述“AA”的FDB項不會發(fā)生變化,且可能不會進一步轉(zhuǎn)發(fā)所述控制幀。
接下來,擴散和學(xué)習(xí)過程可以重復(fù),例如開始于節(jié)點320g,以在末端節(jié)點310a與 310b之間,例如沿著內(nèi)部節(jié)點320a、320c、320f、320e和320g,重新建立新的橋接路徑。所述新橋接路徑可為包含從末端節(jié)點 310b到末端節(jié)點310a的第一路徑的雙向路徑,所述路徑可通過從末端節(jié)點310b擴散具有DA“AA”的幀來建立(如帶箭頭的短劃線所示)。所述雙向路徑還可包含從末端節(jié)點310a到末端節(jié)點310b的第二路徑,所述路徑可通過從末端節(jié)點310a轉(zhuǎn)發(fā)具有DA “ZZ”的幀來建立(如帶箭頭的實線所示)。與新建路徑上的SA關(guān)聯(lián)的源端口以不帶圓圈的圖案框(“AA”為斜線,“ZZ”為交叉線)表示。內(nèi)部節(jié)點320g的虛線圓表示的是起初因鏈路失敗而禁用,隨后通過在第二路徑上學(xué)習(xí)地址“AA”而重新激活的FDB項。
在一項實施例中,為修復(fù)鏈路故障,內(nèi)部節(jié)點或網(wǎng)橋可能會禁用相應(yīng)的FDB項,例如在檢測到鏈路故障后,并將與禁用的FDB項的VID關(guān)聯(lián)的其他鏈路/端口上的禁用的 RCF(DRCF)擴散到相鄰節(jié)點。所述DRCF可包含所有與對應(yīng)于失敗鏈路的端口相關(guān)的已學(xué)習(xí)地址(或地址/VID對)。當(dāng)相鄰節(jié)點在DRCF中所指示的其中一個地址(或地址/VID對) 的源端口上接收所述DRCF時,所述節(jié)點可禁用對應(yīng)于所述端口 /地址/VID的FDB項,并將所述地址/VID留在DRCF中。此外,如果所述節(jié)點在不與DRCF中所指示的地址/VID關(guān)聯(lián)的端口上接收所述DRCF,則所述節(jié)點可從所述DRCF中刪除所述地址/VID。如果DRCF中遺留了任何與失敗鏈路關(guān)聯(lián)的地址/VID,則所述節(jié)點可將所述DRCF擴散到多個與殘留VID關(guān)聯(lián)的相鄰內(nèi)部節(jié)點。
另外,所述DRCF可在內(nèi)部端口上擴散,例如擴散到網(wǎng)狀橋接域中的任意相鄰內(nèi)部節(jié)點,但無法在外部端口上擴散到網(wǎng)狀橋接域外的末端節(jié)點或外部節(jié)點。在某些處理丟失 DRCF情況的實施例中,所述節(jié)點可丟棄接收到的所有包含之前已在節(jié)點上禁用的DA/VID 的非擴散幀,然后發(fā)送回包含接收到所述幀的相同端口上的DA/VID的DRCF。因此,所述非擴散幀的發(fā)送者可接收所述DRCF,并禁用所有與禁用的DA/VID關(guān)聯(lián)的FDB項,所述FDB項之前可能由于DRCF丟失而未禁用。
圖4A描繪了一個學(xué)習(xí)和轉(zhuǎn)發(fā)方法400A的一項實施例,所述方法可用于在多個可能不對應(yīng)于樹狀拓撲的網(wǎng)橋或交換機(如以太網(wǎng)交換機)之間建立橋接路徑。方法400A 可用于學(xué)習(xí)最短延時路徑和/或平衡網(wǎng)橋之間延時幾乎相同的路徑的流量負載平衡,這可在不使用鏈路狀態(tài)協(xié)議且不保留網(wǎng)絡(luò)拓撲數(shù)據(jù)庫的情況下實現(xiàn)。例如,實施方法400A的網(wǎng)橋可包含網(wǎng)絡(luò)100的內(nèi)部節(jié)點120。方法400A可在所有在網(wǎng)狀橋接域的內(nèi)部端口上接收幀的內(nèi)部節(jié)點120上實施,例如從另一內(nèi)部節(jié)點120。另外,所述幀可為包含單播或單個DA, 而不是組DA的單播幀。
方法400A可從塊410A開始,其中單播幀可在網(wǎng)橋的內(nèi)部端口上接收。例如,所述網(wǎng)橋可在耦合到它的其中一個端口(或接口)的鏈路上接收以太網(wǎng)幀。所述幀可包含表示幀的來源的SA、表示幀的目的地的DA,或兩者皆包含。在塊420中,方法400A可確定所述幀中的SA是否與所述網(wǎng)橋的不同于接收端口的另一端口關(guān)聯(lián)。例如,所述網(wǎng)橋可搜索本地 FDB項,以確定接收到的SA是否與接收端口關(guān)聯(lián)。如果所述幀中的SA與另一端口關(guān)聯(lián),則方法400A可前進至塊440。如果不滿足塊420中的條件,則方法400A可前進至塊430。
在塊430中,所述SA可與FDB中的端口關(guān)聯(lián)。例如,網(wǎng)橋可在FDB中添加項,以將接收端口注冊為所接收幀中的SA的源端口,或為所找到的針對所述SA的FDB項重置老化定時器。在塊432中,方法400A可確定所述幀的DA是否已在FDB中找到。如果在FDB中找到所述幀的DA,則方法400A可前進至塊490,其中所述幀可在與所述DA關(guān)聯(lián)的端口上轉(zhuǎn)發(fā),且方法400A隨后會結(jié)束。如果不滿足塊432的條件,則方法400A可前進至塊434。在塊 434中,方法400A可確定所述幀是否為擴散幀。如是所述幀已標(biāo)記為擴散幀,則方法400A可前進至塊436,其中所述幀可在除源端口外的所有端口上轉(zhuǎn)發(fā),且方法400A會結(jié)束。例如, 所述網(wǎng)橋可將所述幀標(biāo)記為擴散幀,并在除接收端口外的與相鄰節(jié)點關(guān)聯(lián)的端口上擴散所述幀。但是,當(dāng)在外部端口上發(fā)射到位于網(wǎng)狀橋接域外的末端節(jié)點或外部節(jié)點時,所述幀不會標(biāo)記為擴散幀。除此之外,如果不滿足塊434的條件,則方法400A可前進至塊450,其中所述幀會被丟棄 (例如刪除),且方法400A會結(jié)束。
此外,在塊440中,方法400A可確定如果已標(biāo)記為擴散幀,則所述幀是否為擴散幀。如果所述幀是擴散幀,則方法400A可前進至塊450,其中所述幀可被丟棄。否則,如果不滿足塊440中的條件,則方法400A可前進至塊445,其中方法400A可確定所述幀中的UA 是否已在FDB中找到。例如,所述網(wǎng)橋可在本地FDB項中搜索所述幀的DA。如果找到對應(yīng)于所述幀的DA的項,則方法400A可前進至塊490,其中所述幀可在與所述DA關(guān)聯(lián)的端口上轉(zhuǎn)發(fā)。如果不滿足塊445中的條件,則方法400A可前進至塊450以丟棄所述幀。
圖4B描繪了另一個學(xué)習(xí)和轉(zhuǎn)發(fā)方法400B的一項實施例,所述方法可用于在多個網(wǎng)橋或交換機之間建立橋接路徑,例如在網(wǎng)狀拓撲中。與方法400A相同,方法400B可用于針對在網(wǎng)狀橋接域的內(nèi)部端口上接收幀的內(nèi)部節(jié)點實施,例如從另一內(nèi)部節(jié)點接收。但是, 所接收的幀可為包含組DA的組播幀,而不得為單播幀。
方法400B可從塊41OB開始,其中組播幀可在網(wǎng)橋的內(nèi)部端口上接收。所述幀可包含表示幀的來源的SA、表示多個目標(biāo)節(jié)點(例如在組播組中)的組DA,或兩者皆包含。在塊420中,方法400B可確定所述幀中的SA是否與所述網(wǎng)橋的不同于接收端口的另一端口關(guān)聯(lián)。如果所述幀中的SA與另一端口關(guān)聯(lián),則方法400B可前進至塊450。否則,如果不滿足塊420中的條件,則方法400B可前進至塊430。方法400B的后續(xù)的塊432、436、450和 490可與上述的方法400A的相應(yīng)塊相似。方法400B中學(xué)習(xí)和轉(zhuǎn)發(fā)邏輯的其余部分按圖4B 中的塊的順序進行。
圖4C描繪了另一個學(xué)習(xí)和轉(zhuǎn)發(fā)方法400C的一項實施例,所述方法可用于在多個網(wǎng)橋或交換機之間建立橋接路徑,例如在一股網(wǎng)狀拓撲中。與方法400A和400B不同,可針對在網(wǎng)狀橋接域的外部端口上例如從網(wǎng)絡(luò)100的末端節(jié)點110接收幀的網(wǎng)狀橋接域中的內(nèi)部節(jié)點來實施方法400C。所接收的幀可為包含個別DA的單播幀,也可為包含組DA的組播幀。
方法400C可從塊410C開始,其中可在網(wǎng)橋的外部端口上接收幀。例如,網(wǎng)絡(luò)100 中的一個內(nèi)部節(jié)點120可在其外部端口上從末端節(jié)點110接收單播幀或組播幀。所述幀可包含表示巾貞的來源的SA、表示單個或多個目標(biāo)節(jié)點的DA,或兩者皆包含。在塊420中,方法 400C可確定所述幀中的SA是否與網(wǎng)橋的不同于接收端口的另一端口關(guān)聯(lián)。如果所述幀中的SA與另一端口關(guān)聯(lián),則方法400C可前進至塊460,其中可例如在之前為所述SA建立的路徑的端口上發(fā)送控制幀以舍棄所述SA。否則,如果不滿足塊420中的條件,則方法400C可前進至塊430。
在塊430中,所述SA可與FDB中的端口關(guān)聯(lián)。在塊432中,方法400C可確定所述幀的DA是否已在FDB中找到。如果找到了所述DA的FDB項,則方法400C可前進至塊490, 其中所述幀可在與所述DA關(guān)聯(lián)的端口上轉(zhuǎn)發(fā),且方法400C會結(jié)束。否則,如果不滿足塊 432中的條件,則方法400C可前進至塊433。在塊433中,方法400C可驗證所述DA是否為組地址。如果所述DA為組地址,則方法400C可前進 至塊436,其中所述幀可在除源端口外的所有端口上轉(zhuǎn)發(fā),且方法400C會結(jié)束。否則,如果所述DA是單播幀或單個DA,則方法 400C可前進至塊435,其中所述幀可標(biāo)記為擴散幀。隨后,方法400C可前進至塊436以擴散所述幀。當(dāng)在所有耦合到網(wǎng)狀橋接域中的內(nèi)部節(jié)點的內(nèi)部端口上發(fā)射時,所述幀可標(biāo)記為擴散幀。但是,當(dāng)在網(wǎng)狀橋接域外的外部節(jié)點上發(fā)射時,所述幀無需標(biāo)記為擴散幀。
圖5描繪了另一個學(xué)習(xí)和轉(zhuǎn)發(fā)方法500的一項實施例,該方法可用于在多個網(wǎng)橋或交換機之間建立橋接路徑,且可支持鏈接故障恢復(fù)。根據(jù)方法500,在轉(zhuǎn)發(fā)幀之前可能會檢查FDB項的狀態(tài),以免在已根據(jù)鏈接故障恢復(fù)程序禁用對應(yīng)于所述幀的地址的FDB項時轉(zhuǎn)發(fā)或擴散所述幀。所述方法500可在在網(wǎng)狀橋接域的內(nèi)部端口上接收幀的內(nèi)部節(jié)點處實施,例如從網(wǎng)狀橋接域的另一個內(nèi)部節(jié)點接收幀。
方法500可從塊510開始,其中幀可在網(wǎng)橋的內(nèi)部端口上接收。剩余的塊520、530、 532、534、536、540、545、550和590可與方法400A中對應(yīng)的塊類似。因此,方法500可遵循與方法400A相同的學(xué)習(xí)和轉(zhuǎn)發(fā)邏輯。但是,為支持鏈路故障恢復(fù),當(dāng)滿足塊532或545中的條件時,例如,如果在FDB中找到所述幀的DA,方法500可前進至塊570,而不是塊590。在塊570中,方法500可驗證DA的項是否已,例如,出于鏈接故障的原因而在FDB中禁用。如果所述DA的FDB項已禁用,則方法500可前進至塊575,其中包含所述DA的禁用幀可在,例如,接收所述幀的端口上發(fā)送。隨后,方法500可前進至塊550,其中所述幀可能會被丟棄。 另外,如果不滿足塊570中的條件,則方法500可前進至塊590,其中所述幀可在與DA關(guān)聯(lián)的端口上轉(zhuǎn)發(fā)。
圖6描繪了另一個學(xué)習(xí)和轉(zhuǎn)發(fā)方法600的一項實施例,所述方法可用于在多個網(wǎng)橋或交換機之間建立橋接路徑,以及支持鏈接故障恢復(fù)。所述方法600可在在網(wǎng)狀橋接域的外部端口上接收幀的內(nèi)部節(jié)點處實施,例如從網(wǎng)狀橋接域外的外部節(jié)點接收幀。此外,所述幀可為包含單播或單個DA的單播幀。方法600可從塊610開始,其中單播幀可在網(wǎng)橋的外部端口上接收。剩余的塊620、630、632、635、636、660和690可與方法400C中對應(yīng)的塊類似。因此,方法600可遵循與方法400C相同的學(xué)習(xí)和轉(zhuǎn)發(fā)邏輯。但是,為支持鏈路故障恢復(fù),當(dāng)滿足塊632中的條件時,例如,如果在FDB中找到所述幀的DA,方法600可前進至塊 670。在塊670中,方法600可驗證DA的項是否已,例如,出于鏈路故障的原因而在FDB中禁用。如果所述DA的FDB項已禁用,則方法600可前進至塊635,其中所述幀可標(biāo)記為擴散幀,從而擴散到其他節(jié)點,或者,在通過外部端口轉(zhuǎn)發(fā)的情況下,所述幀無需進行標(biāo)記即可發(fā)送。另外,如果不滿足塊670中的條件,則方法600可前進至塊690,其中所述幀可在與 DA關(guān)聯(lián)的端口上轉(zhuǎn)發(fā)。
圖7A描繪了另一個學(xué)習(xí)方法700A的一項實施例,所述方法可用于在多個網(wǎng)橋和交換機之間建立橋接路徑,并為組DA注冊擴散端口。根據(jù)方法700A,組DA的一組擴散端口可通過學(xué)習(xí)以非擴散幀的形式接收單個或單播DA的端口來學(xué)習(xí)。因此,所述節(jié)點可隨后發(fā)送包含組DA以及與單個DA所關(guān)聯(lián)的擴散端口,而不是其余端口上的單個DA相匹配的SA 的任意組播幀,從而可避免將組播幀轉(zhuǎn)發(fā)到可丟棄或過濾所述幀的相鄰節(jié)點。
方法700A可從塊710開始,其中幀可在網(wǎng)橋的端口上接收。在塊712中,方法700A 可確定所述幀是否為非擴散幀的單播幀。如果所述幀為未標(biāo)記為擴散幀的單播幀,則方法 700A可前進至塊714,其中所述端口可注冊為與所述幀的DA關(guān)聯(lián)的擴散端口,且方法700A 隨后會結(jié)束。否則,如果不滿足塊712中的條件,例如,如果所述幀為擴散幀或包含組DA,方法700A會結(jié)束。隨后,例如在使用方法700A接收和處理幀后,可使用上述任意的適當(dāng)?shù)膶W(xué)習(xí)和轉(zhuǎn)發(fā)方法進一步處理所述幀。
圖7B描繪了另一個學(xué)習(xí)和轉(zhuǎn)發(fā)方法700B的一項實施例,所述方法可用于在多個網(wǎng)橋或交換機之間建立橋接路徑,以及用于處理組播幀。方法700B可從塊710開始,其中組播幀可在網(wǎng)橋的外部端口上接收。在塊720中,方法700B可確定所述幀中的 SA是否與所述網(wǎng)橋的不同于接收端口的另一端口關(guān)聯(lián)。如果所述幀中的SA與另一端口關(guān)聯(lián),則方法 700B會前進至塊745。否則,如果不滿足塊720中的條件,則方法700B會前進至塊730。
在塊730中,所述SA可與FDB中的端口關(guān)聯(lián)。在塊732中,方法700B可確定所述幀中的DA是否已在FDB中找到。如果發(fā)現(xiàn)了所述DA的FDB項,則方法700B可前進至塊 790,其中所述幀可在與所述DA關(guān)聯(lián)的端口上轉(zhuǎn)發(fā),且方法700B會結(jié)束。否則,如果不滿足塊732中的條件,則方法400C可前進至塊735。在塊735中,方法700B可驗證所述SA是否與任何擴散端口關(guān)聯(lián)。如果所述SA與一個或一組擴散端口關(guān)聯(lián),則方法700B可前進至塊 738,其中所述幀可在所述擴散端口上轉(zhuǎn)發(fā),然后所述方法結(jié)束。否則,如果所述SA沒有與任何擴散端口關(guān)聯(lián),則方法700B可前進至塊736,其中所述幀可在除源端口外的所有端口上轉(zhuǎn)發(fā),且方法700B隨后會結(jié)束。
此外,在塊745中,方法700B可驗證接收端口是否為,例如,耦合到網(wǎng)狀橋接域外的外部節(jié)點的外部端口。如果所述接收端口是外部端口,則方法700B可前進至塊760。否則,如果接收端口是,例如,耦合到網(wǎng)狀橋接域內(nèi)的內(nèi)部節(jié)點的內(nèi)部端口,則方法700B可前進至塊750,其中所述幀可能會被丟棄,且方法700B隨后會結(jié)束。在塊760中,可能會發(fā)送控制幀以舍棄所述SA,且方法700B隨后可前進至塊730。例如,如果URCF包含作為UA的所述幀的SA,則可對其進行組播,以舍棄之前為SA建立的路徑。
圖8描繪了舍棄和轉(zhuǎn)發(fā)方法800的一項實施例,所述方法可用于處理MAC地址等各種地址的重定位。例如,方法800可在將末端節(jié)點或臺站的鏈路從橋接路徑中的內(nèi)部節(jié)點(或交換機)上的端口移動到另一端口的情況下實施。隨后,末端節(jié)點的地址可在內(nèi)部節(jié)點的新端口上重新學(xué)習(xí)。經(jīng)過重定位的地址可作為UA添加到可擴散到所述節(jié)點(外部節(jié)點除外)的舍棄幀中,例如URCF,以舍棄之前關(guān)聯(lián)的源端口上的地址。舍棄幀也可包含發(fā)端節(jié)點的SA以消除環(huán)路。
方法800可從塊810開始,其中舍棄幀可在網(wǎng)橋的端口上接收。例如,網(wǎng)橋可接收 URCF或標(biāo)記為舍棄幀的幀。在塊820中,方法800可確定所述幀中的SA是否與不同于接收端口的另一端口關(guān)聯(lián)。如果所述幀中的SA與另一端口關(guān)聯(lián),則方法800可前進至塊822,其中所述幀可能會被舍棄,且方法800隨后會結(jié)束。否則,如果不滿足塊820中的條件,則方法800可前進至塊830。在塊830中,方法800可確定是否已在FDB中發(fā)現(xiàn)所述幀中的UA。 如果發(fā)現(xiàn)對應(yīng)于所述幀中的UA的項,則方法800可前進至塊840。否則,如果不滿足塊830 中的條件,則方法800可前進至塊842。在塊840中,所述UA項可從FDB中刪除以舍棄位于節(jié)點中的UA。在塊842中,所述幀可在除源端口外的所有端口上轉(zhuǎn)發(fā),在此情況下,所述源端口可為接收端口。方法800隨后會結(jié)束。在實施方法800以舍棄內(nèi)部節(jié)點中與特定地址關(guān)聯(lián)的地址后,例如與之前為所述地址建立的路徑上的地址關(guān)聯(lián),可在適當(dāng)情況下實施上述的任意方法,以重新學(xué)習(xí)新路徑上的地址。
圖9描繪了地址禁用和轉(zhuǎn)發(fā)方法900的一項實施例,所述方法可用于在網(wǎng)絡(luò)中實現(xiàn)鏈路故障恢復(fù)。地址禁用和轉(zhuǎn)發(fā)方法900可用于更新節(jié)點或網(wǎng)橋的FDB項,作為對因鏈路故障而收到禁用幀的回應(yīng)。所述禁用幀可包含可為其禁用FDB項的已學(xué)習(xí)的單播或單個地址的列表,例如當(dāng)接收到的地址與接收禁用幀的端口關(guān)聯(lián)時。
方法900可從塊910開始, 其中禁用幀可在網(wǎng)橋的端口上接收。所述幀可標(biāo)記為可能包含單播地址的禁用列表的禁用幀或DRCF。在塊920中,方法900可確定在所述幀中的禁用列表中是否存在另一未處理的地址(例如單播DA)。如果禁用列表中存在其他未處理的地址,則方法900可前進至塊940以處理所述地址。如果不滿足塊920中的條件,則方法900可前進至塊930。在塊930中,方法900可確定所述幀中的禁用列表中是否存在任何剩余的已處理的地址。如果禁用列表中存在任何剩余的已處理的地址,則方法900可前進至塊934。如果不滿足塊930中的條件,則方法900可前進至塊932,其中所述幀可能會被舍棄,且方法900隨后會結(jié)束。在塊934中,所述幀可在除接收端口外的所有端口上轉(zhuǎn)發(fā), 且方法900隨后會結(jié)束。
此外,在塊940中,方法900可確定是否存在針對所述幀中的地址(例如單播DA) 的活動FDB項。如果存在針對所述幀中的地址的活動FDB項,例如當(dāng)所述地址與源端口關(guān)聯(lián)時,則方法900可前進至塊950。如果不滿足塊940中的條件,則方法900可前進至塊942。 在塊942中,所述地址可從禁用列表中刪除,且方法900可返回塊920以處理任何剩余的地址。在塊950中,方法900可確定接收端口是否為所述地址(例如單播DA)的轉(zhuǎn)發(fā)端口(例如源端口)。轉(zhuǎn)發(fā)端口可與對應(yīng)于所述地址的FDB項中的地址關(guān)聯(lián)。如果接收端口是所述地址的轉(zhuǎn)發(fā)端口,則方法900可前進至塊962。如果不滿足塊950中的地址,則方法900可前進至塊942。在塊962中,可禁用對應(yīng)于所述地址的FDB項,且方法900可返回塊920。
上述網(wǎng)絡(luò)組件可在任何通用的網(wǎng)絡(luò)組件上實施,例如具有足夠的處理能力、內(nèi)存資源和網(wǎng)絡(luò)吞吐能力以處理所施加的必要工作量的計算機或網(wǎng)絡(luò)組件。圖10描繪了典型的通用網(wǎng)絡(luò)組件1000,所述組件適用于實施本文揭示的組件的一項或更多實施例。網(wǎng)絡(luò)組件1000包括處理器1002(可稱為中央處理器,即CPU),所述處理器與包括輔助存儲器 1004、只讀儲存器(ROM) 1006、隨機存儲器(RAM) 1008的內(nèi)存設(shè)備、輸入/輸出(I/O)設(shè)備 1010,以及網(wǎng)絡(luò)連接設(shè)備1012連通。所述處理器1002可作為一個或多個CPU芯片實施,也可為一個或多個專用集成電路(ASIC)的一部分。
輔助存儲器1004通常由一個或多個磁盤驅(qū)動器或磁帶驅(qū)動器構(gòu)成,且用作數(shù)據(jù)的非易失存儲器,且如果RAM 1008的容量不足以存儲所有工作數(shù)據(jù),則輔助存儲器1004 為溢出性數(shù)據(jù)存儲設(shè)備。輔助存儲器1004可用于存儲在選擇執(zhí)行程序后加載到RAM 1008 中的此類程序。ROM 1006用于存儲指令,以及可能存儲在程序執(zhí)行期間讀取的數(shù)據(jù)。ROM 1006為非易失存儲設(shè)備,與存儲容量較大的輔助存儲器1004相比,該設(shè)備的存儲容量通常較小。RAM 1008用于存儲易失數(shù)據(jù),且可能用于存儲指令。ROM 1006和RAM 1008的訪問速度通常要比輔助存儲器1004快?!?br>
至少一項實施例已公開,且所屬領(lǐng)域的一股技術(shù)人員對實施例和/或?qū)嵤├奶匦运龅母摹⒔M合和/或修改均在本發(fā)明的范圍內(nèi)。通過組合、整合和/或省略實施例的特性而產(chǎn)生的替代實施例也在本發(fā)明的范圍內(nèi)。如果明確說明了數(shù)值范圍或限制,則應(yīng)了解,此類明確范圍或限制應(yīng)包括落在明確說明的范圍或限制內(nèi)的具有相同量值的迭代范圍或限制(例如,從約I到約10包括2、3、4等;大于O. 10包括O. 11,0. 12,0. 13等)。例如,在任何情況下,如果公開了具有下限R1和上限Ru的數(shù)值范圍,則落在此范圍內(nèi)的任何數(shù)值也明確公開。特別地,以下在所述范圍內(nèi)的數(shù)值明確公開R = Rfh(Ru-R1),其中k是從1%到100%且增量為1%的變量,也就是說,k為1%、2%、3%、4%、5% . . . 50%,51%, 52% ... 95%、96%、97%、98%、99%或100%。此外,由上述定義的兩個R值確定的數(shù)值范圍也明確公開。對于權(quán)利要求書的任何元素,術(shù)語“可選”的使用表示需要或者不需要該元素,這兩種選擇均在權(quán)利要求書的范圍內(nèi)。應(yīng)了解,對“包含”、“包括”和“含有”等廣義詞的使用支持“由...構(gòu)成”、“主要由...構(gòu)成”和“大體上由...構(gòu)成”等狹義詞。因此,所保護的范圍不限于上文所述的說明,而是由隨附的權(quán)利要求書確定,所述范圍包括權(quán)利要求書的標(biāo)的物的所有等效物。所有的權(quán)利要求均作為進一步的公開內(nèi)容并入說明書中,且所述權(quán)利要求為本發(fā)明的實施例。本發(fā)明中對引用內(nèi)容的討論,尤其是對公布日期晚于本申請案的優(yōu)先權(quán)日的所有引用內(nèi)容的討論,不視為承認其為現(xiàn)有技術(shù)。
本發(fā)明中引用的所有專利、專利申請和公布的公開在此以引用的方式并入本文中,只要其向本發(fā)明提供了示例性、程序性或其他詳細的補充。
雖然本發(fā)明提供了若干實施例,但應(yīng)了解,所公開的系統(tǒng)和方法可在不脫離本發(fā)明的精神或范圍的情況下采用許多其他的特定形式進行實施。當(dāng)前實例應(yīng)視為說明性而非限制性的實例,且旨在不限于此處提供的詳細說明。例如,可在另一系統(tǒng)中組合或集成多種元件或組件,或者可省略或不實施某些特性。
此外,在各種實施例中介紹和說明的離散或獨立的技術(shù)、系統(tǒng)、子系統(tǒng)和方法可在不脫離本發(fā)明的范圍的情況下與其他系統(tǒng)、模塊、技術(shù)或方法進行組合或集成。所展示或討論的彼此耦合或直接耦合或連通的其他項目可通過特定接口、設(shè)備或中 間組件以電力、機械或其他方式間接耦合或連通。所屬領(lǐng)域的一股技術(shù)人員可確定更改、替換和修改的其他實例,并且所述實例可在不脫離本發(fā)明的精神或范圍的情況下制定。
權(quán)利要求
1.一種網(wǎng)絡(luò),其包含交換機,所述交換機經(jīng)配置以學(xué)習(xí)源節(jié)點的源地址(SA),所述源節(jié)點具有源端口,所述源端口接收包括所述SA的幀,,所述的SA之前沒有在另一端口上被學(xué)習(xí);且所述交換機經(jīng)配置以隨后轉(zhuǎn)發(fā)任何包含目標(biāo)節(jié)點的目標(biāo)地址(DA)的幀,所述DA與所述SA所關(guān)聯(lián)的所述源端口上的所述已學(xué)習(xí)的SA匹配。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò),其特征在于,與所述源端口關(guān)聯(lián)的所述已學(xué)習(xí)的SA是通過向過濾數(shù)據(jù)庫(FDB)添加項來學(xué)習(xí)的,其中所述項在所述已學(xué)習(xí)的SA老化移出時刪除。
3.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò),其特征在于,如果所述幀包含之前未在源端口上學(xué)習(xí)的DA,則所述交換機會擴散在接收端口上接收的幀,其中所述幀在除所述接收端口外的多個端口上擴散。
4.一種網(wǎng)絡(luò),其包含交換機,所述交換機經(jīng)配置以擴散在接收端口接收到的包括目標(biāo)地址(DA)的幀,所述的DA之前沒有在源端口上被學(xué)習(xí);并通過標(biāo)記所述擴散的幀來將所述擴散的幀與其他轉(zhuǎn)發(fā)的幀區(qū)分開來;其中所述幀在多個端口上擴散。
5.根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò),其特征在于,所述擴散的幀是通過在所述幀的所述DA 或源地址(SA)中設(shè)置組位來標(biāo)記為擴散幀。
6.根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò),其特征在于,所述擴散的幀是通過添加指明所述擴散幀的字段或標(biāo)記來標(biāo)記為擴散幀。
7.根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò),其特征在于,所述擴散的幀是通過修改所述接收到的幀中的字段來標(biāo)記為擴散幀。
8.根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò),其特征在于,所述交換機丟棄在接收端口上接收的幀, 所述接收端口不是與所述幀中的源地址(SA)關(guān)聯(lián)的所述源端口。
9.根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò),其特征在于,所述交換機在包含以網(wǎng)狀拓撲連接的多個節(jié)點的多個路徑上接收并轉(zhuǎn)發(fā)所述幀。
10.根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò),其特征在于,如果所述DA是組DA且所述幀中的源地址(SA)與非所述接收端口的第二端口關(guān)聯(lián),則所述交換機擴散所述幀。
11.一種網(wǎng)絡(luò)組件,其包含至少一個處理器經(jīng)配置以實施以下方法,所述方法包括在端口上接收包含目標(biāo)地址(DA)的非擴散幀;以及在所述DA不是組地址的情況下向與所述DA關(guān)聯(lián)的一組擴散端口添加所述端口。
12.根據(jù)權(quán)利要求11所述的網(wǎng)絡(luò)組件,其特征在于,所述方法進一步包括如果后續(xù)幀的DA是組地址且所述后續(xù)幀的SA與一組擴散端口關(guān)聯(lián),則在該組擴散端口上轉(zhuǎn)發(fā)所述后續(xù)幀。
13.一種方法,其包含接收包含舍棄地址(UA)的幀;以及為所述UA刪除過濾數(shù)據(jù)庫(FDB)項。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述UA是在耦合到網(wǎng)狀橋接域外部的節(jié)點的外部端口上接收的幀中的源地址(SA),其中所述SA之前未與所述外部端口關(guān)聯(lián)。
15.根據(jù)權(quán)利要求13所述的方法,其進一步包含發(fā)送控制幀以舍棄所述UA與源端口之間的轉(zhuǎn)發(fā)關(guān)聯(lián)。
16.根據(jù)權(quán)利要求15所述的方法,其特征在于,在接收到所述控制幀時刪除對應(yīng)于所述UA和所述源端口的FDB項。
17.—種方法,其包括禁用對應(yīng)于與端口關(guān)聯(lián)的多個地址的多個過濾數(shù)據(jù)庫(FDB)項;以及在控制幀中發(fā)送所述地址。
18.根據(jù)權(quán)利要求17所述的方法,其特征在于,所述端口為失敗的端口,或耦合到失敗的鏈路。
19.根據(jù)權(quán)利要求17所述的方法,其特征在于,在控制幀中接收所述地址。
20.根據(jù)權(quán)利要求19所述的方法,進一步包括將未與接收所述控制幀的端口關(guān)聯(lián)的地址從所述控制幀中刪除。
21.根據(jù)權(quán)利要求20所述的方法,其進一步包括如果所述控制幀在刪除未與接收所述控制幀的所述端口關(guān)聯(lián)的所述地址后包含任何剩余的地址,則在多個第二端口上擴散所述控制中貞。
22.根據(jù)權(quán)利要求17所述的方法,其進一步包括對于在網(wǎng)狀橋接域中的內(nèi)部端口上接收的任何未標(biāo)記為擴散的包,如果所述包中包含與禁用的FDB項匹配的目標(biāo)地址(DA), 則舍棄所述包。
全文摘要
一種網(wǎng)絡(luò)(200),其包含交換機(220),所述交換機經(jīng)配置以學(xué)習(xí)源節(jié)點(210)的源地址(SA),所述源節(jié)點具有在之前未在另一端口上學(xué)習(xí)所述SA的情況下接收包含所述SA的幀的源端口,且所述交換機經(jīng)配置以隨后轉(zhuǎn)發(fā)任何包含目標(biāo)節(jié)點(210)的目標(biāo)地址(DA)的幀,所述DA與所述SA所關(guān)聯(lián)的所述源端口上的所述已學(xué)習(xí)的SA匹配。所述交換機經(jīng)配置以在接收端口上接收的幀包含之前未在源端口上學(xué)習(xí)的DA的情況下擴散所述幀,并通過標(biāo)記擴散的幀來將所述擴散的幀與其他轉(zhuǎn)發(fā)的幀區(qū)分開來,其中所述幀在多個端口上擴散。進一步披露了一種方法,其包含禁用對應(yīng)于與端口關(guān)聯(lián)的多個地址的多個過濾數(shù)據(jù)庫(FDB)項,以及在控制幀中發(fā)送所述地址。
文檔編號H04L12/931GK103004144SQ201080015377
公開日2013年3月27日 申請日期2010年4月19日 優(yōu)先權(quán)日2009年4月23日
發(fā)明者T·本杰明·麥克格林, 羅伯特·蘇丹, 琳達·鄧巴 申請人:華為技術(shù)有限公司