两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于端口的mac地址數(shù)量統(tǒng)計方法及其裝置的制作方法

文檔序號:7672559閱讀:218來源:國知局
專利名稱:基于端口的mac地址數(shù)量統(tǒng)計方法及其裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡通信技術(shù)領(lǐng)域,尤其涉及一種基于端口的MAC地址數(shù)量統(tǒng)計方法及其裝置。
背景技術(shù)
在通信網(wǎng)絡的應用過程中,為避免一些非法用戶對網(wǎng)絡資源進行非授權(quán)訪問,發(fā)送欺騙性的數(shù)據(jù)干擾網(wǎng)絡功能等情況的發(fā)生,需要提供相應的網(wǎng)絡安全技術(shù),而在各種安全技術(shù)方案中,基于網(wǎng)絡接入設備端口等物理安全技術(shù)尤其重要,如果網(wǎng)絡接入設備沒有應用相應的物理安全,其他所有的安全策略都將無法發(fā)揮相應的作用,所以物理安全是以太網(wǎng)交換機等網(wǎng)絡接入設備安全的重點。目前,以太網(wǎng)交換機都提供了多種網(wǎng)絡安全機制,其中基于端口的地址安全技術(shù)應用最為廣泛。
基于端口的安全技術(shù)是以太網(wǎng)交換機對通過某個端口的數(shù)據(jù)包進行相應的控制,對不符合安全要求的數(shù)據(jù)包作丟棄處理。通常當源MAC地址沒有被學習到MAC地址表時,對應該MAC地址的用戶將收不到數(shù)據(jù)包,同時,該用戶向外發(fā)送的數(shù)據(jù)包也將被作丟棄處理。
目前,一些以太網(wǎng)交換機端口安全策略中,采用了一種通過設置允許端口學習的單播MAC地址數(shù)量對接入用戶進行相應的網(wǎng)絡訪問控制的網(wǎng)絡訪問控制技術(shù),即通過控制以太網(wǎng)交換機端口允許接入用戶的數(shù)量保證網(wǎng)絡的安全性能。具體包括以下兩種方法1、首先在以太網(wǎng)交換機中設置一張軟MAC地址表,以便于對各個端口學習MAC地址的數(shù)量進行統(tǒng)計;然后禁止芯片自動學習MAC地址,并將未知MAC地址的數(shù)據(jù)包發(fā)送至CPU進行處理,最后由CPU遍歷軟MAC地址表統(tǒng)計各個端口對應的學習到的MAC地址數(shù)量;統(tǒng)計出各個端口學習到的MAC地址數(shù)量后,再判斷端口學習到的MAC地址數(shù)量是否達到設定該端允許學習的MAC地址數(shù)量閾值,如果達到所述閾值,則禁止芯片自動學習MAC地址,這樣,從該端口上來的源MAC地址便不再添加到MAC地址表中,限制了接入用戶的數(shù)量,為網(wǎng)絡安全提供了保證;如果沒有達到閾值,則允許學習的MAC地址,并將新學習到的MAC地址由軟件分別添加到軟MAC地址表和硬MAC地址表,以保證軟硬MAC地址表一致。
該方法中對端口學習到的MAC地址數(shù)量的統(tǒng)計需要通過建立一張軟MAC地址表實現(xiàn),軟MAC地址表的建立占用了有限的網(wǎng)絡接入設備(即以太網(wǎng)交換機)資源;且當學習新的MAC地址時,需要根據(jù)端口MAC數(shù)量是否達到閾值,決定是否將其添加到軟硬MAC地址表中,浪費了網(wǎng)絡的帶寬資源;另外,該方法中沒有實現(xiàn)動態(tài)實時統(tǒng)計端口的MAC地址數(shù)量,從而使得該方法的應用效果將受到一定程度的影響。同時,該方法中關(guān)閉端口的自學習功能以統(tǒng)計端口的MAC地址數(shù)量,將影響以太網(wǎng)交換機的正常工作;2、首先通過配置相應端口為鎖定狀態(tài)實現(xiàn)針對該端口已經(jīng)學習到的MAC地址數(shù)量的統(tǒng)計,即當使能端口學習MAC地址數(shù)量限制時,端口配置為鎖定狀態(tài),且MAC地址不老化,這樣就能保證軟件可以維持端口對應MAC地址數(shù)的計數(shù)器的值不變,再由軟件來遍歷硬MAC地址表,統(tǒng)計出端口對應的MAC地址數(shù)量;然后同軟件根據(jù)實際端口學習到的MAC地址數(shù)量跟該端口允許學習到的MAC地址數(shù)量閾值進行比較,如果未達到閾值,由軟件配置該端口不鎖定,該端口上來的源MAC地址可以學習到硬MAC地址表中;如果達到閾值,則將該端口鎖定,不允許向硬MAC地址表中添加從該端口上來的MAC地址,即丟棄由該端口進入未知源MAC地址的數(shù)據(jù)包。
該方法中通過軟件配置端口鎖定,使硬件不學習MAC地址表,當使能端口的MAC地址數(shù)量限制時,進行端口MAC地址數(shù)的統(tǒng)計需要軟件遍歷硬MAC地址表,所需時間較長,且占用了一定量網(wǎng)絡帶寬資源。同時,利用該方法完成端口的MAC地址數(shù)量限制功能,軟、硬件需要多次交互,影響了以太網(wǎng)交換機的正常工作。另外,該方法與第一種方法同樣未實現(xiàn)動態(tài)實時統(tǒng)計端口學習到的MAC地址數(shù)量,即無法實時體現(xiàn)端口的MAC地址學習數(shù)量限制功能。

