国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      媒體接入控制地址的學習方法、網(wǎng)絡(luò)側(cè)設(shè)備和系統(tǒng)的制作方法

      文檔序號:7624773閱讀:118來源:國知局
      專利名稱:媒體接入控制地址的學習方法、網(wǎng)絡(luò)側(cè)設(shè)備和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明實施例涉及通信技術(shù)領(lǐng)域,尤其涉及ー種媒體接入控制地址的學習方法、網(wǎng)絡(luò)側(cè)設(shè)備和系統(tǒng)。
      背景技術(shù)
      媒體接入控制(Media Access Control ;以下簡稱MAC)地址是網(wǎng)絡(luò)設(shè)備在生產(chǎn)出廠時帶的地址,長度為48比特,用來標識網(wǎng)絡(luò)設(shè)備;不同網(wǎng)絡(luò)設(shè)備的MAC地址是不同的。交換機學習MAC地址的過程具體可以為用戶從端ロ I發(fā)送源MAC地址(SourceAddress ;以下簡稱SA)為 MAC B,目的 MAC 地址為(Destination Address ;以下簡稱DA)為MAC A,虛擬局域網(wǎng)(Virtual Local Area Network ;以下簡稱VLAN)為I的報文,交換機學習該報文的SA,建立MAC地址轉(zhuǎn)發(fā)表,該MAC地址轉(zhuǎn)發(fā)表可以包括SA、VLAN和端ロ(Port)等信息;然后交換機可以根據(jù)該MAC地址轉(zhuǎn)發(fā)表進行報文的單播轉(zhuǎn)發(fā)?,F(xiàn)有交換機的MAC地址轉(zhuǎn)發(fā)表一般是存儲在靜態(tài)隨機存取存儲器(Static Random Access Memory;以下簡稱SRAM)或動態(tài)隨機存取存儲器(Dynamic Random Access Memory ;以下簡稱DRAM)里,基于容量和查找效率的考慮,MAC地址轉(zhuǎn)發(fā)表一般采用哈希(Hash)算法來實現(xiàn)表項的存儲和查找。Hash算法可以建立關(guān)鍵字集合到Hash索引之間的多對一映射,一個關(guān)鍵字集合只能有ー個Hash索引,但ー個Hash索引可以對應(yīng)多個不同的關(guān)鍵字集合。當不同的關(guān)鍵字集合對應(yīng)同一個Hash索引值時,就會導(dǎo)致Hash沖突。對于MAC地址轉(zhuǎn)發(fā)表而言,當產(chǎn)生Hash沖突時,學習不到相應(yīng)的MAC地址轉(zhuǎn)發(fā)表,會導(dǎo)致轉(zhuǎn)發(fā)失敗,進而導(dǎo)致用戶不能上網(wǎng)或網(wǎng)速很慢。

      發(fā)明內(nèi)容
      本發(fā)明實施例提供ー種媒體接入控制地址的學習方法、網(wǎng)絡(luò)側(cè)設(shè)備和系統(tǒng),以實現(xiàn)提高MAC地址空間的利用率,提高MAC地址的沖突解決率。本發(fā)明實施例提供ー種媒體接入控制地址的學習方法,包括根據(jù)接收的報文的關(guān)鍵字段生成鍵值,井根據(jù)所述鍵值獲得所述鍵值對應(yīng)的索引值;根據(jù)預(yù)設(shè)的迭代次數(shù)對所述索引值進行線性隨機迭代;根據(jù)第一次迭代獲得的迭代索引值在媒體接入控制(MAC)地址池中查找所述第一次迭代獲得的迭代索引值對應(yīng)的MAC地址;如果在所述MAC地址池中沒有查找到與所述第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,則確定所述MAC地址池中是否還有空閑MAC地址空間,并繼續(xù)進行迭代操作,如果迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),仍未在所述MAC地址池中查找到與迭代獲得的迭代索引值對應(yīng)的MAC地址且確定所述MAC地址池中還有空閑MAC地址空間時,則在所述MAC地址池中第一個出現(xiàn)空閑MAC地址空間的位置學習所述接收的報文的MAC地址。
      本發(fā)明實施例還提供一種網(wǎng)絡(luò)側(cè)設(shè)備,包括生成模塊,用于根據(jù)接收的報文的關(guān)鍵字段生成鍵值;獲得模塊,用于根據(jù)所述生成模塊生成的鍵值獲得所述鍵值對應(yīng)的索引值;迭代模塊,用于根據(jù)預(yù)設(shè)的迭代次數(shù)對所述獲得模塊獲得的索引值進行線性隨機迭代;查找模塊,用于根據(jù)所述迭代模塊第一次迭代獲得的迭代索引值在媒體接入控制(MAC)地址池中查找所述第一次迭代獲得的迭代索引值對應(yīng)的MAC地址;確定模塊,用于當所述查找模塊在所述MAC地址池中沒有查找到與所述第一次迭 代獲得的迭代索引值對應(yīng)的MAC地址時,確定所述MAC地址池中是否還有空閑MAC地址空間,并指示所述迭代模塊繼續(xù)進行迭代操作;學習模塊,用于當所述迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),所述查找模塊仍未在所述MAC地址池中查找到與所述迭代模塊迭代獲得的迭代索引值對應(yīng)的MAC地址且所述確定模塊確定所述MAC地址池中還有空閑MAC地址空間時,在所述MAC地址池中第一個出現(xiàn)空閑MAC地址空間的位置學習所述接收的報文的MAC地址。本發(fā)明實施例還提供ー種通信系統(tǒng),包括上述網(wǎng)絡(luò)側(cè)設(shè)備和與上述網(wǎng)絡(luò)側(cè)設(shè)備連接的至少ー個用戶設(shè)備。通過本發(fā)明實施例,網(wǎng)絡(luò)側(cè)設(shè)備根據(jù)接收的報文的關(guān)鍵字段生成鍵值,并獲得該鍵值對應(yīng)的索引值,然后根據(jù)預(yù)設(shè)的迭代次數(shù)對該索引值進行線性隨機迭代,根據(jù)第一次迭代獲得的迭代索引值在MAC地址池中查找所述第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,并根據(jù)查找結(jié)果學習接收的報文的MAC地址;本發(fā)明實施例通過線性隨機迭代方法完成MAC地址的隨機分布,迭代深度靈活可控,從而可以實現(xiàn)MAC地址空間的充分利用,最大限度的解決MAC地址的沖突問題,并且無需改動硬件,實現(xiàn)方便。


      為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作ー簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明媒體接入控制地址的學習方法一個實施例的流程圖;圖2為本發(fā)明媒體接入控制地址的學習方法另ー個實施例的流程圖;圖3為本發(fā)明網(wǎng)絡(luò)側(cè)設(shè)備ー個實施例的結(jié)構(gòu)示意圖;圖4為本發(fā)明網(wǎng)絡(luò)側(cè)設(shè)備另一個實施例的結(jié)構(gòu)示意圖;圖5為本發(fā)明網(wǎng)絡(luò)側(cè)設(shè)備再一個實施例的結(jié)構(gòu)示意圖;圖6為本發(fā)明通信系統(tǒng)ー個實施例的結(jié)構(gòu)示意圖。
      具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖I為本發(fā)明媒體接入控制地址的學習方法一個實施例的流程圖,如圖I所示,該媒體接入控制地址的學習方法可以包括步驟101,根據(jù)接收的報文的關(guān)鍵字段生成鍵值,并根據(jù)該鍵值獲得該鍵值對應(yīng)的索引值。具體地,根據(jù)接收的報文的關(guān)鍵字段生成鍵值可以為網(wǎng)絡(luò)側(cè)設(shè)備提取接收的報文的MAC地址和VLAN,然后根據(jù)MAC地址和/或VLAN生成上述鍵值。但是本實施例并不僅限于此,網(wǎng)絡(luò)側(cè)設(shè)備也可根據(jù)其他字段生成鍵值,本實施例對鍵值的生成方式不作限定。具體地,根據(jù)該鍵值獲得該鍵值對應(yīng)的索引值可 以為網(wǎng)絡(luò)側(cè)設(shè)備對該鍵值進行哈希運算,獲得該鍵值對應(yīng)的索引值;當然本實施例也并不僅限于此,網(wǎng)絡(luò)側(cè)設(shè)備也可以采用其他算法對鍵值進行運算,獲得該鍵值對應(yīng)的索引值,本實施例對此不作限定。步驟102,根據(jù)預(yù)設(shè)的迭代次數(shù)對上述索引值進行線性隨機迭代。步驟103,根據(jù)第一次迭代獲得的迭代索引值在MAC地址池中查找第一次迭代獲得的迭代索弓I值對應(yīng)的MAC地址。步驟104,如果在MAC地址池中沒有查找到與第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,則確定該MAC地址池中是否還有空閑MAC地址空間,并繼續(xù)進行迭代操作,如果迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),仍未在該MAC地址池中查找到與迭代獲得的迭代索引值對應(yīng)的MAC地址且確定該MAC地址池中還有空閑MAC地址空間時,則在該MAC地址池中第一個出現(xiàn)空閑MAC地址空間的位置學習上述接收的報文的MAC地址。進ー步地,如果在MAC地址池中沒有查找到與第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,并且迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),仍未在MAC地址池中查找到與迭代獲得的迭代索引值對應(yīng)的MAC地址且該MAC地址池中已無空閑MAC地址空間時,則返回學習失敗響應(yīng)。進ー步地,如果在MAC地址池中查找到與第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,則中止當前的迭代操作,并在該MAC地址對應(yīng)的表項需要更新時,在學習上述MAC地址的位置更新該MAC地址對應(yīng)的表項。本實施例中,該網(wǎng)絡(luò)側(cè)設(shè)備可以為交換機或路由器等,本實施例對此不作限定。上述實施例中,網(wǎng)絡(luò)側(cè)設(shè)備根據(jù)接收的報文的關(guān)鍵字段生成鍵值,并獲得該鍵值對應(yīng)的索引值,然后根據(jù)預(yù)設(shè)的迭代次數(shù)對該索引值進行線性隨機迭代,根據(jù)第一次迭代獲得的迭代索引值在MAC地址池中查找第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,并根據(jù)查找結(jié)果學習接收的報文的MAC地址;本實施例通過線性隨機迭代方法完成MAC地址的隨機分布,迭代深度靈活可控,從而可以實現(xiàn)MAC地址空間的充分利用,可以最大限度的解決MAC地址的沖突問題,并且無需改動硬件,實現(xiàn)方便。圖2為本發(fā)明媒體接入控制地址的學習方法另ー個實施例的流程圖,如圖2所示,該媒體接入控制地址的學習方法可以包括步驟201,根據(jù)接收的報文的關(guān)鍵字段生成鍵值(key)。具體地,例如可以為key[47:0]= MAC, key[60:48] = VLAN。步驟202,對key進行Hash運算,獲得哈希索引(Hash index)值。本實施例中,Hash函數(shù)一般為CRC32或CRC16,其中,CRC為循環(huán)冗余碼校驗(Cyclical Redundancy Check)的簡稱;舉例來說,對于MAC = Oxl 122334455,VLAN= 10 的 key,其 CRC32 的結(jié)果為 Oxlfe ;此處由于實際系統(tǒng)的深度為2k,因此這里只取CRC32的結(jié)果的低11比持。即對步驟201中的key進行Hash運算,獲得的Hash index值是Oxlfe。步驟203,根據(jù)預(yù)設(shè)的迭代次數(shù),對上ー步獲得的Hash index值進行線性隨機迭代,獲得迭代索引值。本實施例選用如下的線性隨機迭代算法進行示例bucket = HashValue (上一步獲得的 Hash index 值);(I)
      Iter (η 次){bucket = (5Xbucket)+l+HashValue ;HashValue >>=5} ; (2)式⑵中,Iter (η次)表示進行η次迭代,η為預(yù)設(shè)的迭代次數(shù);bucket表示姆次迭代獲得的迭代索引值;其中,第一次迭代獲得的迭代索引值為0x3f5 ;需要說明的是,這里選取的線性隨機迭代算法僅是ー個示例,在實際實現(xiàn)時可以根據(jù)仿真和場景不同選取不同的線性隨機迭代算法,本實施例對此不作限定。步驟204,根據(jù)第一次迭代獲得的迭代索引值在MAC地址池中查找與該第一次迭代獲得的迭代索引值對應(yīng)的MAC地址。就是到0x3f5這塊MAC地址空間去找是否有與第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,這塊MAC地址空間一般存4個或8個MAC地址。步驟205,根據(jù)查找結(jié)果,進行后續(xù)操作。具體地,(I)如果在MAC地址池中查找到與第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,則中止當前的迭代操作,并在查找到的MAC地址對應(yīng)的表項需要更新時,在學習該MAC地址的位置更新該MAC地址對應(yīng)的表項;(2)如果在MAC地址池中沒有查找到與第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,則確定該MAC地址池中是否還有空閑MAC地址空間,并繼續(xù)進行迭代操作,如果迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),仍未在該MAC地址池中查找到與迭代獲得的迭代索引值對應(yīng)的MAC地址且確定該MAC地址池中還有空閑MAC地址空間時,則在該MAC地址池中第ー個出現(xiàn)空閑MAC地址空間的位置學習上述接收的報文的MAC地址;(3)如果在MAC地址池中沒有查找到與第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,則確定該MAC地址池中是否還有空閑MAC地址空間,并繼續(xù)進行迭代操作,如果迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),仍未在MAC地址池中查找到與迭代獲得的迭代索引值對應(yīng)的MAC地址且該MAC地址池中已無空閑MAC地址空間,則返回學習失敗響應(yīng)。步驟206,上述操作完成之后,對報文進行狀態(tài)更新并進行后續(xù)處理。本發(fā)明實施例提供的媒體接入控制地址的學習方法,通過對MAC地址空間的隨機分布來達到減少MAC地址沖突的目的,能夠在性能和效率上靈活可配,適應(yīng)場景廣泛;可以應(yīng)用在中小規(guī)模帶寬的系統(tǒng),如50G左右的網(wǎng)絡(luò)處理器(Network Processor ;以下簡稱NP)或特殊應(yīng)用集成電路(Application Specific Integrated Circuit ;以下簡稱ASIC)交換系統(tǒng)中,由于該交換系統(tǒng)注重MAC地址的沖突解決率,因此可以將迭代次數(shù)設(shè)置得大ー些;而在注重線速交換帶寬的系統(tǒng),如200G交換芯片中,可以將迭代次數(shù)設(shè)置得小一些,而設(shè)置迭代次數(shù)不需要改動硬件,只需通過軟件進行相應(yīng)配置即可;本發(fā)明實施例中采用的線性隨機算法可以靈活配置,另外,本發(fā)明實施例提供的方法可以適用于因特網(wǎng)協(xié)議(Internet Protocol ;以下簡稱IP)地址學習等采用Hash算法進行地址查找的系統(tǒng),并且本發(fā)明實施例提供的方法在硬件實現(xiàn)上也比較簡單。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于ー計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。圖3為本發(fā)明網(wǎng)絡(luò)側(cè)設(shè)備ー個實施例的結(jié)構(gòu)示意圖,本實施例中的網(wǎng)絡(luò)側(cè)設(shè)備可以實現(xiàn)本發(fā)明圖I所示實施例的流程圖,如圖3所示,該網(wǎng)絡(luò)側(cè)設(shè)備可以包括生成模塊31,用于根據(jù)接收的報文的關(guān)鍵字段生成鍵 值;獲得模塊32,用于根據(jù)生成模塊31生成的鍵值獲得該鍵值對應(yīng)的索引值;迭代模塊33,用于根據(jù)預(yù)設(shè)的迭代次數(shù)對獲得模塊32獲得的索引值進行線性隨機迭代;查找模塊34,用于根據(jù)迭代模塊33第一次迭代獲得的迭代索引值在MAC地址池中查找第一次迭代獲得的迭代索引值對應(yīng)的MAC地址;確定模塊35,用于當查找模塊34在MAC地址池中沒有查找到與第一次迭代獲得的迭代索引值對應(yīng)的MAC地址時,確定該MAC地址池中是否還有空閑MAC地址空間,并指示迭代模塊33繼續(xù)進行迭代操作;學習模塊36,用于當?shù)僮鬟M行到預(yù)設(shè)的最大迭代次數(shù),查找模塊34仍未在MAC地址池中查找到與迭代模塊33迭代獲得的迭代索引值對應(yīng)的MAC地址且確定模塊35確定上述MAC地址池中還有空閑MAC地址空間時,在MAC地址池中第一個出現(xiàn)空閑MAC地址空間的位置學習接收的報文的MAC地址。本實施例中,該網(wǎng)絡(luò)側(cè)設(shè)備可以為交換機或路由器等,本實施例對此不作限定。上述實施例中,生成模塊31根據(jù)接收的報文的關(guān)鍵字段生成鍵值,并由獲得模塊32獲得該鍵值對應(yīng)的索引值,然后迭代模塊33根據(jù)預(yù)設(shè)的迭代次數(shù)對該索引值進行線性隨機迭代,查找模塊34根據(jù)迭代模塊33第一次迭代獲得的迭代索引值在MAC地址池中查找第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,最后學習模塊36根據(jù)查找模塊34的查找結(jié)果學習接收的報文的MAC地址;本實施例通過線性隨機迭代方法完成MAC地址的隨機分布,迭代深度靈活可控,從而可以實現(xiàn)MAC地址空間的充分利用,最大限度的解決MAC地址的沖突問題,并且無需改動硬件,實現(xiàn)方便。圖4為本發(fā)明網(wǎng)絡(luò)側(cè)設(shè)備另一個實施例的結(jié)構(gòu)示意圖,與圖3所示的網(wǎng)絡(luò)側(cè)設(shè)備相比,不同之處在于,圖4所示的網(wǎng)絡(luò)側(cè)設(shè)備中,還可以包括響應(yīng)模塊37,用于當查找模塊34在MAC地址池中沒有查找到與第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,并且迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),查找模塊34仍未在MAC地址池中查找到與迭代模塊33迭代獲得的迭代索引值對應(yīng)的MAC地址且確定模塊35確定MAC地址池中已無空閑MAC地址空間時,返回學習失敗響應(yīng)。中止模塊38,用于當查找模塊34在所述MAC地址池中查找到與第一次迭代獲得的迭代索引值對應(yīng)的MAC地址時,中止當前的迭代操作;更新模塊39,用于在上述MAC地址對應(yīng)的表項需要更新時,在學習上述MAC地址的位置更新該MAC地址對應(yīng)的表項。
      本實施例中,生成模塊31可以包括提取子模塊311,用于提取接收的報文的MAC地址和VLAN ;鍵值生成子模塊312,用于根據(jù)提取子模塊311提取的MAC地址和/或VLAN生成上述鍵值。但是本實施例并不僅限于此,鍵值生成子模塊312也可以根據(jù)提取子模塊311提取的其他字段生成上述鍵值,本實施例對鍵值的生成方式不作限定。具體地,本實施例中,獲得模塊32可以對上述鍵值進行哈希運算,獲得該鍵值對應(yīng)的索引值;當然本實施例也并不僅限于此,獲得模塊32也可以采用其他算法對鍵值進行運算,獲得該鍵值對應(yīng)的索引值,本實施例對此不作限定。上述網(wǎng)絡(luò)側(cè)設(shè)備通過線性隨機迭代方法完成MAC地址的隨機分布,從而可以實現(xiàn)MAC地址空間的充分利用,并可以最大限度的解決MAC地址的沖突問題。
      圖5為本發(fā)明網(wǎng)絡(luò)側(cè)設(shè)備再一個實施例的結(jié)構(gòu)示意圖,如圖5所示,該網(wǎng)絡(luò)側(cè)設(shè)備可以包括輸入端ロ模塊51、數(shù)據(jù)包解析模塊52、哈希功能模塊53、MAC地址池54,MAC管理模塊55、線性隨機迭代模塊56、狀態(tài)更新及下ー步處理模塊57和輸出模塊58。其中,輸入端ロ模塊51,用于接收來自用戶的報文,并對接收的報文進行相應(yīng)的合法性檢查。數(shù)據(jù)包解析模塊52,用于對輸入端ロ模塊51接收到的報文進行解析,確定報文類型并提取報文的關(guān)鍵字段,例如MAC地址、VLAN、IP地址和端ロ等字段,井根據(jù)提取的關(guān)鍵字段生成鍵值,實現(xiàn)本發(fā)明圖3所示實施例中生成模塊31,以及圖4所示實施例中提取子模塊311和鍵值生成子模塊312的功能。 哈希功能模塊53,用于對數(shù)據(jù)包解析模塊52生成的鍵值進行Hash運算,獲得哈希索引值,實現(xiàn)本發(fā)明圖3和圖4所示實施例中獲得模塊32的功能;其中Hash函數(shù)可以采用CRC32或CRC16等,本實施例對此不作限定。MAC地址池54,用于保存MAC地址;MAC地址池54涉及桶深概念,桶深是指對應(yīng)同ー哈希索引值所能存儲的MAC地址的最大數(shù)目,桶深的選取需要考慮查找效率和沖突率因素。桶越深,MAC地址學習和查找時需要比較的次數(shù)相對較多,對整個系統(tǒng)轉(zhuǎn)發(fā)性能會有影響;桶越淺,MAC地址學習時沖突的概率就會比較大,因此實際應(yīng)用中桶深一般為8或4 ;線性隨機迭代模塊56,用于根據(jù)預(yù)先設(shè)定的迭代次數(shù),對哈希功能模塊53獲得的哈希索引值通過線性隨機算法進行迭代,獲得迭代索引值;實現(xiàn)本發(fā)明圖3和圖4所示實施例中迭代模塊33和學習模塊36,以及圖4所示實施例中響應(yīng)模塊37、中止模塊38和更新模塊39的功能。MAC管理模塊55,用于根據(jù)線性隨機迭代模塊56每次獲得的迭代索引值在MAC地址池54中查找該迭代索引值對應(yīng)的MAC地址,并將查找結(jié)果返回線性隨機迭代模塊56 ;實現(xiàn)本發(fā)明圖3和圖4所示實施例中查找模塊34和確定模塊35的功能。具體地,如果MAC管理模塊55在MAC地址池中查找到與線性隨機迭代模塊56第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,則線性隨機迭代模塊56可以中止當前的迭代操作,并在查找到的MAC地址對應(yīng)的表項需要更新時,在學習該MAC地址的位置更新該MAC地址對應(yīng)的表項;或者,如果MAC管理模塊55沒有在MAC地址池中查找到與線性隨機迭代模塊56第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,則確定該MAC地址池中是否還有空閑MAC地址空間,并指示線性隨機迭代模塊56繼續(xù)進行迭代操作,如果迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),MAC管理模塊55仍未在該MAC地址池中查找到與迭代獲得的迭代索引值對應(yīng)的MAC地址且確定該MAC地址池中還有空閑MAC地址空間時,則線性隨機迭代模塊56在該MAC地址池中第一個出現(xiàn)空閑MAC地址空間的位置學習上述接收的報文的MAC地址;或者,如果MAC管理模塊55沒有在MAC地址池中查找到與線性隨機迭代模塊56第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,則確定該MAC地址池中是否還有空閑MAC地址空間,并指示線性隨機迭代模塊56繼續(xù)進行迭代操作,如果迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),MAC管理模塊55仍未在MAC地址池中查找到與迭代獲得的迭代索引值對應(yīng)的MAC地址且該MAC地址池中已無空閑MAC地址空間,則線性隨機迭代模塊56返回學習失敗響應(yīng)。狀態(tài)更新及下ー步處理模塊57,用于在線性隨機迭代模塊56的操作完成之后,對接收的報文進行狀態(tài)更新并進行后續(xù)處理。
      輸出模塊58,用于輸出狀態(tài)更新及下ー步處理模塊57處理之后的報文。上述網(wǎng)絡(luò)側(cè)設(shè)備,通過對MAC地址空間的隨機分布來達到減少MAC地址沖突的目的,硬件實現(xiàn)方式簡單,能夠在性能和效率上靈活可配,適應(yīng)場景廣泛;可以應(yīng)用在中小規(guī)模帶寬的系統(tǒng),如50G左右的NP或ASIC交換系統(tǒng)中,由于該交換系統(tǒng)注重MAC地址的沖突解決率,因此可以將迭代次數(shù)設(shè)置得大ー些;而在注重線速交換帶寬的系統(tǒng),如200G交換芯片中,可以將迭代次數(shù)設(shè)置得小一些,而設(shè)置迭代次數(shù)不需要改動硬件,只需通過軟件進行相應(yīng)配置即可;本實施例中采用的線性隨機算法可以靈活配置,另外,本實施例提供的網(wǎng)絡(luò)側(cè)設(shè)備可以適用于IP地址學習等采用Hash算法進行地址查找的系統(tǒng)。圖6為本發(fā)明通信系統(tǒng)ー個實施例的結(jié)構(gòu)示意圖,如圖6所示,該通信系統(tǒng)可以包括網(wǎng)絡(luò)側(cè)設(shè)備61和與該網(wǎng)絡(luò)側(cè)設(shè)備61連接的至少ー個用戶設(shè)備62。本實施例中,用戶設(shè)備62可以向網(wǎng)絡(luò)側(cè)設(shè)備61發(fā)送報文;網(wǎng)絡(luò)側(cè)設(shè)備61,用于接收用戶設(shè)備62發(fā)送的報文,并可以根據(jù)接收的報文的關(guān)鍵字段生成鍵值,井根據(jù)該鍵值獲得該鍵值對應(yīng)的索引值;根據(jù)預(yù)設(shè)的迭代次數(shù)對該索引值進行線性隨機迭代;根據(jù)第一次迭代獲得的迭代索引值在MAC地址池中查找第一次迭代獲得的迭代索引值對應(yīng)的MAC地址;如果在MAC地址池中沒有查找到與第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,則確定該MAC地址池中是否還有空閑MAC地址空間,并繼續(xù)進行迭代操作,如果迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),仍未在MAC地址池中查找到與迭代獲得的迭代索引值對應(yīng)的MAC地址且確定該MAC地址池中還有空閑MAC地址空間時,則在MAC地址池中第一個出現(xiàn)空閑MAC地址空間的位置學習接收的報文的MAC地址。具體地,該網(wǎng)絡(luò)側(cè)設(shè)備61可以通過本發(fā)明圖3、圖4或圖5所示實施例提供的網(wǎng)絡(luò)側(cè)設(shè)備實現(xiàn),該網(wǎng)絡(luò)側(cè)設(shè)備61可以為交換機或路由器等,本實施例對此不作限定。本實施例中,網(wǎng)絡(luò)側(cè)設(shè)備61與用戶設(shè)備62之間的交互可以參考本發(fā)明方法實施例的描述,在此不再贅述。上述系統(tǒng)通過線性隨機迭代方法完成MAC地址的隨機分布,迭代深度靈活可控,從而可以實現(xiàn)MAC地址空間的充分利用,最大限度的解決MAC地址的沖突問題,并且無需改動硬件,實現(xiàn)方便。本領(lǐng)域技術(shù)人員可以理解附圖只是ー個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。
      本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應(yīng)變化位于不同于本實施例的ー個或多個裝置中。上述實施例的模塊可以合并為ー個模塊,也可以進ー步拆分成多個子模塊。最后應(yīng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡 管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
      權(quán)利要求
      1.ー種媒體接入控制地址的學習方法,其特征在于,包括 根據(jù)接收的報文的關(guān)鍵字段生成鍵值,井根據(jù)所述鍵值獲得所述鍵值對應(yīng)的索引值; 根據(jù)預(yù)設(shè)的迭代次數(shù)對所述索引值進行線性隨機迭代; 根據(jù)第一次迭代獲得的迭代索引值在媒體接入控制(MAC)地址池中查找所述第一次迭代獲得的迭代索引值對應(yīng)的MAC地址; 如果在所述MAC地址池中沒有查找到與所述第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,則確定所述MAC地址池中是否還有空閑MAC地址空間,并繼續(xù)進行迭代操作,如果迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),仍未在所述MAC地址池中查找到與迭代獲得的迭代索引值對應(yīng)的MAC地址且確定所述MAC地址池中還有空閑MAC地址空間時,則在所述MAC地 址池中第一個出現(xiàn)空閑MAC地址空間的位置學習所述接收的報文的MAC地址。
      2.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括 如果在所述MAC地址池中沒有查找到與所述第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,并且所述迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),仍未在所述MAC地址池中查找到與迭代獲得的迭代索引值對應(yīng)的MAC地址且所述MAC地址池中已無空閑MAC地址空間,則返回學習失敗響應(yīng)。
      3.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括 如果在所述MAC地址池中查找到與所述第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,則中止當前的迭代操作,并在所述MAC地址對應(yīng)的表項需要更新時,在學習所述MAC地址的位置更新所述MAC地址對應(yīng)的表項。
      4.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,所述根據(jù)接收的報文的關(guān)鍵字段生成鍵值包括 提取接收的報文的MAC地址和虛擬局域網(wǎng); 根據(jù)所述MAC地址和/或所述虛擬局域網(wǎng)生成所述鍵值。
      5.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,所述根據(jù)所述鍵值獲得所述鍵值對應(yīng)的索引值包括 對所述鍵值進行哈希運算,獲得所述鍵值對應(yīng)的索引值。
      6.一種網(wǎng)絡(luò)側(cè)設(shè)備,其特征在于,包括 生成模塊,用于根據(jù)接收的報文的關(guān)鍵字段生成鍵值; 獲得模塊,用于根據(jù)所述生成模塊生成的鍵值獲得所述鍵值對應(yīng)的索引值; 迭代模塊,用于根據(jù)預(yù)設(shè)的迭代次數(shù)對所述獲得模塊獲得的索引值進行線性隨機迭代; 查找模塊,用于根據(jù)所述迭代模塊第一次迭代獲得的迭代索引值在媒體接入控制(MAC)地址池中查找所述第一次迭代獲得的迭代索引值對應(yīng)的MAC地址; 確定模塊,用于當所述查找模塊在所述MAC地址池中沒有查找到與所述第一次迭代獲得的迭代索引值對應(yīng)的MAC地址時,確定所述MAC地址池中是否還有空閑MAC地址空間,并指示所述迭代模塊繼續(xù)進行迭代操作; 學習模塊,用于當所述迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),所述查找模塊仍未在所述MAC地址池中查找到與所述迭代模塊迭代獲得的迭代索引值對應(yīng)的MAC地址且所述確定模塊確定所述MAC地址池中還有空閑MAC地址空間時,在所述MAC地址池中第一個出現(xiàn)空閑MAC地址空間的位置學習所述接收的報文的MAC地址。
      7.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)側(cè)設(shè)備,其特征在于,還包括 響應(yīng)模塊,用于當所述查找模塊在所述MAC地址池中沒有查找到與所述第一次迭代獲得的迭代索引值對應(yīng)的MAC地址,并且所述迭代操作進行到預(yù)設(shè)的最大迭代次數(shù),所述查找模塊仍未在所述MAC地址池中查找到與所述迭代模塊迭代獲得的迭代索引值對應(yīng)的MAC地址且所述確定模塊確定所述MAC地址池中已無空閑MAC地址空間時,返回學習失敗響應(yīng)。
      8.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)側(cè)設(shè)備,其特征在于,還包括 中止模塊,用于當所述查找模塊在所述MAC地址池中查找到與所述第一次迭代獲得的迭代索引值對應(yīng)的MAC地址時,中止當前的迭代操作; 更新模塊,用于在所述MAC地址對應(yīng)的表項需要更新時,在學習所述MAC地址的位置更新所述MAC地址對應(yīng)的表項。
      9.根據(jù)權(quán)利要求6、7或8所述的網(wǎng)絡(luò)側(cè)設(shè)備,其特征在于,所述生成模塊包括 提取子模塊,用于提取接收的報文的MAC地址和虛擬局域網(wǎng); 鍵值生成子模塊,用于根據(jù)所述提取子模塊提取的所述MAC地址和/或所述虛擬局域網(wǎng)生成所述鍵值。
      10.根據(jù)權(quán)利要求6、7或8所述的網(wǎng)絡(luò)側(cè)設(shè)備,其特征在干, 所述獲得模塊,具體用于對所述鍵值進行哈希運算,獲得所述鍵值對應(yīng)的索引值。
      11.ー種通信系統(tǒng),其特征在于,包括如權(quán)利要求6-10任意一項所述的網(wǎng)絡(luò)側(cè)設(shè)備和與所述網(wǎng)絡(luò)側(cè)設(shè)備連接的至少ー個用戶設(shè)備。
      全文摘要
      本發(fā)明實施例提供一種媒體接入控制地址的學習方法、網(wǎng)絡(luò)側(cè)設(shè)備和系統(tǒng),該媒體接入控制地址的學習方法包括根據(jù)接收的報文的關(guān)鍵字段生成鍵值,并根據(jù)鍵值獲得該鍵值對應(yīng)的索引值;根據(jù)預(yù)設(shè)的迭代次數(shù)對索引值進行線性隨機迭代;根據(jù)第一次迭代獲得的迭代索引值在MAC地址池中查找第一次迭代獲得的迭代索引值對應(yīng)的MAC地址;根據(jù)查找結(jié)果學習接收的報文的MAC地址。本發(fā)明實施例通過線性隨機迭代方法完成媒體接入控制地址的隨機分布,從而可以實現(xiàn)媒體接入控制地址空間的充分利用,并可以最大限度的解決媒體接入控制地址的沖突問題。
      文檔編號H04L29/12GK102724106SQ20111007836
      公開日2012年10月10日 申請日期2011年3月30日 優(yōu)先權(quán)日2011年3月30日
      發(fā)明者譚細金, 馬書雷 申請人:華為技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1