專利名稱:一種橋接的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種橋接的方法及裝置。
背景技術(shù):
所謂橋接,是指依據(jù)以太網(wǎng)數(shù)據(jù)幀的第二層頭內(nèi)的MAC(媒體接入控制)地址對以太網(wǎng)數(shù)據(jù)幀進(jìn)行轉(zhuǎn)發(fā)的過程。
橋接方案主要是圍繞橋接表建立起一套符合帶寬要求的轉(zhuǎn)發(fā)、學(xué)習(xí)和老化機(jī)制;轉(zhuǎn)發(fā)指的是橋接模塊在接收到以太網(wǎng)數(shù)據(jù)幀后,根據(jù)以太網(wǎng)數(shù)據(jù)幀中的目的MAC地址和廣播域信息在橋接表中進(jìn)行表項(xiàng)查詢,找到所述以太網(wǎng)數(shù)據(jù)幀的目的端口,將其發(fā)送至所述目的端口;學(xué)習(xí)指的是橋接模塊接收到以太網(wǎng)數(shù)據(jù)幀后,獲得所述以太網(wǎng)數(shù)據(jù)幀的源MAC地址,并將所述源MAC地址保存在橋接表中,這一過程稱之為“學(xué)習(xí)”;老化則是指在每一個(gè)時(shí)間周期到來時(shí),對橋接表中的所有表項(xiàng)進(jìn)行老化處理。
現(xiàn)有的橋接方案在進(jìn)行橋接表表項(xiàng)查詢時(shí),通常使用Hash(哈希)算法;Hash算法就是要在Hash算法關(guān)鍵字集合和Hash表地址集合之間建立一種映射關(guān)系,而建立這種映射關(guān)系其實(shí)就是構(gòu)造Hash函數(shù)的過程。當(dāng)Hash算法關(guān)鍵字集合中的關(guān)鍵字的數(shù)量大于Hash表地址集合中的地址的數(shù)量時(shí),必然會(huì)產(chǎn)生沖突,適當(dāng)?shù)卦O(shè)計(jì)Hash函數(shù)可以減少?zèng)_突的產(chǎn)生,但不能避免,沖突處理是Hash算法不可缺少的一個(gè)方面。在硬件實(shí)現(xiàn)的Hash算法中,解決沖突時(shí)通常采用Hash桶法;Hash桶法就是采用Hash桶表存儲(chǔ)橋接表的方法。
下面以橋接表為例,說明現(xiàn)有橋接技術(shù)中存在的問題該橋接表中,以MAC地址+VLAN ID(虛擬局域網(wǎng)ID)作為Hash算法關(guān)鍵字,即Hash(key),該橋接表的深度為64K,即該橋接表中有64K個(gè)表項(xiàng),如表1所示,每個(gè)表項(xiàng)包含MAC地址、廣播隔離域標(biāo)識(shí)信息(VLAN)、轉(zhuǎn)發(fā)信息(Forward Information)等,共103bit(103比特)。所以,該橋接表的大小為64K*103bit,大約6M,即存放這樣的一個(gè)橋接表,需要約為6Mbit的存儲(chǔ)空間。
表一橋接表中每個(gè)表項(xiàng)的內(nèi)容
顯然,芯片內(nèi)部的RAM無法提供如此大規(guī)模的存儲(chǔ)空間,因而所述橋接表只能存儲(chǔ)在芯片外部的RAM中,如采用如圖1所示的橋接結(jié)構(gòu)實(shí)現(xiàn)現(xiàn)有橋接技術(shù)方案的話,需要3片外掛的RAM來存儲(chǔ)該橋接表,ASIC芯片需要有103根數(shù)據(jù)線與外掛的RAM連接;而對于如圖1所示的橋接結(jié)構(gòu)中的三個(gè)控制器,即Ager(老化控制器)、Forwarder(轉(zhuǎn)發(fā)控制器)和Learner(學(xué)習(xí)控制器),是需要通過SSRAM_Control(同步靜態(tài)隨機(jī)存儲(chǔ)器-控制器)訪問位于芯片外部RAM的橋接表,才能實(shí)現(xiàn)現(xiàn)有的橋接技術(shù)方案的。由于考慮到對外掛的RAM采用了連續(xù)流水的讀操作,且采用Hash桶表保存該橋接表,所以對于每個(gè)接收到報(bào)文的橋接模塊,轉(zhuǎn)發(fā)和學(xué)習(xí)操作都需要訪問整個(gè)Hash桶,才能確定最終的轉(zhuǎn)發(fā)策略和學(xué)習(xí)動(dòng)作,即完成橋接。
可見,如果把這樣的橋接表存儲(chǔ)在Hash桶表中的話,需要大量的存儲(chǔ)空間,對于芯片而言,一般情況下,是需要單獨(dú)提供芯片外部RAM的,這樣做不僅浪費(fèi)芯片的管腳資源,同時(shí)也占用芯片外部RAM資源;而采用Hash桶表存儲(chǔ)這樣的橋接表,每次轉(zhuǎn)發(fā)和學(xué)習(xí)操作都需要訪問整個(gè)Hash桶。由于整個(gè)橋接表都存貯于外部RAM中,所以對于芯片外部RAM(即外掛的RAM)的帶寬要求就比較高,同時(shí)由于訪問效率比較低,也造成了一定的帶寬資源的浪費(fèi)。
出于減少外部RAM的訪問帶寬的考慮,現(xiàn)有技術(shù)方案采用了分布式的橋接表結(jié)構(gòu)的方式,將橋接表分離成Hash桶表和轉(zhuǎn)發(fā)表,Hash桶表與轉(zhuǎn)發(fā)表一一對應(yīng)。
Hash桶表用于存貯轉(zhuǎn)發(fā)操作中進(jìn)行匹配查找時(shí)所需要的Key值(key值即關(guān)鍵字,一般情況下以“MAC地址+VLAN ID”做為key值),轉(zhuǎn)發(fā)表用于存儲(chǔ)除了Hash的Key值之外的所有信息。Hash桶表放入芯片內(nèi)部,使用芯片內(nèi)部的RAM來存貯,轉(zhuǎn)發(fā)表則放入芯片外部RAM中。轉(zhuǎn)發(fā)表包括轉(zhuǎn)發(fā)信息、老化信息、靜態(tài)表項(xiàng)信息等。
學(xué)習(xí)操作就是將需要保存的key值信息保存在Hash桶表中;而進(jìn)行轉(zhuǎn)發(fā)操作時(shí),首先需要訪問Hash桶表,進(jìn)行完全匹配查找得到匹配結(jié)果,之后再依據(jù)匹配結(jié)果訪問位于芯片外部RAM的轉(zhuǎn)發(fā)表,完成轉(zhuǎn)發(fā)操作。
由此可以看出,采用現(xiàn)有技術(shù)的分布式的橋接表結(jié)構(gòu)時(shí),Hash桶表存放在芯片內(nèi)部RAM中,由于Hash桶表需要存儲(chǔ)用于全匹配查找的Key值信息,所以該現(xiàn)有技術(shù)方案中,芯片內(nèi)部RAM資源消耗非常大,如果支持的橋接表項(xiàng)數(shù)目過多,可能該方案則無法實(shí)現(xiàn)。
雖然橋接表已分離成Hash桶表和轉(zhuǎn)發(fā)表,但學(xué)習(xí)操作所需要的部分信息有可能保存在轉(zhuǎn)發(fā)表中,比如老化信息位保存在轉(zhuǎn)發(fā)表中,學(xué)習(xí)操作用到老化信息位時(shí)需要訪問轉(zhuǎn)發(fā)表,因此還存在需要訪問轉(zhuǎn)發(fā)表,才能決定是否完成學(xué)習(xí)操作的可能性。
綜上所述,現(xiàn)有技術(shù)存在浪費(fèi)RAM資源、芯片的管腳資源以及帶寬的缺陷。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供了一種橋接的方法及裝置,解決現(xiàn)有技術(shù)中存在的浪費(fèi)RAM資源以及芯片管腳資源的問題。
本發(fā)明的實(shí)施例是通過以下技術(shù)方案實(shí)現(xiàn)一種橋接的方法,所述方法包括根據(jù)第1表項(xiàng)收斂算法對接收到的第一以太網(wǎng)數(shù)據(jù)幀中表征目的節(jié)點(diǎn)特征信息的操作關(guān)鍵字進(jìn)行收斂計(jì)算,得到第1收斂值;根據(jù)所述第1收斂值,查詢存儲(chǔ)有表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字的收斂值的Hash桶表,獲取與所述第1收斂值對應(yīng)的Hash桶表項(xiàng);根據(jù)所述Hash桶表項(xiàng)查找轉(zhuǎn)發(fā)表,得到轉(zhuǎn)發(fā)所述第一以太網(wǎng)數(shù)據(jù)幀所需要的轉(zhuǎn)發(fā)信息;根據(jù)所述轉(zhuǎn)發(fā)信息,完成對所述第一以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)。
一種橋接的裝置,所述裝置包括第一收斂計(jì)算模塊,用于根據(jù)表項(xiàng)收斂算法對以太網(wǎng)數(shù)據(jù)幀中表征目的節(jié)點(diǎn)特征信息的操作關(guān)鍵字進(jìn)行收斂計(jì)算,得到所述以太網(wǎng)數(shù)據(jù)幀的目的節(jié)點(diǎn)的操作關(guān)鍵字對應(yīng)的收斂值;存儲(chǔ)模塊,用于存儲(chǔ)Hash桶表和轉(zhuǎn)發(fā)表;所述Hash桶表用于存儲(chǔ)表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字對應(yīng)的收斂值;查詢模塊,用于根據(jù)所述收斂計(jì)算模塊得到的以太網(wǎng)數(shù)據(jù)幀中目的節(jié)點(diǎn)的操作關(guān)鍵字的收斂值,查詢所述Hash桶表及轉(zhuǎn)發(fā)表,得到所述以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)信息;轉(zhuǎn)發(fā)模塊,用于根據(jù)所述查詢模塊查詢到的轉(zhuǎn)發(fā)信息轉(zhuǎn)發(fā)所述以太網(wǎng)數(shù)據(jù)幀。
由上述本發(fā)明的實(shí)施例提供的技術(shù)方案可以看出,本發(fā)明的實(shí)施例提供了一種橋接的方法及裝置,解決了現(xiàn)有技術(shù)中存在的問題,利用較小的RAM存儲(chǔ)空間存儲(chǔ)以太網(wǎng)數(shù)據(jù)幀的源節(jié)點(diǎn)操作關(guān)鍵字的收斂值,進(jìn)而根據(jù)所述收斂值完成所述以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā),即可達(dá)到減少占用RAM資源、合理利用芯片管腳資源的效果。
圖1為現(xiàn)有技術(shù)方案提供的橋接結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例提供的橋接技術(shù)方案流程圖;圖3為本發(fā)明實(shí)施例提供的實(shí)施例的橋接結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例提供的橋接裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
現(xiàn)有技術(shù)中的橋接表在本發(fā)明實(shí)施例提供的技術(shù)方案中,可以被劃分成Hash桶表、轉(zhuǎn)發(fā)表和老化狀態(tài)表,也可以被劃分成Hash桶表和轉(zhuǎn)發(fā)表,轉(zhuǎn)發(fā)表中包括老化信息;Hash桶表可以存放在芯片內(nèi)部的RAM中,也可以存放在芯片外部的RAM中;Hash桶表可以包括老化狀態(tài)表,也可以不包括老化狀態(tài)表。
本發(fā)明的實(shí)施例提供的技術(shù)方案中,老化狀態(tài)表用于保存實(shí)現(xiàn)老化功能的信息,老化狀態(tài)表可以保存在芯片內(nèi)部RAM中,也可以保存在芯片外部RAM;考慮到老化狀態(tài)表所占用的存儲(chǔ)空間比較小,如果保存在芯片內(nèi)部RAM中,可以減少對芯片外部RAM訪問帶寬,所以一般情況下將老化狀態(tài)表保存在芯片內(nèi)部RAM中。老化操作的步驟可與現(xiàn)有技術(shù)相同,在此就不再贅述。
本發(fā)明的實(shí)施例提供了一種橋接的方法,該方法中,需要在Hash桶表中存儲(chǔ)表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字的收斂值,一般情況下,可以通過獲取以太網(wǎng)數(shù)據(jù)幀中表征源節(jié)點(diǎn)的操作關(guān)鍵字的收斂值(即源操作關(guān)鍵字的收斂值,對應(yīng)于源節(jié)點(diǎn))的方式,獲得表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字的收斂值;而以太網(wǎng)數(shù)據(jù)幀中的源節(jié)點(diǎn)操作關(guān)鍵字的收斂值可以通過動(dòng)態(tài)學(xué)習(xí)的方式獲得,也可以通過靜態(tài)配置的方式獲得;通過動(dòng)態(tài)學(xué)習(xí)的方式獲得所述源節(jié)點(diǎn)操作關(guān)鍵字的收斂值時(shí),需要根據(jù)表項(xiàng)收斂算法對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行收斂計(jì)算;通過靜態(tài)配置的方式獲得所述源節(jié)點(diǎn)操作關(guān)鍵字的收斂值時(shí),可以根據(jù)事先預(yù)定好的規(guī)則直接配置與所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的收斂值;存儲(chǔ)該收斂值時(shí),需要根據(jù)第1表項(xiàng)查詢算法對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算,得到與所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的第1基地址;或者根據(jù)實(shí)現(xiàn)預(yù)定的規(guī)則直接配置與所述源操作關(guān)鍵對應(yīng)的第1基地址;根據(jù)所述第1基地址,確定Hash桶表中存儲(chǔ)所述源節(jié)點(diǎn)操作關(guān)鍵字的第1收斂值的表項(xiàng)位置;根據(jù)所述表項(xiàng)位置將所述源節(jié)點(diǎn)操作關(guān)鍵字的第1收斂值存儲(chǔ)在Hash桶表中;第1收斂值是根據(jù)第1表項(xiàng)收斂算法對接收到的第一以太網(wǎng)數(shù)據(jù)幀中表征目的節(jié)點(diǎn)特征信息的操作關(guān)鍵字進(jìn)行收斂計(jì)算得到的;根據(jù)所述第1收斂值,即可查詢存儲(chǔ)有表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字的收斂值的Hash桶表,在查詢存儲(chǔ)有表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字的收斂值的Hash桶表之前,進(jìn)一步包括根據(jù)第1表項(xiàng)收斂算法對接收到的第二以太網(wǎng)數(shù)據(jù)幀中表征源節(jié)點(diǎn)特征信息的操作關(guān)鍵字進(jìn)行收斂計(jì)算,得到第2收斂值;第二以太網(wǎng)數(shù)據(jù)幀的源節(jié)點(diǎn)與第一以太網(wǎng)數(shù)據(jù)幀的目的節(jié)點(diǎn)相同,第2收斂值與第1收斂值相同;根據(jù)第1表項(xiàng)查詢算法對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算,得到第1基地址;根據(jù)第1基地址,確定所述Hash桶表中存儲(chǔ)第2收斂值的表項(xiàng)位置;根據(jù)所述表項(xiàng)位置將所述第2收斂值存儲(chǔ)到所述Hash桶表中,并將所述第二以太網(wǎng)數(shù)據(jù)幀包含的源節(jié)點(diǎn)的學(xué)習(xí)信息存儲(chǔ)到對應(yīng)的轉(zhuǎn)發(fā)表中。
這里所提到的第1表項(xiàng)收斂算法可以為收斂Hash算法,也可以為其它的收斂算法,只要能夠執(zhí)行對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行收斂計(jì)算的算法,均為表項(xiàng)收斂算法;第1表項(xiàng)查詢算法可以為查詢Hash算法,也可以為其它的查詢算法,只要是通過該算法對所述源節(jié)點(diǎn)操作關(guān)鍵字計(jì)算得到與所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的基地址,均為表項(xiàng)查詢算法。
本發(fā)明實(shí)施例所述方法的步驟包括步驟1,根據(jù)第1表項(xiàng)收斂算法對第一以太網(wǎng)數(shù)據(jù)幀中表征目的節(jié)點(diǎn)的操作關(guān)鍵字(即目的操作關(guān)鍵字,對應(yīng)于目的節(jié)點(diǎn))進(jìn)行收斂計(jì)算,得到所述目的操作關(guān)鍵字的收斂值;步驟2,根據(jù)所述目的操作關(guān)鍵字的收斂值,查詢所述Hash桶表和轉(zhuǎn)發(fā)表,得到轉(zhuǎn)發(fā)所述以太網(wǎng)數(shù)據(jù)幀所需要的轉(zhuǎn)發(fā)信息;查詢所述Hash桶表的步驟為根據(jù)所述目的操作關(guān)鍵字的收斂值,在Hash桶表中進(jìn)行匹配查找,由于Hash桶表中事先存儲(chǔ)有表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字的收斂值,因而所述目的操作關(guān)鍵字的收斂值對應(yīng)的目的節(jié)點(diǎn)的信息可以通過Hash桶表中相關(guān)表項(xiàng)的信息得到,通過匹配查找可以找到Hash桶表內(nèi)與所述收斂值相匹配的Hash桶表的表項(xiàng);得到所述表項(xiàng)的物理地址;查詢轉(zhuǎn)發(fā)表的步驟為根據(jù)查詢所述Hash桶表的步驟得到的所述表項(xiàng)的物理地址,根據(jù)所述表項(xiàng)的物理得到與之對應(yīng)的轉(zhuǎn)發(fā)表表項(xiàng)的物理地址,根據(jù)所述轉(zhuǎn)發(fā)表表項(xiàng)的物理地址訪問轉(zhuǎn)發(fā)表,得到匹配的轉(zhuǎn)發(fā)信息。
步驟3,根據(jù)所述轉(zhuǎn)發(fā)信息,完成對所述以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)。
下面結(jié)合附圖2,以具體的實(shí)施例詳細(xì)說明本發(fā)明的實(shí)施例提供的技術(shù)方案,本實(shí)施例以接收到的以太網(wǎng)數(shù)據(jù)幀中的源MAC地址+VLAN ID作為所述以太網(wǎng)數(shù)據(jù)幀的源節(jié)點(diǎn)操作關(guān)鍵字(將所述源節(jié)點(diǎn)操作關(guān)鍵字記為源key值)、接收到的以太網(wǎng)數(shù)據(jù)幀中的目的MAC地址+VLAN ID作為所述以太網(wǎng)數(shù)據(jù)幀的目的操作關(guān)鍵字(將所述目的操作關(guān)鍵字記為目的key值),用于橋接的相關(guān)信息被分別保存在Hash桶表、轉(zhuǎn)發(fā)表和老化狀態(tài)表中,也就是說,在這個(gè)實(shí)施例中,是以橋接表被劃分成Hash桶表、轉(zhuǎn)發(fā)表和老化狀態(tài)表的情況為例的,如圖3所示;表項(xiàng)收斂Hash算法采用第一種表項(xiàng)收斂算法,表項(xiàng)查詢Hash算法采用第一種表項(xiàng)查詢算法,Hash桶表被保存在芯片內(nèi)部的RAM中。
本發(fā)明的實(shí)施例提供的技術(shù)方案的具體操作步驟包括學(xué)習(xí)操作步驟和轉(zhuǎn)發(fā)操作步驟其中,學(xué)習(xí)操作步驟包括步驟20至步驟21,這里介紹的學(xué)習(xí)操作是通過動(dòng)態(tài)學(xué)習(xí)的方式來完成的;轉(zhuǎn)發(fā)操作步驟包括步驟22至步驟24;步驟20,接收以太網(wǎng)數(shù)據(jù)幀,提取所述以太網(wǎng)數(shù)據(jù)幀中的源MAC地址和VLAN ID,將所述源MAC地址和VLAN ID作為一個(gè)源節(jié)點(diǎn)操作關(guān)鍵字,即將所述源MAC地址和VLAN ID作為一個(gè)源key值;根據(jù)表項(xiàng)收斂Hash算法和表項(xiàng)查詢Hash算法計(jì)算所述源key值,分別得到與所述源key值的收斂值(記為result0)以及與所述源key值對應(yīng)的Hash桶表的基地址(記為index0),到步驟21;一般情況下,源key值過于龐大(如MAC地址+VLAN ID),如果直接將如此龐大的源節(jié)點(diǎn)操作關(guān)鍵字存放在Hash桶表里的話,不做任何處理直接存貯一個(gè)key值就需要n比特空間(如n=60),因此需要有足夠大的RAM空間才能實(shí)現(xiàn)Hash桶表的存放,這使得Hash桶表放在芯片內(nèi)部RAM中會(huì)存在困難;如果對key值進(jìn)行收斂計(jì)算,而后將經(jīng)過收斂計(jì)算得到的結(jié)果存放在Hash桶表里,就可以大大降低Hash桶表所占用的RAM空間,使得Hash桶表可以保存在芯片內(nèi)部RAM中,這樣就使得整個(gè)學(xué)習(xí)操作僅通過訪問芯片內(nèi)部RAM就可以完成,減少了芯片外部RAM的訪問量,也就降低了對芯片外部RAM的帶寬要求;步驟21,在得到所述源key值對應(yīng)的收斂值和基地址之后,首先需要訪問Hash桶表,看看Hash桶表內(nèi)與所述基地址對應(yīng)的表項(xiàng)中,是否已經(jīng)存在與所述收斂值相匹配的信息,如果Hash桶表中沒有與所述收斂值相匹配的信息,且所述表項(xiàng)為空(即所述表項(xiàng)還未被占用),則將所述收斂值(result0)存放在Hash桶表的與所述基地址(index0)對應(yīng)的Hash桶表的表項(xiàng)中;如果Hash桶表中已經(jīng)有與所述收斂值相匹配的表項(xiàng),根據(jù)所述表項(xiàng)的屬性決定是否對所述源key值進(jìn)行學(xué)習(xí);如果Hash桶表中沒有與所述收斂值相匹配的信息,但所述表項(xiàng)不為空(即已經(jīng)被占用)時(shí),不再保存所述收斂值,同時(shí)不再學(xué)習(xí)所述源key值;至此完成橋接步驟中的學(xué)習(xí)操作,接下來,用步驟22到步驟24來說明以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)操作步驟22,在轉(zhuǎn)發(fā)操作中,對于接收到的以太網(wǎng)數(shù)據(jù)幀,需要提取其目的MAC地址+VLAN ID作為目的操作關(guān)鍵字,即目的key值,根據(jù)表項(xiàng)收斂Hash算法對其進(jìn)行收斂計(jì)算,得到與該目的key值對應(yīng)的收斂值result0′,根據(jù)該收斂值result0′到Hash桶表中進(jìn)行匹配查找,找到與該收斂值result0′對應(yīng)的Hash桶表中收斂值result0所在的表項(xiàng),獲取所述表項(xiàng)的物理地址,即得到Hash桶表命中表項(xiàng)的物理地址;到步驟23;需要說明的是,Hash桶表、轉(zhuǎn)發(fā)表以及老化表中各表項(xiàng)的物理地址是相對應(yīng)的,但Hash桶表、轉(zhuǎn)發(fā)表以及老化表所在的RAM是不同的;在這個(gè)步驟里,根據(jù)所述目的key值對應(yīng)的收斂值在Hash桶表中進(jìn)行匹配查找時(shí),Hash桶表中只要有命中表項(xiàng)的存在,就可以得知Hash桶表命中表項(xiàng)的物理地址,也就可以利用它們的物理地址之間的對應(yīng)關(guān)系得到了轉(zhuǎn)發(fā)表以及老化表中相應(yīng)表項(xiàng)的物理地址;步驟23,根據(jù)Hash桶表命中表項(xiàng)的物理地址,訪問存儲(chǔ)于芯片外部RAM中的轉(zhuǎn)發(fā)表,得到轉(zhuǎn)發(fā)表命中表項(xiàng),提取所述轉(zhuǎn)發(fā)表命中表項(xiàng)中的內(nèi)容,得到轉(zhuǎn)發(fā)所述以太網(wǎng)數(shù)據(jù)幀所需要的轉(zhuǎn)發(fā)信息,到步驟24;這里需要說明的是所述轉(zhuǎn)發(fā)信息,可以包括所述以太網(wǎng)數(shù)據(jù)幀應(yīng)該被轉(zhuǎn)發(fā)到的端口的信息,即出端口的端口信息;也可以包括除出端口的端口信息之外的其他的與出端口相關(guān)的信息。本發(fā)明實(shí)施方式不限制轉(zhuǎn)發(fā)信息具體包括的內(nèi)容。
步驟24,根據(jù)所述轉(zhuǎn)發(fā)信息,轉(zhuǎn)發(fā)所述以太網(wǎng)數(shù)據(jù)幀。
以上步驟為橋接技術(shù)方案中的學(xué)習(xí)操作步驟和轉(zhuǎn)發(fā)操作步驟,在本發(fā)明實(shí)施例提供的技術(shù)方案中,可以認(rèn)為學(xué)習(xí)操作和轉(zhuǎn)發(fā)操作是同時(shí)進(jìn)行的,由于學(xué)習(xí)操作所用的時(shí)間比較短,一般情況下學(xué)習(xí)操作會(huì)首先被完成,不會(huì)影響轉(zhuǎn)發(fā)操作的順利進(jìn)行;然而,當(dāng)執(zhí)行其它以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)操作時(shí),需要根據(jù)本次學(xué)習(xí)操作的結(jié)果(如Hash桶表內(nèi)表項(xiàng)的內(nèi)容),確定轉(zhuǎn)發(fā)操作所需要的轉(zhuǎn)發(fā)信息,而本次學(xué)習(xí)操作的結(jié)果還沒有被存放至Hash桶表中,這種情況下,轉(zhuǎn)發(fā)器需要對與此次轉(zhuǎn)發(fā)操作相關(guān)的以太網(wǎng)數(shù)據(jù)幀進(jìn)行一次廣播,在學(xué)習(xí)操作的結(jié)果被存放到Hash桶表后,再根據(jù)Hash桶表的表項(xiàng)對該以太網(wǎng)數(shù)據(jù)幀執(zhí)行轉(zhuǎn)發(fā)操作;也可以是先進(jìn)行學(xué)習(xí)操作,而后再進(jìn)行轉(zhuǎn)發(fā)操作;或者是先進(jìn)行轉(zhuǎn)發(fā)操作,再進(jìn)行學(xué)習(xí)操作。
從上述步驟可以看出,由于對以太網(wǎng)數(shù)據(jù)幀中的操作關(guān)鍵字進(jìn)行了收斂計(jì)算,大大減少了Hash桶表所需要占用的存儲(chǔ)空間,使得Hash桶表保存在芯片內(nèi)部RAM成為可能,從而大大降低了RAM資源的占用;同時(shí),無論Hash桶表存放在芯片內(nèi)部的RAM中,還是存放在芯片外部的RAM中,均能夠達(dá)到減少對管腳資源的目的;若通過將Hash桶表與轉(zhuǎn)發(fā)表的分離,將Hash桶表存放在芯片內(nèi)部的RAM中,則在大大減少了對芯片管腳的使用的同時(shí),還降低了對外部RAM訪問帶寬的要求,達(dá)到節(jié)省帶寬、RAM資源的效果,提高橋接的工作效率。
在上述步驟中,如果根據(jù)表項(xiàng)算法(可以是表項(xiàng)收斂Hash算法,也可以是表項(xiàng)查詢Hash算法)對不同以太網(wǎng)數(shù)據(jù)幀中的key值進(jìn)行計(jì)算的計(jì)算結(jié)果相同,稱之為計(jì)算結(jié)果沖突;比如說,根據(jù)表項(xiàng)收斂Hash算法,分別對接收到的以太網(wǎng)數(shù)據(jù)幀1中的源MAC地址+VLAN ID和以太網(wǎng)數(shù)據(jù)幀2中的源MAC地址+VLAN ID進(jìn)行計(jì)算,得到以太網(wǎng)數(shù)據(jù)幀1中的源MAC地址+VLAN ID對應(yīng)的收斂值result1、以太網(wǎng)數(shù)據(jù)幀2中的源MAC地址+VLAN ID對應(yīng)的收斂值result2,比較result1和result2,當(dāng)發(fā)現(xiàn)result1=result2存在時(shí),稱之為計(jì)算結(jié)果沖突。
對多組不同的源Key值,根據(jù)表項(xiàng)收斂Hash算法和表項(xiàng)查詢Hash算法對其進(jìn)行計(jì)算時(shí),所得到的計(jì)算結(jié)果可能同時(shí)發(fā)生沖突,由于在Hash桶表內(nèi)并沒有存貯原始源Key值信息,難以做到對沖突情況的檢測;這種情況下無法對相關(guān)的以太網(wǎng)數(shù)據(jù)幀進(jìn)行正確的轉(zhuǎn)發(fā)。
本發(fā)明的實(shí)施例提供的技術(shù)方案解決了表項(xiàng)查詢Hash算法計(jì)算結(jié)果沖突的情況下,表項(xiàng)收斂Hash算法計(jì)算結(jié)果同時(shí)沖突的問題。本發(fā)明的實(shí)施例可以通過軟件來輔助完成學(xué)習(xí)操作來解決兩種計(jì)算結(jié)果同時(shí)沖突的問題,也可以通過硬件的方式來解決所述問題;具體的操作方式為首先,判斷根據(jù)表項(xiàng)收斂Hash算法和表項(xiàng)查詢Hash算法,對多組不同的源Key值進(jìn)行計(jì)算,所得到的計(jì)算結(jié)果是否會(huì)同時(shí)沖突,如果確認(rèn)這兩種計(jì)算結(jié)果同時(shí)沖突,可以通過配置選擇另外一種表項(xiàng)收斂Hash算法,規(guī)避沖突;如果規(guī)避結(jié)果也無效的話,則上報(bào)網(wǎng)管,通知用戶替換源key值(如源MAC地址)。
為了充分說明本發(fā)明的實(shí)施例提供的解決兩種計(jì)算結(jié)果同時(shí)沖突的技術(shù)方案,下面對此進(jìn)行舉例說明根據(jù)第1表項(xiàng)收斂算法和第1表項(xiàng)查詢算法分別對源key值1和源key值2進(jìn)行計(jì)算,得到源key值1對應(yīng)的第1收斂值、第1基地址和源key值2對應(yīng)的第2收斂值、第2基地址;當(dāng)?shù)?收斂值與第2收斂值、第1基地址與第2基地址同時(shí)相等時(shí),系統(tǒng)可以配置第2表項(xiàng)收斂算法分別對源key值1和源key值2進(jìn)行計(jì)算;也可以配置第2表項(xiàng)查詢算法分別對源key值1和源key值2進(jìn)行計(jì)算;還可以同時(shí)配置第2表項(xiàng)收斂算法和第2表現(xiàn)查詢算法分別對源key值1和源key值2進(jìn)行計(jì)算;當(dāng)系統(tǒng)配置第2表項(xiàng)收斂算法分別對源key值1和源key值2進(jìn)行計(jì)算,分別得到源key值1對應(yīng)的第3收斂值和源key值2對應(yīng)的第4收斂值時(shí),若所述第3收斂值與第4收斂值不相等,需要存儲(chǔ)所述源key值與表項(xiàng)收斂算法的對應(yīng)關(guān)系,并將所述第3收斂值保存在Hash桶表中的與第1基地址對應(yīng)的表項(xiàng)中、將所述第4收斂值保存在Hash桶表中的與第2基地址對應(yīng)的表項(xiàng)中,根據(jù)所述對應(yīng)關(guān)系確定源key值1對應(yīng)的目的key值1和源key值2對應(yīng)的目的key值2分別對應(yīng)的表項(xiàng)收斂算法,并根據(jù)其對應(yīng)的表項(xiàng)收斂算法,分別對所述目的key值1和所述目的key值2進(jìn)行計(jì)算,分別得到目的key值1對應(yīng)的第5收斂值和目的key值2對應(yīng)的第6收斂值,分別根據(jù)第5收斂值、第6收斂值到Hash桶表中進(jìn)行匹配查詢,獲得與第5收斂值對應(yīng)的命中表項(xiàng)的物理地址、以及與第6收斂值對應(yīng)的命中表項(xiàng)的物理地址,分別根據(jù)第5收斂值對應(yīng)的命中表項(xiàng)的物理地址以及與第6收斂值對應(yīng)的命中表項(xiàng)的物理地址查詢轉(zhuǎn)發(fā)表,得到第5收斂值對應(yīng)的轉(zhuǎn)發(fā)信息1和第6收斂值對應(yīng)的轉(zhuǎn)發(fā)信息2,根據(jù)轉(zhuǎn)發(fā)信息1轉(zhuǎn)發(fā)源key值1對應(yīng)的以太網(wǎng)數(shù)據(jù)幀,根據(jù)轉(zhuǎn)發(fā)信息2轉(zhuǎn)發(fā)源key值2對應(yīng)的以太網(wǎng)數(shù)據(jù)幀;若所述第3收斂值與第4收斂值相等,則通知源key值1對應(yīng)的以太網(wǎng)數(shù)據(jù)幀和源key值2對應(yīng)的以太網(wǎng)數(shù)據(jù)幀的輸出端修改源key值(如源MAC地址);當(dāng)系統(tǒng)配置第2表項(xiàng)查詢算法分別對源key值1和源key值2進(jìn)行計(jì)算,分別得到源key值1對應(yīng)的第3基地址和源key值2對應(yīng)的第4基地址時(shí),若所述第3基地址與第4基地址不相等,將所述第1收斂值保存在Hash桶表中的與第3基地址對應(yīng)的表項(xiàng)中、將所述第2收斂值保存在Hash桶表中的與第4基地址對應(yīng)的表項(xiàng)中,根據(jù)第1表項(xiàng)收斂算法分別對源key值1對應(yīng)的目的key值1和源key值2對應(yīng)的目的key值2進(jìn)行計(jì)算,分別得到目的key值1對應(yīng)的第7收斂值和目的key值2對應(yīng)的第8收斂值,分別根據(jù)第7收斂值、第8收斂值到Hash桶表中進(jìn)行匹配查詢,獲得與第7收斂值對應(yīng)的命中表項(xiàng)的物理地址、以及與第8收斂值對應(yīng)的命中表項(xiàng)的物理地址,分別根據(jù)第7收斂值對應(yīng)的命中表項(xiàng)的物理地址以及與第8收斂值對應(yīng)的命中表項(xiàng)的物理地址查詢轉(zhuǎn)發(fā)表,得到第7收斂值對應(yīng)的轉(zhuǎn)發(fā)信息3和第8收斂值對應(yīng)的轉(zhuǎn)發(fā)信息4,根據(jù)轉(zhuǎn)發(fā)信息3轉(zhuǎn)發(fā)源key值1對應(yīng)的以太網(wǎng)數(shù)據(jù)幀,根據(jù)轉(zhuǎn)發(fā)信息4轉(zhuǎn)發(fā)源key值2對應(yīng)的以太網(wǎng)數(shù)據(jù)幀;若所述第3基地址與第4基地址相等,則通知源key值1對應(yīng)的以太網(wǎng)數(shù)據(jù)幀和源key值2對應(yīng)的以太網(wǎng)數(shù)據(jù)幀的輸出端修改源key值(如源MAC地址);當(dāng)系統(tǒng)同時(shí)配置第2表項(xiàng)收斂算法和第2表現(xiàn)查詢算法分別對源key值1和源key值2進(jìn)行計(jì)算,分別得到源key值1對應(yīng)的第3收斂值、第3基地址和源key值2對應(yīng)的第4收斂值、第4基地址時(shí);若所述第3收斂值與第4收斂值、第3基地址與第4基地址均不相等或不同時(shí)相等,即第3收斂值與第4收斂值相等、第3基地址與第4基地址相等不同時(shí)存在時(shí),需要存儲(chǔ)所述源key值與表項(xiàng)收斂算法的對應(yīng)關(guān)系,并將所述第3收斂值保存在Hash桶表中的與第3基地址對應(yīng)的表項(xiàng)中、將所述第4收斂值保存在Hash桶表中的與第4基地址對應(yīng)的表項(xiàng)中,根據(jù)所述對應(yīng)關(guān)系確定源key值1對應(yīng)的目的key值1和源key值2對應(yīng)的目的key值2分別對應(yīng)的表項(xiàng)收斂算法,并根據(jù)其對應(yīng)的表項(xiàng)收斂算法,分別對所述目的key值1和所述目的key值2進(jìn)行計(jì)算,分別得到目的key值1對應(yīng)的第9收斂值和目的key值2對應(yīng)的第10收斂值,分別根據(jù)第9收斂值、第10收斂值到Hash桶表中進(jìn)行匹配查詢,獲得與第9收斂值對應(yīng)的命中表項(xiàng)的物理地址、以及與第10收斂值對應(yīng)的命中表項(xiàng)的物理地址,分別根據(jù)第9收斂值對應(yīng)的命中表項(xiàng)的物理地址以及與第10收斂值對應(yīng)的命中表項(xiàng)的物理地址查詢轉(zhuǎn)發(fā)表,得到第9收斂值對應(yīng)的轉(zhuǎn)發(fā)信息5和第10收斂值對應(yīng)的轉(zhuǎn)發(fā)信息6,根據(jù)轉(zhuǎn)發(fā)信息5轉(zhuǎn)發(fā)源key值1對應(yīng)的以太網(wǎng)數(shù)據(jù)幀,根據(jù)轉(zhuǎn)發(fā)信息6轉(zhuǎn)發(fā)源key值2對應(yīng)的以太網(wǎng)數(shù)據(jù)幀;若所述第3收斂值與第4收斂值相等、第3基地址與第4基地址相等同時(shí)存在,則通知源key值1對應(yīng)的以太網(wǎng)數(shù)據(jù)幀和源key值2對應(yīng)的以太網(wǎng)數(shù)據(jù)幀的輸出端修改源key值(如源MAC地址)需要說明的是,可以提供多種不同的表項(xiàng)收斂Hash算法用于進(jìn)行收斂計(jì)算;不同的表項(xiàng)收斂Hash算法保存在Hash算法選擇表中,Hash算法選擇表中的表項(xiàng)收斂Hash算法與Hash桶表可以是一一對應(yīng)的,即一種表項(xiàng)收斂Hash算法對應(yīng)于一個(gè)Hash桶表;也可以是一種表項(xiàng)收斂Hash算法對應(yīng)多個(gè)Hash桶表,也可以是多種表項(xiàng)收斂Hash算法對應(yīng)一個(gè)Hash桶表,還可以Hash算法選擇表中所有的表項(xiàng)收斂Hash算法就與一個(gè)Hash桶表相對應(yīng)。
本發(fā)明的實(shí)施例還提供了一種橋接的裝置,該裝置的結(jié)構(gòu)示意圖如圖4所示,包括第一收斂計(jì)算模塊、第二收斂計(jì)算模塊、查詢計(jì)算模塊、存儲(chǔ)模塊、查詢模塊、轉(zhuǎn)發(fā)模塊、學(xué)習(xí)模塊、第一判斷模塊和/或第二判斷模塊、第一配置模塊和/或第二配置模塊,所述裝置可以同時(shí)包括兩組判斷模塊和配置模塊,即第一判斷模塊、第一配置模塊和第二判斷模塊、第二配置模塊,也可以包括二組模塊中任一組模塊;其中,查詢模塊包括匹配查詢模塊和轉(zhuǎn)發(fā)查詢模塊,在本發(fā)明的實(shí)施例提供的裝置的具體實(shí)現(xiàn)時(shí),第一收斂計(jì)算模塊和第二收斂計(jì)算模塊可以通過一個(gè)實(shí)體來實(shí)現(xiàn);第一收斂計(jì)算模塊,用于根據(jù)表項(xiàng)收斂算法對以太網(wǎng)數(shù)據(jù)幀中表征目的節(jié)點(diǎn)特征信息的操作關(guān)鍵字(即目的操作關(guān)鍵字)進(jìn)行收斂計(jì)算,得到所述以太網(wǎng)數(shù)據(jù)幀的目的操作關(guān)鍵字對應(yīng)的收斂值。
第二收斂計(jì)算模塊,用于根據(jù)表項(xiàng)收斂算法對以太網(wǎng)數(shù)據(jù)幀中的源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算,得到所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的收斂值。
查詢計(jì)算模塊用于根據(jù)表項(xiàng)查詢算法,對接收到的以太網(wǎng)數(shù)據(jù)幀中的源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算,得到所述第二收斂計(jì)算模塊得到的以太網(wǎng)數(shù)據(jù)幀中源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的基地址。
存儲(chǔ)模塊主要用于存儲(chǔ)Hash桶表和轉(zhuǎn)發(fā)表,所述Hash桶表用于存儲(chǔ)表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字對應(yīng)的收斂值;該存儲(chǔ)模塊包括內(nèi)部存儲(chǔ)子模塊和外部存儲(chǔ)子模塊,所述內(nèi)部存儲(chǔ)子模塊用于存儲(chǔ)Hash桶表,同時(shí)也可以存儲(chǔ)老化狀態(tài)表,所述外部存儲(chǔ)子模塊用于保存轉(zhuǎn)發(fā)表;所述外部存儲(chǔ)子模塊設(shè)置于芯片外部的RAM中;所述芯片包括專用集成電路ASIC芯片;存儲(chǔ)模塊還用于保存算法選擇表,所述算法選擇表用于存儲(chǔ)表項(xiàng)收斂算法和表項(xiàng)查詢算法;所述算法選擇表與Hash桶表一一對應(yīng);所述老化狀態(tài)表用于保存接收到的以太網(wǎng)數(shù)據(jù)幀的老化信息;所述Hash桶表用于保存與接收到的以太網(wǎng)數(shù)據(jù)幀的源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的收斂值以及與所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的基地址;所述轉(zhuǎn)發(fā)表用于保存轉(zhuǎn)發(fā)接收到的以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)信息;所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的收斂值為收斂計(jì)算模塊根據(jù)表項(xiàng)收斂算法對接收到的以太網(wǎng)數(shù)據(jù)幀的源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行收斂計(jì)算所得到的數(shù)值;所述基地址為查詢計(jì)算模塊根據(jù)表項(xiàng)查詢算法,對接收到的以太網(wǎng)數(shù)據(jù)幀的源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行收斂計(jì)算所得到的數(shù)值。
學(xué)習(xí)模塊,用于根據(jù)所述查詢計(jì)算模塊得到的所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的基地址,確定Hash桶表中存儲(chǔ)所述源節(jié)點(diǎn)操作關(guān)鍵字收斂值的表項(xiàng)的位置,并根據(jù)所述表項(xiàng)的位置將所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的收斂值存儲(chǔ)在Hash桶表中。
查詢模塊,用于根據(jù)所述收斂計(jì)算模塊得到的以太網(wǎng)數(shù)據(jù)幀中目的節(jié)點(diǎn)的操作關(guān)鍵字的收斂值,查詢所述Hash桶表及轉(zhuǎn)發(fā)表,得到所述以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)信息;該模塊包括匹配查詢模塊和轉(zhuǎn)發(fā)查詢模塊,匹配查詢模塊用于根據(jù)所述第一收斂計(jì)算模塊得到的目的節(jié)點(diǎn)的操作關(guān)鍵字對應(yīng)的收斂值在Hash桶表內(nèi)進(jìn)行匹配查詢,得到Hash桶表中與所述目的節(jié)點(diǎn)的操作關(guān)鍵字對應(yīng)的收斂值匹配的表項(xiàng);轉(zhuǎn)發(fā)查詢模塊用于根據(jù)所述匹配查詢模塊查詢得到的匹配的表項(xiàng)的物理地址,得到與之對應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)的物理地址,得到所述以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)信息。
轉(zhuǎn)發(fā)模塊,用于根據(jù)所述查詢模塊查詢到的轉(zhuǎn)發(fā)信息轉(zhuǎn)發(fā)所述以太網(wǎng)數(shù)據(jù)幀。
第一判斷模塊,用于判斷所述學(xué)習(xí)模塊根據(jù)所述查詢計(jì)算模塊得到的基地址存儲(chǔ)所述第二收斂計(jì)算模塊得到的所述源節(jié)點(diǎn)操作關(guān)鍵字的收斂值是否沖突;
第一配置模塊,用于在所述第一判斷模塊的判斷結(jié)果為沖突時(shí),配置所述第二收斂計(jì)算模塊選擇第2表項(xiàng)收斂算法(即不同于第1表項(xiàng)收斂算法的表項(xiàng)收斂算法)對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行收斂計(jì)算并通知所述第一判斷模塊進(jìn)行判斷,若判斷結(jié)果仍為沖突,則通知所述以太網(wǎng)數(shù)據(jù)幀的輸出端修改所述源節(jié)點(diǎn)操作關(guān)鍵字;若所述第一判斷模塊的判斷結(jié)果為不沖突,則通知所述學(xué)習(xí)模塊進(jìn)行存儲(chǔ),存儲(chǔ)所述源節(jié)點(diǎn)操作關(guān)鍵字與表項(xiàng)收斂算法的對應(yīng)關(guān)系,并通知存儲(chǔ)模塊將所述收斂值存儲(chǔ)在Hash桶表中;第二判斷模塊,用于判斷所述學(xué)習(xí)模塊根據(jù)所述查詢計(jì)算模塊得到的基地址存儲(chǔ)所述第二收斂計(jì)算模塊得到的所述源節(jié)點(diǎn)操作關(guān)鍵字的收斂值是否沖突;第二配置模塊,用于在所述第二判斷模塊的判斷結(jié)果為沖突時(shí),配置所述查詢計(jì)算模塊選擇第2表項(xiàng)查詢算法(即不同于第1表項(xiàng)查詢算法的表項(xiàng)查詢算法)對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算并通知所述第一判斷模塊進(jìn)行判斷,若判斷結(jié)果仍為沖突,則通知所述以太網(wǎng)數(shù)據(jù)幀的輸出端修改所述源節(jié)點(diǎn)操作關(guān)鍵字;若所述第一判斷模塊的判斷結(jié)果為不沖突,則通知所述學(xué)習(xí)模塊進(jìn)行存儲(chǔ)。
需要說明的是這里所描述的第1表項(xiàng)收斂算法、第2表項(xiàng)收斂算法、第1表項(xiàng)查詢算法以及第2表項(xiàng)查詢算法并不特指某固定的算法,采用第1表項(xiàng)收斂算法、第2表項(xiàng)收斂算法、第1表項(xiàng)查詢算法以及第2表項(xiàng)查詢算法這種方式描述,僅僅為了便于表述本發(fā)明的技術(shù)方案。
本發(fā)明實(shí)施例提供的裝置的技術(shù)方案與本發(fā)明實(shí)施例提供的方法的技術(shù)方案相同,在此不再贅述。
綜上所述可知,本發(fā)明的實(shí)施例提供的橋接的方法及裝置,通過對以太網(wǎng)數(shù)據(jù)幀中的源節(jié)點(diǎn)操作關(guān)鍵字的收斂計(jì)算,保存所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的收斂值,減小了保存所述源節(jié)點(diǎn)操作關(guān)鍵字的信息所需占用的RAM空間,達(dá)到了減少占用RAM資源,合理使用芯片管腳資源的目的。
至此,本發(fā)明僅以較佳的實(shí)施方式為例說明了本發(fā)明實(shí)施例提供的技術(shù)方案,但本發(fā)明不只限于此,一切基于在Hash桶表中存儲(chǔ)以太網(wǎng)數(shù)據(jù)幀的源節(jié)點(diǎn)操作關(guān)鍵字的收斂值,根據(jù)表項(xiàng)收斂算法對所述以太網(wǎng)數(shù)據(jù)幀的目的操作關(guān)鍵字進(jìn)行收斂計(jì)算,得到所述以太網(wǎng)數(shù)據(jù)幀的目的操作關(guān)鍵字的收斂值;根據(jù)所述目的操作關(guān)鍵字的收斂值,查詢所述Hash桶表和轉(zhuǎn)發(fā)表,得到轉(zhuǎn)發(fā)所述以太網(wǎng)數(shù)據(jù)幀所需要的轉(zhuǎn)發(fā)信息;根據(jù)所述轉(zhuǎn)發(fā)信息,完成對所述以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)的技術(shù)方案,不管采用何種形式,均在本發(fā)明的保護(hù)范圍之內(nèi)。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種橋接的方法,其特征在于,所述方法包括根據(jù)第1表項(xiàng)收斂算法對接收到的第一以太網(wǎng)數(shù)據(jù)幀中表征目的節(jié)點(diǎn)特征信息的操作關(guān)鍵字進(jìn)行收斂計(jì)算,得到第1收斂值;根據(jù)所述第1收斂值,查詢存儲(chǔ)有表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字的收斂值的Hash桶表,獲取與所述第1收斂值對應(yīng)的Hash桶表項(xiàng);根據(jù)所述Hash桶表項(xiàng)查找轉(zhuǎn)發(fā)表,得到轉(zhuǎn)發(fā)所述第一以太網(wǎng)數(shù)據(jù)幀所需要的轉(zhuǎn)發(fā)信息;根據(jù)所述轉(zhuǎn)發(fā)信息,完成對所述第一以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述第1收斂值,查詢存儲(chǔ)有表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字的收斂值的Hash桶表之前,進(jìn)一步包括步驟根據(jù)所述第1表項(xiàng)收斂算法對接收到的第二以太網(wǎng)數(shù)據(jù)幀中表征源節(jié)點(diǎn)特征信息的操作關(guān)鍵字進(jìn)行收斂計(jì)算,得到第2收斂值;所述第二以太網(wǎng)數(shù)據(jù)幀的源節(jié)點(diǎn)與所述第一以太網(wǎng)數(shù)據(jù)幀的目的節(jié)點(diǎn)相同,所述第2收斂值與所述第1收斂值相同;根據(jù)第1表項(xiàng)查詢算法對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算,得到第1基地址;根據(jù)所述第1基地址,確定所述Hash桶表中存儲(chǔ)所述第2收斂值的表項(xiàng)位置;根據(jù)所述表項(xiàng)位置將所述第2收斂值存儲(chǔ)到所述Hash桶表中,并將所述第二以太網(wǎng)數(shù)據(jù)幀包含的源節(jié)點(diǎn)的學(xué)習(xí)信息存儲(chǔ)到對應(yīng)的轉(zhuǎn)發(fā)表中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述第1收斂值,查詢存儲(chǔ)有表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字的收斂值的Hash桶表之前,進(jìn)一步包括根據(jù)所述第1表項(xiàng)收斂算法對接收到的第二以太網(wǎng)數(shù)據(jù)幀中表征源節(jié)點(diǎn)特征信息的操作關(guān)鍵字進(jìn)行收斂計(jì)算,得到第2收斂值;所述第二以太網(wǎng)數(shù)據(jù)幀的源節(jié)點(diǎn)與所述第一以太網(wǎng)數(shù)據(jù)幀的目的節(jié)點(diǎn)相同,所述第2收斂值與所述第1收斂值相同;根據(jù)第1表項(xiàng)查詢算法對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算,得到第1基地址;確定采用所述第1表項(xiàng)查詢算法及所述第1表項(xiàng)收斂算法存儲(chǔ)所述源節(jié)點(diǎn)操作關(guān)鍵字的收斂值發(fā)生沖突時(shí),選擇第2表項(xiàng)查詢算法對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算,得到與第2表項(xiàng)查詢算法對應(yīng)的、所述源節(jié)點(diǎn)操作關(guān)鍵字的基地址;在確定所述與第2表項(xiàng)查詢算法對應(yīng)的基地址不沖突后,根據(jù)所述第2表項(xiàng)查詢算法對應(yīng)的基地址將所述源節(jié)點(diǎn)操作關(guān)鍵字的收斂值存儲(chǔ)在Hash桶表中;否則,修改所述源節(jié)點(diǎn)操作關(guān)鍵字。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述查詢Hash桶表和轉(zhuǎn)發(fā)表的步驟包括根據(jù)所述目的節(jié)點(diǎn)的操作關(guān)鍵字的收斂值,在Hash桶表中進(jìn)行匹配查找,找到Hash桶表內(nèi)與所述收斂值相匹配的Hash桶表的表項(xiàng);得到所述表項(xiàng)的物理地址;根據(jù)所述表項(xiàng)的物理得到與之對應(yīng)的轉(zhuǎn)發(fā)表表項(xiàng)的物理地址,根據(jù)所述轉(zhuǎn)發(fā)表表項(xiàng)的物理地址訪問轉(zhuǎn)發(fā)表,得到匹配的轉(zhuǎn)發(fā)信息。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述第1收斂值,查詢存儲(chǔ)有存儲(chǔ)表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字的收斂值的Hash桶表之前,進(jìn)一步包括根據(jù)所述第1表項(xiàng)收斂算法對接收到的第二以太網(wǎng)數(shù)據(jù)幀中表征源節(jié)點(diǎn)特征信息的操作關(guān)鍵字進(jìn)行收斂計(jì)算,得到第2收斂值;所述第二以太網(wǎng)數(shù)據(jù)幀的源節(jié)點(diǎn)與所述第一以太網(wǎng)數(shù)據(jù)幀的目的節(jié)點(diǎn)相同,所述第2收斂值與所述第1收斂值相同;根據(jù)第1表項(xiàng)查詢算法對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算,得到第1基地址;在確定采用第1表項(xiàng)查詢算法及第1表項(xiàng)收斂算法存儲(chǔ)源節(jié)點(diǎn)操作關(guān)鍵字的收斂值發(fā)生沖突時(shí),選擇第2表項(xiàng)收斂算法對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算,得到與第2表項(xiàng)收斂算法對應(yīng)的收斂值;在確定所述與第2表項(xiàng)收斂算法對應(yīng)的收斂值不沖突后,存儲(chǔ)所述源節(jié)點(diǎn)操作關(guān)鍵字與表項(xiàng)收斂算法的對應(yīng)關(guān)系,并根據(jù)第1表項(xiàng)查詢算法對所述源節(jié)點(diǎn)操作關(guān)鍵字計(jì)算得到的與所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的基地址,在Hash桶表中存儲(chǔ)所述第2表項(xiàng)收斂算法對應(yīng)的收斂值;否則,修改所述源節(jié)點(diǎn)操作關(guān)鍵字;且所述對目的節(jié)點(diǎn)的操作關(guān)鍵字進(jìn)行收斂計(jì)算的步驟包括根據(jù)所述對應(yīng)關(guān)系,確定所述以太網(wǎng)數(shù)據(jù)幀的目的節(jié)點(diǎn)的操作關(guān)鍵字對應(yīng)的表項(xiàng)收斂算法,根據(jù)所述表項(xiàng)收斂算法對所述目的節(jié)點(diǎn)的操作關(guān)鍵字進(jìn)行收斂計(jì)算,得到所述目的節(jié)點(diǎn)的操作關(guān)鍵字的收斂值。
6.一種橋接的裝置,其特征在于,所述裝置包括第一收斂計(jì)算模塊,用于根據(jù)表項(xiàng)收斂算法對以太網(wǎng)數(shù)據(jù)幀中表征目的節(jié)點(diǎn)特征信息的操作關(guān)鍵字進(jìn)行收斂計(jì)算,得到所述以太網(wǎng)數(shù)據(jù)幀的目的節(jié)點(diǎn)的操作關(guān)鍵字對應(yīng)的收斂值;存儲(chǔ)模塊,用于存儲(chǔ)Hash桶表和轉(zhuǎn)發(fā)表;所述Hash桶表用于存儲(chǔ)表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的操作關(guān)鍵字對應(yīng)的收斂值;查詢模塊,用于根據(jù)所述第一收斂計(jì)算模塊得到的以太網(wǎng)數(shù)據(jù)幀中目的節(jié)點(diǎn)的操作關(guān)鍵字的收斂值,查詢所述Hash桶表及轉(zhuǎn)發(fā)表,得到所述以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)信息;轉(zhuǎn)發(fā)模塊,用于根據(jù)所述查詢模塊查詢到的轉(zhuǎn)發(fā)信息轉(zhuǎn)發(fā)所述以太網(wǎng)數(shù)據(jù)幀。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括第二收斂計(jì)算模塊,用于根據(jù)表項(xiàng)收斂算法對以太網(wǎng)數(shù)據(jù)幀中的源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算,得到所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的收斂值;查詢計(jì)算模塊,用于根據(jù)表項(xiàng)查詢算法對以太網(wǎng)數(shù)據(jù)幀中的源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算,得到所述第二收斂計(jì)算模塊得到的以太網(wǎng)數(shù)據(jù)幀中源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的基地址;學(xué)習(xí)模塊,用于根據(jù)所述查詢計(jì)算模塊得到的所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的基地址,確定Hash桶表中存儲(chǔ)所述源節(jié)點(diǎn)操作關(guān)鍵字收斂值的表項(xiàng)的位置,并根據(jù)所述表項(xiàng)的位置將所述源節(jié)點(diǎn)操作關(guān)鍵字對應(yīng)的收斂值存儲(chǔ)在Hash桶表中。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述查詢模塊包括匹配查詢模塊和轉(zhuǎn)發(fā)查詢模塊;所述匹配查詢模塊,用于根據(jù)所述第一收斂計(jì)算模塊得到的目的節(jié)點(diǎn)的操作關(guān)鍵字對應(yīng)的收斂值在Hash桶表內(nèi)進(jìn)行匹配查詢,得到Hash桶表中與所述目的節(jié)點(diǎn)的操作關(guān)鍵字對應(yīng)的收斂值相匹配的表項(xiàng);所述轉(zhuǎn)發(fā)查詢模塊,用于根據(jù)所述匹配查詢模塊查詢得到的所述匹配的表項(xiàng)的物理地址,得到與之對應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)的物理地址,得到所述以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)信息。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述存儲(chǔ)模塊包括內(nèi)部存儲(chǔ)子模塊和外部存儲(chǔ)子模塊;所述內(nèi)部存儲(chǔ)子模塊用于存儲(chǔ)所述Hash桶表,所述內(nèi)部存儲(chǔ)子模塊設(shè)置于芯片內(nèi)部的RAM中;所述外部存儲(chǔ)子模塊用于存儲(chǔ)所述轉(zhuǎn)發(fā)表,所述外部存儲(chǔ)子模塊設(shè)置于芯片外部的RAM中;所述芯片包括專用集成電路ASIC芯片。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括第一判斷模塊,用于判斷所述學(xué)習(xí)模塊根據(jù)所述查詢計(jì)算模塊得到的基地址存儲(chǔ)所述第二收斂計(jì)算模塊得到的所述源節(jié)點(diǎn)操作關(guān)鍵字的收斂值是否沖突;第一配置模塊,用于在所述第一判斷模塊的判斷結(jié)果為沖突時(shí),配置所述第二收斂計(jì)算模塊選擇與原表項(xiàng)收斂算法不同的表項(xiàng)收斂算法對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行收斂計(jì)算并通知所述第一判斷模塊進(jìn)行判斷,若判斷結(jié)果仍為沖突,則通知所述以太網(wǎng)數(shù)據(jù)幀的輸出端修改所述源節(jié)點(diǎn)操作關(guān)鍵字;若所述第一判斷模塊的判斷結(jié)果為不沖突,則通知所述學(xué)習(xí)模塊進(jìn)行存儲(chǔ)。
11.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括第二判斷模塊,用于判斷所述學(xué)習(xí)模塊根據(jù)所述查詢計(jì)算模塊得到的基地址存儲(chǔ)所述第二收斂計(jì)算模塊得到的所述源節(jié)點(diǎn)操作關(guān)鍵字的收斂值是否沖突;第二配置模塊,用于在所述第二判斷模塊的判斷結(jié)果為沖突時(shí),配置所述查詢計(jì)算模塊選擇與原表項(xiàng)查詢算法不同的表項(xiàng)查詢算法對所述源節(jié)點(diǎn)操作關(guān)鍵字進(jìn)行計(jì)算并通知所述第二判斷模塊進(jìn)行判斷,若判斷結(jié)果仍為沖突,則通知所述以太網(wǎng)數(shù)據(jù)幀的輸出端修改所述源節(jié)點(diǎn)操作關(guān)鍵字;若所述第二判斷模塊的判斷結(jié)果為不沖突,則通知所述學(xué)習(xí)模塊進(jìn)行存儲(chǔ)。
全文摘要
本發(fā)明的實(shí)施例涉及網(wǎng)絡(luò)領(lǐng)域,提供了一種橋接的方法及裝置,通過在Hash桶表中存儲(chǔ)表征網(wǎng)絡(luò)節(jié)點(diǎn)的特征信息的源節(jié)點(diǎn)操作關(guān)鍵字的收斂值,根據(jù)表項(xiàng)收斂算法對以太網(wǎng)數(shù)據(jù)幀中表征目的節(jié)點(diǎn)的操作關(guān)鍵字進(jìn)行收斂計(jì)算,得到所述以太網(wǎng)數(shù)據(jù)幀的目的節(jié)點(diǎn)的操作關(guān)鍵字的收斂值;根據(jù)所述目的節(jié)點(diǎn)的操作關(guān)鍵字的收斂值,查詢所述Hash桶表和轉(zhuǎn)發(fā)表,得到轉(zhuǎn)發(fā)所述以太網(wǎng)數(shù)據(jù)幀所需要的轉(zhuǎn)發(fā)信息;根據(jù)所述轉(zhuǎn)發(fā)信息,完成對所述以太網(wǎng)數(shù)據(jù)幀的轉(zhuǎn)發(fā)。通過對接收到的以太網(wǎng)數(shù)據(jù)幀的源節(jié)點(diǎn)操作關(guān)鍵字的收斂處理,大大降低了Hash桶表所需占用的存儲(chǔ)空間,解決了現(xiàn)有技術(shù)中浪費(fèi)芯片管腳資源以及RAM存儲(chǔ)空間的問題。
文檔編號H04L12/56GK101018182SQ20071007929
公開日2007年8月15日 申請日期2007年2月16日 優(yōu)先權(quán)日2007年2月16日
發(fā)明者戴未 申請人:華為技術(shù)有限公司