發(fā)明內(nèi)容
鑒于上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明的目的是提供一種基于端口的MAC地址數(shù)量統(tǒng)計方法及其裝置,以克服現(xiàn)有技術(shù)所存在的問題,并可以實時準確地統(tǒng)計網(wǎng)絡接入設備端口學習到的MAC地址數(shù)量,方便了進一步需要實現(xiàn)網(wǎng)絡訪問控制方案。
本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的本發(fā)明提供了一種基于端口的MAC地址數(shù)量統(tǒng)計方法,包括a、確定各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況;b、實時對各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況進行監(jiān)測;c、根據(jù)發(fā)生的導致端口的MAC地址數(shù)量發(fā)生變化的情況的類型對端口的MAC地址數(shù)量進行調(diào)整。
所述的步驟a包括a1、確定端口學習新的MAC地址;a2、確定老化端口已經(jīng)學習到的MAC地址;a3、確定軟件對端口的MAC地址進行添加或刪除維護。
所述的步驟a1包括確定端口學習新的MAC地址,并添加至MAC地址表的空表項中;確定端口學習新的MAC地址,并覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項。
所述的步驟a3包括確定軟件向端口添加新的MAC地址,且添加至MAC地址表的空表項中;確定軟件向端口添加新的MAC地址,且覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項。
所述的步驟b為采用一級流水分別對各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況進行監(jiān)測。
所述的步驟b包括設定一級流水的時鐘周期數(shù),并為各時鐘周期定義時鐘周期序號;確定監(jiān)測各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況的時鐘周期的時鐘周期序號;當一級流水的時鐘周期運行到相應序號的時鐘周期時,監(jiān)測該時鐘周期序號對應的相應類型導致端口的MAC地址數(shù)量發(fā)生變化的情況是否發(fā)生。
所述的步驟c包括在相應的時鐘周期序號對應的時鐘周期,如果確定因端口學習新的MAC地址需要覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項,則寄存被覆蓋的MAC地址所在的端口,將被覆蓋的MAC地址所在的端口的MAC地址數(shù)量減1,否則,不作處理;在相應的時鐘周期序號對應的時鐘周期,如果確定端口學習新的MAC地址,并添加至MAC地址表的空表項中,或者是覆蓋了MAC地址表中已經(jīng)存在的MAC地址,則寄存新的MAC地址所在的端口,將該端口的MAC地址數(shù)量加1,否則,不作處理;在相應的時鐘周期序號對應的時鐘周期,如果確定老化已經(jīng)學習到的MAC地址,則寄存老化的MAC地址所在的端口,將該端口的MAC地址數(shù)量減1,否則,不作處理;
在相應的時鐘周期序號對應的時鐘周期,如果確定因軟件向端口添加新的MAC地址需要覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項,或者確定軟件刪除MAC地址表中的MAC地址,則寄存被覆蓋的MAC地址所在的端口或被刪除的MAC地址所在的端口,將被覆蓋的MAC地址所在的端口或被刪除的MAC地址所在的端口的MAC地址數(shù)量減1,否則,不作處理;在相應的時鐘周期序號對應的時鐘周期,如果確定軟件向端口添加新的MAC地址,且添加至MAC地址表的空表項中,則寄存新的MAC地址所在的端口,將該端口的MAC地址數(shù)量加1,否則,不作處理。
所述的步驟b為采用狀態(tài)機實時對各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況進行監(jiān)測。
所述的步驟b包括根據(jù)各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況建立四種狀態(tài)的狀態(tài)機,且四個狀態(tài)分別為初始狀態(tài)為狀態(tài)機的初始狀態(tài);學習狀態(tài)學習新的MAC地址的狀態(tài);老化狀態(tài)老化MAC地址的狀態(tài);軟件維護狀態(tài)軟件對MAC地址進行添加或刪除操作的狀態(tài);當發(fā)生導致端口的MAC地址數(shù)量發(fā)生變化的情況時,狀態(tài)機由初始狀態(tài)轉(zhuǎn)入相應的狀態(tài)。
所述的步驟c包括當轉(zhuǎn)入學習狀態(tài)時,確定端口學習新的MAC地址,當將新的MAC地址添加至MAC地址表的空表項中時,寄存新的MAC地址所在的端口,將該端口的MAC地址數(shù)量加1;當新的MAC地址覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項時,則分別寄存新的MAC地址所在的端口和被覆蓋的MAC地址所在的端口,將新的MAC地址所在的端口的MAC地址數(shù)量加1,將被覆蓋的MAC地址所在的端口的MAC地址數(shù)量減1;當轉(zhuǎn)入老化狀態(tài)時,確定老化已經(jīng)學習到的MAC地址,則寄存老化的MAC地址所在的端口,將該端口的MAC地址數(shù)量減1;當轉(zhuǎn)入軟件維護狀態(tài)時,如果確定軟件向端口添加新的MAC地址,且添加至MAC地址表的空表項中,則寄存新的MAC地址所在的端口,將該端口的MAC地址數(shù)量加1;如果確定軟件向端口添加新的MAC地址,且覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項,則分別寄存新的MAC地址所在的端口和被覆蓋的MAC地址所在的端口,將新的MAC地址所在的端口的MAC地址數(shù)量加1,將被覆蓋的MAC地址所在的端口的MAC地址數(shù)量減1;如果確定軟件刪除端口上已經(jīng)學習到的MAC地址,則寄存該MAC地址所在的端口,并該端口的MAC地址數(shù)量減1。
本發(fā)明還提供了一種基于端口的MAC地址數(shù)量統(tǒng)計裝置,包括端口選擇電路引入各端口計數(shù)值信號的及端口選擇信號,進行選擇處理后輸出給端口MAC地址選擇計數(shù)電路;端口選擇計數(shù)電路接收端口選擇電路輸出相應端口的端口計數(shù)值信號,根據(jù)引入的端口計數(shù)方式信號進行相應端口的MAC地址數(shù)量統(tǒng)計,并輸出統(tǒng)計結(jié)果。
所述的端口選擇電路為一個引入各端口計數(shù)值信號及端口選擇信號的端口信號選擇器,端口信號選擇器根據(jù)引入的信號確定相應端口的端口計數(shù)值信號,并輸出至端口計數(shù)選擇器;所述的端口MAC地址計數(shù)電路進一步包括一個接收端口選擇電路輸出的端口計數(shù)值信號的端口計數(shù)選擇器,根據(jù)端口計數(shù)選擇器引入的端口計數(shù)方式信號對所述的端口計數(shù)值信號進行處理,并輸出給端口計數(shù)值寄存器;
譯碼器引入端口選擇信號,經(jīng)譯碼處理后輸出給每個端口計數(shù)值寄存器的二選一選擇器,作為選擇信號;端口計數(shù)值寄存器每一個端口對應一個端口計數(shù)值寄存器,分別引入端口計數(shù)選擇器輸出的相應端口的端口計數(shù)值,并根據(jù)譯碼器輸出的信號確定將端口計數(shù)選擇器輸出的端口計數(shù)值存入相應端口對應的端口計數(shù)值寄存器中。
由上述技術(shù)方案可以看出,本發(fā)明通過由硬件實時完成網(wǎng)絡接入設備端口學習到的MAC地址數(shù)量的統(tǒng)計,從而大大加快統(tǒng)計速度,提高了以太網(wǎng)交換機的性能,且利用硬件電路實現(xiàn)本發(fā)明可以節(jié)省大量硬件資源,優(yōu)化了設計,降低成本。因此,本發(fā)明解決了軟件完成學習到的MAC地址數(shù)量統(tǒng)計時需要處理過程繁瑣的問題,簡化了對網(wǎng)絡接入設備端口學習到的MAC地址數(shù)量進行統(tǒng)計時的處理過程。同時,本發(fā)明不僅可以準確實時統(tǒng)計出網(wǎng)絡接入設備端口學習到的MAC地址數(shù)量值,實時保證端口的安全,還可以保證對相應端口學習到的MAC地址數(shù)量的統(tǒng)計不會影響以太網(wǎng)交換機的其他功能,即利用本發(fā)明統(tǒng)計學習到的MAC地址的同時不影響交換機的正常工作。


圖1為采用流水的方法統(tǒng)計端口MAC地址數(shù)量的示意圖;圖2為圖1的時序圖;圖3為采用狀態(tài)機的方法統(tǒng)計端口MAC地址數(shù)量的示意圖;圖4為所述的基于端口的MAC地址數(shù)量統(tǒng)計裝置結(jié)構(gòu)示意圖。
具體實施例方式
本發(fā)明所述的基于端口的MAC地址數(shù)量統(tǒng)計方法的實質(zhì)是首先,確定各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況;然后,實時對各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況進行監(jiān)測;最后,根據(jù)發(fā)生的導致端口的MAC地址數(shù)量發(fā)生變化的情況,及所述情況的類型對端口的MAC地址數(shù)量進行調(diào)整。
為實現(xiàn)本發(fā)明首先需要確定可導致端口的MAC地址數(shù)量發(fā)生變化的情況,基于現(xiàn)有的通信設備應用的相關(guān)通信技術(shù)可以知道,目前,可導致端口的MAC地址數(shù)量發(fā)生變化包括以下幾種情況(1)端口學習新的MAC地址時,將導致端口的MAC地址數(shù)量發(fā)生變化,這種變化又進一步包括兩種情況一種情況是端口學習新的MAC地址時,MAC地址表中存在空表項,此時,將新的MAC地址添加至MAC地址表的空表項中;另一種情況是端口學習新的MAC地址時,MAC地址表中不存在空表項,此時,需要以新的MAC地址覆蓋MAC地址表中已經(jīng)保存著MAC地址的表項。
(2)老化端口已經(jīng)學習到的MAC地址時,將導致端口的MAC地址數(shù)量發(fā)生變化;通常在MAC地址表中除靜態(tài)配置的表項外,自動學習到的MAC地址均有空閑存在時間的限制,即如果某一MAC地址在設定的時間內(nèi)一直未接收或發(fā)送報文,則需要通過老化MAC地址軟件將其老化掉,以保證網(wǎng)絡中報文的正常收發(fā),并節(jié)省MAC地址表中的空間;(3)軟件對端口的MAC地址進行添加或刪除維護時,將導致端口的MAC地址數(shù)量發(fā)生變化,具體包括軟件向端口添加新的MAC地址時,MAC地址表中有空表項,則將新的MAC地址添加至MAC地址表的空表項中;軟件向端口添加新的MAC地址時,MAC地址表中沒有空表項,則以新的MAC地址覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項;根據(jù)需要通過軟件將MAC地址表中相應的MAC地址刪除。
確定了通信網(wǎng)絡中可導致端口的MAC地址發(fā)生變化的各種情況后,為實現(xiàn)本發(fā)明,則需要在各種可導致端口的MAC地址發(fā)生變化的情況發(fā)生時,對端口的MAC地址數(shù)量進行實時統(tǒng)計處理,以滿足網(wǎng)絡通信系統(tǒng)中限制學習MAC地址數(shù)量的需求。
下面將就如何對端口的MAC地址數(shù)量進行實時統(tǒng)計作進一步說明,對端口的MAC地址數(shù)量進行實時統(tǒng)計可以采用一級流水的方式實現(xiàn),也可以采用狀態(tài)機實現(xiàn),其中所述的采用一級流水實現(xiàn)對端口MAC地址數(shù)量進行實時統(tǒng)計如圖1和圖2所示,具體包括步驟11設定一級流水處理需要的時鐘周期數(shù),通常根據(jù)時鐘周期及需要的一級流水的處理時間確定一級流水處理需要的時鐘周期;例如,假設時鐘頻率為100MHz,確定一級流水處理包括14個時鐘周期,并對應時鐘周期計數(shù)器計數(shù)值cnt為0-13,即對應的時鐘周期序號為0-13;步驟12確定監(jiān)測各種類型可導致端口的MAC地址數(shù)量發(fā)生變化的情況的時鐘周期的時鐘周期序號;假設如圖2所示,確定在時刻T(T為自然數(shù),且為根據(jù)需要設定),即時鐘周期序號為4的時刻,此時時鐘周期計數(shù)器的計數(shù)值為4,對學習新的MAC地址的情況進行監(jiān)測并處理;確定在時刻T+U(U為自然數(shù),根據(jù)需要設置)時,即時鐘周期序號為7,時鐘周期計數(shù)器的計數(shù)值為7時,對根據(jù)需要對MAC地址表中的MAC地址進行老化的情況進行監(jiān)測并處理;確定在時刻T+J(J為自然數(shù),根據(jù)需要設置)時,即時鐘周期序號為10,時鐘周期計數(shù)器的計數(shù)值為10時,對軟件維護MAC地址表的情況進行監(jiān)測處理;一級流水中上述時刻T、T+1、T+U、T+J、T+J+1都少于一級流水的總的時鐘周期數(shù),且T、J、U的具體數(shù)值可以根據(jù)實際情況確定,其中時刻T、T+1、T+U、T+J、T+J+1分別是指在一級流水中某個時鐘周期序號,即某個時鐘周期計數(shù)值,例如一級流水有20個時鐘周期,T可以等于3,表示一級流水的第3個時鐘周期,如圖2所示,所采用的時鐘頻率為100MHz,一級流水包括14個時鐘周期,并選擇T為4,T+U為7,T+J為10;步驟13當一級流水的時鐘周期運行到相應時鐘周期序號的時鐘周期時,監(jiān)測該時鐘周期序號對應的相應類型導致端口的MAC地址數(shù)量發(fā)生變化的情況是否發(fā)生,并執(zhí)行步驟14進行相應的處理;例如,當一級流水的時鐘處于時刻T時,監(jiān)測是否學習了新的MAC地址;步驟14根據(jù)監(jiān)測結(jié)果對相應端口的MAC地址數(shù)量進行實時統(tǒng)計,根據(jù)發(fā)生不同類型導致端口的MAC地址發(fā)生變化的情況,具體處理過程如下在時刻T,即時鐘周期序號為4時,如果根據(jù)監(jiān)測結(jié)果確定端口成功學習新的MAC地址,且為保存該新的MAC地址需要覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項,則寄存被覆蓋的MAC地址所在的端口,將被覆蓋的MAC地址所在的端口的MAC地址數(shù)量減1,否則,在該時刻各端口的MAC地址數(shù)量均保持不變,即不需要作任何處理;接著,在時刻T+1,即時鐘周期序號為5時,如果根據(jù)監(jiān)測結(jié)果確定端口成功學習新的MAC地址,無論是將新的MAC地址添加至MAC地址表的空表項中,還是覆蓋了MAC地址表中已經(jīng)存在的MAC地址,則寄存新的MAC地址所在的端口,將新的MAC地址所在的端口的MAC地址數(shù)量加1,否則,在該時刻各端口的MAC地址數(shù)量均保持不變,即不需要作任何處理;否則,在該時刻各端口的MAC地址數(shù)量均保持不變,即不需要作任何處理;在時刻T+U,即時鐘周期序號為7時,根據(jù)監(jiān)測結(jié)果如果確定發(fā)生老化MAC地址表中端口已經(jīng)學習到的MAC地址的情況,則寄存被老化的MAC地址所在的端口,將該端口的MAC地址數(shù)量減1,否則,在該時刻各端口的MAC地址數(shù)量保持不變,即不需要作任何處理;
在時刻T+J,即時鐘周期序號為10時,根據(jù)監(jiān)測結(jié)果如果確定軟件向端口成功添加新的MAC地址,且為保存新的MAC地址需要覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項,或者根據(jù)監(jiān)測結(jié)果確定軟件需要成功刪除MAC地址表中的某個MAC地址,則寄存被覆蓋的MAC地址所在的端口,或者寄存需要刪除的MAC地址所在的端口,將被覆蓋的MAC地址所在的端口或者需要刪除的MAC地址所在的端口的MAC地址數(shù)量減1,否則,在該時刻各端口的MAC地址數(shù)量保持不變,即不需要作任何處理;因為軟件刪除MAC地址表的表項的操作和添加MAC地址表的表項的操作不可能同時出現(xiàn),所以可以將覆蓋MAC址址表中已經(jīng)存在的MAC地址的情況和刪除MAC地址表中的MAC地址的情況采用一級流水中的同一時刻進行處理;接著在時刻T+J+1,即時鐘周期序號為11時,根據(jù)監(jiān)測結(jié)果如果確定軟件向端口成功添加新的MAC地址,無論是將新的MAC地址保存至MAC地址表中的空表項,還是通過覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項保存新的MAC地址,則寄存新的MAC地址所在的端口,將新的MAC地址所在的端口的MAC地址數(shù)量加1,否則,在該時刻各端口的MAC地址數(shù)量保持不變,即不需要作任何處理;如圖2所示,端口選擇信號sel_port根據(jù)寄存的端口選擇確定相應的端口,即在時刻T、T+1、T+U、T+J、T+J+1分別選擇確定端口a、b、c、d、e,以對相應端口的MAC地址數(shù)量進行統(tǒng)計;counter_port_a、counter_port_b、counter_port_c、counter_port_d、counter_port_e分別對應端口a、b、c、d、e的MAC地址數(shù)量;端口計數(shù)選擇信號sel_add_sub根據(jù)在時刻T、T+1、T+U、T+J、T+J+1時端口的MAC地址數(shù)量的增減,確定選擇對應端口(sel_port)的MAC地址數(shù)量的加、減或不變的結(jié)果。
本發(fā)明所述的所述的基于端口的MAC地址數(shù)量統(tǒng)計方法還可以采用狀態(tài)機實現(xiàn)實時對各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況進行監(jiān)測處理,如圖3所示,具體為首先,根據(jù)各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況建立四種狀態(tài)的狀態(tài)機,且四個狀態(tài)分別為初始狀態(tài)為狀態(tài)機的初始狀態(tài);學習狀態(tài)學習新的MAC地址的狀態(tài);通常當源端口(即數(shù)據(jù)包進來的端口)對應的MAC地址數(shù)大于或等于該端口對應的MAC地址數(shù)的閾值時,該端口不允許學習且該端口進來的數(shù)據(jù)包被丟棄;否則允許該端口學習相應的MAC地址,同時也不丟棄該數(shù)據(jù)包;當允許端口學習MAC地址時,根據(jù)需要學習新的MAC地址查找MAC地址表,找到匹配表項時,再根據(jù)匹配表項的相關(guān)屬性和寄存器的配置確定即將被新的MAC地址覆蓋的MAC地址的端口,并寄存該端口;如果沒有找到匹配表項時,則在MAC地址表中查找空表項,以保存新的MAC地址,并寄存器新的MAC地址所在的端口;在學習狀態(tài)中,需要產(chǎn)生如下信號learn_match信號表示找到匹配表項時成功學習到新的MAC地址的信號,高電平有效;learn_match_ff信號為learn_match信號寄存一拍的值,該信號有效時,表示MAC地址表中學習了新的MAC地址;learn_nomatch信號表示沒有找到匹配表項時成功學習到新的MAC地址的信號,高電平有效;老化狀態(tài)老化MAC地址的狀態(tài),即確定對應MAC地址表中某個表項需要老化,并確定要老化的MAC地址的端口;該狀態(tài)需要產(chǎn)生的信號為age_permit信號表示允許MAC地址表中某個表項老化的信號,高電平有效;軟件維護狀態(tài)軟件對MAC地址進行添加或刪除操作的狀態(tài);
確定MAC地址表中軟件需要刪除的表項,并執(zhí)行刪除操作,寄存被刪除掉的端口;確定MAC地址表中找到對應軟件要添加的匹配表項(將已添加的新的MAC地址覆蓋匹配表項中的已經(jīng)存在的MAC地址的方式保存新的MAC地址)或沒有找到匹配且有空表項(將需要添加的新MAC地址添加至該空表項中),并執(zhí)行添加操作,寄存添加時被覆蓋的端口和要添加的端口;在軟件維護狀態(tài)中需要產(chǎn)生如下信號cpu_del_success信號表示CPU成功刪除MAC地址表項的信號,高電平有效,即當硬MAC地址表中找到對應軟件要刪除的表項時,該信號為1;cpu_add_success信號表示CPU成功添加MAC地址表項的信號,高電平有效,即當硬MAC地址表中找到對應軟件要添加的匹配表項或沒有找到匹配且有空地址表項時,該信號為1。
cpu_add_success_ff信號表示為信號cpu_add_success信號寄存一拍的值;為實現(xiàn)狀態(tài)機在各個狀態(tài)轉(zhuǎn)換過程中實現(xiàn)對相應端口的MAC地址數(shù)量進行統(tǒng)計,還需要產(chǎn)生如下信號sel_port信號表示各個狀態(tài)中需要進行統(tǒng)計MAC地址數(shù)量的端口號,與信號sel_add_sub的時序一致在學習狀態(tài)中,當learn_match為1時,寄存表項中的端口,即要被學習覆蓋的端口,當learn_match_ff或learn_nomatch為1時,寄存學習的新的MAC地址對應的端口;在老化狀態(tài)中,當age_permit信號有效時,寄存要被老化表項對應的被老化端口;在軟件維護狀態(tài)中,當信號cpu_del_success為1時,寄存被刪除掉的端口,當cpu_add_success為1時,且找到了匹配表項,則寄存添加時被覆蓋的端口;當cpu_add_success_ff為1時,寄存添加的新的MAC地址對應的端口;
其他情況,信號sel_port保持不變;sel_add_sub信號表示確定各個狀態(tài)下進行端口的MAC地址數(shù)量統(tǒng)計時的加、減或不變的處理方式在學習狀態(tài)中,當learn_match為1時,選擇減法器的結(jié)果;當learn_match_ff或learn_nomatch為1時,選擇加法器的結(jié)果;在老化狀態(tài)中,當age_permit信號有效時,選擇減法器的結(jié)果;在軟件維護狀態(tài)中,當信號cpu_del_success為1或cpu_add_success為1時,且找到了匹配表項,選擇減法器的結(jié)果;當cpu_add_success_ff為1時,選擇加法器的結(jié)果;其他情況,sel_add_sub信號選擇不變的結(jié)果;當發(fā)生導致端口的MAC地址數(shù)量發(fā)生變化的情況時,則觸發(fā)狀態(tài)機由初始狀態(tài)轉(zhuǎn)入上述四個狀態(tài)中相應的狀態(tài)確定端口學習新的MAC地址時,則將狀態(tài)機轉(zhuǎn)入學習狀態(tài),當將新的MAC地址添加至MAC地址表的空表項中時,寄存新的MAC地址所在的端口,將該端口的MAC地址數(shù)量加1;當新的MAC地址覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項時,則分別寄存新的MAC地址所在的端口和被覆蓋的MAC地址所在的端口,將新的MAC地址所在的端口的MAC地址數(shù)量加1,將被覆蓋的MAC地址所在的端口的MAC地址數(shù)量減1;確定老化端口已經(jīng)學習到的MAC地址時,則將狀態(tài)機轉(zhuǎn)入老化狀態(tài),寄存老化的MAC地址所在的端口,將該端口的MAC地址數(shù)量減1;確定軟件對MAC地址表進行維護時,則將狀態(tài)機轉(zhuǎn)入軟件維護狀態(tài)時,如果確定軟件向端口添加新的MAC地址,且添加至MAC地址表的空表項中,則寄存新的MAC地址所在的端口,將該端口的MAC地址數(shù)量加1;如果確定軟件向端口添加新的MAC地址,且覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項,則分別寄存新的MAC地址所在的端口和被覆蓋的MAC地址所在的端口,將新的MAC地址所在的端口的MAC地址數(shù)量加1,將被覆蓋的MAC地址所在的端口的MAC地址數(shù)量減1;如果確定軟件刪除端口上已經(jīng)學習到的MAC地址,則寄存該MAC地址所在的端口,并該端口的MAC地址數(shù)量減1。
如圖3所示,狀態(tài)機的狀態(tài)轉(zhuǎn)移條件說明如下IDLE(初始狀態(tài))IF(condition1)to SOFT_ADD_DEL/如果滿足condition1(軟件維護MAC地址表的條件),則轉(zhuǎn)入軟件維護狀態(tài);ELSE IF(condition2)to LEARN/否則,如果滿足condition2(學習MAC地址的條件),則轉(zhuǎn)入學習狀態(tài);ELSE IF(condition3)to AGE/否則,如果滿足condition3(老化MAC地址的條件),則轉(zhuǎn)入老化狀態(tài);ELSE to IDLE/否則,保持初始狀態(tài);AGE(老化狀態(tài))IF(not finishing aging-operation)to AGE/如果未完成執(zhí)行對相應MAC地址的老化操作,繼續(xù)保持老化狀態(tài);ELSE to IDLE/否則,轉(zhuǎn)入初始狀態(tài);SOFT_ADD_DEL(軟件維護狀態(tài))IF(not finishing software-operation)to SOFT_ADD_DEL/如果未完成執(zhí)行相應軟件維護操作,繼續(xù)保持軟件維護狀態(tài);ELSE to IDLE/否則,轉(zhuǎn)入初始狀態(tài);LEARN(學習狀態(tài))IF(not finishing learning-operation)to LEARN/如果未完成執(zhí)行MAC地址學習操作,繼續(xù)保持學習狀態(tài);ELSE to IDLE/否則,轉(zhuǎn)入初始狀態(tài)。
基于上述本發(fā)明所述的方法,本發(fā)明還提供了一種基于端口的MAC地址數(shù)量統(tǒng)計裝置,該裝置的具體實現(xiàn)方式如圖4所示,包括端口選擇電路引入各端口計數(shù)值信號的及端口選擇信號,進行選擇處理后輸出給端口MAC地址計數(shù)電路;所述的端口選擇電路為一個引入各端口計數(shù)值信號及端口選擇信號的端口信號選擇器,端口信號選擇器根據(jù)引入的信號確定相應端口的端口計數(shù)值信號,并輸出至端口計數(shù)選擇器;端口選擇計數(shù)電路接收端口選擇電路輸出相應端口的端口計數(shù)值信號,根據(jù)引入的端口計數(shù)方式信號進行相應端口的MAC地址數(shù)量統(tǒng)計,并輸出統(tǒng)計結(jié)果,所述的端口MAC地址計數(shù)電路進一步包括一個接收端口選擇電路輸出的端口計數(shù)值信號的端口計數(shù)選擇器,根據(jù)端口計數(shù)選擇器引入的端口計數(shù)方式信號對所述的端口計數(shù)值信號進行處理,并輸出給端口計數(shù)值寄存器;譯碼器引入端口選擇信號,經(jīng)譯碼處理后輸出給每個端口計數(shù)值寄存器的二選一選擇器,作為選擇信號,以便于每個端口選擇確定是以當前的端口的MAC地址數(shù)量統(tǒng)計數(shù)值作為端口MAC地址數(shù)量的統(tǒng)計結(jié)果,還是以端口計數(shù)選擇器輸出的端口的MAC地址數(shù)量作為端口中MAC地址數(shù)量的統(tǒng)計結(jié)果;端口計數(shù)值寄存器每一個端口對應一個端口計數(shù)值寄存器,分別引入端口計數(shù)選擇器輸出的相應端口的端口計數(shù)值,并根據(jù)譯碼器輸出的信號確定將端口計數(shù)選擇器輸出的端口計數(shù)值存入相應端口對應的端口計數(shù)值寄存器中。
圖2中的端口計數(shù)值寄存器counter_port_0~counter_port_X,X為交換機的端口數(shù)減一,每個端口計數(shù)值寄存器的寬度為Hbit,且MAC地址表的深度為2H,H值由用戶根據(jù)需要確定。
如圖2所示,根據(jù)sel_port信號從端口counter_port_0~coumter_port_X中選取一個賦值給信號counter_port;然后送給加法器、減法器和端口計數(shù)選擇器;端口計數(shù)選擇器根據(jù)信號sel_add_sub選取信號counter_add、counter_sub、countre_port其中之一賦值給信號counter_sel;根據(jù)sel_port信號經(jīng)譯碼器譯碼后的值選擇counter_sel賦值給端口計數(shù)值寄存器counter_port_0~coumter_port_X中的一個,從而完成動態(tài)實時維護各個端口的MAC地址數(shù)量。
由此可以看出,上述電路由五級邏輯電路和一級時序電路組成,整個電路共用了一個加法器和減法器,且僅使用了與交換機端口數(shù)相同數(shù)量的寄存器,因此,本發(fā)明所述的裝置結(jié)構(gòu)簡單,易于實施。
權(quán)利要求
1.一種基于端口的MAC地址數(shù)量統(tǒng)計方法,其特征在于包括a、確定各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況;b、實時對各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況進行監(jiān)測;c、根據(jù)發(fā)生的導致端口的MAC地址數(shù)量發(fā)生變化的情況的類型對端口的MAC地址數(shù)量進行調(diào)整。
2.根據(jù)權(quán)利要求1所述的基于端口的MAC地址數(shù)量統(tǒng)計方法,其特征在于所述的步驟a包括a1、確定端口學習新的MAC地址;a2、確定老化端口已經(jīng)學習到的MAC地址;a3、確定軟件對端口的MAC地址進行添加或刪除維護。
3.根據(jù)權(quán)利要求2所述的基于端口的MAC地址數(shù)量統(tǒng)計方法,其特征在于所述的步驟a1包括確定端口學習新的MAC地址,并添加至MAC地址表的空表項中;確定端口學習新的MAC地址,并覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項。
4.根據(jù)權(quán)利要求2或3所述的基于端口的MAC地址數(shù)量統(tǒng)計方法,其特征在于所述的步驟a3包括確定軟件向端口添加新的MAC地址,且添加至MAC地址表的空表項中;確定軟件向端口添加新的MAC地址,且覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項。
5.根據(jù)權(quán)利要求1或2所述的基于端口的MAC地址數(shù)量統(tǒng)計方法,其特征在于所述的步驟b為采用一級流水分別對各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況進行監(jiān)測。
6.根據(jù)權(quán)利要求5所述的基于端口的MAC地址數(shù)量統(tǒng)計方法,其特征在于所述的步驟b包括設定一級流水的時鐘周期數(shù),并為各時鐘周期定義時鐘周期序號;確定監(jiān)測各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況的時鐘周期的時鐘周期序號;當一級流水的時鐘周期運行到相應序號的時鐘周期時,監(jiān)測該時鐘周期序號對應的相應類型導致端口的MAC地址數(shù)量發(fā)生變化的情況是否發(fā)生。
7.根據(jù)權(quán)利要求6所述的基于端口的MAC地址數(shù)量統(tǒng)計方法,其特征在于所述的步驟c包括在相應的時鐘周期序號對應的時鐘周期,如果確定因端口學習新的MAC地址需要覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項,則寄存被覆蓋的MAC地址所在的端口,將被覆蓋的MAC地址所在的端口的MAC地址數(shù)量減1,否則,不作處理;在相應的時鐘周期序號對應的時鐘周期,如果確定端口學習新的MAC地址,并添加至MAC地址表的空表項中,或者是覆蓋了MAC地址表中已經(jīng)存在的MAC地址,則寄存新的MAC地址所在的端口,將該端口的MAC地址數(shù)量加1,否則,不作處理;在相應的時鐘周期序號對應的時鐘周期,如果確定老化已經(jīng)學習到的MAC地址,則寄存老化的MAC地址所在的端口,將該端口的MAC地址數(shù)量減1,否則,不作處理;在相應的時鐘周期序號對應的時鐘周期,如果確定因軟件向端口添加新的MAC地址需要覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項,或者確定軟件刪除MAC地址表中的MAC地址,則寄存被覆蓋的MAC地址所在的端口或被刪除的MAC地址所在的端口,將被覆蓋的MAC地址所在的端口或被刪除的MAC地址所在的端口的MAC地址數(shù)量減1,否則,不作處理;在相應的時鐘周期序號對應的時鐘周期,如果確定軟件向端口添加新的MAC地址,且添加至MAC地址表的空表項中,則寄存新的MAC地址所在的端口,將該端口的MAC地址數(shù)量加1,否則,不作處理。
8.根據(jù)權(quán)利要求1或2所述的基于端口的MAC地址數(shù)量統(tǒng)計方法,其特征在于所述的步驟b為采用狀態(tài)機實時對各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況進行監(jiān)測。
9.根據(jù)權(quán)利要求8所述的基于端口的MAC地址數(shù)量統(tǒng)計方法,其特征在于所述的步驟b包括根據(jù)各種類型導致端口的MAC地址數(shù)量發(fā)生變化的情況建立四種狀態(tài)的狀態(tài)機,且四個狀態(tài)分別為初始狀態(tài)為狀態(tài)機的初始狀態(tài);學習狀態(tài)學習新的MAC地址的狀態(tài);老化狀態(tài)老化MAC地址的狀態(tài);軟件維護狀態(tài)軟件對MAC地址進行添加或刪除操作的狀態(tài);當發(fā)生導致端口的MAC地址數(shù)量發(fā)生變化的情況時,狀態(tài)機由初始狀態(tài)轉(zhuǎn)入相應的狀態(tài)。
10.根據(jù)權(quán)利要求9所述的基于端口的MAC地址數(shù)量統(tǒng)計方法,其特征在于所述的步驟c包括當轉(zhuǎn)入學習狀態(tài)時,確定端口學習新的MAC地址,當將新的MAC地址添加至MAC地址表的空表項中時,寄存新的MAC地址所在的端口,將該端口的MAC地址數(shù)量加1;當新的MAC地址覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項時,則分別寄存新的MAC地址所在的端口和被覆蓋的MAC地址所在的端口,將新的MAC地址所在的端口的MAC地址數(shù)量加1,將被覆蓋的MAC地址所在的端口的MAC地址數(shù)量減1;當轉(zhuǎn)入老化狀態(tài)時,確定老化已經(jīng)學習到的MAC地址,則寄存老化的MAC地址所在的端口,將該端口的MAC地址數(shù)量減1;當轉(zhuǎn)入軟件維護狀態(tài)時,如果確定軟件向端口添加新的MAC地址,且添加至MAC地址表的空表項中,則寄存新的MAC地址所在的端口,將該端口的MAC地址數(shù)量加1;如果確定軟件向端口添加新的MAC地址,且覆蓋MAC地址表的已經(jīng)保存著MAC地址的表項,則分別寄存新的MAC地址所在的端口和被覆蓋的MAC地址所在的端口,將新的MAC地址所在的端口的MAC地址數(shù)量加1,將被覆蓋的MAC地址所在的端口的MAC地址數(shù)量減1;如果確定軟件刪除端口上已經(jīng)學習到的MAC地址,則寄存該MAC地址所在的端口,并該端口的MAC地址數(shù)量減1。
11.一種基于端口的MAC地址數(shù)量統(tǒng)計裝置,其特征在于包括端口選擇電路引入各端口計數(shù)值信號的及端口選擇信號,進行選擇處理后輸出給端口MAC地址選擇計數(shù)電路;端口選擇計數(shù)電路接收端口選擇電路輸出相應端口的端口計數(shù)值信號,根據(jù)引入的端口計數(shù)方式信號進行相應端口的MAC地址數(shù)量統(tǒng)計,并輸出統(tǒng)計結(jié)果。
12.根據(jù)權(quán)利要求11所述的基于端口的MAC地址數(shù)量統(tǒng)計裝置,其特征在于所述的端口選擇電路為一個引入各端口計數(shù)值信號及端口選擇信號的端口信號選擇器,端口信號選擇器根據(jù)引入的信號確定相應端口的端口計數(shù)值信號,并輸出至端口計數(shù)選擇器;所述的端口MAC地址計數(shù)電路進一步包括一個接收端口選擇電路輸出的端口計數(shù)值信號的端口計數(shù)選擇器,根據(jù)端口計數(shù)選擇器引入的端口計數(shù)方式信號對所述的端口計數(shù)值信號進行處理,并輸出給端口計數(shù)值寄存器;譯碼器引入端口選擇信號,經(jīng)譯碼處理后輸出給每個端口計數(shù)值寄存器的二選一選擇器,作為選擇信號;端口計數(shù)值寄存器每一個端口對應一個端口計數(shù)值寄存器,分別引入端口計數(shù)選擇器輸出的相應端口的端口計數(shù)值,并根據(jù)譯碼器輸出的信號確定將端口計數(shù)選擇器輸出的端口計數(shù)值存入相應端口對應的端口計數(shù)值寄存器中。
全文摘要
本發(fā)明涉及一種基于端口的MAC地址數(shù)量統(tǒng)計方法。該方法針對各種類型可導致端口的MAC地址數(shù)量發(fā)生變化的情況分別進行監(jiān)測,并根據(jù)發(fā)生的導致端口的MAC地址數(shù)量發(fā)生變化的情況的類型對端口的MAC地址數(shù)量進行調(diào)整。本發(fā)明通過由硬件實時完成網(wǎng)絡接入設備端口學習到的MAC地址數(shù)量的統(tǒng)計,從而大大加快統(tǒng)計速度,提高了以太網(wǎng)交換機的性能,且利用硬件電路實現(xiàn)本發(fā)明可以節(jié)省大量硬件資源,優(yōu)化了設計,降低成本。同時,本發(fā)明不僅可以準確實時統(tǒng)計出網(wǎng)絡接入設備端口學習到的MAC地址數(shù)量值,實時保證端口的安全,還可以保證對相應端口學習到的MAC地址數(shù)量的統(tǒng)計不會影響以太網(wǎng)交換機的其它功能,即利用本發(fā)明統(tǒng)計學習到的MAC地址的同時不影響交換機的正常工作。
文檔編號H04L12/08GK1567870SQ0314560
公開日2005年1月19日 申請日期2003年6月24日 優(yōu)先權(quán)日2003年6月24日
發(fā)明者夏世長, 馬敬興, 王稷, 陳華彬 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
阜南县| 石城县| 绵阳市| 六安市| 罗平县| 兰州市| 新昌县| 什邡市| 沈丘县| 富阳市| 宁强县| 云安县| 安国市| 大化| 阳原县| 波密县| 二连浩特市| 东乡县| 谷城县| 上思县| 乌恰县| 固原市| 宝鸡市| 随州市| 舞阳县| 墨脱县| 夹江县| 和硕县| 武隆县| 安塞县| 永善县| 进贤县| 藁城市| 鸡东县| 璧山县| 万载县| 都兰县| 西华县| 鹤庆县| 固始县| 辰溪县|